koco-cvs Mailing List for Python Korean Codecs (Page 12)
Brought to you by:
perky
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(88) |
May
(5) |
Jun
|
Jul
(27) |
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(77) |
Feb
(3) |
Mar
|
Apr
(22) |
May
(123) |
Jun
(80) |
Jul
(83) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Hye-Shik C. <pe...@us...> - 2003-05-16 12:06:31
|
perky 03/05/16 05:06:30 Modified: . setup.py Log: Add map for gb encodings Revision Changes Path 1.3 +16 -5 cjkcodecs/setup.py Index: setup.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/setup.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- setup.py 22 Apr 2003 21:04:29 -0000 1.2 +++ setup.py 16 May 2003 12:06:30 -0000 1.3 @@ -27,22 +27,33 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: setup.py,v 1.2 2003/04/22 21:04:29 perky Exp $ +# $Id: setup.py,v 1.3 2003/05/16 12:06:30 perky Exp $ # import sys from distutils.core import setup, Extension +charsets = ( +# Simplified Chinese +'gb2312', 'gbk', 'gb18030', + +# Traditional Chinese +#'big5', + +# Japanese +'cp932', 'jisx0208', 'jisx0212', + +# Korean +'cp949', 'ksx1001', +) + setup (name = "cjkcodecs", version = "1.0", author = "Hye-Shik Chang", author_email = "pe...@Fr...", ext_modules = [Extension("cjkcodecs.map_" + charset, - ["src/map_%s.c" % charset]) - for charset in ('jisx0208', 'jisx0212', 'cp932')] + - [ - ] + ["src/map_%s.c" % charset]) for charset in charsets] ) # ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 08:21:05
|
perky 03/05/14 01:21:04 Modified: src map_cp932.c Log: Remove debug messages. Revision Changes Path 1.6 +0 -1 cjkcodecs/src/map_cp932.c Index: map_cp932.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp932.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- map_cp932.c 14 May 2003 08:12:08 -0000 1.5 +++ map_cp932.c 14 May 2003 08:21:03 -0000 1.6 @@ -28,7 +28,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_cp932.c,v 1.5 2003/05/14 08:12:08 perky Exp $ + * $Id: map_cp932.c,v 1.6 2003/05/14 08:21:03 perky Exp $ */ #include "Python.h" @@ -79,7 +79,6 @@ } } - fprintf(stderr, "encodemap 0x22 is %p\n", __encode_map[0x22]); #ifdef CP932_TWEAKUNIMAP CP932_TWEAKUNIMAP(__encode_map); #endif |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 08:15:26
|
perky 03/05/14 01:15:22 Modified: tools genmap_japanese.py Log: - Allocate new memory block if needed. - Block falling through to shiftjis for some characters. Revision Changes Path 1.3 +8 -3 cjkcodecs/tools/genmap_japanese.py Index: genmap_japanese.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_japanese.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- genmap_japanese.py 22 Apr 2003 21:04:36 -0000 1.2 +++ genmap_japanese.py 14 May 2003 08:15:22 -0000 1.3 @@ -26,7 +26,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_japanese.py,v 1.2 2003/04/22 21:04:36 perky Exp $ +# $Id: genmap_japanese.py,v 1.3 2003/05/14 08:15:22 perky Exp $ # from genmap_support import * @@ -118,9 +118,14 @@ print "Generating CP932 Tweaks..." if difmap: print >> omap, "#define CP932_TWEAKUNIMAP(umap)", + checked = {} for uni in difmap: - print >> omap, "\\" - print >> omap, "\t(umap)[0x%02x][0x%02x] = NOCHAR;" % ( + if not checked.has_key(uni >> 8): + print >> omap, "\\\n\tif ((umap)[0x%02x] == NULL) " \ + "(umap)[0x%02x] = PyMem_Malloc(sizeof(DBCHAR) * 256);" % ( + uni >> 8, uni >> 8), + checked[uni >> 8] = True + print >> omap, "\\\n\t(umap)[0x%02x][0x%02x] = DBCINV;" % ( uni >> 8, uni & 0xFF), print >> omap |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 08:14:26
|
perky 03/05/14 01:14:25 Modified: src map_cp932.h Log: Block falling through shift-jis mapping. Revision Changes Path 1.5 +10 -10 cjkcodecs/src/map_cp932.h Index: map_cp932.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp932.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- map_cp932.h 14 May 2003 08:12:30 -0000 1.4 +++ map_cp932.h 14 May 2003 08:14:25 -0000 1.5 @@ -1,5 +1,5 @@ /* - * $Id: map_cp932.h,v 1.4 2003/05/14 08:12:30 perky Exp $ + * $Id: map_cp932.h,v 1.5 2003/05/14 08:14:25 perky Exp $ */ static const Py_UNICODE __cp932_decmap_81[108] = { /* 81::5F-CA */ @@ -280,12 +280,12 @@ #define CP932_TWEAKUNIMAP(umap) \ if ((umap)[0x22] == NULL) (umap)[0x22] = PyMem_Malloc(sizeof(DBCHAR) * 256); \ - (umap)[0x22][0x1a] = NOCHAR; \ - (umap)[0x22][0x20] = NOCHAR; \ - (umap)[0x22][0x29] = NOCHAR; \ - (umap)[0x22][0x2a] = NOCHAR; \ - (umap)[0x22][0x2b] = NOCHAR; \ - (umap)[0x22][0x35] = NOCHAR; \ - (umap)[0x22][0x52] = NOCHAR; \ - (umap)[0x22][0x61] = NOCHAR; \ - (umap)[0x22][0xa5] = NOCHAR; + (umap)[0x22][0x1a] = DBCINV; \ + (umap)[0x22][0x20] = DBCINV; \ + (umap)[0x22][0x29] = DBCINV; \ + (umap)[0x22][0x2a] = DBCINV; \ + (umap)[0x22][0x2b] = DBCINV; \ + (umap)[0x22][0x35] = DBCINV; \ + (umap)[0x22][0x52] = DBCINV; \ + (umap)[0x22][0x61] = DBCINV; \ + (umap)[0x22][0xa5] = DBCINV; |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 08:12:31
|
perky 03/05/14 01:12:30 Modified: src map_cp932.h Log: Allocate new memory block if needed. Revision Changes Path 1.4 +2 -1 cjkcodecs/src/map_cp932.h Index: map_cp932.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp932.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_cp932.h 22 Apr 2003 21:04:31 -0000 1.3 +++ map_cp932.h 14 May 2003 08:12:30 -0000 1.4 @@ -1,5 +1,5 @@ /* - * $Id: map_cp932.h,v 1.3 2003/04/22 21:04:31 perky Exp $ + * $Id: map_cp932.h,v 1.4 2003/05/14 08:12:30 perky Exp $ */ static const Py_UNICODE __cp932_decmap_81[108] = { /* 81::5F-CA */ @@ -279,6 +279,7 @@ }; #define CP932_TWEAKUNIMAP(umap) \ + if ((umap)[0x22] == NULL) (umap)[0x22] = PyMem_Malloc(sizeof(DBCHAR) * 256); \ (umap)[0x22][0x1a] = NOCHAR; \ (umap)[0x22][0x20] = NOCHAR; \ (umap)[0x22][0x29] = NOCHAR; \ |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 07:02:36
|
perky 03/05/14 00:02:35 Modified: src cjkcommon.h Log: Add range for ksx1001 and cp949 Revision Changes Path 1.3 +11 -1 cjkcodecs/src/cjkcommon.h Index: cjkcommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/cjkcommon.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- cjkcommon.h 22 Apr 2003 21:04:31 -0000 1.2 +++ cjkcommon.h 14 May 2003 07:02:35 -0000 1.3 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: cjkcommon.h,v 1.2 2003/04/22 21:04:31 perky Exp $ + * $Id: cjkcommon.h,v 1.3 2003/05/14 07:02:35 perky Exp $ */ #ifndef _CJKCOMMON_H_ @@ -61,6 +61,16 @@ #define CP932_C1_TOP 0xfc #define CP932_C2_BOTTOM 0x40 #define CP932_C2_TOP 0xfc + +#define KSX1001_C1_BOTTOM 0x21 +#define KSX1001_C1_TOP 0x7d +#define KSX1001_C2_BOTTOM 0x21 +#define KSX1001_C2_TOP 0x7e + +#define CP949_C1_BOTTOM 0x81 +#define CP949_C1_TOP 0xfe +#define CP949_C2_BOTTOM 0x41 +#define CP949_C2_TOP 0xfe #endif |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 06:59:00
|
perky 03/05/13 23:58:59 Modified: src map_cp949.h Log: Change prefix from uhc to cp949 Revision Changes Path 1.2 +141 -141 cjkcodecs/src/map_cp949.h Index: map_cp949.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp949.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_cp949.h 14 May 2003 06:48:41 -0000 1.1 +++ map_cp949.h 14 May 2003 06:58:59 -0000 1.2 @@ -1,8 +1,8 @@ /* - * $Id: map_cp949.h,v 1.1 2003/05/14 06:48:41 perky Exp $ + * $Id: map_cp949.h,v 1.2 2003/05/14 06:58:59 perky Exp $ */ -static const Py_UNICODE __uhc_decmap_81[190] = { /* 81::41-FE */ +static const Py_UNICODE __cp949_decmap_81[190] = { /* 81::41-FE */ 0xac02, 0xac03, 0xac05, 0xac06, 0xac0b, 0xac0c, 0xac0d, 0xac0e, 0xac0f, 0xac18, 0xac1e, 0xac1f, 0xac21, 0xac22, 0xac23, 0xac25, 0xac26, 0xac27, 0xac28, 0xac29, 0xac2a, 0xac2b, 0xac2e, 0xac32, @@ -29,7 +29,7 @@ 0xad0a, 0xad0b, 0xad0e, 0xad10, 0xad12, 0xad13, }; -static const Py_UNICODE __uhc_decmap_82[190] = { /* 82::41-FE */ +static const Py_UNICODE __cp949_decmap_82[190] = { /* 82::41-FE */ 0xad14, 0xad15, 0xad16, 0xad17, 0xad19, 0xad1a, 0xad1b, 0xad1d, 0xad1e, 0xad1f, 0xad21, 0xad22, 0xad23, 0xad24, 0xad25, 0xad26, 0xad27, 0xad28, 0xad2a, 0xad2b, 0xad2e, 0xad2f, 0xad30, 0xad31, @@ -56,7 +56,7 @@ 0xadf2, 0xadf3, 0xadf4, 0xadf5, 0xadf6, 0xadf7, }; -static const Py_UNICODE __uhc_decmap_83[190] = { /* 83::41-FE */ +static const Py_UNICODE __cp949_decmap_83[190] = { /* 83::41-FE */ 0xadfa, 0xadfb, 0xadfd, 0xadfe, 0xae02, 0xae03, 0xae04, 0xae05, 0xae06, 0xae07, 0xae0a, 0xae0c, 0xae0e, 0xae0f, 0xae10, 0xae11, 0xae12, 0xae13, 0xae15, 0xae16, 0xae17, 0xae18, 0xae19, 0xae1a, @@ -83,7 +83,7 @@ 0xaee0, 0xaee1, 0xaee2, 0xaee3, 0xaee4, 0xaee5, }; -static const Py_UNICODE __uhc_decmap_84[190] = { /* 84::41-FE */ +static const Py_UNICODE __cp949_decmap_84[190] = { /* 84::41-FE */ 0xaee6, 0xaee7, 0xaee9, 0xaeea, 0xaeec, 0xaeee, 0xaeef, 0xaef0, 0xaef1, 0xaef2, 0xaef3, 0xaef5, 0xaef6, 0xaef7, 0xaef9, 0xaefa, 0xaefb, 0xaefd, 0xaefe, 0xaeff, 0xaf00, 0xaf01, 0xaf02, 0xaf03, @@ -110,7 +110,7 @@ 0xafb6, 0xafb7, 0xafba, 0xafbb, 0xafbd, 0xafbe, }; -static const Py_UNICODE __uhc_decmap_85[190] = { /* 85::41-FE */ +static const Py_UNICODE __cp949_decmap_85[190] = { /* 85::41-FE */ 0xafbf, 0xafc1, 0xafc2, 0xafc3, 0xafc4, 0xafc5, 0xafc6, 0xafca, 0xafcc, 0xafcf, 0xafd0, 0xafd1, 0xafd2, 0xafd3, 0xafd5, 0xafd6, 0xafd7, 0xafd8, 0xafd9, 0xafda, 0xafdb, 0xafdd, 0xafde, 0xafdf, @@ -137,7 +137,7 @@ 0xb097, 0xb09b, 0xb09d, 0xb09e, 0xb0a3, 0xb0a4, }; -static const Py_UNICODE __uhc_decmap_86[190] = { /* 86::41-FE */ +static const Py_UNICODE __cp949_decmap_86[190] = { /* 86::41-FE */ 0xb0a5, 0xb0a6, 0xb0a7, 0xb0aa, 0xb0b0, 0xb0b2, 0xb0b6, 0xb0b7, 0xb0b9, 0xb0ba, 0xb0bb, 0xb0bd, 0xb0be, 0xb0bf, 0xb0c0, 0xb0c1, 0xb0c2, 0xb0c3, 0xb0c6, 0xb0ca, 0xb0cb, 0xb0cc, 0xb0cd, 0xb0ce, @@ -164,7 +164,7 @@ 0xb196, 0xb197, 0xb199, 0xb19a, 0xb19b, 0xb19d, }; -static const Py_UNICODE __uhc_decmap_87[190] = { /* 87::41-FE */ +static const Py_UNICODE __cp949_decmap_87[190] = { /* 87::41-FE */ 0xb19e, 0xb19f, 0xb1a0, 0xb1a1, 0xb1a2, 0xb1a3, 0xb1a4, 0xb1a5, 0xb1a6, 0xb1a7, 0xb1a9, 0xb1aa, 0xb1ab, 0xb1ac, 0xb1ad, 0xb1ae, 0xb1af, 0xb1b0, 0xb1b1, 0xb1b2, 0xb1b3, 0xb1b4, 0xb1b5, 0xb1b6, @@ -191,7 +191,7 @@ 0xb267, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, }; -static const Py_UNICODE __uhc_decmap_88[190] = { /* 88::41-FE */ +static const Py_UNICODE __cp949_decmap_88[190] = { /* 88::41-FE */ 0xb26f, 0xb270, 0xb271, 0xb272, 0xb273, 0xb276, 0xb277, 0xb278, 0xb279, 0xb27a, 0xb27b, 0xb27d, 0xb27e, 0xb27f, 0xb280, 0xb281, 0xb282, 0xb283, 0xb286, 0xb287, 0xb288, 0xb28a, 0xb28b, 0xb28c, @@ -218,7 +218,7 @@ 0xb35a, 0xb35d, 0xb360, 0xb361, 0xb362, 0xb363, }; -static const Py_UNICODE __uhc_decmap_89[190] = { /* 89::41-FE */ +static const Py_UNICODE __cp949_decmap_89[190] = { /* 89::41-FE */ 0xb366, 0xb368, 0xb36a, 0xb36c, 0xb36d, 0xb36f, 0xb372, 0xb373, 0xb375, 0xb376, 0xb377, 0xb379, 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, 0xb37f, 0xb382, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, @@ -245,7 +245,7 @@ 0xb43f, 0xb440, 0xb441, 0xb442, 0xb443, 0xb444, }; -static const Py_UNICODE __uhc_decmap_8A[190] = { /* 8A::41-FE */ +static const Py_UNICODE __cp949_decmap_8A[190] = { /* 8A::41-FE */ 0xb445, 0xb446, 0xb447, 0xb448, 0xb449, 0xb44a, 0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb452, 0xb453, 0xb455, 0xb456, 0xb457, 0xb459, 0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, 0xb462, @@ -272,7 +272,7 @@ 0xb513, 0xb516, 0xb517, 0xb519, 0xb51a, 0xb51d, }; -static const Py_UNICODE __uhc_decmap_8B[190] = { /* 8B::41-FE */ +static const Py_UNICODE __cp949_decmap_8B[190] = { /* 8B::41-FE */ 0xb51e, 0xb51f, 0xb520, 0xb521, 0xb522, 0xb523, 0xb526, 0xb52b, 0xb52c, 0xb52d, 0xb52e, 0xb52f, 0xb532, 0xb533, 0xb535, 0xb536, 0xb537, 0xb539, 0xb53a, 0xb53b, 0xb53c, 0xb53d, 0xb53e, 0xb53f, @@ -299,7 +299,7 @@ 0xb5fa, 0xb5fb, 0xb5fc, 0xb5fd, 0xb5fe, 0xb5ff, }; -static const Py_UNICODE __uhc_decmap_8C[190] = { /* 8C::41-FE */ +static const Py_UNICODE __cp949_decmap_8C[190] = { /* 8C::41-FE */ 0xb600, 0xb601, 0xb602, 0xb603, 0xb604, 0xb605, 0xb606, 0xb607, 0xb608, 0xb609, 0xb60a, 0xb60b, 0xb60c, 0xb60d, 0xb60e, 0xb60f, 0xb612, 0xb613, 0xb615, 0xb616, 0xb617, 0xb619, 0xb61a, 0xb61b, @@ -326,7 +326,7 @@ 0xb6bd, 0xb6be, 0xb6bf, 0xb6c0, 0xb6c1, 0xb6c2, }; -static const Py_UNICODE __uhc_decmap_8D[190] = { /* 8D::41-FE */ +static const Py_UNICODE __cp949_decmap_8D[190] = { /* 8D::41-FE */ 0xb6c3, 0xb6c4, 0xb6c5, 0xb6c6, 0xb6c7, 0xb6c8, 0xb6c9, 0xb6ca, 0xb6cb, 0xb6cc, 0xb6cd, 0xb6ce, 0xb6cf, 0xb6d0, 0xb6d1, 0xb6d2, 0xb6d3, 0xb6d5, 0xb6d6, 0xb6d7, 0xb6d8, 0xb6d9, 0xb6da, 0xb6db, @@ -353,7 +353,7 @@ 0xb794, 0xb795, 0xb79a, 0xb79b, 0xb79d, 0xb79e, }; -static const Py_UNICODE __uhc_decmap_8E[190] = { /* 8E::41-FE */ +static const Py_UNICODE __cp949_decmap_8E[190] = { /* 8E::41-FE */ 0xb79f, 0xb7a1, 0xb7a2, 0xb7a3, 0xb7a4, 0xb7a5, 0xb7a6, 0xb7a7, 0xb7aa, 0xb7ae, 0xb7af, 0xb7b0, 0xb7b1, 0xb7b2, 0xb7b3, 0xb7b6, 0xb7b7, 0xb7b9, 0xb7ba, 0xb7bb, 0xb7bc, 0xb7bd, 0xb7be, 0xb7bf, @@ -380,7 +380,7 @@ 0xb87f, 0xb880, 0xb881, 0xb882, 0xb883, 0xb884, }; -static const Py_UNICODE __uhc_decmap_8F[190] = { /* 8F::41-FE */ +static const Py_UNICODE __cp949_decmap_8F[190] = { /* 8F::41-FE */ 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a, 0xb88b, 0xb88c, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892, 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, 0xb89d, @@ -407,7 +407,7 @@ 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, }; -static const Py_UNICODE __uhc_decmap_90[190] = { /* 90::41-FE */ +static const Py_UNICODE __cp949_decmap_90[190] = { /* 90::41-FE */ 0xb95a, 0xb95b, 0xb95d, 0xb95e, 0xb95f, 0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb96a, 0xb96c, 0xb96e, 0xb96f, 0xb970, 0xb971, 0xb972, 0xb973, 0xb976, 0xb977, 0xb979, 0xb97a, @@ -434,7 +434,7 @@ 0xba3f, 0xba41, 0xba43, 0xba44, 0xba45, 0xba46, }; -static const Py_UNICODE __uhc_decmap_91[190] = { /* 91::41-FE */ +static const Py_UNICODE __cp949_decmap_91[190] = { /* 91::41-FE */ 0xba47, 0xba4a, 0xba4c, 0xba4f, 0xba50, 0xba51, 0xba52, 0xba56, 0xba57, 0xba59, 0xba5a, 0xba5b, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61, 0xba62, 0xba63, 0xba66, 0xba6a, 0xba6b, 0xba6c, 0xba6d, @@ -461,7 +461,7 @@ 0xbb22, 0xbb23, 0xbb24, 0xbb25, 0xbb26, 0xbb27, }; -static const Py_UNICODE __uhc_decmap_92[190] = { /* 92::41-FE */ +static const Py_UNICODE __cp949_decmap_92[190] = { /* 92::41-FE */ 0xbb28, 0xbb2a, 0xbb2c, 0xbb2d, 0xbb2e, 0xbb2f, 0xbb30, 0xbb31, 0xbb32, 0xbb33, 0xbb37, 0xbb39, 0xbb3a, 0xbb3f, 0xbb40, 0xbb41, 0xbb42, 0xbb43, 0xbb46, 0xbb48, 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4e, @@ -488,7 +488,7 @@ 0xbbf7, 0xbbfa, 0xbbfb, 0xbbfd, 0xbbfe, 0xbc01, }; -static const Py_UNICODE __uhc_decmap_93[190] = { /* 93::41-FE */ +static const Py_UNICODE __cp949_decmap_93[190] = { /* 93::41-FE */ 0xbc03, 0xbc04, 0xbc05, 0xbc06, 0xbc07, 0xbc0a, 0xbc0e, 0xbc10, 0xbc12, 0xbc13, 0xbc19, 0xbc1a, 0xbc20, 0xbc21, 0xbc22, 0xbc23, 0xbc26, 0xbc28, 0xbc2a, 0xbc2b, 0xbc2c, 0xbc2e, 0xbc2f, 0xbc32, @@ -515,7 +515,7 @@ 0xbcf3, 0xbcf7, 0xbcf9, 0xbcfa, 0xbcfb, 0xbcfd, }; -static const Py_UNICODE __uhc_decmap_94[190] = { /* 94::41-FE */ +static const Py_UNICODE __cp949_decmap_94[190] = { /* 94::41-FE */ 0xbcfe, 0xbcff, 0xbd00, 0xbd01, 0xbd02, 0xbd03, 0xbd06, 0xbd08, 0xbd0a, 0xbd0b, 0xbd0c, 0xbd0d, 0xbd0e, 0xbd0f, 0xbd11, 0xbd12, 0xbd13, 0xbd15, 0xbd16, 0xbd17, 0xbd18, 0xbd19, 0xbd1a, 0xbd1b, @@ -542,7 +542,7 @@ 0xbdcc, 0xbdcd, 0xbdce, 0xbdcf, 0xbdd0, 0xbdd1, }; -static const Py_UNICODE __uhc_decmap_95[190] = { /* 95::41-FE */ +static const Py_UNICODE __cp949_decmap_95[190] = { /* 95::41-FE */ 0xbdd2, 0xbdd3, 0xbdd6, 0xbdd7, 0xbdd9, 0xbdda, 0xbddb, 0xbddd, 0xbdde, 0xbddf, 0xbde0, 0xbde1, 0xbde2, 0xbde3, 0xbde4, 0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbdea, 0xbdeb, 0xbdec, 0xbded, 0xbdee, @@ -569,7 +569,7 @@ 0xbeb2, 0xbeb3, 0xbeb4, 0xbeb5, 0xbeb6, 0xbeb7, }; -static const Py_UNICODE __uhc_decmap_96[190] = { /* 96::41-FE */ +static const Py_UNICODE __cp949_decmap_96[190] = { /* 96::41-FE */ 0xbeb8, 0xbeb9, 0xbeba, 0xbebb, 0xbebc, 0xbebd, 0xbebe, 0xbebf, 0xbec0, 0xbec1, 0xbec2, 0xbec3, 0xbec4, 0xbec5, 0xbec6, 0xbec7, 0xbec8, 0xbec9, 0xbeca, 0xbecb, 0xbecc, 0xbecd, 0xbece, 0xbecf, @@ -596,7 +596,7 @@ 0xbf7d, 0xbf7e, 0xbf7f, 0xbf80, 0xbf81, 0xbf82, }; -static const Py_UNICODE __uhc_decmap_97[190] = { /* 97::41-FE */ +static const Py_UNICODE __cp949_decmap_97[190] = { /* 97::41-FE */ 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, 0xbf93, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, 0xbf9b, @@ -623,7 +623,7 @@ 0xc039, 0xc03a, 0xc03b, 0xc03d, 0xc03e, 0xc03f, }; -static const Py_UNICODE __uhc_decmap_98[190] = { /* 98::41-FE */ +static const Py_UNICODE __cp949_decmap_98[190] = { /* 98::41-FE */ 0xc040, 0xc041, 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc059, @@ -650,7 +650,7 @@ 0xc125, 0xc128, 0xc129, 0xc12a, 0xc12b, 0xc12e, }; -static const Py_UNICODE __uhc_decmap_99[190] = { /* 99::41-FE */ +static const Py_UNICODE __cp949_decmap_99[190] = { /* 99::41-FE */ 0xc132, 0xc133, 0xc134, 0xc135, 0xc137, 0xc13a, 0xc13b, 0xc13d, 0xc13e, 0xc13f, 0xc141, 0xc142, 0xc143, 0xc144, 0xc145, 0xc146, 0xc147, 0xc14a, 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc152, 0xc153, @@ -677,7 +677,7 @@ 0xc21b, 0xc21d, 0xc21e, 0xc221, 0xc222, 0xc223, }; -static const Py_UNICODE __uhc_decmap_9A[190] = { /* 9A::41-FE */ +static const Py_UNICODE __cp949_decmap_9A[190] = { /* 9A::41-FE */ 0xc224, 0xc225, 0xc226, 0xc227, 0xc22a, 0xc22c, 0xc22e, 0xc230, 0xc233, 0xc235, 0xc236, 0xc237, 0xc238, 0xc239, 0xc23a, 0xc23b, 0xc23c, 0xc23d, 0xc23e, 0xc23f, 0xc240, 0xc241, 0xc242, 0xc243, @@ -704,7 +704,7 @@ 0xc306, 0xc307, 0xc30a, 0xc30b, 0xc30e, 0xc30f, }; -static const Py_UNICODE __uhc_decmap_9B[190] = { /* 9B::41-FE */ +static const Py_UNICODE __cp949_decmap_9B[190] = { /* 9B::41-FE */ 0xc310, 0xc311, 0xc312, 0xc316, 0xc317, 0xc319, 0xc31a, 0xc31b, 0xc31d, 0xc31e, 0xc31f, 0xc320, 0xc321, 0xc322, 0xc323, 0xc326, 0xc327, 0xc32a, 0xc32b, 0xc32c, 0xc32d, 0xc32e, 0xc32f, 0xc330, @@ -731,7 +731,7 @@ 0xc3d3, 0xc3d4, 0xc3d5, 0xc3d6, 0xc3d7, 0xc3da, }; -static const Py_UNICODE __uhc_decmap_9C[190] = { /* 9C::41-FE */ +static const Py_UNICODE __cp949_decmap_9C[190] = { /* 9C::41-FE */ 0xc3db, 0xc3dd, 0xc3de, 0xc3e1, 0xc3e3, 0xc3e4, 0xc3e5, 0xc3e6, 0xc3e7, 0xc3ea, 0xc3eb, 0xc3ec, 0xc3ee, 0xc3ef, 0xc3f0, 0xc3f1, 0xc3f2, 0xc3f3, 0xc3f6, 0xc3f7, 0xc3f9, 0xc3fa, 0xc3fb, 0xc3fc, @@ -758,7 +758,7 @@ 0xc4a4, 0xc4a5, 0xc4a6, 0xc4a7, 0xc4a8, 0xc4a9, }; -static const Py_UNICODE __uhc_decmap_9D[190] = { /* 9D::41-FE */ +static const Py_UNICODE __cp949_decmap_9D[190] = { /* 9D::41-FE */ 0xc4aa, 0xc4ab, 0xc4ac, 0xc4ad, 0xc4ae, 0xc4af, 0xc4b0, 0xc4b1, 0xc4b2, 0xc4b3, 0xc4b4, 0xc4b5, 0xc4b6, 0xc4b7, 0xc4b9, 0xc4ba, 0xc4bb, 0xc4bd, 0xc4be, 0xc4bf, 0xc4c0, 0xc4c1, 0xc4c2, 0xc4c3, @@ -785,7 +785,7 @@ 0xc58b, 0xc58e, 0xc590, 0xc592, 0xc593, 0xc594, }; -static const Py_UNICODE __uhc_decmap_9E[190] = { /* 9E::41-FE */ +static const Py_UNICODE __cp949_decmap_9E[190] = { /* 9E::41-FE */ 0xc596, 0xc599, 0xc59a, 0xc59b, 0xc59d, 0xc59e, 0xc59f, 0xc5a1, 0xc5a2, 0xc5a3, 0xc5a4, 0xc5a5, 0xc5a6, 0xc5a7, 0xc5a8, 0xc5aa, 0xc5ab, 0xc5ac, 0xc5ad, 0xc5ae, 0xc5af, 0xc5b0, 0xc5b1, 0xc5b2, @@ -812,7 +812,7 @@ 0xc69f, 0xc6a0, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a6, }; -static const Py_UNICODE __uhc_decmap_9F[190] = { /* 9F::41-FE */ +static const Py_UNICODE __cp949_decmap_9F[190] = { /* 9F::41-FE */ 0xc6a8, 0xc6aa, 0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b2, 0xc6b3, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c2, 0xc6c4, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, @@ -839,7 +839,7 @@ 0xc7b1, 0xc7b2, 0xc7b3, 0xc7b5, 0xc7b6, 0xc7b7, }; -static const Py_UNICODE __uhc_decmap_A0[190] = { /* A0::41-FE */ +static const Py_UNICODE __cp949_decmap_A0[190] = { /* A0::41-FE */ 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7be, 0xc7c2, 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7ca, 0xc7cb, 0xc7cd, 0xc7cf, 0xc7d1, 0xc7d2, 0xc7d3, 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d9, 0xc7da, @@ -866,7 +866,7 @@ 0xc89c, 0xc89e, 0xc8a0, 0xc8a2, 0xc8a3, 0xc8a4, }; -static const Py_UNICODE __uhc_decmap_A1[96] = { /* A1::41-A0 */ +static const Py_UNICODE __cp949_decmap_A1[96] = { /* A1::41-A0 */ 0xc8a5, 0xc8a6, 0xc8a7, 0xc8a9, 0xc8aa, 0xc8ab, 0xc8ac, 0xc8ad, 0xc8ae, 0xc8af, 0xc8b0, 0xc8b1, 0xc8b2, 0xc8b3, 0xc8b4, 0xc8b5, 0xc8b6, 0xc8b7, 0xc8b8, 0xc8b9, 0xc8ba, 0xc8bb, 0xc8be, 0xc8bf, @@ -881,7 +881,7 @@ 0xc902, 0xc903, 0xc907, 0xc908, 0xc909, 0xc90a, 0xc90b, 0xc90e, }; -static const Py_UNICODE __uhc_decmap_A2[96] = { /* A2::41-A0 */ +static const Py_UNICODE __cp949_decmap_A2[96] = { /* A2::41-A0 */ 0xc910, 0xc912, 0xc913, 0xc914, 0xc915, 0xc916, 0xc917, 0xc919, 0xc91a, 0xc91b, 0xc91c, 0xc91d, 0xc91e, 0xc91f, 0xc920, 0xc921, 0xc922, 0xc923, 0xc924, 0xc925, 0xc926, 0xc927, 0xc928, 0xc929, @@ -896,7 +896,7 @@ 0xc967, 0xc968, 0xc969, 0xc96a, 0xc96b, 0xc96d, 0xc96e, 0xc96f, }; -static const Py_UNICODE __uhc_decmap_A3[96] = { /* A3::41-A0 */ +static const Py_UNICODE __cp949_decmap_A3[96] = { /* A3::41-A0 */ 0xc971, 0xc972, 0xc973, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979, 0xc97a, 0xc97b, 0xc97d, 0xc97e, 0xc97f, 0xc980, 0xc981, 0xc982, 0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0xc98a, 0xc98b, 0xc98d, @@ -911,7 +911,7 @@ 0xc9cd, 0xc9ce, 0xc9cf, 0xc9d2, 0xc9d4, 0xc9d7, 0xc9d8, 0xc9db, }; -static const Py_UNICODE __uhc_decmap_A4[96] = { /* A4::41-A0 */ +static const Py_UNICODE __cp949_decmap_A4[96] = { /* A4::41-A0 */ 0xc9de, 0xc9df, 0xc9e1, 0xc9e3, 0xc9e5, 0xc9e6, 0xc9e8, 0xc9e9, 0xc9ea, 0xc9eb, 0xc9ee, 0xc9f2, 0xc9f3, 0xc9f4, 0xc9f5, 0xc9f6, 0xc9f7, 0xc9fa, 0xc9fb, 0xc9fd, 0xc9fe, 0xc9ff, 0xca01, 0xca02, @@ -926,7 +926,7 @@ 0xca3f, 0xca40, 0xca41, 0xca42, 0xca43, 0xca44, 0xca45, 0xca46, }; -static const Py_UNICODE __uhc_decmap_A5[96] = { /* A5::41-A0 */ +static const Py_UNICODE __cp949_decmap_A5[96] = { /* A5::41-A0 */ 0xca47, 0xca48, 0xca49, 0xca4a, 0xca4b, 0xca4e, 0xca4f, 0xca51, 0xca52, 0xca53, 0xca55, 0xca56, 0xca57, 0xca58, 0xca59, 0xca5a, 0xca5b, 0xca5e, 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, @@ -941,7 +941,7 @@ 0xcaa0, 0xcaa1, 0xcaa2, 0xcaa3, 0xcaa4, 0xcaa5, 0xcaa6, 0xcaa7, }; -static const Py_UNICODE __uhc_decmap_A6[96] = { /* A6::41-A0 */ +static const Py_UNICODE __cp949_decmap_A6[96] = { /* A6::41-A0 */ 0xcaa8, 0xcaa9, 0xcaaa, 0xcaab, 0xcaac, 0xcaad, 0xcaae, 0xcaaf, 0xcab0, 0xcab1, 0xcab2, 0xcab3, 0xcab4, 0xcab5, 0xcab6, 0xcab7, 0xcab8, 0xcab9, 0xcaba, 0xcabb, 0xcabe, 0xcabf, 0xcac1, 0xcac2, @@ -956,7 +956,7 @@ 0xcb02, 0xcb03, 0xcb04, 0xcb05, 0xcb06, 0xcb07, 0xcb09, 0xcb0a, }; -static const Py_UNICODE __uhc_decmap_A7[96] = { /* A7::41-A0 */ +static const Py_UNICODE __cp949_decmap_A7[96] = { /* A7::41-A0 */ 0xcb0b, 0xcb0c, 0xcb0d, 0xcb0e, 0xcb0f, 0xcb11, 0xcb12, 0xcb13, 0xcb15, 0xcb16, 0xcb17, 0xcb19, 0xcb1a, 0xcb1b, 0xcb1c, 0xcb1d, 0xcb1e, 0xcb1f, 0xcb22, 0xcb23, 0xcb24, 0xcb25, 0xcb26, 0xcb27, @@ -971,7 +971,7 @@ 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xcb69, 0xcb6a, 0xcb6b, 0xcb6c, }; -static const Py_UNICODE __uhc_decmap_A8[96] = { /* A8::41-A0 */ +static const Py_UNICODE __cp949_decmap_A8[96] = { /* A8::41-A0 */ 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xcb71, 0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb7e, 0xcb7f, 0xcb80, 0xcb81, 0xcb82, 0xcb83, 0xcb84, 0xcb85, 0xcb86, @@ -986,7 +986,7 @@ 0xcbbd, 0xcbbe, 0xcbbf, 0xcbc0, 0xcbc1, 0xcbc2, 0xcbc3, 0xcbc4, }; -static const Py_UNICODE __uhc_decmap_A9[96] = { /* A9::41-A0 */ +static const Py_UNICODE __cp949_decmap_A9[96] = { /* A9::41-A0 */ 0xcbc5, 0xcbc6, 0xcbc7, 0xcbc8, 0xcbc9, 0xcbca, 0xcbcb, 0xcbcc, 0xcbcd, 0xcbce, 0xcbcf, 0xcbd0, 0xcbd1, 0xcbd2, 0xcbd3, 0xcbd5, 0xcbd6, 0xcbd7, 0xcbd8, 0xcbd9, 0xcbda, 0xcbdb, 0xcbdc, 0xcbdd, @@ -1001,7 +1001,7 @@ 0xcc19, 0xcc1a, 0xcc1b, 0xcc1e, 0xcc1f, 0xcc20, 0xcc23, 0xcc24, }; -static const Py_UNICODE __uhc_decmap_AA[96] = { /* AA::41-A0 */ +static const Py_UNICODE __cp949_decmap_AA[96] = { /* AA::41-A0 */ 0xcc25, 0xcc26, 0xcc2a, 0xcc2b, 0xcc2d, 0xcc2f, 0xcc31, 0xcc32, 0xcc33, 0xcc34, 0xcc35, 0xcc36, 0xcc37, 0xcc3a, 0xcc3f, 0xcc40, 0xcc41, 0xcc42, 0xcc43, 0xcc46, 0xcc47, 0xcc49, 0xcc4a, 0xcc4b, @@ -1016,7 +1016,7 @@ 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92, 0xcc93, }; -static const Py_UNICODE __uhc_decmap_AB[96] = { /* AB::41-A0 */ +static const Py_UNICODE __cp949_decmap_AB[96] = { /* AB::41-A0 */ 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc9a, 0xcc9b, 0xcc9d, 0xcc9e, 0xcc9f, 0xcca1, 0xcca2, 0xcca3, 0xcca4, 0xcca5, 0xcca6, 0xcca7, 0xccaa, 0xccae, 0xccaf, 0xccb0, 0xccb1, 0xccb2, 0xccb3, 0xccb6, @@ -1031,7 +1031,7 @@ 0xccf6, 0xccf7, 0xccf8, 0xccf9, 0xccfa, 0xccfb, 0xccfc, 0xccfd, }; -static const Py_UNICODE __uhc_decmap_AC[96] = { /* AC::41-A0 */ +static const Py_UNICODE __cp949_decmap_AC[96] = { /* AC::41-A0 */ 0xccfe, 0xccff, 0xcd00, 0xcd02, 0xcd03, 0xcd04, 0xcd05, 0xcd06, 0xcd07, 0xcd0a, 0xcd0b, 0xcd0d, 0xcd0e, 0xcd0f, 0xcd11, 0xcd12, 0xcd13, 0xcd14, 0xcd15, 0xcd16, 0xcd17, 0xcd1a, 0xcd1c, 0xcd1e, @@ -1046,7 +1046,7 @@ 0xcd57, 0xcd58, 0xcd59, 0xcd5a, 0xcd5b, 0xcd5d, 0xcd5e, 0xcd5f, }; -static const Py_UNICODE __uhc_decmap_AD[96] = { /* AD::41-A0 */ +static const Py_UNICODE __cp949_decmap_AD[96] = { /* AD::41-A0 */ 0xcd61, 0xcd62, 0xcd63, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69, 0xcd6a, 0xcd6b, 0xcd6e, 0xcd70, 0xcd72, 0xcd73, 0xcd74, 0xcd75, 0xcd76, 0xcd77, 0xcd79, 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e, @@ -1061,7 +1061,7 @@ 0xcdbd, 0xcdbe, 0xcdbf, 0xcdc0, 0xcdc1, 0xcdc2, 0xcdc3, 0xcdc5, }; -static const Py_UNICODE __uhc_decmap_AE[96] = { /* AE::41-A0 */ +static const Py_UNICODE __cp949_decmap_AE[96] = { /* AE::41-A0 */ 0xcdc6, 0xcdc7, 0xcdc8, 0xcdc9, 0xcdca, 0xcdcb, 0xcdcd, 0xcdce, 0xcdcf, 0xcdd1, 0xcdd2, 0xcdd3, 0xcdd4, 0xcdd5, 0xcdd6, 0xcdd7, 0xcdd8, 0xcdd9, 0xcdda, 0xcddb, 0xcddc, 0xcddd, 0xcdde, 0xcddf, @@ -1076,7 +1076,7 @@ 0xce22, 0xce23, 0xce25, 0xce26, 0xce27, 0xce29, 0xce2a, 0xce2b, }; -static const Py_UNICODE __uhc_decmap_AF[96] = { /* AF::41-A0 */ +static const Py_UNICODE __cp949_decmap_AF[96] = { /* AF::41-A0 */ 0xce2c, 0xce2d, 0xce2e, 0xce2f, 0xce32, 0xce34, 0xce36, 0xce37, 0xce38, 0xce39, 0xce3a, 0xce3b, 0xce3c, 0xce3d, 0xce3e, 0xce3f, 0xce40, 0xce41, 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, @@ -1091,7 +1091,7 @@ 0xce8e, 0xce8f, 0xce92, 0xce93, 0xce95, 0xce96, 0xce97, 0xce99, }; -static const Py_UNICODE __uhc_decmap_B0[96] = { /* B0::41-A0 */ +static const Py_UNICODE __cp949_decmap_B0[96] = { /* B0::41-A0 */ 0xce9a, 0xce9b, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea2, 0xcea6, 0xcea7, 0xcea8, 0xcea9, 0xceaa, 0xceab, 0xceae, 0xceaf, 0xceb0, 0xceb1, 0xceb2, 0xceb3, 0xceb4, 0xceb5, 0xceb6, 0xceb7, 0xceb8, @@ -1106,7 +1106,7 @@ 0xcef3, 0xcef6, 0xcefa, 0xcefb, 0xcefc, 0xcefd, 0xcefe, 0xceff, }; -static const Py_UNICODE __uhc_decmap_B1[96] = { /* B1::41-A0 */ +static const Py_UNICODE __cp949_decmap_B1[96] = { /* B1::41-A0 */ 0xcf02, 0xcf03, 0xcf05, 0xcf06, 0xcf07, 0xcf09, 0xcf0a, 0xcf0b, 0xcf0c, 0xcf0d, 0xcf0e, 0xcf0f, 0xcf12, 0xcf14, 0xcf16, 0xcf17, 0xcf18, 0xcf19, 0xcf1a, 0xcf1b, 0xcf1d, 0xcf1e, 0xcf1f, 0xcf21, @@ -1121,7 +1121,7 @@ 0xcf61, 0xcf62, 0xcf63, 0xcf66, 0xcf68, 0xcf6a, 0xcf6b, 0xcf6c, }; -static const Py_UNICODE __uhc_decmap_B2[96] = { /* B2::41-A0 */ +static const Py_UNICODE __cp949_decmap_B2[96] = { /* B2::41-A0 */ 0xcf6d, 0xcf6e, 0xcf6f, 0xcf72, 0xcf73, 0xcf75, 0xcf76, 0xcf77, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xcf7f, 0xcf81, 0xcf82, 0xcf83, 0xcf84, 0xcf86, 0xcf87, 0xcf88, 0xcf89, 0xcf8a, @@ -1136,7 +1136,7 @@ 0xcfc3, 0xcfc5, 0xcfc6, 0xcfc7, 0xcfc8, 0xcfc9, 0xcfca, 0xcfcb, }; -static const Py_UNICODE __uhc_decmap_B3[96] = { /* B3::41-A0 */ +static const Py_UNICODE __cp949_decmap_B3[96] = { /* B3::41-A0 */ 0xcfcc, 0xcfcd, 0xcfce, 0xcfcf, 0xcfd0, 0xcfd1, 0xcfd2, 0xcfd3, 0xcfd4, 0xcfd5, 0xcfd6, 0xcfd7, 0xcfd8, 0xcfd9, 0xcfda, 0xcfdb, 0xcfdc, 0xcfdd, 0xcfde, 0xcfdf, 0xcfe2, 0xcfe3, 0xcfe5, 0xcfe6, @@ -1151,7 +1151,7 @@ 0xd025, 0xd026, 0xd027, 0xd028, 0xd029, 0xd02a, 0xd02b, 0xd02c, }; -static const Py_UNICODE __uhc_decmap_B4[96] = { /* B4::41-A0 */ +static const Py_UNICODE __cp949_decmap_B4[96] = { /* B4::41-A0 */ 0xd02e, 0xd02f, 0xd030, 0xd031, 0xd032, 0xd033, 0xd036, 0xd037, 0xd039, 0xd03a, 0xd03b, 0xd03d, 0xd03e, 0xd03f, 0xd040, 0xd041, 0xd042, 0xd043, 0xd046, 0xd048, 0xd04a, 0xd04b, 0xd04c, 0xd04d, @@ -1166,7 +1166,7 @@ 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd092, 0xd093, 0xd094, }; -static const Py_UNICODE __uhc_decmap_B5[96] = { /* B5::41-A0 */ +static const Py_UNICODE __cp949_decmap_B5[96] = { /* B5::41-A0 */ 0xd095, 0xd096, 0xd097, 0xd098, 0xd099, 0xd09a, 0xd09b, 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0, 0xd0a1, 0xd0a2, 0xd0a3, 0xd0a6, 0xd0a7, 0xd0a9, 0xd0aa, 0xd0ab, 0xd0ad, 0xd0ae, 0xd0af, 0xd0b0, @@ -1181,7 +1181,7 @@ 0xd0fd, 0xd0fe, 0xd0ff, 0xd100, 0xd101, 0xd102, 0xd103, 0xd104, }; -static const Py_UNICODE __uhc_decmap_B6[96] = { /* B6::41-A0 */ +static const Py_UNICODE __cp949_decmap_B6[96] = { /* B6::41-A0 */ 0xd105, 0xd106, 0xd107, 0xd108, 0xd109, 0xd10a, 0xd10b, 0xd10c, 0xd10e, 0xd10f, 0xd110, 0xd111, 0xd112, 0xd113, 0xd114, 0xd115, 0xd116, 0xd117, 0xd118, 0xd119, 0xd11a, 0xd11b, 0xd11c, 0xd11d, @@ -1196,7 +1196,7 @@ 0xd164, 0xd165, 0xd166, 0xd167, 0xd169, 0xd16a, 0xd16b, 0xd16d, }; -static const Py_UNICODE __uhc_decmap_B7[96] = { /* B7::41-A0 */ +static const Py_UNICODE __cp949_decmap_B7[96] = { /* B7::41-A0 */ 0xd16e, 0xd16f, 0xd170, 0xd171, 0xd172, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177, 0xd178, 0xd179, 0xd17a, 0xd17b, 0xd17d, 0xd17e, 0xd17f, 0xd180, 0xd181, 0xd182, 0xd183, 0xd185, 0xd186, 0xd187, @@ -1211,7 +1211,7 @@ 0xd1c8, 0xd1c9, 0xd1ca, 0xd1cb, 0xd1cc, 0xd1cd, 0xd1ce, 0xd1cf, }; -static const Py_UNICODE __uhc_decmap_B8[96] = { /* B8::41-A0 */ +static const Py_UNICODE __cp949_decmap_B8[96] = { /* B8::41-A0 */ 0xd1d0, 0xd1d1, 0xd1d2, 0xd1d3, 0xd1d4, 0xd1d5, 0xd1d6, 0xd1d7, 0xd1d9, 0xd1da, 0xd1db, 0xd1dc, 0xd1dd, 0xd1de, 0xd1df, 0xd1e0, 0xd1e1, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0xd1e7, 0xd1e8, @@ -1226,7 +1226,7 @@ 0xd222, 0xd223, 0xd224, 0xd225, 0xd226, 0xd227, 0xd228, 0xd229, }; -static const Py_UNICODE __uhc_decmap_B9[96] = { /* B9::41-A0 */ +static const Py_UNICODE __cp949_decmap_B9[96] = { /* B9::41-A0 */ 0xd22a, 0xd22b, 0xd22e, 0xd22f, 0xd231, 0xd232, 0xd233, 0xd235, 0xd236, 0xd237, 0xd238, 0xd239, 0xd23a, 0xd23b, 0xd23e, 0xd240, 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0xd249, 0xd24a, @@ -1241,7 +1241,7 @@ 0xd283, 0xd285, 0xd286, 0xd287, 0xd289, 0xd28a, 0xd28b, 0xd28c, }; -static const Py_UNICODE __uhc_decmap_BA[96] = { /* BA::41-A0 */ +static const Py_UNICODE __cp949_decmap_BA[96] = { /* BA::41-A0 */ 0xd28d, 0xd28e, 0xd28f, 0xd292, 0xd293, 0xd294, 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0xd29d, 0xd29e, 0xd29f, 0xd2a1, 0xd2a2, 0xd2a3, 0xd2a5, 0xd2a6, 0xd2a7, 0xd2a8, 0xd2a9, 0xd2aa, @@ -1256,7 +1256,7 @@ 0xd2ef, 0xd2f2, 0xd2f3, 0xd2f5, 0xd2f6, 0xd2f7, 0xd2f9, 0xd2fa, }; -static const Py_UNICODE __uhc_decmap_BB[96] = { /* BB::41-A0 */ +static const Py_UNICODE __cp949_decmap_BB[96] = { /* BB::41-A0 */ 0xd2fb, 0xd2fc, 0xd2fd, 0xd2fe, 0xd2ff, 0xd302, 0xd304, 0xd306, 0xd307, 0xd308, 0xd309, 0xd30a, 0xd30b, 0xd30f, 0xd311, 0xd312, 0xd313, 0xd315, 0xd317, 0xd318, 0xd319, 0xd31a, 0xd31b, 0xd31e, @@ -1271,7 +1271,7 @@ 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, 0xd369, }; -static const Py_UNICODE __uhc_decmap_BC[96] = { /* BC::41-A0 */ +static const Py_UNICODE __cp949_decmap_BC[96] = { /* BC::41-A0 */ 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, 0xd371, 0xd372, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, 0xd379, 0xd37a, 0xd37b, 0xd37e, 0xd37f, 0xd381, 0xd382, 0xd383, 0xd385, @@ -1286,7 +1286,7 @@ 0xd3ce, 0xd3cf, 0xd3d1, 0xd3d2, 0xd3d3, 0xd3d4, 0xd3d5, 0xd3d6, }; -static const Py_UNICODE __uhc_decmap_BD[96] = { /* BD::41-A0 */ +static const Py_UNICODE __cp949_decmap_BD[96] = { /* BD::41-A0 */ 0xd3d7, 0xd3d9, 0xd3da, 0xd3db, 0xd3dc, 0xd3dd, 0xd3de, 0xd3df, 0xd3e0, 0xd3e2, 0xd3e4, 0xd3e5, 0xd3e6, 0xd3e7, 0xd3e8, 0xd3e9, 0xd3ea, 0xd3eb, 0xd3ee, 0xd3ef, 0xd3f1, 0xd3f2, 0xd3f3, 0xd3f5, @@ -1301,7 +1301,7 @@ 0xd430, 0xd431, 0xd432, 0xd433, 0xd434, 0xd435, 0xd436, 0xd437, }; -static const Py_UNICODE __uhc_decmap_BE[96] = { /* BE::41-A0 */ +static const Py_UNICODE __cp949_decmap_BE[96] = { /* BE::41-A0 */ 0xd438, 0xd439, 0xd43a, 0xd43b, 0xd43c, 0xd43d, 0xd43e, 0xd43f, 0xd441, 0xd442, 0xd443, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449, 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451, @@ -1316,7 +1316,7 @@ 0xd496, 0xd497, 0xd498, 0xd499, 0xd49a, 0xd49b, 0xd49c, 0xd49d, }; -static const Py_UNICODE __uhc_decmap_BF[96] = { /* BF::41-A0 */ +static const Py_UNICODE __cp949_decmap_BF[96] = { /* BF::41-A0 */ 0xd49e, 0xd49f, 0xd4a0, 0xd4a1, 0xd4a2, 0xd4a3, 0xd4a4, 0xd4a5, 0xd4a6, 0xd4a7, 0xd4a8, 0xd4aa, 0xd4ab, 0xd4ac, 0xd4ad, 0xd4ae, 0xd4af, 0xd4b0, 0xd4b1, 0xd4b2, 0xd4b3, 0xd4b4, 0xd4b5, 0xd4b6, @@ -1331,7 +1331,7 @@ 0xd4f3, 0xd4f4, 0xd4f5, 0xd4f6, 0xd4f7, 0xd4f9, 0xd4fa, 0xd4fc, }; -static const Py_UNICODE __uhc_decmap_C0[96] = { /* C0::41-A0 */ +static const Py_UNICODE __cp949_decmap_C0[96] = { /* C0::41-A0 */ 0xd4fe, 0xd4ff, 0xd500, 0xd501, 0xd502, 0xd503, 0xd505, 0xd506, 0xd507, 0xd509, 0xd50a, 0xd50b, 0xd50d, 0xd50e, 0xd50f, 0xd510, 0xd511, 0xd512, 0xd513, 0xd516, 0xd518, 0xd519, 0xd51a, 0xd51b, @@ -1346,7 +1346,7 @@ 0xd55a, 0xd55b, 0xd55d, 0xd55e, 0xd55f, 0xd561, 0xd562, 0xd563, }; -static const Py_UNICODE __uhc_decmap_C1[96] = { /* C1::41-A0 */ +static const Py_UNICODE __cp949_decmap_C1[96] = { /* C1::41-A0 */ 0xd564, 0xd566, 0xd567, 0xd56a, 0xd56c, 0xd56e, 0xd56f, 0xd570, 0xd571, 0xd572, 0xd573, 0xd576, 0xd577, 0xd579, 0xd57a, 0xd57b, 0xd57d, 0xd57e, 0xd57f, 0xd580, 0xd581, 0xd582, 0xd583, 0xd586, @@ -1361,7 +1361,7 @@ 0xd5c0, 0xd5c1, 0xd5c2, 0xd5c3, 0xd5c4, 0xd5c5, 0xd5c6, 0xd5c7, }; -static const Py_UNICODE __uhc_decmap_C2[96] = { /* C2::41-A0 */ +static const Py_UNICODE __cp949_decmap_C2[96] = { /* C2::41-A0 */ 0xd5ca, 0xd5cb, 0xd5cd, 0xd5ce, 0xd5cf, 0xd5d1, 0xd5d3, 0xd5d4, 0xd5d5, 0xd5d6, 0xd5d7, 0xd5da, 0xd5dc, 0xd5de, 0xd5df, 0xd5e0, 0xd5e1, 0xd5e2, 0xd5e3, 0xd5e6, 0xd5e7, 0xd5e9, 0xd5ea, 0xd5eb, @@ -1376,7 +1376,7 @@ 0xd632, 0xd633, 0xd634, 0xd635, 0xd636, 0xd637, 0xd63a, 0xd63b, }; -static const Py_UNICODE __uhc_decmap_C3[96] = { /* C3::41-A0 */ +static const Py_UNICODE __cp949_decmap_C3[96] = { /* C3::41-A0 */ 0xd63d, 0xd63e, 0xd63f, 0xd641, 0xd642, 0xd643, 0xd644, 0xd646, 0xd647, 0xd64a, 0xd64c, 0xd64e, 0xd64f, 0xd650, 0xd652, 0xd653, 0xd656, 0xd657, 0xd659, 0xd65a, 0xd65b, 0xd65d, 0xd65e, 0xd65f, @@ -1391,7 +1391,7 @@ 0xd6a2, 0xd6a3, 0xd6a4, 0xd6a5, 0xd6a6, 0xd6a7, 0xd6a9, 0xd6aa, }; -static const Py_UNICODE __uhc_decmap_C4[96] = { /* C4::41-A0 */ +static const Py_UNICODE __cp949_decmap_C4[96] = { /* C4::41-A0 */ 0xd6ab, 0xd6ad, 0xd6ae, 0xd6af, 0xd6b1, 0xd6b2, 0xd6b3, 0xd6b4, 0xd6b5, 0xd6b6, 0xd6b7, 0xd6b8, 0xd6ba, 0xd6bc, 0xd6bd, 0xd6be, 0xd6bf, 0xd6c0, 0xd6c1, 0xd6c2, 0xd6c3, 0xd6c6, 0xd6c7, 0xd6c9, @@ -1406,7 +1406,7 @@ 0xd70c, 0xd70d, 0xd70e, 0xd70f, 0xd710, 0xd712, 0xd713, 0xd714, }; -static const Py_UNICODE __uhc_decmap_C5[96] = { /* C5::41-A0 */ +static const Py_UNICODE __cp949_decmap_C5[96] = { /* C5::41-A0 */ 0xd715, 0xd716, 0xd717, 0xd71a, 0xd71b, 0xd71d, 0xd71e, 0xd71f, 0xd721, 0xd722, 0xd723, 0xd724, 0xd725, 0xd726, 0xd727, 0xd72a, 0xd72c, 0xd72e, 0xd72f, 0xd730, 0xd731, 0xd732, 0xd733, 0xd736, @@ -1421,84 +1421,84 @@ 0xd782, 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd78a, 0xd78b, }; -static const Py_UNICODE __uhc_decmap_C6[18] = { /* C6::41-52 */ +static const Py_UNICODE __cp949_decmap_C6[18] = { /* C6::41-52 */ 0xd78d, 0xd78e, 0xd78f, 0xd791, 0xd792, 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd79a, 0xd79c, 0xd79e, 0xd79f, 0xd7a0, 0xd7a1, 0xd7a2, 0xd7a3, }; -static const struct dbcs_index uhc_decmap[128] = { +static const struct dbcs_index cp949_decmap[128] = { /* 0x80 */ {0, 0, 0}, -/* 0x81 */ {__uhc_decmap_81, 0x41, 0xfe}, -/* 0x82 */ {__uhc_decmap_82, 0x41, 0xfe}, -/* 0x83 */ {__uhc_decmap_83, 0x41, 0xfe}, -/* 0x84 */ {__uhc_decmap_84, 0x41, 0xfe}, -/* 0x85 */ {__uhc_decmap_85, 0x41, 0xfe}, -/* 0x86 */ {__uhc_decmap_86, 0x41, 0xfe}, -/* 0x87 */ {__uhc_decmap_87, 0x41, 0xfe}, -/* 0x88 */ {__uhc_decmap_88, 0x41, 0xfe}, -/* 0x89 */ {__uhc_decmap_89, 0x41, 0xfe}, -/* 0x8A */ {__uhc_decmap_8A, 0x41, 0xfe}, -/* 0x8B */ {__uhc_decmap_8B, 0x41, 0xfe}, -/* 0x8C */ {__uhc_decmap_8C, 0x41, 0xfe}, -/* 0x8D */ {__uhc_decmap_8D, 0x41, 0xfe}, -/* 0x8E */ {__uhc_decmap_8E, 0x41, 0xfe}, -/* 0x8F */ {__uhc_decmap_8F, 0x41, 0xfe}, -/* 0x90 */ {__uhc_decmap_90, 0x41, 0xfe}, -/* 0x91 */ {__uhc_decmap_91, 0x41, 0xfe}, -/* 0x92 */ {__uhc_decmap_92, 0x41, 0xfe}, -/* 0x93 */ {__uhc_decmap_93, 0x41, 0xfe}, -/* 0x94 */ {__uhc_decmap_94, 0x41, 0xfe}, -/* 0x95 */ {__uhc_decmap_95, 0x41, 0xfe}, -/* 0x96 */ {__uhc_decmap_96, 0x41, 0xfe}, -/* 0x97 */ {__uhc_decmap_97, 0x41, 0xfe}, -/* 0x98 */ {__uhc_decmap_98, 0x41, 0xfe}, -/* 0x99 */ {__uhc_decmap_99, 0x41, 0xfe}, -/* 0x9A */ {__uhc_decmap_9A, 0x41, 0xfe}, -/* 0x9B */ {__uhc_decmap_9B, 0x41, 0xfe}, -/* 0x9C */ {__uhc_decmap_9C, 0x41, 0xfe}, -/* 0x9D */ {__uhc_decmap_9D, 0x41, 0xfe}, -/* 0x9E */ {__uhc_decmap_9E, 0x41, 0xfe}, -/* 0x9F */ {__uhc_decmap_9F, 0x41, 0xfe}, -/* 0xA0 */ {__uhc_decmap_A0, 0x41, 0xfe}, -/* 0xA1 */ {__uhc_decmap_A1, 0x41, 0xa0}, -/* 0xA2 */ {__uhc_decmap_A2, 0x41, 0xa0}, -/* 0xA3 */ {__uhc_decmap_A3, 0x41, 0xa0}, -/* 0xA4 */ {__uhc_decmap_A4, 0x41, 0xa0}, -/* 0xA5 */ {__uhc_decmap_A5, 0x41, 0xa0}, -/* 0xA6 */ {__uhc_decmap_A6, 0x41, 0xa0}, -/* 0xA7 */ {__uhc_decmap_A7, 0x41, 0xa0}, -/* 0xA8 */ {__uhc_decmap_A8, 0x41, 0xa0}, -/* 0xA9 */ {__uhc_decmap_A9, 0x41, 0xa0}, -/* 0xAA */ {__uhc_decmap_AA, 0x41, 0xa0}, -/* 0xAB */ {__uhc_decmap_AB, 0x41, 0xa0}, -/* 0xAC */ {__uhc_decmap_AC, 0x41, 0xa0}, -/* 0xAD */ {__uhc_decmap_AD, 0x41, 0xa0}, -/* 0xAE */ {__uhc_decmap_AE, 0x41, 0xa0}, -/* 0xAF */ {__uhc_decmap_AF, 0x41, 0xa0}, -/* 0xB0 */ {__uhc_decmap_B0, 0x41, 0xa0}, -/* 0xB1 */ {__uhc_decmap_B1, 0x41, 0xa0}, -/* 0xB2 */ {__uhc_decmap_B2, 0x41, 0xa0}, -/* 0xB3 */ {__uhc_decmap_B3, 0x41, 0xa0}, -/* 0xB4 */ {__uhc_decmap_B4, 0x41, 0xa0}, -/* 0xB5 */ {__uhc_decmap_B5, 0x41, 0xa0}, -/* 0xB6 */ {__uhc_decmap_B6, 0x41, 0xa0}, -/* 0xB7 */ {__uhc_decmap_B7, 0x41, 0xa0}, -/* 0xB8 */ {__uhc_decmap_B8, 0x41, 0xa0}, -/* 0xB9 */ {__uhc_decmap_B9, 0x41, 0xa0}, -/* 0xBA */ {__uhc_decmap_BA, 0x41, 0xa0}, -/* 0xBB */ {__uhc_decmap_BB, 0x41, 0xa0}, -/* 0xBC */ {__uhc_decmap_BC, 0x41, 0xa0}, -/* 0xBD */ {__uhc_decmap_BD, 0x41, 0xa0}, -/* 0xBE */ {__uhc_decmap_BE, 0x41, 0xa0}, -/* 0xBF */ {__uhc_decmap_BF, 0x41, 0xa0}, -/* 0xC0 */ {__uhc_decmap_C0, 0x41, 0xa0}, -/* 0xC1 */ {__uhc_decmap_C1, 0x41, 0xa0}, -/* 0xC2 */ {__uhc_decmap_C2, 0x41, 0xa0}, -/* 0xC3 */ {__uhc_decmap_C3, 0x41, 0xa0}, -/* 0xC4 */ {__uhc_decmap_C4, 0x41, 0xa0}, -/* 0xC5 */ {__uhc_decmap_C5, 0x41, 0xa0}, -/* 0xC6 */ {__uhc_decmap_C6, 0x41, 0x52}, +/* 0x81 */ {__cp949_decmap_81, 0x41, 0xfe}, +/* 0x82 */ {__cp949_decmap_82, 0x41, 0xfe}, +/* 0x83 */ {__cp949_decmap_83, 0x41, 0xfe}, +/* 0x84 */ {__cp949_decmap_84, 0x41, 0xfe}, +/* 0x85 */ {__cp949_decmap_85, 0x41, 0xfe}, +/* 0x86 */ {__cp949_decmap_86, 0x41, 0xfe}, +/* 0x87 */ {__cp949_decmap_87, 0x41, 0xfe}, +/* 0x88 */ {__cp949_decmap_88, 0x41, 0xfe}, +/* 0x89 */ {__cp949_decmap_89, 0x41, 0xfe}, +/* 0x8A */ {__cp949_decmap_8A, 0x41, 0xfe}, +/* 0x8B */ {__cp949_decmap_8B, 0x41, 0xfe}, +/* 0x8C */ {__cp949_decmap_8C, 0x41, 0xfe}, +/* 0x8D */ {__cp949_decmap_8D, 0x41, 0xfe}, +/* 0x8E */ {__cp949_decmap_8E, 0x41, 0xfe}, +/* 0x8F */ {__cp949_decmap_8F, 0x41, 0xfe}, +/* 0x90 */ {__cp949_decmap_90, 0x41, 0xfe}, +/* 0x91 */ {__cp949_decmap_91, 0x41, 0xfe}, +/* 0x92 */ {__cp949_decmap_92, 0x41, 0xfe}, +/* 0x93 */ {__cp949_decmap_93, 0x41, 0xfe}, +/* 0x94 */ {__cp949_decmap_94, 0x41, 0xfe}, +/* 0x95 */ {__cp949_decmap_95, 0x41, 0xfe}, +/* 0x96 */ {__cp949_decmap_96, 0x41, 0xfe}, +/* 0x97 */ {__cp949_decmap_97, 0x41, 0xfe}, +/* 0x98 */ {__cp949_decmap_98, 0x41, 0xfe}, +/* 0x99 */ {__cp949_decmap_99, 0x41, 0xfe}, +/* 0x9A */ {__cp949_decmap_9A, 0x41, 0xfe}, +/* 0x9B */ {__cp949_decmap_9B, 0x41, 0xfe}, +/* 0x9C */ {__cp949_decmap_9C, 0x41, 0xfe}, +/* 0x9D */ {__cp949_decmap_9D, 0x41, 0xfe}, +/* 0x9E */ {__cp949_decmap_9E, 0x41, 0xfe}, +/* 0x9F */ {__cp949_decmap_9F, 0x41, 0xfe}, +/* 0xA0 */ {__cp949_decmap_A0, 0x41, 0xfe}, +/* 0xA1 */ {__cp949_decmap_A1, 0x41, 0xa0}, +/* 0xA2 */ {__cp949_decmap_A2, 0x41, 0xa0}, +/* 0xA3 */ {__cp949_decmap_A3, 0x41, 0xa0}, +/* 0xA4 */ {__cp949_decmap_A4, 0x41, 0xa0}, +/* 0xA5 */ {__cp949_decmap_A5, 0x41, 0xa0}, +/* 0xA6 */ {__cp949_decmap_A6, 0x41, 0xa0}, +/* 0xA7 */ {__cp949_decmap_A7, 0x41, 0xa0}, +/* 0xA8 */ {__cp949_decmap_A8, 0x41, 0xa0}, +/* 0xA9 */ {__cp949_decmap_A9, 0x41, 0xa0}, +/* 0xAA */ {__cp949_decmap_AA, 0x41, 0xa0}, +/* 0xAB */ {__cp949_decmap_AB, 0x41, 0xa0}, +/* 0xAC */ {__cp949_decmap_AC, 0x41, 0xa0}, +/* 0xAD */ {__cp949_decmap_AD, 0x41, 0xa0}, +/* 0xAE */ {__cp949_decmap_AE, 0x41, 0xa0}, +/* 0xAF */ {__cp949_decmap_AF, 0x41, 0xa0}, +/* 0xB0 */ {__cp949_decmap_B0, 0x41, 0xa0}, +/* 0xB1 */ {__cp949_decmap_B1, 0x41, 0xa0}, +/* 0xB2 */ {__cp949_decmap_B2, 0x41, 0xa0}, +/* 0xB3 */ {__cp949_decmap_B3, 0x41, 0xa0}, +/* 0xB4 */ {__cp949_decmap_B4, 0x41, 0xa0}, +/* 0xB5 */ {__cp949_decmap_B5, 0x41, 0xa0}, +/* 0xB6 */ {__cp949_decmap_B6, 0x41, 0xa0}, +/* 0xB7 */ {__cp949_decmap_B7, 0x41, 0xa0}, +/* 0xB8 */ {__cp949_decmap_B8, 0x41, 0xa0}, +/* 0xB9 */ {__cp949_decmap_B9, 0x41, 0xa0}, +/* 0xBA */ {__cp949_decmap_BA, 0x41, 0xa0}, +/* 0xBB */ {__cp949_decmap_BB, 0x41, 0xa0}, +/* 0xBC */ {__cp949_decmap_BC, 0x41, 0xa0}, +/* 0xBD */ {__cp949_decmap_BD, 0x41, 0xa0}, +/* 0xBE */ {__cp949_decmap_BE, 0x41, 0xa0}, +/* 0xBF */ {__cp949_decmap_BF, 0x41, 0xa0}, +/* 0xC0 */ {__cp949_decmap_C0, 0x41, 0xa0}, +/* 0xC1 */ {__cp949_decmap_C1, 0x41, 0xa0}, +/* 0xC2 */ {__cp949_decmap_C2, 0x41, 0xa0}, +/* 0xC3 */ {__cp949_decmap_C3, 0x41, 0xa0}, +/* 0xC4 */ {__cp949_decmap_C4, 0x41, 0xa0}, +/* 0xC5 */ {__cp949_decmap_C5, 0x41, 0xa0}, +/* 0xC6 */ {__cp949_decmap_C6, 0x41, 0x52}, /* 0xC7 */ {0, 0, 0}, /* 0xC8 */ {0, 0, 0}, /* 0xC9 */ {0, 0, 0}, |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 06:58:06
|
perky 03/05/13 23:58:05 Modified: tools genmap_korean.py Log: Change prefix for uhc to cp949 Revision Changes Path 1.2 +4 -4 cjkcodecs/tools/genmap_korean.py Index: genmap_korean.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_korean.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- genmap_korean.py 14 May 2003 06:46:50 -0000 1.1 +++ genmap_korean.py 14 May 2003 06:58:05 -0000 1.2 @@ -26,7 +26,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_korean.py,v 1.1 2003/05/14 06:46:50 perky Exp $ +# $Id: genmap_korean.py,v 1.2 2003/05/14 06:58:05 perky Exp $ # from genmap_support import * @@ -70,13 +70,13 @@ printcopyright(omap) print "Generating UHC Level 1 decode map..." -genmap_decode(omap, "uhc", UHCL1_C1, UHCL1_C2, uhcdecmap) +genmap_decode(omap, "cp949", UHCL1_C1, UHCL1_C2, uhcdecmap) print "Generating UHC Level 2 decode map..." -genmap_decode(omap, "uhc", UHCL2_C1, UHCL2_C2, uhcdecmap) +genmap_decode(omap, "cp949", UHCL2_C1, UHCL2_C2, uhcdecmap) print "Generating UHC decode map index..." -print_decmapindex(omap, "uhc", uhcdecmap) +print_decmapindex(omap, "cp949", uhcdecmap) print "\nDone!" |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 06:48:43
|
perky 03/05/13 23:48:42 Modified: src Makefile map_cp932.c map_jisx0208.c map_jisx0212.c Added: src map_cp949.c map_cp949.h map_ksx1001.c map_ksx1001.h Log: Add mappings for Korean encodings Revision Changes Path 1.3 +3 -2 cjkcodecs/src/Makefile Index: Makefile =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile 22 Apr 2003 21:27:29 -0000 1.2 +++ Makefile 14 May 2003 06:48:41 -0000 1.3 @@ -25,10 +25,11 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: Makefile,v 1.2 2003/04/22 21:27:29 perky Exp $ +# $Id: Makefile,v 1.3 2003/05/14 06:48:41 perky Exp $ # -GENERIC_CHARSETS= cp932 jisx0208 jisx0212 +GENERIC_CHARSETS= cp932 jisx0208 jisx0212 \ + cp949 ksx1001 all: genericmaps 1.4 +1 -1 cjkcodecs/src/map_cp932.c Index: map_cp932.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp932.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_cp932.c 22 Apr 2003 21:27:30 -0000 1.3 +++ map_cp932.c 14 May 2003 06:48:41 -0000 1.4 @@ -28,7 +28,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_cp932.c,v 1.3 2003/04/22 21:27:30 perky Exp $ + * $Id: map_cp932.c,v 1.4 2003/05/14 06:48:41 perky Exp $ */ #include "Python.h" 1.4 +1 -1 cjkcodecs/src/map_jisx0208.c Index: map_jisx0208.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0208.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_jisx0208.c 22 Apr 2003 21:27:30 -0000 1.3 +++ map_jisx0208.c 14 May 2003 06:48:41 -0000 1.4 @@ -28,7 +28,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_jisx0208.c,v 1.3 2003/04/22 21:27:30 perky Exp $ + * $Id: map_jisx0208.c,v 1.4 2003/05/14 06:48:41 perky Exp $ */ #include "Python.h" 1.4 +1 -1 cjkcodecs/src/map_jisx0212.c Index: map_jisx0212.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0212.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- map_jisx0212.c 22 Apr 2003 21:27:31 -0000 1.3 +++ map_jisx0212.c 14 May 2003 06:48:41 -0000 1.4 @@ -28,7 +28,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_jisx0212.c,v 1.3 2003/04/22 21:27:31 perky Exp $ + * $Id: map_jisx0212.c,v 1.4 2003/05/14 06:48:41 perky Exp $ */ #include "Python.h" 1.1 cjkcodecs/src/map_cp949.c Index: map_cp949.c =================================================================== /* * ACHTUNG: This is generated file automatically. Please do not edit. * * map_cp949.c: CP949 Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * $Id: map_cp949.c,v 1.1 2003/05/14 06:48:41 perky Exp $ */ #include "Python.h" #include "cjkcommon.h" #include "map_cp949.h" static DBCHAR *__encode_map[256]; static struct dbcs_map __map_entry = { "cp949", __encode_map, cp949_decmap }; static int init_maps(void) { const struct dbcs_index *umap; unsigned char c1, c2; int i; for (i = 0; i < 256; i++) __encode_map[i] = NULL; for (c1 = CP949_C1_BOTTOM; c1 <= CP949_C2_BOTTOM; c1++) { umap = &cp949_decmap[c1 & 0x7f]; if (umap->map == NULL) continue; for (c2 = umap->bottom; c2 <= umap->top; c2++) { Py_UNICODE uni; int upage, i; uni = umap->map[c2 - umap->bottom]; if (uni == UNIINV) continue; upage = uni >> 8; if (__encode_map[upage] == NULL) { __encode_map[upage] = PyMem_New(DBCHAR, 256); if (__encode_map[upage] == NULL) goto errorexit; for (i = 0; i <= 255; i++) __encode_map[upage][i] = NOCHAR; } if (__encode_map[upage][uni & 0xff] == NOCHAR) __encode_map[upage][uni & 0xff] = c1 << 8 | c2; } } #ifdef CP949_TWEAKUNIMAP CP949_TWEAKUNIMAP(__encode_map); #endif return 0; errorexit: for (i = 0; i < 256; i++) { if (__encode_map[i] != NULL) PyMem_Del(__encode_map[i]); } return -1; } static struct PyMethodDef __methods[] = { {NULL, NULL}, }; void initmap_cp949(void) { PyObject *m; m = Py_InitModule("map_cp949", __methods); PyModule_AddObject(m, "__map", PyCObject_FromVoidPtr(&__map_entry, NULL)); if (PyErr_Occurred() || init_maps()) Py_FatalError("can't initialize the map_cp949 module"); } /* * ex: ts=8 sts=4 et */ 1.1 cjkcodecs/src/map_cp949.h Index: map_cp949.h =================================================================== /* * $Id: map_cp949.h,v 1.1 2003/05/14 06:48:41 perky Exp $ */ static const Py_UNICODE __uhc_decmap_81[190] = { /* 81::41-FE */ 0xac02, 0xac03, 0xac05, 0xac06, 0xac0b, 0xac0c, 0xac0d, 0xac0e, 0xac0f, 0xac18, 0xac1e, 0xac1f, 0xac21, 0xac22, 0xac23, 0xac25, 0xac26, 0xac27, 0xac28, 0xac29, 0xac2a, 0xac2b, 0xac2e, 0xac32, 0xac33, 0xac34, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xac35, 0xac36, 0xac37, 0xac3a, 0xac3b, 0xac3d, 0xac3e, 0xac3f, 0xac41, 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49, 0xac4a, 0xac4c, 0xac4e, 0xac4f, 0xac50, 0xac51, 0xac52, 0xac53, 0xac55, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xac56, 0xac57, 0xac59, 0xac5a, 0xac5b, 0xac5d, 0xac5e, 0xac5f, 0xac60, 0xac61, 0xac62, 0xac63, 0xac64, 0xac65, 0xac66, 0xac67, 0xac68, 0xac69, 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xac6f, 0xac72, 0xac73, 0xac75, 0xac76, 0xac79, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac7f, 0xac82, 0xac87, 0xac88, 0xac8d, 0xac8e, 0xac8f, 0xac91, 0xac92, 0xac93, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a, 0xac9b, 0xac9e, 0xaca2, 0xaca3, 0xaca4, 0xaca5, 0xaca6, 0xaca7, 0xacab, 0xacad, 0xacae, 0xacb1, 0xacb2, 0xacb3, 0xacb4, 0xacb5, 0xacb6, 0xacb7, 0xacba, 0xacbe, 0xacbf, 0xacc0, 0xacc2, 0xacc3, 0xacc5, 0xacc6, 0xacc7, 0xacc9, 0xacca, 0xaccb, 0xaccd, 0xacce, 0xaccf, 0xacd0, 0xacd1, 0xacd2, 0xacd3, 0xacd4, 0xacd6, 0xacd8, 0xacd9, 0xacda, 0xacdb, 0xacdc, 0xacdd, 0xacde, 0xacdf, 0xace2, 0xace3, 0xace5, 0xace6, 0xace9, 0xaceb, 0xaced, 0xacee, 0xacf2, 0xacf4, 0xacf7, 0xacf8, 0xacf9, 0xacfa, 0xacfb, 0xacfe, 0xacff, 0xad01, 0xad02, 0xad03, 0xad05, 0xad07, 0xad08, 0xad09, 0xad0a, 0xad0b, 0xad0e, 0xad10, 0xad12, 0xad13, }; static const Py_UNICODE __uhc_decmap_82[190] = { /* 82::41-FE */ 0xad14, 0xad15, 0xad16, 0xad17, 0xad19, 0xad1a, 0xad1b, 0xad1d, 0xad1e, 0xad1f, 0xad21, 0xad22, 0xad23, 0xad24, 0xad25, 0xad26, 0xad27, 0xad28, 0xad2a, 0xad2b, 0xad2e, 0xad2f, 0xad30, 0xad31, 0xad32, 0xad33, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xad36, 0xad37, 0xad39, 0xad3a, 0xad3b, 0xad3d, 0xad3e, 0xad3f, 0xad40, 0xad41, 0xad42, 0xad43, 0xad46, 0xad48, 0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad51, 0xad52, 0xad53, 0xad55, 0xad56, 0xad57, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xad59, 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad62, 0xad64, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6e, 0xad6f, 0xad71, 0xad72, 0xad77, 0xad78, 0xad79, 0xad7a, 0xad7e, 0xad80, 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad8a, 0xad8b, 0xad8d, 0xad8e, 0xad8f, 0xad91, 0xad92, 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a, 0xad9b, 0xad9e, 0xad9f, 0xada0, 0xada1, 0xada2, 0xada3, 0xada5, 0xada6, 0xada7, 0xada8, 0xada9, 0xadaa, 0xadab, 0xadac, 0xadad, 0xadae, 0xadaf, 0xadb0, 0xadb1, 0xadb2, 0xadb3, 0xadb4, 0xadb5, 0xadb6, 0xadb8, 0xadb9, 0xadba, 0xadbb, 0xadbc, 0xadbd, 0xadbe, 0xadbf, 0xadc2, 0xadc3, 0xadc5, 0xadc6, 0xadc7, 0xadc9, 0xadca, 0xadcb, 0xadcc, 0xadcd, 0xadce, 0xadcf, 0xadd2, 0xadd4, 0xadd5, 0xadd6, 0xadd7, 0xadd8, 0xadd9, 0xadda, 0xaddb, 0xaddd, 0xadde, 0xaddf, 0xade1, 0xade2, 0xade3, 0xade5, 0xade6, 0xade7, 0xade8, 0xade9, 0xadea, 0xadeb, 0xadec, 0xaded, 0xadee, 0xadef, 0xadf0, 0xadf1, 0xadf2, 0xadf3, 0xadf4, 0xadf5, 0xadf6, 0xadf7, }; static const Py_UNICODE __uhc_decmap_83[190] = { /* 83::41-FE */ 0xadfa, 0xadfb, 0xadfd, 0xadfe, 0xae02, 0xae03, 0xae04, 0xae05, 0xae06, 0xae07, 0xae0a, 0xae0c, 0xae0e, 0xae0f, 0xae10, 0xae11, 0xae12, 0xae13, 0xae15, 0xae16, 0xae17, 0xae18, 0xae19, 0xae1a, 0xae1b, 0xae1c, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xae1d, 0xae1e, 0xae1f, 0xae20, 0xae21, 0xae22, 0xae23, 0xae24, 0xae25, 0xae26, 0xae27, 0xae28, 0xae29, 0xae2a, 0xae2b, 0xae2c, 0xae2d, 0xae2e, 0xae2f, 0xae32, 0xae33, 0xae35, 0xae36, 0xae39, 0xae3b, 0xae3c, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xae3d, 0xae3e, 0xae3f, 0xae42, 0xae44, 0xae47, 0xae48, 0xae49, 0xae4b, 0xae4f, 0xae51, 0xae52, 0xae53, 0xae55, 0xae57, 0xae58, 0xae59, 0xae5a, 0xae5b, 0xae5e, 0xae62, 0xae63, 0xae64, 0xae66, 0xae67, 0xae6a, 0xae6b, 0xae6d, 0xae6e, 0xae6f, 0xae71, 0xae72, 0xae73, 0xae74, 0xae75, 0xae76, 0xae77, 0xae7a, 0xae7e, 0xae7f, 0xae80, 0xae81, 0xae82, 0xae83, 0xae86, 0xae87, 0xae88, 0xae89, 0xae8a, 0xae8b, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xae92, 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a, 0xae9b, 0xae9c, 0xae9d, 0xae9e, 0xae9f, 0xaea0, 0xaea1, 0xaea2, 0xaea3, 0xaea4, 0xaea5, 0xaea6, 0xaea7, 0xaea8, 0xaea9, 0xaeaa, 0xaeab, 0xaeac, 0xaead, 0xaeae, 0xaeaf, 0xaeb0, 0xaeb1, 0xaeb2, 0xaeb3, 0xaeb4, 0xaeb5, 0xaeb6, 0xaeb7, 0xaeb8, 0xaeb9, 0xaeba, 0xaebb, 0xaebf, 0xaec1, 0xaec2, 0xaec3, 0xaec5, 0xaec6, 0xaec7, 0xaec8, 0xaec9, 0xaeca, 0xaecb, 0xaece, 0xaed2, 0xaed3, 0xaed4, 0xaed5, 0xaed6, 0xaed7, 0xaeda, 0xaedb, 0xaedd, 0xaede, 0xaedf, 0xaee0, 0xaee1, 0xaee2, 0xaee3, 0xaee4, 0xaee5, }; static const Py_UNICODE __uhc_decmap_84[190] = { /* 84::41-FE */ 0xaee6, 0xaee7, 0xaee9, 0xaeea, 0xaeec, 0xaeee, 0xaeef, 0xaef0, 0xaef1, 0xaef2, 0xaef3, 0xaef5, 0xaef6, 0xaef7, 0xaef9, 0xaefa, 0xaefb, 0xaefd, 0xaefe, 0xaeff, 0xaf00, 0xaf01, 0xaf02, 0xaf03, 0xaf04, 0xaf05, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xaf06, 0xaf09, 0xaf0a, 0xaf0b, 0xaf0c, 0xaf0e, 0xaf0f, 0xaf11, 0xaf12, 0xaf13, 0xaf14, 0xaf15, 0xaf16, 0xaf17, 0xaf18, 0xaf19, 0xaf1a, 0xaf1b, 0xaf1c, 0xaf1d, 0xaf1e, 0xaf1f, 0xaf20, 0xaf21, 0xaf22, 0xaf23, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xaf24, 0xaf25, 0xaf26, 0xaf27, 0xaf28, 0xaf29, 0xaf2a, 0xaf2b, 0xaf2e, 0xaf2f, 0xaf31, 0xaf33, 0xaf35, 0xaf36, 0xaf37, 0xaf38, 0xaf39, 0xaf3a, 0xaf3b, 0xaf3e, 0xaf40, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf51, 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, 0xaf5a, 0xaf5b, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, 0xaf62, 0xaf63, 0xaf66, 0xaf67, 0xaf68, 0xaf69, 0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, 0xaf72, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, 0xaf7e, 0xaf7f, 0xaf81, 0xaf82, 0xaf83, 0xaf85, 0xaf86, 0xaf87, 0xaf89, 0xaf8a, 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf92, 0xaf93, 0xaf94, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a, 0xaf9b, 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xafa1, 0xafa2, 0xafa3, 0xafa4, 0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 0xafaa, 0xafab, 0xafac, 0xafad, 0xafae, 0xafaf, 0xafb0, 0xafb1, 0xafb2, 0xafb3, 0xafb4, 0xafb5, 0xafb6, 0xafb7, 0xafba, 0xafbb, 0xafbd, 0xafbe, }; static const Py_UNICODE __uhc_decmap_85[190] = { /* 85::41-FE */ 0xafbf, 0xafc1, 0xafc2, 0xafc3, 0xafc4, 0xafc5, 0xafc6, 0xafca, 0xafcc, 0xafcf, 0xafd0, 0xafd1, 0xafd2, 0xafd3, 0xafd5, 0xafd6, 0xafd7, 0xafd8, 0xafd9, 0xafda, 0xafdb, 0xafdd, 0xafde, 0xafdf, 0xafe0, 0xafe1, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xafe2, 0xafe3, 0xafe4, 0xafe5, 0xafe6, 0xafe7, 0xafea, 0xafeb, 0xafec, 0xafed, 0xafee, 0xafef, 0xaff2, 0xaff3, 0xaff5, 0xaff6, 0xaff7, 0xaff9, 0xaffa, 0xaffb, 0xaffc, 0xaffd, 0xaffe, 0xafff, 0xb002, 0xb003, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb005, 0xb006, 0xb007, 0xb008, 0xb009, 0xb00a, 0xb00b, 0xb00d, 0xb00e, 0xb00f, 0xb011, 0xb012, 0xb013, 0xb015, 0xb016, 0xb017, 0xb018, 0xb019, 0xb01a, 0xb01b, 0xb01e, 0xb01f, 0xb020, 0xb021, 0xb022, 0xb023, 0xb024, 0xb025, 0xb026, 0xb027, 0xb029, 0xb02a, 0xb02b, 0xb02c, 0xb02d, 0xb02e, 0xb02f, 0xb030, 0xb031, 0xb032, 0xb033, 0xb034, 0xb035, 0xb036, 0xb037, 0xb038, 0xb039, 0xb03a, 0xb03b, 0xb03c, 0xb03d, 0xb03e, 0xb03f, 0xb040, 0xb041, 0xb042, 0xb043, 0xb046, 0xb047, 0xb049, 0xb04b, 0xb04d, 0xb04f, 0xb050, 0xb051, 0xb052, 0xb056, 0xb058, 0xb05a, 0xb05b, 0xb05c, 0xb05e, 0xb05f, 0xb060, 0xb061, 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069, 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xb071, 0xb072, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079, 0xb07a, 0xb07b, 0xb07e, 0xb07f, 0xb081, 0xb082, 0xb083, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, 0xb08b, 0xb08e, 0xb090, 0xb092, 0xb093, 0xb094, 0xb095, 0xb096, 0xb097, 0xb09b, 0xb09d, 0xb09e, 0xb0a3, 0xb0a4, }; static const Py_UNICODE __uhc_decmap_86[190] = { /* 86::41-FE */ 0xb0a5, 0xb0a6, 0xb0a7, 0xb0aa, 0xb0b0, 0xb0b2, 0xb0b6, 0xb0b7, 0xb0b9, 0xb0ba, 0xb0bb, 0xb0bd, 0xb0be, 0xb0bf, 0xb0c0, 0xb0c1, 0xb0c2, 0xb0c3, 0xb0c6, 0xb0ca, 0xb0cb, 0xb0cc, 0xb0cd, 0xb0ce, 0xb0cf, 0xb0d2, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb0d3, 0xb0d5, 0xb0d6, 0xb0d7, 0xb0d9, 0xb0da, 0xb0db, 0xb0dc, 0xb0dd, 0xb0de, 0xb0df, 0xb0e1, 0xb0e2, 0xb0e3, 0xb0e4, 0xb0e6, 0xb0e7, 0xb0e8, 0xb0e9, 0xb0ea, 0xb0eb, 0xb0ec, 0xb0ed, 0xb0ee, 0xb0ef, 0xb0f0, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb0f1, 0xb0f2, 0xb0f3, 0xb0f4, 0xb0f5, 0xb0f6, 0xb0f7, 0xb0f8, 0xb0f9, 0xb0fa, 0xb0fb, 0xb0fc, 0xb0fd, 0xb0fe, 0xb0ff, 0xb100, 0xb101, 0xb102, 0xb103, 0xb104, 0xb105, 0xb106, 0xb107, 0xb10a, 0xb10d, 0xb10e, 0xb10f, 0xb111, 0xb114, 0xb115, 0xb116, 0xb117, 0xb11a, 0xb11e, 0xb11f, 0xb120, 0xb121, 0xb122, 0xb126, 0xb127, 0xb129, 0xb12a, 0xb12b, 0xb12d, 0xb12e, 0xb12f, 0xb130, 0xb131, 0xb132, 0xb133, 0xb136, 0xb13a, 0xb13b, 0xb13c, 0xb13d, 0xb13e, 0xb13f, 0xb142, 0xb143, 0xb145, 0xb146, 0xb147, 0xb149, 0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb152, 0xb153, 0xb156, 0xb157, 0xb159, 0xb15a, 0xb15b, 0xb15d, 0xb15e, 0xb15f, 0xb161, 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, 0xb169, 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, 0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb17a, 0xb17b, 0xb17d, 0xb17e, 0xb17f, 0xb181, 0xb183, 0xb184, 0xb185, 0xb186, 0xb187, 0xb18a, 0xb18c, 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb195, 0xb196, 0xb197, 0xb199, 0xb19a, 0xb19b, 0xb19d, }; static const Py_UNICODE __uhc_decmap_87[190] = { /* 87::41-FE */ 0xb19e, 0xb19f, 0xb1a0, 0xb1a1, 0xb1a2, 0xb1a3, 0xb1a4, 0xb1a5, 0xb1a6, 0xb1a7, 0xb1a9, 0xb1aa, 0xb1ab, 0xb1ac, 0xb1ad, 0xb1ae, 0xb1af, 0xb1b0, 0xb1b1, 0xb1b2, 0xb1b3, 0xb1b4, 0xb1b5, 0xb1b6, 0xb1b7, 0xb1b8, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb1b9, 0xb1ba, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1be, 0xb1bf, 0xb1c0, 0xb1c1, 0xb1c2, 0xb1c3, 0xb1c4, 0xb1c5, 0xb1c6, 0xb1c7, 0xb1c8, 0xb1c9, 0xb1ca, 0xb1cb, 0xb1cd, 0xb1ce, 0xb1cf, 0xb1d1, 0xb1d2, 0xb1d3, 0xb1d5, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb1d6, 0xb1d7, 0xb1d8, 0xb1d9, 0xb1da, 0xb1db, 0xb1de, 0xb1e0, 0xb1e1, 0xb1e2, 0xb1e3, 0xb1e4, 0xb1e5, 0xb1e6, 0xb1e7, 0xb1ea, 0xb1eb, 0xb1ed, 0xb1ee, 0xb1ef, 0xb1f1, 0xb1f2, 0xb1f3, 0xb1f4, 0xb1f5, 0xb1f6, 0xb1f7, 0xb1f8, 0xb1fa, 0xb1fc, 0xb1fe, 0xb1ff, 0xb200, 0xb201, 0xb202, 0xb203, 0xb206, 0xb207, 0xb209, 0xb20a, 0xb20d, 0xb20e, 0xb20f, 0xb210, 0xb211, 0xb212, 0xb213, 0xb216, 0xb218, 0xb21a, 0xb21b, 0xb21c, 0xb21d, 0xb21e, 0xb21f, 0xb221, 0xb222, 0xb223, 0xb224, 0xb225, 0xb226, 0xb227, 0xb228, 0xb229, 0xb22a, 0xb22b, 0xb22c, 0xb22d, 0xb22e, 0xb22f, 0xb230, 0xb231, 0xb232, 0xb233, 0xb235, 0xb236, 0xb237, 0xb238, 0xb239, 0xb23a, 0xb23b, 0xb23d, 0xb23e, 0xb23f, 0xb240, 0xb241, 0xb242, 0xb243, 0xb244, 0xb245, 0xb246, 0xb247, 0xb248, 0xb249, 0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb252, 0xb253, 0xb254, 0xb255, 0xb256, 0xb257, 0xb259, 0xb25a, 0xb25b, 0xb25d, 0xb25e, 0xb25f, 0xb261, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, }; static const Py_UNICODE __uhc_decmap_88[190] = { /* 88::41-FE */ 0xb26f, 0xb270, 0xb271, 0xb272, 0xb273, 0xb276, 0xb277, 0xb278, 0xb279, 0xb27a, 0xb27b, 0xb27d, 0xb27e, 0xb27f, 0xb280, 0xb281, 0xb282, 0xb283, 0xb286, 0xb287, 0xb288, 0xb28a, 0xb28b, 0xb28c, 0xb28d, 0xb28e, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb28f, 0xb292, 0xb293, 0xb295, 0xb296, 0xb297, 0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xb2a2, 0xb2a4, 0xb2a7, 0xb2a8, 0xb2a9, 0xb2ab, 0xb2ad, 0xb2ae, 0xb2af, 0xb2b1, 0xb2b2, 0xb2b3, 0xb2b5, 0xb2b6, 0xb2b7, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb2b8, 0xb2b9, 0xb2ba, 0xb2bb, 0xb2bc, 0xb2bd, 0xb2be, 0xb2bf, 0xb2c0, 0xb2c1, 0xb2c2, 0xb2c3, 0xb2c4, 0xb2c5, 0xb2c6, 0xb2c7, 0xb2ca, 0xb2cb, 0xb2cd, 0xb2ce, 0xb2cf, 0xb2d1, 0xb2d3, 0xb2d4, 0xb2d5, 0xb2d6, 0xb2d7, 0xb2da, 0xb2dc, 0xb2de, 0xb2df, 0xb2e0, 0xb2e1, 0xb2e3, 0xb2e7, 0xb2e9, 0xb2ea, 0xb2f0, 0xb2f1, 0xb2f2, 0xb2f6, 0xb2fc, 0xb2fd, 0xb2fe, 0xb302, 0xb303, 0xb305, 0xb306, 0xb307, 0xb309, 0xb30a, 0xb30b, 0xb30c, 0xb30d, 0xb30e, 0xb30f, 0xb312, 0xb316, 0xb317, 0xb318, 0xb319, 0xb31a, 0xb31b, 0xb31d, 0xb31e, 0xb31f, 0xb320, 0xb321, 0xb322, 0xb323, 0xb324, 0xb325, 0xb326, 0xb327, 0xb328, 0xb329, 0xb32a, 0xb32b, 0xb32c, 0xb32d, 0xb32e, 0xb32f, 0xb330, 0xb331, 0xb332, 0xb333, 0xb334, 0xb335, 0xb336, 0xb337, 0xb338, 0xb339, 0xb33a, 0xb33b, 0xb33c, 0xb33d, 0xb33e, 0xb33f, 0xb340, 0xb341, 0xb342, 0xb343, 0xb344, 0xb345, 0xb346, 0xb347, 0xb348, 0xb349, 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, 0xb353, 0xb357, 0xb359, 0xb35a, 0xb35d, 0xb360, 0xb361, 0xb362, 0xb363, }; static const Py_UNICODE __uhc_decmap_89[190] = { /* 89::41-FE */ 0xb366, 0xb368, 0xb36a, 0xb36c, 0xb36d, 0xb36f, 0xb372, 0xb373, 0xb375, 0xb376, 0xb377, 0xb379, 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, 0xb37f, 0xb382, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0xb38d, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb38e, 0xb38f, 0xb391, 0xb392, 0xb393, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, 0xb39b, 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a2, 0xb3a3, 0xb3a4, 0xb3a5, 0xb3a6, 0xb3a7, 0xb3a9, 0xb3aa, 0xb3ab, 0xb3ad, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb3ae, 0xb3af, 0xb3b0, 0xb3b1, 0xb3b2, 0xb3b3, 0xb3b4, 0xb3b5, 0xb3b6, 0xb3b7, 0xb3b8, 0xb3b9, 0xb3ba, 0xb3bb, 0xb3bc, 0xb3bd, 0xb3be, 0xb3bf, 0xb3c0, 0xb3c1, 0xb3c2, 0xb3c3, 0xb3c6, 0xb3c7, 0xb3c9, 0xb3ca, 0xb3cd, 0xb3cf, 0xb3d1, 0xb3d2, 0xb3d3, 0xb3d6, 0xb3d8, 0xb3da, 0xb3dc, 0xb3de, 0xb3df, 0xb3e1, 0xb3e2, 0xb3e3, 0xb3e5, 0xb3e6, 0xb3e7, 0xb3e9, 0xb3ea, 0xb3eb, 0xb3ec, 0xb3ed, 0xb3ee, 0xb3ef, 0xb3f0, 0xb3f1, 0xb3f2, 0xb3f3, 0xb3f4, 0xb3f5, 0xb3f6, 0xb3f7, 0xb3f8, 0xb3f9, 0xb3fa, 0xb3fb, 0xb3fd, 0xb3fe, 0xb3ff, 0xb400, 0xb401, 0xb402, 0xb403, 0xb404, 0xb405, 0xb406, 0xb407, 0xb408, 0xb409, 0xb40a, 0xb40b, 0xb40c, 0xb40d, 0xb40e, 0xb40f, 0xb411, 0xb412, 0xb413, 0xb414, 0xb415, 0xb416, 0xb417, 0xb419, 0xb41a, 0xb41b, 0xb41d, 0xb41e, 0xb41f, 0xb421, 0xb422, 0xb423, 0xb424, 0xb425, 0xb426, 0xb427, 0xb42a, 0xb42c, 0xb42d, 0xb42e, 0xb42f, 0xb430, 0xb431, 0xb432, 0xb433, 0xb435, 0xb436, 0xb437, 0xb438, 0xb439, 0xb43a, 0xb43b, 0xb43c, 0xb43d, 0xb43e, 0xb43f, 0xb440, 0xb441, 0xb442, 0xb443, 0xb444, }; static const Py_UNICODE __uhc_decmap_8A[190] = { /* 8A::41-FE */ 0xb445, 0xb446, 0xb447, 0xb448, 0xb449, 0xb44a, 0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb452, 0xb453, 0xb455, 0xb456, 0xb457, 0xb459, 0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, 0xb462, 0xb464, 0xb466, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb467, 0xb468, 0xb469, 0xb46a, 0xb46b, 0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471, 0xb472, 0xb473, 0xb474, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb47f, 0xb481, 0xb482, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb489, 0xb48a, 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492, 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a, 0xb49b, 0xb49c, 0xb49e, 0xb49f, 0xb4a0, 0xb4a1, 0xb4a2, 0xb4a3, 0xb4a5, 0xb4a6, 0xb4a7, 0xb4a9, 0xb4aa, 0xb4ab, 0xb4ad, 0xb4ae, 0xb4af, 0xb4b0, 0xb4b1, 0xb4b2, 0xb4b3, 0xb4b4, 0xb4b6, 0xb4b8, 0xb4ba, 0xb4bb, 0xb4bc, 0xb4bd, 0xb4be, 0xb4bf, 0xb4c1, 0xb4c2, 0xb4c3, 0xb4c5, 0xb4c6, 0xb4c7, 0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, 0xb4cd, 0xb4ce, 0xb4cf, 0xb4d1, 0xb4d2, 0xb4d3, 0xb4d4, 0xb4d6, 0xb4d7, 0xb4d8, 0xb4d9, 0xb4da, 0xb4db, 0xb4de, 0xb4df, 0xb4e1, 0xb4e2, 0xb4e5, 0xb4e7, 0xb4e8, 0xb4e9, 0xb4ea, 0xb4eb, 0xb4ee, 0xb4f0, 0xb4f2, 0xb4f3, 0xb4f4, 0xb4f5, 0xb4f6, 0xb4f7, 0xb4f9, 0xb4fa, 0xb4fb, 0xb4fc, 0xb4fd, 0xb4fe, 0xb4ff, 0xb500, 0xb501, 0xb502, 0xb503, 0xb504, 0xb505, 0xb506, 0xb507, 0xb508, 0xb509, 0xb50a, 0xb50b, 0xb50c, 0xb50d, 0xb50e, 0xb50f, 0xb510, 0xb511, 0xb512, 0xb513, 0xb516, 0xb517, 0xb519, 0xb51a, 0xb51d, }; static const Py_UNICODE __uhc_decmap_8B[190] = { /* 8B::41-FE */ 0xb51e, 0xb51f, 0xb520, 0xb521, 0xb522, 0xb523, 0xb526, 0xb52b, 0xb52c, 0xb52d, 0xb52e, 0xb52f, 0xb532, 0xb533, 0xb535, 0xb536, 0xb537, 0xb539, 0xb53a, 0xb53b, 0xb53c, 0xb53d, 0xb53e, 0xb53f, 0xb542, 0xb546, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb547, 0xb548, 0xb549, 0xb54a, 0xb54e, 0xb54f, 0xb551, 0xb552, 0xb553, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, 0xb55a, 0xb55b, 0xb55e, 0xb562, 0xb563, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xb569, 0xb56a, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571, 0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xb579, 0xb57a, 0xb57b, 0xb57c, 0xb57d, 0xb57e, 0xb57f, 0xb580, 0xb581, 0xb582, 0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, 0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, 0xb591, 0xb592, 0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a2, 0xb5a3, 0xb5a5, 0xb5a6, 0xb5a7, 0xb5a9, 0xb5ac, 0xb5ad, 0xb5ae, 0xb5af, 0xb5b2, 0xb5b6, 0xb5b7, 0xb5b8, 0xb5b9, 0xb5ba, 0xb5be, 0xb5bf, 0xb5c1, 0xb5c2, 0xb5c3, 0xb5c5, 0xb5c6, 0xb5c7, 0xb5c8, 0xb5c9, 0xb5ca, 0xb5cb, 0xb5ce, 0xb5d2, 0xb5d3, 0xb5d4, 0xb5d5, 0xb5d6, 0xb5d7, 0xb5d9, 0xb5da, 0xb5db, 0xb5dc, 0xb5dd, 0xb5de, 0xb5df, 0xb5e0, 0xb5e1, 0xb5e2, 0xb5e3, 0xb5e4, 0xb5e5, 0xb5e6, 0xb5e7, 0xb5e8, 0xb5e9, 0xb5ea, 0xb5eb, 0xb5ed, 0xb5ee, 0xb5ef, 0xb5f0, 0xb5f1, 0xb5f2, 0xb5f3, 0xb5f4, 0xb5f5, 0xb5f6, 0xb5f7, 0xb5f8, 0xb5f9, 0xb5fa, 0xb5fb, 0xb5fc, 0xb5fd, 0xb5fe, 0xb5ff, }; static const Py_UNICODE __uhc_decmap_8C[190] = { /* 8C::41-FE */ 0xb600, 0xb601, 0xb602, 0xb603, 0xb604, 0xb605, 0xb606, 0xb607, 0xb608, 0xb609, 0xb60a, 0xb60b, 0xb60c, 0xb60d, 0xb60e, 0xb60f, 0xb612, 0xb613, 0xb615, 0xb616, 0xb617, 0xb619, 0xb61a, 0xb61b, 0xb61c, 0xb61d, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb61e, 0xb61f, 0xb620, 0xb621, 0xb622, 0xb623, 0xb624, 0xb626, 0xb627, 0xb628, 0xb629, 0xb62a, 0xb62b, 0xb62d, 0xb62e, 0xb62f, 0xb630, 0xb631, 0xb632, 0xb633, 0xb635, 0xb636, 0xb637, 0xb638, 0xb639, 0xb63a, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb63b, 0xb63c, 0xb63d, 0xb63e, 0xb63f, 0xb640, 0xb641, 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb649, 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, 0xb652, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, 0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb65e, 0xb65f, 0xb660, 0xb661, 0xb662, 0xb663, 0xb665, 0xb666, 0xb667, 0xb669, 0xb66a, 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, 0xb672, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xb679, 0xb67a, 0xb67b, 0xb67c, 0xb67d, 0xb67e, 0xb67f, 0xb680, 0xb681, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, 0xb689, 0xb68a, 0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f, 0xb690, 0xb691, 0xb692, 0xb693, 0xb694, 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a, 0xb69b, 0xb69e, 0xb69f, 0xb6a1, 0xb6a2, 0xb6a3, 0xb6a5, 0xb6a6, 0xb6a7, 0xb6a8, 0xb6a9, 0xb6aa, 0xb6ad, 0xb6ae, 0xb6af, 0xb6b0, 0xb6b2, 0xb6b3, 0xb6b4, 0xb6b5, 0xb6b6, 0xb6b7, 0xb6b8, 0xb6b9, 0xb6ba, 0xb6bb, 0xb6bc, 0xb6bd, 0xb6be, 0xb6bf, 0xb6c0, 0xb6c1, 0xb6c2, }; static const Py_UNICODE __uhc_decmap_8D[190] = { /* 8D::41-FE */ 0xb6c3, 0xb6c4, 0xb6c5, 0xb6c6, 0xb6c7, 0xb6c8, 0xb6c9, 0xb6ca, 0xb6cb, 0xb6cc, 0xb6cd, 0xb6ce, 0xb6cf, 0xb6d0, 0xb6d1, 0xb6d2, 0xb6d3, 0xb6d5, 0xb6d6, 0xb6d7, 0xb6d8, 0xb6d9, 0xb6da, 0xb6db, 0xb6dc, 0xb6dd, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb6de, 0xb6df, 0xb6e0, 0xb6e1, 0xb6e2, 0xb6e3, 0xb6e4, 0xb6e5, 0xb6e6, 0xb6e7, 0xb6e8, 0xb6e9, 0xb6ea, 0xb6eb, 0xb6ec, 0xb6ed, 0xb6ee, 0xb6ef, 0xb6f1, 0xb6f2, 0xb6f3, 0xb6f5, 0xb6f6, 0xb6f7, 0xb6f9, 0xb6fa, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb6fb, 0xb6fc, 0xb6fd, 0xb6fe, 0xb6ff, 0xb702, 0xb703, 0xb704, 0xb706, 0xb707, 0xb708, 0xb709, 0xb70a, 0xb70b, 0xb70c, 0xb70d, 0xb70e, 0xb70f, 0xb710, 0xb711, 0xb712, 0xb713, 0xb714, 0xb715, 0xb716, 0xb717, 0xb718, 0xb719, 0xb71a, 0xb71b, 0xb71c, 0xb71d, 0xb71e, 0xb71f, 0xb720, 0xb721, 0xb722, 0xb723, 0xb724, 0xb725, 0xb726, 0xb727, 0xb72a, 0xb72b, 0xb72d, 0xb72e, 0xb731, 0xb732, 0xb733, 0xb734, 0xb735, 0xb736, 0xb737, 0xb73a, 0xb73c, 0xb73d, 0xb73e, 0xb73f, 0xb740, 0xb741, 0xb742, 0xb743, 0xb745, 0xb746, 0xb747, 0xb749, 0xb74a, 0xb74b, 0xb74d, 0xb74e, 0xb74f, 0xb750, 0xb751, 0xb752, 0xb753, 0xb756, 0xb757, 0xb758, 0xb759, 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xb75f, 0xb761, 0xb762, 0xb763, 0xb765, 0xb766, 0xb767, 0xb769, 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, 0xb76f, 0xb772, 0xb774, 0xb776, 0xb777, 0xb778, 0xb779, 0xb77a, 0xb77b, 0xb77e, 0xb77f, 0xb781, 0xb782, 0xb783, 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a, 0xb78b, 0xb78e, 0xb793, 0xb794, 0xb795, 0xb79a, 0xb79b, 0xb79d, 0xb79e, }; static const Py_UNICODE __uhc_decmap_8E[190] = { /* 8E::41-FE */ 0xb79f, 0xb7a1, 0xb7a2, 0xb7a3, 0xb7a4, 0xb7a5, 0xb7a6, 0xb7a7, 0xb7aa, 0xb7ae, 0xb7af, 0xb7b0, 0xb7b1, 0xb7b2, 0xb7b3, 0xb7b6, 0xb7b7, 0xb7b9, 0xb7ba, 0xb7bb, 0xb7bc, 0xb7bd, 0xb7be, 0xb7bf, 0xb7c0, 0xb7c1, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb7c2, 0xb7c3, 0xb7c4, 0xb7c5, 0xb7c6, 0xb7c8, 0xb7ca, 0xb7cb, 0xb7cc, 0xb7cd, 0xb7ce, 0xb7cf, 0xb7d0, 0xb7d1, 0xb7d2, 0xb7d3, 0xb7d4, 0xb7d5, 0xb7d6, 0xb7d7, 0xb7d8, 0xb7d9, 0xb7da, 0xb7db, 0xb7dc, 0xb7dd, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb7de, 0xb7df, 0xb7e0, 0xb7e1, 0xb7e2, 0xb7e3, 0xb7e4, 0xb7e5, 0xb7e6, 0xb7e7, 0xb7e8, 0xb7e9, 0xb7ea, 0xb7eb, 0xb7ee, 0xb7ef, 0xb7f1, 0xb7f2, 0xb7f3, 0xb7f5, 0xb7f6, 0xb7f7, 0xb7f8, 0xb7f9, 0xb7fa, 0xb7fb, 0xb7fe, 0xb802, 0xb803, 0xb804, 0xb805, 0xb806, 0xb80a, 0xb80b, 0xb80d, 0xb80e, 0xb80f, 0xb811, 0xb812, 0xb813, 0xb814, 0xb815, 0xb816, 0xb817, 0xb81a, 0xb81c, 0xb81e, 0xb81f, 0xb820, 0xb821, 0xb822, 0xb823, 0xb826, 0xb827, 0xb829, 0xb82a, 0xb82b, 0xb82d, 0xb82e, 0xb82f, 0xb830, 0xb831, 0xb832, 0xb833, 0xb836, 0xb83a, 0xb83b, 0xb83c, 0xb83d, 0xb83e, 0xb83f, 0xb841, 0xb842, 0xb843, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849, 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb852, 0xb854, 0xb855, 0xb856, 0xb857, 0xb858, 0xb859, 0xb85a, 0xb85b, 0xb85e, 0xb85f, 0xb861, 0xb862, 0xb863, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 0xb86a, 0xb86b, 0xb86e, 0xb870, 0xb872, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0xb879, 0xb87a, 0xb87b, 0xb87d, 0xb87e, 0xb87f, 0xb880, 0xb881, 0xb882, 0xb883, 0xb884, }; static const Py_UNICODE __uhc_decmap_8F[190] = { /* 8F::41-FE */ 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a, 0xb88b, 0xb88c, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892, 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, 0xb89d, 0xb89e, 0xb89f, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb8a0, 0xb8a1, 0xb8a2, 0xb8a3, 0xb8a4, 0xb8a5, 0xb8a6, 0xb8a7, 0xb8a9, 0xb8aa, 0xb8ab, 0xb8ac, 0xb8ad, 0xb8ae, 0xb8af, 0xb8b1, 0xb8b2, 0xb8b3, 0xb8b5, 0xb8b6, 0xb8b7, 0xb8b9, 0xb8ba, 0xb8bb, 0xb8bc, 0xb8bd, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb8be, 0xb8bf, 0xb8c2, 0xb8c4, 0xb8c6, 0xb8c7, 0xb8c8, 0xb8c9, 0xb8ca, 0xb8cb, 0xb8cd, 0xb8ce, 0xb8cf, 0xb8d1, 0xb8d2, 0xb8d3, 0xb8d5, 0xb8d6, 0xb8d7, 0xb8d8, 0xb8d9, 0xb8da, 0xb8db, 0xb8dc, 0xb8de, 0xb8e0, 0xb8e2, 0xb8e3, 0xb8e4, 0xb8e5, 0xb8e6, 0xb8e7, 0xb8ea, 0xb8eb, 0xb8ed, 0xb8ee, 0xb8ef, 0xb8f1, 0xb8f2, 0xb8f3, 0xb8f4, 0xb8f5, 0xb8f6, 0xb8f7, 0xb8fa, 0xb8fc, 0xb8fe, 0xb8ff, 0xb900, 0xb901, 0xb902, 0xb903, 0xb905, 0xb906, 0xb907, 0xb908, 0xb909, 0xb90a, 0xb90b, 0xb90c, 0xb90d, 0xb90e, 0xb90f, 0xb910, 0xb911, 0xb912, 0xb913, 0xb914, 0xb915, 0xb916, 0xb917, 0xb919, 0xb91a, 0xb91b, 0xb91c, 0xb91d, 0xb91e, 0xb91f, 0xb921, 0xb922, 0xb923, 0xb924, 0xb925, 0xb926, 0xb927, 0xb928, 0xb929, 0xb92a, 0xb92b, 0xb92c, 0xb92d, 0xb92e, 0xb92f, 0xb930, 0xb931, 0xb932, 0xb933, 0xb934, 0xb935, 0xb936, 0xb937, 0xb938, 0xb939, 0xb93a, 0xb93b, 0xb93e, 0xb93f, 0xb941, 0xb942, 0xb943, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949, 0xb94a, 0xb94b, 0xb94d, 0xb94e, 0xb950, 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, }; static const Py_UNICODE __uhc_decmap_90[190] = { /* 90::41-FE */ 0xb95a, 0xb95b, 0xb95d, 0xb95e, 0xb95f, 0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb96a, 0xb96c, 0xb96e, 0xb96f, 0xb970, 0xb971, 0xb972, 0xb973, 0xb976, 0xb977, 0xb979, 0xb97a, 0xb97b, 0xb97d, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb97e, 0xb97f, 0xb980, 0xb981, 0xb982, 0xb983, 0xb986, 0xb988, 0xb98b, 0xb98c, 0xb98f, 0xb990, 0xb991, 0xb992, 0xb993, 0xb994, 0xb995, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, 0xb99c, 0xb99d, 0xb99e, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xb99f, 0xb9a0, 0xb9a1, 0xb9a2, 0xb9a3, 0xb9a4, 0xb9a5, 0xb9a6, 0xb9a7, 0xb9a8, 0xb9a9, 0xb9aa, 0xb9ab, 0xb9ae, 0xb9af, 0xb9b1, 0xb9b2, 0xb9b3, 0xb9b5, 0xb9b6, 0xb9b7, 0xb9b8, 0xb9b9, 0xb9ba, 0xb9bb, 0xb9be, 0xb9c0, 0xb9c2, 0xb9c3, 0xb9c4, 0xb9c5, 0xb9c6, 0xb9c7, 0xb9ca, 0xb9cb, 0xb9cd, 0xb9d3, 0xb9d4, 0xb9d5, 0xb9d6, 0xb9d7, 0xb9da, 0xb9dc, 0xb9df, 0xb9e0, 0xb9e2, 0xb9e6, 0xb9e7, 0xb9e9, 0xb9ea, 0xb9eb, 0xb9ed, 0xb9ee, 0xb9ef, 0xb9f0, 0xb9f1, 0xb9f2, 0xb9f3, 0xb9f6, 0xb9fb, 0xb9fc, 0xb9fd, 0xb9fe, 0xb9ff, 0xba02, 0xba03, 0xba04, 0xba05, 0xba06, 0xba07, 0xba09, 0xba0a, 0xba0b, 0xba0c, 0xba0d, 0xba0e, 0xba0f, 0xba10, 0xba11, 0xba12, 0xba13, 0xba14, 0xba16, 0xba17, 0xba18, 0xba19, 0xba1a, 0xba1b, 0xba1c, 0xba1d, 0xba1e, 0xba1f, 0xba20, 0xba21, 0xba22, 0xba23, 0xba24, 0xba25, 0xba26, 0xba27, 0xba28, 0xba29, 0xba2a, 0xba2b, 0xba2c, 0xba2d, 0xba2e, 0xba2f, 0xba30, 0xba31, 0xba32, 0xba33, 0xba34, 0xba35, 0xba36, 0xba37, 0xba3a, 0xba3b, 0xba3d, 0xba3e, 0xba3f, 0xba41, 0xba43, 0xba44, 0xba45, 0xba46, }; static const Py_UNICODE __uhc_decmap_91[190] = { /* 91::41-FE */ 0xba47, 0xba4a, 0xba4c, 0xba4f, 0xba50, 0xba51, 0xba52, 0xba56, 0xba57, 0xba59, 0xba5a, 0xba5b, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61, 0xba62, 0xba63, 0xba66, 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xba72, 0xba73, 0xba75, 0xba76, 0xba77, 0xba79, 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0xba7f, 0xba80, 0xba81, 0xba82, 0xba86, 0xba88, 0xba89, 0xba8a, 0xba8b, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xba9a, 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbaa1, 0xbaa2, 0xbaa3, 0xbaa4, 0xbaa5, 0xbaa6, 0xbaa7, 0xbaaa, 0xbaad, 0xbaae, 0xbaaf, 0xbab1, 0xbab3, 0xbab4, 0xbab5, 0xbab6, 0xbab7, 0xbaba, 0xbabc, 0xbabe, 0xbabf, 0xbac0, 0xbac1, 0xbac2, 0xbac3, 0xbac5, 0xbac6, 0xbac7, 0xbac9, 0xbaca, 0xbacb, 0xbacc, 0xbacd, 0xbace, 0xbacf, 0xbad0, 0xbad1, 0xbad2, 0xbad3, 0xbad4, 0xbad5, 0xbad6, 0xbad7, 0xbada, 0xbadb, 0xbadc, 0xbadd, 0xbade, 0xbadf, 0xbae0, 0xbae1, 0xbae2, 0xbae3, 0xbae4, 0xbae5, 0xbae6, 0xbae7, 0xbae8, 0xbae9, 0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0xbaee, 0xbaef, 0xbaf0, 0xbaf1, 0xbaf2, 0xbaf3, 0xbaf4, 0xbaf5, 0xbaf6, 0xbaf7, 0xbaf8, 0xbaf9, 0xbafa, 0xbafb, 0xbafd, 0xbafe, 0xbaff, 0xbb01, 0xbb02, 0xbb03, 0xbb05, 0xbb06, 0xbb07, 0xbb08, 0xbb09, 0xbb0a, 0xbb0b, 0xbb0c, 0xbb0e, 0xbb10, 0xbb12, 0xbb13, 0xbb14, 0xbb15, 0xbb16, 0xbb17, 0xbb19, 0xbb1a, 0xbb1b, 0xbb1d, 0xbb1e, 0xbb1f, 0xbb21, 0xbb22, 0xbb23, 0xbb24, 0xbb25, 0xbb26, 0xbb27, }; static const Py_UNICODE __uhc_decmap_92[190] = { /* 92::41-FE */ 0xbb28, 0xbb2a, 0xbb2c, 0xbb2d, 0xbb2e, 0xbb2f, 0xbb30, 0xbb31, 0xbb32, 0xbb33, 0xbb37, 0xbb39, 0xbb3a, 0xbb3f, 0xbb40, 0xbb41, 0xbb42, 0xbb43, 0xbb46, 0xbb48, 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4e, 0xbb51, 0xbb52, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbb53, 0xbb55, 0xbb56, 0xbb57, 0xbb59, 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb62, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69, 0xbb6a, 0xbb6b, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, 0xbb71, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbb72, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79, 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, 0xbb7f, 0xbb80, 0xbb81, 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xbb89, 0xbb8a, 0xbb8b, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb91, 0xbb92, 0xbb93, 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0, 0xbba1, 0xbba2, 0xbba3, 0xbba5, 0xbba6, 0xbba7, 0xbba9, 0xbbaa, 0xbbab, 0xbbad, 0xbbae, 0xbbaf, 0xbbb0, 0xbbb1, 0xbbb2, 0xbbb3, 0xbbb5, 0xbbb6, 0xbbb8, 0xbbb9, 0xbbba, 0xbbbb, 0xbbbc, 0xbbbd, 0xbbbe, 0xbbbf, 0xbbc1, 0xbbc2, 0xbbc3, 0xbbc5, 0xbbc6, 0xbbc7, 0xbbc9, 0xbbca, 0xbbcb, 0xbbcc, 0xbbcd, 0xbbce, 0xbbcf, 0xbbd1, 0xbbd2, 0xbbd4, 0xbbd5, 0xbbd6, 0xbbd7, 0xbbd8, 0xbbd9, 0xbbda, 0xbbdb, 0xbbdc, 0xbbdd, 0xbbde, 0xbbdf, 0xbbe0, 0xbbe1, 0xbbe2, 0xbbe3, 0xbbe4, 0xbbe5, 0xbbe6, 0xbbe7, 0xbbe8, 0xbbe9, 0xbbea, 0xbbeb, 0xbbec, 0xbbed, 0xbbee, 0xbbef, 0xbbf0, 0xbbf1, 0xbbf2, 0xbbf3, 0xbbf4, 0xbbf5, 0xbbf6, 0xbbf7, 0xbbfa, 0xbbfb, 0xbbfd, 0xbbfe, 0xbc01, }; static const Py_UNICODE __uhc_decmap_93[190] = { /* 93::41-FE */ 0xbc03, 0xbc04, 0xbc05, 0xbc06, 0xbc07, 0xbc0a, 0xbc0e, 0xbc10, 0xbc12, 0xbc13, 0xbc19, 0xbc1a, 0xbc20, 0xbc21, 0xbc22, 0xbc23, 0xbc26, 0xbc28, 0xbc2a, 0xbc2b, 0xbc2c, 0xbc2e, 0xbc2f, 0xbc32, 0xbc33, 0xbc35, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbc36, 0xbc37, 0xbc39, 0xbc3a, 0xbc3b, 0xbc3c, 0xbc3d, 0xbc3e, 0xbc3f, 0xbc42, 0xbc46, 0xbc47, 0xbc48, 0xbc4a, 0xbc4b, 0xbc4e, 0xbc4f, 0xbc51, 0xbc52, 0xbc53, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbc5a, 0xbc5b, 0xbc5c, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61, 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69, 0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71, 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc7f, 0xbc80, 0xbc81, 0xbc82, 0xbc83, 0xbc86, 0xbc87, 0xbc89, 0xbc8a, 0xbc8d, 0xbc8f, 0xbc90, 0xbc91, 0xbc92, 0xbc93, 0xbc96, 0xbc98, 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca2, 0xbca3, 0xbca5, 0xbca6, 0xbca9, 0xbcaa, 0xbcab, 0xbcac, 0xbcad, 0xbcae, 0xbcaf, 0xbcb2, 0xbcb6, 0xbcb7, 0xbcb8, 0xbcb9, 0xbcba, 0xbcbb, 0xbcbe, 0xbcbf, 0xbcc1, 0xbcc2, 0xbcc3, 0xbcc5, 0xbcc6, 0xbcc7, 0xbcc8, 0xbcc9, 0xbcca, 0xbccb, 0xbccc, 0xbcce, 0xbcd2, 0xbcd3, 0xbcd4, 0xbcd6, 0xbcd7, 0xbcd9, 0xbcda, 0xbcdb, 0xbcdd, 0xbcde, 0xbcdf, 0xbce0, 0xbce1, 0xbce2, 0xbce3, 0xbce4, 0xbce5, 0xbce6, 0xbce7, 0xbce8, 0xbce9, 0xbcea, 0xbceb, 0xbcec, 0xbced, 0xbcee, 0xbcef, 0xbcf0, 0xbcf1, 0xbcf2, 0xbcf3, 0xbcf7, 0xbcf9, 0xbcfa, 0xbcfb, 0xbcfd, }; static const Py_UNICODE __uhc_decmap_94[190] = { /* 94::41-FE */ 0xbcfe, 0xbcff, 0xbd00, 0xbd01, 0xbd02, 0xbd03, 0xbd06, 0xbd08, 0xbd0a, 0xbd0b, 0xbd0c, 0xbd0d, 0xbd0e, 0xbd0f, 0xbd11, 0xbd12, 0xbd13, 0xbd15, 0xbd16, 0xbd17, 0xbd18, 0xbd19, 0xbd1a, 0xbd1b, 0xbd1c, 0xbd1d, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbd1e, 0xbd1f, 0xbd20, 0xbd21, 0xbd22, 0xbd23, 0xbd25, 0xbd26, 0xbd27, 0xbd28, 0xbd29, 0xbd2a, 0xbd2b, 0xbd2d, 0xbd2e, 0xbd2f, 0xbd30, 0xbd31, 0xbd32, 0xbd33, 0xbd34, 0xbd35, 0xbd36, 0xbd37, 0xbd38, 0xbd39, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbd3a, 0xbd3b, 0xbd3c, 0xbd3d, 0xbd3e, 0xbd3f, 0xbd41, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd4a, 0xbd4b, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd51, 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, 0xbd61, 0xbd62, 0xbd63, 0xbd65, 0xbd66, 0xbd67, 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd7f, 0xbd82, 0xbd83, 0xbd85, 0xbd86, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd92, 0xbd94, 0xbd96, 0xbd97, 0xbd98, 0xbd9b, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbda1, 0xbda2, 0xbda3, 0xbda5, 0xbda6, 0xbda7, 0xbda8, 0xbda9, 0xbdaa, 0xbdab, 0xbdac, 0xbdad, 0xbdae, 0xbdaf, 0xbdb1, 0xbdb2, 0xbdb3, 0xbdb4, 0xbdb5, 0xbdb6, 0xbdb7, 0xbdb9, 0xbdba, 0xbdbb, 0xbdbc, 0xbdbd, 0xbdbe, 0xbdbf, 0xbdc0, 0xbdc1, 0xbdc2, 0xbdc3, 0xbdc4, 0xbdc5, 0xbdc6, 0xbdc7, 0xbdc8, 0xbdc9, 0xbdca, 0xbdcb, 0xbdcc, 0xbdcd, 0xbdce, 0xbdcf, 0xbdd0, 0xbdd1, }; static const Py_UNICODE __uhc_decmap_95[190] = { /* 95::41-FE */ 0xbdd2, 0xbdd3, 0xbdd6, 0xbdd7, 0xbdd9, 0xbdda, 0xbddb, 0xbddd, 0xbdde, 0xbddf, 0xbde0, 0xbde1, 0xbde2, 0xbde3, 0xbde4, 0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbdea, 0xbdeb, 0xbdec, 0xbded, 0xbdee, 0xbdef, 0xbdf1, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbdf2, 0xbdf3, 0xbdf5, 0xbdf6, 0xbdf7, 0xbdf9, 0xbdfa, 0xbdfb, 0xbdfc, 0xbdfd, 0xbdfe, 0xbdff, 0xbe01, 0xbe02, 0xbe04, 0xbe06, 0xbe07, 0xbe08, 0xbe09, 0xbe0a, 0xbe0b, 0xbe0e, 0xbe0f, 0xbe11, 0xbe12, 0xbe13, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbe15, 0xbe16, 0xbe17, 0xbe18, 0xbe19, 0xbe1a, 0xbe1b, 0xbe1e, 0xbe20, 0xbe21, 0xbe22, 0xbe23, 0xbe24, 0xbe25, 0xbe26, 0xbe27, 0xbe28, 0xbe29, 0xbe2a, 0xbe2b, 0xbe2c, 0xbe2d, 0xbe2e, 0xbe2f, 0xbe30, 0xbe31, 0xbe32, 0xbe33, 0xbe34, 0xbe35, 0xbe36, 0xbe37, 0xbe38, 0xbe39, 0xbe3a, 0xbe3b, 0xbe3c, 0xbe3d, 0xbe3e, 0xbe3f, 0xbe40, 0xbe41, 0xbe42, 0xbe43, 0xbe46, 0xbe47, 0xbe49, 0xbe4a, 0xbe4b, 0xbe4d, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, 0xbe56, 0xbe58, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0xbe62, 0xbe63, 0xbe65, 0xbe66, 0xbe67, 0xbe69, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, 0xbe6f, 0xbe72, 0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7e, 0xbe7f, 0xbe81, 0xbe82, 0xbe83, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, 0xbe8b, 0xbe8e, 0xbe92, 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbea1, 0xbea2, 0xbea3, 0xbea4, 0xbea5, 0xbea6, 0xbea7, 0xbea9, 0xbeaa, 0xbeab, 0xbeac, 0xbead, 0xbeae, 0xbeaf, 0xbeb0, 0xbeb1, 0xbeb2, 0xbeb3, 0xbeb4, 0xbeb5, 0xbeb6, 0xbeb7, }; static const Py_UNICODE __uhc_decmap_96[190] = { /* 96::41-FE */ 0xbeb8, 0xbeb9, 0xbeba, 0xbebb, 0xbebc, 0xbebd, 0xbebe, 0xbebf, 0xbec0, 0xbec1, 0xbec2, 0xbec3, 0xbec4, 0xbec5, 0xbec6, 0xbec7, 0xbec8, 0xbec9, 0xbeca, 0xbecb, 0xbecc, 0xbecd, 0xbece, 0xbecf, 0xbed2, 0xbed3, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbed5, 0xbed6, 0xbed9, 0xbeda, 0xbedb, 0xbedc, 0xbedd, 0xbede, 0xbedf, 0xbee1, 0xbee2, 0xbee6, 0xbee7, 0xbee8, 0xbee9, 0xbeea, 0xbeeb, 0xbeed, 0xbeee, 0xbeef, 0xbef0, 0xbef1, 0xbef2, 0xbef3, 0xbef4, 0xbef5, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbef6, 0xbef7, 0xbef8, 0xbef9, 0xbefa, 0xbefb, 0xbefc, 0xbefd, 0xbefe, 0xbeff, 0xbf00, 0xbf02, 0xbf03, 0xbf04, 0xbf05, 0xbf06, 0xbf07, 0xbf0a, 0xbf0b, 0xbf0c, 0xbf0d, 0xbf0e, 0xbf0f, 0xbf10, 0xbf11, 0xbf12, 0xbf13, 0xbf14, 0xbf15, 0xbf16, 0xbf17, 0xbf1a, 0xbf1e, 0xbf1f, 0xbf20, 0xbf21, 0xbf22, 0xbf23, 0xbf24, 0xbf25, 0xbf26, 0xbf27, 0xbf28, 0xbf29, 0xbf2a, 0xbf2b, 0xbf2c, 0xbf2d, 0xbf2e, 0xbf2f, 0xbf30, 0xbf31, 0xbf32, 0xbf33, 0xbf34, 0xbf35, 0xbf36, 0xbf37, 0xbf38, 0xbf39, 0xbf3a, 0xbf3b, 0xbf3c, 0xbf3d, 0xbf3e, 0xbf3f, 0xbf42, 0xbf43, 0xbf45, 0xbf46, 0xbf47, 0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf52, 0xbf53, 0xbf54, 0xbf56, 0xbf57, 0xbf58, 0xbf59, 0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, 0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf72, 0xbf73, 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, 0xbf7f, 0xbf80, 0xbf81, 0xbf82, }; static const Py_UNICODE __uhc_decmap_97[190] = { /* 97::41-FE */ 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, 0xbf93, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, 0xbf9b, 0xbf9c, 0xbf9d, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbf9e, 0xbf9f, 0xbfa0, 0xbfa1, 0xbfa2, 0xbfa3, 0xbfa4, 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 0xbfaa, 0xbfab, 0xbfac, 0xbfad, 0xbfae, 0xbfaf, 0xbfb1, 0xbfb2, 0xbfb3, 0xbfb4, 0xbfb5, 0xbfb6, 0xbfb7, 0xbfb8, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xbfb9, 0xbfba, 0xbfbb, 0xbfbc, 0xbfbd, 0xbfbe, 0xbfbf, 0xbfc0, 0xbfc1, 0xbfc2, 0xbfc3, 0xbfc4, 0xbfc6, 0xbfc7, 0xbfc8, 0xbfc9, 0xbfca, 0xbfcb, 0xbfce, 0xbfcf, 0xbfd1, 0xbfd2, 0xbfd3, 0xbfd5, 0xbfd6, 0xbfd7, 0xbfd8, 0xbfd9, 0xbfda, 0xbfdb, 0xbfdd, 0xbfde, 0xbfe0, 0xbfe2, 0xbfe3, 0xbfe4, 0xbfe5, 0xbfe6, 0xbfe7, 0xbfe8, 0xbfe9, 0xbfea, 0xbfeb, 0xbfec, 0xbfed, 0xbfee, 0xbfef, 0xbff0, 0xbff1, 0xbff2, 0xbff3, 0xbff4, 0xbff5, 0xbff6, 0xbff7, 0xbff8, 0xbff9, 0xbffa, 0xbffb, 0xbffc, 0xbffd, 0xbffe, 0xbfff, 0xc000, 0xc001, 0xc002, 0xc003, 0xc004, 0xc005, 0xc006, 0xc007, 0xc008, 0xc009, 0xc00a, 0xc00b, 0xc00c, 0xc00d, 0xc00e, 0xc00f, 0xc010, 0xc011, 0xc012, 0xc013, 0xc014, 0xc015, 0xc016, 0xc017, 0xc018, 0xc019, 0xc01a, 0xc01b, 0xc01c, 0xc01d, 0xc01e, 0xc01f, 0xc020, 0xc021, 0xc022, 0xc023, 0xc024, 0xc025, 0xc026, 0xc027, 0xc028, 0xc029, 0xc02a, 0xc02b, 0xc02c, 0xc02d, 0xc02e, 0xc02f, 0xc030, 0xc031, 0xc032, 0xc033, 0xc034, 0xc035, 0xc036, 0xc037, 0xc038, 0xc039, 0xc03a, 0xc03b, 0xc03d, 0xc03e, 0xc03f, }; static const Py_UNICODE __uhc_decmap_98[190] = { /* 98::41-FE */ 0xc040, 0xc041, 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc059, 0xc05a, 0xc05b, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc05d, 0xc05e, 0xc05f, 0xc061, 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071, 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc07e, 0xc07f, 0xc080, 0xc081, 0xc082, 0xc083, 0xc084, 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a, 0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0xc092, 0xc093, 0xc095, 0xc096, 0xc097, 0xc099, 0xc09a, 0xc09b, 0xc09c, 0xc09d, 0xc09e, 0xc09f, 0xc0a2, 0xc0a4, 0xc0a6, 0xc0a7, 0xc0a8, 0xc0a9, 0xc0aa, 0xc0ab, 0xc0ae, 0xc0b1, 0xc0b2, 0xc0b7, 0xc0b8, 0xc0b9, 0xc0ba, 0xc0bb, 0xc0be, 0xc0c2, 0xc0c3, 0xc0c4, 0xc0c6, 0xc0c7, 0xc0ca, 0xc0cb, 0xc0cd, 0xc0ce, 0xc0cf, 0xc0d1, 0xc0d2, 0xc0d3, 0xc0d4, 0xc0d5, 0xc0d6, 0xc0d7, 0xc0da, 0xc0de, 0xc0df, 0xc0e0, 0xc0e1, 0xc0e2, 0xc0e3, 0xc0e6, 0xc0e7, 0xc0e9, 0xc0ea, 0xc0eb, 0xc0ed, 0xc0ee, 0xc0ef, 0xc0f0, 0xc0f1, 0xc0f2, 0xc0f3, 0xc0f6, 0xc0f8, 0xc0fa, 0xc0fb, 0xc0fc, 0xc0fd, 0xc0fe, 0xc0ff, 0xc101, 0xc102, 0xc103, 0xc105, 0xc106, 0xc107, 0xc109, 0xc10a, 0xc10b, 0xc10c, 0xc10d, 0xc10e, 0xc10f, 0xc111, 0xc112, 0xc113, 0xc114, 0xc116, 0xc117, 0xc118, 0xc119, 0xc11a, 0xc11b, 0xc121, 0xc122, 0xc125, 0xc128, 0xc129, 0xc12a, 0xc12b, 0xc12e, }; static const Py_UNICODE __uhc_decmap_99[190] = { /* 99::41-FE */ 0xc132, 0xc133, 0xc134, 0xc135, 0xc137, 0xc13a, 0xc13b, 0xc13d, 0xc13e, 0xc13f, 0xc141, 0xc142, 0xc143, 0xc144, 0xc145, 0xc146, 0xc147, 0xc14a, 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc152, 0xc153, 0xc156, 0xc157, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc159, 0xc15a, 0xc15b, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, 0xc162, 0xc163, 0xc166, 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc171, 0xc172, 0xc173, 0xc175, 0xc176, 0xc177, 0xc179, 0xc17a, 0xc17b, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc17c, 0xc17d, 0xc17e, 0xc17f, 0xc180, 0xc181, 0xc182, 0xc183, 0xc184, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, 0xc18b, 0xc18f, 0xc191, 0xc192, 0xc193, 0xc195, 0xc197, 0xc198, 0xc199, 0xc19a, 0xc19b, 0xc19e, 0xc1a0, 0xc1a2, 0xc1a3, 0xc1a4, 0xc1a6, 0xc1a7, 0xc1aa, 0xc1ab, 0xc1ad, 0xc1ae, 0xc1af, 0xc1b1, 0xc1b2, 0xc1b3, 0xc1b4, 0xc1b5, 0xc1b6, 0xc1b7, 0xc1b8, 0xc1b9, 0xc1ba, 0xc1bb, 0xc1bc, 0xc1be, 0xc1bf, 0xc1c0, 0xc1c1, 0xc1c2, 0xc1c3, 0xc1c5, 0xc1c6, 0xc1c7, 0xc1c9, 0xc1ca, 0xc1cb, 0xc1cd, 0xc1ce, 0xc1cf, 0xc1d0, 0xc1d1, 0xc1d2, 0xc1d3, 0xc1d5, 0xc1d6, 0xc1d9, 0xc1da, 0xc1db, 0xc1dc, 0xc1dd, 0xc1de, 0xc1df, 0xc1e1, 0xc1e2, 0xc1e3, 0xc1e5, 0xc1e6, 0xc1e7, 0xc1e9, 0xc1ea, 0xc1eb, 0xc1ec, 0xc1ed, 0xc1ee, 0xc1ef, 0xc1f2, 0xc1f4, 0xc1f5, 0xc1f6, 0xc1f7, 0xc1f8, 0xc1f9, 0xc1fa, 0xc1fb, 0xc1fe, 0xc1ff, 0xc201, 0xc202, 0xc203, 0xc205, 0xc206, 0xc207, 0xc208, 0xc209, 0xc20a, 0xc20b, 0xc20e, 0xc210, 0xc212, 0xc213, 0xc214, 0xc215, 0xc216, 0xc217, 0xc21a, 0xc21b, 0xc21d, 0xc21e, 0xc221, 0xc222, 0xc223, }; static const Py_UNICODE __uhc_decmap_9A[190] = { /* 9A::41-FE */ 0xc224, 0xc225, 0xc226, 0xc227, 0xc22a, 0xc22c, 0xc22e, 0xc230, 0xc233, 0xc235, 0xc236, 0xc237, 0xc238, 0xc239, 0xc23a, 0xc23b, 0xc23c, 0xc23d, 0xc23e, 0xc23f, 0xc240, 0xc241, 0xc242, 0xc243, 0xc244, 0xc245, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc246, 0xc247, 0xc249, 0xc24a, 0xc24b, 0xc24c, 0xc24d, 0xc24e, 0xc24f, 0xc252, 0xc253, 0xc255, 0xc256, 0xc257, 0xc259, 0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, 0xc25f, 0xc261, 0xc262, 0xc263, 0xc264, 0xc266, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc267, 0xc268, 0xc269, 0xc26a, 0xc26b, 0xc26e, 0xc26f, 0xc271, 0xc272, 0xc273, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, 0xc27a, 0xc27b, 0xc27e, 0xc280, 0xc282, 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc28a, 0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xc28f, 0xc291, 0xc292, 0xc293, 0xc294, 0xc295, 0xc296, 0xc297, 0xc299, 0xc29a, 0xc29c, 0xc29e, 0xc29f, 0xc2a0, 0xc2a1, 0xc2a2, 0xc2a3, 0xc2a6, 0xc2a7, 0xc2a9, 0xc2aa, 0xc2ab, 0xc2ae, 0xc2af, 0xc2b0, 0xc2b1, 0xc2b2, 0xc2b3, 0xc2b6, 0xc2b8, 0xc2ba, 0xc2bb, 0xc2bc, 0xc2bd, 0xc2be, 0xc2bf, 0xc2c0, 0xc2c1, 0xc2c2, 0xc2c3, 0xc2c4, 0xc2c5, 0xc2c6, 0xc2c7, 0xc2c8, 0xc2c9, 0xc2ca, 0xc2cb, 0xc2cc, 0xc2cd, 0xc2ce, 0xc2cf, 0xc2d0, 0xc2d1, 0xc2d2, 0xc2d3, 0xc2d4, 0xc2d5, 0xc2d6, 0xc2d7, 0xc2d8, 0xc2d9, 0xc2da, 0xc2db, 0xc2de, 0xc2df, 0xc2e1, 0xc2e2, 0xc2e5, 0xc2e6, 0xc2e7, 0xc2e8, 0xc2e9, 0xc2ea, 0xc2ee, 0xc2f0, 0xc2f2, 0xc2f3, 0xc2f4, 0xc2f5, 0xc2f7, 0xc2fa, 0xc2fd, 0xc2fe, 0xc2ff, 0xc301, 0xc302, 0xc303, 0xc304, 0xc305, 0xc306, 0xc307, 0xc30a, 0xc30b, 0xc30e, 0xc30f, }; static const Py_UNICODE __uhc_decmap_9B[190] = { /* 9B::41-FE */ 0xc310, 0xc311, 0xc312, 0xc316, 0xc317, 0xc319, 0xc31a, 0xc31b, 0xc31d, 0xc31e, 0xc31f, 0xc320, 0xc321, 0xc322, 0xc323, 0xc326, 0xc327, 0xc32a, 0xc32b, 0xc32c, 0xc32d, 0xc32e, 0xc32f, 0xc330, 0xc331, 0xc332, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc333, 0xc334, 0xc335, 0xc336, 0xc337, 0xc338, 0xc339, 0xc33a, 0xc33b, 0xc33c, 0xc33d, 0xc33e, 0xc33f, 0xc340, 0xc341, 0xc342, 0xc343, 0xc344, 0xc346, 0xc347, 0xc348, 0xc349, 0xc34a, 0xc34b, 0xc34c, 0xc34d, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc34e, 0xc34f, 0xc350, 0xc351, 0xc352, 0xc353, 0xc354, 0xc355, 0xc356, 0xc357, 0xc358, 0xc359, 0xc35a, 0xc35b, 0xc35c, 0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361, 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc36a, 0xc36b, 0xc36d, 0xc36e, 0xc36f, 0xc371, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc37a, 0xc37b, 0xc37e, 0xc37f, 0xc380, 0xc381, 0xc382, 0xc383, 0xc385, 0xc386, 0xc387, 0xc389, 0xc38a, 0xc38b, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392, 0xc393, 0xc394, 0xc395, 0xc396, 0xc397, 0xc398, 0xc399, 0xc39a, 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc3a0, 0xc3a1, 0xc3a2, 0xc3a3, 0xc3a4, 0xc3a5, 0xc3a6, 0xc3a7, 0xc3a8, 0xc3a9, 0xc3aa, 0xc3ab, 0xc3ac, 0xc3ad, 0xc3ae, 0xc3af, 0xc3b0, 0xc3b1, 0xc3b2, 0xc3b3, 0xc3b4, 0xc3b5, 0xc3b6, 0xc3b7, 0xc3b8, 0xc3b9, 0xc3ba, 0xc3bb, 0xc3bc, 0xc3bd, 0xc3be, 0xc3bf, 0xc3c1, 0xc3c2, 0xc3c3, 0xc3c4, 0xc3c5, 0xc3c6, 0xc3c7, 0xc3c8, 0xc3c9, 0xc3ca, 0xc3cb, 0xc3cc, 0xc3cd, 0xc3ce, 0xc3cf, 0xc3d0, 0xc3d1, 0xc3d2, 0xc3d3, 0xc3d4, 0xc3d5, 0xc3d6, 0xc3d7, 0xc3da, }; static const Py_UNICODE __uhc_decmap_9C[190] = { /* 9C::41-FE */ 0xc3db, 0xc3dd, 0xc3de, 0xc3e1, 0xc3e3, 0xc3e4, 0xc3e5, 0xc3e6, 0xc3e7, 0xc3ea, 0xc3eb, 0xc3ec, 0xc3ee, 0xc3ef, 0xc3f0, 0xc3f1, 0xc3f2, 0xc3f3, 0xc3f6, 0xc3f7, 0xc3f9, 0xc3fa, 0xc3fb, 0xc3fc, 0xc3fd, 0xc3fe, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc3ff, 0xc400, 0xc401, 0xc402, 0xc403, 0xc404, 0xc405, 0xc406, 0xc407, 0xc409, 0xc40a, 0xc40b, 0xc40c, 0xc40d, 0xc40e, 0xc40f, 0xc411, 0xc412, 0xc413, 0xc414, 0xc415, 0xc416, 0xc417, 0xc418, 0xc419, 0xc41a, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc41b, 0xc41c, 0xc41d, 0xc41e, 0xc41f, 0xc420, 0xc421, 0xc422, 0xc423, 0xc425, 0xc426, 0xc427, 0xc428, 0xc429, 0xc42a, 0xc42b, 0xc42d, 0xc42e, 0xc42f, 0xc431, 0xc432, 0xc433, 0xc435, 0xc436, 0xc437, 0xc438, 0xc439, 0xc43a, 0xc43b, 0xc43e, 0xc43f, 0xc440, 0xc441, 0xc442, 0xc443, 0xc444, 0xc445, 0xc446, 0xc447, 0xc449, 0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, 0xc44f, 0xc450, 0xc451, 0xc452, 0xc453, 0xc454, 0xc455, 0xc456, 0xc457, 0xc458, 0xc459, 0xc45a, 0xc45b, 0xc45c, 0xc45d, 0xc45e, 0xc45f, 0xc460, 0xc461, 0xc462, 0xc463, 0xc466, 0xc467, 0xc469, 0xc46a, 0xc46b, 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471, 0xc472, 0xc473, 0xc476, 0xc477, 0xc478, 0xc47a, 0xc47b, 0xc47c, 0xc47d, 0xc47e, 0xc47f, 0xc481, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489, 0xc48a, 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, 0xc491, 0xc492, 0xc493, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a, 0xc49b, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc4a1, 0xc4a2, 0xc4a3, 0xc4a4, 0xc4a5, 0xc4a6, 0xc4a7, 0xc4a8, 0xc4a9, }; static const Py_UNICODE __uhc_decmap_9D[190] = { /* 9D::41-FE */ 0xc4aa, 0xc4ab, 0xc4ac, 0xc4ad, 0xc4ae, 0xc4af, 0xc4b0, 0xc4b1, 0xc4b2, 0xc4b3, 0xc4b4, 0xc4b5, 0xc4b6, 0xc4b7, 0xc4b9, 0xc4ba, 0xc4bb, 0xc4bd, 0xc4be, 0xc4bf, 0xc4c0, 0xc4c1, 0xc4c2, 0xc4c3, 0xc4c4, 0xc4c5, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc4c6, 0xc4c7, 0xc4c8, 0xc4c9, 0xc4ca, 0xc4cb, 0xc4cc, 0xc4cd, 0xc4ce, 0xc4cf, 0xc4d0, 0xc4d1, 0xc4d2, 0xc4d3, 0xc4d4, 0xc4d5, 0xc4d6, 0xc4d7, 0xc4d8, 0xc4d9, 0xc4da, 0xc4db, 0xc4dc, 0xc4dd, 0xc4de, 0xc4df, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc4e0, 0xc4e1, 0xc4e2, 0xc4e3, 0xc4e4, 0xc4e5, 0xc4e6, 0xc4e7, 0xc4e8, 0xc4ea, 0xc4eb, 0xc4ec, 0xc4ed, 0xc4ee, 0xc4ef, 0xc4f2, 0xc4f3, 0xc4f5, 0xc4f6, 0xc4f7, 0xc4f9, 0xc4fb, 0xc4fc, 0xc4fd, 0xc4fe, 0xc502, 0xc503, 0xc504, 0xc505, 0xc506, 0xc507, 0xc508, 0xc509, 0xc50a, 0xc50b, 0xc50d, 0xc50e, 0xc50f, 0xc511, 0xc512, 0xc513, 0xc515, 0xc516, 0xc517, 0xc518, 0xc519, 0xc51a, 0xc51b, 0xc51d, 0xc51e, 0xc51f, 0xc520, 0xc521, 0xc522, 0xc523, 0xc524, 0xc525, 0xc526, 0xc527, 0xc52a, 0xc52b, 0xc52d, 0xc52e, 0xc52f, 0xc531, 0xc532, 0xc533, 0xc534, 0xc535, 0xc536, 0xc537, 0xc53a, 0xc53c, 0xc53e, 0xc53f, 0xc540, 0xc541, 0xc542, 0xc543, 0xc546, 0xc547, 0xc54b, 0xc54f, 0xc550, 0xc551, 0xc552, 0xc556, 0xc55a, 0xc55b, 0xc55c, 0xc55f, 0xc562, 0xc563, 0xc565, 0xc566, 0xc567, 0xc569, 0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, 0xc56f, 0xc572, 0xc576, 0xc577, 0xc578, 0xc579, 0xc57a, 0xc57b, 0xc57e, 0xc57f, 0xc581, 0xc582, 0xc583, 0xc585, 0xc586, 0xc588, 0xc589, 0xc58a, 0xc58b, 0xc58e, 0xc590, 0xc592, 0xc593, 0xc594, }; static const Py_UNICODE __uhc_decmap_9E[190] = { /* 9E::41-FE */ 0xc596, 0xc599, 0xc59a, 0xc59b, 0xc59d, 0xc59e, 0xc59f, 0xc5a1, 0xc5a2, 0xc5a3, 0xc5a4, 0xc5a5, 0xc5a6, 0xc5a7, 0xc5a8, 0xc5aa, 0xc5ab, 0xc5ac, 0xc5ad, 0xc5ae, 0xc5af, 0xc5b0, 0xc5b1, 0xc5b2, 0xc5b3, 0xc5b6, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc5b7, 0xc5ba, 0xc5bf, 0xc5c0, 0xc5c1, 0xc5c2, 0xc5c3, 0xc5cb, 0xc5cd, 0xc5cf, 0xc5d2, 0xc5d3, 0xc5d5, 0xc5d6, 0xc5d7, 0xc5d9, 0xc5da, 0xc5db, 0xc5dc, 0xc5dd, 0xc5de, 0xc5df, 0xc5e2, 0xc5e4, 0xc5e6, 0xc5e7, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0xc5ef, 0xc5f1, 0xc5f2, 0xc5f3, 0xc5f5, 0xc5f8, 0xc5f9, 0xc5fa, 0xc5fb, 0xc602, 0xc603, 0xc604, 0xc609, 0xc60a, 0xc60b, 0xc60d, 0xc60e, 0xc60f, 0xc611, 0xc612, 0xc613, 0xc614, 0xc615, 0xc616, 0xc617, 0xc61a, 0xc61d, 0xc61e, 0xc61f, 0xc620, 0xc621, 0xc622, 0xc623, 0xc626, 0xc627, 0xc629, 0xc62a, 0xc62b, 0xc62f, 0xc631, 0xc632, 0xc636, 0xc638, 0xc63a, 0xc63c, 0xc63d, 0xc63e, 0xc63f, 0xc642, 0xc643, 0xc645, 0xc646, 0xc647, 0xc649, 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc652, 0xc656, 0xc657, 0xc658, 0xc659, 0xc65a, 0xc65b, 0xc65e, 0xc65f, 0xc661, 0xc662, 0xc663, 0xc664, 0xc665, 0xc666, 0xc667, 0xc668, 0xc669, 0xc66a, 0xc66b, 0xc66d, 0xc66e, 0xc670, 0xc672, 0xc673, 0xc674, 0xc675, 0xc676, 0xc677, 0xc67a, 0xc67b, 0xc67d, 0xc67e, 0xc67f, 0xc681, 0xc682, 0xc683, 0xc684, 0xc685, 0xc686, 0xc687, 0xc68a, 0xc68c, 0xc68e, 0xc68f, 0xc690, 0xc691, 0xc692, 0xc693, 0xc696, 0xc697, 0xc699, 0xc69a, 0xc69b, 0xc69d, 0xc69e, 0xc69f, 0xc6a0, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a6, }; static const Py_UNICODE __uhc_decmap_9F[190] = { /* 9F::41-FE */ 0xc6a8, 0xc6aa, 0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b2, 0xc6b3, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c2, 0xc6c4, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb, 0xc6ce, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc6cf, 0xc6d1, 0xc6d2, 0xc6d3, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, 0xc6db, 0xc6de, 0xc6df, 0xc6e2, 0xc6e3, 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6ea, 0xc6eb, 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f1, 0xc6f2, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc6f3, 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fe, 0xc6ff, 0xc700, 0xc701, 0xc702, 0xc703, 0xc706, 0xc707, 0xc709, 0xc70a, 0xc70b, 0xc70d, 0xc70e, 0xc70f, 0xc710, 0xc711, 0xc712, 0xc713, 0xc716, 0xc718, 0xc71a, 0xc71b, 0xc71c, 0xc71d, 0xc71e, 0xc71f, 0xc722, 0xc723, 0xc725, 0xc726, 0xc727, 0xc729, 0xc72a, 0xc72b, 0xc72c, 0xc72d, 0xc72e, 0xc72f, 0xc732, 0xc734, 0xc736, 0xc738, 0xc739, 0xc73a, 0xc73b, 0xc73e, 0xc73f, 0xc741, 0xc742, 0xc743, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74b, 0xc74e, 0xc750, 0xc759, 0xc75a, 0xc75b, 0xc75d, 0xc75e, 0xc75f, 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc769, 0xc76a, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772, 0xc773, 0xc776, 0xc777, 0xc779, 0xc77a, 0xc77b, 0xc77f, 0xc780, 0xc781, 0xc782, 0xc786, 0xc78b, 0xc78c, 0xc78d, 0xc78f, 0xc792, 0xc793, 0xc795, 0xc799, 0xc79b, 0xc79c, 0xc79d, 0xc79e, 0xc79f, 0xc7a2, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ae, 0xc7af, 0xc7b1, 0xc7b2, 0xc7b3, 0xc7b5, 0xc7b6, 0xc7b7, }; static const Py_UNICODE __uhc_decmap_A0[190] = { /* A0::41-FE */ 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7be, 0xc7c2, 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7ca, 0xc7cb, 0xc7cd, 0xc7cf, 0xc7d1, 0xc7d2, 0xc7d3, 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d9, 0xc7da, 0xc7db, 0xc7dc, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4, 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xc7fb, 0xc7fc, 0xc7fd, 0xc7fe, 0xc7ff, 0xc802, 0xc803, 0xc805, 0xc806, 0xc807, 0xc809, 0xc80b, 0xc80c, 0xc80d, 0xc80e, 0xc80f, 0xc812, 0xc814, 0xc817, 0xc818, 0xc819, 0xc81a, 0xc81b, 0xc81e, 0xc81f, 0xc821, 0xc822, 0xc823, 0xc825, 0xc826, 0xc827, 0xc828, 0xc829, 0xc82a, 0xc82b, 0xc82e, 0xc830, 0xc832, 0xc833, 0xc834, 0xc835, 0xc836, 0xc837, 0xc839, 0xc83a, 0xc83b, 0xc83d, 0xc83e, 0xc83f, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xc847, 0xc84a, 0xc84b, 0xc84e, 0xc84f, 0xc850, 0xc851, 0xc852, 0xc853, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, 0xc85a, 0xc85b, 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc8... [truncated message content] |
From: Hye-Shik C. <pe...@us...> - 2003-05-14 06:46:52
|
perky 03/05/13 23:46:50 Added: tools genmap_korean.py Removed: tools genmap_ko_codecs.py Log: Go! KoCo! Revision Changes Path 1.1 cjkcodecs/tools/genmap_korean.py Index: genmap_korean.py =================================================================== # # genmap_korean.py: Korean Codecs Map Generator # # Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # $Id: genmap_korean.py,v 1.1 2003/05/14 06:46:50 perky Exp $ # from genmap_support import * KSX1001_C1 = (0x21, 0x7e) KSX1001_C2 = (0x21, 0x7e) UHCL1_C1 = (0x81, 0xa0) UHCL1_C2 = (0x41, 0xfe) UHCL2_C1 = (0xa1, 0xfe) UHCL2_C2 = (0x41, 0xa0) try: mapfile = open('CP949.TXT') except IOError: print "=>> Please download mapping table from http://www.unicode." \ "org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT" raise SystemExit print "Loading Mapping File..." datever, decmap = loadmap(mapfile) uhcdecmap, ksx1001decmap = {}, {} for c1, c2map in decmap.iteritems(): for c2 in c2map.iterkeys(): if c1 >= 0xa1 and c2 >= 0xa1: ksx1001decmap.setdefault(c1&0x7f, {}) ksx1001decmap[c1&0x7f][c2&0x7f] = c2map[c2] else: # uhc uhcdecmap.setdefault(c1, {}) uhcdecmap[c1][c2] = c2map[c2] omap = open('map_ksx1001.h', 'w') printcopyright(omap) print "Generating KS X 1001 decode map..." genmap_decode(omap, "ksx1001", KSX1001_C1, KSX1001_C2, ksx1001decmap) print "Generating KS X 1001 decode map index..." print_decmapindex(omap, "ksx1001", ksx1001decmap, rng=(0, 127)) omap = open('map_cp949.h', 'w') printcopyright(omap) print "Generating UHC Level 1 decode map..." genmap_decode(omap, "uhc", UHCL1_C1, UHCL1_C2, uhcdecmap) print "Generating UHC Level 2 decode map..." genmap_decode(omap, "uhc", UHCL2_C1, UHCL2_C2, uhcdecmap) print "Generating UHC decode map index..." print_decmapindex(omap, "uhc", uhcdecmap) print "\nDone!" # ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-05-09 16:36:46
|
perky 03/05/09 09:36:45 Modified: src hangul.c Log: arm, powerpc and s390 uses unsigned char as default. (From debian bug #170535, by Gerhard Tonn <Ger...@ga...>) Revision Changes Path 1.18 +5 -5 KoreanCodecs/src/hangul.c Index: hangul.c =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/src/hangul.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- hangul.c 13 Jan 2003 09:09:58 -0000 1.17 +++ hangul.c 9 May 2003 16:36:45 -0000 1.18 @@ -1,10 +1,10 @@ /* - * hangul.c - $Revision: 1.17 $ + * hangul.c - $Revision: 1.18 $ * * KoreanCodecs Hangul Module C Implementation * * Author : Hye-Shik Chang <pe...@Fr...> - * Date : $Date: 2003/01/13 09:09:58 $ + * Date : $Date: 2003/05/09 16:36:45 $ * Created : 25 April 2002 * * This file is part of KoreanCodecs. @@ -24,7 +24,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -static char *version = "$Revision: 1.17 $"; +static char *version = "$Revision: 1.18 $"; #include "Python.h" @@ -67,7 +67,7 @@ char *name; Py_UNICODE code; int multi[MAX_MULTIJAMO]; - char orders[3]; /* cho, jung, jong */ + signed char orders[3]; /* cho, jung, jong */ } jamotype; #define CODE(c) #c,c @@ -829,6 +829,6 @@ } /* - * $Id: hangul.c,v 1.17 2003/01/13 09:09:58 perky Exp $ + * $Id: hangul.c,v 1.18 2003/05/09 16:36:45 perky Exp $ * ex: ts=8 sts=4 et */ |
From: Hye-Shik C. <pe...@us...> - 2003-04-22 21:27:34
|
perky 03/04/22 14:27:33 Modified: src Makefile map_cp932.c map_generic.c.in map_jisx0208.c map_jisx0212.c Log: Mention about auto-generated files. Revision Changes Path 1.2 +4 -2 cjkcodecs/src/Makefile Index: Makefile =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Makefile 22 Apr 2003 21:04:31 -0000 1.1 +++ Makefile 22 Apr 2003 21:27:29 -0000 1.2 @@ -25,7 +25,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: Makefile,v 1.1 2003/04/22 21:04:31 perky Exp $ +# $Id: Makefile,v 1.2 2003/04/22 21:27:29 perky Exp $ # GENERIC_CHARSETS= cp932 jisx0208 jisx0212 @@ -36,6 +36,8 @@ for cset in ${GENERIC_CHARSETS}; do \ CSET=`echo $$cset|tr "[:lower:]" "[:upper:]"`; \ sed -e "s/%%CHARSET%%/$$CSET/g" \ - -e "s/%%charset%%/$$cset/g" map_generic.c.in \ + -e "s/%%charset%%/$$cset/g" \ + -e "s/%%__%%/ACHTUNG: This is generated file automatically.\ + Please do not edit./g" map_generic.c.in \ > map_$$cset.c; \ done 1.3 +3 -1 cjkcodecs/src/map_cp932.c Index: map_cp932.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp932.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- map_cp932.c 22 Apr 2003 21:19:31 -0000 1.2 +++ map_cp932.c 22 Apr 2003 21:27:30 -0000 1.3 @@ -1,4 +1,6 @@ /* + * ACHTUNG: This is generated file automatically. Please do not edit. + * * map_cp932.c: CP932 Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. @@ -26,7 +28,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_cp932.c,v 1.2 2003/04/22 21:19:31 perky Exp $ + * $Id: map_cp932.c,v 1.3 2003/04/22 21:27:30 perky Exp $ */ #include "Python.h" 1.3 +3 -1 cjkcodecs/src/map_generic.c.in Index: map_generic.c.in =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_generic.c.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- map_generic.c.in 22 Apr 2003 21:19:31 -0000 1.2 +++ map_generic.c.in 22 Apr 2003 21:27:30 -0000 1.3 @@ -1,4 +1,6 @@ /* + * %%__%% + * * map_%%charset%%.c: %%CHARSET%% Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. @@ -26,7 +28,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_generic.c.in,v 1.2 2003/04/22 21:19:31 perky Exp $ + * $Id: map_generic.c.in,v 1.3 2003/04/22 21:27:30 perky Exp $ */ #include "Python.h" 1.3 +3 -1 cjkcodecs/src/map_jisx0208.c Index: map_jisx0208.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0208.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- map_jisx0208.c 22 Apr 2003 21:19:31 -0000 1.2 +++ map_jisx0208.c 22 Apr 2003 21:27:30 -0000 1.3 @@ -1,4 +1,6 @@ /* + * ACHTUNG: This is generated file automatically. Please do not edit. + * * map_jisx0208.c: JISX0208 Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. @@ -26,7 +28,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_jisx0208.c,v 1.2 2003/04/22 21:19:31 perky Exp $ + * $Id: map_jisx0208.c,v 1.3 2003/04/22 21:27:30 perky Exp $ */ #include "Python.h" 1.3 +3 -1 cjkcodecs/src/map_jisx0212.c Index: map_jisx0212.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0212.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- map_jisx0212.c 22 Apr 2003 21:19:32 -0000 1.2 +++ map_jisx0212.c 22 Apr 2003 21:27:31 -0000 1.3 @@ -1,4 +1,6 @@ /* + * ACHTUNG: This is generated file automatically. Please do not edit. + * * map_jisx0212.c: JISX0212 Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. @@ -26,7 +28,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_jisx0212.c,v 1.2 2003/04/22 21:19:32 perky Exp $ + * $Id: map_jisx0212.c,v 1.3 2003/04/22 21:27:31 perky Exp $ */ #include "Python.h" |
From: Hye-Shik C. <pe...@us...> - 2003-04-22 21:19:35
|
perky 03/04/22 14:19:32 Modified: src map_cp932.c map_generic.c.in map_jisx0208.c map_jisx0212.c Log: Enable tweaking unicode encoding map. Revision Changes Path 1.2 +5 -1 cjkcodecs/src/map_cp932.c Index: map_cp932.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp932.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_cp932.c 22 Apr 2003 21:04:31 -0000 1.1 +++ map_cp932.c 22 Apr 2003 21:19:31 -0000 1.2 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_cp932.c,v 1.1 2003/04/22 21:04:31 perky Exp $ + * $Id: map_cp932.c,v 1.2 2003/04/22 21:19:31 perky Exp $ */ #include "Python.h" @@ -77,6 +77,10 @@ } } +#ifdef CP932_TWEAKUNIMAP + CP932_TWEAKUNIMAP(__encode_map); +#endif + return 0; errorexit: 1.2 +5 -1 cjkcodecs/src/map_generic.c.in Index: map_generic.c.in =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_generic.c.in,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_generic.c.in 22 Apr 2003 21:04:33 -0000 1.1 +++ map_generic.c.in 22 Apr 2003 21:19:31 -0000 1.2 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_generic.c.in,v 1.1 2003/04/22 21:04:33 perky Exp $ + * $Id: map_generic.c.in,v 1.2 2003/04/22 21:19:31 perky Exp $ */ #include "Python.h" @@ -77,6 +77,10 @@ } } +#ifdef %%CHARSET%%_TWEAKUNIMAP + %%CHARSET%%_TWEAKUNIMAP(__encode_map); +#endif + return 0; errorexit: 1.2 +5 -1 cjkcodecs/src/map_jisx0208.c Index: map_jisx0208.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0208.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_jisx0208.c 22 Apr 2003 21:04:33 -0000 1.1 +++ map_jisx0208.c 22 Apr 2003 21:19:31 -0000 1.2 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_jisx0208.c,v 1.1 2003/04/22 21:04:33 perky Exp $ + * $Id: map_jisx0208.c,v 1.2 2003/04/22 21:19:31 perky Exp $ */ #include "Python.h" @@ -77,6 +77,10 @@ } } +#ifdef JISX0208_TWEAKUNIMAP + JISX0208_TWEAKUNIMAP(__encode_map); +#endif + return 0; errorexit: 1.2 +5 -1 cjkcodecs/src/map_jisx0212.c Index: map_jisx0212.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0212.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_jisx0212.c 22 Apr 2003 21:04:33 -0000 1.1 +++ map_jisx0212.c 22 Apr 2003 21:19:32 -0000 1.2 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: map_jisx0212.c,v 1.1 2003/04/22 21:04:33 perky Exp $ + * $Id: map_jisx0212.c,v 1.2 2003/04/22 21:19:32 perky Exp $ */ #include "Python.h" @@ -77,6 +77,10 @@ } } +#ifdef JISX0212_TWEAKUNIMAP + JISX0212_TWEAKUNIMAP(__encode_map); +#endif + return 0; errorexit: |
From: Hye-Shik C. <pe...@us...> - 2003-04-22 21:04:39
|
perky 03/04/22 14:04:36 Modified: tools genmap_japanese.py genmap_support.py Log: Add dummy map providers for japanese. Revision Changes Path 1.2 +9 -9 cjkcodecs/tools/genmap_japanese.py Index: genmap_japanese.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_japanese.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- genmap_japanese.py 22 Apr 2003 19:24:24 -0000 1.1 +++ genmap_japanese.py 22 Apr 2003 21:04:36 -0000 1.2 @@ -26,7 +26,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_japanese.py,v 1.1 2003/04/22 19:24:24 perky Exp $ +# $Id: genmap_japanese.py,v 1.2 2003/04/22 21:04:36 perky Exp $ # from genmap_support import * @@ -92,28 +92,28 @@ printcopyright(omap) print "Generating JIS X 0208 decode map..." -genmap_decode(omap, "jisx0208_decode", JISX0208_C1, JISX0208_C2, jisx0208decmap) +genmap_decode(omap, "jisx0208", JISX0208_C1, JISX0208_C2, jisx0208decmap) print "Generating JIS X 0208 decode map index..." -print_decmapindex(omap, "jisx0208_decode", jisx0208decmap, rng=(0, 128)) +print_decmapindex(omap, "jisx0208", jisx0208decmap, rng=(0, 128)) omap = open("map_jisx0212.h", "w") printcopyright(omap) print "Generating JIS X 0212 decode map..." -genmap_decode(omap, "jisx0212_decode", JISX0212_C1, JISX0212_C2, jisx0212decmap) +genmap_decode(omap, "jisx0212", JISX0212_C1, JISX0212_C2, jisx0212decmap) print "Generating JIS X 0212 decode map index..." -print_decmapindex(omap, "jisx0212_decode", jisx0212decmap, rng=(0, 128)) +print_decmapindex(omap, "jisx0212", jisx0212decmap, rng=(0, 128)) omap = open("map_cp932.h", "w") printcopyright(omap) print "Generating CP932 decode map..." -genmap_decode(omap, "cp932_decode", CP932P0_C1, CP932P0_C2, cp932decmap) -genmap_decode(omap, "cp932_decode", CP932P1_C1, CP932P1_C2, cp932decmap) -genmap_decode(omap, "cp932_decode", CP932P2_C1, CP932P2_C2, cp932decmap) +genmap_decode(omap, "cp932", CP932P0_C1, CP932P0_C2, cp932decmap) +genmap_decode(omap, "cp932", CP932P1_C1, CP932P1_C2, cp932decmap) +genmap_decode(omap, "cp932", CP932P2_C1, CP932P2_C2, cp932decmap) print "Generating CP932 decode map index..." -print_decmapindex(omap, "cp932_decode", cp932decmap) +print_decmapindex(omap, "cp932", cp932decmap) print "Generating CP932 Tweaks..." if difmap: 1.3 +27 -18 cjkcodecs/tools/genmap_support.py Index: genmap_support.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_support.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- genmap_support.py 22 Apr 2003 19:24:25 -0000 1.2 +++ genmap_support.py 22 Apr 2003 21:04:36 -0000 1.3 @@ -26,14 +26,14 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_support.py,v 1.2 2003/04/22 19:24:25 perky Exp $ +# $Id: genmap_support.py,v 1.3 2003/04/22 21:04:36 perky Exp $ # import re COPYRIGHT_HEADER = """\ /* - * $Id: genmap_support.py,v 1.2 2003/04/22 19:24:25 perky Exp $ + * $Id: genmap_support.py,v 1.3 2003/04/22 21:04:36 perky Exp $ */ """ re_UNIMAPDATE = re.compile('Date:\s*([ a-zA-Z0-9/]*)') @@ -50,21 +50,22 @@ if not dmap.has_key(c1) or (onlymask and c1 not in onlymask): continue c2map = dmap[c1] - for c2 in c2values: - if c2map.has_key(c2): - break - else: + rc2values = [n for n in c2values if c2map.has_key(n)] + if not rc2values: continue + rc2values = range(rc2values[0], rc2values[-1] + 1) + rc2width = len(rc2values) - print >> fo, ("static const Py_UNICODE %s_%02X[%d] = {" + print >> fo, ("static const Py_UNICODE __%s_decmap_%02X[%d] = {" " /* %02X::%02X-%02X */" - % (prefix, c1, c2width, c1, c2range[0], c2range[1])) + % (prefix, c1, rc2width, c1, rc2values[0], rc2values[-1])) c2map[prefix] = True + c2map['min'] = rc2values[0] + c2map['max'] = rc2values[-1] - c2s = c2values[:] - while c2s: - dp = c2s[:8] - del c2s[:8] + while rc2values: + dp = rc2values[:8] + del rc2values[:8] print >> fo, ' ', ' '.join([ c2map.has_key(i) and ("0x%04x," % c2map[i]) or "UNIINV," @@ -73,16 +74,22 @@ print >> fo, "};" print >> fo -def print_decmapindex(fo, prefix, fmap, +def print_decmapindex(fo, fmapprefix, fmap, f2map={}, f2mapprefix='', rng=(0x80, 0x100)): - print >> fo, "static const Py_UNICODE *%s_map[128] = {" % (prefix) + print >> fo, "static const struct dbcs_index %s_decmap[128] = {" % (fmapprefix) for i in range(*rng): - if fmap.has_key(i) and fmap[i].has_key(prefix): - print >> fo, " %s_%02X, /* 0x%02X */" % (prefix, i, i) + if fmap.has_key(i) and fmap[i].has_key(fmapprefix): + map = fmap + prefix = fmapprefix elif f2map.has_key(i) and f2map[i].has_key(f2mapprefix): - print >> fo, " %s_%02X, /* 0x%02X */" % (f2mapprefix, i, i) + map = f2map + prefix = f2mapprefix else: - print >> fo, " 0, /* 0x%02X */" % i + print >> fo, "/* 0x%02X */ {0, 0, 0}," % i + continue + + print >> fo, "/* 0x%02X */ {__%s_decmap_%02X, 0x%02x, 0x%02x}," % ( + i, prefix, i, map[i]['min'], map[i]['max']) print >> fo, "};" print >> fo @@ -109,3 +116,5 @@ decmap[(loc >> 8)|sethighbit][(loc & 0xff)|sethighbit] = uni return mapdatever, decmap + +# ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-04-22 21:04:36
|
perky 03/04/22 14:04:34 Modified: src cjkcommon.h map_cp932.h map_jisx0208.h map_jisx0212.h Added: src Makefile map_cp932.c map_generic.c.in map_jisx0208.c map_jisx0212.c Log: Add dummy map providers for japanese. Revision Changes Path 1.2 +10 -3 cjkcodecs/src/cjkcommon.h Index: cjkcommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/cjkcommon.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- cjkcommon.h 22 Apr 2003 20:05:58 -0000 1.1 +++ cjkcommon.h 22 Apr 2003 21:04:31 -0000 1.2 @@ -26,19 +26,26 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: cjkcommon.h,v 1.1 2003/04/22 20:05:58 perky Exp $ + * $Id: cjkcommon.h,v 1.2 2003/04/22 21:04:31 perky Exp $ */ #ifndef _CJKCOMMON_H_ #define _CJKCOMMON_H_ +typedef unsigned short DBCHAR; +#define UNIINV Py_UNICODE_REPLACEMENT_CHARACTER +#define NOCHAR 0xFFFF + struct dbcs_index { const Py_UNICODE *map; unsigned char bottom, top; }; -#define UNIINV Py_UNICODE_REPLACEMENT_CHARACTER -#define NOCHAR 0xFFFF +struct dbcs_map { + const char *charset; + DBCHAR **encmap; + const struct dbcs_index *decmap; +}; #define JISX0208_C1_BOTTOM 0x21 #define JISX0208_C1_TOP 0x74 1.3 +1 -1 cjkcodecs/src/map_cp932.h Index: map_cp932.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp932.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- map_cp932.h 22 Apr 2003 20:05:58 -0000 1.2 +++ map_cp932.h 22 Apr 2003 21:04:31 -0000 1.3 @@ -1,5 +1,5 @@ /* - * $Id: map_cp932.h,v 1.2 2003/04/22 20:05:58 perky Exp $ + * $Id: map_cp932.h,v 1.3 2003/04/22 21:04:31 perky Exp $ */ static const Py_UNICODE __cp932_decmap_81[108] = { /* 81::5F-CA */ @@ -147,7 +147,7 @@ 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, }; -static const struct dbcs_index *cp932_decmap[128] = { +static const struct dbcs_index cp932_decmap[128] = { /* 0x80 */ {0, 0, 0}, /* 0x81 */ {__cp932_decmap_81, 0x5f, 0xca}, /* 0x82 */ {0, 0, 0}, 1.3 +1 -1 cjkcodecs/src/map_jisx0208.h Index: map_jisx0208.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0208.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- map_jisx0208.h 22 Apr 2003 20:05:58 -0000 1.2 +++ map_jisx0208.h 22 Apr 2003 21:04:33 -0000 1.3 @@ -1,5 +1,5 @@ /* - * $Id: map_jisx0208.h,v 1.2 2003/04/22 20:05:58 perky Exp $ + * $Id: map_jisx0208.h,v 1.3 2003/04/22 21:04:33 perky Exp $ */ static const Py_UNICODE __jisx0208_decmap_21[94] = { /* 21::21-7E */ @@ -1123,7 +1123,7 @@ 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, }; -static const struct dbcs_index *jisx0208_decmap[128] = { +static const struct dbcs_index jisx0208_decmap[128] = { /* 0x00 */ {0, 0, 0}, /* 0x01 */ {0, 0, 0}, /* 0x02 */ {0, 0, 0}, 1.3 +1 -1 cjkcodecs/src/map_jisx0212.h Index: map_jisx0212.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0212.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- map_jisx0212.h 22 Apr 2003 20:05:59 -0000 1.2 +++ map_jisx0212.h 22 Apr 2003 21:04:33 -0000 1.3 @@ -1,5 +1,5 @@ /* - * $Id: map_jisx0212.h,v 1.2 2003/04/22 20:05:59 perky Exp $ + * $Id: map_jisx0212.h,v 1.3 2003/04/22 21:04:33 perky Exp $ */ static const Py_UNICODE __jisx0212_decmap_22[67] = { /* 22::2F-71 */ @@ -996,7 +996,7 @@ 0x9fa2, 0x9fa3, 0x9fa5, }; -static const struct dbcs_index *jisx0212_decmap[128] = { +static const struct dbcs_index jisx0212_decmap[128] = { /* 0x00 */ {0, 0, 0}, /* 0x01 */ {0, 0, 0}, /* 0x02 */ {0, 0, 0}, 1.1 cjkcodecs/src/Makefile Index: Makefile =================================================================== # Makefile: maintenance tool set # # Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # $Id: Makefile,v 1.1 2003/04/22 21:04:31 perky Exp $ # GENERIC_CHARSETS= cp932 jisx0208 jisx0212 all: genericmaps genericmaps: for cset in ${GENERIC_CHARSETS}; do \ CSET=`echo $$cset|tr "[:lower:]" "[:upper:]"`; \ sed -e "s/%%CHARSET%%/$$CSET/g" \ -e "s/%%charset%%/$$cset/g" map_generic.c.in \ > map_$$cset.c; \ done 1.1 cjkcodecs/src/map_cp932.c Index: map_cp932.c =================================================================== /* * map_cp932.c: CP932 Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * $Id: map_cp932.c,v 1.1 2003/04/22 21:04:31 perky Exp $ */ #include "Python.h" #include "cjkcommon.h" #include "map_cp932.h" static DBCHAR *__encode_map[256]; static struct dbcs_map __map_entry = { "cp932", __encode_map, cp932_decmap }; static int init_maps(void) { const struct dbcs_index *umap; unsigned char c1, c2; int i; for (i = 0; i < 256; i++) __encode_map[i] = NULL; for (c1 = CP932_C1_BOTTOM; c1 <= CP932_C2_BOTTOM; c1++) { umap = &cp932_decmap[c1 & 0x7f]; if (umap->map == NULL) continue; for (c2 = umap->bottom; c2 <= umap->top; c2++) { Py_UNICODE uni; int upage, i; uni = umap->map[c2 - umap->bottom]; if (uni == UNIINV) continue; upage = uni >> 8; if (__encode_map[upage] == NULL) { __encode_map[upage] = PyMem_New(DBCHAR, 256); if (__encode_map[upage] == NULL) goto errorexit; for (i = 0; i <= 255; i++) __encode_map[upage][i] = NOCHAR; } if (__encode_map[upage][uni & 0xff] == NOCHAR) __encode_map[upage][uni & 0xff] = c1 << 8 | c2; } } return 0; errorexit: for (i = 0; i < 256; i++) { if (__encode_map[i] != NULL) PyMem_Del(__encode_map[i]); } return -1; } static struct PyMethodDef __methods[] = { {NULL, NULL}, }; void initmap_cp932(void) { PyObject *m; m = Py_InitModule("map_cp932", __methods); PyModule_AddObject(m, "__map", PyCObject_FromVoidPtr(&__map_entry, NULL)); if (PyErr_Occurred() || init_maps()) Py_FatalError("can't initialize the map_cp932 module"); } /* * ex: ts=8 sts=4 et */ 1.1 cjkcodecs/src/map_generic.c.in Index: map_generic.c.in =================================================================== /* * map_%%charset%%.c: %%CHARSET%% Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * $Id: map_generic.c.in,v 1.1 2003/04/22 21:04:33 perky Exp $ */ #include "Python.h" #include "cjkcommon.h" #include "map_%%charset%%.h" static DBCHAR *__encode_map[256]; static struct dbcs_map __map_entry = { "%%charset%%", __encode_map, %%charset%%_decmap }; static int init_maps(void) { const struct dbcs_index *umap; unsigned char c1, c2; int i; for (i = 0; i < 256; i++) __encode_map[i] = NULL; for (c1 = %%CHARSET%%_C1_BOTTOM; c1 <= %%CHARSET%%_C2_BOTTOM; c1++) { umap = &%%charset%%_decmap[c1 & 0x7f]; if (umap->map == NULL) continue; for (c2 = umap->bottom; c2 <= umap->top; c2++) { Py_UNICODE uni; int upage, i; uni = umap->map[c2 - umap->bottom]; if (uni == UNIINV) continue; upage = uni >> 8; if (__encode_map[upage] == NULL) { __encode_map[upage] = PyMem_New(DBCHAR, 256); if (__encode_map[upage] == NULL) goto errorexit; for (i = 0; i <= 255; i++) __encode_map[upage][i] = NOCHAR; } if (__encode_map[upage][uni & 0xff] == NOCHAR) __encode_map[upage][uni & 0xff] = c1 << 8 | c2; } } return 0; errorexit: for (i = 0; i < 256; i++) { if (__encode_map[i] != NULL) PyMem_Del(__encode_map[i]); } return -1; } static struct PyMethodDef __methods[] = { {NULL, NULL}, }; void initmap_%%charset%%(void) { PyObject *m; m = Py_InitModule("map_%%charset%%", __methods); PyModule_AddObject(m, "__map", PyCObject_FromVoidPtr(&__map_entry, NULL)); if (PyErr_Occurred() || init_maps()) Py_FatalError("can't initialize the map_%%charset%% module"); } /* * ex: ts=8 sts=4 et */ 1.1 cjkcodecs/src/map_jisx0208.c Index: map_jisx0208.c =================================================================== /* * map_jisx0208.c: JISX0208 Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * $Id: map_jisx0208.c,v 1.1 2003/04/22 21:04:33 perky Exp $ */ #include "Python.h" #include "cjkcommon.h" #include "map_jisx0208.h" static DBCHAR *__encode_map[256]; static struct dbcs_map __map_entry = { "jisx0208", __encode_map, jisx0208_decmap }; static int init_maps(void) { const struct dbcs_index *umap; unsigned char c1, c2; int i; for (i = 0; i < 256; i++) __encode_map[i] = NULL; for (c1 = JISX0208_C1_BOTTOM; c1 <= JISX0208_C2_BOTTOM; c1++) { umap = &jisx0208_decmap[c1 & 0x7f]; if (umap->map == NULL) continue; for (c2 = umap->bottom; c2 <= umap->top; c2++) { Py_UNICODE uni; int upage, i; uni = umap->map[c2 - umap->bottom]; if (uni == UNIINV) continue; upage = uni >> 8; if (__encode_map[upage] == NULL) { __encode_map[upage] = PyMem_New(DBCHAR, 256); if (__encode_map[upage] == NULL) goto errorexit; for (i = 0; i <= 255; i++) __encode_map[upage][i] = NOCHAR; } if (__encode_map[upage][uni & 0xff] == NOCHAR) __encode_map[upage][uni & 0xff] = c1 << 8 | c2; } } return 0; errorexit: for (i = 0; i < 256; i++) { if (__encode_map[i] != NULL) PyMem_Del(__encode_map[i]); } return -1; } static struct PyMethodDef __methods[] = { {NULL, NULL}, }; void initmap_jisx0208(void) { PyObject *m; m = Py_InitModule("map_jisx0208", __methods); PyModule_AddObject(m, "__map", PyCObject_FromVoidPtr(&__map_entry, NULL)); if (PyErr_Occurred() || init_maps()) Py_FatalError("can't initialize the map_jisx0208 module"); } /* * ex: ts=8 sts=4 et */ 1.1 cjkcodecs/src/map_jisx0212.c Index: map_jisx0212.c =================================================================== /* * map_jisx0212.c: JISX0212 Map Provider * * Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * $Id: map_jisx0212.c,v 1.1 2003/04/22 21:04:33 perky Exp $ */ #include "Python.h" #include "cjkcommon.h" #include "map_jisx0212.h" static DBCHAR *__encode_map[256]; static struct dbcs_map __map_entry = { "jisx0212", __encode_map, jisx0212_decmap }; static int init_maps(void) { const struct dbcs_index *umap; unsigned char c1, c2; int i; for (i = 0; i < 256; i++) __encode_map[i] = NULL; for (c1 = JISX0212_C1_BOTTOM; c1 <= JISX0212_C2_BOTTOM; c1++) { umap = &jisx0212_decmap[c1 & 0x7f]; if (umap->map == NULL) continue; for (c2 = umap->bottom; c2 <= umap->top; c2++) { Py_UNICODE uni; int upage, i; uni = umap->map[c2 - umap->bottom]; if (uni == UNIINV) continue; upage = uni >> 8; if (__encode_map[upage] == NULL) { __encode_map[upage] = PyMem_New(DBCHAR, 256); if (__encode_map[upage] == NULL) goto errorexit; for (i = 0; i <= 255; i++) __encode_map[upage][i] = NOCHAR; } if (__encode_map[upage][uni & 0xff] == NOCHAR) __encode_map[upage][uni & 0xff] = c1 << 8 | c2; } } return 0; errorexit: for (i = 0; i < 256; i++) { if (__encode_map[i] != NULL) PyMem_Del(__encode_map[i]); } return -1; } static struct PyMethodDef __methods[] = { {NULL, NULL}, }; void initmap_jisx0212(void) { PyObject *m; m = Py_InitModule("map_jisx0212", __methods); PyModule_AddObject(m, "__map", PyCObject_FromVoidPtr(&__map_entry, NULL)); if (PyErr_Occurred() || init_maps()) Py_FatalError("can't initialize the map_jisx0212 module"); } /* * ex: ts=8 sts=4 et */ |
From: Hye-Shik C. <pe...@us...> - 2003-04-22 21:04:31
|
perky 03/04/22 14:04:29 Modified: . setup.py Log: Add dummy map providers for japanese. Revision Changes Path 1.2 +8 -11 cjkcodecs/setup.py Index: setup.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/setup.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- setup.py 20 Apr 2003 17:23:45 -0000 1.1 +++ setup.py 22 Apr 2003 21:04:29 -0000 1.2 @@ -27,7 +27,7 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: setup.py,v 1.1 2003/04/20 17:23:45 perky Exp $ +# $Id: setup.py,v 1.2 2003/04/22 21:04:29 perky Exp $ # import sys @@ -37,15 +37,12 @@ version = "1.0", author = "Hye-Shik Chang", author_email = "pe...@Fr...", - ext_modules = [ - Extension("cjkcodecs._ja_codecs", - ["src/multibytecodec.c", "src/_ja_codecs.c"]), - Extension("cjkcodecs._ko_codecs", - ["src/multibytecodec.c", "src/_ko_codecs.c"]), - Extension("cjkcodecs._zh_CN_codecs", - ["src/multibytecodec.c", "src/_zh_CN_codecs.c"]), - Extension("cjkcodecs._zh_TW_codecs", - ["src/multibytecodec.c", "src/_zh_TW_codecs.c"]), - ]) + ext_modules = + [Extension("cjkcodecs.map_" + charset, + ["src/map_%s.c" % charset]) + for charset in ('jisx0208', 'jisx0212', 'cp932')] + + [ + ] + ) # ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-04-22 20:06:02
|
perky 03/04/22 13:06:00 Modified: src map_cp932.h map_jisx0208.h map_jisx0212.h Added: src cjkcommon.h Log: Change to new mapping scheme Revision Changes Path 1.2 +138 -160 cjkcodecs/src/map_cp932.h Index: map_cp932.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_cp932.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_cp932.h 22 Apr 2003 19:25:31 -0000 1.1 +++ map_cp932.h 22 Apr 2003 20:05:58 -0000 1.2 @@ -1,8 +1,8 @@ /* - * $Id: map_cp932.h,v 1.1 2003/04/22 19:25:31 perky Exp $ + * $Id: map_cp932.h,v 1.2 2003/04/22 20:05:58 perky Exp $ */ -static const Py_UNICODE cp932_decode_81[108] = { /* 81::5F-CA */ +static const Py_UNICODE __cp932_decmap_81[108] = { /* 81::5F-CA */ 0xff3c, 0xff5e, 0x2225, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, @@ -19,7 +19,7 @@ UNIINV, UNIINV, UNIINV, 0xffe2, }; -static const Py_UNICODE cp932_decode_87[93] = { /* 87::40-9C */ +static const Py_UNICODE __cp932_decmap_87[93] = { /* 87::40-9C */ 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163, @@ -34,7 +34,7 @@ 0x221f, 0x22bf, 0x2235, 0x2229, 0x222a, }; -static const Py_UNICODE cp932_decode_ED[189] = { /* ED::40-FC */ +static const Py_UNICODE __cp932_decmap_ED[189] = { /* ED::40-FC */ 0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00, 0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, @@ -61,7 +61,7 @@ 0x7147, 0xfa15, 0x71c1, 0x71fe, 0x72b1, }; -static const Py_UNICODE cp932_decode_EE[189] = { /* EE::40-FC */ +static const Py_UNICODE __cp932_decmap_EE[189] = { /* EE::40-FC */ 0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b, @@ -88,7 +88,7 @@ 0x2179, 0xffe2, 0xffe4, 0xff07, 0xff02, }; -static const Py_UNICODE cp932_decode_FA[189] = { /* FA::40-FC */ +static const Py_UNICODE __cp932_decmap_FA[189] = { /* FA::40-FC */ 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0xffe2, 0xffe4, 0xff07, 0xff02, @@ -115,7 +115,7 @@ 0x6c6f, 0x6cda, 0x6d04, 0x6d87, 0x6d6f, }; -static const Py_UNICODE cp932_decode_FB[189] = { /* FB::40-FC */ +static const Py_UNICODE __cp932_decmap_FB[189] = { /* FB::40-FC */ 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, @@ -142,162 +142,140 @@ 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, }; -static const Py_UNICODE cp932_decode_FC[189] = { /* FC::40-FC */ +static const Py_UNICODE __cp932_decmap_FC[12] = { /* FC::40-4B */ 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, - 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, }; -static const Py_UNICODE *cp932_decode_map[128] = { - 0, /* 0x80 */ - cp932_decode_81, /* 0x81 */ - 0, /* 0x82 */ - 0, /* 0x83 */ - 0, /* 0x84 */ - 0, /* 0x85 */ - 0, /* 0x86 */ - cp932_decode_87, /* 0x87 */ - 0, /* 0x88 */ - 0, /* 0x89 */ - 0, /* 0x8A */ - 0, /* 0x8B */ - 0, /* 0x8C */ - 0, /* 0x8D */ - 0, /* 0x8E */ - 0, /* 0x8F */ - 0, /* 0x90 */ - 0, /* 0x91 */ - 0, /* 0x92 */ - 0, /* 0x93 */ - 0, /* 0x94 */ - 0, /* 0x95 */ - 0, /* 0x96 */ - 0, /* 0x97 */ - 0, /* 0x98 */ - 0, /* 0x99 */ - 0, /* 0x9A */ - 0, /* 0x9B */ - 0, /* 0x9C */ - 0, /* 0x9D */ - 0, /* 0x9E */ - 0, /* 0x9F */ - 0, /* 0xA0 */ - 0, /* 0xA1 */ - 0, /* 0xA2 */ - 0, /* 0xA3 */ - 0, /* 0xA4 */ - 0, /* 0xA5 */ - 0, /* 0xA6 */ - 0, /* 0xA7 */ - 0, /* 0xA8 */ - 0, /* 0xA9 */ - 0, /* 0xAA */ - 0, /* 0xAB */ - 0, /* 0xAC */ - 0, /* 0xAD */ - 0, /* 0xAE */ - 0, /* 0xAF */ - 0, /* 0xB0 */ - 0, /* 0xB1 */ - 0, /* 0xB2 */ - 0, /* 0xB3 */ - 0, /* 0xB4 */ - 0, /* 0xB5 */ - 0, /* 0xB6 */ - 0, /* 0xB7 */ - 0, /* 0xB8 */ - 0, /* 0xB9 */ - 0, /* 0xBA */ - 0, /* 0xBB */ - 0, /* 0xBC */ - 0, /* 0xBD */ - 0, /* 0xBE */ - 0, /* 0xBF */ - 0, /* 0xC0 */ - 0, /* 0xC1 */ - 0, /* 0xC2 */ - 0, /* 0xC3 */ - 0, /* 0xC4 */ - 0, /* 0xC5 */ - 0, /* 0xC6 */ - 0, /* 0xC7 */ - 0, /* 0xC8 */ - 0, /* 0xC9 */ - 0, /* 0xCA */ - 0, /* 0xCB */ - 0, /* 0xCC */ - 0, /* 0xCD */ - 0, /* 0xCE */ - 0, /* 0xCF */ - 0, /* 0xD0 */ - 0, /* 0xD1 */ - 0, /* 0xD2 */ - 0, /* 0xD3 */ - 0, /* 0xD4 */ - 0, /* 0xD5 */ - 0, /* 0xD6 */ - 0, /* 0xD7 */ - 0, /* 0xD8 */ - 0, /* 0xD9 */ - 0, /* 0xDA */ - 0, /* 0xDB */ - 0, /* 0xDC */ - 0, /* 0xDD */ - 0, /* 0xDE */ - 0, /* 0xDF */ - 0, /* 0xE0 */ - 0, /* 0xE1 */ - 0, /* 0xE2 */ - 0, /* 0xE3 */ - 0, /* 0xE4 */ - 0, /* 0xE5 */ - 0, /* 0xE6 */ - 0, /* 0xE7 */ - 0, /* 0xE8 */ - 0, /* 0xE9 */ - 0, /* 0xEA */ - 0, /* 0xEB */ - 0, /* 0xEC */ - cp932_decode_ED, /* 0xED */ - cp932_decode_EE, /* 0xEE */ - 0, /* 0xEF */ - 0, /* 0xF0 */ - 0, /* 0xF1 */ - 0, /* 0xF2 */ - 0, /* 0xF3 */ - 0, /* 0xF4 */ - 0, /* 0xF5 */ - 0, /* 0xF6 */ - 0, /* 0xF7 */ - 0, /* 0xF8 */ - 0, /* 0xF9 */ - cp932_decode_FA, /* 0xFA */ - cp932_decode_FB, /* 0xFB */ - cp932_decode_FC, /* 0xFC */ - 0, /* 0xFD */ - 0, /* 0xFE */ - 0, /* 0xFF */ +static const struct dbcs_index *cp932_decmap[128] = { +/* 0x80 */ {0, 0, 0}, +/* 0x81 */ {__cp932_decmap_81, 0x5f, 0xca}, +/* 0x82 */ {0, 0, 0}, +/* 0x83 */ {0, 0, 0}, +/* 0x84 */ {0, 0, 0}, +/* 0x85 */ {0, 0, 0}, +/* 0x86 */ {0, 0, 0}, +/* 0x87 */ {__cp932_decmap_87, 0x40, 0x9c}, +/* 0x88 */ {0, 0, 0}, +/* 0x89 */ {0, 0, 0}, +/* 0x8A */ {0, 0, 0}, +/* 0x8B */ {0, 0, 0}, +/* 0x8C */ {0, 0, 0}, +/* 0x8D */ {0, 0, 0}, +/* 0x8E */ {0, 0, 0}, +/* 0x8F */ {0, 0, 0}, +/* 0x90 */ {0, 0, 0}, +/* 0x91 */ {0, 0, 0}, +/* 0x92 */ {0, 0, 0}, +/* 0x93 */ {0, 0, 0}, +/* 0x94 */ {0, 0, 0}, +/* 0x95 */ {0, 0, 0}, +/* 0x96 */ {0, 0, 0}, +/* 0x97 */ {0, 0, 0}, +/* 0x98 */ {0, 0, 0}, +/* 0x99 */ {0, 0, 0}, +/* 0x9A */ {0, 0, 0}, +/* 0x9B */ {0, 0, 0}, +/* 0x9C */ {0, 0, 0}, +/* 0x9D */ {0, 0, 0}, +/* 0x9E */ {0, 0, 0}, +/* 0x9F */ {0, 0, 0}, +/* 0xA0 */ {0, 0, 0}, +/* 0xA1 */ {0, 0, 0}, +/* 0xA2 */ {0, 0, 0}, +/* 0xA3 */ {0, 0, 0}, +/* 0xA4 */ {0, 0, 0}, +/* 0xA5 */ {0, 0, 0}, +/* 0xA6 */ {0, 0, 0}, +/* 0xA7 */ {0, 0, 0}, +/* 0xA8 */ {0, 0, 0}, +/* 0xA9 */ {0, 0, 0}, +/* 0xAA */ {0, 0, 0}, +/* 0xAB */ {0, 0, 0}, +/* 0xAC */ {0, 0, 0}, +/* 0xAD */ {0, 0, 0}, +/* 0xAE */ {0, 0, 0}, +/* 0xAF */ {0, 0, 0}, +/* 0xB0 */ {0, 0, 0}, +/* 0xB1 */ {0, 0, 0}, +/* 0xB2 */ {0, 0, 0}, +/* 0xB3 */ {0, 0, 0}, +/* 0xB4 */ {0, 0, 0}, +/* 0xB5 */ {0, 0, 0}, +/* 0xB6 */ {0, 0, 0}, +/* 0xB7 */ {0, 0, 0}, +/* 0xB8 */ {0, 0, 0}, +/* 0xB9 */ {0, 0, 0}, +/* 0xBA */ {0, 0, 0}, +/* 0xBB */ {0, 0, 0}, +/* 0xBC */ {0, 0, 0}, +/* 0xBD */ {0, 0, 0}, +/* 0xBE */ {0, 0, 0}, +/* 0xBF */ {0, 0, 0}, +/* 0xC0 */ {0, 0, 0}, +/* 0xC1 */ {0, 0, 0}, +/* 0xC2 */ {0, 0, 0}, +/* 0xC3 */ {0, 0, 0}, +/* 0xC4 */ {0, 0, 0}, +/* 0xC5 */ {0, 0, 0}, +/* 0xC6 */ {0, 0, 0}, +/* 0xC7 */ {0, 0, 0}, +/* 0xC8 */ {0, 0, 0}, +/* 0xC9 */ {0, 0, 0}, +/* 0xCA */ {0, 0, 0}, +/* 0xCB */ {0, 0, 0}, +/* 0xCC */ {0, 0, 0}, +/* 0xCD */ {0, 0, 0}, +/* 0xCE */ {0, 0, 0}, +/* 0xCF */ {0, 0, 0}, +/* 0xD0 */ {0, 0, 0}, +/* 0xD1 */ {0, 0, 0}, +/* 0xD2 */ {0, 0, 0}, +/* 0xD3 */ {0, 0, 0}, +/* 0xD4 */ {0, 0, 0}, +/* 0xD5 */ {0, 0, 0}, +/* 0xD6 */ {0, 0, 0}, +/* 0xD7 */ {0, 0, 0}, +/* 0xD8 */ {0, 0, 0}, +/* 0xD9 */ {0, 0, 0}, +/* 0xDA */ {0, 0, 0}, +/* 0xDB */ {0, 0, 0}, +/* 0xDC */ {0, 0, 0}, +/* 0xDD */ {0, 0, 0}, +/* 0xDE */ {0, 0, 0}, +/* 0xDF */ {0, 0, 0}, +/* 0xE0 */ {0, 0, 0}, +/* 0xE1 */ {0, 0, 0}, +/* 0xE2 */ {0, 0, 0}, +/* 0xE3 */ {0, 0, 0}, +/* 0xE4 */ {0, 0, 0}, +/* 0xE5 */ {0, 0, 0}, +/* 0xE6 */ {0, 0, 0}, +/* 0xE7 */ {0, 0, 0}, +/* 0xE8 */ {0, 0, 0}, +/* 0xE9 */ {0, 0, 0}, +/* 0xEA */ {0, 0, 0}, +/* 0xEB */ {0, 0, 0}, +/* 0xEC */ {0, 0, 0}, +/* 0xED */ {__cp932_decmap_ED, 0x40, 0xfc}, +/* 0xEE */ {__cp932_decmap_EE, 0x40, 0xfc}, +/* 0xEF */ {0, 0, 0}, +/* 0xF0 */ {0, 0, 0}, +/* 0xF1 */ {0, 0, 0}, +/* 0xF2 */ {0, 0, 0}, +/* 0xF3 */ {0, 0, 0}, +/* 0xF4 */ {0, 0, 0}, +/* 0xF5 */ {0, 0, 0}, +/* 0xF6 */ {0, 0, 0}, +/* 0xF7 */ {0, 0, 0}, +/* 0xF8 */ {0, 0, 0}, +/* 0xF9 */ {0, 0, 0}, +/* 0xFA */ {__cp932_decmap_FA, 0x40, 0xfc}, +/* 0xFB */ {__cp932_decmap_FB, 0x40, 0xfc}, +/* 0xFC */ {__cp932_decmap_FC, 0x40, 0x4b}, +/* 0xFD */ {0, 0, 0}, +/* 0xFE */ {0, 0, 0}, +/* 0xFF */ {0, 0, 0}, }; #define CP932_TWEAKUNIMAP(umap) \ 1.2 +222 -256 cjkcodecs/src/map_jisx0208.h Index: map_jisx0208.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0208.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_jisx0208.h 22 Apr 2003 19:25:35 -0000 1.1 +++ map_jisx0208.h 22 Apr 2003 20:05:58 -0000 1.2 @@ -1,8 +1,8 @@ /* - * $Id: map_jisx0208.h,v 1.1 2003/04/22 19:25:35 perky Exp $ + * $Id: map_jisx0208.h,v 1.2 2003/04/22 20:05:58 perky Exp $ */ -static const Py_UNICODE jisx0208_decode_21[94] = { /* 21::21-7E */ +static const Py_UNICODE __jisx0208_decmap_21[94] = { /* 21::21-7E */ 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, @@ -17,7 +17,7 @@ 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, }; -static const Py_UNICODE jisx0208_decode_22[94] = { /* 22::21-7E */ +static const Py_UNICODE __jisx0208_decmap_22[94] = { /* 22::21-7E */ 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, @@ -32,22 +32,20 @@ 0x00b6, UNIINV, UNIINV, UNIINV, UNIINV, 0x25ef, }; -static const Py_UNICODE jisx0208_decode_23[94] = { /* 23::21-7E */ - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xff10, - 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, - 0xff19, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, - 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, - 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, - 0xff39, 0xff3a, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, - 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, - 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, - 0xff59, 0xff5a, UNIINV, UNIINV, UNIINV, UNIINV, +static const Py_UNICODE __jisx0208_decmap_23[75] = { /* 23::30-7A */ + 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, + 0xff18, 0xff19, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + UNIINV, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, + 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, + 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, + 0xff38, 0xff39, 0xff3a, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + UNIINV, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, + 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, + 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, + 0xff58, 0xff59, 0xff5a, }; -static const Py_UNICODE jisx0208_decode_24[94] = { /* 24::21-7E */ +static const Py_UNICODE __jisx0208_decmap_24[83] = { /* 24::21-73 */ 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, @@ -58,11 +56,10 @@ 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, - 0x3091, 0x3092, 0x3093, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + 0x3091, 0x3092, 0x3093, }; -static const Py_UNICODE jisx0208_decode_25[94] = { /* 25::21-7E */ +static const Py_UNICODE __jisx0208_decmap_25[86] = { /* 25::21-76 */ 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, @@ -73,11 +70,10 @@ 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, - 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, }; -static const Py_UNICODE jisx0208_decode_26[94] = { /* 26::21-7E */ +static const Py_UNICODE __jisx0208_decmap_26[56] = { /* 26::21-58 */ 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, @@ -85,14 +81,9 @@ 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; -static const Py_UNICODE jisx0208_decode_27[94] = { /* 27::21-7E */ +static const Py_UNICODE __jisx0208_decmap_27[81] = { /* 27::21-71 */ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, @@ -103,26 +94,17 @@ 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, - 0x044f, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + 0x044f, }; -static const Py_UNICODE jisx0208_decode_28[94] = { /* 28::21-7E */ +static const Py_UNICODE __jisx0208_decmap_28[32] = { /* 28::21-40 */ 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; -static const Py_UNICODE jisx0208_decode_30[94] = { /* 30::21-7E */ +static const Py_UNICODE __jisx0208_decmap_30[94] = { /* 30::21-7E */ 0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, 0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, 0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, @@ -137,7 +119,7 @@ 0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, }; -static const Py_UNICODE jisx0208_decode_31[94] = { /* 31::21-7E */ +static const Py_UNICODE __jisx0208_decmap_31[94] = { /* 31::21-7E */ 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf, 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893, 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5, @@ -152,7 +134,7 @@ 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, }; -static const Py_UNICODE jisx0208_decode_32[94] = { /* 32::21-7E */ +static const Py_UNICODE __jisx0208_decmap_32[94] = { /* 32::21-7E */ 0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, 0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, 0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, @@ -167,7 +149,7 @@ 0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, }; -static const Py_UNICODE jisx0208_decode_33[94] = { /* 33::21-7E */ +static const Py_UNICODE __jisx0208_decmap_33[94] = { /* 33::21-7E */ 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75, 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916, 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb, @@ -182,7 +164,7 @@ 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, }; -static const Py_UNICODE jisx0208_decode_34[94] = { /* 34::21-7E */ +static const Py_UNICODE __jisx0208_decmap_34[94] = { /* 34::21-7E */ 0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, 0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, 0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, @@ -197,7 +179,7 @@ 0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, }; -static const Py_UNICODE jisx0208_decode_35[94] = { /* 35::21-7E */ +static const Py_UNICODE __jisx0208_decmap_35[94] = { /* 35::21-7E */ 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63, 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc, 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993, @@ -212,7 +194,7 @@ 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, }; -static const Py_UNICODE jisx0208_decode_36[94] = { /* 36::21-7E */ +static const Py_UNICODE __jisx0208_decmap_36[94] = { /* 36::21-7E */ 0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, 0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, 0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, @@ -227,7 +209,7 @@ 0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, }; -static const Py_UNICODE jisx0208_decode_37[94] = { /* 37::21-7E */ +static const Py_UNICODE __jisx0208_decmap_37[94] = { /* 37::21-7E */ 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688, 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab, 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2, @@ -242,7 +224,7 @@ 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, }; -static const Py_UNICODE jisx0208_decode_38[94] = { /* 38::21-7E */ +static const Py_UNICODE __jisx0208_decmap_38[94] = { /* 38::21-7E */ 0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, 0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, 0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, @@ -257,7 +239,7 @@ 0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, }; -static const Py_UNICODE jisx0208_decode_39[94] = { /* 39::21-7E */ +static const Py_UNICODE __jisx0208_decmap_39[94] = { /* 39::21-7E */ 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f, 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18, 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643, @@ -272,7 +254,7 @@ 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, }; -static const Py_UNICODE jisx0208_decode_3A[94] = { /* 3A::21-7E */ +static const Py_UNICODE __jisx0208_decmap_3A[94] = { /* 3A::21-7E */ 0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, 0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, 0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, @@ -287,7 +269,7 @@ 0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, }; -static const Py_UNICODE jisx0208_decode_3B[94] = { /* 3B::21-7E */ +static const Py_UNICODE __jisx0208_decmap_3B[94] = { /* 3B::21-7E */ 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1, 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09, 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6, @@ -302,7 +284,7 @@ 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, }; -static const Py_UNICODE jisx0208_decode_3C[94] = { /* 3C::21-7E */ +static const Py_UNICODE __jisx0208_decmap_3C[94] = { /* 3C::21-7E */ 0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, 0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, 0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, @@ -317,7 +299,7 @@ 0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, }; -static const Py_UNICODE jisx0208_decode_3D[94] = { /* 3D::21-7E */ +static const Py_UNICODE __jisx0208_decmap_3D[94] = { /* 3D::21-7E */ 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0, 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846, 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6, @@ -332,7 +314,7 @@ 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, }; -static const Py_UNICODE jisx0208_decode_3E[94] = { /* 3E::21-7E */ +static const Py_UNICODE __jisx0208_decmap_3E[94] = { /* 3E::21-7E */ 0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, 0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, 0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, @@ -347,7 +329,7 @@ 0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, }; -static const Py_UNICODE jisx0208_decode_3F[94] = { /* 3F::21-7E */ +static const Py_UNICODE __jisx0208_decmap_3F[94] = { /* 3F::21-7E */ 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6, 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507, 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b, @@ -362,7 +344,7 @@ 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, }; -static const Py_UNICODE jisx0208_decode_40[94] = { /* 40::21-7E */ +static const Py_UNICODE __jisx0208_decmap_40[94] = { /* 40::21-7E */ 0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, 0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, 0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, @@ -377,7 +359,7 @@ 0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, }; -static const Py_UNICODE jisx0208_decode_41[94] = { /* 41::21-7E */ +static const Py_UNICODE __jisx0208_decmap_41[94] = { /* 41::21-7E */ 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce, 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d, 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce, @@ -392,7 +374,7 @@ 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, }; -static const Py_UNICODE jisx0208_decode_42[94] = { /* 42::21-7E */ +static const Py_UNICODE __jisx0208_decmap_42[94] = { /* 42::21-7E */ 0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, 0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, 0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, @@ -407,7 +389,7 @@ 0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, }; -static const Py_UNICODE jisx0208_decode_43[94] = { /* 43::21-7E */ +static const Py_UNICODE __jisx0208_decmap_43[94] = { /* 43::21-7E */ 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea, 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39, 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1, @@ -422,7 +404,7 @@ 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, }; -static const Py_UNICODE jisx0208_decode_44[94] = { /* 44::21-7E */ +static const Py_UNICODE __jisx0208_decmap_44[94] = { /* 44::21-7E */ 0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, 0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, 0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, @@ -437,7 +419,7 @@ 0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, }; -static const Py_UNICODE jisx0208_decode_45[94] = { /* 45::21-7E */ +static const Py_UNICODE __jisx0208_decmap_45[94] = { /* 45::21-7E */ 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575, 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9, 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55, @@ -452,7 +434,7 @@ 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, }; -static const Py_UNICODE jisx0208_decode_46[94] = { /* 46::21-7E */ +static const Py_UNICODE __jisx0208_decmap_46[94] = { /* 46::21-7E */ 0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, 0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, 0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, @@ -467,7 +449,7 @@ 0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, }; -static const Py_UNICODE jisx0208_decode_47[94] = { /* 47::21-7E */ +static const Py_UNICODE __jisx0208_decmap_47[94] = { /* 47::21-7E */ 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1, 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5, 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc, @@ -482,7 +464,7 @@ 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, }; -static const Py_UNICODE jisx0208_decode_48[94] = { /* 48::21-7E */ +static const Py_UNICODE __jisx0208_decmap_48[94] = { /* 48::21-7E */ 0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, 0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, 0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, @@ -497,7 +479,7 @@ 0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, }; -static const Py_UNICODE jisx0208_decode_49[94] = { /* 49::21-7E */ +static const Py_UNICODE __jisx0208_decmap_49[94] = { /* 49::21-7E */ 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d, 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867, 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19, @@ -512,7 +494,7 @@ 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, }; -static const Py_UNICODE jisx0208_decode_4A[94] = { /* 4A::21-7E */ +static const Py_UNICODE __jisx0208_decmap_4A[94] = { /* 4A::21-7E */ 0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, 0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, 0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, @@ -527,7 +509,7 @@ 0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, }; -static const Py_UNICODE jisx0208_decode_4B[94] = { /* 4B::21-7E */ +static const Py_UNICODE __jisx0208_decmap_4B[94] = { /* 4B::21-7E */ 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c, 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd, 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8, @@ -542,7 +524,7 @@ 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, }; -static const Py_UNICODE jisx0208_decode_4C[94] = { /* 4C::21-7E */ +static const Py_UNICODE __jisx0208_decmap_4C[94] = { /* 4C::21-7E */ 0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, 0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, 0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, @@ -557,7 +539,7 @@ 0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, }; -static const Py_UNICODE jisx0208_decode_4D[94] = { /* 4D::21-7E */ +static const Py_UNICODE __jisx0208_decmap_4D[94] = { /* 4D::21-7E */ 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5, 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c, 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091, @@ -572,7 +554,7 @@ 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, }; -static const Py_UNICODE jisx0208_decode_4E[94] = { /* 4E::21-7E */ +static const Py_UNICODE __jisx0208_decmap_4E[94] = { /* 4E::21-7E */ 0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, 0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, 0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, @@ -587,22 +569,17 @@ 0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, }; -static const Py_UNICODE jisx0208_decode_4F[94] = { /* 4F::21-7E */ +static const Py_UNICODE __jisx0208_decmap_4F[51] = { /* 4F::21-53 */ 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2, 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c, 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e, 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6, 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0, 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900, - 0x6e7e, 0x7897, 0x8155, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + 0x6e7e, 0x7897, 0x8155, }; -static const Py_UNICODE jisx0208_decode_50[94] = { /* 50::21-7E */ +static const Py_UNICODE __jisx0208_decmap_50[94] = { /* 50::21-7E */ 0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, 0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, 0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, @@ -617,7 +594,7 @@ 0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, }; -static const Py_UNICODE jisx0208_decode_51[94] = { /* 51::21-7E */ +static const Py_UNICODE __jisx0208_decmap_51[94] = { /* 51::21-7E */ 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed, 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116, 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b, @@ -632,7 +609,7 @@ 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, }; -static const Py_UNICODE jisx0208_decode_52[94] = { /* 52::21-7E */ +static const Py_UNICODE __jisx0208_decmap_52[94] = { /* 52::21-7E */ 0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, 0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, 0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, @@ -647,7 +624,7 @@ 0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, }; -static const Py_UNICODE jisx0208_decode_53[94] = { /* 53::21-7E */ +static const Py_UNICODE __jisx0208_decmap_53[94] = { /* 53::21-7E */ 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6, 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539, 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557, @@ -662,7 +639,7 @@ 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, }; -static const Py_UNICODE jisx0208_decode_54[94] = { /* 54::21-7E */ +static const Py_UNICODE __jisx0208_decmap_54[94] = { /* 54::21-7E */ 0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, 0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, 0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, @@ -677,7 +654,7 @@ 0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969, }; -static const Py_UNICODE jisx0208_decode_55[94] = { /* 55::21-7E */ +static const Py_UNICODE __jisx0208_decmap_55[94] = { /* 55::21-7E */ 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6, 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11, 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36, @@ -692,7 +669,7 @@ 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, }; -static const Py_UNICODE jisx0208_decode_56[94] = { /* 56::21-7E */ +static const Py_UNICODE __jisx0208_decmap_56[94] = { /* 56::21-7E */ 0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, 0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, 0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, @@ -707,7 +684,7 @@ 0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, }; -static const Py_UNICODE jisx0208_decode_57[94] = { /* 57::21-7E */ +static const Py_UNICODE __jisx0208_decmap_57[94] = { /* 57::21-7E */ 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8, 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe, 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29, @@ -722,7 +699,7 @@ 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, }; -static const Py_UNICODE jisx0208_decode_58[94] = { /* 58::21-7E */ +static const Py_UNICODE __jisx0208_decmap_58[94] = { /* 58::21-7E */ 0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, 0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, 0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, @@ -737,7 +714,7 @@ 0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b, }; -static const Py_UNICODE jisx0208_decode_59[94] = { /* 59::21-7E */ +static const Py_UNICODE __jisx0208_decmap_59[94] = { /* 59::21-7E */ 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241, 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282, 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294, @@ -752,7 +729,7 @@ 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, }; -static const Py_UNICODE jisx0208_decode_5A[94] = { /* 5A::21-7E */ +static const Py_UNICODE __jisx0208_decmap_5A[94] = { /* 5A::21-7E */ 0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, 0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, 0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, @@ -767,7 +744,7 @@ 0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, }; -static const Py_UNICODE jisx0208_decode_5B[94] = { /* 5B::21-7E */ +static const Py_UNICODE __jisx0208_decmap_5B[94] = { /* 5B::21-7E */ 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9, 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727, 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, @@ -782,7 +759,7 @@ 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, }; -static const Py_UNICODE jisx0208_decode_5C[94] = { /* 5C::21-7E */ +static const Py_UNICODE __jisx0208_decmap_5C[94] = { /* 5C::21-7E */ 0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, 0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, 0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, @@ -797,7 +774,7 @@ 0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, }; -static const Py_UNICODE jisx0208_decode_5D[94] = { /* 5D::21-7E */ +static const Py_UNICODE __jisx0208_decmap_5D[94] = { /* 5D::21-7E */ 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac, 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05, 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37, @@ -812,7 +789,7 @@ 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe, }; -static const Py_UNICODE jisx0208_decode_5E[94] = { /* 5E::21-7E */ +static const Py_UNICODE __jisx0208_decmap_5E[94] = { /* 5E::21-7E */ 0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36, 0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c, 0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95, @@ -827,7 +804,7 @@ 0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc, }; -static const Py_UNICODE jisx0208_decode_5F[94] = { /* 5F::21-7E */ +static const Py_UNICODE __jisx0208_decmap_5F[94] = { /* 5F::21-7E */ 0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80, 0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e, 0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9, @@ -842,7 +819,7 @@ 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc, }; -static const Py_UNICODE jisx0208_decode_60[94] = { /* 60::21-7E */ +static const Py_UNICODE __jisx0208_decmap_60[94] = { /* 60::21-7E */ 0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c, 0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b, 0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, @@ -857,7 +834,7 @@ 0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1, }; -static const Py_UNICODE jisx0208_decode_61[94] = { /* 61::21-7E */ +static const Py_UNICODE __jisx0208_decmap_61[94] = { /* 61::21-7E */ 0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1, 0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d, 0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d, @@ -872,7 +849,7 @@ 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670, }; -static const Py_UNICODE jisx0208_decode_62[94] = { /* 62::21-7E */ +static const Py_UNICODE __jisx0208_decmap_62[94] = { /* 62::21-7E */ 0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b, 0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8, 0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1, @@ -887,7 +864,7 @@ 0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec, }; -static const Py_UNICODE jisx0208_decode_63[94] = { /* 63::21-7E */ +static const Py_UNICODE __jisx0208_decmap_63[94] = { /* 63::21-7E */ 0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919, 0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955, 0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa, @@ -902,7 +879,7 @@ 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50, }; -static const Py_UNICODE jisx0208_decode_64[94] = { /* 64::21-7E */ +static const Py_UNICODE __jisx0208_decmap_64[94] = { /* 64::21-7E */ 0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65, 0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98, 0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d, @@ -917,7 +894,7 @@ 0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06, }; -static const Py_UNICODE jisx0208_decode_65[94] = { /* 65::21-7E */ +static const Py_UNICODE __jisx0208_decmap_65[94] = { /* 65::21-7E */ 0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32, 0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68, 0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d, @@ -932,7 +909,7 @@ 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a, }; -static const Py_UNICODE jisx0208_decode_66[94] = { /* 66::21-7E */ +static const Py_UNICODE __jisx0208_decmap_66[94] = { /* 66::21-7E */ 0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54, 0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82, 0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d, @@ -947,7 +924,7 @@ 0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b, }; -static const Py_UNICODE jisx0208_decode_67[94] = { /* 67::21-7E */ +static const Py_UNICODE __jisx0208_decmap_67[94] = { /* 67::21-7E */ 0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e, 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182, 0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0, @@ -962,7 +939,7 @@ 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9, }; -static const Py_UNICODE jisx0208_decode_68[94] = { /* 68::21-7E */ +static const Py_UNICODE __jisx0208_decmap_68[94] = { /* 68::21-7E */ 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, 0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa, 0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c, @@ -977,7 +954,7 @@ 0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548, }; -static const Py_UNICODE jisx0208_decode_69[94] = { /* 69::21-7E */ +static const Py_UNICODE __jisx0208_decmap_69[94] = { /* 69::21-7E */ 0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591, 0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c, 0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0, @@ -992,7 +969,7 @@ 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759, }; -static const Py_UNICODE jisx0208_decode_6A[94] = { /* 6A::21-7E */ +static const Py_UNICODE __jisx0208_decmap_6A[94] = { /* 6A::21-7E */ 0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af, 0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3, 0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d, @@ -1007,7 +984,7 @@ 0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e, }; -static const Py_UNICODE jisx0208_decode_6B[94] = { /* 6B::21-7E */ +static const Py_UNICODE __jisx0208_decmap_6B[94] = { /* 6B::21-7E */ 0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e, 0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6, 0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da, @@ -1022,7 +999,7 @@ 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b, }; -static const Py_UNICODE jisx0208_decode_6C[94] = { /* 6C::21-7E */ +static const Py_UNICODE __jisx0208_decmap_6C[94] = { /* 6C::21-7E */ 0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e, 0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f, 0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78, @@ -1037,7 +1014,7 @@ 0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a, }; -static const Py_UNICODE jisx0208_decode_6D[94] = { /* 6D::21-7E */ +static const Py_UNICODE __jisx0208_decmap_6D[94] = { /* 6D::21-7E */ 0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60, 0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87, 0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99, @@ -1052,7 +1029,7 @@ 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8, }; -static const Py_UNICODE jisx0208_decode_6E[94] = { /* 6E::21-7E */ +static const Py_UNICODE __jisx0208_decmap_6E[94] = { /* 6E::21-7E */ 0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056, 0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082, 0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af, @@ -1067,7 +1044,7 @@ 0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e, }; -static const Py_UNICODE jisx0208_decode_6F[94] = { /* 6F::21-7E */ +static const Py_UNICODE __jisx0208_decmap_6F[94] = { /* 6F::21-7E */ 0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c, 0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394, 0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd, @@ -1082,7 +1059,7 @@ 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e, }; -static const Py_UNICODE jisx0208_decode_70[94] = { /* 70::21-7E */ +static const Py_UNICODE __jisx0208_decmap_70[94] = { /* 70::21-7E */ 0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695, 0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6, 0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc, @@ -1097,7 +1074,7 @@ 0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870, }; -static const Py_UNICODE jisx0208_decode_71[94] = { /* 71::21-7E */ +static const Py_UNICODE __jisx0208_decmap_71[94] = { /* 71::21-7E */ 0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4, 0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914, 0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e, @@ -1112,7 +1089,7 @@ 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7, }; -static const Py_UNICODE jisx0208_decode_72[94] = { /* 72::21-7E */ +static const Py_UNICODE __jisx0208_decmap_72[94] = { /* 72::21-7E */ 0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44, 0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93, @@ -1127,7 +1104,7 @@ 0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48, }; -static const Py_UNICODE jisx0208_decode_73[94] = { /* 73::21-7E */ +static const Py_UNICODE __jisx0208_decmap_73[94] = { /* 73::21-7E */ 0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89, 0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2, 0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2, @@ -1142,149 +1119,138 @@ 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0, }; -static const Py_UNICODE jisx0208_decode_74[94] = { /* 74::21-7E */ - 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, +static const Py_UNICODE __jisx0208_decmap_74[6] = { /* 74::21-26 */ + 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, }; -static const Py_UNICODE *jisx0208_decode_map[128] = { - 0, /* 0x00 */ - 0, /* 0x01 */ - 0, /* 0x02 */ - 0, /* 0x03 */ - 0, /* 0x04 */ - 0, /* 0x05 */ - 0, /* 0x06 */ - 0, /* 0x07 */ - 0, /* 0x08 */ - 0, /* 0x09 */ - 0, /* 0x0A */ - 0, /* 0x0B */ - 0, /* 0x0C */ - 0, /* 0x0D */ - 0, /* 0x0E */ - 0, /* 0x0F */ - 0, /* 0x10 */ - 0, /* 0x11 */ - 0, /* 0x12 */ - 0, /* 0x13 */ - 0, /* 0x14 */ - 0, /* 0x15 */ - 0, /* 0x16 */ - 0, /* 0x17 */ - 0, /* 0x18 */ - 0, /* 0x19 */ - 0, /* 0x1A */ - 0, /* 0x1B */ - 0, /* 0x1C */ - 0, /* 0x1D */ - 0, /* 0x1E */ - 0, /* 0x1F */ - 0, /* 0x20 */ - jisx0208_decode_21, /* 0x21 */ - jisx0208_decode_22, /* 0x22 */ - jisx0208_decode_23, /* 0x23 */ - jisx0208_decode_24, /* 0x24 */ - jisx0208_decode_25, /* 0x25 */ - jisx0208_decode_26, /* 0x26 */ - jisx0208_decode_27, /* 0x27 */ - jisx0208_decode_28, /* 0x28 */ - 0, /* 0x29 */ - 0, /* 0x2A */ - 0, /* 0x2B */ - 0, /* 0x2C */ - 0, /* 0x2D */ - 0, /* 0x2E */ - 0, /* 0x2F */ - jisx0208_decode_30, /* 0x30 */ - jisx0208_decode_31, /* 0x31 */ - jisx0208_decode_32, /* 0x32 */ - jisx0208_decode_33, /* 0x33 */ - jisx0208_decode_34, /* 0x34 */ - jisx0208_decode_35, /* 0x35 */ - jisx0208_decode_36, /* 0x36 */ - jisx0208_decode_37, /* 0x37 */ - jisx0208_decode_38, /* 0x38 */ - jisx0208_decode_39, /* 0x39 */ - jisx0208_decode_3A, /* 0x3A */ - jisx0208_decode_3B, /* 0x3B */ - jisx0208_decode_3C, /* 0x3C */ - jisx0208_decode_3D, /* 0x3D */ - jisx0208_decode_3E, /* 0x3E */ - jisx0208_decode_3F, /* 0x3F */ - jisx0208_decode_40, /* 0x40 */ - jisx0208_decode_41, /* 0x41 */ - jisx0208_decode_42, /* 0x42 */ - jisx0208_decode_43, /* 0x43 */ - jisx0208_decode_44, /* 0x44 */ - jisx0208_decode_45, /* 0x45 */ - jisx0208_decode_46, /* 0x46 */ - jisx0208_decode_47, /* 0x47 */ - jisx0208_decode_48, /* 0x48 */ - jisx0208_decode_49, /* 0x49 */ - jisx0208_decode_4A, /* 0x4A */ - jisx0208_decode_4B, /* 0x4B */ - jisx0208_decode_4C, /* 0x4C */ - jisx0208_decode_4D, /* 0x4D */ - jisx0208_decode_4E, /* 0x4E */ - jisx0208_decode_4F, /* 0x4F */ - jisx0208_decode_50, /* 0x50 */ - jisx0208_decode_51, /* 0x51 */ - jisx0208_decode_52, /* 0x52 */ - jisx0208_decode_53, /* 0x53 */ - jisx0208_decode_54, /* 0x54 */ - jisx0208_decode_55, /* 0x55 */ - jisx0208_decode_56, /* 0x56 */ - jisx0208_decode_57, /* 0x57 */ - jisx0208_decode_58, /* 0x58 */ - jisx0208_decode_59, /* 0x59 */ - jisx0208_decode_5A, /* 0x5A */ - jisx0208_decode_5B, /* 0x5B */ - jisx0208_decode_5C, /* 0x5C */ - jisx0208_decode_5D, /* 0x5D */ - jisx0208_decode_5E, /* 0x5E */ - jisx0208_decode_5F, /* 0x5F */ - jisx0208_decode_60, /* 0x60 */ - jisx0208_decode_61, /* 0x61 */ - jisx0208_decode_62, /* 0x62 */ - jisx0208_decode_63, /* 0x63 */ - jisx0208_decode_64, /* 0x64 */ - jisx0208_decode_65, /* 0x65 */ - jisx0208_decode_66, /* 0x66 */ - jisx0208_decode_67, /* 0x67 */ - jisx0208_decode_68, /* 0x68 */ - jisx0208_decode_69, /* 0x69 */ - jisx0208_decode_6A, /* 0x6A */ - jisx0208_decode_6B, /* 0x6B */ - jisx0208_decode_6C, /* 0x6C */ - jisx0208_decode_6D, /* 0x6D */ - jisx0208_decode_6E, /* 0x6E */ - jisx0208_decode_6F, /* 0x6F */ - jisx0208_decode_70, /* 0x70 */ - jisx0208_decode_71, /* 0x71 */ - jisx0208_decode_72, /* 0x72 */ - jisx0208_decode_73, /* 0x73 */ - jisx0208_decode_74, /* 0x74 */ - 0, /* 0x75 */ - 0, /* 0x76 */ - 0, /* 0x77 */ - 0, /* 0x78 */ - 0, /* 0x79 */ - 0, /* 0x7A */ - 0, /* 0x7B */ - 0, /* 0x7C */ - 0, /* 0x7D */ - 0, /* 0x7E */ - 0, /* 0x7F */ +static const struct dbcs_index *jisx0208_decmap[128] = { +/* 0x00 */ {0, 0, 0}, +/* 0x01 */ {0, 0, 0}, +/* 0x02 */ {0, 0, 0}, +/* 0x03 */ {0, 0, 0}, +/* 0x04 */ {0, 0, 0}, +/* 0x05 */ {0, 0, 0}, +/* 0x06 */ {0, 0, 0}, +/* 0x07 */ {0, 0, 0}, +/* 0x08 */ {0, 0, 0}, +/* 0x09 */ {0, 0, 0}, +/* 0x0A */ {0, 0, 0}, +/* 0x0B */ {0, 0, 0}, +/* 0x0C */ {0, 0, 0}, +/* 0x0D */ {0, 0, 0}, +/* 0x0E */ {0, 0, 0}, +/* 0x0F */ {0, 0, 0}, +/* 0x10 */ {0, 0, 0}, +/* 0x11 */ {0, 0, 0}, +/* 0x12 */ {0, 0, 0}, +/* 0x13 */ {0, 0, 0}, +/* 0x14 */ {0, 0, 0}, +/* 0x15 */ {0, 0, 0}, +/* 0x16 */ {0, 0, 0}, +/* 0x17 */ {0, 0, 0}, +/* 0x18 */ {0, 0, 0}, +/* 0x19 */ {0, 0, 0}, +/* 0x1A */ {0, 0, 0}, +/* 0x1B */ {0, 0, 0}, +/* 0x1C */ {0, 0, 0}, +/* 0x1D */ {0, 0, 0}, +/* 0x1E */ {0, 0, 0}, +/* 0x1F */ {0, 0, 0}, +/* 0x20 */ {0, 0, 0}, +/* 0x21 */ {__jisx0208_decmap_21, 0x21, 0x7e}, +/* 0x22 */ {__jisx0208_decmap_22, 0x21, 0x7e}, +/* 0x23 */ {__jisx0208_decmap_23, 0x30, 0x7a}, +/* 0x24 */ {__jisx0208_decmap_24, 0x21, 0x73}, +/* 0x25 */ {__jisx0208_decmap_25, 0x21, 0x76}, +/* 0x26 */ {__jisx0208_decmap_26, 0x21, 0x58}, +/* 0x27 */ {__jisx0208_decmap_27, 0x21, 0x71}, +/* 0x28 */ {__jisx0208_decmap_28, 0x21, 0x40}, +/* 0x29 */ {0, 0, 0}, +/* 0x2A */ {0, 0, 0}, +/* 0x2B */ {0, 0, 0}, +/* 0x2C */ {0, 0, 0}, +/* 0x2D */ {0, 0, 0}, +/* 0x2E */ {0, 0, 0}, +/* 0x2F */ {0, 0, 0}, +/* 0x30 */ {__jisx0208_decmap_30, 0x21, 0x7e}, +/* 0x31 */ {__jisx0208_decmap_31, 0x21, 0x7e}, +/* 0x32 */ {__jisx0208_decmap_32, 0x21, 0x7e}, +/* 0x33 */ {__jisx0208_decmap_33, 0x21, 0x7e}, +/* 0x34 */ {__jisx0208_decmap_34, 0x21, 0x7e}, +/* 0x35 */ {__jisx0208_decmap_35, 0x21, 0x7e}, +/* 0x36 */ {__jisx0208_decmap_36, 0x21, 0x7e}, +/* 0x37 */ {__jisx0208_decmap_37, 0x21, 0x7e}, +/* 0x38 */ {__jisx0208_decmap_38, 0x21, 0x7e}, +/* 0x39 */ {__jisx0208_decmap_39, 0x21, 0x7e}, +/* 0x3A */ {__jisx0208_decmap_3A, 0x21, 0x7e}, +/* 0x3B */ {__jisx0208_decmap_3B, 0x21, 0x7e}, +/* 0x3C */ {__jisx0208_decmap_3C, 0x21, 0x7e}, +/* 0x3D */ {__jisx0208_decmap_3D, 0x21, 0x7e}, +/* 0x3E */ {__jisx0208_decmap_3E, 0x21, 0x7e}, +/* 0x3F */ {__jisx0208_decmap_3F, 0x21, 0x7e}, +/* 0x40 */ {__jisx0208_decmap_40, 0x21, 0x7e}, +/* 0x41 */ {__jisx0208_decmap_41, 0x21, 0x7e}, +/* 0x42 */ {__jisx0208_decmap_42, 0x21, 0x7e}, +/* 0x43 */ {__jisx0208_decmap_43, 0x21, 0x7e}, +/* 0x44 */ {__jisx0208_decmap_44, 0x21, 0x7e}, +/* 0x45 */ {__jisx0208_decmap_45, 0x21, 0x7e}, +/* 0x46 */ {__jisx0208_decmap_46, 0x21, 0x7e}, +/* 0x47 */ {__jisx0208_decmap_47, 0x21, 0x7e}, +/* 0x48 */ {__jisx0208_decmap_48, 0x21, 0x7e}, +/* 0x49 */ {__jisx0208_decmap_49, 0x21, 0x7e}, +/* 0x4A */ {__jisx0208_decmap_4A, 0x21, 0x7e}, +/* 0x4B */ {__jisx0208_decmap_4B, 0x21, 0x7e}, +/* 0x4C */ {__jisx0208_decmap_4C, 0x21, 0x7e}, +/* 0x4D */ {__jisx0208_decmap_4D, 0x21, 0x7e}, +/* 0x4E */ {__jisx0208_decmap_4E, 0x21, 0x7e}, +/* 0x4F */ {__jisx0208_decmap_4F, 0x21, 0x53}, +/* 0x50 */ {__jisx0208_decmap_50, 0x21, 0x7e}, +/* 0x51 */ {__jisx0208_decmap_51, 0x21, 0x7e}, +/* 0x52 */ {__jisx0208_decmap_52, 0x21, 0x7e}, +/* 0x53 */ {__jisx0208_decmap_53, 0x21, 0x7e}, +/* 0x54 */ {__jisx0208_decmap_54, 0x21, 0x7e}, +/* 0x55 */ {__jisx0208_decmap_55, 0x21, 0x7e}, +/* 0x56 */ {__jisx0208_decmap_56, 0x21, 0x7e}, +/* 0x57 */ {__jisx0208_decmap_57, 0x21, 0x7e}, +/* 0x58 */ {__jisx0208_decmap_58, 0x21, 0x7e}, +/* 0x59 */ {__jisx0208_decmap_59, 0x21, 0x7e}, +/* 0x5A */ {__jisx0208_decmap_5A, 0x21, 0x7e}, +/* 0x5B */ {__jisx0208_decmap_5B, 0x21, 0x7e}, +/* 0x5C */ {__jisx0208_decmap_5C, 0x21, 0x7e}, +/* 0x5D */ {__jisx0208_decmap_5D, 0x21, 0x7e}, +/* 0x5E */ {__jisx0208_decmap_5E, 0x21, 0x7e}, +/* 0x5F */ {__jisx0208_decmap_5F, 0x21, 0x7e}, +/* 0x60 */ {__jisx0208_decmap_60, 0x21, 0x7e}, +/* 0x61 */ {__jisx0208_decmap_61, 0x21, 0x7e}, +/* 0x62 */ {__jisx0208_decmap_62, 0x21, 0x7e}, +/* 0x63 */ {__jisx0208_decmap_63, 0x21, 0x7e}, +/* 0x64 */ {__jisx0208_decmap_64, 0x21, 0x7e}, +/* 0x65 */ {__jisx0208_decmap_65, 0x21, 0x7e}, +/* 0x66 */ {__jisx0208_decmap_66, 0x21, 0x7e}, +/* 0x67 */ {__jisx0208_decmap_67, 0x21, 0x7e}, +/* 0x68 */ {__jisx0208_decmap_68, 0x21, 0x7e}, +/* 0x69 */ {__jisx0208_decmap_69, 0x21, 0x7e}, +/* 0x6A */ {__jisx0208_decmap_6A, 0x21, 0x7e}, +/* 0x6B */ {__jisx0208_decmap_6B, 0x21, 0x7e}, +/* 0x6C */ {__jisx0208_decmap_6C, 0x21, 0x7e}, +/* 0x6D */ {__jisx0208_decmap_6D, 0x21, 0x7e}, +/* 0x6E */ {__jisx0208_decmap_6E, 0x21, 0x7e}, +/* 0x6F */ {__jisx0208_decmap_6F, 0x21, 0x7e}, +/* 0x70 */ {__jisx0208_decmap_70, 0x21, 0x7e}, +/* 0x71 */ {__jisx0208_decmap_71, 0x21, 0x7e}, +/* 0x72 */ {__jisx0208_decmap_72, 0x21, 0x7e}, +/* 0x73 */ {__jisx0208_decmap_73, 0x21, 0x7e}, +/* 0x74 */ {__jisx0208_decmap_74, 0x21, 0x26}, +/* 0x75 */ {0, 0, 0}, +/* 0x76 */ {0, 0, 0}, +/* 0x77 */ {0, 0, 0}, +/* 0x78 */ {0, 0, 0}, +/* 0x79 */ {0, 0, 0}, +/* 0x7A */ {0, 0, 0}, +/* 0x7B */ {0, 0, 0}, +/* 0x7C */ {0, 0, 0}, +/* 0x7D */ {0, 0, 0}, +/* 0x7E */ {0, 0, 0}, +/* 0x7F */ {0, 0, 0}, }; 1.2 +211 -237 cjkcodecs/src/map_jisx0212.h Index: map_jisx0212.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/map_jisx0212.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- map_jisx0212.h 22 Apr 2003 19:25:37 -0000 1.1 +++ map_jisx0212.h 22 Apr 2003 20:05:59 -0000 1.2 @@ -1,68 +1,47 @@ /* - * $Id: map_jisx0212.h,v 1.1 2003/04/22 19:25:37 perky Exp $ + * $Id: map_jisx0212.h,v 1.2 2003/04/22 20:05:59 perky Exp $ */ -static const Py_UNICODE jisx0212_decode_22[94] = { /* 22::21-7E */ +static const Py_UNICODE __jisx0212_decmap_22[67] = { /* 22::2F-71 */ + 0x02d8, 0x02c7, 0x00b8, 0x02d9, 0x02dd, 0x00af, 0x02db, 0x02da, + 0x007e, 0x0384, 0x0385, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + UNIINV, UNIINV, UNIINV, 0x00a1, 0x00a6, 0x00bf, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x02d8, 0x02c7, - 0x00b8, 0x02d9, 0x02dd, 0x00af, 0x02db, 0x02da, 0x007e, 0x0384, - 0x0385, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, 0x00a1, 0x00a6, 0x00bf, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, 0x00ba, 0x00aa, 0x00a9, 0x00ae, 0x2122, 0x00a4, - 0x2116, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, - UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, + UNIINV, UNIINV, UNIINV, UNIINV, 0x00ba, 0x00aa, 0x... [truncated message content] |
From: Hye-Shik C. <pe...@us...> - 2003-04-22 19:25:42
|
perky 03/04/22 12:25:38 Added: src map_cp932.h map_jisx0208.h map_jisx0212.h Log: Add maps for japanese Revision Changes Path 1.1 cjkcodecs/src/map_cp932.h Index: map_cp932.h =================================================================== /* * $Id: map_cp932.h,v 1.1 2003/04/22 19:25:31 perky Exp $ */ static const Py_UNICODE cp932_decode_81[108] = { /* 81::5F-CA */ 0xff3c, 0xff5e, 0x2225, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xff0d, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xffe0, 0xffe1, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xffe2, }; static const Py_UNICODE cp932_decode_87[93] = { /* 87::40-9C */ 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, UNIINV, 0x3349, 0x3314, 0x3322, 0x334d, 0x3318, 0x3327, 0x3303, 0x3336, 0x3351, 0x3357, 0x330d, 0x3326, 0x3323, 0x332b, 0x334a, 0x333b, 0x339c, 0x339d, 0x339e, 0x338e, 0x338f, 0x33c4, 0x33a1, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x337b, UNIINV, 0x301d, 0x301f, 0x2116, 0x33cd, 0x2121, 0x32a4, 0x32a5, 0x32a6, 0x32a7, 0x32a8, 0x3231, 0x3232, 0x3239, 0x337e, 0x337d, 0x337c, 0x2252, 0x2261, 0x222b, 0x222e, 0x2211, 0x221a, 0x22a5, 0x2220, 0x221f, 0x22bf, 0x2235, 0x2229, 0x222a, }; static const Py_UNICODE cp932_decode_ED[189] = { /* ED::40-FC */ 0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00, 0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, 0x5040, 0x5022, 0x4fff, 0x501e, 0x5046, 0x5070, 0x5042, 0x5094, 0x50f4, 0x50d8, 0x514a, 0x5164, 0x519d, 0x51be, 0x51ec, 0x5215, 0x529c, 0x52a6, 0x52c0, 0x52db, 0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53b2, 0x53dd, 0xfa0e, 0x549c, 0x548a, 0x54a9, 0x54ff, 0x5586, 0x5759, 0x5765, 0x57ac, 0x57c8, 0x57c7, 0xfa0f, UNIINV, 0xfa10, 0x589e, 0x58b2, 0x590b, 0x5953, 0x595b, 0x595d, 0x5963, 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0xfa11, 0x5d42, 0x5d6d, 0x5db8, 0x5db9, 0x5dd0, 0x5f21, 0x5f34, 0x5f67, 0x5fb7, 0x5fde, 0x605d, 0x6085, 0x608a, 0x60de, 0x60d5, 0x6120, 0x60f2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62a6, 0x63f5, 0x6460, 0x649d, 0x64ce, 0x654e, 0x6600, 0x6615, 0x663b, 0x6609, 0x662e, 0x661e, 0x6624, 0x6665, 0x6657, 0x6659, 0xfa12, 0x6673, 0x6699, 0x66a0, 0x66b2, 0x66bf, 0x66fa, 0x670e, 0xf929, 0x6766, 0x67bb, 0x6852, 0x67c0, 0x6801, 0x6844, 0x68cf, 0xfa13, 0x6968, 0xfa14, 0x6998, 0x69e2, 0x6a30, 0x6a6b, 0x6a46, 0x6a73, 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, 0x6cda, 0x6d04, 0x6d87, 0x6d6f, 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, 0xfa15, 0x71c1, 0x71fe, 0x72b1, }; static const Py_UNICODE cp932_decode_EE[189] = { /* EE::40-FC */ 0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b, 0x76a6, 0xfa17, 0x7746, 0x52af, 0x7821, 0x784e, 0x7864, 0x787a, 0x7930, 0xfa18, 0xfa19, 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1, 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, 0x7da0, 0x7dd6, 0x7e52, 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362, 0x837f, 0x83c7, 0x83f6, 0x8448, 0x84b4, 0x8553, 0x8559, UNIINV, 0x856b, 0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0x88f5, 0x8a12, 0x8a37, 0x8a79, 0x8aa7, 0x8abe, 0x8adf, 0xfa22, 0x8af6, 0x8b53, 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, 0xfa23, 0x8ecf, 0xfa24, 0xfa25, 0x9067, 0x90de, 0xfa26, 0x9115, 0x9127, 0x91da, 0x91d7, 0x91de, 0x91ed, 0x91ee, 0x91e4, 0x91e5, 0x9206, 0x9210, 0x920a, 0x923a, 0x9240, 0x923c, 0x924e, 0x9259, 0x9251, 0x9239, 0x9267, 0x92a7, 0x9277, 0x9278, 0x92e7, 0x92d7, 0x92d9, 0x92d0, 0xfa27, 0x92d5, 0x92e0, 0x92d3, 0x9325, 0x9321, 0x92fb, 0xfa28, 0x931e, 0x92ff, 0x931d, 0x9302, 0x9370, 0x9357, 0x93a4, 0x93c6, 0x93de, 0x93f8, 0x9431, 0x9445, 0x9448, 0x9592, 0xf9dc, 0xfa29, 0x969d, 0x96af, 0x9733, 0x973b, 0x9743, 0x974d, 0x974f, 0x9751, 0x9755, 0x9857, 0x9865, 0xfa2a, 0xfa2b, 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, UNIINV, UNIINV, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0xffe2, 0xffe4, 0xff07, 0xff02, }; static const Py_UNICODE cp932_decode_FA[189] = { /* FA::40-FC */ 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0xffe2, 0xffe4, 0xff07, 0xff02, 0x3231, 0x2116, 0x2121, 0x2235, 0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00, 0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, 0x5040, 0x5022, 0x4fff, 0x501e, 0x5046, 0x5070, 0x5042, 0x5094, 0x50f4, 0x50d8, 0x514a, UNIINV, 0x5164, 0x519d, 0x51be, 0x51ec, 0x5215, 0x529c, 0x52a6, 0x52c0, 0x52db, 0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53b2, 0x53dd, 0xfa0e, 0x549c, 0x548a, 0x54a9, 0x54ff, 0x5586, 0x5759, 0x5765, 0x57ac, 0x57c8, 0x57c7, 0xfa0f, 0xfa10, 0x589e, 0x58b2, 0x590b, 0x5953, 0x595b, 0x595d, 0x5963, 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0xfa11, 0x5d42, 0x5d6d, 0x5db8, 0x5db9, 0x5dd0, 0x5f21, 0x5f34, 0x5f67, 0x5fb7, 0x5fde, 0x605d, 0x6085, 0x608a, 0x60de, 0x60d5, 0x6120, 0x60f2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62a6, 0x63f5, 0x6460, 0x649d, 0x64ce, 0x654e, 0x6600, 0x6615, 0x663b, 0x6609, 0x662e, 0x661e, 0x6624, 0x6665, 0x6657, 0x6659, 0xfa12, 0x6673, 0x6699, 0x66a0, 0x66b2, 0x66bf, 0x66fa, 0x670e, 0xf929, 0x6766, 0x67bb, 0x6852, 0x67c0, 0x6801, 0x6844, 0x68cf, 0xfa13, 0x6968, 0xfa14, 0x6998, 0x69e2, 0x6a30, 0x6a6b, 0x6a46, 0x6a73, 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, 0x6cda, 0x6d04, 0x6d87, 0x6d6f, }; static const Py_UNICODE cp932_decode_FB[189] = { /* FB::40-FC */ 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, 0xfa15, 0x71c1, 0x71fe, 0x72b1, 0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b, 0x76a6, 0xfa17, 0x7746, 0x52af, 0x7821, 0x784e, 0x7864, 0x787a, 0x7930, 0xfa18, 0xfa19, UNIINV, 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1, 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, 0x7da0, 0x7dd6, 0x7e52, 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362, 0x837f, 0x83c7, 0x83f6, 0x8448, 0x84b4, 0x8553, 0x8559, 0x856b, 0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0x88f5, 0x8a12, 0x8a37, 0x8a79, 0x8aa7, 0x8abe, 0x8adf, 0xfa22, 0x8af6, 0x8b53, 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, 0xfa23, 0x8ecf, 0xfa24, 0xfa25, 0x9067, 0x90de, 0xfa26, 0x9115, 0x9127, 0x91da, 0x91d7, 0x91de, 0x91ed, 0x91ee, 0x91e4, 0x91e5, 0x9206, 0x9210, 0x920a, 0x923a, 0x9240, 0x923c, 0x924e, 0x9259, 0x9251, 0x9239, 0x9267, 0x92a7, 0x9277, 0x9278, 0x92e7, 0x92d7, 0x92d9, 0x92d0, 0xfa27, 0x92d5, 0x92e0, 0x92d3, 0x9325, 0x9321, 0x92fb, 0xfa28, 0x931e, 0x92ff, 0x931d, 0x9302, 0x9370, 0x9357, 0x93a4, 0x93c6, 0x93de, 0x93f8, 0x9431, 0x9445, 0x9448, 0x9592, 0xf9dc, 0xfa29, 0x969d, 0x96af, 0x9733, 0x973b, 0x9743, 0x974d, 0x974f, 0x9751, 0x9755, 0x9857, 0x9865, 0xfa2a, 0xfa2b, 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, }; static const Py_UNICODE cp932_decode_FC[189] = { /* FC::40-FC */ 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; static const Py_UNICODE *cp932_decode_map[128] = { 0, /* 0x80 */ cp932_decode_81, /* 0x81 */ 0, /* 0x82 */ 0, /* 0x83 */ 0, /* 0x84 */ 0, /* 0x85 */ 0, /* 0x86 */ cp932_decode_87, /* 0x87 */ 0, /* 0x88 */ 0, /* 0x89 */ 0, /* 0x8A */ 0, /* 0x8B */ 0, /* 0x8C */ 0, /* 0x8D */ 0, /* 0x8E */ 0, /* 0x8F */ 0, /* 0x90 */ 0, /* 0x91 */ 0, /* 0x92 */ 0, /* 0x93 */ 0, /* 0x94 */ 0, /* 0x95 */ 0, /* 0x96 */ 0, /* 0x97 */ 0, /* 0x98 */ 0, /* 0x99 */ 0, /* 0x9A */ 0, /* 0x9B */ 0, /* 0x9C */ 0, /* 0x9D */ 0, /* 0x9E */ 0, /* 0x9F */ 0, /* 0xA0 */ 0, /* 0xA1 */ 0, /* 0xA2 */ 0, /* 0xA3 */ 0, /* 0xA4 */ 0, /* 0xA5 */ 0, /* 0xA6 */ 0, /* 0xA7 */ 0, /* 0xA8 */ 0, /* 0xA9 */ 0, /* 0xAA */ 0, /* 0xAB */ 0, /* 0xAC */ 0, /* 0xAD */ 0, /* 0xAE */ 0, /* 0xAF */ 0, /* 0xB0 */ 0, /* 0xB1 */ 0, /* 0xB2 */ 0, /* 0xB3 */ 0, /* 0xB4 */ 0, /* 0xB5 */ 0, /* 0xB6 */ 0, /* 0xB7 */ 0, /* 0xB8 */ 0, /* 0xB9 */ 0, /* 0xBA */ 0, /* 0xBB */ 0, /* 0xBC */ 0, /* 0xBD */ 0, /* 0xBE */ 0, /* 0xBF */ 0, /* 0xC0 */ 0, /* 0xC1 */ 0, /* 0xC2 */ 0, /* 0xC3 */ 0, /* 0xC4 */ 0, /* 0xC5 */ 0, /* 0xC6 */ 0, /* 0xC7 */ 0, /* 0xC8 */ 0, /* 0xC9 */ 0, /* 0xCA */ 0, /* 0xCB */ 0, /* 0xCC */ 0, /* 0xCD */ 0, /* 0xCE */ 0, /* 0xCF */ 0, /* 0xD0 */ 0, /* 0xD1 */ 0, /* 0xD2 */ 0, /* 0xD3 */ 0, /* 0xD4 */ 0, /* 0xD5 */ 0, /* 0xD6 */ 0, /* 0xD7 */ 0, /* 0xD8 */ 0, /* 0xD9 */ 0, /* 0xDA */ 0, /* 0xDB */ 0, /* 0xDC */ 0, /* 0xDD */ 0, /* 0xDE */ 0, /* 0xDF */ 0, /* 0xE0 */ 0, /* 0xE1 */ 0, /* 0xE2 */ 0, /* 0xE3 */ 0, /* 0xE4 */ 0, /* 0xE5 */ 0, /* 0xE6 */ 0, /* 0xE7 */ 0, /* 0xE8 */ 0, /* 0xE9 */ 0, /* 0xEA */ 0, /* 0xEB */ 0, /* 0xEC */ cp932_decode_ED, /* 0xED */ cp932_decode_EE, /* 0xEE */ 0, /* 0xEF */ 0, /* 0xF0 */ 0, /* 0xF1 */ 0, /* 0xF2 */ 0, /* 0xF3 */ 0, /* 0xF4 */ 0, /* 0xF5 */ 0, /* 0xF6 */ 0, /* 0xF7 */ 0, /* 0xF8 */ 0, /* 0xF9 */ cp932_decode_FA, /* 0xFA */ cp932_decode_FB, /* 0xFB */ cp932_decode_FC, /* 0xFC */ 0, /* 0xFD */ 0, /* 0xFE */ 0, /* 0xFF */ }; #define CP932_TWEAKUNIMAP(umap) \ (umap)[0x22][0x1a] = NOCHAR; \ (umap)[0x22][0x20] = NOCHAR; \ (umap)[0x22][0x29] = NOCHAR; \ (umap)[0x22][0x2a] = NOCHAR; \ (umap)[0x22][0x2b] = NOCHAR; \ (umap)[0x22][0x35] = NOCHAR; \ (umap)[0x22][0x52] = NOCHAR; \ (umap)[0x22][0x61] = NOCHAR; \ (umap)[0x22][0xa5] = NOCHAR; 1.1 cjkcodecs/src/map_jisx0208.h Index: map_jisx0208.h =================================================================== /* * $Id: map_jisx0208.h,v 1.1 2003/04/22 19:25:35 perky Exp $ */ static const Py_UNICODE jisx0208_decode_21[94] = { /* 21::21-7E */ 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, 0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0x005c, 0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c, 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0x00f7, 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04, 0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, }; static const Py_UNICODE jisx0208_decode_22[94] = { /* 22::21-7E */ 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 0x222b, 0x222c, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, 0x00b6, UNIINV, UNIINV, UNIINV, UNIINV, 0x25ef, }; static const Py_UNICODE jisx0208_decode_23[94] = { /* 23::21-7E */ UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, UNIINV, UNIINV, UNIINV, UNIINV, }; static const Py_UNICODE jisx0208_decode_24[94] = { /* 24::21-7E */ 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; static const Py_UNICODE jisx0208_decode_25[94] = { /* 25::21-7E */ 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; static const Py_UNICODE jisx0208_decode_26[94] = { /* 26::21-7E */ 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; static const Py_UNICODE jisx0208_decode_27[94] = { /* 27::21-7E */ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; static const Py_UNICODE jisx0208_decode_28[94] = { /* 28::21-7E */ 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; static const Py_UNICODE jisx0208_decode_30[94] = { /* 30::21-7E */ 0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, 0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, 0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, 0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f, 0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d, 0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937, 0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905, 0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e, 0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df, 0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32, 0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0, 0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, }; static const Py_UNICODE jisx0208_decode_31[94] = { /* 31::21-7E */ 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf, 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893, 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5, 0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2, 0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3, 0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834, 0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5, 0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x5712, 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf, 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276, 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a, 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, }; static const Py_UNICODE jisx0208_decode_32[94] = { /* 32::21-7E */ 0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, 0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, 0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, 0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d, 0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6, 0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b, 0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304, 0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6, 0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b, 0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb, 0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a, 0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, }; static const Py_UNICODE jisx0208_decode_33[94] = { /* 33::21-7E */ 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75, 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916, 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb, 0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3, 0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1, 0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a, 0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66, 0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x6a7f, 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b, 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6, 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc, 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, }; static const Py_UNICODE jisx0208_decode_34[94] = { /* 34::21-7E */ 0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, 0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, 0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, 0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57, 0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff, 0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e, 0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2, 0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc, 0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811, 0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa, 0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee, 0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, }; static const Py_UNICODE jisx0208_decode_35[94] = { /* 35::21-7E */ 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63, 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc, 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993, 0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947, 0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409, 0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd, 0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7, 0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x673d, 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08, 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8, 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, }; static const Py_UNICODE jisx0208_decode_36[94] = { /* 36::21-7E */ 0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, 0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, 0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, 0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1, 0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d, 0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4, 0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981, 0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39, 0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a, 0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2, 0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047, 0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, }; static const Py_UNICODE jisx0208_decode_37[94] = { /* 37::21-7E */ 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688, 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab, 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2, 0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951, 0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a, 0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c, 0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63, 0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x5287, 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a, 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039, 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805, 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, }; static const Py_UNICODE jisx0208_decode_38[94] = { /* 38::21-7E */ 0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, 0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, 0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, 0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00, 0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1, 0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56, 0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87, 0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d, 0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7, 0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e, 0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c, 0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, }; static const Py_UNICODE jisx0208_decode_39[94] = { /* 39::21-7E */ 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f, 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18, 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643, 0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69, 0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05, 0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154, 0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc, 0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x9805, 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5, 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a, 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170, 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, }; static const Py_UNICODE jisx0208_decode_3A[94] = { /* 3A::21-7E */ 0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, 0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, 0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, 0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df, 0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9, 0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73, 0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e, 0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750, 0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4, 0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b, 0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f, 0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, }; static const Py_UNICODE jisx0208_decode_3B[94] = { /* 3B::21-7E */ 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1, 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09, 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6, 0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178, 0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f, 0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9, 0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307, 0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x6b7b, 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2, 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee, 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d, 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, }; static const Py_UNICODE jisx0208_decode_3C[94] = { /* 3C::21-7E */ 0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, 0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, 0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, 0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be, 0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61, 0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c, 0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7, 0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c, 0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6, 0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b, 0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388, 0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, }; static const Py_UNICODE jisx0208_decode_3D[94] = { /* 3D::21-7E */ 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0, 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846, 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6, 0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4, 0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919, 0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa, 0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c, 0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x6e96, 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6, 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72, 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f, 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, }; static const Py_UNICODE jisx0208_decode_3E[94] = { /* 3E::21-7E */ 0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, 0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, 0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, 0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f, 0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167, 0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11, 0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3, 0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266, 0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57, 0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5, 0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8, 0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, }; static const Py_UNICODE jisx0208_decode_3F[94] = { /* 3F::21-7E */ 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6, 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507, 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b, 0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e, 0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab, 0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875, 0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663, 0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x9017, 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b, 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e, 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e, 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, }; static const Py_UNICODE jisx0208_decode_40[94] = { /* 40::21-7E */ 0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, 0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, 0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, 0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93, 0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106, 0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3, 0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f, 0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83, 0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148, 0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247, 0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c, 0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, }; static const Py_UNICODE jisx0208_decode_41[94] = { /* 41::21-7E */ 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce, 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d, 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce, 0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9, 0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44, 0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc, 0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64, 0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x64cd, 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89, 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349, 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d, 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, }; static const Py_UNICODE jisx0208_decode_42[94] = { /* 42::21-7E */ 0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, 0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, 0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, 0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a, 0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1, 0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe, 0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff, 0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000, 0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c, 0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85, 0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438, 0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, }; static const Py_UNICODE jisx0208_decode_43[94] = { /* 43::21-7E */ 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea, 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39, 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1, 0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6, 0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696, 0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b, 0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718, 0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x9010, 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99, 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b, 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457, 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, }; static const Py_UNICODE jisx0208_decode_44[94] = { /* 44::21-7E */ 0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, 0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, 0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, 0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88, 0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc, 0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb, 0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f, 0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3, 0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448, 0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c, 0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b, 0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, }; static const Py_UNICODE jisx0208_decode_45[94] = { /* 45::21-7E */ 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575, 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9, 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55, 0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9, 0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835, 0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b, 0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa, 0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x51cd, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b, 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7, 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977, 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, }; static const Py_UNICODE jisx0208_decode_46[94] = { /* 46::21-7E */ 0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, 0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, 0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, 0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97, 0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec, 0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6, 0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566, 0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948, 0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a, 0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf, 0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1, 0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, }; static const Py_UNICODE jisx0208_decode_47[94] = { /* 47::21-7E */ 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1, 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5, 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc, 0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2, 0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2, 0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3, 0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc, 0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x6973, 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f, 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf, 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd, 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, }; static const Py_UNICODE jisx0208_decode_48[94] = { /* 48::21-7E */ 0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, 0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, 0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, 0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db, 0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af, 0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6, 0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0, 0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c, 0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2, 0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9, 0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e, 0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, }; static const Py_UNICODE jisx0208_decode_49[94] = { /* 49::21-7E */ 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d, 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867, 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19, 0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf, 0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed, 0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3, 0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66, 0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x65a7, 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c, 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66, 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a, 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, }; static const Py_UNICODE jisx0208_decode_4A[94] = { /* 4A::21-7E */ 0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, 0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, 0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, 0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a, 0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb, 0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f, 0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf, 0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703, 0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893, 0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8, 0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29, 0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, }; static const Py_UNICODE jisx0208_decode_4B[94] = { /* 4B::21-7E */ 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c, 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd, 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8, 0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2, 0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e, 0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2, 0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86, 0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x6469, 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce, 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52, 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4, 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, }; static const Py_UNICODE jisx0208_decode_4C[94] = { /* 4C::21-7E */ 0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, 0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, 0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, 0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e, 0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d, 0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302, 0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499, 0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24, 0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301, 0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2, 0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3, 0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, }; static const Py_UNICODE jisx0208_decode_4D[94] = { /* 4D::21-7E */ 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5, 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c, 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091, 0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89, 0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da, 0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194, 0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21, 0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x6c83, 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765, 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71, 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229, 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, }; static const Py_UNICODE jisx0208_decode_4E[94] = { /* 4E::21-7E */ 0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, 0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, 0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, 0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee, 0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7, 0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1, 0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a, 0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e, 0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2, 0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62, 0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b, 0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, }; static const Py_UNICODE jisx0208_decode_4F[94] = { /* 4F::21-7E */ 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2, 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c, 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e, 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6, 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0, 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900, 0x6e7e, 0x7897, 0x8155, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, UNIINV, }; static const Py_UNICODE jisx0208_decode_50[94] = { /* 50::21-7E */ 0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, 0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, 0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, 0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede, 0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d, 0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69, 0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf, 0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5, 0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6, 0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043, 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c, 0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, }; static const Py_UNICODE jisx0208_decode_51[94] = { /* 51::21-7E */ 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed, 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116, 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b, 0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169, 0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f, 0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9, 0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd, 0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x51f0, 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a, 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e, 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, }; static const Py_UNICODE jisx0208_decode_52[94] = { /* 52::21-7E */ 0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, 0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, 0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, 0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, 0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e, 0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5, 0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc, 0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440, 0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e, 0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492, 0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2, 0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, }; static const Py_UNICODE jisx0208_decode_53[94] = { /* 53::21-7E */ 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6, 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539, 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557, 0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f, 0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9, 0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4, 0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9, 0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x566b, 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0, 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc, 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7, 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, }; static const Py_UNICODE jisx0208_decode_54[94] = { /* 54::21-7E */ 0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, 0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, 0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, 0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3, 0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821, 0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885, 0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae, 0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc, 0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd, 0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d, 0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a, 0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969, }; static const Py_UNICODE jisx0208_decode_55[94] = { /* 55::21-7E */ 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6, 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11, 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36, 0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd, 0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c, 0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43, 0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69, 0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x5b83, 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4, 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3, 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28, 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, }; static const Py_UNICODE jisx0208_decode_56[94] = { /* 56::21-7E */ 0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, 0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, 0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, 0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f, 0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c, 0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84, 0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7, 0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb, 0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36, 0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f, 0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f, 0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, }; static const Py_UNICODE jisx0208_decode_57[94] = { /* 57::21-7E */ 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8, 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe, 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29, 0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51, 0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83, 0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99, 0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4, 0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x6019, 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026, 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a, 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b, 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, }; static const Py_UNICODE jisx0208_decode_58[94] = { /* 58::21-7E */ 0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, 0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, 0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, 0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147, 0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134, 0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a, 0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153, 0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a, 0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8, 0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3, 0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200, 0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b, }; static const Py_UNICODE jisx0208_decode_59[94] = { /* 59::21-7E */ 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241, 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282, 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294, 0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8, 0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c, 0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350, 0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab, 0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x6369, 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6, 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d, 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a, 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, }; static const Py_UNICODE jisx0208_decode_5A[94] = { /* 5A::21-7E */ 0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, 0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, 0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, 0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536, 0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e, 0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f, 0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2, 0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603, 0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644, 0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f, 0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698, 0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, }; static const Py_UNICODE jisx0208_decode_5B[94] = { /* 5B::21-7E */ 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9, 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727, 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, 0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9, 0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7, 0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de, 0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c, 0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x68b3, 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad, 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5, 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908, 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, }; static const Py_UNICODE jisx0208_decode_5C[94] = { /* 5C::21-7E */ 0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, 0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, 0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, 0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961, 0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf, 0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb, 0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4, 0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2, 0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a, 0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36, 0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22, 0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, }; static const Py_UNICODE jisx0208_decode_5D[94] = { /* 5D::21-7E */ 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac, 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05, 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37, 0x76dc, 0... [truncated message content] |
From: Hye-Shik C. <pe...@us...> - 2003-04-22 19:24:28
|
perky 03/04/22 12:24:25 Modified: tools genmap_support.py Added: tools genmap_japanese.py Removed: tools genmap_ja_codecs.py Log: Change to new framework Revision Changes Path 1.2 +4 -8 cjkcodecs/tools/genmap_support.py Index: genmap_support.py =================================================================== RCS file: /cvsroot/koco/cjkcodecs/tools/genmap_support.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- genmap_support.py 20 Apr 2003 17:35:32 -0000 1.1 +++ genmap_support.py 22 Apr 2003 19:24:25 -0000 1.2 @@ -26,25 +26,21 @@ # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -# $Id: genmap_support.py,v 1.1 2003/04/20 17:35:32 perky Exp $ +# $Id: genmap_support.py,v 1.2 2003/04/22 19:24:25 perky Exp $ # import re COPYRIGHT_HEADER = """\ /* - * %(filename)s - * Mapping Tables for %(encodingnames)s - * - * Generated from %(sourcename)s as of %(sourceversion)s - * $Id: genmap_support.py,v 1.1 2003/04/20 17:35:32 perky Exp $ + * $Id: genmap_support.py,v 1.2 2003/04/22 19:24:25 perky Exp $ */ """ re_UNIMAPDATE = re.compile('Date:\s*([ a-zA-Z0-9/]*)') re_UNIMAPVERSION= re.compile('Table version:\s*([0-9.]+)') -def printcopyright(fo, **data): - print >> fo, COPYRIGHT_HEADER % data +def printcopyright(fo): + print >> fo, COPYRIGHT_HEADER def genmap_decode(fo, prefix, c1range, c2range, dmap, onlymask=()): c2width = c2range[1] - c2range[0] + 1 1.1 cjkcodecs/tools/genmap_japanese.py Index: genmap_japanese.py =================================================================== # # genmap_ja_codecs.py: Japanese Codecs Map Generator # # Copyright (C) 2003 Hye-Shik Chang <pe...@Fr...>. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # $Id: genmap_japanese.py,v 1.1 2003/04/22 19:24:24 perky Exp $ # from genmap_support import * JISX0208_C1 = (0x21, 0x74) JISX0208_C2 = (0x21, 0x7e) JISX0212_C1 = (0x22, 0x6d) JISX0212_C2 = (0x21, 0x7e) CP932P0_C1 = (0x81, 0x81) # patches between shift-jis and cp932 CP932P0_C2 = (0x5f, 0xca) CP932P1_C1 = (0x87, 0x87) # CP932 P1 CP932P1_C2 = (0x40, 0x9c) CP932P2_C1 = (0xed, 0xfc) # CP932 P2 CP932P2_C2 = (0x40, 0xfc) try: jisx0208file = open('JIS0208.TXT') except IOError: print "=>> Please download mapping table from http://www.unicode." \ "org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXT" raise SystemExit try: jisx0212file = open('JIS0212.TXT') except IOError: print "=>> Please download mapping table from http://www.unicode." \ "org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0212.TXT" raise SystemExit try: cp932file = open('CP932.TXT') except IOError: print "=>> Please download mapping table from http://www.unicode." \ "org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT" raise SystemExit print "Loading Mapping File..." jisx0208datever, sjisdecmap = loadmap(jisx0208file, natcol=0, unicol=2) jisx0208datever, jisx0208decmap = loadmap(jisx0208file, natcol=1, unicol=2) jisx0212datever, jisx0212decmap = loadmap(jisx0212file) cp932datever, cp932decmap = loadmap(cp932file) sjisencmap, cp932encmap = {}, {} cp932diff = {} for c1, m in cp932decmap.items(): for c2, code in m.items(): cp932encmap[code] = (c1, c2) if sjisdecmap.has_key(c1) and sjisdecmap[c1].has_key(c2): sjisencmap[sjisdecmap[c1][c2]] = (c1, c2) if sjisdecmap[c1][c2] != code: cp932diff[(c1, c2)] = (sjisdecmap[c1][c2], code) else: del cp932decmap[c1][c2] if not cp932decmap[c1]: del cp932decmap[c1] difmap = [] for uni, (c1, c2) in cp932encmap.iteritems(): if sjisencmap.has_key(uni): s1, s2 = sjisencmap[uni] if (s1, s2) != (c1, c2): difmap.append(uni) omap = open("map_jisx0208.h", "w") printcopyright(omap) print "Generating JIS X 0208 decode map..." genmap_decode(omap, "jisx0208_decode", JISX0208_C1, JISX0208_C2, jisx0208decmap) print "Generating JIS X 0208 decode map index..." print_decmapindex(omap, "jisx0208_decode", jisx0208decmap, rng=(0, 128)) omap = open("map_jisx0212.h", "w") printcopyright(omap) print "Generating JIS X 0212 decode map..." genmap_decode(omap, "jisx0212_decode", JISX0212_C1, JISX0212_C2, jisx0212decmap) print "Generating JIS X 0212 decode map index..." print_decmapindex(omap, "jisx0212_decode", jisx0212decmap, rng=(0, 128)) omap = open("map_cp932.h", "w") printcopyright(omap) print "Generating CP932 decode map..." genmap_decode(omap, "cp932_decode", CP932P0_C1, CP932P0_C2, cp932decmap) genmap_decode(omap, "cp932_decode", CP932P1_C1, CP932P1_C2, cp932decmap) genmap_decode(omap, "cp932_decode", CP932P2_C1, CP932P2_C2, cp932decmap) print "Generating CP932 decode map index..." print_decmapindex(omap, "cp932_decode", cp932decmap) print "Generating CP932 Tweaks..." if difmap: print >> omap, "#define CP932_TWEAKUNIMAP(umap)", for uni in difmap: print >> omap, "\\" print >> omap, "\t(umap)[0x%02x][0x%02x] = NOCHAR;" % ( uni >> 8, uni & 0xFF), print >> omap print "\nDone!" # ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-04-20 22:18:05
|
perky 03/04/20 15:18:03 Modified: . README Log: Mention about python2.3a2 incompatiblity Revision Changes Path 1.2 +11 -1 iconvcodec/README Index: README =================================================================== RCS file: /cvsroot/koco/iconvcodec/README,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- README 20 Apr 2003 21:09:00 -0000 1.1 +++ README 20 Apr 2003 22:18:02 -0000 1.2 @@ -2,7 +2,7 @@ ============================== Copyright(C) Hye-Shik Chang, 2003. -$Id: README,v 1.1 2003/04/20 21:09:00 perky Exp $ +$Id: README,v 1.2 2003/04/20 22:18:02 perky Exp $ @@ -43,6 +43,16 @@ (default) You can specify another options for distutils, also. + + +Notes +----- + +If you are using Python 2.3a2, you'll need to delete 2 files to run iconvcodec +correctly: + + ${PREFIX}/lib/python2.3/encodings/iconv_codec.py{,s} for POSIX users + C:\Python23\Lib\encodings\iconv_codec.py{,s} for Windows users Author |
From: Hye-Shik C. <pe...@us...> - 2003-04-20 21:40:08
|
perky 03/04/20 14:40:06 Modified: . _iconv_codec.c Log: Python/win32 declares Py_UNICODE_USING as null macro Revision Changes Path 1.4 +2 -2 iconvcodec/_iconv_codec.c Index: _iconv_codec.c =================================================================== RCS file: /cvsroot/koco/iconvcodec/_iconv_codec.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- _iconv_codec.c 20 Apr 2003 20:45:34 -0000 1.3 +++ _iconv_codec.c 20 Apr 2003 21:40:05 -0000 1.4 @@ -24,14 +24,14 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: _iconv_codec.c,v 1.3 2003/04/20 20:45:34 perky Exp $ + * $Id: _iconv_codec.c,v 1.4 2003/04/20 21:40:05 perky Exp $ */ #include "Python.h" #include <iconv.h> #include "_iconv_codec_compat.h" -#if Py_USING_UNICODE +#ifdef Py_USING_UNICODE # if Py_UNICODE_SIZE == 2 # define UCS_N "UCS-2" # define MBENCODED_LENGTH_MAX 4 |
From: Hye-Shik C. <pe...@us...> - 2003-04-20 21:09:03
|
perky 03/04/20 14:09:02 Modified: . setup.py Added: . MANIFEST.in README Log: Add distutils files Revision Changes Path 1.3 +3 -5 iconvcodec/setup.py Index: setup.py =================================================================== RCS file: /cvsroot/koco/iconvcodec/setup.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- setup.py 20 Apr 2003 18:37:38 -0000 1.2 +++ setup.py 20 Apr 2003 21:09:00 -0000 1.3 @@ -25,7 +25,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $Id: setup.py,v 1.2 2003/04/20 18:37:38 perky Exp $ +# $Id: setup.py,v 1.3 2003/04/20 21:09:00 perky Exp $ # import sys @@ -67,10 +67,7 @@ class Install(install): def initialize_options(self): install.initialize_options(self) - if sys.hexversion >= 0x2010000: - self.extra_path = ("iconv_codec", "import iconv_codec") - else: - self.extra_path = "iconv_codec" + self.extra_path = ("iconv_codec", "import iconv_codec") def finalize_options(self): org_install_lib = self.install_lib install.finalize_options(self) @@ -82,6 +79,7 @@ author = "Hye-Shik Chang", author_email = "pe...@Fr...", cmdclass = {'install': Install}, + url = 'http://sourceforge.net/projects/koco/', py_modules = ['iconv_codec'], ext_modules = [ Extension("_iconv_codec", 1.1 iconvcodec/MANIFEST.in Index: MANIFEST.in =================================================================== # $Id: MANIFEST.in,v 1.1 2003/04/20 21:09:00 perky Exp $ include COPYRIGHT MANIFEST.in AUTHORS README include test_iconv_codec.py _iconv_codec_compat.h 1.1 iconvcodec/README Index: README =================================================================== Python Iconv Codec version 1.0 ============================== Copyright(C) Hye-Shik Chang, 2003. $Id: README,v 1.1 2003/04/20 21:09:00 perky Exp $ Introduction ------------ This package provides a Universal Unicode Codec for Python. Requirement ----------- This package requires Python 2.1+. Compatibilities --------------- The following iconv implementations are known to be compatible with iconvcodec: - GNU libiconv: http://www.gnu.org/software/libiconv/ (recommended) - FreeBSD iconv: http://www.freshports.org/converters/iconv/ - GNU libc - Solaris libc - HP-UX libc Installation ------------ python setup.py install [options ...] 'options' are: --with-libc Force to build with iconv in the libc --with-libiconv[=path] Use a separated libiconv on the path (default) You can specify another options for distutils, also. Author ------ Hye-Shik Chang <pe...@Fr...> Any comments, suggestions, and/or patches are very welcome. Thank you for using iconvcodec! |
From: Hye-Shik C. <pe...@us...> - 2003-04-20 20:48:12
|
perky 03/04/20 13:48:11 Modified: . test_iconv_codec.py Log: Don't test error callbacks on python2.2 and under Revision Changes Path 1.2 +44 -43 iconvcodec/test_iconv_codec.py Index: test_iconv_codec.py =================================================================== RCS file: /cvsroot/koco/iconvcodec/test_iconv_codec.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- test_iconv_codec.py 20 Apr 2003 18:17:56 -0000 1.1 +++ test_iconv_codec.py 20 Apr 2003 20:48:06 -0000 1.2 @@ -24,12 +24,12 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $Id: test_iconv_codec.py,v 1.1 2003/04/20 18:17:56 perky Exp $ +# $Id: test_iconv_codec.py,v 1.2 2003/04/20 20:48:06 perky Exp $ from StringIO import StringIO import sys, codecs import unittest -from encodings import iconv_codec +import iconv_codec from test import test_support teststring_euc_kr = ( @@ -121,47 +121,48 @@ else: self.assertRaises(UnicodeError, func, source, scheme) - def test_xmlcharrefreplace(self): - if self.has_iso10646: - return - - s = u"\u0b13\u0b23\u0b60 nd eggs" - self.assertEqual( - self.encode(s, "xmlcharrefreplace")[0], - "ଓଣୠ nd eggs" - ) - - def test_customreplace(self): - if self.has_iso10646: - return - - import htmlentitydefs - - names = {} - for (key, value) in htmlentitydefs.entitydefs.items(): - if len(value)==1: - names[value.decode('latin-1')] = self.decode(key)[0] - else: - names[unichr(int(value[2:-1]))] = self.decode(key)[0] - - def xmlcharnamereplace(exc): - if not isinstance(exc, UnicodeEncodeError): - raise TypeError("don't know how to handle %r" % exc) - l = [] - for c in exc.object[exc.start:exc.end]: - try: - l.append(u"&%s;" % names[c]) - except KeyError: - l.append(u"&#%d;" % ord(c)) - return (u"".join(l), exc.end) - - codecs.register_error( - "test.xmlcharnamereplace", xmlcharnamereplace) - - sin = u"\xab\u211c\xbb = \u2329\u1234\u232a" - sout = "«ℜ» = ⟨ሴ⟩" - self.assertEqual(self.encode(sin, - "test.xmlcharnamereplace")[0], sout) + if sys.hexversion >= 0x02030000: + def test_xmlcharrefreplace(self): + if self.has_iso10646: + return + + s = u"\u0b13\u0b23\u0b60 nd eggs" + self.assertEqual( + self.encode(s, "xmlcharrefreplace")[0], + "ଓଣୠ nd eggs" + ) + + def test_customreplace(self): + if self.has_iso10646: + return + + import htmlentitydefs + + names = {} + for (key, value) in htmlentitydefs.entitydefs.items(): + if len(value)==1: + names[value.decode('latin-1')] = self.decode(key)[0] + else: + names[unichr(int(value[2:-1]))] = self.decode(key)[0] + + def xmlcharnamereplace(exc): + if not isinstance(exc, UnicodeEncodeError): + raise TypeError("don't know how to handle %r" % exc) + l = [] + for c in exc.object[exc.start:exc.end]: + try: + l.append(u"&%s;" % names[c]) + except KeyError: + l.append(u"&#%d;" % ord(c)) + return (u"".join(l), exc.end) + + codecs.register_error( + "test.xmlcharnamereplace", xmlcharnamereplace) + + sin = u"\xab\u211c\xbb = \u2329\u1234\u232a" + sout = "«ℜ» = ⟨ሴ⟩" + self.assertEqual(self.encode(sin, + "test.xmlcharnamereplace")[0], sout) def test_streamreader(self): UTF8Writer = codecs.lookup('utf-8')[3] |
From: Hye-Shik C. <pe...@us...> - 2003-04-20 20:45:40
|
perky 03/04/20 13:45:34 Modified: . _iconv_codec.c _iconv_codec_compat.h iconv_codec.py Log: Get python2.1 compatibility Revision Changes Path 1.3 +106 -6 iconvcodec/_iconv_codec.c Index: _iconv_codec.c =================================================================== RCS file: /cvsroot/koco/iconvcodec/_iconv_codec.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- _iconv_codec.c 20 Apr 2003 19:45:18 -0000 1.2 +++ _iconv_codec.c 20 Apr 2003 20:45:34 -0000 1.3 @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: _iconv_codec.c,v 1.2 2003/04/20 19:45:18 perky Exp $ + * $Id: _iconv_codec.c,v 1.3 2003/04/20 20:45:34 perky Exp $ */ #include "Python.h" @@ -71,9 +71,11 @@ UNIINTERNAL_UTF_8, } uniinternal_type_t; +#ifndef LACKS_PYSTRING_FROMFORMAT static const char *uniinternal_type_names[] = { "unusable", "UCS", "UCS(SWAPPED)", "UTF-8", }; +#endif static struct { const char *encoding; @@ -203,7 +205,7 @@ else if (strcmp(errors, "replace") == 0) return ERROR_REPLACE; else -#ifdef HAVE_ERROR_CALLBACKS +#ifndef LACKS_ERROR_CALLBACKS return PyCodec_LookupError(errors); #else return NULL; @@ -268,7 +270,7 @@ iconv_t ic, IconvEncoderBuffer *buf, PyObject *errors, int esize) { -#ifdef HAVE_ERROR_CALLBACKS +#ifndef LACKS_ERROR_CALLBACKS PyObject *retobj = NULL, *retstr = NULL; PyObject *argsobj, *tobj; int retstrsize, newpos; @@ -353,7 +355,7 @@ start = (int)(buf->inbuf - buf->inbuf_top); end = start + esize; -#ifndef HAVE_ERROR_CALLBACKS +#ifdef LACKS_ERROR_CALLBACKS if (esize == 1) PyErr_Format(PyExc_UnicodeError, "'%s' codec can't encode byte '\\u%04x' in position %d: %s", @@ -731,6 +733,14 @@ {NULL, NULL}, }; +#ifdef OLD_STYLE_TYPE +static PyObject * +iconvencoder_getattr(PyObject *self, char *name) +{ + return Py_FindMethod(iconvencoder_methods, self, name); +} +#endif + static void iconvencoder_dealloc(IconvEncoderObject *self) { @@ -739,6 +749,7 @@ PyObject_Del(self); } +#ifndef LACKS_PYSTRING_FROMFORMAT static PyObject * iconvencoder_repr(IconvEncoderObject *self) { @@ -746,7 +757,9 @@ "<IconvEncoder from='%s' to='%s' mode='%s'>", self->unicode_encoding, self->encoding, uniinternal_type_names[self->unitype]); + return PyString_FromString("<IconvEncoder>"); } +#endif static PyTypeObject IconvEncoder_Type = { PyObject_HEAD_INIT(NULL) @@ -757,21 +770,34 @@ /* methods */ (destructor)iconvencoder_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ +#ifdef OLD_STYLE_TYPE + iconvencoder_getattr, /*tp_getattr*/ +#else 0, /*tp_getattr*/ +#endif 0, /*tp_setattr*/ 0, /*tp_compare*/ +#ifndef LACKS_PYSTRING_FROMFORMAT (reprfunc)iconvencoder_repr, /*tp_repr*/ +#else + 0, /*tp_repr*/ +#endif 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ (ternaryfunc)iconvencoder_call, /*tp_call*/ 0, /*tp_str*/ +#ifdef OLD_STYLE_TYPE + 0, /*tp_getattro*/ +#else PyObject_GenericGetAttr, /*tp_getattro*/ +#endif 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ iconvencoder_doc, /*tp_doc*/ +#ifndef OLD_STYLE_TYPE 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ @@ -779,6 +805,7 @@ 0, /*tp_iter*/ 0, /*tp_iterext*/ iconvencoder_methods, /*tp_methods*/ +#endif }; static int @@ -809,7 +836,7 @@ iconv_t ic, IconvDecoderBuffer *buf, PyObject *errors, int eno, int esize) { -#ifdef HAVE_ERROR_CALLBACKS +#ifndef LACKS_ERROR_CALLBACKS PyObject *argsobj, *retuni = NULL, *retobj = NULL; int retunisize, newpos; #endif @@ -851,7 +878,7 @@ start = (int)(buf->inbuf - buf->inbuf_top); end = start + esize; -#ifndef HAVE_ERROR_CALLBACKS +#ifdef LACKS_ERROR_CALLBACKS if (esize == 1) PyErr_Format(PyExc_UnicodeError, "'%s' codec can't decode byte 0x%02x in position %d: %s", @@ -1208,6 +1235,14 @@ {NULL, NULL}, }; +#ifdef OLD_STYLE_TYPE +static PyObject * +iconvdecoder_getattr(PyObject *self, char *name) +{ + return Py_FindMethod(iconvdecoder_methods, self, name); +} +#endif + static void iconvdecoder_dealloc(IconvDecoderObject *self) { @@ -1216,6 +1251,7 @@ PyObject_Del(self); } +#ifndef LACKS_PYSTRING_FROMFORMAT static PyObject * iconvdecoder_repr(IconvDecoderObject *self) { @@ -1223,7 +1259,9 @@ "<IconvDecoder from='%s' to='%s' mode='%s'>", self->encoding, self->unicode_encoding, uniinternal_type_names[self->unitype]); + return PyString_FromString("<IconvDecoder>"); } +#endif static PyTypeObject IconvDecoder_Type = { PyObject_HEAD_INIT(NULL) @@ -1234,21 +1272,34 @@ /* methods */ (destructor)iconvdecoder_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ +#ifdef OLD_STYLE_TYPE + iconvdecoder_getattr, /*tp_getattr*/ +#else 0, /*tp_getattr*/ +#endif 0, /*tp_setattr*/ 0, /*tp_compare*/ +#ifndef LACKS_PYSTRING_FROMFORMAT (reprfunc)iconvdecoder_repr, /*tp_repr*/ +#else + 0, /*tp_repr*/ +#endif 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ (ternaryfunc)iconvdecoder_call, /*tp_call*/ 0, /*tp_str*/ +#ifdef OLD_STYLE_TYPE + 0, /*tp_getattro*/ +#else PyObject_GenericGetAttr, /*tp_getattro*/ +#endif 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ iconvdecoder_doc, /*tp_doc*/ +#ifndef OLD_STYLE_TYPE 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ @@ -1256,6 +1307,7 @@ 0, /*tp_iter*/ 0, /*tp_iterext*/ iconvdecoder_methods, /*tp_methods*/ +#endif }; static PyObject * @@ -1463,6 +1515,14 @@ {NULL, NULL}, }; +#ifdef OLD_STYLE_TYPE +static PyObject * +iconvstreamreader_getattr(PyObject *self, char *name) +{ + return Py_FindMethod(iconvstreamreader_methods, self, name); +} +#endif + static void iconvstreamreader_dealloc(IconvStreamReaderObject *self) { @@ -1477,6 +1537,7 @@ PyObject_Del(self); } +#ifndef LACKS_PYSTRING_FROMFORMAT static PyObject * iconvstreamreader_repr(IconvStreamReaderObject *self) { @@ -1485,6 +1546,7 @@ self->codec->encoding, self->codec->unicode_encoding, uniinternal_type_names[self->codec->unitype]); } +#endif static PyTypeObject IconvStreamReader_Type = { PyObject_HEAD_INIT(NULL) @@ -1495,20 +1557,33 @@ /* methods */ (destructor)iconvstreamreader_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ +#ifdef OLD_STYLE_TYPE + iconvstreamreader_getattr, /*tp_getattr*/ +#else 0, /*tp_getattr*/ +#endif 0, /*tp_setattr*/ 0, /*tp_compare*/ +#ifndef LACKS_PYSTRING_FROMFORMAT (reprfunc)iconvstreamreader_repr, /*tp_repr*/ +#else + 0, /*tp_repr*/ +#endif 0, /*tp_as_nuiconver*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ +#ifdef OLD_STYLE_TYPE + 0, /*tp_getattro*/ +#else PyObject_GenericGetAttr, /*tp_getattro*/ +#endif 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ +#ifndef OLD_STYLE_TYPE 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ @@ -1517,6 +1592,7 @@ 0, /*tp_iter*/ 0, /*tp_iterext*/ iconvstreamreader_methods, /*tp_methods*/ +#endif }; static int @@ -1638,6 +1714,14 @@ {NULL, NULL}, }; +#ifdef OLD_STYLE_TYPE +static PyObject * +iconvstreamwriter_getattr(PyObject *self, char *name) +{ + return Py_FindMethod(iconvstreamwriter_methods, self, name); +} +#endif + static void iconvstreamwriter_dealloc(IconvStreamWriterObject *self) { @@ -1652,6 +1736,7 @@ PyObject_Del(self); } +#ifndef LACKS_PYSTRING_FROMFORMAT static PyObject * iconvstreamwriter_repr(IconvStreamWriterObject *self) { @@ -1660,6 +1745,7 @@ self->codec->unicode_encoding, self->codec->encoding, uniinternal_type_names[self->codec->unitype]); } +#endif static PyTypeObject IconvStreamWriter_Type = { PyObject_HEAD_INIT(NULL) @@ -1670,20 +1756,33 @@ /* methods */ (destructor)iconvstreamwriter_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ +#ifdef OLD_STYLE_TYPE + iconvstreamwriter_getattr, /*tp_getattr*/ +#else 0, /*tp_getattr*/ +#endif 0, /*tp_setattr*/ 0, /*tp_compare*/ +#ifndef LACKS_PYSTRING_FROMFORMAT (reprfunc)iconvstreamwriter_repr, /*tp_repr*/ +#else + 0, /*tp_repr*/ +#endif 0, /*tp_as_nuiconver*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ +#ifdef OLD_STYLE_TYPE + 0, /*tp_getattro*/ +#else PyObject_GenericGetAttr, /*tp_getattro*/ +#endif 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ +#ifndef OLD_STYLE_TYPE 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ @@ -1692,6 +1791,7 @@ 0, /*tp_iter*/ 0, /*tp_iterext*/ iconvstreamwriter_methods, /*tp_methods*/ +#endif }; static PyObject * 1.2 +16 -7 iconvcodec/_iconv_codec_compat.h Index: _iconv_codec_compat.h =================================================================== RCS file: /cvsroot/koco/iconvcodec/_iconv_codec_compat.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- _iconv_codec_compat.h 20 Apr 2003 19:45:19 -0000 1.1 +++ _iconv_codec_compat.h 20 Apr 2003 20:45:34 -0000 1.2 @@ -24,12 +24,12 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: _iconv_codec_compat.h,v 1.1 2003/04/20 19:45:19 perky Exp $ + * $Id: _iconv_codec_compat.h,v 1.2 2003/04/20 20:45:34 perky Exp $ */ -/* Versions that doesn't support Unicode */ -#if PY_VERSION_HEX < 0x02000000 -# error "Your Python version doesn't have a unicode support" +/* We don't support 2.0 and older */ +#if PY_VERSION_HEX < 0x02010000 +# error "iconv_codec requires python 2.1 or compatible" #endif /* PyDoc_VAR: For ~ Python 2.2 */ @@ -39,9 +39,18 @@ # define PyDoc_STR(str) str #endif -/* PEP293 Codec Error Callbacks: For Python 2.3 and over */ -#if PY_VERSION_HEX >= 0x02030000 -# define HAVE_ERROR_CALLBACKS 1 +/* PEP293 Codec Error Callbacks are only for Python 2.3 and over */ +#if PY_VERSION_HEX < 0x02030000 +# define LACKS_ERROR_CALLBACKS 1 +#endif + +/* Python 2.1 doesn't have sth */ +#if PY_VERSION_HEX < 0x02020000 +# define Py_USING_UNICODE 1 +# define Py_UNICODE_SIZE 2 +# define LACKS_PYSTRING_FROMFORMAT 1 +# define OLD_STYLE_TYPE 1 +# define METH_NOARGS METH_VARARGS #endif /* 1.2 +2 -1 iconvcodec/iconv_codec.py Index: iconv_codec.py =================================================================== RCS file: /cvsroot/koco/iconvcodec/iconv_codec.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- iconv_codec.py 20 Apr 2003 18:17:57 -0000 1.1 +++ iconv_codec.py 20 Apr 2003 20:45:34 -0000 1.2 @@ -24,8 +24,9 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $Id: iconv_codec.py,v 1.1 2003/04/20 18:17:57 perky Exp $ +# $Id: iconv_codec.py,v 1.2 2003/04/20 20:45:34 perky Exp $ +from __future__ import nested_scopes from _iconv_codec import makeencoder, makedecoder import codecs, sys |
From: Hye-Shik C. <pe...@us...> - 2003-04-20 19:45:21
|
perky 03/04/20 12:45:19 Modified: . _iconv_codec.c Added: . _iconv_codec_compat.h Log: Raise UnicodeError for 2.2 and under Revision Changes Path 1.2 +43 -6 iconvcodec/_iconv_codec.c Index: _iconv_codec.c =================================================================== RCS file: /cvsroot/koco/iconvcodec/_iconv_codec.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- _iconv_codec.c 20 Apr 2003 18:17:57 -0000 1.1 +++ _iconv_codec.c 20 Apr 2003 19:45:18 -0000 1.2 @@ -24,11 +24,12 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: _iconv_codec.c,v 1.1 2003/04/20 18:17:57 perky Exp $ + * $Id: _iconv_codec.c,v 1.2 2003/04/20 19:45:18 perky Exp $ */ #include "Python.h" #include <iconv.h> +#include "_iconv_codec_compat.h" #if Py_USING_UNICODE # if Py_UNICODE_SIZE == 2 @@ -202,7 +203,11 @@ else if (strcmp(errors, "replace") == 0) return ERROR_REPLACE; else +#ifdef HAVE_ERROR_CALLBACKS return PyCodec_LookupError(errors); +#else + return NULL; +#endif } #define UTF8NEXTCHAR(p) \ @@ -263,10 +268,13 @@ iconv_t ic, IconvEncoderBuffer *buf, PyObject *errors, int esize) { - PyObject *argsobj, *retobj = NULL, *tobj; - PyObject *retstr = NULL; +#ifdef HAVE_ERROR_CALLBACKS + PyObject *retobj = NULL, *retstr = NULL; + PyObject *argsobj, *tobj; + int retstrsize, newpos; +#endif const char *reason; - int retstrsize, newpos, start, end; + int start, end; if (errno == E2BIG) { RESERVE_ENCODEBUFFER(buf, -1); @@ -345,6 +353,18 @@ start = (int)(buf->inbuf - buf->inbuf_top); end = start + esize; +#ifndef HAVE_ERROR_CALLBACKS + if (esize == 1) + PyErr_Format(PyExc_UnicodeError, + "'%s' codec can't encode byte '\\u%04x' in position %d: %s", + self->encoding, *buf->inbuf, start, reason); + else + PyErr_Format(PyExc_UnicodeError, + "'%s' codec can't encode bytes in position %d-%d: %s", + self->encoding, start, end, reason); +errorexit: + return -1; +#else /* use cached exception object if available */ if (buf->excobj == NULL) { buf->excobj = PyUnicodeEncodeError_Create(self->encoding, @@ -427,6 +447,7 @@ Py_XDECREF(retobj); Py_XDECREF(retstr); return -1; +#endif } static int @@ -788,9 +809,12 @@ iconv_t ic, IconvDecoderBuffer *buf, PyObject *errors, int eno, int esize) { +#ifdef HAVE_ERROR_CALLBACKS + PyObject *argsobj, *retuni = NULL, *retobj = NULL; + int retunisize, newpos; +#endif const char *reason; - PyObject *argsobj, *retobj = NULL, *retuni = NULL; - int retunisize, newpos, start, end; + int start, end; if (PyErr_Occurred()) return -1; /* treat as an internal error */ @@ -827,6 +851,18 @@ start = (int)(buf->inbuf - buf->inbuf_top); end = start + esize; +#ifndef HAVE_ERROR_CALLBACKS + if (esize == 1) + PyErr_Format(PyExc_UnicodeError, + "'%s' codec can't decode byte 0x%02x in position %d: %s", + self->encoding, *buf->inbuf, start, reason); + else + PyErr_Format(PyExc_UnicodeError, + "'%s' codec can't decode bytes in position %d-%d: %s", + self->encoding, start, end, reason); +errorexit: + return -1; +#else /* use cached exception object if available */ if (buf->excobj == NULL) { buf->excobj = PyUnicodeDecodeError_Create( @@ -890,6 +926,7 @@ errorexit: Py_XDECREF(retobj); return -1; +#endif } static size_t 1.1 iconvcodec/_iconv_codec_compat.h Index: _iconv_codec_compat.h =================================================================== /* * _iconv_codec_compat.h: Iconv Codec Compatiblility Support * * Copyright (C) 2003 Hye-Shik Chang. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $Id: _iconv_codec_compat.h,v 1.1 2003/04/20 19:45:19 perky Exp $ */ /* Versions that doesn't support Unicode */ #if PY_VERSION_HEX < 0x02000000 # error "Your Python version doesn't have a unicode support" #endif /* PyDoc_VAR: For ~ Python 2.2 */ #if PY_VERSION_HEX < 0x02030000 # define PyDoc_VAR(name) static char name[] # define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str) # define PyDoc_STR(str) str #endif /* PEP293 Codec Error Callbacks: For Python 2.3 and over */ #if PY_VERSION_HEX >= 0x02030000 # define HAVE_ERROR_CALLBACKS 1 #endif /* * ex: ts=8 sts=4 et */ |