1 /************************************************************************/
2 /*									*/
3 /* �ե饰�����ơ��ȿ���DAA�Υơ��֥�					*/
4 /*									*/
5 /*	SZ_table[n]  �� �黻��̤� n �λ��Ρ�Z��S �ե饰�ξ���		*/
6 /*	SZP_table[n] �� �黻��̤� n �λ��Ρ�P/V��Z��S �ե饰�ξ���	*/
7 /*									*/
8 /* ̿��˱����ơ��ɤΥơ��֥뤫��ե饰���������Ф�����Ȥ�ʬ���롣	*/
9 /*									*/
10 /*	state_table[n]       �� �̾�̿��Υ��ơ��ȿ�			*/
11 /*	state_CB_table[n]    �� CB XX ̿��Υ��ơ��ȿ�			*/
12 /*	state_ED_table[n]    �� ED XX ̿��Υ��ơ��ȿ�			*/
13 /*	state_XX_table[n]    �� DD/FD XX ̿��Υ��ơ��ȿ�		*/
14 /*	state_XXCB_table[n] �� DD/FD CB XX XX ̿��Υ��ơ��ȿ�		*/
15 /*									*/
16 /*	DAA_table[] �� DAA ̿��κݤˡ�AF�쥸�������������		*/
17 /*									*/
18 /************************************************************************/
19 
20 static byte SZ_table[256] =
21 {
22 #define Z Z_FLAG
23 #define S S_FLAG
24   Z, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
26   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
27   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
28   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
29   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
30   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32   S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,
33   S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,
34   S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,
35   S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,
36   S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,
37   S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,
38   S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,
39   S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,
40 #undef S
41 #undef Z
42 };
43 
44 static byte SZP_table[256] =
45 {
46 #define Z Z_FLAG
47 #define S S_FLAG
48 #define P P_FLAG
49   Z|P, 0  , 0  , 0|P, 0  , 0|P, 0|P, 0  ,
50   0  , 0|P, 0|P, 0  , 0|P, 0  , 0  , 0|P,
51   0  , 0|P, 0|P, 0  , 0|P, 0  , 0  , 0|P,
52   0|P, 0  , 0  , 0|P, 0  , 0|P, 0|P, 0  ,
53   0  , 0|P, 0|P, 0  , 0|P, 0  , 0  , 0|P,
54   0|P, 0  , 0  , 0|P, 0  , 0|P, 0|P, 0  ,
55   0|P, 0  , 0  , 0|P, 0  , 0|P, 0|P, 0  ,
56   0  , 0|P, 0|P, 0  , 0|P, 0  , 0  , 0|P,
57   0  , 0|P, 0|P, 0  , 0|P, 0  , 0  , 0|P,
58   0|P, 0  , 0  , 0|P, 0  , 0|P, 0|P, 0  ,
59   0|P, 0  , 0  , 0|P, 0  , 0|P, 0|P, 0  ,
60   0  , 0|P, 0|P, 0  , 0|P, 0  , 0  , 0|P,
61   0|P, 0  , 0  , 0|P, 0  , 0|P, 0|P, 0  ,
62   0  , 0|P, 0|P, 0  , 0|P, 0  , 0  , 0|P,
63   0  , 0|P, 0|P, 0  , 0|P, 0  , 0  , 0|P,
64   0|P, 0  , 0  , 0|P, 0  , 0|P, 0|P, 0  ,
65   S  , S|P, S|P, S  , S|P, S  , S  , S|P,
66   S|P, S  , S  , S|P, S  , S|P, S|P, S  ,
67   S|P, S  , S  , S|P, S  , S|P, S|P, S  ,
68   S  , S|P, S|P, S  , S|P, S  , S  , S|P,
69   S|P, S  , S  , S|P, S  , S|P, S|P, S  ,
70   S  , S|P, S|P, S  , S|P, S  , S  , S|P,
71   S  , S|P, S|P, S  , S|P, S  , S  , S|P,
72   S|P, S  , S  , S|P, S  , S|P, S|P, S  ,
73   S|P, S  , S  , S|P, S  , S|P, S|P, S  ,
74   S  , S|P, S|P, S  , S|P, S  , S  , S|P,
75   S  , S|P, S|P, S  , S|P, S  , S  , S|P,
76   S|P, S  , S  , S|P, S  , S|P, S|P, S  ,
77   S  , S|P, S|P, S  , S|P, S  , S  , S|P,
78   S|P, S  , S  , S|P, S  , S|P, S|P, S  ,
79   S|P, S  , S  , S|P, S  , S|P, S|P, S  ,
80   S  , S|P, S|P, S  , S|P, S  , S  , S|P,
81 #undef P
82 #undef S
83 #undef Z
84 };
85 
86 /* ���Х����� (JR,  JR C/Z/NC/NZ,  DJNZ)               �ϡ�ʬ�����ˡ�+5 */
87 /* ������̿��   (CALL, CALL C/Z/P/PE/NC/NZ/M/PO )        �ϡ�ʬ�����ˡ�+7 */
88 /* �꥿����̿�� (RET, RET C/Z/P/PE/NC/NZ/M/PO,  RETI/N ) �ϡ�ʬ�����ˡ�+6 */
89 /* �֥�å�̿�� (LD*R, CP*R, IN*R, OT*R)             �ϡ������֤����ˡ�+5 */
90 
91 static int state_table[256] =
92 {
93    4,10, 7, 6, 4, 4, 7, 4, 4,11, 7, 6, 4, 4, 7, 4,
94    8,10, 7, 6, 4, 4, 7, 4, 7,11, 7, 6, 4, 4, 7, 4,
95    7,10,16, 6, 4, 4, 7, 4, 7,11,16, 6, 4, 4, 7, 4,
96    7,10,13, 6,11,11,10, 4, 7,11,13, 6, 4, 4, 7, 4,
97    4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
98    4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
99    4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
100    7, 7, 7, 7, 7, 7, 4, 7, 4, 4, 4, 4, 4, 4, 7, 4,
101    4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
102    4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
103    4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
104    4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
105    5,10,10,10,10,11, 7,11, 5, 4,10, 0,10,10, 7,11,
106    5,10,10,11,10,11, 7,11, 5, 4,10,11,10, 0, 7,11,
107    5,10,10,19,10,11, 7,11, 5, 4,10, 4,10, 0, 7,11,
108    5,10,10, 4,10,11, 7,11, 5, 6,10, 4,10, 0, 7,11
109 };
110 
111 static int state_CB_table[256] =
112 {
113    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
114    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
115    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
116    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
117    8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8,
118    8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8,
119    8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8,
120    8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8,
121    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
122    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
123    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
124    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
125    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
126    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
127    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
128    8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8
129 };
130 
131 static int state_ED_table[256] =
132 {
133    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
134    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
135    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
136    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
137   12,12,15,20, 8, 8, 8, 9,12,12,15,20, 8, 8, 8, 9,
138   12,12,15,20, 8, 8, 8, 9,12,12,15,20, 8, 8, 8, 9,
139   12,12,15,20, 8, 8, 8,18,12,12,15,20, 8, 8, 8,18,
140   12,12,15,20, 8, 8, 8, 0,12,12,15,20, 8, 8, 8, 0,
141    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
142    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
143   16,16,16,16, 0, 0, 0, 0,16,16,16,16, 0, 0, 0, 0,
144   16,16,16,16, 0, 0, 0, 0,16,16,16,16, 0, 0, 0, 0,
145    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
146    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
147    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
148    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
149 };
150 
151 static int state_XX_table[256] =
152 {
153    0, 0, 0, 0, 0, 0, 0, 0, 0,15, 0, 0, 0, 0, 0, 0,
154    0, 0, 0, 0, 0, 0, 0, 0, 0,15, 0, 0, 0, 0, 0, 0,
155    0,14,20,10, 8, 8,11, 0, 0,15,20,10, 8, 8,11, 0,
156    0, 0, 0, 0,23,23,19, 0, 0,15, 0, 0, 0, 0, 0, 0,
157    0, 0, 0, 0, 8, 8,19, 0, 0, 0, 0, 0, 8, 8,19, 0,
158    0, 0, 0, 0, 8, 8,19, 0, 0, 0, 0, 0, 8, 8,19, 0,
159    8, 8, 8, 8, 8, 8,19, 8, 8, 8, 8, 8, 8, 8,19, 8,
160   19,19,19,19,19,19, 0,19, 0, 0, 0, 0, 8, 8,19, 0,
161    0, 0, 0, 0, 8, 8,19, 0, 0, 0, 0, 0, 8, 8,19, 0,
162    0, 0, 0, 0, 8, 8,19, 0, 0, 0, 0, 0, 8, 8,19, 0,
163    0, 0, 0, 0, 8, 8,19, 0, 0, 0, 0, 0, 8, 8,19, 0,
164    0, 0, 0, 0, 8, 8,19, 0, 0, 0, 0, 0, 8, 8,19, 0,
165    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
166    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
167    0,14, 0,23, 0,15, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0,
168    0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0, 0
169 };
170 
171 static int state_XXCB_table[256] =
172 {
173   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
174   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
175   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
176   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
177   20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
178   20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
179   20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
180   20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
181   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
182   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
183   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
184   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
185   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
186   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
187   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
188   23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23
189 };
190 
191 
192 
193 static word DAA_table[2048] =
194 {
195   0x0044,0x0100,0x0200,0x0304,0x0400,0x0504,0x0604,0x0700,
196   0x0808,0x090C,0x1010,0x1114,0x1214,0x1310,0x1414,0x1510,
197   0x1000,0x1104,0x1204,0x1300,0x1404,0x1500,0x1600,0x1704,
198   0x180C,0x1908,0x2030,0x2134,0x2234,0x2330,0x2434,0x2530,
199   0x2020,0x2124,0x2224,0x2320,0x2424,0x2520,0x2620,0x2724,
200   0x282C,0x2928,0x3034,0x3130,0x3230,0x3334,0x3430,0x3534,
201   0x3024,0x3120,0x3220,0x3324,0x3420,0x3524,0x3624,0x3720,
202   0x3828,0x392C,0x4010,0x4114,0x4214,0x4310,0x4414,0x4510,
203   0x4000,0x4104,0x4204,0x4300,0x4404,0x4500,0x4600,0x4704,
204   0x480C,0x4908,0x5014,0x5110,0x5210,0x5314,0x5410,0x5514,
205   0x5004,0x5100,0x5200,0x5304,0x5400,0x5504,0x5604,0x5700,
206   0x5808,0x590C,0x6034,0x6130,0x6230,0x6334,0x6430,0x6534,
207   0x6024,0x6120,0x6220,0x6324,0x6420,0x6524,0x6624,0x6720,
208   0x6828,0x692C,0x7030,0x7134,0x7234,0x7330,0x7434,0x7530,
209   0x7020,0x7124,0x7224,0x7320,0x7424,0x7520,0x7620,0x7724,
210   0x782C,0x7928,0x8090,0x8194,0x8294,0x8390,0x8494,0x8590,
211   0x8080,0x8184,0x8284,0x8380,0x8484,0x8580,0x8680,0x8784,
212   0x888C,0x8988,0x9094,0x9190,0x9290,0x9394,0x9490,0x9594,
213   0x9084,0x9180,0x9280,0x9384,0x9480,0x9584,0x9684,0x9780,
214   0x9888,0x998C,0x0055,0x0111,0x0211,0x0315,0x0411,0x0515,
215   0x0045,0x0101,0x0201,0x0305,0x0401,0x0505,0x0605,0x0701,
216   0x0809,0x090D,0x1011,0x1115,0x1215,0x1311,0x1415,0x1511,
217   0x1001,0x1105,0x1205,0x1301,0x1405,0x1501,0x1601,0x1705,
218   0x180D,0x1909,0x2031,0x2135,0x2235,0x2331,0x2435,0x2531,
219   0x2021,0x2125,0x2225,0x2321,0x2425,0x2521,0x2621,0x2725,
220   0x282D,0x2929,0x3035,0x3131,0x3231,0x3335,0x3431,0x3535,
221   0x3025,0x3121,0x3221,0x3325,0x3421,0x3525,0x3625,0x3721,
222   0x3829,0x392D,0x4011,0x4115,0x4215,0x4311,0x4415,0x4511,
223   0x4001,0x4105,0x4205,0x4301,0x4405,0x4501,0x4601,0x4705,
224   0x480D,0x4909,0x5015,0x5111,0x5211,0x5315,0x5411,0x5515,
225   0x5005,0x5101,0x5201,0x5305,0x5401,0x5505,0x5605,0x5701,
226   0x5809,0x590D,0x6035,0x6131,0x6231,0x6335,0x6431,0x6535,
227   0x6025,0x6121,0x6221,0x6325,0x6421,0x6525,0x6625,0x6721,
228   0x6829,0x692D,0x7031,0x7135,0x7235,0x7331,0x7435,0x7531,
229   0x7021,0x7125,0x7225,0x7321,0x7425,0x7521,0x7621,0x7725,
230   0x782D,0x7929,0x8091,0x8195,0x8295,0x8391,0x8495,0x8591,
231   0x8081,0x8185,0x8285,0x8381,0x8485,0x8581,0x8681,0x8785,
232   0x888D,0x8989,0x9095,0x9191,0x9291,0x9395,0x9491,0x9595,
233   0x9085,0x9181,0x9281,0x9385,0x9481,0x9585,0x9685,0x9781,
234   0x9889,0x998D,0xA0B5,0xA1B1,0xA2B1,0xA3B5,0xA4B1,0xA5B5,
235   0xA0A5,0xA1A1,0xA2A1,0xA3A5,0xA4A1,0xA5A5,0xA6A5,0xA7A1,
236   0xA8A9,0xA9AD,0xB0B1,0xB1B5,0xB2B5,0xB3B1,0xB4B5,0xB5B1,
237   0xB0A1,0xB1A5,0xB2A5,0xB3A1,0xB4A5,0xB5A1,0xB6A1,0xB7A5,
238   0xB8AD,0xB9A9,0xC095,0xC191,0xC291,0xC395,0xC491,0xC595,
239   0xC085,0xC181,0xC281,0xC385,0xC481,0xC585,0xC685,0xC781,
240   0xC889,0xC98D,0xD091,0xD195,0xD295,0xD391,0xD495,0xD591,
241   0xD081,0xD185,0xD285,0xD381,0xD485,0xD581,0xD681,0xD785,
242   0xD88D,0xD989,0xE0B1,0xE1B5,0xE2B5,0xE3B1,0xE4B5,0xE5B1,
243   0xE0A1,0xE1A5,0xE2A5,0xE3A1,0xE4A5,0xE5A1,0xE6A1,0xE7A5,
244   0xE8AD,0xE9A9,0xF0B5,0xF1B1,0xF2B1,0xF3B5,0xF4B1,0xF5B5,
245   0xF0A5,0xF1A1,0xF2A1,0xF3A5,0xF4A1,0xF5A5,0xF6A5,0xF7A1,
246   0xF8A9,0xF9AD,0x0055,0x0111,0x0211,0x0315,0x0411,0x0515,
247   0x0045,0x0101,0x0201,0x0305,0x0401,0x0505,0x0605,0x0701,
248   0x0809,0x090D,0x1011,0x1115,0x1215,0x1311,0x1415,0x1511,
249   0x1001,0x1105,0x1205,0x1301,0x1405,0x1501,0x1601,0x1705,
250   0x180D,0x1909,0x2031,0x2135,0x2235,0x2331,0x2435,0x2531,
251   0x2021,0x2125,0x2225,0x2321,0x2425,0x2521,0x2621,0x2725,
252   0x282D,0x2929,0x3035,0x3131,0x3231,0x3335,0x3431,0x3535,
253   0x3025,0x3121,0x3221,0x3325,0x3421,0x3525,0x3625,0x3721,
254   0x3829,0x392D,0x4011,0x4115,0x4215,0x4311,0x4415,0x4511,
255   0x4001,0x4105,0x4205,0x4301,0x4405,0x4501,0x4601,0x4705,
256   0x480D,0x4909,0x5015,0x5111,0x5211,0x5315,0x5411,0x5515,
257   0x5005,0x5101,0x5201,0x5305,0x5401,0x5505,0x5605,0x5701,
258   0x5809,0x590D,0x6035,0x6131,0x6231,0x6335,0x6431,0x6535,
259   0x0604,0x0700,0x0808,0x090C,0x0A0C,0x0B08,0x0C0C,0x0D08,
260   0x0E08,0x0F0C,0x1010,0x1114,0x1214,0x1310,0x1414,0x1510,
261   0x1600,0x1704,0x180C,0x1908,0x1A08,0x1B0C,0x1C08,0x1D0C,
262   0x1E0C,0x1F08,0x2030,0x2134,0x2234,0x2330,0x2434,0x2530,
263   0x2620,0x2724,0x282C,0x2928,0x2A28,0x2B2C,0x2C28,0x2D2C,
264   0x2E2C,0x2F28,0x3034,0x3130,0x3230,0x3334,0x3430,0x3534,
265   0x3624,0x3720,0x3828,0x392C,0x3A2C,0x3B28,0x3C2C,0x3D28,
266   0x3E28,0x3F2C,0x4010,0x4114,0x4214,0x4310,0x4414,0x4510,
267   0x4600,0x4704,0x480C,0x4908,0x4A08,0x4B0C,0x4C08,0x4D0C,
268   0x4E0C,0x4F08,0x5014,0x5110,0x5210,0x5314,0x5410,0x5514,
269   0x5604,0x5700,0x5808,0x590C,0x5A0C,0x5B08,0x5C0C,0x5D08,
270   0x5E08,0x5F0C,0x6034,0x6130,0x6230,0x6334,0x6430,0x6534,
271   0x6624,0x6720,0x6828,0x692C,0x6A2C,0x6B28,0x6C2C,0x6D28,
272   0x6E28,0x6F2C,0x7030,0x7134,0x7234,0x7330,0x7434,0x7530,
273   0x7620,0x7724,0x782C,0x7928,0x7A28,0x7B2C,0x7C28,0x7D2C,
274   0x7E2C,0x7F28,0x8090,0x8194,0x8294,0x8390,0x8494,0x8590,
275   0x8680,0x8784,0x888C,0x8988,0x8A88,0x8B8C,0x8C88,0x8D8C,
276   0x8E8C,0x8F88,0x9094,0x9190,0x9290,0x9394,0x9490,0x9594,
277   0x9684,0x9780,0x9888,0x998C,0x9A8C,0x9B88,0x9C8C,0x9D88,
278   0x9E88,0x9F8C,0x0055,0x0111,0x0211,0x0315,0x0411,0x0515,
279   0x0605,0x0701,0x0809,0x090D,0x0A0D,0x0B09,0x0C0D,0x0D09,
280   0x0E09,0x0F0D,0x1011,0x1115,0x1215,0x1311,0x1415,0x1511,
281   0x1601,0x1705,0x180D,0x1909,0x1A09,0x1B0D,0x1C09,0x1D0D,
282   0x1E0D,0x1F09,0x2031,0x2135,0x2235,0x2331,0x2435,0x2531,
283   0x2621,0x2725,0x282D,0x2929,0x2A29,0x2B2D,0x2C29,0x2D2D,
284   0x2E2D,0x2F29,0x3035,0x3131,0x3231,0x3335,0x3431,0x3535,
285   0x3625,0x3721,0x3829,0x392D,0x3A2D,0x3B29,0x3C2D,0x3D29,
286   0x3E29,0x3F2D,0x4011,0x4115,0x4215,0x4311,0x4415,0x4511,
287   0x4601,0x4705,0x480D,0x4909,0x4A09,0x4B0D,0x4C09,0x4D0D,
288   0x4E0D,0x4F09,0x5015,0x5111,0x5211,0x5315,0x5411,0x5515,
289   0x5605,0x5701,0x5809,0x590D,0x5A0D,0x5B09,0x5C0D,0x5D09,
290   0x5E09,0x5F0D,0x6035,0x6131,0x6231,0x6335,0x6431,0x6535,
291   0x6625,0x6721,0x6829,0x692D,0x6A2D,0x6B29,0x6C2D,0x6D29,
292   0x6E29,0x6F2D,0x7031,0x7135,0x7235,0x7331,0x7435,0x7531,
293   0x7621,0x7725,0x782D,0x7929,0x7A29,0x7B2D,0x7C29,0x7D2D,
294   0x7E2D,0x7F29,0x8091,0x8195,0x8295,0x8391,0x8495,0x8591,
295   0x8681,0x8785,0x888D,0x8989,0x8A89,0x8B8D,0x8C89,0x8D8D,
296   0x8E8D,0x8F89,0x9095,0x9191,0x9291,0x9395,0x9491,0x9595,
297   0x9685,0x9781,0x9889,0x998D,0x9A8D,0x9B89,0x9C8D,0x9D89,
298   0x9E89,0x9F8D,0xA0B5,0xA1B1,0xA2B1,0xA3B5,0xA4B1,0xA5B5,
299   0xA6A5,0xA7A1,0xA8A9,0xA9AD,0xAAAD,0xABA9,0xACAD,0xADA9,
300   0xAEA9,0xAFAD,0xB0B1,0xB1B5,0xB2B5,0xB3B1,0xB4B5,0xB5B1,
301   0xB6A1,0xB7A5,0xB8AD,0xB9A9,0xBAA9,0xBBAD,0xBCA9,0xBDAD,
302   0xBEAD,0xBFA9,0xC095,0xC191,0xC291,0xC395,0xC491,0xC595,
303   0xC685,0xC781,0xC889,0xC98D,0xCA8D,0xCB89,0xCC8D,0xCD89,
304   0xCE89,0xCF8D,0xD091,0xD195,0xD295,0xD391,0xD495,0xD591,
305   0xD681,0xD785,0xD88D,0xD989,0xDA89,0xDB8D,0xDC89,0xDD8D,
306   0xDE8D,0xDF89,0xE0B1,0xE1B5,0xE2B5,0xE3B1,0xE4B5,0xE5B1,
307   0xE6A1,0xE7A5,0xE8AD,0xE9A9,0xEAA9,0xEBAD,0xECA9,0xEDAD,
308   0xEEAD,0xEFA9,0xF0B5,0xF1B1,0xF2B1,0xF3B5,0xF4B1,0xF5B5,
309   0xF6A5,0xF7A1,0xF8A9,0xF9AD,0xFAAD,0xFBA9,0xFCAD,0xFDA9,
310   0xFEA9,0xFFAD,0x0055,0x0111,0x0211,0x0315,0x0411,0x0515,
311   0x0605,0x0701,0x0809,0x090D,0x0A0D,0x0B09,0x0C0D,0x0D09,
312   0x0E09,0x0F0D,0x1011,0x1115,0x1215,0x1311,0x1415,0x1511,
313   0x1601,0x1705,0x180D,0x1909,0x1A09,0x1B0D,0x1C09,0x1D0D,
314   0x1E0D,0x1F09,0x2031,0x2135,0x2235,0x2331,0x2435,0x2531,
315   0x2621,0x2725,0x282D,0x2929,0x2A29,0x2B2D,0x2C29,0x2D2D,
316   0x2E2D,0x2F29,0x3035,0x3131,0x3231,0x3335,0x3431,0x3535,
317   0x3625,0x3721,0x3829,0x392D,0x3A2D,0x3B29,0x3C2D,0x3D29,
318   0x3E29,0x3F2D,0x4011,0x4115,0x4215,0x4311,0x4415,0x4511,
319   0x4601,0x4705,0x480D,0x4909,0x4A09,0x4B0D,0x4C09,0x4D0D,
320   0x4E0D,0x4F09,0x5015,0x5111,0x5211,0x5315,0x5411,0x5515,
321   0x5605,0x5701,0x5809,0x590D,0x5A0D,0x5B09,0x5C0D,0x5D09,
322   0x5E09,0x5F0D,0x6035,0x6131,0x6231,0x6335,0x6431,0x6535,
323   0x0046,0x0102,0x0202,0x0306,0x0402,0x0506,0x0606,0x0702,
324   0x080A,0x090E,0x0402,0x0506,0x0606,0x0702,0x080A,0x090E,
325   0x1002,0x1106,0x1206,0x1302,0x1406,0x1502,0x1602,0x1706,
326   0x180E,0x190A,0x1406,0x1502,0x1602,0x1706,0x180E,0x190A,
327   0x2022,0x2126,0x2226,0x2322,0x2426,0x2522,0x2622,0x2726,
328   0x282E,0x292A,0x2426,0x2522,0x2622,0x2726,0x282E,0x292A,
329   0x3026,0x3122,0x3222,0x3326,0x3422,0x3526,0x3626,0x3722,
330   0x382A,0x392E,0x3422,0x3526,0x3626,0x3722,0x382A,0x392E,
331   0x4002,0x4106,0x4206,0x4302,0x4406,0x4502,0x4602,0x4706,
332   0x480E,0x490A,0x4406,0x4502,0x4602,0x4706,0x480E,0x490A,
333   0x5006,0x5102,0x5202,0x5306,0x5402,0x5506,0x5606,0x5702,
334   0x580A,0x590E,0x5402,0x5506,0x5606,0x5702,0x580A,0x590E,
335   0x6026,0x6122,0x6222,0x6326,0x6422,0x6526,0x6626,0x6722,
336   0x682A,0x692E,0x6422,0x6526,0x6626,0x6722,0x682A,0x692E,
337   0x7022,0x7126,0x7226,0x7322,0x7426,0x7522,0x7622,0x7726,
338   0x782E,0x792A,0x7426,0x7522,0x7622,0x7726,0x782E,0x792A,
339   0x8082,0x8186,0x8286,0x8382,0x8486,0x8582,0x8682,0x8786,
340   0x888E,0x898A,0x8486,0x8582,0x8682,0x8786,0x888E,0x898A,
341   0x9086,0x9182,0x9282,0x9386,0x9482,0x9586,0x9686,0x9782,
342   0x988A,0x998E,0x3423,0x3527,0x3627,0x3723,0x382B,0x392F,
343   0x4003,0x4107,0x4207,0x4303,0x4407,0x4503,0x4603,0x4707,
344   0x480F,0x490B,0x4407,0x4503,0x4603,0x4707,0x480F,0x490B,
345   0x5007,0x5103,0x5203,0x5307,0x5403,0x5507,0x5607,0x5703,
346   0x580B,0x590F,0x5403,0x5507,0x5607,0x5703,0x580B,0x590F,
347   0x6027,0x6123,0x6223,0x6327,0x6423,0x6527,0x6627,0x6723,
348   0x682B,0x692F,0x6423,0x6527,0x6627,0x6723,0x682B,0x692F,
349   0x7023,0x7127,0x7227,0x7323,0x7427,0x7523,0x7623,0x7727,
350   0x782F,0x792B,0x7427,0x7523,0x7623,0x7727,0x782F,0x792B,
351   0x8083,0x8187,0x8287,0x8383,0x8487,0x8583,0x8683,0x8787,
352   0x888F,0x898B,0x8487,0x8583,0x8683,0x8787,0x888F,0x898B,
353   0x9087,0x9183,0x9283,0x9387,0x9483,0x9587,0x9687,0x9783,
354   0x988B,0x998F,0x9483,0x9587,0x9687,0x9783,0x988B,0x998F,
355   0xA0A7,0xA1A3,0xA2A3,0xA3A7,0xA4A3,0xA5A7,0xA6A7,0xA7A3,
356   0xA8AB,0xA9AF,0xA4A3,0xA5A7,0xA6A7,0xA7A3,0xA8AB,0xA9AF,
357   0xB0A3,0xB1A7,0xB2A7,0xB3A3,0xB4A7,0xB5A3,0xB6A3,0xB7A7,
358   0xB8AF,0xB9AB,0xB4A7,0xB5A3,0xB6A3,0xB7A7,0xB8AF,0xB9AB,
359   0xC087,0xC183,0xC283,0xC387,0xC483,0xC587,0xC687,0xC783,
360   0xC88B,0xC98F,0xC483,0xC587,0xC687,0xC783,0xC88B,0xC98F,
361   0xD083,0xD187,0xD287,0xD383,0xD487,0xD583,0xD683,0xD787,
362   0xD88F,0xD98B,0xD487,0xD583,0xD683,0xD787,0xD88F,0xD98B,
363   0xE0A3,0xE1A7,0xE2A7,0xE3A3,0xE4A7,0xE5A3,0xE6A3,0xE7A7,
364   0xE8AF,0xE9AB,0xE4A7,0xE5A3,0xE6A3,0xE7A7,0xE8AF,0xE9AB,
365   0xF0A7,0xF1A3,0xF2A3,0xF3A7,0xF4A3,0xF5A7,0xF6A7,0xF7A3,
366   0xF8AB,0xF9AF,0xF4A3,0xF5A7,0xF6A7,0xF7A3,0xF8AB,0xF9AF,
367   0x0047,0x0103,0x0203,0x0307,0x0403,0x0507,0x0607,0x0703,
368   0x080B,0x090F,0x0403,0x0507,0x0607,0x0703,0x080B,0x090F,
369   0x1003,0x1107,0x1207,0x1303,0x1407,0x1503,0x1603,0x1707,
370   0x180F,0x190B,0x1407,0x1503,0x1603,0x1707,0x180F,0x190B,
371   0x2023,0x2127,0x2227,0x2323,0x2427,0x2523,0x2623,0x2727,
372   0x282F,0x292B,0x2427,0x2523,0x2623,0x2727,0x282F,0x292B,
373   0x3027,0x3123,0x3223,0x3327,0x3423,0x3527,0x3627,0x3723,
374   0x382B,0x392F,0x3423,0x3527,0x3627,0x3723,0x382B,0x392F,
375   0x4003,0x4107,0x4207,0x4303,0x4407,0x4503,0x4603,0x4707,
376   0x480F,0x490B,0x4407,0x4503,0x4603,0x4707,0x480F,0x490B,
377   0x5007,0x5103,0x5203,0x5307,0x5403,0x5507,0x5607,0x5703,
378   0x580B,0x590F,0x5403,0x5507,0x5607,0x5703,0x580B,0x590F,
379   0x6027,0x6123,0x6223,0x6327,0x6423,0x6527,0x6627,0x6723,
380   0x682B,0x692F,0x6423,0x6527,0x6627,0x6723,0x682B,0x692F,
381   0x7023,0x7127,0x7227,0x7323,0x7427,0x7523,0x7623,0x7727,
382   0x782F,0x792B,0x7427,0x7523,0x7623,0x7727,0x782F,0x792B,
383   0x8083,0x8187,0x8287,0x8383,0x8487,0x8583,0x8683,0x8787,
384   0x888F,0x898B,0x8487,0x8583,0x8683,0x8787,0x888F,0x898B,
385   0x9087,0x9183,0x9283,0x9387,0x9483,0x9587,0x9687,0x9783,
386   0x988B,0x998F,0x9483,0x9587,0x9687,0x9783,0x988B,0x998F,
387   0xFABE,0xFBBA,0xFCBE,0xFDBA,0xFEBA,0xFFBE,0x0046,0x0102,
388   0x0202,0x0306,0x0402,0x0506,0x0606,0x0702,0x080A,0x090E,
389   0x0A1E,0x0B1A,0x0C1E,0x0D1A,0x0E1A,0x0F1E,0x1002,0x1106,
390   0x1206,0x1302,0x1406,0x1502,0x1602,0x1706,0x180E,0x190A,
391   0x1A1A,0x1B1E,0x1C1A,0x1D1E,0x1E1E,0x1F1A,0x2022,0x2126,
392   0x2226,0x2322,0x2426,0x2522,0x2622,0x2726,0x282E,0x292A,
393   0x2A3A,0x2B3E,0x2C3A,0x2D3E,0x2E3E,0x2F3A,0x3026,0x3122,
394   0x3222,0x3326,0x3422,0x3526,0x3626,0x3722,0x382A,0x392E,
395   0x3A3E,0x3B3A,0x3C3E,0x3D3A,0x3E3A,0x3F3E,0x4002,0x4106,
396   0x4206,0x4302,0x4406,0x4502,0x4602,0x4706,0x480E,0x490A,
397   0x4A1A,0x4B1E,0x4C1A,0x4D1E,0x4E1E,0x4F1A,0x5006,0x5102,
398   0x5202,0x5306,0x5402,0x5506,0x5606,0x5702,0x580A,0x590E,
399   0x5A1E,0x5B1A,0x5C1E,0x5D1A,0x5E1A,0x5F1E,0x6026,0x6122,
400   0x6222,0x6326,0x6422,0x6526,0x6626,0x6722,0x682A,0x692E,
401   0x6A3E,0x6B3A,0x6C3E,0x6D3A,0x6E3A,0x6F3E,0x7022,0x7126,
402   0x7226,0x7322,0x7426,0x7522,0x7622,0x7726,0x782E,0x792A,
403   0x7A3A,0x7B3E,0x7C3A,0x7D3E,0x7E3E,0x7F3A,0x8082,0x8186,
404   0x8286,0x8382,0x8486,0x8582,0x8682,0x8786,0x888E,0x898A,
405   0x8A9A,0x8B9E,0x8C9A,0x8D9E,0x8E9E,0x8F9A,0x9086,0x9182,
406   0x9282,0x9386,0x3423,0x3527,0x3627,0x3723,0x382B,0x392F,
407   0x3A3F,0x3B3B,0x3C3F,0x3D3B,0x3E3B,0x3F3F,0x4003,0x4107,
408   0x4207,0x4303,0x4407,0x4503,0x4603,0x4707,0x480F,0x490B,
409   0x4A1B,0x4B1F,0x4C1B,0x4D1F,0x4E1F,0x4F1B,0x5007,0x5103,
410   0x5203,0x5307,0x5403,0x5507,0x5607,0x5703,0x580B,0x590F,
411   0x5A1F,0x5B1B,0x5C1F,0x5D1B,0x5E1B,0x5F1F,0x6027,0x6123,
412   0x6223,0x6327,0x6423,0x6527,0x6627,0x6723,0x682B,0x692F,
413   0x6A3F,0x6B3B,0x6C3F,0x6D3B,0x6E3B,0x6F3F,0x7023,0x7127,
414   0x7227,0x7323,0x7427,0x7523,0x7623,0x7727,0x782F,0x792B,
415   0x7A3B,0x7B3F,0x7C3B,0x7D3F,0x7E3F,0x7F3B,0x8083,0x8187,
416   0x8287,0x8383,0x8487,0x8583,0x8683,0x8787,0x888F,0x898B,
417   0x8A9B,0x8B9F,0x8C9B,0x8D9F,0x8E9F,0x8F9B,0x9087,0x9183,
418   0x9283,0x9387,0x9483,0x9587,0x9687,0x9783,0x988B,0x998F,
419   0x9A9F,0x9B9B,0x9C9F,0x9D9B,0x9E9B,0x9F9F,0xA0A7,0xA1A3,
420   0xA2A3,0xA3A7,0xA4A3,0xA5A7,0xA6A7,0xA7A3,0xA8AB,0xA9AF,
421   0xAABF,0xABBB,0xACBF,0xADBB,0xAEBB,0xAFBF,0xB0A3,0xB1A7,
422   0xB2A7,0xB3A3,0xB4A7,0xB5A3,0xB6A3,0xB7A7,0xB8AF,0xB9AB,
423   0xBABB,0xBBBF,0xBCBB,0xBDBF,0xBEBF,0xBFBB,0xC087,0xC183,
424   0xC283,0xC387,0xC483,0xC587,0xC687,0xC783,0xC88B,0xC98F,
425   0xCA9F,0xCB9B,0xCC9F,0xCD9B,0xCE9B,0xCF9F,0xD083,0xD187,
426   0xD287,0xD383,0xD487,0xD583,0xD683,0xD787,0xD88F,0xD98B,
427   0xDA9B,0xDB9F,0xDC9B,0xDD9F,0xDE9F,0xDF9B,0xE0A3,0xE1A7,
428   0xE2A7,0xE3A3,0xE4A7,0xE5A3,0xE6A3,0xE7A7,0xE8AF,0xE9AB,
429   0xEABB,0xEBBF,0xECBB,0xEDBF,0xEEBF,0xEFBB,0xF0A7,0xF1A3,
430   0xF2A3,0xF3A7,0xF4A3,0xF5A7,0xF6A7,0xF7A3,0xF8AB,0xF9AF,
431   0xFABF,0xFBBB,0xFCBF,0xFDBB,0xFEBB,0xFFBF,0x0047,0x0103,
432   0x0203,0x0307,0x0403,0x0507,0x0607,0x0703,0x080B,0x090F,
433   0x0A1F,0x0B1B,0x0C1F,0x0D1B,0x0E1B,0x0F1F,0x1003,0x1107,
434   0x1207,0x1303,0x1407,0x1503,0x1603,0x1707,0x180F,0x190B,
435   0x1A1B,0x1B1F,0x1C1B,0x1D1F,0x1E1F,0x1F1B,0x2023,0x2127,
436   0x2227,0x2323,0x2427,0x2523,0x2623,0x2727,0x282F,0x292B,
437   0x2A3B,0x2B3F,0x2C3B,0x2D3F,0x2E3F,0x2F3B,0x3027,0x3123,
438   0x3223,0x3327,0x3423,0x3527,0x3627,0x3723,0x382B,0x392F,
439   0x3A3F,0x3B3B,0x3C3F,0x3D3B,0x3E3B,0x3F3F,0x4003,0x4107,
440   0x4207,0x4303,0x4407,0x4503,0x4603,0x4707,0x480F,0x490B,
441   0x4A1B,0x4B1F,0x4C1B,0x4D1F,0x4E1F,0x4F1B,0x5007,0x5103,
442   0x5203,0x5307,0x5403,0x5507,0x5607,0x5703,0x580B,0x590F,
443   0x5A1F,0x5B1B,0x5C1F,0x5D1B,0x5E1B,0x5F1F,0x6027,0x6123,
444   0x6223,0x6327,0x6423,0x6527,0x6627,0x6723,0x682B,0x692F,
445   0x6A3F,0x6B3B,0x6C3F,0x6D3B,0x6E3B,0x6F3F,0x7023,0x7127,
446   0x7227,0x7323,0x7427,0x7523,0x7623,0x7727,0x782F,0x792B,
447   0x7A3B,0x7B3F,0x7C3B,0x7D3F,0x7E3F,0x7F3B,0x8083,0x8187,
448   0x8287,0x8383,0x8487,0x8583,0x8683,0x8787,0x888F,0x898B,
449   0x8A9B,0x8B9F,0x8C9B,0x8D9F,0x8E9F,0x8F9B,0x9087,0x9183,
450   0x9283,0x9387,0x9483,0x9587,0x9687,0x9783,0x988B,0x998F
451 };
452