]> git.pld-linux.org Git - packages/xv.git/blob - xv-FLmask.v2.1.patch
- added jasper patch (don't use internal functions or hacks)
[packages/xv.git] / xv-FLmask.v2.1.patch
1 diff -c --new-file xv-3.10a.org/00_README xv+flmask/00_README
2 *** xv-3.10a.org/00_README      Sun Sep 14 02:29:10 1997
3 --- xv+flmask/00_README Sun Sep 14 03:18:49 1997
4 ***************
5 *** 0 ****
6 --- 1,101 ----
7
8 +              XV+FLmask version 2.1.
9
10 +                    97.09.14.
11 +            matu@alice.lb.u-tokai.ac.jp.
12 +                   ¤Þ¤Ä¤à¤é¤·¤²¤ë¡£¡£
13
14
15 + [¤³¤Î¥Ñ¥Ã¥Á¤Ï²¿?]
16 +       ¤Ê¤ó¤À¤í¤¦¡£¤Ê¤Ë¤«¤·¤é¡£
17 +       ¤­¤Ã¤Èµ¤¤Þ¤°¤ì¤Çºî¤é¤ì¤¿¤â¤Î¤Ç¤¹¡£(^^)
18
19
20 + [¤³¤Î¥¢¡¼¥«¥¤¥Ö¤¬´Þ¤à¤â¤Î]
21 +       README                  ¤³¤Î¥Õ¥¡¥¤¥ë¡£
22 +       XV+FLmask.v2.1.patch    ¥Ñ¥Ã¥Á¡£
23
24
25 + [ºî¤êÊý]
26 +       (1)¤Þ¤º¡¢ºàÎÁ¤ò½¸¤á¤Þ¤·¤ç¤¦¡£
27 +               xv-3.10a.tar.gz
28 +               libjpeg-6a.tar.gz
29 +               xv310a-jp-extension-rev5.3.3.tar.gz
30
31 +       (2)¤³¤ì¤é¤Ë¡¢
32 +               XV+FLmask.v2.1.patch
33 +          ¤ò²Ã¤¨¤Æ¤°¤Ä¤°¤Ä¼Ñ¹þ¤ß¤Þ¤·¤ç¤¦¡£(jvimÉ÷¡£)
34
35 +       (3)°Ê¾å¡£(¤³¤ì¤À¤±¡Ë
36
37
38 + [»ÈÍѤˤ¢¤¿¤Ã¤Æ]
39 +       FLmask menu ¤È Mask button ¤¬Áý¤¨¤Æ¤¤¤ë¤À¤±¤Ç¤¹¡£
40 +       Æñ¤·¤¤¤È¤³¤í¤Ï̵¤¤¤Ç¤·¤ç¤¦¡£
41 +       Mask button ¤Ï¾å¼ê¤Ë»È¤¦¤ÈÊØÍø¤Ç¤¹¡£
42
43
44 + [·Ù¹ð]
45 +       ¤³¤Î patch ¤Ï¤¢¤Ê¤¿¼«¿È¤ÎÀÕǤ¤Î¤â¤È¤Ë»ÈÍѤ·¤Æ²¼
46 +       ¤µ¤¤¡£¤â¤·¡¢¤³¤Î patch ¤ò»ÈÍѤ¹¤ë»ö¤Ë¤è¤Ã¤Æ¡¢¤¢
47 +       ¤Ê¤¿¤Î HDD ¤Î data ¤¬Á´Éô¾Ã¤¨¤Æ¤·¤Þ¤Ã¤¿¤ê¡¢¥Ï¡¼
48 +       ¥É¥¦¥§¥¢¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤¿¤ê¡¢¤¢¤Ê¤¿¤Î¸¤¤¬»à¤ó¤Ç
49 +       ¤·¤Þ¤Ã¤Æ¤â¡¢ÅöÊý¤Ï°ìÀÚ´ØÃΤ·¤Þ¤»¤ó¡£(mgettyÉ÷¡£)
50
51
52 + [Æ°ºî´Ä¶­]
53 +       ³«È¯´Ä¶­¤Ï Linux-2.0.30 ¤Ç¤¹¤¬¡¢¤¿¤Ö¤ó original 
54 +       ¤Î xv ¤¬Æ°¤¯´Ä¶­¤Ç¤¢¤ì¤ÐÌäÂê̵¤¯Æ°¤¯¤Ç¤·¤ç¤¦¡£
55 +       (¤¿¤Ö¤ó)
56
57
58 + [¤½¤Î¾]
59 +       ¤³¤Î¥Ñ¥Ã¥Á¤Ï¥·¥§¥¢¥¦¥¨¥¢¤Ç¤¹¡£
60 +       500±ßÌé¡£ÉÏ˳¤Ê³ØÀ¸¤Ê¤Î¤Ç¡¢free ¤Ë¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£
61 +       Æ±¤¸¤¯À¸³è¤Î¶ì¤·¤¤Êý¤Ï¡¢ÌȽüÃפ·¤Þ¤¹¡£¡£
62 +       ¤½¤Î¾¡¢ software ¤Î¼«Í³¤ÊÇÛÉÕ¤¬¤¦¤ó¤¿¤é¤«¤ó¤¿¤é
63 +       ¤Ç¤É¤¦¤È¤«¤³¤¦¤È¤«¸À¤¦¿Í¤âʧ¤ï¤Ê¤¯¤Æ¤âÎɤ¤¤Ç¤¹¡£¡£
64 +                                                  (^^;;;
65
66 +       ¤¤¤Ä¤ÎÆü¤«¤¦¤Á¤Ë¤âP¤«¤é»Ï¤Þ¤ëCPU¤òƳÆþ¤¹¤ë»ö¤òÌ´
67 +       ¸«¤Æ¡£¡£(K¤Ç¤â¤è¤¤¡£D¤Ï¤â¤¦¤¤¤ä¡£¡£)
68
69 +       ËÜÅö¤Ë»Ùʧ¤Ã¤Æ¤¯¤ì¤ëÊý¤Ï
70 +               E-mail: matu@alice.lb.u-tokai.ac.jp
71 +       ¤Þ¤Ç Mail ¤·¤Æ²¼¤µ¤¤¡£(^^)
72
73
74 +       ÉÔ¶ñ¹ç¤ä, Í×µá, ´¶Áۤʤɤʤó¤Ç¤â, ¾å¤Î¥¢¥É¥ì¥¹¤Þ¤Ç
75 +       ¤ª´ê¤¤¤·¤Þ¤¹¡£
76 +       (v2.0 ¤Î»þ mail Á÷¤Ã¤Æ²¼¤µ¤Ã¤¿Âô»³¤ÎÊý¡¢Í­Æñ¤¦¤´¤¶
77 +       ¤¤¤Þ¤¹¡£¸æ°Õ¸«È¿±Ç¤Ç¤­¤ë¤è¤¦ÅØÎϤ·¤Æ¤ß¤Þ¤¹¡£¡£)
78
79
80 +       ¤Þ¤¿¡ÖXV+FLmask Home Page.¡×
81 +       http://www.lb.u-tokai.ac.jp/~matu/flmask/
82 +       ¤Ë¤Æ Version UP ¤Î¤ªÃΤ餻Åù¤¬¤¢¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£
83
84
85 + [¼Õ¼­]
86 +       ¤³¤Î¥Ñ¥Ã¥Á¥­¥Ã¥È¤òºîÀ®¤¹¤ë¤Ë¤¢¤¿¤Ã¤Æ¡¢°Ê²¼¤ÎÊý¡¹
87 +       ¤Î¸æ¶¨ÎϤòÆÀ¤Þ¤·¤¿¡£ ¿´¤è¤ê´¶¼ÕÃפ·¤Þ¤¹¡£
88
89 +         o Gmask ¤Îºî¼Ô¤Î¸Å¹Â ¹ä ÍÍ¡£
90 +         o ¤¢¤Î¿Í¡£
91 +         o ¤³¤Î¿Í¡£
92 +         o ¤½¤Î¾¡£
93
94
95 + --
96 + o `XV'¤Ï, X Window System¾å¤Î²èÁüɽ¼¨¥×¥í¥°¥é¥à¤Ç¤¹.
97 +    XV is Copyright 1989, 1994 by John Bradley.
98 +    X Window System is a trademark of X Consortium, Inc.
99 + o MEKOMASK ¤Ï ¸Þ½½Íò ÍÎÆ󤵤óºî¤Î¥Þ¥¹¥¯¥Ä¡¼¥ë¡£
100 + o WINMASK  ¤Ï ³°Â¼ ¹â¾Ï¤µ¤óºî¤Î¥Þ¥¹¥¯¥Ä¡¼¥ë¡£
101 + o FLMASK   ¤Ï £Çenesis ¤µ¤óºî¤Î¥Þ¥¹¥¯¥Ä¡¼¥ë¡£
102 + o CPMASK   ¤Ï ÆâÌ¤ó¤È£Çenesis ¤µ¤ó¹çºî¤Î¥Þ¥¹¥¯µ»Ë¡¡£
103 + o Gmask    ¤Ï ¸Å¹Â¹ä¤µ¤ó¤Î¥Þ¥¹¥¯¥Ä¡¼¥ë¡£
104
105 + (jp-extensionÉ÷¤Î README)
106
107
108 diff -c --new-file xv-3.10a.org/CPMASK xv+flmask/CPMASK
109 *** xv-3.10a.org/CPMASK Sun Sep 14 02:29:10 1997
110 --- xv+flmask/CPMASK    Sun Sep 14 03:18:49 1997
111 ***************
112 *** 0 ****
113 --- 1,21 ----
114 + [CPMASK¤Ë¤Ä¤¤¤Æ]
115 +       ¤³¤Î patch ¤Ë¤è¤Ã¤Æ¤«¤±¤é¤ì¤¿ CPmask ¤Ï FLMASK ¥×¥í¥°¥é¥àÅù
116 +       ¤Ç¤«¤±¤¿¤â¤Î¤È¤Ï°ã¤¤file ¤Ë passwd ¤Î¾ðÊó¤ò»Ä¤·¤Þ¤»¤ó¡£
117
118 +       xv ¤Ï jpeg file ¤ò save ¤¹¤ë»þ¤Ë
119 +       ¡ÖCREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 75, 
120 +         Smoothing = 0¡×
121 +       ¤È¤¤¤¦¤è¤¦¤Ê¾ðÊó¤ò²Ã¤¨¤Þ¤¹¡£
122
123 +       CPmask ¤Ï¤³¤ÎÉôʬ¤Ë¤³¤Ã¤½¤êpasswd¾ðÊó¤ò½ñ¤­¹þ¤à¤Î¤Ç¤¹¤¬¡¢¤³
124 +       ¤ì¤¬¸¶°ø¤Ç CPmask ¤Î¤«¤±¤é¤ì¤¿ file ¤ò xv ¤ÇÆɤ߹þ¤ó¤Ç¤½¤Î
125 +       ¤Þ¤Þ save ¤·¤Ê¤ª¤¹¤È passwd ¤òÄ´¤Ù¤ë tool ¤È¤«¤ÇȽÄê¤Ç¤­¤Ê¤¤
126 +       file ¤¬½ÐÍè¾å¤¬¤ë¤ï¤±¤Ç¤¹¡£
127
128 +       ¤½¤Î¤¿¤á¤Ë¡¢Á°¤Î version ¤Ç¤Ï CPmask ¤¬¤«¤±¤é¤ì¤Æ¤¤¤Ê¤¤ file
129 +       ¤Î¾ì¹ç¤Ï error pop up ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢ÉÔÊؤǤ¢¤ë
130 +       ¤È¤Î mail ¤òÂô»³¼õ¤±¤¿¤Î¤ÇÊѤ¨¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
131
132 +       ¤Ç¤¹¤«¤é¡¢¤³¤Î patch ¤Ç¤Ï¿·¤·¤¯ CPmask ¤ò¤«¤±¤º¤Ë¡¢¤Ï¤º¤¹¤À
133 +       ¤±¤Ë¤·¤Æ²¼¤µ¤¤¡£
134
135 diff -c --new-file xv-3.10a.org/Makefile xv+flmask/Makefile
136 *** xv-3.10a.org/Makefile       Sun Sep 14 02:29:10 1997
137 --- xv+flmask/Makefile  Sun Sep 14 03:18:49 1997
138 ***************
139 *** 209,214 ****
140 --- 209,215 ----
141   
142   OBJS =        xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \
143         xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \
144 +       xvmask.o xvcpmask.o xvmeko.o \
145         xvgifwr.o xvdir.o xvbutt.o xvpbm.o xvxbm.o xvgam.o xvbmp.o \
146         xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \
147         xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \
148 diff -c --new-file xv-3.10a.org/Imakefile xv+flmask/Imakefile
149 *** xv-3.10a.org/Imakefile      Sun Sep 14 02:29:10 1997
150 --- xv+flmask/Imakefile Sun Sep 14 03:18:49 1997
151 ***************
152 *** 160,165 ****
153 --- 160,166 ----
154   
155   SRCS1 =       xv.c xvevent.c xvroot.c xvmisc.c xvimage.c xvcolor.c xvsmooth.c \
156         xv24to8.c xvgif.c xvpm.c xvinfo.c xvctrl.c xvscrl.c xvalg.c \
157 +       xvmask.c xvcpmask.c xvmeko.c \
158         xvgifwr.c xvdir.c xvbutt.c xvpbm.c xvxbm.c xvgam.c xvbmp.c \
159         xvdial.c xvgraf.c xvsunras.c xvjpeg.c xvps.c xvpopup.c xvdflt.c \
160         xvtiff.c xvtiffwr.c xvpds.c xvrle.c xviris.c xvgrab.c vprintf.c \
161 ***************
162 *** 170,175 ****
163 --- 171,177 ----
164   
165   OBJS1 =       xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \
166         xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \
167 +       xvmask.o xvcpmask.o xvmeko.o \
168         xvgifwr.o xvdir.o xvbutt.o xvpbm.o xvxbm.o xvgam.o xvbmp.o \
169         xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \
170         xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \
171 diff -c --new-file xv-3.10a.org/xv.h xv+flmask/xv.h
172 *** xv-3.10a.org/xv.h   Sun Sep 14 02:29:12 1997
173 --- xv+flmask/xv.h      Sun Sep 14 06:50:03 1997
174 ***************
175 *** 8,15 ****
176   #include "config.h"
177   
178   
179 ! #define REVDATE   "Version 3.10a  Rev: 12/29/94 (PNG patch 1.2)"
180 ! #define VERSTR    "3.10a(PNG)"
181   
182   /*
183    * uncomment the following, and modify for your site, but only if you've
184 --- 8,16 ----
185   #include "config.h"
186   
187   
188 ! #define REVDATE   "Version 3.10a+FLmask  Rev: 12/29/94"
189 ! #define VERSTR    "3.10a+FLmask"
190
191   
192   /*
193    * uncomment the following, and modify for your site, but only if you've
194 ***************
195 *** 415,424 ****
196   #define BCROP    19
197   #define BUNCROP  20
198   #define BACROP   21
199 ! #define BABOUT   22
200 ! #define BQUIT    23
201 ! #define BXV      24
202 ! #define NBUTTS   25    /* # of butts */
203   
204   
205   /* buttons in the load/save window */
206 --- 416,426 ----
207   #define BCROP    19
208   #define BUNCROP  20
209   #define BACROP   21
210 ! #define BMASKS   22
211 ! #define BABOUT   23
212 ! #define BQUIT    24
213 ! #define BXV      25
214 ! #define NBUTTS   26    /* # of butts */
215   
216   
217   /* buttons in the load/save window */
218 ***************
219 *** 719,740 ****
220   #define PIC24 CONV24_24BIT
221   
222   /* indicies into algMB */
223   #define ALG_NONE      0
224 ! #define ALG_SEP1      1  /* separator */
225 ! #define ALG_BLUR      2
226 ! #define ALG_SHARPEN   3
227 ! #define ALG_EDGE      4
228 ! #define ALG_TINF      5
229 ! #define ALG_OIL       6
230 ! #define ALG_BLEND     7
231 ! #define ALG_ROTATE    8
232 ! #define ALG_ROTATECLR 9
233   #define ALG_PIXEL     10
234   #define ALG_SPREAD    11
235   #define ALG_MEDIAN    12
236   #define ALG_MAX       13
237   
238
239   /* indicies into sizeMB */
240   #define SZMB_NORM     0
241   #define SZMB_MAXPIC   1
242 --- 721,753 ----
243   #define PIC24 CONV24_24BIT
244   
245   /* indicies into algMB */
246 + #define MSK_NONE      0
247 + #define MSK_SEP1      1  /* separator */
248 + #define MSK_FLMASK    2 
249 + #define MSK_Q0MASK    3 
250 + #define MSK_WIN             4 
251 + #define MSK_MEKO      5 
252 + #define MSK_CPMASK    6 
253 + #define MSK_RGB             7 
254 + #define MSK_BITREV    8 
255 + #define MSK_COLREV    9 
256 + #define MSK_MAX             10
257 +                       
258   #define ALG_NONE      0
259 ! #define ALG_SEP1      1   /* separator */
260 ! #define ALG_BLUR      2 
261 ! #define ALG_SHARPEN   3 
262 ! #define ALG_EDGE      4 
263 ! #define ALG_TINF      5 
264 ! #define ALG_OIL       6 
265 ! #define ALG_BLEND     7 
266 ! #define ALG_ROTATE    8 
267 ! #define ALG_ROTATECLR 9 
268   #define ALG_PIXEL     10
269   #define ALG_SPREAD    11
270   #define ALG_MEDIAN    12
271   #define ALG_MAX       13
272   
273   /* indicies into sizeMB */
274   #define SZMB_NORM     0
275   #define SZMB_MAXPIC   1
276 ***************
277 *** 1209,1214 ****
278 --- 1222,1228 ----
279   WHERE MBUTT         dispMB;              /* display mode menu button */
280   WHERE MBUTT         conv24MB;            /* 24-to-8 conversion mode mbutt */
281   WHERE MBUTT         algMB;               /* Algorithms mbutt */
282 + WHERE MBUTT         flmaskMB;            /* FLmask mbutt */
283   WHERE MBUTT         rootMB;
284   WHERE MBUTT         sizeMB;
285   WHERE MBUTT         windowMB;
286 diff -c --new-file xv-3.10a.org/xvalg.c xv+flmask/xvalg.c
287 *** xv-3.10a.org/xvalg.c        Fri Dec 23 04:12:20 1994
288 --- xv+flmask/xvalg.c   Wed Sep  3 12:49:55 1997
289 ***************
290 *** 26,32 ****
291   static void Pixelize       PARM((void));
292   static void Spread         PARM((void));
293   static void MedianFilter   PARM((void));
294 ! static void saveOrigPic    PARM((void));
295   
296   static void doBlurConvolv  PARM((byte *,int,int,byte *, int,int,int,int, int));
297   static void doSharpConvolv PARM((byte *,int,int,byte *, int,int,int,int, int));
298 --- 26,33 ----
299   static void Pixelize       PARM((void));
300   static void Spread         PARM((void));
301   static void MedianFilter   PARM((void));
302
303 ! void saveOrigPic    PARM((void));
304   
305   static void doBlurConvolv  PARM((byte *,int,int,byte *, int,int,int,int, int));
306   static void doSharpConvolv PARM((byte *,int,int,byte *, int,int,int,int, int));
307 ***************
308 *** 41,47 ****
309   static void doSpread       PARM((byte *,int,int,byte *, int,int,int,int, 
310                                  int, int));
311   static void doMedianFilter PARM((byte *,int,int,byte *, int,int,int,int, int));
312
313   static void add2bb         PARM((int *, int *, int *, int *, int, int));
314   static void rotXfer        PARM((int, int, double *,double *,
315                                  double,double, double));
316 --- 42,47 ----
317 ***************
318 *** 50,62 ****
319   static void intsort        PARM((int *, int));
320   #endif
321   
322 ! static int  start24bitAlg  PARM((byte **, byte **));
323 ! static void end24bitAlg    PARM((byte *, byte *));
324
325 ! static void printUTime     PARM((char *));
326   
327 ! static byte *origPic = (byte *) NULL;
328 ! static int  origPicType;
329   static byte origrmap[256], origgmap[256], origbmap[256];
330   
331   
332 --- 50,61 ----
333   static void intsort        PARM((int *, int));
334   #endif
335   
336 ! int  start24bitAlg  PARM((byte **, byte **));
337 ! void end24bitAlg    PARM((byte *, byte *));
338 ! void printUTime     PARM((char *));
339   
340 ! byte *origPic = (byte *) NULL;
341 ! int  origPicType;
342   static byte origrmap[256], origgmap[256], origbmap[256];
343   
344   
345 ***************
346 *** 69,75 ****
347   
348   
349   /***************************/
350 ! static void printUTime(str)
351        char *str;
352   {
353   #ifdef TIMING_TEST
354 --- 68,74 ----
355   
356   
357   /***************************/
358 ! void printUTime(str)
359        char *str;
360   {
361   #ifdef TIMING_TEST
362 ***************
363 *** 82,91 ****
364   }
365   
366   
367
368
369
370
371   /************************************************************/
372   void AlgInit()
373   {
374 --- 81,86 ----
375 ***************
376 *** 96,101 ****
377 --- 91,97 ----
378     origPic = (byte *) NULL;
379   
380     algMB.dim[ALG_NONE] = 1;    /* can't undo when init'ed already */
381 +   flmaskMB.dim[MSK_NONE]=1;
382   }
383   
384   
385 ***************
386 *** 107,127 ****
387        algorithm */
388   
389     switch (anum) {
390 !   case ALG_NONE:      NoAlg();        break;
391 !   case ALG_BLUR:      Blur();         break;
392 !   case ALG_SHARPEN:   Sharpen();      break;
393 !   case ALG_EDGE:      EdgeDetect();   break;
394 !   case ALG_TINF:      TinFoil();      break;
395 !   case ALG_OIL:       OilPaint();     break;
396 !   case ALG_BLEND:     Blend();        break;
397 !   case ALG_ROTATE:    FineRotate(0);  break;
398 !   case ALG_ROTATECLR: FineRotate(1);  break;
399 !   case ALG_PIXEL:     Pixelize();     break;
400 !   case ALG_SPREAD:    Spread();       break;
401 !   case ALG_MEDIAN:    MedianFilter(); break;
402     }
403   
404     algMB.dim[ALG_NONE] = (origPic == (byte *) NULL);
405   }
406   
407   
408 --- 103,124 ----
409        algorithm */
410   
411     switch (anum) {
412 !   case ALG_NONE:      NoAlg();                break;
413 !   case ALG_BLUR:      Blur();                 break;
414 !   case ALG_SHARPEN:   Sharpen();              break;
415 !   case ALG_EDGE:      EdgeDetect();           break;
416 !   case ALG_TINF:      TinFoil();              break;
417 !   case ALG_OIL:       OilPaint();             break;
418 !   case ALG_BLEND:     Blend();                break;
419 !   case ALG_ROTATE:    FineRotate(0);          break;
420 !   case ALG_ROTATECLR: FineRotate(1);          break;
421 !   case ALG_PIXEL:     Pixelize();             break;
422 !   case ALG_SPREAD:    Spread();               break;
423 !   case ALG_MEDIAN:    MedianFilter();         break;
424     }
425   
426     algMB.dim[ALG_NONE] = (origPic == (byte *) NULL);
427 +   flmaskMB.dim[MSK_NONE] = (origPic == (byte *) NULL);
428   }
429   
430   
431 ***************
432 *** 1567,1573 ****
433   
434   
435   /***********************************************/
436 ! static int start24bitAlg(pic24, tmpPic)
437        byte **pic24, **tmpPic;
438   {
439     /* generates a 24-bit version of 'pic', if neccessary, and also mallocs
440 --- 1564,1570 ----
441   
442   
443   /***********************************************/
444 ! int start24bitAlg(pic24, tmpPic)
445        byte **pic24, **tmpPic;
446   {
447     /* generates a 24-bit version of 'pic', if neccessary, and also mallocs
448 ***************
449 *** 1600,1606 ****
450   
451   
452   /***********************************************/
453 ! static void end24bitAlg(pic24, outPic)
454        byte *pic24, *outPic;
455   {
456     /* given pic24, and outPic, which has the new 24-bit image, installs it */
457 --- 1597,1603 ----
458   
459   
460   /***********************************************/
461 ! void end24bitAlg(pic24, outPic)
462        byte *pic24, *outPic;
463   {
464     /* given pic24, and outPic, which has the new 24-bit image, installs it */
465 ***************
466 *** 1629,1635 ****
467   
468   
469   /************************/
470 ! static void saveOrigPic()
471   {
472     /* saves original picture into origPic, if it hasn't already been done.
473        This allows us to undo algorithms...  
474 --- 1626,1632 ----
475   
476   
477   /************************/
478 ! void saveOrigPic()
479   {
480     /* saves original picture into origPic, if it hasn't already been done.
481        This allows us to undo algorithms...  
482 ***************
483 *** 1669,1674 ****
484       pic = NULL;
485     }
486   }
487
488
489   
490 --- 1666,1669 ----
491 diff -c --new-file xv-3.10a.org/xvcpmask.c xv+flmask/xvcpmask.c
492 *** xv-3.10a.org/xvcpmask.c     Thu Jan  1 09:00:00 1970
493 --- xv+flmask/xvcpmask.c        Sun Sep 14 07:17:54 1997
494 ***************
495 *** 0 ****
496 --- 1,108 ----
497 + #include <sys/types.h>
498 + #include <sys/stat.h>
499 + #include <fcntl.h>
500 + #include <stdio.h>
501 + #include <stdlib.h>
502 + #include <string.h>
503
504 + #include "xv.h"
505
506 + typedef struct { int n; char flg; } CPS;
507
508 + static unsigned char CPTbl[] = {
509 +     0x10, 0x17, 0x13, 0x15, 0x09,
510 +     0x08, 0x0a, 0x14, 0x06, 0x05,
511 +     0x16, 0x02, 0x0d, 0x03, 0x01,
512 +     0x04, 0x19, 0x0c, 0x0f, 0x0e,
513 +     0x12, 0x07, 0x0b, 0x18, 0x11, 0x1a
514 + };
515
516 + void cpcode(char *filename,unsigned char *buff,int code_num)
517 + {
518 +       int i,j,fd;
519 +       unsigned char *wp, *cp;
520 +       unsigned char *CP_KEY = "kIUCHIuCHINO";
521
522 +       if(code_num>=3) return;
523 +       if((fd=open(filename,O_RDONLY))==-1) return;
524
525 +       lseek(fd,20+16*code_num,SEEK_SET);
526 +       read(fd,buff,16);
527
528 +       wp = buff;
529 +       cp = CP_KEY;
530
531 +               for ( i = 0; i < 16; i++ ) {
532 +               *wp ^= *cp;
533 +               if ( *wp & 0x80 ) *wp = '\0';
534 +               cp++;
535 +               wp++;
536 +               if ( *cp == '\0' ) cp = CP_KEY;
537 +       }
538
539 +       for (i=0;i<16;i++) {
540 +               if (buff[i]<'A' || 'Z'<buff[i]){
541 +                       buff[i]=0;
542 +                       break;
543 +               }
544 +       }
545 +       close(fd);
546 + }
547
548
549 + static void GetCPTbl(int nTbl, char *CPcode, int *tbl, CPS *cps)
550 + {
551 +     int i, k, vl1, vl2, len;
552
553 +     for(i = 0; i < nTbl; i++) {
554 +         tbl[i] = -1;
555 +         cps[i].n = i;
556 +         cps[i].flg = 0;
557 +     }
558 +     len = strlen(CPcode);
559 +     vl1 = nTbl - 1;
560 +     vl2 = len + nTbl % len;
561 +     for(k = 0; k < nTbl; k++) {
562 +         vl1 = CPTbl[CPcode[k % len] - 'A'] + vl1 + vl2;
563 +         if(vl1 >= nTbl) vl1 %= nTbl;
564 +          while(tbl[vl1] != -1) {
565 +             if(k & 01) {
566 +                 if(vl1 == 0) vl1 = nTbl;
567 +                 vl1--;
568 +             }
569 +             else {
570 +                 if(++vl1 >= nTbl) vl1 = 0;
571 +             }
572 +         }
573 +         tbl[vl1] = k;
574 +         vl2++;
575 +     }
576 +     for(i = 0, k = nTbl - 1; i < k; i++, k--) {
577 +         cps[tbl[i]].n = tbl[k];
578 +         cps[tbl[k]].n = tbl[i];
579 +         if((tbl[i] ^ tbl[k]) & 0x01)
580 +             cps[tbl[i]].flg = cps[tbl[k]].flg = 1;
581 +     }
582 + }
583
584
585 + CPS *calcCPmask(char *code, int ntbl)
586 + {
587 +     int *tbl;
588 +     int len,i;
589 +     CPS *cps;
590
591 +     len = strlen(code);
592 +     tbl = (int *)malloc(sizeof(int) * ntbl);
593 +     cps = (CPS *)malloc(sizeof(CPS) * ntbl);
594 +     if(!tbl || !cps) {
595 +       ErrPopUp ("Error:  No memory!!", "\nOk");
596 +         if(tbl) free(tbl);
597 +         exit(1);
598 +     }
599 +     GetCPTbl(ntbl, code, tbl, cps);
600 +     
601 +     free(tbl);
602 +     return(cps);
603 + }
604
605 diff -c --new-file xv-3.10a.org/xvctrl.c xv+flmask/xvctrl.c
606 *** xv-3.10a.org/xvctrl.c       Fri Dec 23 04:12:16 1994
607 --- xv+flmask/xvctrl.c  Wed Sep  3 12:49:54 1997
608 ***************
609 *** 112,117 ****
610 --- 112,128 ----
611                                "Slow 24->8",
612                                "Best 24->8" };
613   
614 + static char *mskMList[]    = { "Undo All\t\244u",
615 +                              MBSEP,
616 +                              "FLmask\t\244f",
617 +                              "Q0mask\t\244g",
618 +                              "WIN\t\244h",
619 +                              "MEKO\t\244i",
620 +                              "CPmask\t\244j",
621 +                              "RGB\t\244l",
622 +                              "BitRev.\t\244n",
623 +                              "ColRev.\t\244w"};
624
625   static char *algMList[]    = { "Undo All\t\244u",
626                                MBSEP,
627                                "Blur...\t\244b",
628 ***************
629 *** 303,311 ****
630     BTCreate(&but[BPAD],    ctrlW,BX0,          BY1,BUTTW/2,BUTTH,"",BCLS);
631     BTCreate(&but[BANNOT],  ctrlW,BX0+BUTTW/2+1,BY1,BUTTW/2,BUTTH,"",BCLS);
632   
633 !   BTCreate(&but[BCROP],   ctrlW,BX1,  BY1,BUTTW,BUTTH,"Crop",    BCLS);
634 !   BTCreate(&but[BUNCROP], ctrlW,BX2,  BY1,BUTTW,BUTTH,"UnCrop",  BCLS);
635 !   BTCreate(&but[BACROP],  ctrlW,BX3,  BY1,BUTTW,BUTTH,"AutoCrop",BCLS);
636     BTCreate(&but[BABOUT],  ctrlW,BX4,  BY1,BUTTW,BUTTH,"About XV",BCLS);
637     BTCreate(&but[BQUIT],   ctrlW,BX5,  BY1,BUTTW,BUTTH,"Quit",    BCLS);
638   
639 --- 314,324 ----
640     BTCreate(&but[BPAD],    ctrlW,BX0,          BY1,BUTTW/2,BUTTH,"",BCLS);
641     BTCreate(&but[BANNOT],  ctrlW,BX0+BUTTW/2+1,BY1,BUTTW/2,BUTTH,"",BCLS);
642   
643 ! #define NEW_BUTW BUTTW*3/4
644 !   BTCreate(&but[BCROP],   ctrlW,BX1            ,BY1,NEW_BUTW,BUTTH,"Crp",    BCLS);
645 !   BTCreate(&but[BUNCROP], ctrlW,BX1+NEW_BUTW+1   ,BY1,NEW_BUTW,BUTTH,"UCrp",  BCLS);
646 !   BTCreate(&but[BACROP],  ctrlW,BX1+NEW_BUTW*2+2,BY1,NEW_BUTW,BUTTH,"ACrp",BCLS);
647 !   BTCreate(&but[BMASKS],  ctrlW,BX1+NEW_BUTW*3+3,BY1,NEW_BUTW,BUTTH,"Mask",BCLS);
648     BTCreate(&but[BABOUT],  ctrlW,BX4,  BY1,BUTTW,BUTTH,"About XV",BCLS);
649     BTCreate(&but[BQUIT],   ctrlW,BX5,  BY1,BUTTW,BUTTH,"Quit",    BCLS);
650   
651 ***************
652 *** 341,356 ****
653     /* have to create menu buttons after XMapSubWindows, as we *don't* want 
654        the popup menus mapped */
655   
656 !   MBCreate(&dispMB,   ctrlW, CTRLWIDE - 8 - 112 - 2*(112+2), 5,112,19, 
657            "Display",    dispMList,   DMB_MAX,    BCLS);
658 !   MBCreate(&conv24MB, ctrlW, CTRLWIDE - 8 - 112 - (112+2),   5,112,19, 
659            "24/8 Bit",   conv24MList, CONV24_MAX, BCLS);
660 !   MBCreate(&algMB,    ctrlW, CTRLWIDE - 8 - 112,             5,112,19, 
661 !          "Algorithms", algMList,    ALG_MAX,    BCLS);
662   
663 !   MBCreate(&rootMB,   ctrlW, CTRLWIDE - 8 - 112 - 2*(112+2), 5+21,112,19, 
664            "Root",       rootMList,   RMB_MAX,    BCLS);
665 !   MBCreate(&windowMB, ctrlW, CTRLWIDE - 8 - 112 - (112+2),   5+21,112,19, 
666            "Windows",    windowMList, WMB_MAX,    BCLS);
667     MBCreate(&sizeMB,   ctrlW, CTRLWIDE - 8 - 112,             5+21,112,19, 
668            "Image Size", sizeMList,   SZMB_MAX,   BCLS);
669 --- 354,371 ----
670     /* have to create menu buttons after XMapSubWindows, as we *don't* want 
671        the popup menus mapped */
672   
673 !   MBCreate(&dispMB,   ctrlW, CTRLWIDE - 8 - 84 - 3*(84+2), 5,84,19, 
674            "Display",    dispMList,   DMB_MAX,    BCLS);
675 !   MBCreate(&conv24MB, ctrlW, CTRLWIDE - 8 - 84 - 2*(84+2), 5,84,19, 
676            "24/8 Bit",   conv24MList, CONV24_MAX, BCLS);
677 !   MBCreate(&algMB,    ctrlW, CTRLWIDE - 8 - 84 - (84+2),   5,84,19, 
678 !          "Algo.", algMList,    ALG_MAX,    BCLS);
679 !   MBCreate(&flmaskMB, ctrlW, CTRLWIDE - 8 - 84,          5,84,19, 
680 !          "FLmask", mskMList,    MSK_MAX,    BCLS);
681   
682 !   MBCreate(&rootMB,   ctrlW, CTRLWIDE - 8 - 112 - 2*(112+3), 5+21,112,19, 
683            "Root",       rootMList,   RMB_MAX,    BCLS);
684 !   MBCreate(&windowMB, ctrlW, CTRLWIDE - 8 - 112 - (112+3),   5+21,112,19, 
685            "Windows",    windowMList, WMB_MAX,    BCLS);
686     MBCreate(&sizeMB,   ctrlW, CTRLWIDE - 8 - 112,             5+21,112,19, 
687            "Image Size", sizeMList,   SZMB_MAX,   BCLS);
688 ***************
689 *** 437,442 ****
690 --- 452,458 ----
691     MBRedraw(&dispMB);
692     MBRedraw(&conv24MB);
693     MBRedraw(&algMB);
694 +   MBRedraw(&flmaskMB);
695     MBRedraw(&rootMB);
696     MBRedraw(&windowMB);
697     MBRedraw(&sizeMB);
698 diff -c --new-file xv-3.10a.org/xvcut.c xv+flmask/xvcut.c
699 *** xv-3.10a.org/xvcut.c        Fri Sep  5 21:12:32 1997
700 --- xv+flmask/xvcut.c   Wed Sep  3 12:49:55 1997
701 ***************
702 *** 101,107 ****
703   static Cursor cutcurs  = (Cursor) 0;
704   
705   
706
707   
708   /********************************************/
709   int CutAllowed()
710 --- 101,108 ----
711   static Cursor cutcurs  = (Cursor) 0;
712   
713   
714 ! /* FLmask: Mask Select. */
715 ! void MaskSelect (int,int,int,int);
716   
717   /********************************************/
718   int CutAllowed()
719 ***************
720 *** 1859,1862 ****
721 --- 1860,1870 ----
722     CoordC2P(cx, cy, px_ret, py_ret);
723   }
724   
725
726 + void MaskSelect (x1,x2,y1,y2)
727 + int x1,x2,y1,y2;
728 + {
729 +       selrx = x1;  selry = y1;  selrw = x2;  selrh = y2;
730 +       EnableSelection(1);
731 + }
732   
733 diff -c --new-file xv-3.10a.org/xvevent.c xv+flmask/xvevent.c
734 *** xv-3.10a.org/xvevent.c      Sun Sep 14 02:29:13 1997
735 --- xv+flmask/xvevent.c Wed Sep  3 12:51:25 1997
736 ***************
737 *** 1245,1250 ****
738 --- 1245,1256 ----
739           if (i>=0) DoAlg(i);
740           break;
741         }
742
743 +       else if (MBClick(&flmaskMB, x,y)) {
744 +         i = MBTrack(&flmaskMB);
745 +         if (i>=0) DoMask(i);
746 +         break;
747 +       }
748         
749         i=ClickCtrl(x,y);
750         
751 ***************
752 *** 1271,1276 ****
753 --- 1277,1283 ----
754         case BCROP:   Crop();                       break;
755         case BUNCROP: UnCrop();                     break;
756         case BACROP:  AutoCrop();                   break;
757 +       case BMASKS:  MaskCr();                     break;      
758           
759         case BPAD:
760           {
761 ***************
762 *** 1587,1592 ****
763 --- 1594,1609 ----
764         else if (ks==XK_d) FakeButtonPress(&but[BCLEAR]);
765   
766         else if (ks==XK_u) DoAlg(ALG_NONE);
767
768 +       else if (ks==XK_f) DoMask(MSK_FLMASK);
769 +       else if (ks==XK_g) DoMask(MSK_Q0MASK);
770 +       else if (ks==XK_h) DoMask(MSK_WIN);
771 +       else if (ks==XK_i) DoMask(MSK_MEKO);
772 +       else if (ks==XK_j) DoMask(MSK_CPMASK);
773 +       else if (ks==XK_l) DoMask(MSK_RGB);
774 +       else if (ks==XK_n) DoMask(MSK_BITREV);
775 +       else if (ks==XK_w) DoMask(MSK_COLREV);
776
777         else if (ks==XK_b) DoAlg(ALG_BLUR);
778         else if (ks==XK_s) DoAlg(ALG_SHARPEN);
779         else if (ks==XK_e) DoAlg(ALG_EDGE);
780 ***************
781 *** 1625,1631 ****
782       }
783       else {                               /* commands valid in any window */
784         switch (buf[0]) {
785 !       
786         /* things in dispMB */
787         case 'r':    SelectDispMB(DMB_RAW);           break;
788         case 'd':    SelectDispMB(DMB_DITH);          break;
789 --- 1642,1648 ----
790       }
791       else {                               /* commands valid in any window */
792         switch (buf[0]) {
793
794         /* things in dispMB */
795         case 'r':    SelectDispMB(DMB_RAW);           break;
796         case 'd':    SelectDispMB(DMB_DITH);          break;
797 ***************
798 *** 1689,1694 ****
799 --- 1706,1712 ----
800         case 'c':    FakeButtonPress(&but[BCROP]);    break;
801         case 'u':    FakeButtonPress(&but[BUNCROP]);  break;
802         case 'C':    FakeButtonPress(&but[BACROP]);   break;
803 +       case 'f':    FakeButtonPress(&but[BMASKS]);   break;
804         case 'P':    FakeButtonPress(&but[BPAD]);     break;
805         case 'A':    FakeButtonPress(&but[BANNOT]);   break;
806         
807 diff -c --new-file xv-3.10a.org/xvimage.c xv+flmask/xvimage.c
808 *** xv-3.10a.org/xvimage.c      Fri Sep  5 21:12:33 1997
809 --- xv+flmask/xvimage.c Wed Sep  3 12:49:54 1997
810 ***************
811 *** 45,51 ****
812   static int  doPadPaste        PARM((byte *, int, int, int, int));
813   static int  ReadImageFile1    PARM((char *, PICINFO *));
814   
815
816   
817   #define DO_CROP 0
818   #define DO_ZOOM 1
819 --- 45,52 ----
820   static int  doPadPaste        PARM((byte *, int, int, int, int));
821   static int  ReadImageFile1    PARM((char *, PICINFO *));
822   
823 ! byte *origPic;
824 ! int  origPicType;
825   
826   #define DO_CROP 0
827   #define DO_ZOOM 1
828 ***************
829 *** 910,915 ****
830 --- 911,922 ----
831     /* dir=0: 90 degrees clockwise, else 90 degrees counter-clockwise */
832     WaitCursor();
833     
834 +   if (origPic!=NULL) {
835 +         int tmp_pw,tmp_ph;
836 +         tmp_pw=pWIDE;
837 +         tmp_ph=pHIGH;
838 +         RotatePic(origPic,origPicType,&tmp_pw,&tmp_ph,dir);
839 +   }
840     RotatePic(pic, picType, &pWIDE, &pHIGH, dir);
841     
842     /* rotate clipped version and modify 'clip' coords */
843 diff -c --new-file xv-3.10a.org/xvmask.c xv+flmask/xvmask.c
844 *** xv-3.10a.org/xvmask.c       Thu Jan  1 09:00:00 1970
845 --- xv+flmask/xvmask.c  Sun Sep 14 07:17:12 1997
846 ***************
847 *** 0 ****
848 --- 1,912 ----
849 + /*
850 +  * xvmask.c - image mask algorithms (FLmask, etc.)
851 +  *
852 +  *  Contains:
853 +  *         void DoMask(int algnum);
854 +  */
855
856 + #include "copyright.h"
857 + #include "xv.h"
858
859 + typedef struct { int n; char flg; } CPS;
860 + typedef struct { int n; unsigned short int r; } MKT;
861
862 + /* Flmask */
863 + void cpcode           PARM ((char *, unsigned char *, int));
864 + void MaskCr           PARM ((void));
865 + static void FLmask    PARM ((void));
866 + static void Q0mask    PARM ((void));
867 + static void WINmask   PARM ((void));
868 + static void MEKOmask  PARM ((void));
869 + static void CPmask    PARM ((void));
870 + static void XOR80     PARM ((void));
871 + static void RGBchange         PARM ((void));
872 + static void BitReverse        PARM ((void));
873 + static void ColReverse        PARM ((void));
874
875 + /***** Flmask *****/
876 + static void doMaskCr          PARM ((byte *, int, int, int, int, int, int));
877 + static void doFLmask          PARM ((byte *, int, int, byte *, int, int, int, int));
878 + static void doCPmask          PARM ((byte *, int, int, byte *, int, int, int, int, char *));
879 + static void doMEKOmask                PARM ((byte *, int, int, byte *, int, int, int, int, int));
880 + static void doColReverse      PARM ((byte *, int, int, byte *, int, int, int, int, int));
881 + static void doRGBchange       PARM ((byte *, int, int, byte *, int, int, int, int));
882 + static void doQ0mask          PARM ((byte *, int, int, byte *, int, int, int, int, int, int));
883 + static int *calcFLmask                PARM ((int, int));
884 + static void move8bit          PARM ((byte *, byte *, int));
885 + static void move16bit                 PARM ((byte *, byte *, int));
886 + static void moveCP            PARM ((byte *, byte *, int, int));
887 + static void doWINmask                 PARM ((byte *, int, int, byte *, int, int, int, int));
888 + static void wincp             PARM ((int, int, byte *, byte *));
889
890 + /******************/
891
892 + int start24bitAlg             PARM ((byte **, byte **));
893 + void end24bitAlg              PARM ((byte *, byte *));
894 + void saveOrigPic              PARM ((void));
895 + void printUTime               PARM ((char *));
896
897 + byte *origPic;
898
899 + #undef TIMING_TEST
900
901 + #ifdef TIMING_TEST
902 + #include <sys/time.h>
903 + #include <sys/resource.h>
904 + #endif
905
906 + /************************/
907 + void
908 + DoMask (anum)
909 +      int anum;
910 + {
911 +     switch (anum)
912 +     {
913 +     case MSK_NONE:    DoAlg (ALG_NONE);       break;
914 +     case MSK_FLMASK:  FLmask ();              break;
915 +     case MSK_Q0MASK:  Q0mask ();              break;
916 +     case MSK_WIN:     WINmask ();             break;
917 +     case MSK_MEKO:    MEKOmask ();            break;
918 +     case MSK_CPMASK:  CPmask ();              break;
919 +     case MSK_RGB:     RGBchange ();           break;
920 +     case MSK_BITREV:  BitReverse ();          break;
921 +     case MSK_COLREV:  ColReverse ();          break;
922 +     }
923
924 +     algMB.dim[ALG_NONE] = (origPic == (byte *) NULL);
925 +     flmaskMB.dim[ALG_NONE] = (origPic == (byte *) NULL);
926 + }
927
928
929 + /******************************
930 +       Flmask:  FLMASK.
931 + ******************************/
932 + static void
933 + FLmask ()
934 + {
935 +     byte *pic24, *p24, *tmpPic, *tlp;
936 +     char *str;
937 +     int i, j, v, maxv, sx, sy, sw, sh;
938
939 +     WaitCursor ();
940
941 +     if (HaveSelection ()) GetSelRCoords (&sx, &sy, &sw, &sh);
942 +     else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; }
943
944 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
945
946 +     str = "Doing FLMASK...";
947 +     SetISTR (ISTR_INFO, str);
948
949 +     if (start24bitAlg (&pic24, &tmpPic))
950 +       return;
951 +     xvbcopy ((char *) pic24, (char *) tmpPic,
952 +            (size_t) (pWIDE * pHIGH * 3));
953
954 +     doFLmask (pic24, pWIDE, pHIGH, tmpPic, sx, sy, sw, sh);
955
956 +     end24bitAlg (pic24, tmpPic);
957 + }
958
959 + /******************************
960 +       Flmask:  BitReverse.
961 + ******************************/
962 + static void
963 + BitReverse ()
964 + {
965 +     byte *pic24, *p24, *tmpPic, *tlp;
966 +     char *str;
967 +     int i, j, v, maxv, sx, sy, sw, sh;
968
969 +     WaitCursor ();
970
971 +     if (HaveSelection ()) GetSelRCoords (&sx, &sy, &sw, &sh);
972 +     else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; }
973
974 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
975
976 +     str = "Doing reverse bit...";
977 +     SetISTR (ISTR_INFO, str);
978
979 +     if (start24bitAlg (&pic24, &tmpPic))
980 +       return;
981 +     xvbcopy ((char *) pic24, (char *) tmpPic,
982 +            (size_t) (pWIDE * pHIGH * 3));
983
984 +     doColReverse (pic24, pWIDE, pHIGH, tmpPic, sx, sy, sw, sh, 1);
985
986 +     end24bitAlg (pic24, tmpPic);
987 + }
988
989 + /******************************
990 +       Flmask:  ColReverse.
991 + ******************************/
992 + static void
993 + ColReverse ()
994 + {
995 +     byte *pic24, *p24, *tmpPic, *tlp;
996 +     char *str;
997 +     int i, j, v, maxv, sx, sy, sw, sh;
998
999 +     WaitCursor ();
1000
1001 +     if (HaveSelection ()) GetSelRCoords (&sx, &sy, &sw, &sh);
1002 +     else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; }
1003
1004 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
1005
1006 +     str = "Doing reverse colormap...";
1007 +     SetISTR (ISTR_INFO, str);
1008
1009 +     if (start24bitAlg (&pic24, &tmpPic))
1010 +       return;
1011 +     xvbcopy ((char *) pic24, (char *) tmpPic,
1012 +            (size_t) (pWIDE * pHIGH * 3));
1013
1014 +     doColReverse (pic24, pWIDE, pHIGH, tmpPic, sx, sy, sw, sh, 0);
1015 +     end24bitAlg (pic24, tmpPic);
1016 + }
1017
1018
1019 + /******************************
1020 +       Flmask:  Q0 MASK.
1021 + ******************************/
1022 + static void
1023 + Q0mask ()
1024 + {
1025 +     int pixX, pixY, err;
1026 +     static char *labels[] = {"\nOk", "\033Cancel"};
1027 +     char txt[256];
1028 +     static char buf[64] = {'8', '\0'};
1029 +     byte *pic24, *p24, *tmpPic, *tp, *tlp;
1030 +     char *str;
1031 +     int i, j, v, maxv, sx, sy, sw, sh;
1032
1033 +     sprintf (txt, "FLmask: Q0mask        \n\nEnter mask pixels size: %s\n", "(ex. '8', '8x16')");
1034
1035 +     i = GetStrPopUp (txt, labels, 2, buf, 64, "0123456789x", 1);
1036 +     if (i == 1 || strlen (buf) == 0) return;
1037
1038 +     pixX = pixY = err = 0;
1039
1040 +     if (index (buf, 'x'))
1041 +     {
1042 +       if (sscanf (buf, "%d x %d", &pixX, &pixY) != 2) err++;
1043 +     }
1044 +     else
1045 +     {
1046 +       if (sscanf (buf, "%d", &pixX) != 1) err++;
1047 +       pixY = pixX;
1048 +     }
1049
1050 +     if (pixX < 1 || pixY < 1 || err)
1051 +     {
1052 +       ErrPopUp ("Error:  The entered string is not valid.",
1053 +                 "\nWho Cares!");
1054 +       return;
1055 +     }
1056 +     WaitCursor ();
1057
1058 +     str = "Doing Q0 MASK...";
1059 +     SetISTR (ISTR_INFO, str);
1060
1061 +     if (HaveSelection ()) GetSelRCoords (&sx, &sy, &sw, &sh);
1062 +     else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; }
1063
1064 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
1065
1066 +     if (start24bitAlg (&pic24, &tmpPic)) return;
1067 +     xvbcopy ((char *) pic24, (char *) tmpPic,
1068 +            (size_t) (pWIDE * pHIGH * 3));
1069
1070 +     doQ0mask (pic24, pWIDE, pHIGH, tmpPic, sx, sy, sw, sh, pixX, pixY);
1071 +     end24bitAlg (pic24, tmpPic);
1072 + }
1073
1074 + /******************************
1075 +       Flmask:  RGBchange.
1076 + ******************************/
1077 + static void
1078 + RGBchange ()
1079 + {
1080 +     byte *pic24, *p24, *tmpPic, *tlp;
1081 +     char *str;
1082 +     int i, j, v, maxv, sx, sy, sw, sh;
1083
1084 +     WaitCursor ();
1085
1086 +     if (HaveSelection ()) GetSelRCoords (&sx, &sy, &sw, &sh);
1087 +     else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; }
1088
1089 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
1090
1091 +     str = "Doing RGB change...";
1092 +     SetISTR (ISTR_INFO, str);
1093
1094 +     if (start24bitAlg (&pic24, &tmpPic)) return;
1095 +     xvbcopy ((char *) pic24, (char *) tmpPic,
1096 +            (size_t) (pWIDE * pHIGH * 3));
1097
1098 +     doRGBchange (pic24, pWIDE, pHIGH, tmpPic, sx, sy, sw, sh);
1099
1100 +     end24bitAlg (pic24, tmpPic);
1101 + }
1102
1103 + /******************************
1104 +       Flmask:  WINmask.
1105 + ******************************/
1106 + static void
1107 + WINmask ()
1108 + {
1109 +     byte *pic24, *p24, *tmpPic, *tlp;
1110 +     char *str;
1111 +     int i, j, v, maxv, sx, sy, sw, sh;
1112
1113 +     WaitCursor ();
1114
1115 +     if (HaveSelection ()) GetSelRCoords (&sx, &sy, &sw, &sh);
1116 +     else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; }
1117
1118 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
1119
1120 +     str = "Doing WIN mask...";
1121 +     SetISTR (ISTR_INFO, str);
1122
1123 +     if (start24bitAlg (&pic24, &tmpPic)) return;
1124 +     xvbcopy ((char *) pic24, (char *) tmpPic,
1125 +            (size_t) (pWIDE * pHIGH * 3));
1126
1127 +     doWINmask (pic24, pWIDE, pHIGH, tmpPic, sx, sy, sw, sh);
1128
1129 +     end24bitAlg (pic24, tmpPic);
1130 + }
1131
1132 + /******************************
1133 +       Flmask:  MEKOmask.
1134 + ******************************/
1135 + static
1136 + void
1137 + MEKOmask ()
1138 + {
1139 +     static char *labels[] = {"\nForward", "\nBackward"};
1140 +     char txt[256], key[48];
1141 +     byte *pic24, *p24, *tmpPic, *tp, *tlp;
1142 +     char *str;
1143 +     int i, j, v, maxv, sx, sy, sw, sh;
1144
1145 +     memset (key, 0, 48);
1146
1147 +     sprintf (txt, "FLmask: MEKO mask  \n\n    Select MEKOmask type ",
1148 +            key);
1149 +     i = PopUp (txt, labels, 2);
1150
1151 +     WaitCursor ();
1152 +     str = "Doing MEKOmask...";
1153 +     SetISTR (ISTR_INFO, str);
1154
1155 +     if (HaveSelection ()) GetSelRCoords (&sx, &sy, &sw, &sh);
1156 +     else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; }
1157
1158 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
1159
1160 +     if (start24bitAlg (&pic24, &tmpPic)) return;
1161 +     xvbcopy ((char *) pic24, (char *) tmpPic,
1162 +            (size_t) (pWIDE * pHIGH * 3));
1163 +     doMEKOmask (pic24, pWIDE, pHIGH, tmpPic, sx, sy, sw, sh, i);
1164 +     end24bitAlg (pic24, tmpPic);
1165 + }
1166
1167 + /************************/
1168 + static void
1169 + doMEKOmask (pic24, w, h, results, selx, sely, selw, selh, flag)
1170 +      byte *pic24, *results;
1171 +      int w, h, selx, sely, selw, selh, flag;
1172 + {
1173 +     register byte *dst, *src;
1174 +     register int x, y, i;
1175 +     register int xmax, ymax;
1176 +     MKT *mt;
1177
1178 +     printUTime ("start of MEKOmask.");
1179
1180 +     xmax = selw / 16;
1181 +     ymax = selh / 16;
1182
1183 +     mt = (MKT *) calcMEKO (xmax * ymax);
1184 +     if (mt == NULL)
1185 +       return;
1186
1187 +     for (i = 0; i < xmax * ymax; i++)
1188 +     {
1189 +       ProgressMeter (1, (xmax * ymax) - 1, i, "MEKOmask");
1190 +       if ((i & 63) == 0)
1191 +           WaitCursor ();
1192
1193 +       if (flag == 0)
1194 +       {
1195 +           dst = results + ((sely + ((mt[i].n - 1) / xmax) * 16) * w
1196 +                            + selx + ((mt[i].n - 1) % xmax) * 16) * 3;
1197 +           src = pic24 + ((sely + (i / xmax) * 16) * w
1198 +                          + selx + (i % xmax) * 16) * 3;
1199 +       }
1200 +       else
1201 +       {
1202 +           src = pic24 + ((sely + ((mt[i].n - 1) / xmax) * 16) * w
1203 +                          + selx + ((mt[i].n - 1) % xmax) * 16) * 3;
1204 +           dst = results + ((sely + (i / xmax) * 16) * w
1205 +                            + selx + (i % xmax) * 16) * 3;
1206 +       }
1207 +       move16bit (dst, src, w);
1208 +     }
1209
1210 +     free (mt);
1211 +     printUTime ("end of MEKOmask.");
1212 + }
1213
1214 + static void
1215 + move16bit (byte * dest, byte * src, int w)
1216 + {
1217 +     int y, x;
1218 +     byte *tmp1, *tmp2;
1219
1220 +     for (y = 0; y < 16; y++)
1221 +     {
1222 +       tmp1 = dest + y * w * 3;
1223 +       tmp2 = src + y * w * 3;
1224 +       for (x = 0; x < 16 * 3; x++)
1225 +       {
1226 +           *tmp1 = *tmp2;
1227 +           tmp1++;
1228 +           tmp2++;
1229 +       }
1230 +     }
1231 + }
1232
1233 + /******************************
1234 +       Flmask:  CP MASK.
1235 + ******************************/
1236 + static void
1237 + CPmask ()
1238 + {
1239 +     static char *labels[] = {"\nOk", "\033Cancel"};
1240 +     char buf[64];
1241 +     char txt[256], key[48];
1242 +     byte *pic24, *p24, *tmpPic, *tp, *tlp;
1243 +     char *str;
1244 +     int i, j, v, maxv, sx, sy, sw, sh;
1245
1246 +     memset (key, 0, 48);
1247 +     cpcode (fullfname, key, 0);
1248 +     if (key[0] == 0)
1249 +     {
1250 +       memset (key, 0, 48);
1251 +       cpcode (fullfname, key, 1);
1252 +       if (key[0] == 0)
1253 +       {
1254 +           memset (key, 0, 48);
1255 +           cpcode (fullfname, key, 2);
1256 +       }
1257 +     }
1258
1259 +     strcpy(buf,key);
1260 +     if (strlen(buf)==0)strcpy(buf,"SAMPLE");
1261 +     sprintf (txt, "FLmask: CPmask          \n\nEnter CPmask code: %s \n",
1262 +       "(ex. 'SAMPLE')");
1263
1264 +     i = GetStrPopUp (txt, labels, 2, buf, 64, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1);
1265 +     if (i == 1 || strlen (buf) == 0) return; 
1266 +     strcpy(key,buf);
1267
1268 +     /*  Old version.
1269 +     sprintf (txt, "FLmask: CP mask  \n\n   CP code = %s ", key);
1270 +     i = PopUp (txt, labels, 2);
1271 +     if (i == 1) return;
1272 +     */
1273
1274 +     WaitCursor ();
1275 +     str = "Doing CP mask...";
1276 +     SetISTR (ISTR_INFO, str);
1277
1278 +     if (HaveSelection ()) GetSelRCoords (&sx, &sy, &sw, &sh);
1279 +     else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; }
1280
1281 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
1282
1283 +     if (start24bitAlg (&pic24, &tmpPic)) return;
1284 +     xvbcopy ((char *) pic24, (char *) tmpPic,
1285 +            (size_t) (pWIDE * pHIGH * 3));
1286 +     doCPmask (pic24, pWIDE, pHIGH, tmpPic, sx, sy, sw, sh, key);
1287 +     end24bitAlg (pic24, tmpPic);
1288 + }
1289
1290 + /************************/
1291 + static void
1292 + doCPmask (pic24, w, h, results, selx, sely, selw, selh, key)
1293 +      byte *pic24, *results;
1294 +      int w, h, selx, sely, selw, selh;
1295 +      char *key;
1296 + {
1297 +     register byte *dst, *src;
1298 +     register int x, y, i;
1299 +     register int xmax, ymax;
1300 +     CPS *cps;
1301
1302 +     printUTime ("start of CPmask.");
1303
1304 +     xmax = selw / 8;
1305 +     ymax = selh / 8;
1306
1307 +     cps = (CPS *) calcCPmask (key, xmax * ymax);
1308
1309 +     for (i = 0; i < xmax * ymax; i++)
1310 +     {
1311 +       ProgressMeter (1, (xmax * ymax) - 1, i, "CPmask");
1312 +       if ((i & 63) == 0) WaitCursor ();
1313
1314 +       dst = results + ((sely + (cps[i].n / xmax) * 8) * w
1315 +                        + selx + (cps[i].n % xmax) * 8) * 3;
1316 +       src = pic24 + ((sely + (i / xmax) * 8) * w
1317 +                      + selx + (i % xmax) * 8) * 3;
1318 +       moveCP (dst, src, w, cps[i].flg);
1319 +     }
1320
1321 +     free (cps);
1322 +     printUTime ("end of CPmask.");
1323 + }
1324
1325 + static void
1326 + moveCP (byte * dest, byte * src, int w, int cp_flag)
1327 + {
1328 +     int y, x;
1329 +     byte *tmp1, *tmp2;
1330
1331 +     if (cp_flag == 0)
1332 +     {
1333 +       for (y = 0; y < 8; y++)
1334 +       {
1335 +           tmp1 = dest + y * w * 3;
1336 +           tmp2 = src + y * w * 3;
1337 +           for (x = 0; x < 8 * 3; x += 3)
1338 +           {
1339 +               tmp1[0] = (byte) ~ tmp2[1];
1340 +               tmp1[1] = (byte) ~ tmp2[0];
1341 +               tmp1[2] = (byte) ~ tmp2[2];
1342 +               tmp1 += 3;
1343 +               tmp2 += 3;
1344 +           }
1345 +       }
1346 +     }
1347 +     else
1348 +     {
1349 +       for (y = 0; y < 8; y++)
1350 +       {
1351 +           tmp1 = dest + y * 3;
1352 +           tmp2 = src + y * w * 3;
1353 +           for (x = 0; x < 8 * 3; x += 3)
1354 +           {
1355 +               tmp1[0] = (byte) ~ tmp2[1];
1356 +               tmp1[1] = (byte) ~ tmp2[0];
1357 +               tmp1[2] = (byte) ~ tmp2[2];
1358 +               tmp1 += w * 3;
1359 +               tmp2 += 3;
1360 +           }
1361 +       }
1362 +     }
1363 + }
1364
1365 + /************************/
1366 + static void
1367 + doFLmask (pic24, w, h, results, selx, sely, selw, selh)
1368 +      byte *pic24, *results;
1369 +      int w, h, selx, sely, selw, selh;
1370 + {
1371 +     register byte *dst, *src;
1372 +     register int x, y, i;
1373 +     register int *ar, xmax, ymax;
1374
1375 +     printUTime ("start of FLMASK.");
1376
1377 +     xmax = selw / 8;
1378 +     ymax = selh / 8;
1379 +     ar = (int *) calcFLmask (xmax, ymax);
1380
1381 +     for (i = 0; i < xmax * ymax; i++)
1382 +     {
1383 +       ProgressMeter (1, (xmax * ymax * 2) - 1,
1384 +               i + xmax * ymax, "FLMASK");
1385 +       if ((i & 63) == 0) WaitCursor ();
1386
1387 +       dst=results+((sely+(ar[xmax*ymax-i-1]/xmax)*8)*w
1388 +               +selx+(ar[xmax*ymax-i-1]%xmax)*8)*3;
1389 +       src=pic24+((sely+(ar[i]/xmax)*8)*w
1390 +               +selx+(ar[i]%xmax)*8)*3;
1391 +       if (ar[i] != ar[xmax * ymax - i - 1])
1392 +           move8bit (dst, src, w);
1393 +     }
1394
1395 +     free (ar);
1396 +     printUTime ("end of FLMASK.");
1397 + }
1398
1399 + static int *
1400 + calcFLmask (int xmax, int ymax)
1401 + {
1402 +     int *spc, *tmp_ar;
1403 +     int i, l, x, y, c;
1404 +     struct direction { int x; int y; } dir[4];
1405
1406 +     dir[0].x = 0;  dir[0].y = -1;
1407 +     dir[1].x = -1; dir[1].y = 0;
1408 +     dir[2].x = 0;  dir[2].y = 1;
1409 +     dir[3].x = 1;  dir[3].y = 0;
1410
1411 +     spc = (int *) malloc (sizeof (int) * xmax * ymax);
1412 +     tmp_ar = (int *) malloc (sizeof (int) * xmax * ymax);
1413
1414 +     c = 0;
1415 +     for (l = 0; l < ymax; l++)
1416 +     {
1417 +       for (i = 0; i < xmax; i++)
1418 +       {
1419 +           spc[c] = c;
1420 +           c++;
1421 +       }
1422 +     }
1423
1424 +     c = 3;
1425 +     x = 0;
1426 +     y = ymax - 1;
1427 +     for (i = 0; i < xmax * ymax; i++)
1428 +     {
1429 +       ProgressMeter (1, (xmax * ymax * 2) - 1, i, "FLmask");
1430 +       if ((i & 63) == 0) WaitCursor ();
1431
1432 +       tmp_ar[i] = spc[x + y * xmax];
1433 +       if ((x + dir[c].x) == xmax || (x + dir[c].x) < 0)
1434 +       {
1435 +           c++;
1436 +           if (c == 4) c = 0;
1437 +       }
1438 +       if ((y + dir[c].y) == ymax || (y + dir[c].y) < 0)
1439 +       {
1440 +           c++;
1441 +           if (c == 4) c = 0;
1442 +       }
1443 +       for (l = 0; l < i; l++)
1444 +       {
1445 +               if(spc[x+(dir[c].x)+(y+(dir[c].y))*xmax]==tmp_ar[l])
1446 +           {
1447 +               c++;
1448 +               if (c == 4) c = 0;
1449 +               break;
1450 +           }
1451 +       }
1452 +       x = x + dir[c].x;
1453 +       y = y + dir[c].y;
1454 +     }
1455 +     free (spc);
1456 +     return (tmp_ar);
1457 + }
1458
1459 + static void
1460 + move8bit (byte * dest, byte * src, int w)
1461 + {
1462 +     int y, x;
1463 +     byte *tmp1, *tmp2;
1464
1465 +     for (y = 0; y < 8; y++)
1466 +     {
1467 +       tmp1 = dest + y * w * 3;
1468 +       tmp2 = src + y * w * 3;
1469 +       for (x = 0; x < 8 * 3; x++)
1470 +       {
1471 +           *tmp1 = (byte) ~ (*tmp2);
1472 +           tmp1++;
1473 +           tmp2++;
1474 +       }
1475 +     }
1476 + }
1477
1478 + /************************/
1479 + static void
1480 + doColReverse (pic24, w, h, results, selx, sely, selw, selh, bit_flag)
1481 +      byte *pic24, *results;
1482 +      int w, h, selx, sely, selw, selh, bit_flag;
1483 + {
1484 +     register byte *p24;
1485 +     register byte *rp;
1486 +     register int x, y;
1487
1488 +     printUTime ("start of Reverse.");
1489
1490 +     for (y = sely; y < sely + selh; y++)
1491 +     {
1492
1493 +       ProgressMeter (sely + 1, (sely + selh - 1) - 1, y, "Reverse");
1494 +       if ((y & 63) == 0) WaitCursor ();
1495
1496 +       rp = results + (y * w + selx) * 3;
1497 +       p24 = pic24 + (y * w + selx) * 3;
1498
1499 +       if (bit_flag == 1)
1500 +       {
1501 +           /* BitReverse. */
1502 +           for (x = selx; x < selx + selw * 3; x++, p24++, rp++)
1503 +               *rp = (byte) ~ (*p24);
1504
1505 +       }
1506 +       else
1507 +       {
1508 +           /* ColReverse. */
1509 +           for (x = selx; x < selx + selw * 3; x++, p24++, rp++)
1510 +               *rp = *p24 ^ 0x80;
1511 +       }
1512 +     }
1513 +     printUTime ("end of Reverse.");
1514 + }
1515
1516 + /************************/
1517 + static void
1518 + doQ0mask (pic24, w, h, results, selx, sely, selw, selh, pixX, pixY)
1519 +      byte *pic24, *results;
1520 +      int w, h, selx, sely, selw, selh, pixX, pixY;
1521 + {
1522 +     register byte *p24;
1523 +     register int bperlin, rsum, gsum, bsum;
1524 +     byte *rp;
1525 +     int i, x, y;
1526 +     int skip, y0, x0;
1527
1528 +     printUTime ("start of Q0mask.");
1529
1530 +     bperlin = w * 3;
1531
1532 +     for (y = sely; y < sely + ((selh / pixY) * pixY); y++)
1533 +     {
1534 +       ProgressMeter(sely+1,(sely+((selh/pixY)*pixY))-1,y,"Q0mask");
1535 +       if ((y & 63) == 0) WaitCursor ();
1536
1537 +       rp = results + (y * w + selx) * 3;
1538 +       y0 = y - sely;
1539 +       p24=pic24+((((y0/pixY+1)*pixY)-1-(y0%pixY)+sely)*w+selx)*3;
1540
1541 +       for(x=selx;x<selx+((selw/pixX)*pixX);x++,p24+=3,rp+=3)
1542 +       {
1543 +           x0 = x - selx;
1544 +           skip = (pixX - 1 - 2 * (x0 % pixX)) * 3;
1545
1546 +           rp[0] = (byte) ~ p24[skip];
1547 +           rp[1] = (byte) ~ p24[skip + 1];
1548 +           rp[2] = (byte) ~ p24[skip + 2];
1549 +       }
1550 +     }
1551 +     printUTime ("end of Q0 MASK.");
1552 + }
1553
1554 + /************************/
1555 + static void
1556 + doWINmask (pic24, w, h, results, selx, sely, selw, selh)
1557 +      byte *pic24, *results;
1558 +      int w, h, selx, sely, selw, selh;
1559 + {
1560 +     register byte *p24;
1561 +     register byte *rp;
1562 +     register int x, y;
1563
1564 +     printUTime ("start of WIN mask.");
1565
1566 +     for (y = sely; y < sely + selh; y++)
1567 +     {
1568
1569 +       ProgressMeter (sely + 1, (sely + selh - 1) - 1, y, "WINmask");
1570 +       if ((y & 63) == 0) WaitCursor ();
1571
1572 +       rp = results + (y * w + selx) * 3;
1573 +       p24 = pic24 + (y * w + selx) * 3;
1574
1575 +       for(x=selx;x<selx+(selw/16)*16*3;x+=48,p24+=48,rp+=48)
1576 +       {
1577 +           wincp ( 0,12, p24, rp);
1578 +           wincp ( 1, 8, p24, rp);
1579 +           wincp ( 2, 6, p24, rp);
1580 +           wincp ( 3,15, p24, rp);
1581 +           wincp ( 4, 9, p24, rp);
1582 +           wincp ( 5,13, p24, rp);
1583 +           wincp ( 6, 2, p24, rp);
1584 +           wincp ( 7,11, p24, rp);
1585 +           wincp ( 8, 1, p24, rp);
1586 +           wincp ( 9, 4, p24, rp);
1587 +           wincp (10,14, p24, rp);
1588 +           wincp (11, 7, p24, rp);
1589 +           wincp (12, 0, p24, rp);
1590 +           wincp (13, 5, p24, rp);
1591 +           wincp (14,10, p24, rp);
1592 +           wincp (15, 3, p24, rp);
1593 +       }
1594 +     }
1595 +     printUTime ("end of WIN mask.");
1596 + }
1597
1598 + static void
1599 + wincp (int src, int dst, byte * p24, byte * rp)
1600 + {
1601 +     *(rp + dst * 3) = *(p24 + src * 3);
1602 +     *(rp + dst * 3 + 1) = *(p24 + src * 3 + 1);
1603 +     *(rp + dst * 3 + 2) = *(p24 + src * 3 + 2);
1604 + }
1605
1606 + /************************/
1607 + static void
1608 + doRGBchange (pic24, w, h, results, selx, sely, selw, selh)
1609 +      byte *pic24, *results;
1610 +      int w, h, selx, sely, selw, selh;
1611 + {
1612 +     register byte *p24;
1613 +     register byte *rp;
1614 +     register int x, y;
1615
1616 +     printUTime ("start of RGB change.");
1617
1618 +     for (y = sely; y < sely + selh; y++)
1619 +     {
1620
1621 +       ProgressMeter (sely + 1, (sely + selh - 1) - 1, y, "Change");
1622 +       if ((y & 63) == 0) WaitCursor ();
1623
1624 +       rp = results + (y * w + selx) * 3;
1625 +       p24 = pic24 + (y * w + selx) * 3;
1626
1627 +       for (x = selx; x < selx + selw * 3; x += 3, p24 += 3, rp += 3)
1628 +       {
1629 +           *rp = *(p24 + 1);
1630 +           *(rp + 1) = *(p24 + 2);
1631 +           *(rp + 2) = *(p24);
1632 +       }
1633 +     }
1634 +     printUTime ("end of Reverse.");
1635 + }
1636
1637
1638 + /******************************
1639 +       Flmask:  MaskCrop.
1640 + ******************************/
1641 + void
1642 + MaskCr ()
1643 + {
1644 +     byte *pic24, *p24, *tmpPic, *tlp;
1645 +     char str[] = "Doing AutoMaskCrop...";
1646 +     int i, j, v, maxv, sx, sy, sw, sh;
1647
1648 +     WaitCursor ();
1649
1650 +     if (HaveSelection ())
1651 +       GetSelRCoords (&sx, &sy, &sw, &sh);
1652 +     else
1653 +     {
1654 +       sx = 0;
1655 +       sy = 0;
1656 +       sw = pWIDE - 1;
1657 +       sh = pHIGH - 1;
1658 +     }
1659
1660 +     CropRect2Rect (&sx, &sy, &sw, &sh, 0, 0, pWIDE, pHIGH);
1661
1662 +     SetISTR (ISTR_INFO, str);
1663
1664 +     if (start24bitAlg (&pic24, &tmpPic)) return;
1665 +     xvbcopy ((char *) pic24, (char *) tmpPic,
1666 +            (size_t) (pWIDE * pHIGH * 3));
1667
1668 +     doMaskCr (pic24, pWIDE, pHIGH, sx, sy, sw, sh);
1669
1670 +     end24bitAlg (pic24, tmpPic);
1671 + }
1672
1673 + /************************/
1674 + static void
1675 + doMaskCr (pic24, w, h, selx, sely, selw, selh)
1676 +      byte *pic24;
1677 +      int w, h, selx, sely, selw, selh;
1678 + {
1679 +     register byte *p24, *p24u;
1680 +     register int x, y;
1681 +     double edge, *edgeX, *edgeY, maxX, maxY, tmp;
1682 +     int x1, x2, y1, y2, i;
1683 +     int xp1, xp2, yp1, yp2;
1684
1685 +     printUTime ("start of MaskCrop.");
1686
1687 +     edgeX = (double *) malloc (sizeof (edge) * selw);
1688 +     edgeY = (double *) malloc (sizeof (edge) * selh);
1689 +     memset (edgeX, 0, sizeof (edge) * selw);
1690 +     memset (edgeY, 0, sizeof (edge) * selh);
1691
1692 +     for (y = sely + 1; y < sely + selh - 1; y++)
1693 +     {
1694 +       ProgressMeter (sely + 1, (sely + selh - 1) - 1, y, "Search");
1695 +       if ((y & 63) == 0) WaitCursor ();
1696
1697 +       p24u = pic24 + ((y - 1) * w + selx) * 3;
1698 +       p24 = pic24 + (y * w + selx) * 3;
1699
1700 + #define DBL(x)        ((x)*(x))
1701 +       for (x = selx; x < selx + selw * 3; x += 3)
1702 +       {
1703 +           edgeX[(x - selx) / 3] += (double) DBL (p24[3] - p24[0]) +
1704 +               DBL (p24[4] - p24[1]) + DBL (p24[5] - p24[2]);
1705 +           edgeY[y - sely] += (double) DBL (p24[0] - p24u[0]) +
1706 +               DBL (p24[1] - p24u[1]) + DBL (p24[2] - p24u[2]);
1707 +           p24u += 3;
1708 +           p24 += 3;
1709 +       }
1710 +     }
1711
1712 +     maxX = 0;
1713 +     for (x = 0; x < selw; x++)
1714 +     {
1715 +       if (maxX < edgeX[x])
1716 +           maxX = edgeX[x];
1717 +     }
1718 +     maxY = 0;
1719 +     for (y = 0; y < selh; y++)
1720 +     {
1721 +       if (maxY < edgeY[y])
1722 +           maxY = edgeY[y];
1723 +     }
1724
1725 +     tmp = 0.3;        /* ¢«¢­¤³¤ÎÊդοôÃͤÏŬÅö¤Ë·èÄꤵ¤ì¤Þ¤·¤¿(?)¡£ */
1726 +     for (;;)
1727 +     {
1728 +       xp1 = 0; xp2 = 0;
1729 +       yp1 = 0; yp2 = 0;
1730 +       for (x = 1; x < selw - 1; x++) {
1731 +           if (edgeX[x] > maxX * tmp) { xp1 = x; break; }
1732 +       }
1733 +       for (x = selw - 1; x >= 1; x--) {
1734 +           if (edgeX[x] > maxX * tmp) { xp2 = x; break; }
1735 +       }
1736 +       for (y = 1; y < selh - 1; y++) {
1737 +           if (edgeY[y] >= maxY * tmp) { yp1 = y; break; }
1738 +       }
1739 +       for (y = selh - 1; y >= 1; y--) {
1740 +           if (edgeY[y] >= maxY * tmp) { yp2 = y; break; }
1741 +       }
1742 +       if(xp2-xp1 > 4 && yp2-yp1 > 4 && xp1*xp2*yp1*yp2 != 0) break;
1743
1744 +       if (tmp <= 0.01) return;
1745 +       else tmp = tmp / 2.0;
1746 +     }
1747
1748 +     free (edgeY);
1749 +     free (edgeX);
1750
1751 +     x1 = xp1 + selx + 1;
1752 +     x2 = xp2 - xp1;
1753 +     y1 = yp1 + sely;
1754 +     y2 = yp2 - yp1;
1755
1756 +     /* crop1(x1,y1,x2,y2,0);  <-- DO_CROP  */
1757 +     MaskSelect (x1, x2, y1, y2);
1758
1759 +     printUTime ("end of MaskSearch.");
1760 + }
1761 diff -c --new-file xv-3.10a.org/xvmeko.c xv+flmask/xvmeko.c
1762 *** xv-3.10a.org/xvmeko.c       Thu Jan  1 09:00:00 1970
1763 --- xv+flmask/xvmeko.c  Tue Sep  9 21:59:21 1997
1764 ***************
1765 *** 0 ****
1766 --- 1,962 ----
1767 + #include <stdio.h>
1768 + #include <stdlib.h>
1769
1770 + unsigned short int mekornd[9216] = {
1771 +     0x2064,0x16F2,0x0AD2,0x0E1F,0x0A31,0x17CE,0x0DE8,0x1C41,0x0878,0x1349,
1772 +     0x184B,0x1B51,0x0841,0x19A3,0x0820,0x0C12,0x1117,0x2117,0x1BC1,0x1F13,
1773 +     0x19ED,0x0230,0x040D,0x1957,0x116D,0x0FD6,0x1E4F,0x0C28,0x1D28,0x077A,
1774 +     0x205E,0x053D,0x0686,0x13AC,0x1A0E,0x16DE,0x1607,0x1504,0x0CED,0x088F,
1775 +     0x159D,0x0EF4,0x0C3F,0x1120,0x225D,0x0B43,0x1B2D,0x184C,0x043D,0x1221,
1776 +     0x0A12,0x225C,0x04F0,0x1399,0x1289,0x1899,0x1B0B,0x1A2B,0x1383,0x084A,
1777 +     0x1DEE,0x118C,0x2395,0x00F5,0x16CD,0x0A9C,0x0E73,0x1FF9,0x0288,0x0014,
1778 +     0x0EA9,0x17B3,0x13AF,0x03A7,0x0CE7,0x20AC,0x0E93,0x1F1E,0x207D,0x00B4,
1779 +     0x1833,0x1DD4,0x09FD,0x0819,0x052A,0x16C9,0x1893,0x2134,0x0D8F,0x1597,
1780 +     0x1573,0x22B5,0x1B55,0x04CE,0x0BB1,0x02FD,0x0685,0x0AAD,0x18DA,0x0A6C,
1781 +     0x0E92,0x15C5,0x0695,0x0A70,0x1D67,0x11D0,0x0CC9,0x1E8A,0x12AC,0x0EF1,
1782 +     0x220D,0x04FB,0x1034,0x00F4,0x0E6D,0x1F90,0x1649,0x108C,0x0AAA,0x1160,
1783 +     0x238F,0x056C,0x0E0C,0x20A7,0x0658,0x0502,0x1973,0x0FB2,0x12D8,0x0D94,
1784 +     0x1201,0x03BA,0x167E,0x237F,0x0D38,0x00E0,0x2183,0x201B,0x1192,0x08C1,
1785 +     0x1240,0x20CB,0x073F,0x10DE,0x1379,0x163A,0x1D2E,0x0A15,0x19DB,0x02CD,
1786 +     0x01BC,0x032C,0x23B9,0x1FD2,0x1E7D,0x1518,0x2148,0x0E72,0x235E,0x1DF0,
1787 +     0x0538,0x1BCB,0x0926,0x1C17,0x0134,0x175A,0x1872,0x0ECF,0x06EB,0x0045,
1788 +     0x100D,0x06EF,0x1EFE,0x0777,0x006C,0x0386,0x1DA4,0x1351,0x07AB,0x21EA,
1789 +     0x1FF2,0x1017,0x182B,0x047B,0x1531,0x19DE,0x0F3A,0x186C,0x052E,0x1A15,
1790 +     0x23E5,0x1901,0x0B44,0x0458,0x20E8,0x20AF,0x0793,0x23DD,0x1F3B,0x17D4,
1791 +     0x1879,0x2262,0x101D,0x224A,0x0D12,0x01F0,0x1B7D,0x1BEE,0x224F,0x04C7,
1792 +     0x1D8F,0x132F,0x1E94,0x0F26,0x2193,0x164A,0x1B0A,0x22F2,0x0393,0x00DA,
1793 +     0x0924,0x1DCD,0x17A2,0x038D,0x0263,0x10AA,0x2344,0x089B,0x0085,0x0C80,
1794 +     0x196A,0x16E7,0x09C5,0x0903,0x08D3,0x21AE,0x0255,0x049D,0x1F67,0x207C,
1795 +     0x0CCA,0x055C,0x0E8F,0x1FD3,0x15A9,0x1B9E,0x1640,0x0983,0x08CC,0x0CE6,
1796 +     0x0E5E,0x15CF,0x2248,0x0BDB,0x1FB4,0x1BD6,0x08B2,0x092B,0x10B7,0x1832,
1797 +     0x1558,0x214F,0x005A,0x1E9D,0x15DC,0x1DAB,0x0435,0x199F,0x0B42,0x23DA,
1798 +     0x1BCD,0x1339,0x095C,0x1A89,0x08FA,0x2379,0x0F74,0x060A,0x1408,0x0EB3,
1799 +     0x1559,0x00AC,0x0D0D,0x14D4,0x07B1,0x1ACC,0x1707,0x03C4,0x0FBE,0x0C76,
1800 +     0x21A8,0x0A0B,0x0D60,0x1E97,0x1625,0x117A,0x0415,0x008F,0x1F9C,0x00A6,
1801 +     0x19C5,0x04E7,0x21F2,0x0E08,0x17BA,0x10B9,0x0656,0x22C4,0x2048,0x070E,
1802 +     0x15CB,0x01F3,0x0488,0x1167,0x14A2,0x08CF,0x0AC2,0x12BE,0x20A1,0x0501,
1803 +     0x01B2,0x004B,0x10E2,0x09C9,0x01FA,0x05B7,0x0E20,0x0D55,0x003B,0x1413,
1804 +     0x1F7E,0x1A03,0x06CB,0x21C4,0x1FA5,0x1E15,0x0C14,0x0A93,0x133B,0x0498,
1805 +     0x1EB7,0x0BFB,0x1774,0x1F14,0x21D0,0x1930,0x04FF,0x0245,0x1B0C,0x2368,
1806 +     0x198C,0x1487,0x08C2,0x20A0,0x18BE,0x010B,0x16AE,0x1C65,0x08EA,0x23E8,
1807 +     0x09D0,0x158B,0x237D,0x1F72,0x2051,0x188E,0x04A7,0x2074,0x1E91,0x1557,
1808 +     0x07DC,0x2136,0x0F50,0x234C,0x1602,0x0572,0x20DB,0x00B8,0x1929,0x17A5,
1809 +     0x0E82,0x0D86,0x03BD,0x1B02,0x2323,0x0445,0x1AB6,0x02B4,0x0D1A,0x1524,
1810 +     0x03FE,0x1231,0x189A,0x18DE,0x15F6,0x17EB,0x0B89,0x14CA,0x0910,0x09B9,
1811 +     0x1380,0x0559,0x169D,0x22A0,0x00D0,0x0F7A,0x0FB7,0x1FFF,0x1996,0x06FF,
1812 +     0x0FA5,0x1C83,0x0C61,0x1ECE,0x061F,0x193E,0x232E,0x048E,0x0B5A,0x03D4,
1813 +     0x1CF9,0x0B0F,0x2274,0x18EF,0x1CB5,0x1CAF,0x18B1,0x0FF3,0x0712,0x19CD,
1814 +     0x1E6E,0x0A25,0x1375,0x0525,0x19DA,0x0042,0x0BF4,0x1FFC,0x03D0,0x1974,
1815 +     0x1C33,0x0DB3,0x0180,0x0E8C,0x22EB,0x1121,0x00A1,0x02FC,0x1B3C,0x1D68,
1816 +     0x15FD,0x22BF,0x1C5D,0x15AB,0x1BB7,0x00F6,0x2219,0x09FB,0x18DF,0x19D5,
1817 +     0x1396,0x044A,0x1381,0x218D,0x1AEF,0x0603,0x22E1,0x237B,0x0BD3,0x110B,
1818 +     0x171A,0x201F,0x0C92,0x059C,0x1B10,0x14AB,0x21E1,0x074B,0x1C8D,0x083E,
1819 +     0x1684,0x117C,0x0D73,0x1740,0x0F45,0x016C,0x153E,0x15FE,0x08C5,0x2080,
1820 +     0x166E,0x05A2,0x1897,0x18EB,0x0038,0x1F4B,0x1EBA,0x07F5,0x0DB4,0x22E9,
1821 +     0x0977,0x0724,0x0287,0x0DCB,0x0EFD,0x11A7,0x0C66,0x1393,0x078E,0x2017,
1822 +     0x1849,0x03B6,0x175F,0x1E05,0x1FB7,0x0AF6,0x03AC,0x02FF,0x10EE,0x07E6,
1823 +     0x1529,0x1EC1,0x005D,0x14BB,0x074F,0x098E,0x214B,0x0EB2,0x0B96,0x1940,
1824 +     0x11FB,0x0721,0x180F,0x2346,0x1163,0x1BE9,0x1BC4,0x1B7E,0x03D7,0x19C0,
1825 +     0x23F6,0x0C0C,0x1F60,0x0CD4,0x1882,0x22FB,0x21EB,0x0948,0x122B,0x0474,
1826 +     0x121B,0x09C2,0x17CF,0x1993,0x2112,0x2259,0x2292,0x142A,0x00D2,0x125B,
1827 +     0x0E63,0x0F81,0x0E2E,0x01EC,0x0D11,0x1791,0x2353,0x0BC5,0x239B,0x1B97,
1828 +     0x1F68,0x173C,0x1DAD,0x0778,0x165C,0x09E2,0x0D5D,0x0E9C,0x1FBB,0x22FF,
1829 +     0x14DF,0x0F96,0x1D08,0x1ECD,0x2114,0x10EF,0x21F4,0x0F04,0x040B,0x07D6,
1830 +     0x01E1,0x1C95,0x0441,0x163D,0x17EE,0x032B,0x0FE6,0x2273,0x18F5,0x21FA,
1831 +     0x0ED3,0x18DC,0x0001,0x014C,0x1144,0x032A,0x0717,0x1D14,0x04F1,0x0225,
1832 +     0x14E3,0x026F,0x147D,0x076C,0x135B,0x1966,0x15BF,0x12D3,0x0785,0x097D,
1833 +     0x036F,0x1B88,0x1CE2,0x1360,0x0A8B,0x1FBC,0x101F,0x005B,0x0A29,0x1303,
1834 +     0x1CD5,0x0706,0x066E,0x04D7,0x0D9C,0x1B25,0x014F,0x1182,0x1FF0,0x1452,
1835 +     0x0683,0x096C,0x0F79,0x0C1C,0x2394,0x1306,0x1FAD,0x081F,0x1A7D,0x181F,
1836 +     0x0D45,0x219A,0x167A,0x1813,0x0329,0x1876,0x126D,0x097C,0x0EB6,0x1820,
1837 +     0x1374,0x2121,0x11E4,0x0AB4,0x071E,0x03AB,0x0FA1,0x1E0A,0x1E59,0x1C85,
1838 +     0x0197,0x1CCA,0x1148,0x1A81,0x0D04,0x1955,0x1705,0x0ED9,0x01D9,0x102E,
1839 +     0x0480,0x0475,0x1641,0x0101,0x18A1,0x09B3,0x1B5F,0x1CFD,0x054E,0x06D5,
1840 +     0x1A95,0x0301,0x05F6,0x150C,0x0086,0x04DC,0x05BD,0x004E,0x043C,0x1020,
1841 +     0x136B,0x0B6D,0x00B3,0x0FCA,0x1CFC,0x16D4,0x1E32,0x09E3,0x1588,0x1B58,
1842 +     0x0A9A,0x036A,0x0C8B,0x11EF,0x1823,0x0AF3,0x1448,0x1DCA,0x1931,0x05D6,
1843 +     0x0CF9,0x1207,0x063F,0x0F88,0x0D46,0x1FCE,0x162F,0x08CD,0x13A6,0x181B,
1844 +     0x2107,0x2197,0x01AF,0x09A1,0x07AA,0x01BF,0x1932,0x118F,0x1EB0,0x0A7F,
1845 +     0x087D,0x0E2F,0x1FE0,0x12EF,0x1BEF,0x1D4D,0x1C19,0x1856,0x1D19,0x1294,
1846 +     0x1D57,0x176C,0x02DC,0x101C,0x22B7,0x0135,0x17B5,0x0310,0x1548,0x1D2A,
1847 +     0x1626,0x0B31,0x1E7C,0x1BE7,0x140C,0x1B81,0x019E,0x1F11,0x11C6,0x0939,
1848 +     0x2182,0x05BB,0x06C8,0x00E4,0x0529,0x1B26,0x13FC,0x1202,0x1A32,0x07F3,
1849 +     0x098D,0x0E58,0x01B7,0x1DB0,0x0152,0x189C,0x2073,0x0D56,0x1D5B,0x0D36,
1850 +     0x09CC,0x18A8,0x0E5D,0x143C,0x1063,0x16CA,0x13CA,0x1E38,0x2359,0x1B9C,
1851 +     0x0A8A,0x0A84,0x046C,0x0FF5,0x0D97,0x0A27,0x0E6B,0x10C2,0x1619,0x0DEE,
1852 +     0x1DDC,0x0576,0x01C8,0x1069,0x0D4F,0x20AD,0x198B,0x09D5,0x0B22,0x033F,
1853 +     0x20AA,0x1CCC,0x005F,0x0D68,0x19CB,0x1081,0x1D97,0x0AE2,0x1C5C,0x0F05,
1854 +     0x123C,0x0B20,0x2371,0x0CEB,0x00CB,0x1F06,0x00BB,0x191B,0x0117,0x2376,
1855 +     0x17BC,0x19CE,0x216D,0x1F07,0x1455,0x14B8,0x1C6A,0x1B80,0x0E5B,0x1851,
1856 +     0x0172,0x23AA,0x0A22,0x0D7F,0x0720,0x0136,0x0666,0x1019,0x13FE,0x1ACE,
1857 +     0x0B51,0x0C24,0x050E,0x1873,0x08AE,0x16AB,0x1A90,0x0A76,0x1552,0x19C4,
1858 +     0x0FAB,0x0ABC,0x06C1,0x050A,0x0E49,0x1FCB,0x11A1,0x1387,0x0C47,0x2174,
1859 +     0x0570,0x1BA2,0x1104,0x00AD,0x1444,0x2383,0x08C7,0x1127,0x056D,0x0D7E,
1860 +     0x1CB9,0x02FA,0x100A,0x0C51,0x0FBA,0x1A94,0x128B,0x1859,0x2190,0x1B20,
1861 +     0x1F56,0x186F,0x01D8,0x01F2,0x10A3,0x192C,0x0528,0x211B,0x1C92,0x0239,
1862 +     0x0334,0x14C0,0x1D5A,0x1DE9,0x12F2,0x0A44,0x17CA,0x0F62,0x15D8,0x069F,
1863 +     0x1D07,0x11FA,0x0816,0x153C,0x1C81,0x02F1,0x2342,0x23F7,0x0160,0x117F,
1864 +     0x1BB9,0x1039,0x2063,0x1E3B,0x0C57,0x13E1,0x139A,0x1F12,0x15EA,0x1D48,
1865 +     0x19C3,0x1A31,0x050C,0x13C5,0x0091,0x13A7,0x1765,0x01F8,0x1B75,0x0EA2,
1866 +     0x1B6D,0x09EC,0x0312,0x113D,0x012D,0x18C3,0x08A0,0x0452,0x0D87,0x167D,
1867 +     0x1DA9,0x0FF6,0x2340,0x19AD,0x007B,0x0CBC,0x1D1A,0x1AE4,0x09B4,0x11B2,
1868 +     0x1B2C,0x14CE,0x1C5E,0x0222,0x162D,0x0C63,0x0584,0x0040,0x1D1F,0x1AF7,
1869 +     0x0C96,0x132C,0x086B,0x136F,0x19E1,0x0DDA,0x22A5,0x22F7,0x2249,0x20C5,
1870 +     0x0A19,0x0FDC,0x1834,0x0C58,0x1C56,0x01DC,0x1D84,0x0A66,0x2336,0x0955,
1871 +     0x0900,0x1ED6,0x0361,0x0D58,0x1D4B,0x10C0,0x1852,0x040E,0x0F0B,0x1978,
1872 +     0x12E8,0x2261,0x05FE,0x0BD2,0x13C8,0x0F3C,0x07A4,0x18CC,0x0A00,0x0642,
1873 +     0x0D65,0x1DA8,0x0D15,0x2168,0x05B5,0x0DF8,0x2352,0x0408,0x07D9,0x15FA,
1874 +     0x0E88,0x0C85,0x1FAB,0x16F5,0x1798,0x12BD,0x1FB3,0x09B6,0x12C2,0x17FA,
1875 +     0x1BE6,0x1434,0x1DD6,0x0E18,0x08F5,0x07A7,0x0AA9,0x0099,0x1E5B,0x09F4,
1876 +     0x1C02,0x0737,0x08B9,0x0504,0x0C05,0x0813,0x1716,0x06BE,0x1ECA,0x1995,
1877 +     0x0D63,0x0745,0x1870,0x221D,0x0C6E,0x20D2,0x23C0,0x11D8,0x0D23,0x1924,
1878 +     0x0D34,0x10AF,0x2339,0x1F37,0x0ACC,0x228E,0x20B1,0x127E,0x0293,0x0294,
1879 +     0x18D2,0x0F77,0x1C89,0x035F,0x1441,0x0143,0x219C,0x042F,0x092E,0x1AC0,
1880 +     0x0932,0x1D93,0x1AE6,0x1E03,0x0F87,0x16B4,0x15B1,0x066F,0x07A1,0x21A6,
1881 +     0x20BD,0x201C,0x10F2,0x16B2,0x13B8,0x0C90,0x013E,0x191C,0x1ACA,0x10E0,
1882 +     0x12DA,0x0047,0x15B8,0x1E51,0x0693,0x02CF,0x169A,0x1571,0x2167,0x022F,
1883 +     0x2150,0x11A0,0x137D,0x143A,0x02D9,0x07AC,0x0B18,0x1730,0x0E1B,0x0BC3,
1884 +     0x2178,0x1656,0x1041,0x1FDE,0x044C,0x21EC,0x1CF0,0x04A0,0x17F2,0x1D8B,
1885 +     0x172B,0x0826,0x0B38,0x1FB6,0x07BA,0x1632,0x0BFF,0x12B8,0x0073,0x1D94,
1886 +     0x0457,0x05B8,0x0CA6,0x08EC,0x1663,0x07CF,0x0E04,0x2116,0x23D6,0x1F6F,
1887 +     0x0884,0x17D1,0x0B14,0x1222,0x0774,0x16C8,0x16A8,0x1DCF,0x1E21,0x1A42,
1888 +     0x0CF4,0x184F,0x1AD3,0x1DA5,0x04F9,0x0F39,0x2173,0x091B,0x0648,0x21A7,
1889 +     0x1481,0x15FB,0x0C69,0x064B,0x00BE,0x08D5,0x211D,0x07E5,0x22F6,0x10A7,
1890 +     0x0791,0x1F88,0x0FB6,0x2004,0x014E,0x187E,0x17D7,0x2345,0x0C83,0x0DE6,
1891 +     0x12B6,0x0365,0x1D4A,0x1C43,0x1266,0x083D,0x1A5F,0x0029,0x223B,0x1809,
1892 +     0x0589,0x001C,0x0F90,0x1B77,0x10CC,0x12CB,0x0703,0x0471,0x0E6E,0x05E6,
1893 +     0x0E95,0x0912,0x18DD,0x1EEA,0x02CA,0x04C2,0x0BDC,0x0EE6,0x158A,0x189B,
1894 +     0x17AD,0x0CD8,0x1246,0x1457,0x0938,0x1D87,0x175C,0x0A85,0x1F20,0x17EC,
1895 +     0x08E7,0x0678,0x0978,0x145E,0x00CF,0x001F,0x0D90,0x09F6,0x20E4,0x217D,
1896 +     0x13E7,0x1CE0,0x1400,0x156D,0x084C,0x1881,0x0140,0x208B,0x21E5,0x041A,
1897 +     0x02A0,0x0F23,0x22CA,0x0520,0x087A,0x1FAC,0x0FE2,0x15CD,0x05CF,0x1C34,
1898 +     0x0BA3,0x033D,0x14DB,0x1251,0x0071,0x15FF,0x0139,0x21FB,0x003C,0x0629,
1899 +     0x008A,0x03ED,0x0EA7,0x018B,0x146D,0x19D4,0x167F,0x1F24,0x21FC,0x04E9,
1900 +     0x057F,0x0CB5,0x0F76,0x1B1A,0x19B0,0x1CDB,0x211E,0x0775,0x17D9,0x0494,
1901 +     0x0C1F,0x0DB6,0x2184,0x1702,0x1165,0x1C4A,0x1043,0x0A5A,0x1004,0x03BE,
1902 +     0x0B33,0x151A,0x038B,0x12ED,0x1287,0x2205,0x1F05,0x1AC8,0x19E3,0x1506,
1903 +     0x0891,0x05DA,0x1C04,0x1ED3,0x0A11,0x061C,0x0DC5,0x01D5,0x1459,0x032E,
1904 +     0x1A7B,0x12E3,0x1A8B,0x17D3,0x1391,0x0ADA,0x0A24,0x13E9,0x05DB,0x2050,
1905 +     0x12C9,0x216A,0x0A09,0x149D,0x142B,0x0FD3,0x229D,0x19FA,0x0547,0x1984,
1906 +     0x0E06,0x1827,0x0477,0x19D1,0x05DF,0x1248,0x12FF,0x01A2,0x10E8,0x095B,
1907 +     0x2227,0x1262,0x00DC,0x0354,0x07E8,0x03DF,0x01FC,0x1AC1,0x0272,0x1AED,
1908 +     0x090B,0x209E,0x1CCB,0x1AA5,0x218B,0x1D9C,0x1467,0x12B2,0x0D2C,0x1B3D,
1909 +     0x0EC1,0x13F3,0x1330,0x1629,0x1576,0x2275,0x0684,0x0C41,0x0CD9,0x1836,
1910 +     0x1280,0x104D,0x168D,0x1DE8,0x0E66,0x0A8C,0x2027,0x0448,0x0DA8,0x0A50,
1911 +     0x1A4F,0x1A1A,0x0CF1,0x2180,0x03C5,0x1CAA,0x0B84,0x18EE,0x026B,0x1E44,
1912 +     0x1F92,0x14F6,0x210E,0x0444,0x030A,0x140E,0x0F6B,0x0F44,0x0894,0x1407,
1913 +     0x085A,0x091E,0x02B7,0x0B83,0x2238,0x1E25,0x0A32,0x19F5,0x06A9,0x239E,
1914 +     0x10D9,0x2019,0x21A2,0x08A7,0x17DF,0x1A82,0x138F,0x08AA,0x12E6,0x074D,
1915 +     0x1CDD,0x1FE1,0x0691,0x1F89,0x0810,0x05A9,0x00AB,0x0AD4,0x0623,0x02D4,
1916 +     0x09D3,0x1232,0x2002,0x1FC3,0x1B73,0x0704,0x0150,0x197D,0x1646,0x0595,
1917 +     0x1BAD,0x2146,0x0AD5,0x074C,0x03FD,0x1018,0x1F08,0x0989,0x1204,0x0499,
1918 +     0x17E4,0x001E,0x0A23,0x13BC,0x1150,0x119C,0x056B,0x0BD7,0x0B8A,0x0AD7,
1919 +     0x05A1,0x0AA6,0x1B27,0x18D1,0x0D42,0x14E9,0x0779,0x027A,0x1C76,0x01A7,
1920 +     0x1FB0,0x1270,0x16C6,0x0142,0x1FF6,0x1172,0x11EB,0x212C,0x071D,0x1543,
1921 +     0x170C,0x0F2F,0x1F9D,0x0F95,0x1CC7,0x043B,0x12EA,0x0F10,0x1D6E,0x0722,
1922 +     0x00D6,0x1829,0x1244,0x1E0B,0x18CF,0x1C16,0x22DE,0x093B,0x01FD,0x15EF,
1923 +     0x2087,0x1E24,0x02FB,0x1F1A,0x009D,0x0C20,0x0A35,0x18F9,0x0363,0x16ED,
1924 +     0x0F4C,0x22B3,0x20A6,0x23C9,0x0C9D,0x10CF,0x0FC2,0x0AB1,0x1514,0x1D88,
1925 +     0x1637,0x0844,0x06AF,0x06A7,0x0400,0x1F96,0x15D3,0x1566,0x0A06,0x1A38,
1926 +     0x006A,0x03EA,0x1E4B,0x119F,0x1B8B,0x1049,0x1080,0x1B21,0x13BE,0x0F57,
1927 +     0x18F6,0x22E4,0x1E9F,0x1BE1,0x1353,0x1644,0x0A45,0x1AA3,0x01C9,0x06F7,
1928 +     0x10EB,0x0032,0x07F8,0x1CED,0x202C,0x0957,0x17B2,0x006B,0x1456,0x03DA,
1929 +     0x061B,0x1A60,0x1C9A,0x137B,0x1EA2,0x1D61,0x0000,0x17FB,0x1BE2,0x046A,
1930 +     0x1CBF,0x2192,0x1F0E,0x1968,0x0AE9,0x1508,0x0182,0x2324,0x2113,0x13CC,
1931 +     0x09F5,0x0B62,0x1283,0x0FFC,0x150B,0x0794,0x0A0D,0x236B,0x1590,0x0808,
1932 +     0x05D2,0x105A,0x1C80,0x207F,0x05CB,0x12FB,0x22BE,0x012A,0x0DC3,0x01CF,
1933 +     0x023C,0x063D,0x060F,0x0447,0x2257,0x01C2,0x050B,0x03A1,0x0780,0x1782,
1934 +     0x12E7,0x1E52,0x135C,0x151C,0x14EB,0x1B4E,0x2250,0x168C,0x118D,0x031D,
1935 +     0x0680,0x2088,0x12D7,0x2133,0x14E0,0x1BE5,0x201E,0x0C3B,0x23AC,0x1B22,
1936 +     0x01D0,0x0B17,0x1904,0x139F,0x1DAA,0x1418,0x0327,0x1527,0x0920,0x0715,
1937 +     0x03C3,0x052C,0x0E8A,0x0812,0x017D,0x0C1D,0x02AA,0x1A7F,0x1DE4,0x058F,
1938 +     0x194E,0x2343,0x0F11,0x1F18,0x0B05,0x2271,0x08E1,0x1CC6,0x1D38,0x20E7,
1939 +     0x12DE,0x00E5,0x180C,0x0AC7,0x0C27,0x1C97,0x2304,0x10E6,0x071F,0x0C03,
1940 +     0x0249,0x1FAA,0x0374,0x1E99,0x1FD5,0x2254,0x1B4C,0x0A92,0x2172,0x0B36,
1941 +     0x011B,0x1CB2,0x0560,0x18F4,0x0460,0x0B24,0x1910,0x0596,0x1C30,0x0BE5,
1942 +     0x1B79,0x1E40,0x21CA,0x0997,0x0F89,0x0173,0x215C,0x0D4E,0x1E14,0x1A45,
1943 +     0x227E,0x18F7,0x1314,0x0C71,0x1D55,0x02B8,0x0C45,0x2232,0x10DC,0x155A,
1944 +     0x1581,0x14A6,0x1683,0x108B,0x0247,0x2247,0x1F69,0x1EC7,0x0F1D,0x0A2A,
1945 +     0x10FA,0x1660,0x16CE,0x0D18,0x0DDD,0x0BC6,0x0269,0x1911,0x187B,0x16F7,
1946 +     0x188A,0x1FA0,0x1EA6,0x11B5,0x04C9,0x214E,0x065F,0x017A,0x05CE,0x1C32,
1947 +     0x194D,0x1C44,0x02C1,0x1BCF,0x235B,0x228D,0x1A2C,0x03A3,0x017B,0x12D0,
1948 +     0x19E8,0x08EF,0x1F25,0x1E65,0x0BA9,0x0DD9,0x1CF8,0x103A,0x1E22,0x15DD,
1949 +     0x03D3,0x1EDE,0x1CF7,0x03C1,0x04F3,0x2240,0x1FFE,0x03BB,0x0D7D,0x1EBF,
1950 +     0x1BA5,0x18E6,0x1CCF,0x1D8C,0x202E,0x0BA2,0x1A75,0x0065,0x104E,0x0661,
1951 +     0x1B85,0x1A7A,0x0DD5,0x0450,0x1CEE,0x026E,0x1C0C,0x10B2,0x20F2,0x0AA7,
1952 +     0x12F4,0x08EB,0x23AB,0x07B3,0x130B,0x094D,0x1EA3,0x18F2,0x0C9C,0x1363,
1953 +     0x2036,0x13A8,0x16B1,0x1428,0x1F02,0x01E8,0x039E,0x1BED,0x1D98,0x08E2,
1954 +     0x14D6,0x1E56,0x2388,0x0C1E,0x19EE,0x04AA,0x0EB8,0x09E5,0x233E,0x1D66,
1955 +     0x07C5,0x211A,0x1088,0x0954,0x0E2A,0x1BC8,0x07A3,0x1E1E,0x1D36,0x1B87,
1956 +     0x1544,0x0137,0x11DB,0x01C0,0x0845,0x216B,0x1BFC,0x08F6,0x0A5D,0x1EDF,
1957 +     0x0FDE,0x0731,0x110A,0x0FB9,0x0E86,0x1415,0x14E7,0x17A3,0x02BC,0x0C60,
1958 +     0x2111,0x0B41,0x234B,0x1C60,0x118A,0x0FDF,0x17CD,0x1323,0x087F,0x0025,
1959 +     0x165D,0x1606,0x0823,0x1368,0x07F2,0x0743,0x02E4,0x23D0,0x0803,0x14AE,
1960 +     0x1465,0x0FE3,0x02BB,0x0ACF,0x137F,0x2212,0x1272,0x01B6,0x0C07,0x08AB,
1961 +     0x11E1,0x0274,0x171F,0x1126,0x09D2,0x1C01,0x23C5,0x1AB0,0x0F3E,0x0DAC,
1962 +     0x00D5,0x14C2,0x17C1,0x028F,0x0DE9,0x06C3,0x0DE2,0x1A70,0x1AEC,0x1638,
1963 +     0x1727,0x15ED,0x1532,0x13FD,0x123F,0x207E,0x0825,0x0066,0x14EC,0x1EE4,
1964 +     0x1FE9,0x14B3,0x1692,0x0557,0x07A0,0x11D6,0x21DD,0x05FA,0x2014,0x0A0C,
1965 +     0x152B,0x0425,0x00D7,0x00F2,0x0316,0x0ECA,0x1B14,0x0896,0x15B3,0x0B80,
1966 +     0x1D20,0x0AF5,0x09C8,0x0BF6,0x134F,0x0E00,0x1B99,0x0953,0x2341,0x21C7,
1967 +     0x1811,0x1032,0x1898,0x1286,0x1998,0x06B0,0x19FB,0x0790,0x15A6,0x16FB,
1968 +     0x16C4,0x0B28,0x0C7B,0x0FED,0x19AC,0x113F,0x1EC3,0x0A52,0x132A,0x048D,
1969 +     0x1B07,0x11D1,0x1F75,0x0838,0x04A5,0x04CB,0x046E,0x0A58,0x076E,0x12DB,
1970 +     0x0AE8,0x185F,0x15E3,0x18A5,0x18CE,0x0236,0x0A46,0x1886,0x0B69,0x03CD,
1971 +     0x17E6,0x0A21,0x06D1,0x0964,0x0630,0x231B,0x1642,0x19FF,0x1880,0x1B6B,
1972 +     0x105C,0x0FCC,0x0043,0x1A4E,0x1554,0x0781,0x0034,0x1D16,0x1522,0x1ABF,
1973 +     0x0F03,0x1B47,0x1A21,0x1E8E,0x007A,0x1E3E,0x0EB0,0x0DD7,0x0534,0x0241,
1974 +     0x051D,0x0C8F,0x0B55,0x1589,0x0256,0x194B,0x1D31,0x0828,0x09AD,0x075F,
1975 +     0x02AF,0x0BAF,0x1C49,0x20ED,0x1D21,0x0E6A,0x1723,0x19F6,0x114E,0x1419,
1976 +     0x1952,0x0F40,0x0B0D,0x2201,0x1D29,0x19C9,0x0A2F,0x1515,0x1F27,0x1CDE,
1977 +     0x0DD3,0x1768,0x0E56,0x1A9C,0x12A4,0x11BE,0x0B46,0x0DAE,0x0AFC,0x164B,
1978 +     0x08D7,0x003A,0x0BDD,0x1E4E,0x0BCF,0x105E,0x2000,0x1BA1,0x19F4,0x2100,
1979 +     0x20D7,0x2398,0x1C2E,0x04BE,0x0199,0x221E,0x0532,0x07B7,0x155B,0x006D,
1980 +     0x16C1,0x1C74,0x0D61,0x17E2,0x0AFF,0x1AC4,0x00E9,0x09E4,0x11BB,0x0674,
1981 +     0x22BD,0x1186,0x0578,0x202A,0x123B,0x15E8,0x0E8B,0x0403,0x097A,0x0105,
1982 +     0x14ED,0x14CB,0x0FDD,0x03FF,0x17AF,0x1E39,0x02F3,0x13D3,0x0C89,0x20BC,
1983 +     0x20B2,0x15BC,0x1CAC,0x2372,0x1B48,0x08D2,0x0446,0x1177,0x0D1F,0x17C6,
1984 +     0x1989,0x0516,0x0DDC,0x024D,0x16AA,0x09EE,0x1062,0x0B50,0x1F77,0x037F,
1985 +     0x07D2,0x093C,0x238A,0x0583,0x2375,0x0CA3,0x18EA,0x182A,0x0621,0x1036,
1986 +     0x02B5,0x01E2,0x22DB,0x0963,0x2399,0x060C,0x1152,0x0F91,0x048A,0x1A7E,
1987 +     0x1E87,0x1BB0,0x15C4,0x1112,0x1021,0x11E2,0x0C56,0x07DD,0x1D46,0x0210,
1988 +     0x04F5,0x1C0E,0x0B8E,0x1040,0x1A6C,0x1AF8,0x08D8,0x1313,0x1C8A,0x20B8,
1989 +     0x0B54,0x08A4,0x0094,0x131E,0x0A86,0x0A28,0x0D10,0x0A74,0x1AD2,0x0653,
1990 +     0x172C,0x21C1,0x1490,0x04FC,0x0BFA,0x1347,0x0B2F,0x1DC4,0x23DB,0x0FB8,
1991 +     0x23BB,0x0C72,0x03E5,0x186A,0x0F9D,0x1295,0x1808,0x04C6,0x1960,0x1FA7,
1992 +     0x0DE0,0x239F,0x1D5F,0x0EED,0x1F79,0x2068,0x06B8,0x0D99,0x15F5,0x1028,
1993 +     0x0202,0x0BAD,0x0098,0x060D,0x0E84,0x18FB,0x1549,0x1E63,0x0ED6,0x009A,
1994 +     0x0B72,0x0B7B,0x06B1,0x0341,0x08F4,0x112A,0x18D5,0x0919,0x1731,0x19A5,
1995 +     0x16FA,0x0195,0x0F9C,0x123D,0x0968,0x0E17,0x0EBF,0x0D27,0x1A33,0x17FD,
1996 +     0x221B,0x208C,0x0694,0x1713,0x1696,0x0692,0x0006,0x1C3E,0x1617,0x0267,
1997 +     0x111D,0x2122,0x025E,0x200E,0x0D22,0x1627,0x1329,0x0048,0x1265,0x0D7A,
1998 +     0x1402,0x149C,0x02A1,0x022C,0x0F75,0x0783,0x124A,0x1134,0x0E1E,0x1C4C,
1999 +     0x1CB0,0x17F1,0x046F,0x0280,0x068B,0x1C46,0x1FDA,0x0D82,0x1CD1,0x0590,
2000 +     0x056E,0x015A,0x121F,0x0B1D,0x019D,0x1EB5,0x0A82,0x16E8,0x117D,0x098F,
2001 +     0x1513,0x122A,0x0C18,0x0FA0,0x1EB1,0x0DD0,0x0E4A,0x23F8,0x190B,0x2053,
2002 +     0x16C0,0x18A3,0x0127,0x0AE1,0x0F52,0x12AF,0x0E24,0x0C32,0x08A6,0x1D3F,
2003 +     0x00CA,0x229B,0x11F6,0x1A46,0x1BF3,0x1EC6,0x0275,0x13B4,0x1210,0x0A49,
2004 +     0x057C,0x0E3F,0x206B,0x05DC,0x21D5,0x18A7,0x14D3,0x1F57,0x1FF8,0x2220,
2005 +     0x0962,0x1BFF,0x2301,0x08AF,0x1EEC,0x20CF,0x17E9,0x2302,0x0FBD,0x1BC9,
2006 +     0x0585,0x0784,0x17BE,0x1B2B,0x111A,0x0AB3,0x1F1F,0x0505,0x0019,0x235F,
2007 +     0x0B59,0x039A,0x03F7,0x193C,0x1994,0x1C1E,0x0CBB,0x0D72,0x1706,0x1C37,
2008 +     0x0002,0x098B,0x2046,0x056A,0x0A1E,0x0A04,0x11C2,0x0883,0x06B3,0x0B48,
2009 +     0x07DF,0x1122,0x04EE,0x215D,0x11D7,0x12A9,0x0F9A,0x0104,0x1618,0x175E,
2010 +     0x1A28,0x1D13,0x1DC9,0x0111,0x110C,0x1779,0x146E,0x1928,0x15B0,0x072C,
2011 +     0x0773,0x1CA2,0x0C3C,0x0BF2,0x1587,0x2269,0x10B0,0x0A6F,0x214D,0x0EEC,
2012 +     0x1EF6,0x14EE,0x20C4,0x1A65,0x1A0B,0x23FA,0x0336,0x1603,0x0946,0x0D6B,
2013 +     0x0545,0x1B9A,0x0605,0x0C95,0x2185,0x0EE3,0x1F98,0x1EB3,0x0A39,0x05EC,
2014 +     0x1A5C,0x123A,0x0848,0x234E,0x023A,0x183E,0x16BD,0x014D,0x106A,0x0EF5,
2015 +     0x213C,0x0046,0x0395,0x2321,0x238D,0x1AEE,0x1170,0x03DD,0x1C70,0x1D65,
2016 +     0x0CF0,0x224D,0x1F87,0x1D0A,0x09A4,0x14CF,0x0A02,0x0093,0x121A,0x02EF,
2017 +     0x22CC,0x0B8D,0x1E00,0x0B58,0x0FF9,0x1D62,0x1E6B,0x2387,0x138B,0x052D,
2018 +     0x081C,0x10A0,0x0194,0x22F9,0x1E5F,0x1E3D,0x06C9,0x167C,0x0096,0x1570,
2019 +     0x19A7,0x0B98,0x18BA,0x12AA,0x11CC,0x22C7,0x0064,0x0440,0x0B7E,0x23BF,
2020 +     0x01A6,0x09ED,0x000B,0x0834,0x008E,0x0A7E,0x0D32,0x0744,0x207A,0x03AF,
2021 +     0x062B,0x21DB,0x1B37,0x1FB1,0x1653,0x1807,0x141F,0x18AF,0x1343,0x0D28,
2022 +     0x221A,0x1064,0x1BAB,0x199D,0x19E9,0x23FF,0x22EF,0x0CB1,0x0EC2,0x0958,
2023 +     0x09D7,0x20EE,0x1AAF,0x1267,0x020B,0x1E58,0x0F2A,0x1B2F,0x0A7B,0x0EF2,
2024 +     0x2334,0x0131,0x164D,0x238E,0x0352,0x1C71,0x1B9B,0x1F54,0x08DD,0x069C,
2025 +     0x0C65,0x1FEB,0x21C2,0x0C38,0x1743,0x23E1,0x10C1,0x110E,0x13EE,0x239A,
2026 +     0x125D,0x21DC,0x057B,0x1B1F,0x0D26,0x0121,0x02C5,0x0189,0x0867,0x190F,
2027 +     0x0A8E,0x064E,0x0C31,0x2149,0x0A5C,0x1B06,0x0A6D,0x2277,0x0DFC,0x1B2A,
2028 +     0x0FBC,0x051A,0x0767,0x00BF,0x1862,0x1414,0x1CDA,0x1484,0x1098,0x0657,
2029 +     0x1C29,0x1C9F,0x0DBF,0x1B28,0x1AAD,0x204C,0x077B,0x0888,0x0ACA,0x1575,
2030 +     0x1780,0x1AC5,0x085E,0x14CD,0x1CB3,0x033C,0x1E62,0x1650,0x0F7E,0x1CE4,
2031 +     0x059E,0x20D6,0x072D,0x1371,0x2332,0x115F,0x204E,0x0282,0x11BF,0x08CE,
2032 +     0x1C10,0x11AD,0x10FF,0x15BD,0x04E1,0x22D9,0x1634,0x048B,0x0346,0x185A,
2033 +     0x083B,0x06F9,0x2124,0x072E,0x1ABA,0x050D,0x18BC,0x003E,0x090A,0x1F2C,
2034 +     0x1734,0x0EE7,0x131A,0x0BB5,0x042E,0x12AD,0x1D5E,0x20EF,0x0C7F,0x1245,
2035 +     0x1AD5,0x0895,0x00ED,0x2314,0x19B9,0x055D,0x20A5,0x112C,0x0436,0x16DA,
2036 +     0x0E12,0x0276,0x178B,0x0EBD,0x0B2E,0x23D5,0x0941,0x1C14,0x1FA2,0x0A90,
2037 +     0x1A99,0x1891,0x02BF,0x1305,0x1B18,0x0E0F,0x0BC1,0x0CD7,0x05AB,0x1ED5,
2038 +     0x1D53,0x04D0,0x0D98,0x062F,0x0BCC,0x0B88,0x2031,0x0295,0x1F29,0x1ECB,
2039 +     0x0DB9,0x00C8,0x2396,0x0A17,0x1773,0x1AC9,0x0459,0x1AD6,0x22CF,0x1DC2,
2040 +     0x1BB8,0x1A23,0x1DFE,0x0604,0x213A,0x1357,0x1EA1,0x20D3,0x1137,0x1233,
2041 +     0x198D,0x1B04,0x041E,0x200D,0x233A,0x02A5,0x0CA7,0x0E15,0x17FE,0x216E,
2042 +     0x07C0,0x0BB0,0x0B9C,0x0A8F,0x0B15,0x0BDA,0x14B0,0x15CA,0x189E,0x19DC,
2043 +     0x1ED9,0x0076,0x0A97,0x0918,0x0BED,0x0B81,0x0E0A,0x11DC,0x165A,0x037D,
2044 +     0x1B74,0x1438,0x1129,0x22A2,0x0373,0x0D43,0x20F0,0x0DDE,0x0AB2,0x0771,
2045 +     0x22F5,0x05F5,0x0662,0x1B39,0x16B0,0x1EF3,0x0AF2,0x0E44,0x0221,0x0A6E,
2046 +     0x0D47,0x1DAC,0x18F1,0x10F6,0x2094,0x2294,0x0B21,0x0192,0x1A1E,0x03C9,
2047 +     0x1777,0x1462,0x2089,0x0A4F,0x1A12,0x1A6B,0x1737,0x1D18,0x0C98,0x2207,
2048 +     0x1FDD,0x2176,0x0109,0x0537,0x00BD,0x1916,0x1C2A,0x1377,0x1094,0x1D72,
2049 +     0x00EE,0x0057,0x1463,0x171B,0x00EB,0x1AF0,0x15B9,0x0368,0x04CC,0x05AC,
2050 +     0x07CA,0x1A62,0x0AFD,0x0C00,0x0548,0x153B,0x00AE,0x08F1,0x17C9,0x0428,
2051 +     0x07F0,0x23D8,0x0DD4,0x201D,0x0C4D,0x04EA,0x0161,0x0C02,0x016D,0x145D,
2052 +     0x1CA8,0x02F7,0x17F3,0x1FEC,0x1933,0x0E23,0x0639,0x1CD8,0x20B7,0x0284,
2053 +     0x1016,0x0DC7,0x05A5,0x0E70,0x1A43,0x1DCB,0x09E8,0x13A9,0x06F5,0x1454,
2054 +     0x033A,0x1E82,0x088D,0x0736,0x14C5,0x14FB,0x190E,0x0B60,0x13EA,0x1260,
2055 +     0x0F8D,0x140B,0x1EDC,0x1E93,0x1095,0x2258,0x088E,0x22F0,0x08F2,0x2364,
2056 +     0x1F97,0x1024,0x064F,0x0C5F,0x2052,0x1BE4,0x1EE9,0x1FE3,0x15A8,0x0DB1,
2057 +     0x0D1D,0x17F7,0x20D8,0x07F6,0x2077,0x15E0,0x1C2F,0x1709,0x05BE,0x1B1B,
2058 +     0x2162,0x1A39,0x1C2C,0x13F7,0x19EC,0x20D4,0x0655,0x049C,0x17AA,0x20E6,
2059 +     0x04F4,0x01DE,0x038F,0x21FF,0x12BB,0x14C3,0x1D23,0x0730,0x0E5A,0x1ADD,
2060 +     0x2300,0x1118,0x21D7,0x0FC5,0x0497,0x0390,0x11EA,0x18E5,0x1EF4,0x1EAE,
2061 +     0x028A,0x102B,0x1365,0x05B1,0x18ED,0x0016,0x0012,0x0887,0x1E68,0x0933,
2062 +     0x1166,0x0F5D,0x1297,0x06B9,0x18C5,0x0F80,0x2305,0x12A0,0x0AA8,0x1766,
2063 +     0x1E2C,0x021D,0x1B30,0x0D3C,0x1585,0x1815,0x1B8D,0x00C1,0x02DD,0x0BD6,
2064 +     0x06DC,0x06AD,0x025B,0x0A59,0x1D6B,0x15E2,0x1388,0x1AE3,0x1E26,0x21AF,
2065 +     0x1CAD,0x02B0,0x09B8,0x0CFA,0x1DED,0x2267,0x0ABA,0x21F9,0x0AB8,0x1278,
2066 +     0x1C58,0x1BCA,0x1042,0x1F4D,0x1F5B,0x1B09,0x0B08,0x0217,0x2097,0x05BC,
2067 +     0x1219,0x1C6B,0x1885,0x1A69,0x01D1,0x0246,0x077C,0x13C4,0x11E9,0x01DD,
2068 +     0x206F,0x0A41,0x16DD,0x08E9,0x1578,0x0846,0x0B99,0x0C4E,0x03A6,0x17F5,
2069 +     0x13AB,0x1D2D,0x1B03,0x1F7F,0x0A96,0x1726,0x1AD9,0x1180,0x0B0C,0x0796,
2070 +     0x1718,0x0CEA,0x0D8B,0x1B78,0x1C66,0x1BFA,0x07C3,0x1195,0x06C2,0x041C,
2071 +     0x11EC,0x148E,0x0E52,0x1987,0x08BC,0x0B7C,0x02C8,0x073D,0x23DE,0x1A8E,
2072 +     0x1D7C,0x220E,0x01E0,0x14C7,0x18B7,0x20E0,0x0739,0x088B,0x0CF5,0x1498,
2073 +     0x0487,0x1699,0x035D,0x0416,0x0406,0x0C67,0x1188,0x1A30,0x00F7,0x063C,
2074 +     0x09B7,0x030F,0x09BD,0x0D5F,0x022D,0x1D00,0x1C45,0x1AFA,0x0D16,0x0325,
2075 +     0x1794,0x21E0,0x18AD,0x09FC,0x0F48,0x1F49,0x0463,0x11E0,0x1BF4,0x2169,
2076 +     0x077D,0x0644,0x1497,0x1A51,0x0FC0,0x14DE,0x2049,0x0110,0x0A3D,0x062D,
2077 +     0x08BE,0x16B3,0x0021,0x20C3,0x0BA5,0x21B4,0x05AA,0x0B16,0x19C1,0x2128,
2078 +     0x0468,0x0E07,0x1F3A,0x052B,0x1161,0x0B9A,0x13FF,0x17D8,0x161B,0x2029,
2079 +     0x0FA3,0x0E29,0x0B70,0x1605,0x1A3F,0x1E78,0x1EC4,0x1429,0x1906,0x19BF,
2080 +     0x07EC,0x1DFA,0x2035,0x0A67,0x22A8,0x1863,0x21E4,0x04E2,0x1175,0x0411,
2081 +     0x1B56,0x037C,0x0262,0x0865,0x000A,0x2287,0x1279,0x1FD9,0x1667,0x1DC1,
2082 +     0x1AF3,0x0148,0x0C59,0x199A,0x0943,0x0D07,0x233C,0x073A,0x14AD,0x12CF,
2083 +     0x0971,0x19EB,0x1EF9,0x15F9,0x0ADC,0x1101,0x1AD4,0x0540,0x0727,0x0986,
2084 +     0x0D69,0x0A20,0x21A5,0x10CA,0x21C6,0x0EAA,0x06FC,0x0E47,0x15F4,0x222C,
2085 +     0x02C2,0x0580,0x05C0,0x11DA,0x10D4,0x0DCF,0x0451,0x021A,0x228C,0x2104,
2086 +     0x1E7A,0x150F,0x043F,0x1B4B,0x0B76,0x1384,0x0208,0x0F33,0x001B,0x1A04,
2087 +     0x21BD,0x006E,0x1889,0x00AA,0x12C5,0x03FC,0x11F8,0x0D2F,0x0CDF,0x1F8C,
2088 +     0x0526,0x1659,0x17EA,0x0BCA,0x119D,0x12B7,0x1392,0x0AB6,0x1331,0x1198,
2089 +     0x15EC,0x01C1,0x22AB,0x130C,0x14F0,0x227B,0x07E9,0x1E4C,0x016B,0x0A13,
2090 +     0x0E37,0x1136,0x1C8E,0x112F,0x1CE8,0x18D8,0x0372,0x011A,0x1411,0x07D1,
2091 +     0x076B,0x085C,0x0084,0x0714,0x0E3C,0x21F7,0x0F6C,0x23E9,0x0385,0x1B17,
2092 +     0x179C,0x159A,0x0506,0x135A,0x0882,0x1C36,0x1AA6,0x1E11,0x1A1F,0x1EF5,
2093 +     0x0E9D,0x0335,0x1658,0x04B8,0x06A2,0x061E,0x17B6,0x1DB6,0x12BF,0x0443,
2094 +     0x220A,0x1983,0x07B0,0x1890,0x177A,0x038A,0x1496,0x1220,0x18B3,0x1149,
2095 +     0x0FA4,0x10EA,0x0620,0x11B1,0x01B1,0x08BA,0x0081,0x0FEC,0x111C,0x0C1B,
2096 +     0x1382,0x0427,0x1582,0x1D54,0x0EE2,0x022A,0x0AAB,0x23EA,0x1922,0x0399,
2097 +     0x2127,0x06CA,0x12D5,0x0A0A,0x1745,0x1F8F,0x009B,0x21B6,0x1BC2,0x0EEE,
2098 +     0x00B6,0x0672,0x16D7,0x13E4,0x0ABF,0x0F29,0x03D2,0x20E3,0x185B,0x08FE,
2099 +     0x0FB0,0x1CBC,0x2024,0x0A16,0x0C2C,0x0B23,0x134A,0x0ADE,0x03E2,0x0A0F,
2100 +     0x2102,0x0CAA,0x19D0,0x220F,0x06E2,0x2391,0x13CF,0x1EDD,0x15B4,0x1012,
2101 +     0x1F15,0x23DF,0x0735,0x223F,0x144B,0x12FC,0x1C86,0x1CE7,0x0DA7,0x082F,
2102 +     0x1720,0x15C7,0x0212,0x22FD,0x133F,0x068C,0x169E,0x0C4F,0x1C31,0x139B,
2103 +     0x0DA6,0x1A91,0x1D99,0x1493,0x160A,0x0077,0x1F45,0x1473,0x1B1E,0x028E,
2104 +     0x0FAC,0x137C,0x2390,0x10A6,0x0129,0x0B67,0x1F53,0x0B97,0x21AC,0x0792,
2105 +     0x0758,0x1AB2,0x0C44,0x1482,0x1436,0x0036,0x1B3A,0x1CC9,0x1AF4,0x152A,
2106 +     0x2355,0x0519,0x1747,0x1275,0x10B3,0x2086,0x14D1,0x20E9,0x12CD,0x0EA4,
2107 +     0x1F48,0x0DBD,0x0265,0x0A55,0x145F,0x2216,0x0D0F,0x103B,0x2381,0x0994,
2108 +     0x1337,0x0CF7,0x06E8,0x2253,0x0936,0x1ECC,0x2208,0x10C3,0x0DE4,0x0A2D,
2109 +     0x09DD,0x1690,0x234D,0x031E,0x0824,0x04A2,0x0F46,0x17B9,0x1F81,0x02E2,
2110 +     0x04D5,0x13A2,0x0A10,0x01B3,0x1523,0x2013,0x0B06,0x1108,0x0244,0x06F6,
2111 +     0x041B,0x03A5,0x21EF,0x052F,0x08FF,0x0855,0x1FC4,0x1E1D,0x2385,0x0B77,
2112 +     0x1B86,0x2123,0x018C,0x2203,0x181A,0x01EB,0x07E1,0x1334,0x1D12,0x0A9D,
2113 +     0x01ED,0x1EDA,0x1A2E,0x18AA,0x0598,0x1A83,0x162A,0x1A84,0x072B,0x2397,
2114 +     0x0166,0x00C0,0x091C,0x2350,0x010A,0x157E,0x142C,0x1F4F,0x1B93,0x1355,
2115 +     0x08F9,0x218E,0x1C57,0x0627,0x06AE,0x2186,0x230D,0x0C6F,0x1229,0x02C9,
2116 +     0x0972,0x0F68,0x217B,0x1130,0x0CDB,0x06B5,0x1045,0x1321,0x0AA0,0x0CCE,
2117 +     0x121E,0x0C0A,0x07EF,0x02D8,0x061D,0x1003,0x0761,0x20FE,0x1519,0x027B,
2118 +     0x1105,0x174A,0x028B,0x0300,0x1EFD,0x1711,0x03BC,0x1FCC,0x1DFF,0x21FE,
2119 +     0x1AE0,0x12C0,0x2266,0x1DEC,0x15E4,0x036B,0x0382,0x01B5,0x2067,0x20C6,
2120 +     0x0B2C,0x0F7F,0x1BEB,0x0988,0x1491,0x0697,0x0F12,0x1096,0x0E78,0x103D,
2121 +     0x02A3,0x21BB,0x1563,0x11D2,0x150D,0x2308,0x21B3,0x0333,0x1213,0x009F,
2122 +     0x08A5,0x10EC,0x0E60,0x009E,0x1530,0x0FC6,0x110F,0x1BA3,0x027E,0x2223,
2123 +     0x009C,0x1B4D,0x1F62,0x1CF6,0x1E86,0x0FB1,0x0332,0x1BAF,0x0C1A,0x0E2C,
2124 +     0x0360,0x197A,0x01D3,0x10F3,0x1B76,0x02EB,0x18CA,0x065B,0x1164,0x103E,
2125 +     0x0C39,0x0F8C,0x073E,0x07CE,0x183C,0x04EC,0x0E9A,0x0BDE,0x0738,0x1093,
2126 +     0x0F0D,0x076A,0x0349,0x0DA9,0x19F9,0x1154,0x1DD0,0x0ED0,0x1D22,0x22D3,
2127 +     0x015B,0x0052,0x0A5B,0x0CE2,0x1D89,0x1565,0x1752,0x0254,0x028C,0x18FD,
2128 +     0x12B9,0x1CA4,0x1F73,0x0567,0x1B01,0x0414,0x1510,0x1ED8,0x05FD,0x1ACF,
2129 +     0x19EA,0x0163,0x0B73,0x1CBE,0x07B6,0x10D1,0x050F,0x1635,0x0413,0x17ED,
2130 +     0x1C40,0x1336,0x0EFF,0x1199,0x1236,0x07BD,0x2312,0x04B1,0x2163,0x1AD1,
2131 +     0x0764,0x21D1,0x14DD,0x0CE8,0x1728,0x0348,0x236D,0x1BA6,0x2119,0x1405,
2132 +     0x0625,0x034C,0x0A1F,0x09E0,0x231C,0x0D4C,0x0839,0x04AF,0x2153,0x12AB,
2133 +     0x0D8C,0x148F,0x03CE,0x2081,0x05A6,0x0F02,0x1D41,0x090F,0x0D8D,0x1CE5,
2134 +     0x0BF5,0x0358,0x0BBD,0x1981,0x1A5E,0x1312,0x103F,0x0347,0x23B0,0x0FAD,
2135 +     0x08D1,0x00D8,0x08E0,0x212A,0x0DC4,0x1EBE,0x169F,0x07A6,0x1BF5,0x1FA3,
2136 +     0x0EE8,0x17B1,0x14A8,0x0EC8,0x2057,0x0586,0x19AF,0x1C1A,0x1D10,0x15D7,
2137 +     0x06CD,0x0901,0x163C,0x1A20,0x1107,0x0879,0x1533,0x1EDB,0x0E94,0x1FC9,
2138 +     0x20F5,0x00A9,0x20BE,0x1011,0x1AFE,0x21DF,0x1D7E,0x0D25,0x13D1,0x099C,
2139 +     0x0A64,0x1729,0x113B,0x17C4,0x21DE,0x0D8A,0x0B4B,0x00E2,0x0C10,0x2358,
2140 +     0x162E,0x1470,0x1DDE,0x0050,0x1468,0x213B,0x106E,0x0490,0x09F2,0x0190,
2141 +     0x1F7A,0x03FB,0x215E,0x02EC,0x01CD,0x0F83,0x1503,0x00A0,0x17E8,0x0ABE,
2142 +     0x019F,0x053A,0x2278,0x1A66,0x12A3,0x0B04,0x23D7,0x144F,0x131B,0x2099,
2143 +     0x0159,0x1D3E,0x1FE4,0x14D8,0x0100,0x130F,0x23F0,0x1623,0x1F40,0x0F13,
2144 +     0x1082,0x221F,0x12FE,0x0B9D,0x080B,0x1EE6,0x14B9,0x2351,0x05D7,0x065E,
2145 +     0x09BB,0x0209,0x0FDA,0x03D5,0x1B82,0x204B,0x1073,0x131C,0x1358,0x230B,
2146 +     0x1BC0,0x1EB9,0x166A,0x11AA,0x1D85,0x08BB,0x1B7B,0x05F7,0x1B40,0x0E11,
2147 +     0x02DB,0x13A3,0x0C15,0x14EA,0x0AB9,0x22E7,0x013A,0x07F4,0x0696,0x1228,
2148 +     0x0FCF,0x1561,0x09E7,0x2221,0x039F,0x028D,0x1171,0x098C,0x1B5B,0x0F93,
2149 +     0x1789,0x1269,0x0A3C,0x14A4,0x1864,0x16A9,0x0493,0x0B5E,0x0BD1,0x0646,
2150 +     0x1A52,0x11FC,0x0934,0x0CA1,0x16C5,0x045B,0x0EAC,0x0EE1,0x1671,0x1918,
2151 +     0x0C4C,0x1D9A,0x2062,0x160D,0x1555,0x0677,0x0F58,0x1621,0x17AB,0x0DB7,
2152 +     0x0F63,0x094B,0x1902,0x23BE,0x0C35,0x0F51,0x149A,0x08FB,0x021F,0x1970,
2153 +     0x0995,0x19E2,0x1DBD,0x1E48,0x0B90,0x02CC,0x15DB,0x2022,0x0CEE,0x2161,
2154 +     0x0A57,0x11AE,0x0B6F,0x05CA,0x1450,0x19B8,0x0F4F,0x1F5A,0x1E2E,0x229A,
2155 +     0x15EB,0x074E,0x2317,0x0ECB,0x0B6C,0x0510,0x091F,0x0F85,0x101B,0x1BD3,
2156 +     0x0E7C,0x11FF,0x0F2C,0x1F9A,0x2382,0x232F,0x23DC,0x0DF7,0x01CB,0x0DCA,
2157 +     0x21D3,0x1857,0x0C6D,0x0FEE,0x0509,0x0543,0x2331,0x1424,0x08FD,0x01E9,
2158 +     0x1CA9,0x23EF,0x100C,0x029A,0x1065,0x1078,0x0F9B,0x14DA,0x0D09,0x0998,
2159 +     0x088C,0x019C,0x10C4,0x20AB,0x20E5,0x16A4,0x0682,0x0424,0x1C15,0x0C13,
2160 +     0x0A36,0x0856,0x07A5,0x1AD7,0x05D0,0x020C,0x16CC,0x1D8D,0x07DA,0x2204,
2161 +     0x1D9F,0x1797,0x1C67,0x09C0,0x0237,0x1BB6,0x10A9,0x0417,0x0949,0x1E49,
2162 +     0x017E,0x0979,0x1753,0x0AA2,0x0362,0x0B8B,0x0536,0x1EA7,0x0EE5,0x04CA,
2163 +     0x2285,0x0DEB,0x05A0,0x0853,0x12BA,0x0491,0x0423,0x11C0,0x0E36,0x1674,
2164 +     0x2010,0x1DC5,0x0709,0x125F,0x0C33,0x2349,0x0481,0x108A,0x0404,0x094F,
2165 +     0x09CB,0x0D3F,0x18C4,0x0EA3,0x060E,0x0654,0x1814,0x09CA,0x1CA3,0x0C34,
2166 +     0x1A17,0x1406,0x14FF,0x0F0E,0x0204,0x0C0F,0x11CB,0x1925,0x16B9,0x1488,
2167 +     0x1D01,0x0E96,0x0562,0x0C04,0x185E,0x0D2D,0x23D4,0x2328,0x030C,0x19A9,
2168 +     0x01EF,0x20FF,0x08F7,0x122E,0x1AC2,0x0C52,0x0296,0x1A59,0x0326,0x1089,
2169 +     0x1DD3,0x1C63,0x06BB,0x146F,0x1237,0x1950,0x203B,0x17A8,0x01A5,0x09D1,
2170 +     0x0591,0x1B15,0x0147,0x0F20,0x17B4,0x1A36,0x1FC5,0x1F5F,0x0C37,0x1BAE,
2171 +     0x06BC,0x12C1,0x10D2,0x0A14,0x0875,0x120A,0x182D,0x0D6D,0x0F1B,0x0FA2,
2172 +     0x1CC2,0x1A64,0x11C4,0x1CF3,0x1FBD,0x0027,0x0C49,0x21CB,0x0462,0x107C,
2173 +     0x0CFD,0x1398,0x0633,0x06A5,0x00B0,0x0BFD,0x1665,0x102A,0x1915,0x150E,
2174 +     0x23A0,0x1344,0x0F69,0x097B,0x023F,0x18BF,0x1423,0x1290,0x22DF,0x1060,
2175 +     0x0168,0x04FA,0x1B72,0x03C0,0x0B49,0x202D,0x227F,0x0D31,0x121C,0x0762,
2176 +     0x1980,0x05EE,0x20DA,0x04BB,0x06FB,0x16E5,0x117B,0x079F,0x1BF1,0x02A6,
2177 +     0x0A5F,0x22ED,0x1517,0x034E,0x1628,0x1A72,0x02F2,0x1761,0x1E2D,0x161C,
2178 +     0x05C1,0x0757,0x138C,0x0438,0x1193,0x1A68,0x0340,0x111F,0x1440,0x1CDF,
2179 +     0x0634,0x23F9,0x064A,0x0C8A,0x1059,0x13A5,0x1B23,0x13D4,0x2210,0x12E4,
2180 +     0x0E03,0x0CA0,0x0355,0x0E0D,0x1D24,0x2155,0x0B93,0x0531,0x0B1C,0x1CFE,
2181 +     0x22BB,0x1B64,0x1D02,0x1F83,0x0C2A,0x01D4,0x000C,0x2213,0x2151,0x1F3C,
2182 +     0x200F,0x0469,0x0B79,0x086F,0x139E,0x1ADA,0x00C4,0x07E0,0x1005,0x013C,
2183 +     0x1869,0x05B6,0x0944,0x0652,0x1EBB,0x047E,0x0D3A,0x05F0,0x2085,0x0342,
2184 +     0x0165,0x236A,0x03DB,0x1E69,0x120B,0x0EDB,0x156A,0x00CD,0x1F2F,0x0797,
2185 +     0x066C,0x0AE7,0x063A,0x1C7D,0x18A4,0x07B5,0x0E87,0x092F,0x213E,0x10D6,
2186 +     0x1F0A,0x1DD7,0x1B4F,0x0E68,0x1958,0x158D,0x14B6,0x0CB8,0x23E2,0x15D0,
2187 +     0x1249,0x1562,0x03D6,0x0513,0x1A3E,0x171E,0x1F09,0x0DF9,0x0A07,0x12AE,
2188 +     0x0690,0x05C6,0x120D,0x20D1,0x17A0,0x2189,0x1D34,0x1799,0x1E5E,0x20C7,
2189 +     0x1B45,0x1359,0x174B,0x0CCC,0x0187,0x21D9,0x15A7,0x1E1F,0x13B1,0x05FF,
2190 +     0x10D5,0x1905,0x01A8,0x0277,0x1FF4,0x0EB5,0x1476,0x1E1C,0x1390,0x018E,
2191 +     0x0484,0x0FCB,0x146B,0x151B,0x1DC6,0x1A76,0x169B,0x0B64,0x0024,0x187A,
2192 +     0x1230,0x2132,0x0ECE,0x149F,0x109A,0x1839,0x0568,0x1F84,0x0BF0,0x092D,
2193 +     0x0C77,0x13EF,0x14F9,0x138D,0x0832,0x0C68,0x0A37,0x0248,0x16EF,0x0125,
2194 +     0x087B,0x09A9,0x17C8,0x02DF,0x06A0,0x0FC3,0x0D75,0x1A10,0x0EAB,0x0D96,
2195 +     0x0CC2,0x1DA2,0x13AA,0x1760,0x0146,0x1636,0x0082,0x1255,0x1206,0x19DF,
2196 +     0x1D71,0x0D67,0x1DB4,0x0F15,0x065C,0x20C0,0x12F9,0x1796,0x1997,0x13B5,
2197 +     0x087E,0x19FC,0x173B,0x163F,0x06CC,0x05F1,0x19B1,0x1D1E,0x16E1,0x1A3B,
2198 +     0x0C3D,0x07C1,0x1A7C,0x00A5,0x181C,0x1593,0x0259,0x167B,0x0120,0x0889,
2199 +     0x0A51,0x0DA1,0x129D,0x1F76,0x045D,0x1471,0x03CC,0x07B2,0x07EE,0x16AF,
2200 +     0x0549,0x1046,0x2217,0x0BBF,0x12C6,0x0AA5,0x1C51,0x1C94,0x0DF4,0x22B8,
2201 +     0x0DBA,0x1284,0x1D15,0x1433,0x1D17,0x15AE,0x0387,0x1052,0x0880,0x107B,
2202 +     0x09E9,0x2012,0x1151,0x0641,0x0ECC,0x156E,0x1771,0x1972,0x09F9,0x12C3,
2203 +     0x0C42,0x0B9E,0x02A4,0x12EB,0x16B7,0x054D,0x1742,0x0600,0x0BF1,0x11C5,
2204 +     0x223E,0x0B35,0x1843,0x1A5D,0x081B,0x1DB2,0x0020,0x0BC7,0x155F,0x015E,
2205 +     0x1341,0x1FD0,0x136D,0x062A,0x1E6C,0x1DA3,0x00C3,0x12EC,0x03C2,0x10D7,
2206 +     0x15F3,0x1489,0x19FD,0x067D,0x12D6,0x1847,0x0F9F,0x0ED7,0x1D9E,0x1ADB,
2207 +     0x10A4,0x0710,0x1866,0x0F32,0x1EC0,0x2309,0x00E8,0x025F,0x135F,0x0C54,
2208 +     0x0FFF,0x0BF9,0x0959,0x14F3,0x17A1,0x0EE9,0x20F3,0x10BE,0x0DF6,0x1D49,
2209 +     0x1111,0x0D2B,0x0226,0x1AB4,0x2337,0x021B,0x019A,0x22C0,0x1C06,0x08E5,
2210 +     0x2047,0x07F9,0x1612,0x0822,0x0E31,0x00F3,0x134C,0x1919,0x189D,0x23FB,
2211 +     0x0EFE,0x07D8,0x10F5,0x1143,0x22D1,0x0476,0x10F9,0x16CB,0x0053,0x16D3,
2212 +     0x0366,0x1B6A,0x0074,0x1DF6,0x165B,0x0308,0x116E,0x0837,0x1A0D,0x15F8,
2213 +     0x0D57,0x1875,0x1A8C,0x0EC0,0x239C,0x0BBE,0x0FB4,0x0009,0x1698,0x0AFE,
2214 +     0x1992,0x23BA,0x0EE0,0x2096,0x00FE,0x1BF7,0x1239,0x23FD,0x1F8E,0x113C,
2215 +     0x084F,0x09B1,0x0931,0x1E2F,0x0976,0x07AF,0x0B45,0x0ABD,0x0F37,0x0C7E,
2216 +     0x06D3,0x238B,0x0759,0x17AC,0x0923,0x1D05,0x14FA,0x1755,0x187C,0x0E02,
2217 +     0x0B03,0x02AE,0x1735,0x0283,0x033B,0x1C77,0x23C1,0x185C,0x0010,0x1595,
2218 +     0x1C96,0x09E1,0x1055,0x19F7,0x1226,0x1790,0x01A9,0x1A8A,0x06B7,0x1A48,
2219 +     0x1A96,0x121D,0x14BE,0x1681,0x131D,0x00BC,0x0D52,0x1401,0x0610,0x1A6F,
2220 +     0x1354,0x0DD6,0x0155,0x07D4,0x017F,0x2154,0x1C9D,0x176B,0x1C4B,0x1C68,
2221 +     0x1F33,0x082D,0x0616,0x23A4,0x0C86,0x1B00,0x0097,0x2357,0x10E4,0x149B,
2222 +     0x0B8F,0x0E71,0x0636,0x062E,0x14AC,0x07C7,0x20FD,0x12BC,0x0228,0x106D,
2223 +     0x0AB0,0x140F,0x2214,0x0C30,0x143B,0x1D77,0x1241,0x1FDB,0x1757,0x17E3,
2224 +     0x0CB4,0x1F93,0x1C75,0x02B3,0x237A,0x0928,0x0CDE,0x12B4,0x11D4,0x1ADC,
2225 +     0x2105,0x1B5C,0x1DF5,0x22FC,0x085F,0x08BF,0x0E1A,0x1564,0x06BF,0x1D59,
2226 +     0x0B7A,0x22D7,0x0AED,0x10F8,0x0D48,0x1B33,0x20C2,0x205D,0x1801,0x228F,
2227 +     0x13BD,0x0F5C,0x062C,0x1F2B,0x1AB7,0x09BE,0x0914,0x0C97,0x1941,0x151E,
2228 +     0x0676,0x01BA,0x0207,0x09F3,0x1F4E,0x1B7A,0x07C2,0x0059,0x1BB4,0x1BA4,
2229 +     0x1025,0x1102,0x0617,0x074A,0x0AF9,0x0915,0x1D3C,0x0B1B,0x0E05,0x0D66,
2230 +     0x06C6,0x1C4D,0x0708,0x21C9,0x08E6,0x1DD9,0x235D,0x1D90,0x0095,0x0814,
2231 +     0x0E4D,0x21C5,0x1DC3,0x0430,0x1E0D,0x235A,0x15DE,0x1B89,0x0729,0x066B,
2232 +     0x23A3,0x2028,0x0398,0x229E,0x1845,0x212F,0x0740,0x029E,0x1D0F,0x1D11,
2233 +     0x151D,0x023E,0x1B05,0x188F,0x0185,0x1584,0x044F,0x0033,0x0133,0x178D,
2234 +     0x0C9A,0x10BC,0x0815,0x2206,0x1AC3,0x0CBA,0x115E,0x1772,0x0909,0x161A,
2235 +     0x015C,0x1E83,0x1E96,0x0A1A,0x1D75,0x179E,0x2175,0x143E,0x17C5,0x12E9,
2236 +     0x0F09,0x0885,0x0D71,0x18F8,0x0359,0x1615,0x0C6C,0x0809,0x1F10,0x1C18,
2237 +     0x199C,0x1553,0x0D1B,0x0C0B,0x1ADF,0x0E4B,0x1B35,0x0B66,0x1264,0x22CB,
2238 +     0x0181,0x154F,0x0D74,0x134D,0x18C1,0x0E43,0x13EC,0x1E37,0x01BE,0x0755,
2239 +     0x0579,0x154B,0x0893,0x19D6,0x2072,0x208E,0x22C2,0x0719,0x04E6,0x00D3,
2240 +     0x02C0,0x194A,0x0486,0x0DC1,0x06FD,0x1A86,0x0BEC,0x1191,0x0840,0x196C,
2241 +     0x1959,0x12A5,0x08F8,0x17B0,0x16CF,0x0602,0x0D85,0x1F21,0x13A4,0x1946,
2242 +     0x06E1,0x14BA,0x20F9,0x182C,0x0E09,0x13D8,0x159C,0x0881,0x0542,0x1948,
2243 +     0x0829,0x1668,0x2060,0x1138,0x172D,0x17C3,0x0013,0x08E8,0x034F,0x1D80,
2244 +     0x018D,0x0E90,0x0551,0x1CAE,0x0643,0x0ECD,0x005C,0x0223,0x0B29,0x10F1,
2245 +     0x0B5D,0x0C5B,0x132B,0x02D1,0x2316,0x147F,0x1335,0x0679,0x06C4,0x04A3,
2246 +     0x108D,0x02C3,0x075A,0x01EA,0x23AE,0x22B6,0x2138,0x232A,0x23EC,0x02AC,
2247 +     0x227C,0x0E39,0x168F,0x0F35,0x06DA,0x0782,0x0556,0x042D,0x11AB,0x224C,
2248 +     0x0F1E,0x0561,0x17A4,0x1B42,0x0AC6,0x1B91,0x0483,0x118B,0x1EED,0x0741,
2249 +     0x177C,0x21E8,0x1AFC,0x209D,0x0FE0,0x1AD0,0x13B2,0x0637,0x20A4,0x1C1D,
2250 +     0x0EAF,0x03E8,0x15F7,0x1686,0x21B2,0x2215,0x1091,0x01CE,0x135E,0x18C8,
2251 +     0x1E46,0x2322,0x0618,0x23CA,0x1795,0x1F03,0x1A3D,0x0C5D,0x2298,0x01AE,
2252 +     0x02E1,0x0D41,0x09D4,0x219D,0x2084,0x0F98,0x0375,0x13C9,0x0AC4,0x09FE,
2253 +     0x1D81,0x0FF0,0x11C7,0x1FA9,0x1301,0x0BEF,0x1031,0x0B07,0x1FBF,0x1370,
2254 +     0x1AA1,0x1956,0x15C0,0x1858,0x13BB,0x0937,0x1804,0x109D,0x03D8,0x0635,
2255 +     0x1E41,0x0999,0x1079,0x15CC,0x15FC,0x09A2,0x1DA7,0x142E,0x03EC,0x1954,
2256 +     0x1215,0x15E9,0x05C5,0x0831,0x13DA,0x14EF,0x22FE,0x1A54,0x06FE,0x23F1,
2257 +     0x17A6,0x1CD2,0x068A,0x0E4C,0x03C8,0x007C,0x02E5,0x0C25,0x0C48,0x0A26,
2258 +     0x1A9F,0x09B2,0x20F6,0x14AF,0x1B6F,0x233F,0x11F7,0x00B2,0x1076,0x1E70,
2259 +     0x0726,0x1F59,0x222D,0x175D,0x1986,0x0AD8,0x2095,0x0214,0x231F,0x10C6,
2260 +     0x1944,0x1816,0x093A,0x1EA5,0x0B4F,0x174E,0x1087,0x0C0E,0x1DDD,0x1CF2,
2261 +     0x15AA,0x2231,0x22E8,0x0B52,0x040C,0x1CE3,0x0B7D,0x197C,0x0234,0x05EF,
2262 +     0x1BDB,0x124E,0x1E95,0x03B4,0x226A,0x0149,0x137A,0x1AF5,0x20D5,0x1D4F,
2263 +     0x0CDA,0x145B,0x026A,0x0473,0x0FF1,0x168A,0x16A5,0x23E4,0x13C6,0x0EB7,
2264 +     0x0D7B,0x0D76,0x178E,0x23B7,0x05E2,0x16EB,0x0535,0x071B,0x2293,0x06E6,
2265 +     0x1903,0x1526,0x1C23,0x0EC7,0x0CCB,0x1F65,0x0D89,0x147C,0x23F5,0x1446,
2266 +     0x228B,0x0063,0x19DD,0x10FE,0x2023,0x0BAC,0x096A,0x22A4,0x1770,0x176D,
2267 +     0x01C7,0x0E83,0x1E08,0x213F,0x2365,0x1EBD,0x1A16,0x0818,0x11FD,0x0E30,
2268 +     0x024E,0x2256,0x0314,0x02D7,0x129B,0x0303,0x1BC7,0x01CC,0x1586,0x0752,
2269 +     0x194C,0x168E,0x1099,0x10A5,0x1009,0x016A,0x0BA6,0x0DCC,0x0124,0x15A3,
2270 +     0x2152,0x1072,0x0EBC,0x2018,0x1EEE,0x1139,0x0CCF,0x1FA1,0x035B,0x19D9,
2271 +     0x1029,0x1048,0x1397,0x18D0,0x075B,0x0C55,0x0188,0x19CA,0x2229,0x20D9,
2272 +     0x132D,0x0179,0x14A9,0x1A9D,0x1F6C,0x173F,0x18FF,0x12B0,0x00F8,0x14D9,
2273 +     0x0CE4,0x0732,0x0169,0x21AA,0x1F0B,0x1F0F,0x16AD,0x0869,0x1DB7,0x0BA8,
2274 +     0x1A55,0x0F6D,0x01BD,0x1DDA,0x1E1B,0x096B,0x09FF,0x2327,0x107D,0x0530,
2275 +     0x11E3,0x0558,0x16A1,0x0CB0,0x1C7E,0x160F,0x1840,0x187D,0x0EEB,0x14B1,
2276 +     0x079E,0x0C22,0x049E,0x0AE3,0x15BB,0x08E4,0x0F4A,0x1920,0x1ECF,0x12DD,
2277 +     0x1A01,0x0C2B,0x0507,0x0AF7,0x04B9,0x0E35,0x209F,0x1805,0x1E66,0x1169,
2278 +     0x2041,0x1EFC,0x1DDB,0x1E89,0x1EF2,0x1430,0x1DFC,0x1E98,0x0D9A,0x0D03,
2279 +     0x0BDF,0x09DC,0x15D5,0x08DB,0x1250,0x0DC6,0x099B,0x07ED,0x1FEE,0x0753,
2280 +     0x1C20,0x1EB8,0x17D2,0x23B2,0x1E34,0x22A3,0x0B5F,0x0ED1,0x0960,0x029B,
2281 +     0x1977,0x0A7D,0x12A1,0x00C9,0x04D3,0x1271,0x1A74,0x08B8,0x1035,0x231A,
2282 +     0x1300,0x047D,0x2202,0x0338,0x115C,0x01A3,0x2209,0x1CFB,0x193F,0x0BE3,
2283 +     0x1E1A,0x1445,0x06A8,0x1F9B,0x1307,0x0916,0x0E34,0x1806,0x23CC,0x144C,
2284 +     0x214A,0x1CE9,0x22B4,0x198A,0x126E,0x0F82,0x0D80,0x0167,0x0AC9,0x04A1,
2285 +     0x184D,0x0E8E,0x190A,0x0268,0x1395,0x20BA,0x170F,0x16E6,0x0601,0x1E81,
2286 +     0x1662,0x19B2,0x165E,0x0E3A,0x0D0B,0x0EDC,0x1235,0x23EE,0x0E28,0x0C88,
2287 +     0x0C8E,0x2196,0x10B5,0x0BEB,0x230F,0x2367,0x0392,0x1404,0x0AEA,0x1A9B,
2288 +     0x0439,0x03FA,0x1DB9,0x1100,0x11C1,0x222B,0x0787,0x007E,0x0E76,0x0261,
2289 +     0x06D4,0x18B5,0x1B4A,0x0647,0x0DDB,0x1976,0x05AE,0x0F34,0x0186,0x0068,
2290 +     0x1075,0x151F,0x0C3A,0x002C,0x233B,0x0A56,0x0DFA,0x0857,0x137E,0x12B1,
2291 +     0x100B,0x0C21,0x0AA4,0x08B4,0x11ED,0x0EEA,0x13EB,0x0614,0x1BD2,0x0356,
2292 +     0x16BA,0x1403,0x0AAE,0x0F00,0x1FFD,0x054A,0x01BB,0x2181,0x21CD,0x013B,
2293 +     0x1F8D,0x2369,0x08C3,0x1669,0x195B,0x1884,0x02EA,0x1090,0x053C,0x11F2,
2294 +     0x0472,0x034A,0x042A,0x223C,0x10AE,0x19A2,0x147E,0x0D6F,0x13AE,0x1CD0,
2295 +     0x1FB5,0x093D,0x19D2,0x10C7,0x0258,0x0106,0x1D44,0x1ABC,0x0B3D,0x1F86,
2296 +     0x1598,0x12E5,0x013D,0x1234,0x0F8A,0x0C6A,0x2318,0x0993,0x222E,0x1CC1,
2297 +     0x106F,0x1A61,0x05BF,0x19B4,0x0EA8,0x03B1,0x1C6C,0x2030,0x0725,0x0E62,
2298 +     0x064D,0x1469,0x2211,0x0004,0x1525,0x0B9F,0x0CB9,0x0EFC,0x0D02,0x1A1B,
2299 +     0x17C0,0x1C50,0x14C4,0x0C0D,0x1CF1,0x02D0,0x1A92,0x0B26,0x0FDB,0x109E,
2300 +     0x0905,0x0E8D,0x1D60,0x1C91,0x23F2,0x111E,0x06F2,0x1A88,0x22F3,0x0AB5,
2301 +     0x1D83,0x0FEA,0x05EB,0x1E55,0x056F,0x08B7,0x18E1,0x1CD3,0x0A94,0x0E3E,
2302 +     0x0E5F,0x1282,0x0CC7,0x0AB7,0x1DBF,0x0213,0x1BD1,0x044D,0x20EC,0x19E0,
2303 +     0x071A,0x0DF1,0x07D5,0x1311,0x0007,0x0F92,0x00C5,0x0433,0x0465,0x073B,
2304 +     0x0851,0x1542,0x05E9,0x0D39,0x0A1B,0x17F6,0x114D,0x0A9F,0x00A4,0x1A98,
2305 +     0x0ACD,0x1835,0x1D8A,0x0649,0x1002,0x1038,0x1E7B,0x0FF2,0x1CF4,0x21B8,
2306 +     0x1A58,0x0FE4,0x038E,0x1458,0x1538,0x1550,0x025A,0x0B82,0x16F0,0x0191,
2307 +     0x171D,0x081E,0x0BD4,0x15DA,0x0849,0x21E2,0x0B7F,0x1A0F,0x18B6,0x1FD7,
2308 +     0x02B9,0x04C1,0x0289,0x1F55,0x13DD,0x0FE1,0x1B1D,0x191D,0x17BB,0x0E4E,
2309 +     0x0175,0x1AC6,0x0044,0x23AD,0x1D03,0x210F,0x17C7,0x05E8,0x0CC0,0x00D1,
2310 +     0x0A60,0x0B3A,0x2299,0x2311,0x13E8,0x0BC8,0x0AC8,0x1E07,0x0380,0x0D50,
2311 +     0x0B56,0x0555,0x2143,0x0479,0x1545,0x1285,0x13E6,0x1926,0x2042,0x2075,
2312 +     0x1D79,0x2362,0x206A,0x187F,0x14B7,0x138E,0x1AA0,0x1C2D,0x0899,0x22CD,
2313 +     0x115B,0x00D4,0x1014,0x1701,0x02CB,0x0028,0x1A2F,0x1FFA,0x21EE,0x16C3,
2314 +     0x1158,0x15CE,0x1831,0x1639,0x04B7,0x00CE,0x0431,0x011F,0x1D35,0x23ED,
2315 +     0x093F,0x0B91,0x0ED2,0x0EDA,0x0369,0x1BC3,0x0B1A,0x21C3,0x040A,0x206C,
2316 +     0x17F9,0x1FB9,0x0CAD,0x1938,0x1661,0x0E19,0x1C1F,0x0A68,0x079B,0x1580,
2317 +     0x0005,0x1D56,0x0CBD,0x0306,0x1F3E,0x0872,0x1D2C,0x0A3A,0x06E9,0x1B43,
2318 +     0x0C8D,0x0113,0x0023,0x1675,0x0218,0x026D,0x1622,0x22A1,0x03F0,0x177F,
2319 +     0x20F4,0x0EF3,0x1D96,0x2281,0x053E,0x0CD2,0x0C70,0x159E,0x1691,0x0713,
2320 +     0x1F5E,0x205B,0x15C6,0x1C09,0x16E0,0x04CF,0x1C1C,0x0C74,0x15E5,0x12F7,
2321 +     0x16D8,0x2245,0x07E2,0x0566,0x0345,0x1FE2,0x2093,0x114B,0x19D8,0x0313,
2322 +     0x2108,0x1E09,0x2110,0x1FA8,0x03F6,0x0D93,0x0BD8,0x067F,0x06DE,0x2242,
2323 +     0x2282,0x120F,0x04E5,0x0E97,0x05DE,0x1D9B,0x09C1,0x19C8,0x029D,0x19A4,
2324 +     0x18BB,0x12F5,0x13D5,0x1AB3,0x11CF,0x0D59,0x094A,0x1574,0x16F6,0x0C08,
2325 +     0x22C3,0x20BB,0x18E3,0x0A73,0x1842,0x093E,0x1114,0x1211,0x1733,0x09DA,
2326 +     0x1ABE,0x1BD0,0x202F,0x0E41,0x222F,0x1F94,0x0D21,0x0553,0x08F0,0x10DA,
2327 +     0x0711,0x11FE,0x1B52,0x07BC,0x0BF3,0x076F,0x0AD1,0x0D1E,0x004F,0x170D,
2328 +     0x107A,0x1103,0x0681,0x02D2,0x0FA7,0x10DD,0x12D4,0x2083,0x0D9F,0x1DEB,
2329 +     0x0422,0x1776,0x1767,0x029F,0x0C7A,0x10E1,0x1C11,0x08D6,0x069A,0x1F47,
2330 +     0x14AA,0x1810,0x0CF6,0x09A3,0x0235,0x180A,0x1708,0x0A72,0x1BEC,0x1026,
2331 +     0x1754,0x0B0B,0x043A,0x2040,0x1119,0x0612,0x0628,0x1187,0x14B4,0x157F,
2332 +     0x1DB3,0x0156,0x01F9,0x082C,0x13FB,0x1218,0x0003,0x19CC,0x1764,0x14DC,
2333 +     0x1F30,0x0011,0x0AA1,0x096F,0x14FE,0x23C3,0x0CAE,0x04DB,0x0F18,0x1F4A,
2334 +     0x039B,0x15E1,0x08CB,0x0ADF,0x1FDF,0x1B50,0x08ED,0x1721,0x2296,0x040F,
2335 +     0x1A29,0x128E,0x0C84,0x218A,0x01CA,0x1D78,0x05D8,0x0D19,0x0B94,0x13C0,
2336 +     0x02E8,0x0426,0x2272,0x10ED,0x1179,0x1E4D,0x1781,0x0219,0x21A9,0x0088,
2337 +     0x2091,0x19E4,0x115A,0x1116,0x17D0,0x1A49,0x14B2,0x0DAD,0x0608,0x1F6E,
2338 +     0x2001,0x1BE0,0x17F0,0x0897,0x004C,0x11C3,0x22E3,0x05C8,0x06E5,0x1678,
2339 +     0x140D,0x1BA9,0x05FC,0x08E3,0x096D,0x03A9,0x092C,0x17F8,0x04BF,0x0902,
2340 +     0x16DB,0x1EE2,0x15E7,0x12E2,0x05AF,0x0C64,0x1345,0x03F2,0x128A,0x0811,
2341 +     0x0716,0x0582,0x031F,0x13DF,0x1E47,0x1B1C,0x0E77,0x1EE3,0x22B2,0x1FBA,
2342 +     0x0E2D,0x2082,0x1A8D,0x1596,0x11B4,0x129C,0x1F95,0x1710,0x1A57,0x1736,
2343 +     0x0D84,0x1B34,0x1D30,0x0D95,0x0B6E,0x1F2A,0x0E64,0x060B,0x0A91,0x0CE9,
2344 +     0x14A7,0x20B3,0x1442,0x1803,0x195C,0x06B2,0x11F9,0x10DF,0x1784,0x0B53,
2345 +     0x10BA,0x1317,0x1420,0x114F,0x1871,0x17C2,0x0742,0x16A2,0x06EC,0x19B7,
2346 +     0x0367,0x0C2E,0x129E,0x06CF,0x0D01,0x0FE7,0x03A8,0x08C4,0x124D,0x139C,
2347 +     0x04AB,0x1CC5,0x0574,0x082B,0x1C79,0x126C,0x216F,0x023B,0x17D5,0x066A,
2348 +     0x0F01,0x0AE6,0x06F0,0x13B6,0x1227,0x0A78,0x230E,0x2348,0x222A,0x0FF4,
2349 +     0x1E9B,0x1FD8,0x136A,0x2335,0x10AC,0x134B,0x1939,0x0273,0x0BC4,0x01E3,
2350 +     0x1D37,0x1AA8,0x0123,0x0609,0x069E,0x03B5,0x1874,0x1896,0x22DA,0x08B3,
2351 +     0x04B4,0x0304,0x1FCD,0x0F6F,0x04B6,0x0A77,0x02A2,0x2109,0x2393,0x23B5,
2352 +     0x21B5,0x2330,0x1CD7,0x15D6,0x0ACB,0x0F94,0x20DE,0x0836,0x1C7A,0x0FFE,
2353 +     0x1645,0x15AD,0x188B,0x184A,0x1B41,0x158E,0x046D,0x173E,0x0B40,0x0378,
2354 +     0x0281,0x0F3D,0x11AC,0x1D70,0x1BF9,0x101E,0x145C,0x0083,0x058E,0x160C,
2355 +     0x1FA6,0x1364,0x1FF1,0x0E48,0x0992,0x086C,0x16D6,0x08DA,0x0C40,0x0253,
2356 +     0x03F9,0x2065,0x2032,0x03B0,0x1281,0x2118,0x1F23,0x1722,0x22FA,0x0328,
2357 +     0x01AA,0x146A,0x12C4,0x2329,0x03EF,0x0DF3,0x0C53,0x09EA,0x01C4,0x1FCA,
2358 +     0x1792,0x09D9,0x1540,0x1F6A,0x0279,0x0145,0x1AA7,0x013F,0x1E19,0x15B6,
2359 +     0x000D,0x0A53,0x186E,0x217F,0x0CE3,0x1853,0x1A11,0x1936,0x1828,0x08BD,
2360 +     0x08DF,0x1EA8,0x12EE,0x1D0C,0x1664,0x20DF,0x04DE,0x083A,0x0D24,0x2361,
2361 +     0x0F2B,0x2354,0x126F,0x109B,0x1DF8,0x174F,0x09A0,0x0D53,0x00C2,0x06BA,
2362 +     0x087C,0x0CC3,0x21B9,0x128C,0x01A1,0x0688,0x1162,0x0C7C,0x1C27,0x20D0,
2363 +     0x0A6B,0x1B44,0x002D,0x119B,0x1855,0x102F,0x19BB,0x20FB,0x11C8,0x05FB,
2364 +     0x058A,0x1C5F,0x1CE6,0x09C7,0x192F,0x0E1D,0x03CB,0x20EA,0x1CC3,0x01DB,
2365 +     0x05C9,0x1B60,0x069B,0x001D,0x2295,0x1C4E,0x0A40,0x105F,0x0141,0x01AC,
2366 +     0x0640,0x032D,0x15B5,0x229F,0x1E17,0x19F0,0x194F,0x0102,0x0675,0x0B5B,
2367 +     0x203A,0x1010,0x1412,0x02E7,0x155C,0x176A,0x0866,0x21A1,0x18E9,0x0565,
2368 +     0x12CA,0x1F44,0x1274,0x1B32,0x0260,0x196F,0x1838,0x13C3,0x003F,0x19C6,
2369 +     0x01C6,0x1600,0x0EDF,0x0FD1,0x0A69,0x0062,0x1ED0,0x0F56,0x0377,0x2333,
2370 +     0x0EA5,0x0350,0x1DF1,0x19A6,0x224B,0x0EA0,0x112D,0x204D,0x04D2,0x1613,
2371 +     0x1793,0x0817,0x1D4E,0x1BF2,0x1913,0x0233,0x0B34,0x0A71,0x109C,0x1775,
2372 +     0x0CDD,0x02DE,0x1EB4,0x1C28,0x021C,0x1D1C,0x1C93,0x1189,0x1999,0x16AC,
2373 +     0x1670,0x1738,0x1E2A,0x2078,0x14BD,0x00EA,0x0898,0x1015,0x0EFA,0x19D7,
2374 +     0x113E,0x1630,0x1DBB,0x0EC9,0x1560,0x1FC8,0x16EC,0x10E3,0x0CF2,0x07C8,
2375 +     0x1174,0x0C5A,0x002E,0x1DB1,0x01D6,0x07E7,0x18CD,0x19A8,0x0CC5,0x0D5C,
2376 +     0x1541,0x12CC,0x0BE9,0x0A1C,0x21CF,0x0171,0x067B,0x1DE3,0x1EE8,0x022B,
2377 +     0x17A9,0x19AB,0x0D20,0x1C03,0x1E45,0x0E80,0x0B19,0x107F,0x124F,0x18AE,
2378 +     0x1907,0x1614,0x18BD,0x0A9B,0x059B,0x0D70,0x12F3,0x10C5,0x2140,0x0BB4,
2379 +     0x2384,0x01F7,0x0748,0x0FFB,0x13B3,0x01AD,0x076D,0x1083,0x1125,0x0018,
2380 +     0x1C39,0x0925,0x19EF,0x0E4F,0x210C,0x159F,0x037E,0x0A62,0x219E,0x211C,
2381 +     0x1C54,0x0BE0,0x1E02,0x09BA,0x1CBB,0x147B,0x1389,0x0B68,0x1023,0x23CB,
2382 +     0x0E75,0x1086,0x1145,0x0BE4,0x1BFD,0x2059,0x2007,0x0022,0x05D5,0x1BF6,
2383 +     0x02F0,0x1D1D,0x129A,0x06E4,0x0F47,0x0673,0x0ADD,0x0871,0x1C52,0x1449,
2384 +     0x232C,0x1E67,0x085B,0x20AE,0x0B74,0x16A7,0x0B85,0x1717,0x0FC7,0x0DFB,
2385 +     0x097F,0x0624,0x1CD6,0x15AF,0x0EFB,0x0E42,0x03B9,0x1369,0x0927,0x047C,
2386 +     0x0D5A,0x0982,0x0E7F,0x217C,0x02D5,0x06DD,0x1E79,0x0D9D,0x1964,0x1153,
2387 +     0x1F70,0x04CD,0x1123,0x22F1,0x1F2D,0x1EA4,0x19B6,0x1C3B,0x1356,0x0E01,
2388 +     0x16C7,0x11C9,0x191A,0x09AC,0x1DE6,0x1FDC,0x0581,0x1F04,0x1178,0x06AB,
2389 +     0x1D06,0x0A48,0x0F5B,0x1E4A,0x15D2,0x0FF8,0x01C3,0x1A14,0x0D17,0x086D,
2390 +     0x0CEF,0x1D50,0x03CF,0x0B3E,0x003D,0x06AC,0x008B,0x1185,0x1732,0x11BD,
2391 +     0x12F8,0x03B8,0x1068,0x18A2,0x1BA0,0x10F0,0x0868,0x03E6,0x1DC8,0x1AA2,
2392 +     0x1B13,0x1C82,0x0055,0x099F,0x2222,0x034B,0x179D,0x1E6F,0x1261,0x0FC8,
2393 +     0x166D,0x1F42,0x127F,0x0C9B,0x00B9,0x1D26,0x181D,0x1320,0x09AE,0x01DA,
2394 +     0x1A35,0x05E3,0x04D6,0x1141,0x1BB2,0x0669,0x1B70,0x1F22,0x1B9D,0x19BE,
2395 +     0x0D2A,0x1057,0x0A3B,0x11D3,0x157B,0x1B49,0x14F7,0x095D,0x0A88,0x0126,
2396 +     0x031B,0x03DE,0x1422,0x0BF8,0x1030,0x1F34,0x210B,0x1B12,0x0379,0x0806,
2397 +     0x1252,0x18A0,0x1778,0x1EE7,0x23C6,0x1611,0x22EC,0x0BE8,0x0950,0x1008,
2398 +     0x0906,0x1D51,0x10A2,0x1DAE,0x22D8,0x1499,0x152F,0x0D08,0x00DB,0x0860,
2399 +     0x0162,0x0AD3,0x2233,0x18A6,0x0DD2,0x1477,0x11B3,0x1CBD,0x2043,0x183A,
2400 +     0x1077,0x15E6,0x1FEA,0x0FE8,0x0396,0x0B0A,0x1296,0x0049,0x2303,0x1818,
2401 +     0x03A2,0x03F8,0x1225,0x05ED,0x15D4,0x030D,0x089D,0x107E,0x0A43,0x14A0,
2402 +     0x235C,0x1426,0x0733,0x0D1C,0x1B96,0x09CE,0x155D,0x0F6E,0x238C,0x0876,
2403 +     0x1DE0,0x1223,0x0FEF,0x078B,0x1EC2,0x09BF,0x1D52,0x1FA4,0x202B,0x14E1,
2404 +     0x0864,0x1F78,0x0FA9,0x1821,0x0E38,0x06A6,0x0211,0x1F9E,0x020A,0x1AF2,
2405 +     0x0981,0x1CC0,0x0766,0x1047,0x1EA9,0x0C16,0x1BE8,0x0464,0x22C8,0x183B,
2406 +     0x0B32,0x2106,0x0D79,0x14F5,0x0A33,0x18D4,0x0482,0x0158,0x13E2,0x1651,
2407 +     0x03C6,0x1750,0x1A5A,0x1C3C,0x1825,0x1DFB,0x1D76,0x2218,0x1F16,0x08EE,
2408 +     0x210A,0x0747,0x0DF5,0x0CD3,0x10D3,0x1BBA,0x1F5D,0x1A78,0x19C7,0x177E,
2409 +     0x13F0,0x2315,0x1F82,0x0922,0x22C6,0x17CC,0x1A50,0x1FE5,0x193D,0x122D,
2410 +     0x03E3,0x07C9,0x20B0,0x217A,0x23F4,0x0DFD,0x1268,0x080E,0x192D,0x0698,
2411 +     0x1EAF,0x170A,0x1E60,0x1947,0x1CE1,0x10BB,0x1505,0x016E,0x207B,0x11E7,
2412 +     0x1F85,0x0F72,0x191E,0x2015,0x04AD,0x0AC1,0x1D73,0x2003,0x02F9,0x1C26,
2413 +     0x1F64,0x0C7D,0x0B2D,0x004D,0x1E2B,0x1432,0x026C,0x1E04,0x218C,0x0CE1,
2414 +     0x000F,0x0A01,0x16D0,0x20C8,0x0E25,0x0C09,0x2199,0x091A,0x0E3B,0x0F5F,
2415 +     0x0D5E,0x223D,0x025D,0x0699,0x00DD,0x20EB,0x1352,0x1B92,0x21A4,0x1E10,
2416 +     0x05E5,0x1292,0x0750,0x0552,0x0061,0x0058,0x07CB,0x02B6,0x12F0,0x0F67,
2417 +     0x070D,0x1837,0x196B,0x09F7,0x153F,0x0BEE,0x1769,0x0B00,0x1142,0x1AE9,
2418 +     0x1B98,0x1B8A,0x11A8,0x1DD2,0x16D2,0x1C7C,0x0F38,0x0F3B,0x1601,0x0151,
2419 +     0x0320,0x1085,0x0B61,0x0DAF,0x1308,0x0E21,0x0371,0x1F7C,0x04DD,0x0F49,
2420 +     0x1146,0x169C,0x1E31,0x1258,0x1E50,0x1F8B,0x205F,0x145A,0x084D,0x23B8,
2421 +     0x0FAF,0x2055,0x160E,0x13D7,0x0908,0x0A7C,0x1022,0x0AC5,0x02DA,0x1962,
2422 +     0x1F9F,0x0467,0x1E9C,0x04E3,0x0F4E,0x1DF9,0x23A5,0x10E7,0x11A9,0x215F,
2423 +     0x117E,0x223A,0x149E,0x01E6,0x18D6,0x03B7,0x104B,0x0FBB,0x1273,0x18C9,
2424 +     0x0A4A,0x215A,0x024C,0x1378,0x1ED2,0x212D,0x0F22,0x1F99,0x212E,0x2044,
2425 +     0x10D0,0x22D2,0x20F7,0x19B5,0x1416,0x1741,0x20B6,0x1159,0x23A6,0x186D,
2426 +     0x0515,0x04A8,0x2171,0x0E9E,0x2325,0x111B,0x1EC8,0x1620,0x1687,0x22BC,
2427 +     0x059F,0x06E7,0x11DD,0x1C88,0x2125,0x0FAA,0x10DB,0x1854,0x1410,0x141C,
2428 +     0x23AF,0x21D6,0x0B8C,0x0AD9,0x0B6B,0x0597,0x0C06,0x0619,0x198F,0x0339,
2429 +     0x0802,0x0859,0x0107,0x0410,0x208A,0x2291,0x0E10,0x1DA6,0x19AA,0x0324,
2430 +     0x10FB,0x049A,0x0CAC,0x2252,0x0299,0x0FD0,0x1DE7,0x086E,0x0FFA,0x09FA,
2431 +     0x23C8,0x18C7,0x0489,0x2195,0x1802,0x19F2,0x1967,0x0FBF,0x02EE,0x0AE4,
2432 +     0x0B63,0x1509,0x178F,0x0843,0x05E7,0x0613,0x1739,0x065A,0x0201,0x06D7,
2433 +     0x21DA,0x11F4,0x0503,0x090D,0x0E32,0x09A8,0x1B5A,0x1EFB,0x20BF,0x11F1,
2434 +     0x1D40,0x1DF2,0x1E75,0x01B0,0x0BCE,0x1346,0x1D5C,0x0546,0x1B0E,0x07B4,
2435 +     0x11E8,0x018A,0x19E6,0x0177,0x134E,0x18E2,0x1546,0x0861,0x054C,0x0119,
2436 +     0x1A77,0x1CEF,0x1110,0x1953,0x1CD9,0x0B65,0x0CD0,0x1E5A,0x1E0F,0x07EB,
2437 +     0x13C2,0x1949,0x16E3,0x0409,0x007F,0x1CFF,0x0485,0x14D0,0x0CD1,0x0E46,
2438 +     0x055E,0x1C48,0x016F,0x1C7B,0x1109,0x18B2,0x0ED5,0x13B0,0x0DFF,0x2061,
2439 +     0x0795,0x2076,0x1A4A,0x029C,0x13BF,0x119A,0x1819,0x227A,0x0388,0x1C24,
2440 +     0x036E,0x1D82,0x0F4B,0x084E,0x23EB,0x13A1,0x0632,0x13DC,0x150A,0x0112,
2441 +     0x05A4,0x073C,0x161D,0x04AC,0x2283,0x0D0A,0x172E,0x2142,0x0319,0x1673,
2442 +     0x17D6,0x0F73,0x0E26,0x14E6,0x1F46,0x13E0,0x1841,0x130E,0x2363,0x10CE,
2443 +     0x0980,0x15A2,0x1FC7,0x04D9,0x11A2,0x0CA8,0x00EF,0x07BF,0x1C12,0x09DE,
2444 +     0x0AE0,0x00DF,0x0D49,0x06C0,0x206E,0x1EE1,0x0A38,0x22F8,0x1DC7,0x0A79,
2445 +     0x1800,0x179B,0x1386,0x1A22,0x01D2,0x094E,0x125C,0x2244,0x1746,0x0EDE,
2446 +     0x002A,0x1CA7,0x099A,0x07E4,0x0264,0x1C6F,0x2389,0x0987,0x1F3D,0x1E88,
2447 +     0x02E0,0x0D44,0x0E6C,0x1E8F,0x0F55,0x2066,0x1CC4,0x0917,0x1DB8,0x089F,
2448 +     0x0615,0x11A5,0x12C8,0x0A42,0x079C,0x0D13,0x0B6A,0x131F,0x136C,0x04AE,
2449 +     0x130D,0x16F8,0x01A0,0x13C7,0x0B4C,0x2279,0x0196,0x1464,0x0F60,0x0231,
2450 +     0x19A0,0x1E9A,0x0397,0x170B,0x133C,0x2265,0x017C,0x1C78,0x048C,0x08D0,
2451 +     0x06A4,0x071C,0x0BBA,0x0DE7,0x0B3F,0x0229,0x1EAD,0x140A,0x037B,0x0EC6,
2452 +     0x0E16,0x0442,0x1894,0x156C,0x0F8F,0x23A1,0x0DCE,0x13CD,0x1AA4,0x0E59,
2453 +     0x162B,0x1AA9,0x1BFB,0x09A7,0x1703,0x0A81,0x2056,0x21BC,0x078F,0x07AD,
2454 +     0x1A24,0x0F31,0x19F3,0x09E6,0x11CD,0x23B6,0x234F,0x0FD2,0x196D,0x06D6,
2455 +     0x035A,0x0AFA,0x005E,0x035C,0x1AB9,0x15A4,0x1318,0x0132,0x08D9,0x0512,
2456 +     0x1693,0x0DB0,0x16A6,0x07FC,0x0B02,0x1D0D,0x09F0,0x21F5,0x0799,0x13E3,
2457 +     0x0768,0x0EF9,0x1176,0x014A,0x15C1,0x0BA1,0x0E99,0x112B,0x1AAE,0x1C0B,
2458 +     0x0178,0x1C69,0x1C0F,0x0130,0x1FC2,0x0E45,0x1694,0x1F0D,0x1A79,0x0911,
2459 +     0x0FE9,0x09AF,0x18C2,0x1B67,0x1DF3,0x0B01,0x14B5,0x1DFD,0x0DCD,0x161E,
2460 +     0x19A1,0x19E5,0x1500,0x14C9,0x0B2A,0x2366,0x1B46,0x14F4,0x0B5C,0x063E,
2461 +     0x03E1,0x0CA5,0x04F7,0x1409,0x0EC3,0x1D5D,0x012C,0x1277,0x1310,0x1214,
2462 +     0x112E,0x1F80,0x0AD6,0x1FD6,0x105B,0x226C,0x1F41,0x19CF,0x2033,0x0D29,
2463 +     0x03CA,0x1A47,0x0756,0x125A,0x06F4,0x1B53,0x0527,0x1D91,0x20CE,0x1975,
2464 +     0x0072,0x1431,0x1EEF,0x0BD0,0x0BE1,0x0C01,0x00E1,0x0A7A,0x23E6,0x0323,
2465 +     0x219F,0x1367,0x07A2,0x1CB6,0x2191,0x0CB2,0x234A,0x1288,0x17DD,0x030B,
2466 +     0x15F2,0x02A8,0x0D83,0x04BD,0x2347,0x0522,0x051B,0x225A,0x228A,0x1B9F,
2467 +     0x13F9,0x1B7C,0x1D7F,0x0A30,0x0220,0x1C3F,0x22EA,0x1680,0x0FC9,0x1190,
2468 +     0x1EF1,0x21CC,0x155E,0x20DD,0x0F27,0x13F6,0x07FF,0x0F71,0x1E6A,0x05B9,
2469 +     0x0F0A,0x2228,0x02E9,0x0ACE,0x205C,0x01E5,0x200B,0x002F,0x1E27,0x0116,
2470 +     0x1B38,0x190C,0x2307,0x07EA,0x152C,0x04C8,0x01FE,0x199B,0x1001,0x1535,
2471 +     0x0930,0x1EC9,0x086A,0x0080,0x141E,0x1066,0x16DF,0x0C79,0x1E42,0x0A4C,
2472 +     0x0667,0x1B7F,0x1679,0x1A3C,0x1A25,0x00E6,0x0611,0x0518,0x0B87,0x16F9,
2473 +     0x22B0,0x1C3A,0x14FD,0x04BC,0x080F,0x21BF,0x1943,0x0266,0x1124,0x002B,
2474 +     0x0670,0x01AB,0x1EC5,0x08B6,0x091D,0x0FA6,0x0541,0x20DC,0x0E65,0x0128,
2475 +     0x08C9,0x11E5,0x1647,0x0D3D,0x01B8,0x1C61,0x2319,0x200C,0x1053,0x1027,
2476 +     0x05F8,0x1A27,0x1133,0x210D,0x11E6,0x0935,0x054B,0x0754,0x02C6,0x0723,
2477 +     0x0852,0x106B,0x161F,0x10B1,0x0E81,0x2054,0x156B,0x1113,0x22C5,0x21B7,
2478 +     0x0AC0,0x042B,0x17DB,0x01B9,0x0CA2,0x055B,0x1A87,0x0D62,0x0A47,0x077F,
2479 +     0x1D25,0x0FB5,0x1F3F,0x04E0,0x16C2,0x011D,0x158C,0x209C,0x0D6E,0x18FE,
2480 +     0x05DD,0x1C05,0x123E,0x1BC6,0x0892,0x232B,0x1E3F,0x11B6,0x10B6,0x144A,
2481 +     0x203F,0x02AD,0x2237,0x1BB3,0x03EB,0x0BBC,0x0311,0x1054,0x011E,0x1712,
2482 +     0x05C2,0x2129,0x0292,0x22D0,0x0E6F,0x1F17,0x2234,0x16B6,0x00B5,0x1502,
2483 +     0x0B0E,0x1299,0x2170,0x08C0,0x1BD4,0x1475,0x141B,0x0D00,0x2026,0x0318,
2484 +     0x1567,0x0A4E,0x03E9,0x1CDC,0x23A8,0x1D8E,0x0DD8,0x0470,0x0286,0x1C22,
2485 +     0x1315,0x1785,0x048F,0x1786,0x1EE0,0x0B37,0x0952,0x02BE,0x0873,0x04DF,
2486 +     0x2101,0x0FCD,0x04B0,0x059D,0x1FCF,0x05E0,0x1C7F,0x0CBE,0x0461,0x024A,
2487 +     0x027C,0x05F4,0x092A,0x0DC9,0x01E7,0x1147,0x03B2,0x1AB8,0x0238,0x174C,
2488 +     0x02B2,0x1C6E,0x04D8,0x0DBC,0x1AB1,0x17FF,0x1443,0x054F,0x1128,0x0370,
2489 +     0x14CC,0x1F35,0x1173,0x0A03,0x1D32,0x12D1,0x02AB,0x09DB,0x153D,0x1425,
2490 +     0x122F,0x06BD,0x17B8,0x1579,0x0890,0x1B0F,0x1050,0x0DDF,0x23E3,0x1860,
2491 +     0x1203,0x11D5,0x0EBB,0x0A80,0x00B7,0x1951,0x15B7,0x1FF3,0x0D14,0x143D,
2492 +     0x164C,0x0E67,0x0C91,0x01F4,0x2243,0x1474,0x03A4,0x2147,0x0270,0x10C9,
2493 +     0x116F,0x127D,0x0B1E,0x10FC,0x1A0A,0x1846,0x1F63,0x1067,0x0BB3,0x191F,
2494 +     0x0EA6,0x0EEF,0x1E29,0x18B9,0x2079,0x090C,0x16FD,0x0EB4,0x0BC9,0x2098,
2495 +     0x080A,0x0183,0x1BFE,0x1631,0x0769,0x1DD8,0x142F,0x0F66,0x1316,0x02A9,
2496 +     0x22EE,0x1C4F,0x0285,0x1013,0x065D,0x0C2D,0x0466,0x033E,0x00E7,0x1900,
2497 +     0x226F,0x1276,0x03AE,0x0EA1,0x23E7,0x174D,0x216C,0x1CA1,0x1A06,0x0665,
2498 +     0x1461,0x2260,0x1F7D,0x1156,0x14E8,0x1327,0x0257,0x089A,0x15DF,0x16F4,
2499 +     0x0EB9,0x03B3,0x0EAD,0x0FD9,0x085D,0x1259,0x1BA8,0x1E90,0x114C,0x2236,
2500 +     0x02C7,0x1E53,0x2115,0x1D33,0x1FF5,0x1AFD,0x185D,0x06EE,0x0DC0,0x078C,
2501 +     0x0AF4,0x15D1,0x0030,0x2131,0x1EB6,0x06E0,0x06B6,0x038C,0x05A8,0x080C,
2502 +     0x0E98,0x1682,0x1DC0,0x1340,0x13B7,0x1C1B,0x0434,0x1AB5,0x1CAB,0x1A1C,
2503 +     0x07D0,0x1ABB,0x22C1,0x0F08,0x027D,0x1238,0x1591,0x07F7,0x0D30,0x13F8,
2504 +     0x1909,0x212B,0x1826,0x0749,0x0D06,0x0D2E,0x104F,0x1F39,0x09EB,0x0EF6,
2505 +     0x22E6,0x16F1,0x0AEE,0x116B,0x17DE,0x0B12,0x0322,0x0BEA,0x064C,0x03D9,
2506 +     0x2374,0x0CA4,0x1293,0x0E5C,0x04B3,0x03A0,0x13AD,0x0E33,0x0353,0x081A,
2507 +     0x0BB2,0x0DA3,0x1E01,0x1322,0x0EBE,0x0D0E,0x0DBB,0x11A3,0x1B57,0x16FF,
2508 +     0x0298,0x1A8F,0x09EF,0x08AD,0x1877,0x22AC,0x147A,0x1B36,0x095A,0x1B08,
2509 +     0x0455,0x10AD,0x0343,0x1B16,0x0CF8,0x082E,0x144D,0x1A37,0x1B5D,0x0702,
2510 +     0x09C4,0x1E16,0x157A,0x1965,0x0A63,0x1C6D,0x0D9E,0x0ED8,0x1E57,0x05CC,
2511 +     0x1758,0x008D,0x0BFE,0x1168,0x04ED,0x1917,0x2251,0x1074,0x2356,0x1719,
2512 +     0x1D3B,0x1FBE,0x22AA,0x14C8,0x211F,0x16D1,0x124B,0x2241,0x1C08,0x0AAC,
2513 +     0x0F06,0x12B5,0x01FB,0x1C72,0x0089,0x23B3,0x02BA,0x15A5,0x1A00,0x1483,
2514 +     0x13F2,0x2016,0x1AEB,0x2187,0x0BF7,0x07FA,0x2005,0x1516,0x13D6,0x0122,
2515 +     0x0420,0x039D,0x0193,0x193B,0x2360,0x0453,0x0A75,0x0BD9,0x1197,0x1923,
2516 +     0x1DB5,0x2225,0x1194,0x2058,0x0E9F,0x1106,0x06A1,0x02F5,0x1B63,0x00FF,
2517 +     0x1F4C,0x2289,0x0CE0,0x1F1D,0x1247,0x19AE,0x1FC0,0x182E,0x05B3,0x0DB2,
2518 +     0x229C,0x0E3D,0x232D,0x1961,0x1B95,0x0CA9,0x1A9E,0x183F,0x0203,0x1E76,
2519 +     0x16BB,0x00B1,0x0A3F,0x237E,0x08A8,0x1B6E,0x0B2B,0x215B,0x119E,0x0945,
2520 +     0x0F86,0x0A4B,0x12C7,0x1616,0x046B,0x20A3,0x0454,0x0405,0x0C19,0x1A08,
2521 +     0x1E33,0x10BD,0x1861,0x2135,0x0C23,0x0F36,0x0C5C,0x049B,0x032F,0x1A19,
2522 +     0x03DC,0x1E84,0x011C,0x1E61,0x096E,0x1F66,0x0798,0x104C,0x1C62,0x1E73,
2523 +     0x03E4,0x0638,0x190D,0x1AF6,0x17EF,0x10FD,0x1B0D,0x1263,0x1512,0x09A5,
2524 +     0x1439,0x0EF7,0x041D,0x04BA,0x08D4,0x1714,0x1B62,0x164F,0x1787,0x114A,
2525 +     0x05B2,0x1812,0x0D33,0x176E,0x1480,0x12FA,0x0E61,0x084B,0x0801,0x079A,
2526 +     0x2034,0x154A,0x23BC,0x20A9,0x1985,0x2286,0x148C,0x0DC2,0x06D8,0x1D4C,
2527 +     0x183D,0x1A41,0x22DD,0x21F1,0x103C,0x14BC,0x0827,0x0850,0x157D,0x02BD,
2528 +     0x03BF,0x00DE,0x0C9E,0x1CB7,0x1BF8,0x0805,0x20A8,0x1DA1,0x1F50,0x1DA0,
2529 +     0x0DA0,0x068E,0x1979,0x0650,0x1F52,0x2239,0x0594,0x1534,0x1C38,0x0351,
2530 +     0x0DE3,0x1672,0x21E3,0x10AB,0x11BC,0x1788,0x1547,0x2071,0x07DE,0x012F,
2531 +     0x22AF,0x2377,0x179A,0x12B3,0x0CF3,0x0B92,0x0BB7,0x070F,0x11CA,0x2039,
2532 +     0x0DAA,0x1521,0x0278,0x0F4D,0x0C87,0x0956,0x0967,0x067E,0x08B0,0x11AF,
2533 +     0x051F,0x099E,0x0C78,0x0E27,0x19BD,0x1DCC,0x15F1,0x01F5,0x1453,0x043E,
2534 +     0x1E8C,0x018F,0x1B54,0x2166,0x1BBC,0x1FE8,0x059A,0x0C6B,0x00C7,0x1E92,
2535 +     0x13DE,0x0B3B,0x05E4,0x15EE,0x22A9,0x2090,0x2276,0x0631,0x105D,0x2038,
2536 +     0x195A,0x17E5,0x1AFF,0x10A8,0x0384,0x0886,0x0456,0x1599,0x0B4E,0x1D47,
2537 +     0x1830,0x051E,0x1C3D,0x20E1,0x1895,0x2092,0x10E9,0x07C6,0x23BD,0x201A,
2538 +     0x209A,0x04C4,0x0315,0x019B,0x237C,0x047A,0x23FC,0x11A6,0x195F,0x2006,
2539 +     0x1328,0x1CCE,0x1DEA,0x0970,0x0067,0x058D,0x1934,0x2120,0x01C5,0x2263,
2540 +     0x04FD,0x1AE1,0x125E,0x1CA0,0x19BC,0x226E,0x0734,0x0BB8,0x0A54,0x19FE,
2541 +     0x0E85,0x1FC6,0x0224,0x171C,0x1FFB,0x1115,0x0524,0x133E,0x0EDD,0x2280,
2542 +     0x1D2F,0x0200,0x0CB3,0x23FE,0x0F19,0x1569,0x1537,0x19C2,0x08DC,0x1F6D,
2543 +     0x068D,0x10F4,0x055A,0x1E30,0x21F0,0x1CF5,0x0D35,0x04A6,0x139D,0x23D3,
2544 +     0x0A8D,0x1D3D,0x0763,0x0575,0x1511,0x1676,0x1304,0x0E13,0x10CD,0x0E55,
2545 +     0x199E,0x236E,0x1257,0x2288,0x13E5,0x0037,0x1D04,0x04EF,0x100E,0x0FAE,
2546 +     0x1E9E,0x067A,0x2320,0x0539,0x21D8,0x07C4,0x045F,0x1D0B,0x1196,0x020E,
2547 +     0x1B68,0x04B5,0x031C,0x00FD,0x1184,0x0F7C,0x166C,0x23D2,0x0C9F,0x2380,
2548 +     0x0B78,0x0F14,0x18F0,0x05AD,0x0252,0x138A,0x13FA,0x1A93,0x1F01,0x126A,
2549 +     0x1D6A,0x11D9,0x182F,0x1492,0x1822,0x0D54,0x16E2,0x05D1,0x1155,0x0C4A,
2550 +     0x1F58,0x00A3,0x17E0,0x0CD6,0x1D43,0x0250,0x16F3,0x0CFB,0x0C29,0x0B86,
2551 +     0x11A4,0x1ED7,0x14FC,0x10D8,0x0F59,0x2338,0x1C5A,0x0F42,0x142D,0x12FD,
2552 +     0x2373,0x11CE,0x0800,0x23E0,0x2025,0x0FFD,0x0A99,0x2264,0x1FF7,0x04A9,
2553 +     0x1A67,0x1ED4,0x0BE2,0x21F3,0x1DF4,0x1927,0x04A4,0x1C84,0x0B09,0x11B9,
2554 +     0x21A0,0x1D7B,0x1EF7,0x006F,0x18C6,0x1478,0x0985,0x1E23,0x0039,0x1EBC,
2555 +     0x13D2,0x0391,0x039C,0x0118,0x1061,0x21C8,0x1A40,0x1EAA,0x175B,0x036C,
2556 +     0x204F,0x19BA,0x1F91,0x193A,0x197B,0x0F24,0x176F,0x1592,0x0854,0x0804,
2557 +     0x0FD4,0x0A2B,0x16FE,0x0D64,0x0587,0x1F00,0x1539,0x203C,0x1E54,0x01B4,
2558 +     0x02E6,0x1B11,0x0A98,0x157C,0x1868,0x0786,0x15C8,0x083C,0x0F84,0x1209,
2559 +     0x0B47,0x0F1C,0x0D77,0x188C,0x06C7,0x0521,0x203E,0x1921,0x0996,0x2020,
2560 +     0x1E5D,0x12CE,0x0940,0x0309,0x1991,0x12A7,0x1E77,0x0830,0x1B94,0x1C73,
2561 +     0x02C4,0x1D86,0x0F0F,0x192B,0x0BFC,0x1451,0x1969,0x09F1,0x010C,0x1865,
2562 +     0x09C6,0x1AE8,0x17B7,0x21F8,0x14A1,0x21F6,0x07D7,0x0C36,0x1CB4,0x1883,
2563 +     0x1655,0x1DDF,0x0863,0x00F0,0x0961,0x0687,0x1070,0x0FE5,0x072F,0x0BC2,
2564 +     0x08C8,0x1AAA,0x0645,0x09CF,0x0FA8,0x2130,0x23CF,0x2246,0x1990,0x1744,
2565 +     0x0D4B,0x0090,0x143F,0x166F,0x1DE5,0x0331,0x09CD,0x1447,0x1CEB,0x0D3B,
2566 +     0x0CCD,0x2159,0x0F78,0x0251,0x068F,0x07BB,0x0877,0x1A2A,0x0700,0x23C2,
2567 +     0x08A2,0x1C98,0x1427,0x0E79,0x15AC,0x0F8B,0x153A,0x0AEC,0x0DEC,0x03EE,
2568 +     0x1AE2,0x1F6B,0x13F4,0x1EFA,0x172F,0x1C87,0x1B3F,0x192A,0x1C53,0x1BB1,
2569 +     0x0297,0x0772,0x1385,0x173D,0x0707,0x17BD,0x007D,0x1A07,0x08C6,0x1D6F,
2570 +     0x09D8,0x1850,0x1C8B,0x180D,0x1CB1,0x148A,0x0492,0x0847,0x0D78,0x0DEF,
2571 +     0x0E7E,0x1D3A,0x0E91,0x1888,0x1C59,0x1AE7,0x1FC1,0x154C,0x058C,0x0078,
2572 +     0x22BA,0x225B,0x0F5E,0x1A4C,0x0D3E,0x195D,0x06DF,0x02A7,0x14E5,0x0CFC,
2573 +     0x16EE,0x0F7D,0x0321,0x178A,0x1097,0x0E0B,0x1479,0x079D,0x1C5B,0x1208,
2574 +     0x0B1F,0x0D7C,0x1963,0x0835,0x1C99,0x2226,0x1417,0x045E,0x18E0,0x0051,
2575 +     0x1243,0x181E,0x0659,0x172A,0x1373,0x1ABD,0x1F0C,0x1749,0x113A,0x06ED,
2576 +     0x09A6,0x027F,0x015D,0x1084,0x022E,0x1A5B,0x1685,0x1D1B,0x0054,0x0FB3,
2577 +     0x20CC,0x23A9,0x220B,0x045A,0x1B24,0x2145,0x148B,0x18EC,0x16BC,0x0B9B,
2578 +     0x120C,0x18B0,0x02E3,0x1A1D,0x0BE7,0x133D,0x0DE1,0x21D4,0x0357,0x1715,
2579 +     0x20A2,0x0A18,0x239D,0x22D6,0x0CD5,0x1942,0x16E9,0x0E54,0x1007,0x069D,
2580 +     0x1CB8,0x12DC,0x0381,0x0C93,0x1EFF,0x04E4,0x1C25,0x1FE7,0x20C1,0x0412,
2581 +     0x0215,0x1594,0x1BC5,0x217E,0x221C,0x173A,0x1F19,0x1183,0x0765,0x20F8,
2582 +     0x05F2,0x130A,0x036D,0x012E,0x06EA,0x0B3C,0x1C42,0x1F43,0x0A95,0x1B8C,
2583 +     0x1F36,0x0622,0x04DA,0x2070,0x089E,0x04D4,0x184E,0x1520,0x1CC8,0x127B,
2584 +     0x1302,0x13D0,0x0626,0x0429,0x004A,0x18C0,0x2144,0x0A34,0x1AEA,0x1212,
2585 +     0x12A2,0x06D2,0x0751,0x1D2B,0x104A,0x133A,0x1E80,0x12F6,0x1C9E,0x1460,
2586 +     0x13BA,0x16D9,0x1648,0x1E3A,0x1B29,0x0592,0x11BA,0x1D0E,0x0153,0x0ADB,
2587 +     0x15C3,0x1507,0x17FC,0x122C,0x14D7,0x21AD,0x1A53,0x14F2,0x16DC,0x20F1,
2588 +     0x118E,0x1AAB,0x04EB,0x0606,0x0D05,0x170E,0x05D9,0x0A83,0x10F7,0x070B,
2589 +     0x04F8,0x0B27,0x2224,0x0F97,0x075E,0x180E,0x2194,0x010E,0x0B57,0x1A80,
2590 +     0x1610,0x1B19,0x1BAC,0x0B30,0x0376,0x1697,0x0668,0x00EC,0x1256,0x1F74,
2591 +     0x110D,0x0807,0x03D1,0x1326,0x0577,0x067C,0x1E5C,0x1D6D,0x06F1,0x075C,
2592 +     0x0394,0x0184,0x1E7E,0x12F1,0x0216,0x0990,0x208D,0x1332,0x1044,0x0EF8,
2593 +     0x0F70,0x075D,0x042C,0x030E,0x17CB,0x0AA3,0x04B2,0x1A63,0x04FE,0x097E,
2594 +     0x213D,0x11DF,0x166B,0x0A2E,0x0664,0x0C75,0x21A3,0x102D,0x1F32,0x1D42,
2595 +     0x0A65,0x14BF,0x0B11,0x22B9,0x08AC,0x1394,0x11B7,0x1FAE,0x1CCD,0x1A05,
2596 +     0x177D,0x0D81,0x1E85,0x0D88,0x0A5E,0x0330,0x0EC4,0x13D9,0x1583,0x1CA6,
2597 +     0x2126,0x0F99,0x158F,0x00F9,0x0176,0x1528,0x1C2B,0x1D69,0x049F,0x0418,
2598 +     0x18B4,0x1ACB,0x236F,0x04C5,0x0705,0x0031,0x20B9,0x15B2,0x1FD4,0x18FC,
2599 +     0x1A6E,0x21B1,0x0DEA,0x0432,0x1F1B,0x0CB7,0x2011,0x07CC,0x21FD,0x1216,
2600 +     0x1F51,0x21AB,0x0974,0x0833,0x06F8,0x1935,0x10B4,0x0164,0x1421,0x1A4D,
2601 +     0x1824,0x07DB,0x1551,0x0E53,0x152D,0x23CE,0x0DFE,0x0D51,0x1A6A,0x1E3C,
2602 +     0x20B4,0x1BAA,0x0C62,0x0973,0x01E4,0x0035,0x01D7,0x0496,0x1A73,0x1435,
2603 +     0x2290,0x22F4,0x1E71,0x0F7B,0x066D,0x0874,0x0DB5,0x0F1A,0x0F2D,0x218F,
2604 +     0x17AE,0x0170,0x1BEA,0x1908,0x204A,0x0728,0x0746,0x18B8,0x0242,0x0F17,
2605 +     0x1F8A,0x0B10,0x0966,0x1DD5,0x0174,0x07AE,0x1485,0x146C,0x0975,0x1556,
2606 +     0x1783,0x2021,0x21E7,0x06DB,0x227D,0x19E7,0x22DC,0x2297,0x1FD1,0x1A26,
2607 +     0x07CD,0x233D,0x1B84,0x1E18,0x21CE,0x0EE4,0x2255,0x0862,0x1887,0x057A,
2608 +     0x20C9,0x17F4,0x1BDD,0x2284,0x1817,0x0929,0x0079,0x18F3,0x0E14,0x1131,
2609 +     0x16B8,0x144E,0x120E,0x16BF,0x058B,0x1C9B,0x05D4,0x0E7B,0x07D3,0x1D27,
2610 +     0x1051,0x1E12,0x2157,0x0A89,0x03E0,0x0DC8,0x219B,0x0495,0x04C0,0x090E,
2611 +     0x1914,0x1A13,0x05C4,0x1C0D,0x0564,0x178C,0x2069,0x0291,0x08B5,0x0138,
2612 +     0x1224,0x14C6,0x14C1,0x1AC7,0x0689,0x1E72,0x1751,0x1E0C,0x2270,0x080D,
2613 +     0x1C00,0x03AD,0x1EF8,0x15C9,0x0F28,0x0E40,0x0F9E,0x0344,0x1D58,0x11F5,
2614 +     0x1EAC,0x17A7,0x188D,0x05BA,0x1472,0x154E,0x0017,0x05C7,0x1ACD,0x2370,
2615 +     0x1140,0x2230,0x0F2E,0x1EB2,0x1CA5,0x1B5E,0x1633,0x09B5,0x08B1,0x1B3E,
2616 +     0x0CFE,0x02ED,0x1CEC,0x020F,0x2103,0x13ED,0x0C99,0x07E3,0x00D9,0x1342,
2617 +     0x2179,0x03AA,0x13F5,0x124C,0x1EAB,0x15BA,0x0F41,0x02F6,0x1652,0x057E,
2618 +     0x0157,0x0BE6,0x09AB,0x148D,0x072A,0x1071,0x09B0,0x0500,0x1B65,0x0A6A,
2619 +     0x13A0,0x0F65,0x21BE,0x01FF,0x19B3,0x1CBA,0x109F,0x1EF0,0x0517,0x0307,
2620 +     0x18AC,0x0FD5,0x1FEF,0x0F16,0x197E,0x1291,0x078A,0x1657,0x13C1,0x0E7A,
2621 +     0x1466,0x07BE,0x164E,0x0419,0x2158,0x0FC4,0x0E7D,0x18D9,0x0942,0x0AEF,
2622 +     0x163E,0x2200,0x226D,0x037A,0x1B66,0x0CAF,0x07FB,0x0CEC,0x0D4A,0x0CB6,
2623 +     0x000E,0x1ADE,0x1BD5,0x1892,0x15A1,0x1DD1,0x1DBC,0x01EE,0x12E0,0x0671,
2624 +     0x0ABB,0x1E0E,0x189F,0x1D9D,0x0DF2,0x0008,0x13CB,0x11B8,0x0571,0x00BA,
2625 +     0x0AC3,0x1568,0x070A,0x21B0,0x16EA,0x1000,0x10BF,0x0C8C,0x0AE5,0x186B,
2626 +     0x1366,0x12DF,0x2156,0x0C82,0x05CD,0x0B25,0x08CA,0x1695,0x0FCE,0x055F,
2627 +     0x0D37,0x1748,0x13DB,0x1E43,0x03E7,0x0D8E,0x095E,0x0AF1,0x0103,0x02F4,
2628 +     0x02F8,0x01F6,0x07FD,0x095F,0x1376,0x1643,0x1350,0x1372,0x06E3,0x14D5,
2629 +     0x0870,0x15D9,0x20CD,0x128D,0x1878,0x0FC1,0x0907,0x127C,0x0A2C,0x0041,
2630 +     0x03F4,0x116C,0x02B1,0x1CEA,0x1A18,0x00FB,0x08DE,0x0660,0x06AA,0x23D1,
2631 +     0x0092,0x230C,0x0D91,0x14A3,0x0478,0x0FF7,0x1AF1,0x001A,0x0E69,0x1F5C,
2632 +     0x162C,0x19F8,0x141A,0x1FE6,0x100F,0x047F,0x1DAF,0x231E,0x236C,0x1725,
2633 +     0x108E,0x0290,0x1006,0x0E74,0x1C0A,0x1E35,0x1B90,0x05A7,0x1C21,0x0F1F,
2634 +     0x0514,0x1937,0x22A6,0x0B4A,0x1A3A,0x1217,0x0E50,0x078D,0x2198,0x1B3B,
2635 +     0x1A44,0x0BAB,0x2268,0x16D5,0x03F3,0x06D0,0x0523,0x1D45,0x18DB,0x0BA7,
2636 +     0x1DBA,0x0776,0x1CFA,0x1E13,0x0271,0x200A,0x0D9B,0x0C4B,0x0588,0x0593,
2637 +     0x18E4,0x082A,0x0533,0x1988,0x0317,0x1848,0x0DAB,0x2177,0x1945,0x126B,
2638 +     0x0842,0x07B9,0x1DE1,0x06F3,0x224E,0x0AF0,0x0026,0x0240,0x010F,0x18E7,
2639 +     0x0E51,0x0947,0x1C35,0x1F28,0x1688,0x07A9,0x1759,0x1608,0x1437,0x0B39,
2640 +     0x2009,0x0389,0x0858,0x15BE,0x08A9,0x22D4,0x0EAE,0x015F,0x0337,0x034D,
2641 +     0x23D9,0x081D,0x1D74,0x0C26,0x1BD9,0x0651,0x1F7B,0x2008,0x16B5,0x23A2,
2642 +     0x05E1,0x1325,0x1E20,0x225F,0x0DED,0x101A,0x1254,0x00A8,0x1F1C,0x1F26,
2643 +     0x1C8C,0x0563,0x12D2,0x0821,0x2160,0x115D,0x11EE,0x0232,0x192E,0x1BDF,
2644 +     0x05F3,0x0E57,0x11F3,0x044E,0x20B5,0x1BDE,0x0F25,0x0DBE,0x1361,0x1971,
2645 +     0x17E7,0x0C46,0x16FC,0x1B2E,0x18CB,0x23C4,0x1912,0x214C,0x0BA4,0x2392,
2646 +     0x1037,0x1666,0x0BBB,0x180B,0x041F,0x20FA,0x1577,0x18D7,0x0115,0x0904,
2647 +     0x136E,0x1867,0x0F53,0x0E2B,0x1A02,0x1FB2,0x1A9A,0x1D6C,0x0EBA,0x0BD5,
2648 +     0x09F8,0x083F,0x0227,0x0E89,0x1495,0x1033,0x0F07,0x0D4D,0x0B4D,0x0F6A,
2649 +     0x07FE,0x1AFB,0x05B0,0x1205,0x06CE,0x02D6,0x09DF,0x1A0C,0x0C3E,0x22C9,
2650 +     0x22E5,0x0FEB,0x0A0E,0x21E6,0x088A,0x1C64,0x10B8,0x0383,0x14F8,0x0ED4,
2651 +     0x05B4,0x2188,0x226B,0x025C,0x020D,0x0D0C,0x0449,0x0C81,0x0965,0x1135,
2652 +     0x0CC1,0x08FC,0x16E4,0x1ED1,0x1BBD,0x1BE3,0x06D9,0x00A2,0x04C3,0x0CBF,
2653 +     0x1324,0x2235,0x116A,0x0789,0x0198,0x05C3,0x1181,0x106C,0x1C8F,0x0984,
2654 +     0x1A71,0x05F9,0x1F61,0x1298,0x2310,0x0075,0x063B,0x0B71,0x10C8,0x1E6D,
2655 +     0x08A3,0x045C,0x1157,0x1DCE,0x0A05,0x1AAC,0x03F5,0x0DD1,0x2137,0x1200,
2656 +     0x0CC4,0x17DA,0x1DF7,0x06C5,0x1C07,0x1B59,0x1AD8,0x0C43,0x15A0,0x0EF0,
2657 +     0x0243,0x1BDA,0x1338,0x0C2F,0x132E,0x1D63,0x0969,0x23F3,0x077E,0x0991,
2658 +     0x1DBE,0x23C7,0x05A3,0x1253,0x1FB8,0x1BCE,0x053B,0x1B8F,0x00E3,0x20E2,
2659 +     0x1B61,0x22CE,0x04E8,0x17E1,0x06A3,0x04D1,0x02D3,0x23B1,0x031A,0x2045,
2660 +     0x1319,0x1E7F,0x20CA,0x21E9,0x0C50,0x1E8D,0x209B,0x2306,0x0A1D,0x044B,
2661 +     0x08A1,0x0437,0x102C,0x11F0,0x159B,0x0913,0x0A08,0x1E36,0x128F,0x06FA,
2662 +     0x0DF0,0x160B,0x1F2E,0x094C,0x0788,0x1309,0x1CD4,0x0599,0x179F,0x0F54,
2663 +     0x1362,0x1763,0x1B6C,0x0302,0x0921,0x231D,0x13F1,0x09C3,0x1348,0x12E1,
2664 +     0x00FA,0x1689,0x16BE,0x18AB,0x1604,0x19F1,0x21BA,0x0D6A,0x20FC,0x21D2,
2665 +     0x21ED,0x0663,0x0421,0x0D92,0x061A,0x165F,0x1D92,0x152E,0x070C,0x12A8,
2666 +     0x1C90,0x0951,0x0CE5,0x1D39,0x0B75,0x168B,0x0A61,0x23B4,0x1572,0x1E06,
2667 +     0x1AF9,0x0F5A,0x00CC,0x2139,0x0114,0x18FA,0x1654,0x18A9,0x0B13,0x0AF8,
2668 +     0x14E4,0x051C,0x098A,0x1C9C,0x0554,0x1BBE,0x0DE5,0x198E,0x1BBB,0x0BCD,
2669 +     0x0511,0x0E22,0x1D95,0x0C11,0x14E2,0x0108,0x1A56,0x0401,0x11B0,0x00C6,
2670 +     0x2165,0x0F64,0x17BF,0x0154,0x0B95,0x14A5,0x0CC8,0x1B8E,0x1D7A,0x024F,
2671 +     0x1762,0x1F71,0x1501,0x1844,0x15C2,0x010D,0x1092,0x0060,0x00AF,0x154D,
2672 +     0x0DA5,0x0DB8,0x196E,0x1EE5,0x035E,0x05D3,0x00FC,0x0BCB,0x0364,0x0CAB,
2673 +     0x16A3,0x23A7,0x014B,0x1536,0x0550,0x0407,0x127A,0x0A9E,0x1D64,0x0FD8,
2674 +     0x14D2,0x0701,0x17DC,0x0BC0,0x1BA7,0x2141,0x0CFF,0x1B31,0x0205,0x22A7,
2675 +     0x0C5E,0x1A09,0x11DE,0x13CE,0x08F3,0x208F,0x0015,0x2037,0x0AAF,0x057D,
2676 +     0x0087,0x0AFB,0x1A85,0x1A97,0x0FD7,0x12D9,0x1FED,0x1DE2,0x197F,0x22B1,
2677 +     0x205A,0x0544,0x0AD0,0x01DF,0x1E64,0x0AEB,0x12A6,0x0F30,0x07F1,0x1BF0,
2678 +     0x230A,0x0573,0x0F61,0x2386,0x1242,0x1C55,0x0DA4,0x0F43,0x22AE,0x0CC6,
2679 +     0x1BB5,0x0CDC,0x16A0,0x02FE,0x053F,0x008C,0x18E8,0x02CE,0x0C17,0x1B71,
2680 +     0x1494,0x15F0,0x0D5B,0x089C,0x0F21,0x0A87,0x10CB,0x1EEB,0x1A2D,0x1F38,
2681 +     0x0508,0x1C13,0x09D6,0x1B83,0x03C7,0x177B,0x0BA0,0x0760,0x00A7,0x07B8,
2682 +     0x0F3F,0x0070,0x163B,0x0718,0x1609,0x2313,0x1058,0x10A1,0x0DA2,0x1BD8,
2683 +     0x19D3,0x203D,0x09AA,0x0F0C,0x0A4D,0x22AD,0x0E9B,0x07A8,0x14F1,0x1056,
2684 +     0x1E74,0x0402,0x0D40,0x0D6C,0x021E,0x1756,0x0056,0x0EB1,0x0E1C,0x0206,
2685 +     0x0C94,0x2326,0x1F31,0x23CD,0x1BBF,0x0BB6,0x0607,0x0E0E,0x13B9,0x1724,
2686 +     0x03F1,0x1BCC,0x01F1,0x1624,0x129F,0x1A6D,0x22E0,0x1132,0x1AE5,0x1B69,
2687 +     0x00F1,0x225E,0x1E28,0x05EA,0x0F8E,0x024B,0x108F,0x0A3E,0x135D,0x0C73,
2688 +     0x18D3,0x1BDC,0x1E8B,0x0BAA,0x1D09,0x0305,0x22E2,0x1D7D,0x012B,0x2164,
2689 +     0x156F,0x0069,0x1333,0x206D,0x04F2,0x1982,0x141D,0x023D,0x0144,0x1EA0,
2690 +     0x2378,0x1486,0x0EC5,0x1677,0x0770,0x06B4,0x04F6,0x09BC,0x1704,0x1DEF,
2691 +     0x1FAF,0x22D5,0x1A34,0x21C0,0x099D,0x1BD7,0x1C47,0x1A4B,0x195E,0x0569,
2692 +     0x10E5,0x0BAE,0x01A4,0x220C,0x0BB9,0x1700};
2693
2694 + #define MX_MTBL               (sizeof(mekornd) / sizeof(unsigned short))
2695
2696 + typedef struct { int n; unsigned short int r; } MKT;
2697
2698 + static int comp_mt(const void *s, const void *d)
2699 + {
2700 +     MKT *mt1 = (MKT *)s;
2701 +     MKT *mt2 = (MKT *)d;
2702 +     return (int)(short)(mt1->r - mt2->r);
2703 + }
2704
2705 + MKT *calcMEKO(int n)
2706 + {
2707 +     int i;
2708 +     MKT *mt;
2709
2710 +     if(n <= 0 || n > MX_MTBL){
2711 +           ErrPopUp ("Error:  Over max array.", "\nOk");
2712 +           return(NULL);
2713 +     }
2714
2715 +     mt = malloc(sizeof(MKT) * n);
2716
2717 +     if(!mt) {
2718 +           ErrPopUp ("Error:  No memory.", "\nOk");
2719 +           return(NULL);
2720 +     }
2721
2722 +     for(i = 0; i < n; i++) {
2723 +         mt[i].r = mekornd[i];
2724 +         mt[i].n = i + 1;
2725 +     }
2726 +     qsort(mt, n, sizeof(MKT), comp_mt);
2727 +     return(mt);
2728 + }
This page took 0.529146 seconds and 3 git commands to generate.