1*4887Schin /***********************************************************************
2*4887Schin *                                                                      *
3*4887Schin *               This software is part of the ast package               *
4*4887Schin *           Copyright (c) 1985-2007 AT&T Knowledge Ventures            *
5*4887Schin *                      and is licensed under the                       *
6*4887Schin *                  Common Public License, Version 1.0                  *
7*4887Schin *                      by AT&T Knowledge Ventures                      *
8*4887Schin *                                                                      *
9*4887Schin *                A copy of the License is available at                 *
10*4887Schin *            http://www.opensource.org/licenses/cpl1.0.txt             *
11*4887Schin *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
12*4887Schin *                                                                      *
13*4887Schin *              Information and Software Systems Research               *
14*4887Schin *                            AT&T Research                             *
15*4887Schin *                           Florham Park NJ                            *
16*4887Schin *                                                                      *
17*4887Schin *                 Glenn Fowler <gsf@research.att.com>                  *
18*4887Schin *                  David Korn <dgk@research.att.com>                   *
19*4887Schin *                   Phong Vo <kpv@research.att.com>                    *
20*4887Schin *                                                                      *
21*4887Schin ***********************************************************************/
22*4887Schin #pragma prototyped
23*4887Schin 
24*4887Schin /*
25*4887Schin  * Glenn Fowler
26*4887Schin  * AT&T Research
27*4887Schin  *
28*4887Schin  * dynamic single byte character code maps
29*4887Schin  */
30*4887Schin 
31*4887Schin #include <ast.h>
32*4887Schin #include <ccode.h>
33*4887Schin 
34*4887Schin #if !GENERATE
35*4887Schin 
36*4887Schin /*
37*4887Schin  * catenated CC_ASCII to CC_* character code map table
38*4887Schin  * order determined by CC_* index definitions
39*4887Schin  * old definition values/indices must not change!
40*4887Schin  * each table is followed by its inverse
41*4887Schin  */
42*4887Schin 
43*4887Schin static const unsigned char tab[] =
44*4887Schin {
45*4887Schin 
46*4887Schin  /* ascii => ascii */
47*4887Schin 
48*4887Schin  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
49*4887Schin  0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
50*4887Schin  0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
51*4887Schin  0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
52*4887Schin  0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
53*4887Schin  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
54*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
55*4887Schin  0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
56*4887Schin  0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
57*4887Schin  0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
58*4887Schin  0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
59*4887Schin  0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
60*4887Schin  0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
61*4887Schin  0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
62*4887Schin  0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
63*4887Schin  0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
64*4887Schin  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
65*4887Schin  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
66*4887Schin  0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
67*4887Schin  0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
68*4887Schin  0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
69*4887Schin  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
70*4887Schin  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
71*4887Schin  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
72*4887Schin  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
73*4887Schin  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
74*4887Schin  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
75*4887Schin  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
76*4887Schin  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
77*4887Schin  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
78*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
79*4887Schin  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
80*4887Schin 
81*4887Schin  /* ascii => ascii */
82*4887Schin 
83*4887Schin  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
84*4887Schin  0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
85*4887Schin  0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
86*4887Schin  0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
87*4887Schin  0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
88*4887Schin  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
89*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
90*4887Schin  0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
91*4887Schin  0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
92*4887Schin  0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
93*4887Schin  0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
94*4887Schin  0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
95*4887Schin  0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
96*4887Schin  0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
97*4887Schin  0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
98*4887Schin  0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
99*4887Schin  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
100*4887Schin  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
101*4887Schin  0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
102*4887Schin  0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
103*4887Schin  0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
104*4887Schin  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
105*4887Schin  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
106*4887Schin  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
107*4887Schin  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
108*4887Schin  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
109*4887Schin  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
110*4887Schin  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
111*4887Schin  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
112*4887Schin  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
113*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
114*4887Schin  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
115*4887Schin 
116*4887Schin  /* ascii => ebcdic */
117*4887Schin 
118*4887Schin  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
119*4887Schin  0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
120*4887Schin  0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
121*4887Schin  0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
122*4887Schin  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
123*4887Schin  0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
124*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
125*4887Schin  0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
126*4887Schin  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
127*4887Schin  0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
128*4887Schin  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
129*4887Schin  0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x9a, 0x6d,
130*4887Schin  0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
131*4887Schin  0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
132*4887Schin  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
133*4887Schin  0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0x5f, 0x07,
134*4887Schin  0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17,
135*4887Schin  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
136*4887Schin  0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
137*4887Schin  0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xe1,
138*4887Schin  0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
139*4887Schin  0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
140*4887Schin  0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
141*4887Schin  0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
142*4887Schin  0x76, 0x77, 0x78, 0x80, 0x8a, 0x8b, 0x8c, 0x8d,
143*4887Schin  0x8e, 0x8f, 0x90, 0x6a, 0x9b, 0x9c, 0x9d, 0x9e,
144*4887Schin  0x9f, 0xa0, 0xaa, 0xab, 0xac, 0x4a, 0xae, 0xaf,
145*4887Schin  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
146*4887Schin  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xa1, 0xbe, 0xbf,
147*4887Schin  0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb,
148*4887Schin  0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, 0xed,
149*4887Schin  0xee, 0xef, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
150*4887Schin 
151*4887Schin  /* ebcdic => ascii */
152*4887Schin 
153*4887Schin  0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
154*4887Schin  0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
155*4887Schin  0x10, 0x11, 0x12, 0x13, 0x9d, 0x85, 0x08, 0x87,
156*4887Schin  0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
157*4887Schin  0x80, 0x81, 0x82, 0x83, 0x84, 0x0a, 0x17, 0x1b,
158*4887Schin  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
159*4887Schin  0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
160*4887Schin  0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
161*4887Schin  0x20, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
162*4887Schin  0xa7, 0xa8, 0xd5, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
163*4887Schin  0x26, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
164*4887Schin  0xb0, 0xb1, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x7e,
165*4887Schin  0x2d, 0x2f, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
166*4887Schin  0xb8, 0xb9, 0xcb, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
167*4887Schin  0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1,
168*4887Schin  0xc2, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
169*4887Schin  0xc3, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
170*4887Schin  0x68, 0x69, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
171*4887Schin  0xca, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
172*4887Schin  0x71, 0x72, 0x5e, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
173*4887Schin  0xd1, 0xe5, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
174*4887Schin  0x79, 0x7a, 0xd2, 0xd3, 0xd4, 0x5b, 0xd6, 0xd7,
175*4887Schin  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
176*4887Schin  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0x5d, 0xe6, 0xe7,
177*4887Schin  0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
178*4887Schin  0x48, 0x49, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed,
179*4887Schin  0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
180*4887Schin  0x51, 0x52, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3,
181*4887Schin  0x5c, 0x9f, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
182*4887Schin  0x59, 0x5a, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
183*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
184*4887Schin  0x38, 0x39, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
185*4887Schin 
186*4887Schin  /* ascii => ebcdic-i */
187*4887Schin 
188*4887Schin  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
189*4887Schin  0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
190*4887Schin  0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
191*4887Schin  0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
192*4887Schin  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
193*4887Schin  0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
194*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
195*4887Schin  0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
196*4887Schin  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
197*4887Schin  0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
198*4887Schin  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
199*4887Schin  0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d,
200*4887Schin  0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
201*4887Schin  0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
202*4887Schin  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
203*4887Schin  0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07,
204*4887Schin  0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17,
205*4887Schin  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
206*4887Schin  0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
207*4887Schin  0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xe1,
208*4887Schin  0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
209*4887Schin  0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
210*4887Schin  0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
211*4887Schin  0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
212*4887Schin  0x76, 0x77, 0x78, 0x80, 0x8a, 0x8b, 0x8c, 0x8d,
213*4887Schin  0x8e, 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e,
214*4887Schin  0x9f, 0xa0, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
215*4887Schin  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
216*4887Schin  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
217*4887Schin  0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb,
218*4887Schin  0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, 0xed,
219*4887Schin  0xee, 0xef, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
220*4887Schin 
221*4887Schin  /* ebcdic-i => ascii */
222*4887Schin 
223*4887Schin  0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
224*4887Schin  0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
225*4887Schin  0x10, 0x11, 0x12, 0x13, 0x9d, 0x85, 0x08, 0x87,
226*4887Schin  0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
227*4887Schin  0x80, 0x81, 0x82, 0x83, 0x84, 0x0a, 0x17, 0x1b,
228*4887Schin  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
229*4887Schin  0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
230*4887Schin  0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
231*4887Schin  0x20, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
232*4887Schin  0xa7, 0xa8, 0x4a, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
233*4887Schin  0x26, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
234*4887Schin  0xb0, 0xb1, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e,
235*4887Schin  0x2d, 0x2f, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
236*4887Schin  0xb8, 0xb9, 0x6a, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
237*4887Schin  0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1,
238*4887Schin  0xc2, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
239*4887Schin  0xc3, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
240*4887Schin  0x68, 0x69, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
241*4887Schin  0xca, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
242*4887Schin  0x71, 0x72, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
243*4887Schin  0xd1, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
244*4887Schin  0x79, 0x7a, 0xd2, 0xd3, 0xd4, 0x5b, 0xd6, 0xd7,
245*4887Schin  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
246*4887Schin  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0x5d, 0xe6, 0xe7,
247*4887Schin  0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
248*4887Schin  0x48, 0x49, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed,
249*4887Schin  0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
250*4887Schin  0x51, 0x52, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3,
251*4887Schin  0x5c, 0x9f, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
252*4887Schin  0x59, 0x5a, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
253*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
254*4887Schin  0x38, 0x39, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
255*4887Schin 
256*4887Schin  /* ascii => ebcdic-o */
257*4887Schin 
258*4887Schin  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
259*4887Schin  0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
260*4887Schin  0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
261*4887Schin  0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
262*4887Schin  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
263*4887Schin  0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
264*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
265*4887Schin  0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
266*4887Schin  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
267*4887Schin  0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
268*4887Schin  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
269*4887Schin  0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d,
270*4887Schin  0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
271*4887Schin  0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
272*4887Schin  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
273*4887Schin  0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07,
274*4887Schin  0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17,
275*4887Schin  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
276*4887Schin  0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
277*4887Schin  0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff,
278*4887Schin  0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5,
279*4887Schin  0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc,
280*4887Schin  0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
281*4887Schin  0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,
282*4887Schin  0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
283*4887Schin  0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
284*4887Schin  0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
285*4887Schin  0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59,
286*4887Schin  0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
287*4887Schin  0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
288*4887Schin  0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
289*4887Schin  0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf,
290*4887Schin 
291*4887Schin  /* ebcdic-o => ascii */
292*4887Schin 
293*4887Schin  0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
294*4887Schin  0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
295*4887Schin  0x10, 0x11, 0x12, 0x13, 0x9d, 0x0a, 0x08, 0x87,
296*4887Schin  0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
297*4887Schin  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b,
298*4887Schin  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
299*4887Schin  0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
300*4887Schin  0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
301*4887Schin  0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
302*4887Schin  0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
303*4887Schin  0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
304*4887Schin  0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e,
305*4887Schin  0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
306*4887Schin  0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
307*4887Schin  0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
308*4887Schin  0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
309*4887Schin  0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
310*4887Schin  0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1,
311*4887Schin  0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
312*4887Schin  0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4,
313*4887Schin  0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
314*4887Schin  0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae,
315*4887Schin  0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
316*4887Schin  0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7,
317*4887Schin  0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
318*4887Schin  0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5,
319*4887Schin  0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
320*4887Schin  0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff,
321*4887Schin  0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
322*4887Schin  0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5,
323*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
324*4887Schin  0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f,
325*4887Schin 
326*4887Schin  /* ascii => ebcdic-s */
327*4887Schin 
328*4887Schin  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
329*4887Schin  0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
330*4887Schin  0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
331*4887Schin  0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
332*4887Schin  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
333*4887Schin  0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
334*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
335*4887Schin  0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
336*4887Schin  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
337*4887Schin  0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
338*4887Schin  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
339*4887Schin  0xe7, 0xe8, 0xe9, 0xbb, 0xbc, 0xbd, 0x6a, 0x6d,
340*4887Schin  0x4a, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
341*4887Schin  0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
342*4887Schin  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
343*4887Schin  0xa7, 0xa8, 0xa9, 0xfb, 0x4f, 0xfd, 0xff, 0x07,
344*4887Schin  0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17,
345*4887Schin  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
346*4887Schin  0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
347*4887Schin  0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0x5f,
348*4887Schin  0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xd0, 0xb5,
349*4887Schin  0x79, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xa1,
350*4887Schin  0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
351*4887Schin  0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,
352*4887Schin  0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
353*4887Schin  0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
354*4887Schin  0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
355*4887Schin  0x80, 0xe0, 0xfe, 0xdd, 0xfc, 0xad, 0xae, 0x59,
356*4887Schin  0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
357*4887Schin  0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
358*4887Schin  0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
359*4887Schin  0x70, 0xc0, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf,
360*4887Schin 
361*4887Schin  /* ebcdic-s => ascii */
362*4887Schin 
363*4887Schin  0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
364*4887Schin  0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
365*4887Schin  0x10, 0x11, 0x12, 0x13, 0x9d, 0x0a, 0x08, 0x87,
366*4887Schin  0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
367*4887Schin  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b,
368*4887Schin  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
369*4887Schin  0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
370*4887Schin  0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
371*4887Schin  0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
372*4887Schin  0xe7, 0xf1, 0x60, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
373*4887Schin  0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
374*4887Schin  0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x9f,
375*4887Schin  0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
376*4887Schin  0xc7, 0xd1, 0x5e, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
377*4887Schin  0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
378*4887Schin  0xcc, 0xa8, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
379*4887Schin  0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
380*4887Schin  0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1,
381*4887Schin  0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
382*4887Schin  0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4,
383*4887Schin  0xb5, 0xaf, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
384*4887Schin  0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae,
385*4887Schin  0xa2, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
386*4887Schin  0xbd, 0xbe, 0xac, 0x5b, 0x5c, 0x5d, 0xb4, 0xd7,
387*4887Schin  0xf9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
388*4887Schin  0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5,
389*4887Schin  0xa6, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
390*4887Schin  0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xdb, 0xfa, 0xff,
391*4887Schin  0xd9, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
392*4887Schin  0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5,
393*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
394*4887Schin  0x38, 0x39, 0xb3, 0x7b, 0xdc, 0x7d, 0xda, 0x7e,
395*4887Schin 
396*4887Schin  /* ascii => ebcdic-h */
397*4887Schin 
398*4887Schin  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
399*4887Schin  0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
400*4887Schin  0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
401*4887Schin  0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
402*4887Schin  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
403*4887Schin  0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
404*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
405*4887Schin  0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
406*4887Schin  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
407*4887Schin  0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
408*4887Schin  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
409*4887Schin  0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d,
410*4887Schin  0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
411*4887Schin  0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
412*4887Schin  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
413*4887Schin  0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07,
414*4887Schin  0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17,
415*4887Schin  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
416*4887Schin  0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
417*4887Schin  0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff,
418*4887Schin  0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5,
419*4887Schin  0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc,
420*4887Schin  0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
421*4887Schin  0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,
422*4887Schin  0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
423*4887Schin  0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
424*4887Schin  0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
425*4887Schin  0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59,
426*4887Schin  0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
427*4887Schin  0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
428*4887Schin  0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
429*4887Schin  0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf,
430*4887Schin 
431*4887Schin  /* ebcdic-h => ascii */
432*4887Schin 
433*4887Schin  0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
434*4887Schin  0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
435*4887Schin  0x10, 0x11, 0x12, 0x13, 0x9d, 0x85, 0x08, 0x87,
436*4887Schin  0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
437*4887Schin  0x80, 0x81, 0x82, 0x83, 0x84, 0x0a, 0x17, 0x1b,
438*4887Schin  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
439*4887Schin  0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
440*4887Schin  0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
441*4887Schin  0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
442*4887Schin  0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
443*4887Schin  0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
444*4887Schin  0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac,
445*4887Schin  0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
446*4887Schin  0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
447*4887Schin  0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
448*4887Schin  0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
449*4887Schin  0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
450*4887Schin  0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1,
451*4887Schin  0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
452*4887Schin  0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4,
453*4887Schin  0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
454*4887Schin  0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae,
455*4887Schin  0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
456*4887Schin  0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7,
457*4887Schin  0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
458*4887Schin  0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5,
459*4887Schin  0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
460*4887Schin  0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff,
461*4887Schin  0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
462*4887Schin  0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5,
463*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
464*4887Schin  0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f,
465*4887Schin 
466*4887Schin  /* ascii => ebcdic-m */
467*4887Schin 
468*4887Schin  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
469*4887Schin  0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
470*4887Schin  0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
471*4887Schin  0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
472*4887Schin  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
473*4887Schin  0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
474*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
475*4887Schin  0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
476*4887Schin  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
477*4887Schin  0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
478*4887Schin  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
479*4887Schin  0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d,
480*4887Schin  0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
481*4887Schin  0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
482*4887Schin  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
483*4887Schin  0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07,
484*4887Schin  0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17,
485*4887Schin  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
486*4887Schin  0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
487*4887Schin  0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xdf,
488*4887Schin  0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5,
489*4887Schin  0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc,
490*4887Schin  0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
491*4887Schin  0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,
492*4887Schin  0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
493*4887Schin  0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
494*4887Schin  0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
495*4887Schin  0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59,
496*4887Schin  0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
497*4887Schin  0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
498*4887Schin  0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
499*4887Schin  0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xff,
500*4887Schin 
501*4887Schin  /* ebcdic-m => ascii */
502*4887Schin 
503*4887Schin  0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
504*4887Schin  0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
505*4887Schin  0x10, 0x11, 0x12, 0x13, 0x9d, 0x0a, 0x08, 0x87,
506*4887Schin  0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
507*4887Schin  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b,
508*4887Schin  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
509*4887Schin  0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
510*4887Schin  0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
511*4887Schin  0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
512*4887Schin  0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
513*4887Schin  0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
514*4887Schin  0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e,
515*4887Schin  0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
516*4887Schin  0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
517*4887Schin  0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
518*4887Schin  0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
519*4887Schin  0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
520*4887Schin  0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1,
521*4887Schin  0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
522*4887Schin  0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4,
523*4887Schin  0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
524*4887Schin  0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae,
525*4887Schin  0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
526*4887Schin  0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7,
527*4887Schin  0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
528*4887Schin  0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5,
529*4887Schin  0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
530*4887Schin  0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0x9f,
531*4887Schin  0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
532*4887Schin  0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5,
533*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
534*4887Schin  0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0xff,
535*4887Schin 
536*4887Schin  /* ascii => ebcdic-u */
537*4887Schin 
538*4887Schin  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
539*4887Schin  0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x9f,
540*4887Schin  0x10, 0x11, 0x12, 0x13, 0xb6, 0xb5, 0x32, 0x26,
541*4887Schin  0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
542*4887Schin  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
543*4887Schin  0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
544*4887Schin  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
545*4887Schin  0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
546*4887Schin  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
547*4887Schin  0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
548*4887Schin  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
549*4887Schin  0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d,
550*4887Schin  0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
551*4887Schin  0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
552*4887Schin  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
553*4887Schin  0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07,
554*4887Schin  0x68, 0xdc, 0x51, 0x42, 0x43, 0x44, 0x47, 0x48,
555*4887Schin  0x52, 0x53, 0x54, 0x57, 0x56, 0x58, 0x63, 0x67,
556*4887Schin  0x71, 0x9c, 0x9e, 0xcb, 0xcc, 0xcd, 0xdb, 0xdd,
557*4887Schin  0xdf, 0xec, 0xfc, 0xb0, 0xb1, 0xb2, 0x3e, 0xb4,
558*4887Schin  0x45, 0x55, 0xce, 0xde, 0x49, 0x69, 0x9a, 0x9b,
559*4887Schin  0xab, 0x0f, 0xba, 0xb8, 0xb7, 0xaa, 0x8a, 0x8b,
560*4887Schin  0x3c, 0x3d, 0x62, 0x6a, 0x64, 0x65, 0x66, 0x20,
561*4887Schin  0x21, 0x22, 0x70, 0x23, 0x72, 0x73, 0x74, 0xbe,
562*4887Schin  0x76, 0x77, 0x78, 0x80, 0x24, 0x15, 0x8c, 0x8d,
563*4887Schin  0x8e, 0x41, 0x06, 0x17, 0x28, 0x29, 0x9d, 0x2a,
564*4887Schin  0x2b, 0x2c, 0x09, 0x0a, 0xac, 0x4a, 0xae, 0xaf,
565*4887Schin  0x1b, 0x30, 0x31, 0xfa, 0x1a, 0x33, 0x34, 0x35,
566*4887Schin  0x36, 0x59, 0x08, 0x38, 0xbc, 0x39, 0xa0, 0xbf,
567*4887Schin  0xca, 0x3a, 0xfe, 0x3b, 0x04, 0xcf, 0xda, 0x14,
568*4887Schin  0xe1, 0x8f, 0x46, 0x75, 0xfd, 0xeb, 0xee, 0xed,
569*4887Schin  0x90, 0xef, 0xb3, 0xfb, 0xb9, 0xea, 0xbb, 0xff,
570*4887Schin 
571*4887Schin  /* ebcdic-u => ascii */
572*4887Schin 
573*4887Schin  0x00, 0x01, 0x02, 0x03, 0xec, 0x09, 0xca, 0x7f,
574*4887Schin  0xe2, 0xd2, 0xd3, 0x0b, 0x0c, 0x0d, 0x0e, 0xa9,
575*4887Schin  0x10, 0x11, 0x12, 0x13, 0xef, 0xc5, 0x08, 0xcb,
576*4887Schin  0x18, 0x19, 0xdc, 0xd8, 0x1c, 0x1d, 0x1e, 0x1f,
577*4887Schin  0xb7, 0xb8, 0xb9, 0xbb, 0xc4, 0x0a, 0x17, 0x1b,
578*4887Schin  0xcc, 0xcd, 0xcf, 0xd0, 0xd1, 0x05, 0x06, 0x07,
579*4887Schin  0xd9, 0xda, 0x16, 0xdd, 0xde, 0xdf, 0xe0, 0x04,
580*4887Schin  0xe3, 0xe5, 0xe9, 0xeb, 0xb0, 0xb1, 0x9e, 0x1a,
581*4887Schin  0x20, 0xc9, 0x83, 0x84, 0x85, 0xa0, 0xf2, 0x86,
582*4887Schin  0x87, 0xa4, 0xd5, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
583*4887Schin  0x26, 0x82, 0x88, 0x89, 0x8a, 0xa1, 0x8c, 0x8b,
584*4887Schin  0x8d, 0xe1, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e,
585*4887Schin  0x2d, 0x2f, 0xb2, 0x8e, 0xb4, 0xb5, 0xb6, 0x8f,
586*4887Schin  0x80, 0xa5, 0xb3, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
587*4887Schin  0xba, 0x90, 0xbc, 0xbd, 0xbe, 0xf3, 0xc0, 0xc1,
588*4887Schin  0xc2, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
589*4887Schin  0xc3, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
590*4887Schin  0x68, 0x69, 0xae, 0xaf, 0xc6, 0xc7, 0xc8, 0xf1,
591*4887Schin  0xf8, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
592*4887Schin  0x71, 0x72, 0xa6, 0xa7, 0x91, 0xce, 0x92, 0x0f,
593*4887Schin  0xe6, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
594*4887Schin  0x79, 0x7a, 0xad, 0xa8, 0xd4, 0x5b, 0xd6, 0xd7,
595*4887Schin  0x9b, 0x9c, 0x9d, 0xfa, 0x9f, 0x15, 0x14, 0xac,
596*4887Schin  0xab, 0xfc, 0xaa, 0xfe, 0xe4, 0x5d, 0xbf, 0xe7,
597*4887Schin  0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
598*4887Schin  0x48, 0x49, 0xe8, 0x93, 0x94, 0x95, 0xa2, 0xed,
599*4887Schin  0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
600*4887Schin  0x51, 0x52, 0xee, 0x96, 0x81, 0x97, 0xa3, 0x98,
601*4887Schin  0x5c, 0xf0, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
602*4887Schin  0x59, 0x5a, 0xfd, 0xf5, 0x99, 0xf7, 0xf6, 0xf9,
603*4887Schin  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
604*4887Schin  0x38, 0x39, 0xdb, 0xfb, 0x9a, 0xf4, 0xea, 0xff,
605*4887Schin 
606*4887Schin };
607*4887Schin 
608*4887Schin #define MAP	256
609*4887Schin #define MAPS	(sizeof(tab)/MAP)
610*4887Schin 
611*4887Schin struct Map_s; typedef struct Map_s Map_t;
612*4887Schin 
613*4887Schin struct Map_s
614*4887Schin {
615*4887Schin 	Map_t*		next;
616*4887Schin 	int		op;
617*4887Schin 	unsigned char	map[MAP];
618*4887Schin };
619*4887Schin 
620*4887Schin static Map_t*	maps;
621*4887Schin 
622*4887Schin /*
623*4887Schin  * generate and return ccode map from i to o
624*4887Schin  */
625*4887Schin 
626*4887Schin unsigned char*
627*4887Schin _ccmap(int i, int o)
628*4887Schin {
629*4887Schin 	register unsigned char*	a;
630*4887Schin 	register unsigned char*	m;
631*4887Schin 	register unsigned char*	z;
632*4887Schin 	register Map_t*		map;
633*4887Schin 	register int		n;
634*4887Schin 	int			op;
635*4887Schin 
636*4887Schin 	if (!i && !o)
637*4887Schin 		return (unsigned char*)tab;
638*4887Schin 	if (CCCONVERT(i))
639*4887Schin 	{
640*4887Schin 		o = CCOUT(i);
641*4887Schin 		i = CCIN(i);
642*4887Schin 	}
643*4887Schin 	else if (CCCONVERT(o))
644*4887Schin 	{
645*4887Schin 		i = CCIN(o);
646*4887Schin 		o = CCOUT(o);
647*4887Schin 	}
648*4887Schin 	else
649*4887Schin 	{
650*4887Schin 		if (i == 0)
651*4887Schin 			i = CC_NATIVE;
652*4887Schin 		if (o == 0)
653*4887Schin 			o = CC_NATIVE;
654*4887Schin 	}
655*4887Schin 	if (i == o || i < 1 || i > MAPS || o < 1 || o > MAPS)
656*4887Schin 		return 0;
657*4887Schin 	if (i == CC_ASCII)
658*4887Schin 		return (unsigned char*)tab + MAP * (2 * (o - 1));
659*4887Schin 	if (o == CC_ASCII)
660*4887Schin 		return (unsigned char*)tab + MAP * (2 * (i - 1) + 1);
661*4887Schin 	op = CCOP(i, o);
662*4887Schin 	for (map = maps; map; map = map->next)
663*4887Schin 		if (map->op == op)
664*4887Schin 			return map->map;
665*4887Schin 	if (!(map = newof(0, Map_t, 1, 0)))
666*4887Schin 		return 0;
667*4887Schin 	map->op = op;
668*4887Schin 	a = (unsigned char*)tab + MAP * (2 * (o - 1));
669*4887Schin 	z = (unsigned char*)tab + MAP * (2 * (i - 1) + 1);
670*4887Schin 	m = map->map;
671*4887Schin 	for (n = 0; n < MAP; n++)
672*4887Schin 		m[n] = n;
673*4887Schin 	for (n = MAP - 1; n >= 0; n--)
674*4887Schin 		m[n] = a[z[n]];
675*4887Schin 	map->next = maps;
676*4887Schin 	maps = map;
677*4887Schin 	return m;
678*4887Schin }
679*4887Schin 
680*4887Schin void*
681*4887Schin _ccmapcpy(register unsigned char* m, void* b, const void* a, size_t n)
682*4887Schin {
683*4887Schin 	register unsigned char*	ub;
684*4887Schin 	register unsigned char*	ue;
685*4887Schin 	register unsigned char*	ua;
686*4887Schin 
687*4887Schin 	if (m)
688*4887Schin 	{
689*4887Schin 		ub = (unsigned char*)b;
690*4887Schin 		ue = ub + n;
691*4887Schin 		ua = (unsigned char*)a;
692*4887Schin 		while (ub < ue)
693*4887Schin 			*ub++ = m[*ua++];
694*4887Schin 	}
695*4887Schin 	else
696*4887Schin 		memcpy(b, a, n);
697*4887Schin 	return b;
698*4887Schin }
699*4887Schin 
700*4887Schin void*
701*4887Schin _ccmapstr(register unsigned char* m, void* b, size_t n)
702*4887Schin {
703*4887Schin 	register unsigned char*	s;
704*4887Schin 	register unsigned char*	e;
705*4887Schin 
706*4887Schin 	if (m)
707*4887Schin 		for (e = (s = (unsigned char*)b) + n; s < e; s++)
708*4887Schin 			*s = m[*s];
709*4887Schin 	return b;
710*4887Schin }
711*4887Schin 
712*4887Schin #else
713*4887Schin 
714*4887Schin static void
715*4887Schin dump(int from, int to)
716*4887Schin {
717*4887Schin 	register const unsigned char*	m;
718*4887Schin 	register int			c;
719*4887Schin 	register int			i;
720*4887Schin 
721*4887Schin 	m = ccmap(from, to);
722*4887Schin 	sfprintf(sfstdout, "\n /* %s => %s */\n\n", ccmapname(from), ccmapname(to));
723*4887Schin 	for (c = i = 0; c <= UCHAR_MAX; c++)
724*4887Schin 	{
725*4887Schin 		sfprintf(sfstdout, " 0x%02x,", m ? m[c] : c);
726*4887Schin 		if (!(++i & 0x7))
727*4887Schin 		{
728*4887Schin 			i = 0;
729*4887Schin 			sfprintf(sfstdout, "\n");
730*4887Schin 		}
731*4887Schin 	}
732*4887Schin }
733*4887Schin 
734*4887Schin main(int argc, char** argv)
735*4887Schin {
736*4887Schin 	register int			i;
737*4887Schin 
738*4887Schin 	for (i = 1; i <= CC_MAPS; i++)
739*4887Schin 	{
740*4887Schin 		dump(CC_ASCII, i);
741*4887Schin 		dump(i, CC_ASCII);
742*4887Schin 	}
743*4887Schin 	return 0;
744*4887Schin }
745*4887Schin 
746*4887Schin #endif
747