Subversion Repositories Games.Prince of Persia

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
/*
2
 * Copyright (C) 2003 Maxim Stepin ( maxst@hiend3d.com )
3
 *
4
 * Copyright (C) 2010 Cameron Zemek ( grom@zeminvaders.net)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Lesser General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2.1 of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
 * Lesser General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Lesser General Public
17
 * License along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
 */
20
 
21
#include <stdint.h>
22
#include <stdlib.h>
23
 
24
// algorithms selection
25
#define WANT_HQ2X
26
#define WANT_HQ3X
27
#define WANT_HQ4X
28
 
29
 
30
#ifdef __GNUC__
31
#ifdef __MINGW32__
32
#define HQX_CALLCONV __stdcall
33
#else // !__MINGW32__
34
#define HQX_CALLCONV
35
#endif // __MINGW32__
36
#else // !__GNUC__
37
#define HQX_CALLCONV
38
#endif // __GNUC__
39
 
40
#ifdef _WIN32
41
#ifdef DLL_EXPORT
42
#define HQX_API __declspec(dllexport)
43
#else // !DLL_EXPORT
44
#define HQX_API __declspec(dllimport)
45
#endif // DLL_EXPORT
46
#else // !_WIN32
47
#define HQX_API
48
#endif // _WIN32
49
 
50
 
51
// these are the only prototypes you need
52
#ifdef WANT_HQ2X
53
HQX_API void HQX_CALLCONV hq2x_32 (uint32_t *src_pixels, uint32_t *dest_pixels, int src_width, int src_height);
54
#endif // WANT_HQ2X
55
#ifdef WANT_HQ3X
56
HQX_API void HQX_CALLCONV hq3x_32 (uint32_t *src_pixels, uint32_t *dest_pixels, int src_width, int src_height);
57
#endif // WANT_HQ3X
58
#ifdef WANT_HQ4X
59
HQX_API void HQX_CALLCONV hq4x_32 (uint32_t *src_pixels, uint32_t *dest_pixels, int src_width, int src_height);
60
#endif // WANT_HQ4X
61
HQX_API void HQX_CALLCONV hqx_32 (int level, uint32_t *src_pixels, uint32_t *dest_pixels, int src_width, int src_height);
62
 
63
 
64
#define MASK_2     0x0000FF00
65
#define MASK_13    0x00FF00FF
66
#define MASK_RGB   0x00FFFFFF
67
#define MASK_ALPHA 0xFF000000
68
 
69
#define Ymask 0x00FF0000
70
#define Umask 0x0000FF00
71
#define Vmask 0x000000FF
72
#define trY   0x00300000
73
#define trU   0x00000700
74
#define trV   0x00000006
75
 
76
// RGB to YUV lookup table
77
static uint32_t is_hqx_initialized = 0;
78
static uint32_t RGBtoYUV[16777216];
79
static HQX_API void HQX_CALLCONV hqxInit (void)
80
{
81
    /* Initalize RGB to YUV lookup table */
82
    uint32_t c, r, g, b, y, u, v;
83
    for (c = 0; c < 16777215; c++)
84
    {
85
        r = (c & 0xFF0000) >> 16;
86
        g = (c & 0x00FF00) >> 8;
87
        b = c & 0x0000FF;
88
        y = (uint32_t)(0.299*r + 0.587*g + 0.114*b);
89
        u = (uint32_t)(-0.169*r - 0.331*g + 0.5*b) + 128;
90
        v = (uint32_t)(0.5*r - 0.419*g - 0.081*b) + 128;
91
        RGBtoYUV[c] = (y << 16) + (u << 8) + v;
92
    }
93
    is_hqx_initialized = 1;
94
}
95
 
96
static inline uint32_t rgb_to_yuv(uint32_t c) { return RGBtoYUV[MASK_RGB & c]; } // Mask against MASK_RGB to discard the alpha channel
97
static inline int yuv_diff(uint32_t yuv1, uint32_t yuv2) { return (( (yuv1 & Ymask) - (yuv2 & Ymask) > trY ) || ( (yuv1 & Umask) - (yuv2 & Umask) > trU ) || ( (yuv1 & Vmask) - (yuv2 & Vmask) > trV ) ); } // test if there is difference in color
98
static inline int Diff(uint32_t c1, uint32_t c2) { return yuv_diff(rgb_to_yuv(c1), rgb_to_yuv(c2)); }
99
 
100
// interpolation functions
101
static inline uint32_t Interpolate_2(uint32_t c1, int w1, uint32_t c2, int w2, int s)
102
{
103
    if (c1 == c2) return c1;
104
    return
105
        (((((c1 & MASK_ALPHA) >> 24) * w1 + ((c2 & MASK_ALPHA) >> 24) * w2) << (24-s)) & MASK_ALPHA) +
106
        ((((c1 & MASK_2) * w1 + (c2 & MASK_2) * w2) >> s) & MASK_2)     +
107
        ((((c1 & MASK_13) * w1 + (c2 & MASK_13) * w2) >> s) & MASK_13);
108
}
109
 
110
static inline uint32_t Interpolate_3(uint32_t c1, int w1, uint32_t c2, int w2, uint32_t c3, int w3, int s)
111
{
112
    return
113
        (((((c1 & MASK_ALPHA) >> 24) * w1 + ((c2 & MASK_ALPHA) >> 24) * w2 + ((c3 & MASK_ALPHA) >> 24) * w3) << (24-s)) & MASK_ALPHA) +
114
        ((((c1 & MASK_2) * w1 + (c2 & MASK_2) * w2 + (c3 & MASK_2) * w3) >> s) & MASK_2) +
115
        ((((c1 & MASK_13) * w1 + (c2 & MASK_13) * w2 + (c3 & MASK_13) * w3) >> s) & MASK_13);
116
}
117
 
118
static inline void Interp1(uint32_t * pc, uint32_t c1, uint32_t c2) { *pc = Interpolate_2(c1, 3, c2, 1, 2); } //*pc = (c1*3+c2) >> 2;
119
static inline void Interp2(uint32_t * pc, uint32_t c1, uint32_t c2, uint32_t c3) { *pc = Interpolate_3(c1, 2, c2, 1, c3, 1, 2); } //*pc = (c1*2+c2+c3) >> 2;
120
static inline void Interp3(uint32_t * pc, uint32_t c1, uint32_t c2) { *pc = Interpolate_2(c1, 7, c2, 1, 3); } //*pc = (c1*7+c2)/8;
121
static inline void Interp4(uint32_t * pc, uint32_t c1, uint32_t c2, uint32_t c3) { *pc = Interpolate_3(c1, 2, c2, 7, c3, 7, 4); } //*pc = (c1*2+(c2+c3)*7)/16;
122
static inline void Interp5(uint32_t * pc, uint32_t c1, uint32_t c2) { *pc = Interpolate_2(c1, 1, c2, 1, 1); } //*pc = (c1+c2) >> 1;
123
static inline void Interp6(uint32_t * pc, uint32_t c1, uint32_t c2, uint32_t c3) { *pc = Interpolate_3(c1, 5, c2, 2, c3, 1, 3); } //*pc = (c1*5+c2*2+c3)/8;
124
static inline void Interp7(uint32_t * pc, uint32_t c1, uint32_t c2, uint32_t c3) { *pc = Interpolate_3(c1, 6, c2, 1, c3, 1, 3); } //*pc = (c1*6+c2+c3)/8;
125
static inline void Interp8(uint32_t * pc, uint32_t c1, uint32_t c2) { *pc = Interpolate_2(c1, 5, c2, 3, 3); } //*pc = (c1*5+c2*3)/8;
126
static inline void Interp9(uint32_t * pc, uint32_t c1, uint32_t c2, uint32_t c3) { *pc = Interpolate_3(c1, 2, c2, 3, c3, 3, 3); } //*pc = (c1*2+(c2+c3)*3)/8;
127
static inline void Interp10(uint32_t * pc, uint32_t c1, uint32_t c2, uint32_t c3) { *pc = Interpolate_3(c1, 14, c2, 1, c3, 1, 4); } //*pc = (c1*14+c2+c3)/16;
128
 
129
 
130
//////////
131
// HQ2X //
132
//////////
133
 
134
#ifdef WANT_HQ2X
135
#define PIXEL00_0     *dp = w[5];
136
#define PIXEL00_10    Interp1(dp, w[5], w[1]);
137
#define PIXEL00_11    Interp1(dp, w[5], w[4]);
138
#define PIXEL00_12    Interp1(dp, w[5], w[2]);
139
#define PIXEL00_20    Interp2(dp, w[5], w[4], w[2]);
140
#define PIXEL00_21    Interp2(dp, w[5], w[1], w[2]);
141
#define PIXEL00_22    Interp2(dp, w[5], w[1], w[4]);
142
#define PIXEL00_60    Interp6(dp, w[5], w[2], w[4]);
143
#define PIXEL00_61    Interp6(dp, w[5], w[4], w[2]);
144
#define PIXEL00_70    Interp7(dp, w[5], w[4], w[2]);
145
#define PIXEL00_90    Interp9(dp, w[5], w[4], w[2]);
146
#define PIXEL00_100   Interp10(dp, w[5], w[4], w[2]);
147
#define PIXEL01_0     *(dp+1) = w[5];
148
#define PIXEL01_10    Interp1(dp+1, w[5], w[3]);
149
#define PIXEL01_11    Interp1(dp+1, w[5], w[2]);
150
#define PIXEL01_12    Interp1(dp+1, w[5], w[6]);
151
#define PIXEL01_20    Interp2(dp+1, w[5], w[2], w[6]);
152
#define PIXEL01_21    Interp2(dp+1, w[5], w[3], w[6]);
153
#define PIXEL01_22    Interp2(dp+1, w[5], w[3], w[2]);
154
#define PIXEL01_60    Interp6(dp+1, w[5], w[6], w[2]);
155
#define PIXEL01_61    Interp6(dp+1, w[5], w[2], w[6]);
156
#define PIXEL01_70    Interp7(dp+1, w[5], w[2], w[6]);
157
#define PIXEL01_90    Interp9(dp+1, w[5], w[2], w[6]);
158
#define PIXEL01_100   Interp10(dp+1, w[5], w[2], w[6]);
159
#define PIXEL10_0     *(dp+dpL) = w[5];
160
#define PIXEL10_10    Interp1(dp+dpL, w[5], w[7]);
161
#define PIXEL10_11    Interp1(dp+dpL, w[5], w[8]);
162
#define PIXEL10_12    Interp1(dp+dpL, w[5], w[4]);
163
#define PIXEL10_20    Interp2(dp+dpL, w[5], w[8], w[4]);
164
#define PIXEL10_21    Interp2(dp+dpL, w[5], w[7], w[4]);
165
#define PIXEL10_22    Interp2(dp+dpL, w[5], w[7], w[8]);
166
#define PIXEL10_60    Interp6(dp+dpL, w[5], w[4], w[8]);
167
#define PIXEL10_61    Interp6(dp+dpL, w[5], w[8], w[4]);
168
#define PIXEL10_70    Interp7(dp+dpL, w[5], w[8], w[4]);
169
#define PIXEL10_90    Interp9(dp+dpL, w[5], w[8], w[4]);
170
#define PIXEL10_100   Interp10(dp+dpL, w[5], w[8], w[4]);
171
#define PIXEL11_0     *(dp+dpL+1) = w[5];
172
#define PIXEL11_10    Interp1(dp+dpL+1, w[5], w[9]);
173
#define PIXEL11_11    Interp1(dp+dpL+1, w[5], w[6]);
174
#define PIXEL11_12    Interp1(dp+dpL+1, w[5], w[8]);
175
#define PIXEL11_20    Interp2(dp+dpL+1, w[5], w[6], w[8]);
176
#define PIXEL11_21    Interp2(dp+dpL+1, w[5], w[9], w[8]);
177
#define PIXEL11_22    Interp2(dp+dpL+1, w[5], w[9], w[6]);
178
#define PIXEL11_60    Interp6(dp+dpL+1, w[5], w[8], w[6]);
179
#define PIXEL11_61    Interp6(dp+dpL+1, w[5], w[6], w[8]);
180
#define PIXEL11_70    Interp7(dp+dpL+1, w[5], w[6], w[8]);
181
#define PIXEL11_90    Interp9(dp+dpL+1, w[5], w[6], w[8]);
182
#define PIXEL11_100   Interp10(dp+dpL+1, w[5], w[6], w[8]);
183
 
184
static HQX_API void HQX_CALLCONV hq2x_32_rb( uint32_t * sp, uint32_t srb, uint32_t * dp, uint32_t drb, int Xres, int Yres )
185
{
186
    int  i, j, k;
187
    int  prevline, nextline;
188
    uint32_t  w[10];
189
    int dpL = (drb >> 2);
190
    int spL = (srb >> 2);
191
    uint8_t *sRowP = (uint8_t *) sp;
192
    uint8_t *dRowP = (uint8_t *) dp;
193
    uint32_t yuv1, yuv2;
194
 
195
    //   +----+----+----+
196
    //   |    |    |    |
197
    //   | w1 | w2 | w3 |
198
    //   +----+----+----+
199
    //   |    |    |    |
200
    //   | w4 | w5 | w6 |
201
    //   +----+----+----+
202
    //   |    |    |    |
203
    //   | w7 | w8 | w9 |
204
    //   +----+----+----+
205
 
206
    for (j=0; j<Yres; j++)
207
    {
208
        if (j>0)      prevline = -spL; else prevline = 0;
209
        if (j<Yres-1) nextline =  spL; else nextline = 0;
210
 
211
        for (i=0; i<Xres; i++)
212
        {
213
            w[2] = *(sp + prevline);
214
            w[5] = *sp;
215
            w[8] = *(sp + nextline);
216
 
217
            if (i>0)
218
            {
219
                w[1] = *(sp + prevline - 1);
220
                w[4] = *(sp - 1);
221
                w[7] = *(sp + nextline - 1);
222
            }
223
            else
224
            {
225
                w[1] = w[2];
226
                w[4] = w[5];
227
                w[7] = w[8];
228
            }
229
 
230
            if (i<Xres-1)
231
            {
232
                w[3] = *(sp + prevline + 1);
233
                w[6] = *(sp + 1);
234
                w[9] = *(sp + nextline + 1);
235
            }
236
            else
237
            {
238
                w[3] = w[2];
239
                w[6] = w[5];
240
                w[9] = w[8];
241
            }
242
 
243
            int pattern = 0;
244
            int flag = 1;
245
 
246
            yuv1 = rgb_to_yuv(w[5]);
247
 
248
            for (k=1; k<=9; k++)
249
            {
250
                if (k==5) continue;
251
 
252
                if ( w[k] != w[5] )
253
                {
254
                    yuv2 = rgb_to_yuv(w[k]);
255
                    if (yuv_diff(yuv1, yuv2))
256
                        pattern |= flag;
257
                }
258
                flag <<= 1;
259
            }
260
 
261
            switch (pattern)
262
            {
263
                case 0:
264
                case 1:
265
                case 4:
266
                case 32:
267
                case 128:
268
                case 5:
269
                case 132:
270
                case 160:
271
                case 33:
272
                case 129:
273
                case 36:
274
                case 133:
275
                case 164:
276
                case 161:
277
                case 37:
278
                case 165:
279
                    {
280
                        PIXEL00_20
281
                        PIXEL01_20
282
                        PIXEL10_20
283
                        PIXEL11_20
284
                        break;
285
                    }
286
                case 2:
287
                case 34:
288
                case 130:
289
                case 162:
290
                    {
291
                        PIXEL00_22
292
                        PIXEL01_21
293
                        PIXEL10_20
294
                        PIXEL11_20
295
                        break;
296
                    }
297
                case 16:
298
                case 17:
299
                case 48:
300
                case 49:
301
                    {
302
                        PIXEL00_20
303
                        PIXEL01_22
304
                        PIXEL10_20
305
                        PIXEL11_21
306
                        break;
307
                    }
308
                case 64:
309
                case 65:
310
                case 68:
311
                case 69:
312
                    {
313
                        PIXEL00_20
314
                        PIXEL01_20
315
                        PIXEL10_21
316
                        PIXEL11_22
317
                        break;
318
                    }
319
                case 8:
320
                case 12:
321
                case 136:
322
                case 140:
323
                    {
324
                        PIXEL00_21
325
                        PIXEL01_20
326
                        PIXEL10_22
327
                        PIXEL11_20
328
                        break;
329
                    }
330
                case 3:
331
                case 35:
332
                case 131:
333
                case 163:
334
                    {
335
                        PIXEL00_11
336
                        PIXEL01_21
337
                        PIXEL10_20
338
                        PIXEL11_20
339
                        break;
340
                    }
341
                case 6:
342
                case 38:
343
                case 134:
344
                case 166:
345
                    {
346
                        PIXEL00_22
347
                        PIXEL01_12
348
                        PIXEL10_20
349
                        PIXEL11_20
350
                        break;
351
                    }
352
                case 20:
353
                case 21:
354
                case 52:
355
                case 53:
356
                    {
357
                        PIXEL00_20
358
                        PIXEL01_11
359
                        PIXEL10_20
360
                        PIXEL11_21
361
                        break;
362
                    }
363
                case 144:
364
                case 145:
365
                case 176:
366
                case 177:
367
                    {
368
                        PIXEL00_20
369
                        PIXEL01_22
370
                        PIXEL10_20
371
                        PIXEL11_12
372
                        break;
373
                    }
374
                case 192:
375
                case 193:
376
                case 196:
377
                case 197:
378
                    {
379
                        PIXEL00_20
380
                        PIXEL01_20
381
                        PIXEL10_21
382
                        PIXEL11_11
383
                        break;
384
                    }
385
                case 96:
386
                case 97:
387
                case 100:
388
                case 101:
389
                    {
390
                        PIXEL00_20
391
                        PIXEL01_20
392
                        PIXEL10_12
393
                        PIXEL11_22
394
                        break;
395
                    }
396
                case 40:
397
                case 44:
398
                case 168:
399
                case 172:
400
                    {
401
                        PIXEL00_21
402
                        PIXEL01_20
403
                        PIXEL10_11
404
                        PIXEL11_20
405
                        break;
406
                    }
407
                case 9:
408
                case 13:
409
                case 137:
410
                case 141:
411
                    {
412
                        PIXEL00_12
413
                        PIXEL01_20
414
                        PIXEL10_22
415
                        PIXEL11_20
416
                        break;
417
                    }
418
                case 18:
419
                case 50:
420
                    {
421
                        PIXEL00_22
422
                        if (Diff(w[2], w[6]))
423
                        {
424
                            PIXEL01_10
425
                        }
426
                        else
427
                        {
428
                            PIXEL01_20
429
                        }
430
                        PIXEL10_20
431
                        PIXEL11_21
432
                        break;
433
                    }
434
                case 80:
435
                case 81:
436
                    {
437
                        PIXEL00_20
438
                        PIXEL01_22
439
                        PIXEL10_21
440
                        if (Diff(w[6], w[8]))
441
                        {
442
                            PIXEL11_10
443
                        }
444
                        else
445
                        {
446
                            PIXEL11_20
447
                        }
448
                        break;
449
                    }
450
                case 72:
451
                case 76:
452
                    {
453
                        PIXEL00_21
454
                        PIXEL01_20
455
                        if (Diff(w[8], w[4]))
456
                        {
457
                            PIXEL10_10
458
                        }
459
                        else
460
                        {
461
                            PIXEL10_20
462
                        }
463
                        PIXEL11_22
464
                        break;
465
                    }
466
                case 10:
467
                case 138:
468
                    {
469
                        if (Diff(w[4], w[2]))
470
                        {
471
                            PIXEL00_10
472
                        }
473
                        else
474
                        {
475
                            PIXEL00_20
476
                        }
477
                        PIXEL01_21
478
                        PIXEL10_22
479
                        PIXEL11_20
480
                        break;
481
                    }
482
                case 66:
483
                    {
484
                        PIXEL00_22
485
                        PIXEL01_21
486
                        PIXEL10_21
487
                        PIXEL11_22
488
                        break;
489
                    }
490
                case 24:
491
                    {
492
                        PIXEL00_21
493
                        PIXEL01_22
494
                        PIXEL10_22
495
                        PIXEL11_21
496
                        break;
497
                    }
498
                case 7:
499
                case 39:
500
                case 135:
501
                    {
502
                        PIXEL00_11
503
                        PIXEL01_12
504
                        PIXEL10_20
505
                        PIXEL11_20
506
                        break;
507
                    }
508
                case 148:
509
                case 149:
510
                case 180:
511
                    {
512
                        PIXEL00_20
513
                        PIXEL01_11
514
                        PIXEL10_20
515
                        PIXEL11_12
516
                        break;
517
                    }
518
                case 224:
519
                case 228:
520
                case 225:
521
                    {
522
                        PIXEL00_20
523
                        PIXEL01_20
524
                        PIXEL10_12
525
                        PIXEL11_11
526
                        break;
527
                    }
528
                case 41:
529
                case 169:
530
                case 45:
531
                    {
532
                        PIXEL00_12
533
                        PIXEL01_20
534
                        PIXEL10_11
535
                        PIXEL11_20
536
                        break;
537
                    }
538
                case 22:
539
                case 54:
540
                    {
541
                        PIXEL00_22
542
                        if (Diff(w[2], w[6]))
543
                        {
544
                            PIXEL01_0
545
                        }
546
                        else
547
                        {
548
                            PIXEL01_20
549
                        }
550
                        PIXEL10_20
551
                        PIXEL11_21
552
                        break;
553
                    }
554
                case 208:
555
                case 209:
556
                    {
557
                        PIXEL00_20
558
                        PIXEL01_22
559
                        PIXEL10_21
560
                        if (Diff(w[6], w[8]))
561
                        {
562
                            PIXEL11_0
563
                        }
564
                        else
565
                        {
566
                            PIXEL11_20
567
                        }
568
                        break;
569
                    }
570
                case 104:
571
                case 108:
572
                    {
573
                        PIXEL00_21
574
                        PIXEL01_20
575
                        if (Diff(w[8], w[4]))
576
                        {
577
                            PIXEL10_0
578
                        }
579
                        else
580
                        {
581
                            PIXEL10_20
582
                        }
583
                        PIXEL11_22
584
                        break;
585
                    }
586
                case 11:
587
                case 139:
588
                    {
589
                        if (Diff(w[4], w[2]))
590
                        {
591
                            PIXEL00_0
592
                        }
593
                        else
594
                        {
595
                            PIXEL00_20
596
                        }
597
                        PIXEL01_21
598
                        PIXEL10_22
599
                        PIXEL11_20
600
                        break;
601
                    }
602
                case 19:
603
                case 51:
604
                    {
605
                        if (Diff(w[2], w[6]))
606
                        {
607
                            PIXEL00_11
608
                            PIXEL01_10
609
                        }
610
                        else
611
                        {
612
                            PIXEL00_60
613
                            PIXEL01_90
614
                        }
615
                        PIXEL10_20
616
                        PIXEL11_21
617
                        break;
618
                    }
619
                case 146:
620
                case 178:
621
                    {
622
                        PIXEL00_22
623
                        if (Diff(w[2], w[6]))
624
                        {
625
                            PIXEL01_10
626
                            PIXEL11_12
627
                        }
628
                        else
629
                        {
630
                            PIXEL01_90
631
                            PIXEL11_61
632
                        }
633
                        PIXEL10_20
634
                        break;
635
                    }
636
                case 84:
637
                case 85:
638
                    {
639
                        PIXEL00_20
640
                        if (Diff(w[6], w[8]))
641
                        {
642
                            PIXEL01_11
643
                            PIXEL11_10
644
                        }
645
                        else
646
                        {
647
                            PIXEL01_60
648
                            PIXEL11_90
649
                        }
650
                        PIXEL10_21
651
                        break;
652
                    }
653
                case 112:
654
                case 113:
655
                    {
656
                        PIXEL00_20
657
                        PIXEL01_22
658
                        if (Diff(w[6], w[8]))
659
                        {
660
                            PIXEL10_12
661
                            PIXEL11_10
662
                        }
663
                        else
664
                        {
665
                            PIXEL10_61
666
                            PIXEL11_90
667
                        }
668
                        break;
669
                    }
670
                case 200:
671
                case 204:
672
                    {
673
                        PIXEL00_21
674
                        PIXEL01_20
675
                        if (Diff(w[8], w[4]))
676
                        {
677
                            PIXEL10_10
678
                            PIXEL11_11
679
                        }
680
                        else
681
                        {
682
                            PIXEL10_90
683
                            PIXEL11_60
684
                        }
685
                        break;
686
                    }
687
                case 73:
688
                case 77:
689
                    {
690
                        if (Diff(w[8], w[4]))
691
                        {
692
                            PIXEL00_12
693
                            PIXEL10_10
694
                        }
695
                        else
696
                        {
697
                            PIXEL00_61
698
                            PIXEL10_90
699
                        }
700
                        PIXEL01_20
701
                        PIXEL11_22
702
                        break;
703
                    }
704
                case 42:
705
                case 170:
706
                    {
707
                        if (Diff(w[4], w[2]))
708
                        {
709
                            PIXEL00_10
710
                            PIXEL10_11
711
                        }
712
                        else
713
                        {
714
                            PIXEL00_90
715
                            PIXEL10_60
716
                        }
717
                        PIXEL01_21
718
                        PIXEL11_20
719
                        break;
720
                    }
721
                case 14:
722
                case 142:
723
                    {
724
                        if (Diff(w[4], w[2]))
725
                        {
726
                            PIXEL00_10
727
                            PIXEL01_12
728
                        }
729
                        else
730
                        {
731
                            PIXEL00_90
732
                            PIXEL01_61
733
                        }
734
                        PIXEL10_22
735
                        PIXEL11_20
736
                        break;
737
                    }
738
                case 67:
739
                    {
740
                        PIXEL00_11
741
                        PIXEL01_21
742
                        PIXEL10_21
743
                        PIXEL11_22
744
                        break;
745
                    }
746
                case 70:
747
                    {
748
                        PIXEL00_22
749
                        PIXEL01_12
750
                        PIXEL10_21
751
                        PIXEL11_22
752
                        break;
753
                    }
754
                case 28:
755
                    {
756
                        PIXEL00_21
757
                        PIXEL01_11
758
                        PIXEL10_22
759
                        PIXEL11_21
760
                        break;
761
                    }
762
                case 152:
763
                    {
764
                        PIXEL00_21
765
                        PIXEL01_22
766
                        PIXEL10_22
767
                        PIXEL11_12
768
                        break;
769
                    }
770
                case 194:
771
                    {
772
                        PIXEL00_22
773
                        PIXEL01_21
774
                        PIXEL10_21
775
                        PIXEL11_11
776
                        break;
777
                    }
778
                case 98:
779
                    {
780
                        PIXEL00_22
781
                        PIXEL01_21
782
                        PIXEL10_12
783
                        PIXEL11_22
784
                        break;
785
                    }
786
                case 56:
787
                    {
788
                        PIXEL00_21
789
                        PIXEL01_22
790
                        PIXEL10_11
791
                        PIXEL11_21
792
                        break;
793
                    }
794
                case 25:
795
                    {
796
                        PIXEL00_12
797
                        PIXEL01_22
798
                        PIXEL10_22
799
                        PIXEL11_21
800
                        break;
801
                    }
802
                case 26:
803
                case 31:
804
                    {
805
                        if (Diff(w[4], w[2]))
806
                        {
807
                            PIXEL00_0
808
                        }
809
                        else
810
                        {
811
                            PIXEL00_20
812
                        }
813
                        if (Diff(w[2], w[6]))
814
                        {
815
                            PIXEL01_0
816
                        }
817
                        else
818
                        {
819
                            PIXEL01_20
820
                        }
821
                        PIXEL10_22
822
                        PIXEL11_21
823
                        break;
824
                    }
825
                case 82:
826
                case 214:
827
                    {
828
                        PIXEL00_22
829
                        if (Diff(w[2], w[6]))
830
                        {
831
                            PIXEL01_0
832
                        }
833
                        else
834
                        {
835
                            PIXEL01_20
836
                        }
837
                        PIXEL10_21
838
                        if (Diff(w[6], w[8]))
839
                        {
840
                            PIXEL11_0
841
                        }
842
                        else
843
                        {
844
                            PIXEL11_20
845
                        }
846
                        break;
847
                    }
848
                case 88:
849
                case 248:
850
                    {
851
                        PIXEL00_21
852
                        PIXEL01_22
853
                        if (Diff(w[8], w[4]))
854
                        {
855
                            PIXEL10_0
856
                        }
857
                        else
858
                        {
859
                            PIXEL10_20
860
                        }
861
                        if (Diff(w[6], w[8]))
862
                        {
863
                            PIXEL11_0
864
                        }
865
                        else
866
                        {
867
                            PIXEL11_20
868
                        }
869
                        break;
870
                    }
871
                case 74:
872
                case 107:
873
                    {
874
                        if (Diff(w[4], w[2]))
875
                        {
876
                            PIXEL00_0
877
                        }
878
                        else
879
                        {
880
                            PIXEL00_20
881
                        }
882
                        PIXEL01_21
883
                        if (Diff(w[8], w[4]))
884
                        {
885
                            PIXEL10_0
886
                        }
887
                        else
888
                        {
889
                            PIXEL10_20
890
                        }
891
                        PIXEL11_22
892
                        break;
893
                    }
894
                case 27:
895
                    {
896
                        if (Diff(w[4], w[2]))
897
                        {
898
                            PIXEL00_0
899
                        }
900
                        else
901
                        {
902
                            PIXEL00_20
903
                        }
904
                        PIXEL01_10
905
                        PIXEL10_22
906
                        PIXEL11_21
907
                        break;
908
                    }
909
                case 86:
910
                    {
911
                        PIXEL00_22
912
                        if (Diff(w[2], w[6]))
913
                        {
914
                            PIXEL01_0
915
                        }
916
                        else
917
                        {
918
                            PIXEL01_20
919
                        }
920
                        PIXEL10_21
921
                        PIXEL11_10
922
                        break;
923
                    }
924
                case 216:
925
                    {
926
                        PIXEL00_21
927
                        PIXEL01_22
928
                        PIXEL10_10
929
                        if (Diff(w[6], w[8]))
930
                        {
931
                            PIXEL11_0
932
                        }
933
                        else
934
                        {
935
                            PIXEL11_20
936
                        }
937
                        break;
938
                    }
939
                case 106:
940
                    {
941
                        PIXEL00_10
942
                        PIXEL01_21
943
                        if (Diff(w[8], w[4]))
944
                        {
945
                            PIXEL10_0
946
                        }
947
                        else
948
                        {
949
                            PIXEL10_20
950
                        }
951
                        PIXEL11_22
952
                        break;
953
                    }
954
                case 30:
955
                    {
956
                        PIXEL00_10
957
                        if (Diff(w[2], w[6]))
958
                        {
959
                            PIXEL01_0
960
                        }
961
                        else
962
                        {
963
                            PIXEL01_20
964
                        }
965
                        PIXEL10_22
966
                        PIXEL11_21
967
                        break;
968
                    }
969
                case 210:
970
                    {
971
                        PIXEL00_22
972
                        PIXEL01_10
973
                        PIXEL10_21
974
                        if (Diff(w[6], w[8]))
975
                        {
976
                            PIXEL11_0
977
                        }
978
                        else
979
                        {
980
                            PIXEL11_20
981
                        }
982
                        break;
983
                    }
984
                case 120:
985
                    {
986
                        PIXEL00_21
987
                        PIXEL01_22
988
                        if (Diff(w[8], w[4]))
989
                        {
990
                            PIXEL10_0
991
                        }
992
                        else
993
                        {
994
                            PIXEL10_20
995
                        }
996
                        PIXEL11_10
997
                        break;
998
                    }
999
                case 75:
1000
                    {
1001
                        if (Diff(w[4], w[2]))
1002
                        {
1003
                            PIXEL00_0
1004
                        }
1005
                        else
1006
                        {
1007
                            PIXEL00_20
1008
                        }
1009
                        PIXEL01_21
1010
                        PIXEL10_10
1011
                        PIXEL11_22
1012
                        break;
1013
                    }
1014
                case 29:
1015
                    {
1016
                        PIXEL00_12
1017
                        PIXEL01_11
1018
                        PIXEL10_22
1019
                        PIXEL11_21
1020
                        break;
1021
                    }
1022
                case 198:
1023
                    {
1024
                        PIXEL00_22
1025
                        PIXEL01_12
1026
                        PIXEL10_21
1027
                        PIXEL11_11
1028
                        break;
1029
                    }
1030
                case 184:
1031
                    {
1032
                        PIXEL00_21
1033
                        PIXEL01_22
1034
                        PIXEL10_11
1035
                        PIXEL11_12
1036
                        break;
1037
                    }
1038
                case 99:
1039
                    {
1040
                        PIXEL00_11
1041
                        PIXEL01_21
1042
                        PIXEL10_12
1043
                        PIXEL11_22
1044
                        break;
1045
                    }
1046
                case 57:
1047
                    {
1048
                        PIXEL00_12
1049
                        PIXEL01_22
1050
                        PIXEL10_11
1051
                        PIXEL11_21
1052
                        break;
1053
                    }
1054
                case 71:
1055
                    {
1056
                        PIXEL00_11
1057
                        PIXEL01_12
1058
                        PIXEL10_21
1059
                        PIXEL11_22
1060
                        break;
1061
                    }
1062
                case 156:
1063
                    {
1064
                        PIXEL00_21
1065
                        PIXEL01_11
1066
                        PIXEL10_22
1067
                        PIXEL11_12
1068
                        break;
1069
                    }
1070
                case 226:
1071
                    {
1072
                        PIXEL00_22
1073
                        PIXEL01_21
1074
                        PIXEL10_12
1075
                        PIXEL11_11
1076
                        break;
1077
                    }
1078
                case 60:
1079
                    {
1080
                        PIXEL00_21
1081
                        PIXEL01_11
1082
                        PIXEL10_11
1083
                        PIXEL11_21
1084
                        break;
1085
                    }
1086
                case 195:
1087
                    {
1088
                        PIXEL00_11
1089
                        PIXEL01_21
1090
                        PIXEL10_21
1091
                        PIXEL11_11
1092
                        break;
1093
                    }
1094
                case 102:
1095
                    {
1096
                        PIXEL00_22
1097
                        PIXEL01_12
1098
                        PIXEL10_12
1099
                        PIXEL11_22
1100
                        break;
1101
                    }
1102
                case 153:
1103
                    {
1104
                        PIXEL00_12
1105
                        PIXEL01_22
1106
                        PIXEL10_22
1107
                        PIXEL11_12
1108
                        break;
1109
                    }
1110
                case 58:
1111
                    {
1112
                        if (Diff(w[4], w[2]))
1113
                        {
1114
                            PIXEL00_10
1115
                        }
1116
                        else
1117
                        {
1118
                            PIXEL00_70
1119
                        }
1120
                        if (Diff(w[2], w[6]))
1121
                        {
1122
                            PIXEL01_10
1123
                        }
1124
                        else
1125
                        {
1126
                            PIXEL01_70
1127
                        }
1128
                        PIXEL10_11
1129
                        PIXEL11_21
1130
                        break;
1131
                    }
1132
                case 83:
1133
                    {
1134
                        PIXEL00_11
1135
                        if (Diff(w[2], w[6]))
1136
                        {
1137
                            PIXEL01_10
1138
                        }
1139
                        else
1140
                        {
1141
                            PIXEL01_70
1142
                        }
1143
                        PIXEL10_21
1144
                        if (Diff(w[6], w[8]))
1145
                        {
1146
                            PIXEL11_10
1147
                        }
1148
                        else
1149
                        {
1150
                            PIXEL11_70
1151
                        }
1152
                        break;
1153
                    }
1154
                case 92:
1155
                    {
1156
                        PIXEL00_21
1157
                        PIXEL01_11
1158
                        if (Diff(w[8], w[4]))
1159
                        {
1160
                            PIXEL10_10
1161
                        }
1162
                        else
1163
                        {
1164
                            PIXEL10_70
1165
                        }
1166
                        if (Diff(w[6], w[8]))
1167
                        {
1168
                            PIXEL11_10
1169
                        }
1170
                        else
1171
                        {
1172
                            PIXEL11_70
1173
                        }
1174
                        break;
1175
                    }
1176
                case 202:
1177
                    {
1178
                        if (Diff(w[4], w[2]))
1179
                        {
1180
                            PIXEL00_10
1181
                        }
1182
                        else
1183
                        {
1184
                            PIXEL00_70
1185
                        }
1186
                        PIXEL01_21
1187
                        if (Diff(w[8], w[4]))
1188
                        {
1189
                            PIXEL10_10
1190
                        }
1191
                        else
1192
                        {
1193
                            PIXEL10_70
1194
                        }
1195
                        PIXEL11_11
1196
                        break;
1197
                    }
1198
                case 78:
1199
                    {
1200
                        if (Diff(w[4], w[2]))
1201
                        {
1202
                            PIXEL00_10
1203
                        }
1204
                        else
1205
                        {
1206
                            PIXEL00_70
1207
                        }
1208
                        PIXEL01_12
1209
                        if (Diff(w[8], w[4]))
1210
                        {
1211
                            PIXEL10_10
1212
                        }
1213
                        else
1214
                        {
1215
                            PIXEL10_70
1216
                        }
1217
                        PIXEL11_22
1218
                        break;
1219
                    }
1220
                case 154:
1221
                    {
1222
                        if (Diff(w[4], w[2]))
1223
                        {
1224
                            PIXEL00_10
1225
                        }
1226
                        else
1227
                        {
1228
                            PIXEL00_70
1229
                        }
1230
                        if (Diff(w[2], w[6]))
1231
                        {
1232
                            PIXEL01_10
1233
                        }
1234
                        else
1235
                        {
1236
                            PIXEL01_70
1237
                        }
1238
                        PIXEL10_22
1239
                        PIXEL11_12
1240
                        break;
1241
                    }
1242
                case 114:
1243
                    {
1244
                        PIXEL00_22
1245
                        if (Diff(w[2], w[6]))
1246
                        {
1247
                            PIXEL01_10
1248
                        }
1249
                        else
1250
                        {
1251
                            PIXEL01_70
1252
                        }
1253
                        PIXEL10_12
1254
                        if (Diff(w[6], w[8]))
1255
                        {
1256
                            PIXEL11_10
1257
                        }
1258
                        else
1259
                        {
1260
                            PIXEL11_70
1261
                        }
1262
                        break;
1263
                    }
1264
                case 89:
1265
                    {
1266
                        PIXEL00_12
1267
                        PIXEL01_22
1268
                        if (Diff(w[8], w[4]))
1269
                        {
1270
                            PIXEL10_10
1271
                        }
1272
                        else
1273
                        {
1274
                            PIXEL10_70
1275
                        }
1276
                        if (Diff(w[6], w[8]))
1277
                        {
1278
                            PIXEL11_10
1279
                        }
1280
                        else
1281
                        {
1282
                            PIXEL11_70
1283
                        }
1284
                        break;
1285
                    }
1286
                case 90:
1287
                    {
1288
                        if (Diff(w[4], w[2]))
1289
                        {
1290
                            PIXEL00_10
1291
                        }
1292
                        else
1293
                        {
1294
                            PIXEL00_70
1295
                        }
1296
                        if (Diff(w[2], w[6]))
1297
                        {
1298
                            PIXEL01_10
1299
                        }
1300
                        else
1301
                        {
1302
                            PIXEL01_70
1303
                        }
1304
                        if (Diff(w[8], w[4]))
1305
                        {
1306
                            PIXEL10_10
1307
                        }
1308
                        else
1309
                        {
1310
                            PIXEL10_70
1311
                        }
1312
                        if (Diff(w[6], w[8]))
1313
                        {
1314
                            PIXEL11_10
1315
                        }
1316
                        else
1317
                        {
1318
                            PIXEL11_70
1319
                        }
1320
                        break;
1321
                    }
1322
                case 55:
1323
                case 23:
1324
                    {
1325
                        if (Diff(w[2], w[6]))
1326
                        {
1327
                            PIXEL00_11
1328
                            PIXEL01_0
1329
                        }
1330
                        else
1331
                        {
1332
                            PIXEL00_60
1333
                            PIXEL01_90
1334
                        }
1335
                        PIXEL10_20
1336
                        PIXEL11_21
1337
                        break;
1338
                    }
1339
                case 182:
1340
                case 150:
1341
                    {
1342
                        PIXEL00_22
1343
                        if (Diff(w[2], w[6]))
1344
                        {
1345
                            PIXEL01_0
1346
                            PIXEL11_12
1347
                        }
1348
                        else
1349
                        {
1350
                            PIXEL01_90
1351
                            PIXEL11_61
1352
                        }
1353
                        PIXEL10_20
1354
                        break;
1355
                    }
1356
                case 213:
1357
                case 212:
1358
                    {
1359
                        PIXEL00_20
1360
                        if (Diff(w[6], w[8]))
1361
                        {
1362
                            PIXEL01_11
1363
                            PIXEL11_0
1364
                        }
1365
                        else
1366
                        {
1367
                            PIXEL01_60
1368
                            PIXEL11_90
1369
                        }
1370
                        PIXEL10_21
1371
                        break;
1372
                    }
1373
                case 241:
1374
                case 240:
1375
                    {
1376
                        PIXEL00_20
1377
                        PIXEL01_22
1378
                        if (Diff(w[6], w[8]))
1379
                        {
1380
                            PIXEL10_12
1381
                            PIXEL11_0
1382
                        }
1383
                        else
1384
                        {
1385
                            PIXEL10_61
1386
                            PIXEL11_90
1387
                        }
1388
                        break;
1389
                    }
1390
                case 236:
1391
                case 232:
1392
                    {
1393
                        PIXEL00_21
1394
                        PIXEL01_20
1395
                        if (Diff(w[8], w[4]))
1396
                        {
1397
                            PIXEL10_0
1398
                            PIXEL11_11
1399
                        }
1400
                        else
1401
                        {
1402
                            PIXEL10_90
1403
                            PIXEL11_60
1404
                        }
1405
                        break;
1406
                    }
1407
                case 109:
1408
                case 105:
1409
                    {
1410
                        if (Diff(w[8], w[4]))
1411
                        {
1412
                            PIXEL00_12
1413
                            PIXEL10_0
1414
                        }
1415
                        else
1416
                        {
1417
                            PIXEL00_61
1418
                            PIXEL10_90
1419
                        }
1420
                        PIXEL01_20
1421
                        PIXEL11_22
1422
                        break;
1423
                    }
1424
                case 171:
1425
                case 43:
1426
                    {
1427
                        if (Diff(w[4], w[2]))
1428
                        {
1429
                            PIXEL00_0
1430
                            PIXEL10_11
1431
                        }
1432
                        else
1433
                        {
1434
                            PIXEL00_90
1435
                            PIXEL10_60
1436
                        }
1437
                        PIXEL01_21
1438
                        PIXEL11_20
1439
                        break;
1440
                    }
1441
                case 143:
1442
                case 15:
1443
                    {
1444
                        if (Diff(w[4], w[2]))
1445
                        {
1446
                            PIXEL00_0
1447
                            PIXEL01_12
1448
                        }
1449
                        else
1450
                        {
1451
                            PIXEL00_90
1452
                            PIXEL01_61
1453
                        }
1454
                        PIXEL10_22
1455
                        PIXEL11_20
1456
                        break;
1457
                    }
1458
                case 124:
1459
                    {
1460
                        PIXEL00_21
1461
                        PIXEL01_11
1462
                        if (Diff(w[8], w[4]))
1463
                        {
1464
                            PIXEL10_0
1465
                        }
1466
                        else
1467
                        {
1468
                            PIXEL10_20
1469
                        }
1470
                        PIXEL11_10
1471
                        break;
1472
                    }
1473
                case 203:
1474
                    {
1475
                        if (Diff(w[4], w[2]))
1476
                        {
1477
                            PIXEL00_0
1478
                        }
1479
                        else
1480
                        {
1481
                            PIXEL00_20
1482
                        }
1483
                        PIXEL01_21
1484
                        PIXEL10_10
1485
                        PIXEL11_11
1486
                        break;
1487
                    }
1488
                case 62:
1489
                    {
1490
                        PIXEL00_10
1491
                        if (Diff(w[2], w[6]))
1492
                        {
1493
                            PIXEL01_0
1494
                        }
1495
                        else
1496
                        {
1497
                            PIXEL01_20
1498
                        }
1499
                        PIXEL10_11
1500
                        PIXEL11_21
1501
                        break;
1502
                    }
1503
                case 211:
1504
                    {
1505
                        PIXEL00_11
1506
                        PIXEL01_10
1507
                        PIXEL10_21
1508
                        if (Diff(w[6], w[8]))
1509
                        {
1510
                            PIXEL11_0
1511
                        }
1512
                        else
1513
                        {
1514
                            PIXEL11_20
1515
                        }
1516
                        break;
1517
                    }
1518
                case 118:
1519
                    {
1520
                        PIXEL00_22
1521
                        if (Diff(w[2], w[6]))
1522
                        {
1523
                            PIXEL01_0
1524
                        }
1525
                        else
1526
                        {
1527
                            PIXEL01_20
1528
                        }
1529
                        PIXEL10_12
1530
                        PIXEL11_10
1531
                        break;
1532
                    }
1533
                case 217:
1534
                    {
1535
                        PIXEL00_12
1536
                        PIXEL01_22
1537
                        PIXEL10_10
1538
                        if (Diff(w[6], w[8]))
1539
                        {
1540
                            PIXEL11_0
1541
                        }
1542
                        else
1543
                        {
1544
                            PIXEL11_20
1545
                        }
1546
                        break;
1547
                    }
1548
                case 110:
1549
                    {
1550
                        PIXEL00_10
1551
                        PIXEL01_12
1552
                        if (Diff(w[8], w[4]))
1553
                        {
1554
                            PIXEL10_0
1555
                        }
1556
                        else
1557
                        {
1558
                            PIXEL10_20
1559
                        }
1560
                        PIXEL11_22
1561
                        break;
1562
                    }
1563
                case 155:
1564
                    {
1565
                        if (Diff(w[4], w[2]))
1566
                        {
1567
                            PIXEL00_0
1568
                        }
1569
                        else
1570
                        {
1571
                            PIXEL00_20
1572
                        }
1573
                        PIXEL01_10
1574
                        PIXEL10_22
1575
                        PIXEL11_12
1576
                        break;
1577
                    }
1578
                case 188:
1579
                    {
1580
                        PIXEL00_21
1581
                        PIXEL01_11
1582
                        PIXEL10_11
1583
                        PIXEL11_12
1584
                        break;
1585
                    }
1586
                case 185:
1587
                    {
1588
                        PIXEL00_12
1589
                        PIXEL01_22
1590
                        PIXEL10_11
1591
                        PIXEL11_12
1592
                        break;
1593
                    }
1594
                case 61:
1595
                    {
1596
                        PIXEL00_12
1597
                        PIXEL01_11
1598
                        PIXEL10_11
1599
                        PIXEL11_21
1600
                        break;
1601
                    }
1602
                case 157:
1603
                    {
1604
                        PIXEL00_12
1605
                        PIXEL01_11
1606
                        PIXEL10_22
1607
                        PIXEL11_12
1608
                        break;
1609
                    }
1610
                case 103:
1611
                    {
1612
                        PIXEL00_11
1613
                        PIXEL01_12
1614
                        PIXEL10_12
1615
                        PIXEL11_22
1616
                        break;
1617
                    }
1618
                case 227:
1619
                    {
1620
                        PIXEL00_11
1621
                        PIXEL01_21
1622
                        PIXEL10_12
1623
                        PIXEL11_11
1624
                        break;
1625
                    }
1626
                case 230:
1627
                    {
1628
                        PIXEL00_22
1629
                        PIXEL01_12
1630
                        PIXEL10_12
1631
                        PIXEL11_11
1632
                        break;
1633
                    }
1634
                case 199:
1635
                    {
1636
                        PIXEL00_11
1637
                        PIXEL01_12
1638
                        PIXEL10_21
1639
                        PIXEL11_11
1640
                        break;
1641
                    }
1642
                case 220:
1643
                    {
1644
                        PIXEL00_21
1645
                        PIXEL01_11
1646
                        if (Diff(w[8], w[4]))
1647
                        {
1648
                            PIXEL10_10
1649
                        }
1650
                        else
1651
                        {
1652
                            PIXEL10_70
1653
                        }
1654
                        if (Diff(w[6], w[8]))
1655
                        {
1656
                            PIXEL11_0
1657
                        }
1658
                        else
1659
                        {
1660
                            PIXEL11_20
1661
                        }
1662
                        break;
1663
                    }
1664
                case 158:
1665
                    {
1666
                        if (Diff(w[4], w[2]))
1667
                        {
1668
                            PIXEL00_10
1669
                        }
1670
                        else
1671
                        {
1672
                            PIXEL00_70
1673
                        }
1674
                        if (Diff(w[2], w[6]))
1675
                        {
1676
                            PIXEL01_0
1677
                        }
1678
                        else
1679
                        {
1680
                            PIXEL01_20
1681
                        }
1682
                        PIXEL10_22
1683
                        PIXEL11_12
1684
                        break;
1685
                    }
1686
                case 234:
1687
                    {
1688
                        if (Diff(w[4], w[2]))
1689
                        {
1690
                            PIXEL00_10
1691
                        }
1692
                        else
1693
                        {
1694
                            PIXEL00_70
1695
                        }
1696
                        PIXEL01_21
1697
                        if (Diff(w[8], w[4]))
1698
                        {
1699
                            PIXEL10_0
1700
                        }
1701
                        else
1702
                        {
1703
                            PIXEL10_20
1704
                        }
1705
                        PIXEL11_11
1706
                        break;
1707
                    }
1708
                case 242:
1709
                    {
1710
                        PIXEL00_22
1711
                        if (Diff(w[2], w[6]))
1712
                        {
1713
                            PIXEL01_10
1714
                        }
1715
                        else
1716
                        {
1717
                            PIXEL01_70
1718
                        }
1719
                        PIXEL10_12
1720
                        if (Diff(w[6], w[8]))
1721
                        {
1722
                            PIXEL11_0
1723
                        }
1724
                        else
1725
                        {
1726
                            PIXEL11_20
1727
                        }
1728
                        break;
1729
                    }
1730
                case 59:
1731
                    {
1732
                        if (Diff(w[4], w[2]))
1733
                        {
1734
                            PIXEL00_0
1735
                        }
1736
                        else
1737
                        {
1738
                            PIXEL00_20
1739
                        }
1740
                        if (Diff(w[2], w[6]))
1741
                        {
1742
                            PIXEL01_10
1743
                        }
1744
                        else
1745
                        {
1746
                            PIXEL01_70
1747
                        }
1748
                        PIXEL10_11
1749
                        PIXEL11_21
1750
                        break;
1751
                    }
1752
                case 121:
1753
                    {
1754
                        PIXEL00_12
1755
                        PIXEL01_22
1756
                        if (Diff(w[8], w[4]))
1757
                        {
1758
                            PIXEL10_0
1759
                        }
1760
                        else
1761
                        {
1762
                            PIXEL10_20
1763
                        }
1764
                        if (Diff(w[6], w[8]))
1765
                        {
1766
                            PIXEL11_10
1767
                        }
1768
                        else
1769
                        {
1770
                            PIXEL11_70
1771
                        }
1772
                        break;
1773
                    }
1774
                case 87:
1775
                    {
1776
                        PIXEL00_11
1777
                        if (Diff(w[2], w[6]))
1778
                        {
1779
                            PIXEL01_0
1780
                        }
1781
                        else
1782
                        {
1783
                            PIXEL01_20
1784
                        }
1785
                        PIXEL10_21
1786
                        if (Diff(w[6], w[8]))
1787
                        {
1788
                            PIXEL11_10
1789
                        }
1790
                        else
1791
                        {
1792
                            PIXEL11_70
1793
                        }
1794
                        break;
1795
                    }
1796
                case 79:
1797
                    {
1798
                        if (Diff(w[4], w[2]))
1799
                        {
1800
                            PIXEL00_0
1801
                        }
1802
                        else
1803
                        {
1804
                            PIXEL00_20
1805
                        }
1806
                        PIXEL01_12
1807
                        if (Diff(w[8], w[4]))
1808
                        {
1809
                            PIXEL10_10
1810
                        }
1811
                        else
1812
                        {
1813
                            PIXEL10_70
1814
                        }
1815
                        PIXEL11_22
1816
                        break;
1817
                    }
1818
                case 122:
1819
                    {
1820
                        if (Diff(w[4], w[2]))
1821
                        {
1822
                            PIXEL00_10
1823
                        }
1824
                        else
1825
                        {
1826
                            PIXEL00_70
1827
                        }
1828
                        if (Diff(w[2], w[6]))
1829
                        {
1830
                            PIXEL01_10
1831
                        }
1832
                        else
1833
                        {
1834
                            PIXEL01_70
1835
                        }
1836
                        if (Diff(w[8], w[4]))
1837
                        {
1838
                            PIXEL10_0
1839
                        }
1840
                        else
1841
                        {
1842
                            PIXEL10_20
1843
                        }
1844
                        if (Diff(w[6], w[8]))
1845
                        {
1846
                            PIXEL11_10
1847
                        }
1848
                        else
1849
                        {
1850
                            PIXEL11_70
1851
                        }
1852
                        break;
1853
                    }
1854
                case 94:
1855
                    {
1856
                        if (Diff(w[4], w[2]))
1857
                        {
1858
                            PIXEL00_10
1859
                        }
1860
                        else
1861
                        {
1862
                            PIXEL00_70
1863
                        }
1864
                        if (Diff(w[2], w[6]))
1865
                        {
1866
                            PIXEL01_0
1867
                        }
1868
                        else
1869
                        {
1870
                            PIXEL01_20
1871
                        }
1872
                        if (Diff(w[8], w[4]))
1873
                        {
1874
                            PIXEL10_10
1875
                        }
1876
                        else
1877
                        {
1878
                            PIXEL10_70
1879
                        }
1880
                        if (Diff(w[6], w[8]))
1881
                        {
1882
                            PIXEL11_10
1883
                        }
1884
                        else
1885
                        {
1886
                            PIXEL11_70
1887
                        }
1888
                        break;
1889
                    }
1890
                case 218:
1891
                    {
1892
                        if (Diff(w[4], w[2]))
1893
                        {
1894
                            PIXEL00_10
1895
                        }
1896
                        else
1897
                        {
1898
                            PIXEL00_70
1899
                        }
1900
                        if (Diff(w[2], w[6]))
1901
                        {
1902
                            PIXEL01_10
1903
                        }
1904
                        else
1905
                        {
1906
                            PIXEL01_70
1907
                        }
1908
                        if (Diff(w[8], w[4]))
1909
                        {
1910
                            PIXEL10_10
1911
                        }
1912
                        else
1913
                        {
1914
                            PIXEL10_70
1915
                        }
1916
                        if (Diff(w[6], w[8]))
1917
                        {
1918
                            PIXEL11_0
1919
                        }
1920
                        else
1921
                        {
1922
                            PIXEL11_20
1923
                        }
1924
                        break;
1925
                    }
1926
                case 91:
1927
                    {
1928
                        if (Diff(w[4], w[2]))
1929
                        {
1930
                            PIXEL00_0
1931
                        }
1932
                        else
1933
                        {
1934
                            PIXEL00_20
1935
                        }
1936
                        if (Diff(w[2], w[6]))
1937
                        {
1938
                            PIXEL01_10
1939
                        }
1940
                        else
1941
                        {
1942
                            PIXEL01_70
1943
                        }
1944
                        if (Diff(w[8], w[4]))
1945
                        {
1946
                            PIXEL10_10
1947
                        }
1948
                        else
1949
                        {
1950
                            PIXEL10_70
1951
                        }
1952
                        if (Diff(w[6], w[8]))
1953
                        {
1954
                            PIXEL11_10
1955
                        }
1956
                        else
1957
                        {
1958
                            PIXEL11_70
1959
                        }
1960
                        break;
1961
                    }
1962
                case 229:
1963
                    {
1964
                        PIXEL00_20
1965
                        PIXEL01_20
1966
                        PIXEL10_12
1967
                        PIXEL11_11
1968
                        break;
1969
                    }
1970
                case 167:
1971
                    {
1972
                        PIXEL00_11
1973
                        PIXEL01_12
1974
                        PIXEL10_20
1975
                        PIXEL11_20
1976
                        break;
1977
                    }
1978
                case 173:
1979
                    {
1980
                        PIXEL00_12
1981
                        PIXEL01_20
1982
                        PIXEL10_11
1983
                        PIXEL11_20
1984
                        break;
1985
                    }
1986
                case 181:
1987
                    {
1988
                        PIXEL00_20
1989
                        PIXEL01_11
1990
                        PIXEL10_20
1991
                        PIXEL11_12
1992
                        break;
1993
                    }
1994
                case 186:
1995
                    {
1996
                        if (Diff(w[4], w[2]))
1997
                        {
1998
                            PIXEL00_10
1999
                        }
2000
                        else
2001
                        {
2002
                            PIXEL00_70
2003
                        }
2004
                        if (Diff(w[2], w[6]))
2005
                        {
2006
                            PIXEL01_10
2007
                        }
2008
                        else
2009
                        {
2010
                            PIXEL01_70
2011
                        }
2012
                        PIXEL10_11
2013
                        PIXEL11_12
2014
                        break;
2015
                    }
2016
                case 115:
2017
                    {
2018
                        PIXEL00_11
2019
                        if (Diff(w[2], w[6]))
2020
                        {
2021
                            PIXEL01_10
2022
                        }
2023
                        else
2024
                        {
2025
                            PIXEL01_70
2026
                        }
2027
                        PIXEL10_12
2028
                        if (Diff(w[6], w[8]))
2029
                        {
2030
                            PIXEL11_10
2031
                        }
2032
                        else
2033
                        {
2034
                            PIXEL11_70
2035
                        }
2036
                        break;
2037
                    }
2038
                case 93:
2039
                    {
2040
                        PIXEL00_12
2041
                        PIXEL01_11
2042
                        if (Diff(w[8], w[4]))
2043
                        {
2044
                            PIXEL10_10
2045
                        }
2046
                        else
2047
                        {
2048
                            PIXEL10_70
2049
                        }
2050
                        if (Diff(w[6], w[8]))
2051
                        {
2052
                            PIXEL11_10
2053
                        }
2054
                        else
2055
                        {
2056
                            PIXEL11_70
2057
                        }
2058
                        break;
2059
                    }
2060
                case 206:
2061
                    {
2062
                        if (Diff(w[4], w[2]))
2063
                        {
2064
                            PIXEL00_10
2065
                        }
2066
                        else
2067
                        {
2068
                            PIXEL00_70
2069
                        }
2070
                        PIXEL01_12
2071
                        if (Diff(w[8], w[4]))
2072
                        {
2073
                            PIXEL10_10
2074
                        }
2075
                        else
2076
                        {
2077
                            PIXEL10_70
2078
                        }
2079
                        PIXEL11_11
2080
                        break;
2081
                    }
2082
                case 205:
2083
                case 201:
2084
                    {
2085
                        PIXEL00_12
2086
                        PIXEL01_20
2087
                        if (Diff(w[8], w[4]))
2088
                        {
2089
                            PIXEL10_10
2090
                        }
2091
                        else
2092
                        {
2093
                            PIXEL10_70
2094
                        }
2095
                        PIXEL11_11
2096
                        break;
2097
                    }
2098
                case 174:
2099
                case 46:
2100
                    {
2101
                        if (Diff(w[4], w[2]))
2102
                        {
2103
                            PIXEL00_10
2104
                        }
2105
                        else
2106
                        {
2107
                            PIXEL00_70
2108
                        }
2109
                        PIXEL01_12
2110
                        PIXEL10_11
2111
                        PIXEL11_20
2112
                        break;
2113
                    }
2114
                case 179:
2115
                case 147:
2116
                    {
2117
                        PIXEL00_11
2118
                        if (Diff(w[2], w[6]))
2119
                        {
2120
                            PIXEL01_10
2121
                        }
2122
                        else
2123
                        {
2124
                            PIXEL01_70
2125
                        }
2126
                        PIXEL10_20
2127
                        PIXEL11_12
2128
                        break;
2129
                    }
2130
                case 117:
2131
                case 116:
2132
                    {
2133
                        PIXEL00_20
2134
                        PIXEL01_11
2135
                        PIXEL10_12
2136
                        if (Diff(w[6], w[8]))
2137
                        {
2138
                            PIXEL11_10
2139
                        }
2140
                        else
2141
                        {
2142
                            PIXEL11_70
2143
                        }
2144
                        break;
2145
                    }
2146
                case 189:
2147
                    {
2148
                        PIXEL00_12
2149
                        PIXEL01_11
2150
                        PIXEL10_11
2151
                        PIXEL11_12
2152
                        break;
2153
                    }
2154
                case 231:
2155
                    {
2156
                        PIXEL00_11
2157
                        PIXEL01_12
2158
                        PIXEL10_12
2159
                        PIXEL11_11
2160
                        break;
2161
                    }
2162
                case 126:
2163
                    {
2164
                        PIXEL00_10
2165
                        if (Diff(w[2], w[6]))
2166
                        {
2167
                            PIXEL01_0
2168
                        }
2169
                        else
2170
                        {
2171
                            PIXEL01_20
2172
                        }
2173
                        if (Diff(w[8], w[4]))
2174
                        {
2175
                            PIXEL10_0
2176
                        }
2177
                        else
2178
                        {
2179
                            PIXEL10_20
2180
                        }
2181
                        PIXEL11_10
2182
                        break;
2183
                    }
2184
                case 219:
2185
                    {
2186
                        if (Diff(w[4], w[2]))
2187
                        {
2188
                            PIXEL00_0
2189
                        }
2190
                        else
2191
                        {
2192
                            PIXEL00_20
2193
                        }
2194
                        PIXEL01_10
2195
                        PIXEL10_10
2196
                        if (Diff(w[6], w[8]))
2197
                        {
2198
                            PIXEL11_0
2199
                        }
2200
                        else
2201
                        {
2202
                            PIXEL11_20
2203
                        }
2204
                        break;
2205
                    }
2206
                case 125:
2207
                    {
2208
                        if (Diff(w[8], w[4]))
2209
                        {
2210
                            PIXEL00_12
2211
                            PIXEL10_0
2212
                        }
2213
                        else
2214
                        {
2215
                            PIXEL00_61
2216
                            PIXEL10_90
2217
                        }
2218
                        PIXEL01_11
2219
                        PIXEL11_10
2220
                        break;
2221
                    }
2222
                case 221:
2223
                    {
2224
                        PIXEL00_12
2225
                        if (Diff(w[6], w[8]))
2226
                        {
2227
                            PIXEL01_11
2228
                            PIXEL11_0
2229
                        }
2230
                        else
2231
                        {
2232
                            PIXEL01_60
2233
                            PIXEL11_90
2234
                        }
2235
                        PIXEL10_10
2236
                        break;
2237
                    }
2238
                case 207:
2239
                    {
2240
                        if (Diff(w[4], w[2]))
2241
                        {
2242
                            PIXEL00_0
2243
                            PIXEL01_12
2244
                        }
2245
                        else
2246
                        {
2247
                            PIXEL00_90
2248
                            PIXEL01_61
2249
                        }
2250
                        PIXEL10_10
2251
                        PIXEL11_11
2252
                        break;
2253
                    }
2254
                case 238:
2255
                    {
2256
                        PIXEL00_10
2257
                        PIXEL01_12
2258
                        if (Diff(w[8], w[4]))
2259
                        {
2260
                            PIXEL10_0
2261
                            PIXEL11_11
2262
                        }
2263
                        else
2264
                        {
2265
                            PIXEL10_90
2266
                            PIXEL11_60
2267
                        }
2268
                        break;
2269
                    }
2270
                case 190:
2271
                    {
2272
                        PIXEL00_10
2273
                        if (Diff(w[2], w[6]))
2274
                        {
2275
                            PIXEL01_0
2276
                            PIXEL11_12
2277
                        }
2278
                        else
2279
                        {
2280
                            PIXEL01_90
2281
                            PIXEL11_61
2282
                        }
2283
                        PIXEL10_11
2284
                        break;
2285
                    }
2286
                case 187:
2287
                    {
2288
                        if (Diff(w[4], w[2]))
2289
                        {
2290
                            PIXEL00_0
2291
                            PIXEL10_11
2292
                        }
2293
                        else
2294
                        {
2295
                            PIXEL00_90
2296
                            PIXEL10_60
2297
                        }
2298
                        PIXEL01_10
2299
                        PIXEL11_12
2300
                        break;
2301
                    }
2302
                case 243:
2303
                    {
2304
                        PIXEL00_11
2305
                        PIXEL01_10
2306
                        if (Diff(w[6], w[8]))
2307
                        {
2308
                            PIXEL10_12
2309
                            PIXEL11_0
2310
                        }
2311
                        else
2312
                        {
2313
                            PIXEL10_61
2314
                            PIXEL11_90
2315
                        }
2316
                        break;
2317
                    }
2318
                case 119:
2319
                    {
2320
                        if (Diff(w[2], w[6]))
2321
                        {
2322
                            PIXEL00_11
2323
                            PIXEL01_0
2324
                        }
2325
                        else
2326
                        {
2327
                            PIXEL00_60
2328
                            PIXEL01_90
2329
                        }
2330
                        PIXEL10_12
2331
                        PIXEL11_10
2332
                        break;
2333
                    }
2334
                case 237:
2335
                case 233:
2336
                    {
2337
                        PIXEL00_12
2338
                        PIXEL01_20
2339
                        if (Diff(w[8], w[4]))
2340
                        {
2341
                            PIXEL10_0
2342
                        }
2343
                        else
2344
                        {
2345
                            PIXEL10_100
2346
                        }
2347
                        PIXEL11_11
2348
                        break;
2349
                    }
2350
                case 175:
2351
                case 47:
2352
                    {
2353
                        if (Diff(w[4], w[2]))
2354
                        {
2355
                            PIXEL00_0
2356
                        }
2357
                        else
2358
                        {
2359
                            PIXEL00_100
2360
                        }
2361
                        PIXEL01_12
2362
                        PIXEL10_11
2363
                        PIXEL11_20
2364
                        break;
2365
                    }
2366
                case 183:
2367
                case 151:
2368
                    {
2369
                        PIXEL00_11
2370
                        if (Diff(w[2], w[6]))
2371
                        {
2372
                            PIXEL01_0
2373
                        }
2374
                        else
2375
                        {
2376
                            PIXEL01_100
2377
                        }
2378
                        PIXEL10_20
2379
                        PIXEL11_12
2380
                        break;
2381
                    }
2382
                case 245:
2383
                case 244:
2384
                    {
2385
                        PIXEL00_20
2386
                        PIXEL01_11
2387
                        PIXEL10_12
2388
                        if (Diff(w[6], w[8]))
2389
                        {
2390
                            PIXEL11_0
2391
                        }
2392
                        else
2393
                        {
2394
                            PIXEL11_100
2395
                        }
2396
                        break;
2397
                    }
2398
                case 250:
2399
                    {
2400
                        PIXEL00_10
2401
                        PIXEL01_10
2402
                        if (Diff(w[8], w[4]))
2403
                        {
2404
                            PIXEL10_0
2405
                        }
2406
                        else
2407
                        {
2408
                            PIXEL10_20
2409
                        }
2410
                        if (Diff(w[6], w[8]))
2411
                        {
2412
                            PIXEL11_0
2413
                        }
2414
                        else
2415
                        {
2416
                            PIXEL11_20
2417
                        }
2418
                        break;
2419
                    }
2420
                case 123:
2421
                    {
2422
                        if (Diff(w[4], w[2]))
2423
                        {
2424
                            PIXEL00_0
2425
                        }
2426
                        else
2427
                        {
2428
                            PIXEL00_20
2429
                        }
2430
                        PIXEL01_10
2431
                        if (Diff(w[8], w[4]))
2432
                        {
2433
                            PIXEL10_0
2434
                        }
2435
                        else
2436
                        {
2437
                            PIXEL10_20
2438
                        }
2439
                        PIXEL11_10
2440
                        break;
2441
                    }
2442
                case 95:
2443
                    {
2444
                        if (Diff(w[4], w[2]))
2445
                        {
2446
                            PIXEL00_0
2447
                        }
2448
                        else
2449
                        {
2450
                            PIXEL00_20
2451
                        }
2452
                        if (Diff(w[2], w[6]))
2453
                        {
2454
                            PIXEL01_0
2455
                        }
2456
                        else
2457
                        {
2458
                            PIXEL01_20
2459
                        }
2460
                        PIXEL10_10
2461
                        PIXEL11_10
2462
                        break;
2463
                    }
2464
                case 222:
2465
                    {
2466
                        PIXEL00_10
2467
                        if (Diff(w[2], w[6]))
2468
                        {
2469
                            PIXEL01_0
2470
                        }
2471
                        else
2472
                        {
2473
                            PIXEL01_20
2474
                        }
2475
                        PIXEL10_10
2476
                        if (Diff(w[6], w[8]))
2477
                        {
2478
                            PIXEL11_0
2479
                        }
2480
                        else
2481
                        {
2482
                            PIXEL11_20
2483
                        }
2484
                        break;
2485
                    }
2486
                case 252:
2487
                    {
2488
                        PIXEL00_21
2489
                        PIXEL01_11
2490
                        if (Diff(w[8], w[4]))
2491
                        {
2492
                            PIXEL10_0
2493
                        }
2494
                        else
2495
                        {
2496
                            PIXEL10_20
2497
                        }
2498
                        if (Diff(w[6], w[8]))
2499
                        {
2500
                            PIXEL11_0
2501
                        }
2502
                        else
2503
                        {
2504
                            PIXEL11_100
2505
                        }
2506
                        break;
2507
                    }
2508
                case 249:
2509
                    {
2510
                        PIXEL00_12
2511
                        PIXEL01_22
2512
                        if (Diff(w[8], w[4]))
2513
                        {
2514
                            PIXEL10_0
2515
                        }
2516
                        else
2517
                        {
2518
                            PIXEL10_100
2519
                        }
2520
                        if (Diff(w[6], w[8]))
2521
                        {
2522
                            PIXEL11_0
2523
                        }
2524
                        else
2525
                        {
2526
                            PIXEL11_20
2527
                        }
2528
                        break;
2529
                    }
2530
                case 235:
2531
                    {
2532
                        if (Diff(w[4], w[2]))
2533
                        {
2534
                            PIXEL00_0
2535
                        }
2536
                        else
2537
                        {
2538
                            PIXEL00_20
2539
                        }
2540
                        PIXEL01_21
2541
                        if (Diff(w[8], w[4]))
2542
                        {
2543
                            PIXEL10_0
2544
                        }
2545
                        else
2546
                        {
2547
                            PIXEL10_100
2548
                        }
2549
                        PIXEL11_11
2550
                        break;
2551
                    }
2552
                case 111:
2553
                    {
2554
                        if (Diff(w[4], w[2]))
2555
                        {
2556
                            PIXEL00_0
2557
                        }
2558
                        else
2559
                        {
2560
                            PIXEL00_100
2561
                        }
2562
                        PIXEL01_12
2563
                        if (Diff(w[8], w[4]))
2564
                        {
2565
                            PIXEL10_0
2566
                        }
2567
                        else
2568
                        {
2569
                            PIXEL10_20
2570
                        }
2571
                        PIXEL11_22
2572
                        break;
2573
                    }
2574
                case 63:
2575
                    {
2576
                        if (Diff(w[4], w[2]))
2577
                        {
2578
                            PIXEL00_0
2579
                        }
2580
                        else
2581
                        {
2582
                            PIXEL00_100
2583
                        }
2584
                        if (Diff(w[2], w[6]))
2585
                        {
2586
                            PIXEL01_0
2587
                        }
2588
                        else
2589
                        {
2590
                            PIXEL01_20
2591
                        }
2592
                        PIXEL10_11
2593
                        PIXEL11_21
2594
                        break;
2595
                    }
2596
                case 159:
2597
                    {
2598
                        if (Diff(w[4], w[2]))
2599
                        {
2600
                            PIXEL00_0
2601
                        }
2602
                        else
2603
                        {
2604
                            PIXEL00_20
2605
                        }
2606
                        if (Diff(w[2], w[6]))
2607
                        {
2608
                            PIXEL01_0
2609
                        }
2610
                        else
2611
                        {
2612
                            PIXEL01_100
2613
                        }
2614
                        PIXEL10_22
2615
                        PIXEL11_12
2616
                        break;
2617
                    }
2618
                case 215:
2619
                    {
2620
                        PIXEL00_11
2621
                        if (Diff(w[2], w[6]))
2622
                        {
2623
                            PIXEL01_0
2624
                        }
2625
                        else
2626
                        {
2627
                            PIXEL01_100
2628
                        }
2629
                        PIXEL10_21
2630
                        if (Diff(w[6], w[8]))
2631
                        {
2632
                            PIXEL11_0
2633
                        }
2634
                        else
2635
                        {
2636
                            PIXEL11_20
2637
                        }
2638
                        break;
2639
                    }
2640
                case 246:
2641
                    {
2642
                        PIXEL00_22
2643
                        if (Diff(w[2], w[6]))
2644
                        {
2645
                            PIXEL01_0
2646
                        }
2647
                        else
2648
                        {
2649
                            PIXEL01_20
2650
                        }
2651
                        PIXEL10_12
2652
                        if (Diff(w[6], w[8]))
2653
                        {
2654
                            PIXEL11_0
2655
                        }
2656
                        else
2657
                        {
2658
                            PIXEL11_100
2659
                        }
2660
                        break;
2661
                    }
2662
                case 254:
2663
                    {
2664
                        PIXEL00_10
2665
                        if (Diff(w[2], w[6]))
2666
                        {
2667
                            PIXEL01_0
2668
                        }
2669
                        else
2670
                        {
2671
                            PIXEL01_20
2672
                        }
2673
                        if (Diff(w[8], w[4]))
2674
                        {
2675
                            PIXEL10_0
2676
                        }
2677
                        else
2678
                        {
2679
                            PIXEL10_20
2680
                        }
2681
                        if (Diff(w[6], w[8]))
2682
                        {
2683
                            PIXEL11_0
2684
                        }
2685
                        else
2686
                        {
2687
                            PIXEL11_100
2688
                        }
2689
                        break;
2690
                    }
2691
                case 253:
2692
                    {
2693
                        PIXEL00_12
2694
                        PIXEL01_11
2695
                        if (Diff(w[8], w[4]))
2696
                        {
2697
                            PIXEL10_0
2698
                        }
2699
                        else
2700
                        {
2701
                            PIXEL10_100
2702
                        }
2703
                        if (Diff(w[6], w[8]))
2704
                        {
2705
                            PIXEL11_0
2706
                        }
2707
                        else
2708
                        {
2709
                            PIXEL11_100
2710
                        }
2711
                        break;
2712
                    }
2713
                case 251:
2714
                    {
2715
                        if (Diff(w[4], w[2]))
2716
                        {
2717
                            PIXEL00_0
2718
                        }
2719
                        else
2720
                        {
2721
                            PIXEL00_20
2722
                        }
2723
                        PIXEL01_10
2724
                        if (Diff(w[8], w[4]))
2725
                        {
2726
                            PIXEL10_0
2727
                        }
2728
                        else
2729
                        {
2730
                            PIXEL10_100
2731
                        }
2732
                        if (Diff(w[6], w[8]))
2733
                        {
2734
                            PIXEL11_0
2735
                        }
2736
                        else
2737
                        {
2738
                            PIXEL11_20
2739
                        }
2740
                        break;
2741
                    }
2742
                case 239:
2743
                    {
2744
                        if (Diff(w[4], w[2]))
2745
                        {
2746
                            PIXEL00_0
2747
                        }
2748
                        else
2749
                        {
2750
                            PIXEL00_100
2751
                        }
2752
                        PIXEL01_12
2753
                        if (Diff(w[8], w[4]))
2754
                        {
2755
                            PIXEL10_0
2756
                        }
2757
                        else
2758
                        {
2759
                            PIXEL10_100
2760
                        }
2761
                        PIXEL11_11
2762
                        break;
2763
                    }
2764
                case 127:
2765
                    {
2766
                        if (Diff(w[4], w[2]))
2767
                        {
2768
                            PIXEL00_0
2769
                        }
2770
                        else
2771
                        {
2772
                            PIXEL00_100
2773
                        }
2774
                        if (Diff(w[2], w[6]))
2775
                        {
2776
                            PIXEL01_0
2777
                        }
2778
                        else
2779
                        {
2780
                            PIXEL01_20
2781
                        }
2782
                        if (Diff(w[8], w[4]))
2783
                        {
2784
                            PIXEL10_0
2785
                        }
2786
                        else
2787
                        {
2788
                            PIXEL10_20
2789
                        }
2790
                        PIXEL11_10
2791
                        break;
2792
                    }
2793
                case 191:
2794
                    {
2795
                        if (Diff(w[4], w[2]))
2796
                        {
2797
                            PIXEL00_0
2798
                        }
2799
                        else
2800
                        {
2801
                            PIXEL00_100
2802
                        }
2803
                        if (Diff(w[2], w[6]))
2804
                        {
2805
                            PIXEL01_0
2806
                        }
2807
                        else
2808
                        {
2809
                            PIXEL01_100
2810
                        }
2811
                        PIXEL10_11
2812
                        PIXEL11_12
2813
                        break;
2814
                    }
2815
                case 223:
2816
                    {
2817
                        if (Diff(w[4], w[2]))
2818
                        {
2819
                            PIXEL00_0
2820
                        }
2821
                        else
2822
                        {
2823
                            PIXEL00_20
2824
                        }
2825
                        if (Diff(w[2], w[6]))
2826
                        {
2827
                            PIXEL01_0
2828
                        }
2829
                        else
2830
                        {
2831
                            PIXEL01_100
2832
                        }
2833
                        PIXEL10_10
2834
                        if (Diff(w[6], w[8]))
2835
                        {
2836
                            PIXEL11_0
2837
                        }
2838
                        else
2839
                        {
2840
                            PIXEL11_20
2841
                        }
2842
                        break;
2843
                    }
2844
                case 247:
2845
                    {
2846
                        PIXEL00_11
2847
                        if (Diff(w[2], w[6]))
2848
                        {
2849
                            PIXEL01_0
2850
                        }
2851
                        else
2852
                        {
2853
                            PIXEL01_100
2854
                        }
2855
                        PIXEL10_12
2856
                        if (Diff(w[6], w[8]))
2857
                        {
2858
                            PIXEL11_0
2859
                        }
2860
                        else
2861
                        {
2862
                            PIXEL11_100
2863
                        }
2864
                        break;
2865
                    }
2866
                case 255:
2867
                    {
2868
                        if (Diff(w[4], w[2]))
2869
                        {
2870
                            PIXEL00_0
2871
                        }
2872
                        else
2873
                        {
2874
                            PIXEL00_100
2875
                        }
2876
                        if (Diff(w[2], w[6]))
2877
                        {
2878
                            PIXEL01_0
2879
                        }
2880
                        else
2881
                        {
2882
                            PIXEL01_100
2883
                        }
2884
                        if (Diff(w[8], w[4]))
2885
                        {
2886
                            PIXEL10_0
2887
                        }
2888
                        else
2889
                        {
2890
                            PIXEL10_100
2891
                        }
2892
                        if (Diff(w[6], w[8]))
2893
                        {
2894
                            PIXEL11_0
2895
                        }
2896
                        else
2897
                        {
2898
                            PIXEL11_100
2899
                        }
2900
                        break;
2901
                    }
2902
            }
2903
            sp++;
2904
            dp += 2;
2905
        }
2906
 
2907
        sRowP += srb;
2908
        sp = (uint32_t *) sRowP;
2909
 
2910
        dRowP += drb * 2;
2911
        dp = (uint32_t *) dRowP;
2912
    }
2913
}
2914
 
2915
HQX_API void HQX_CALLCONV hq2x_32 (uint32_t *src_pixels, uint32_t *dest_pixels, int src_width, int src_height)
2916
{
2917
    if (!is_hqx_initialized)
2918
        hqxInit();
2919
 
2920
    hq2x_32_rb(src_pixels, src_width * 4, dest_pixels, src_width * 4 * 2, src_width, src_height);
2921
}
2922
 
2923
#undef PIXEL00_0
2924
#undef PIXEL00_10
2925
#undef PIXEL00_11
2926
#undef PIXEL00_12
2927
#undef PIXEL00_20
2928
#undef PIXEL00_21
2929
#undef PIXEL00_22
2930
#undef PIXEL00_60
2931
#undef PIXEL00_61
2932
#undef PIXEL00_70
2933
#undef PIXEL00_90
2934
#undef PIXEL00_100
2935
#undef PIXEL01_0
2936
#undef PIXEL01_10
2937
#undef PIXEL01_11
2938
#undef PIXEL01_12
2939
#undef PIXEL01_20
2940
#undef PIXEL01_21
2941
#undef PIXEL01_22
2942
#undef PIXEL01_60
2943
#undef PIXEL01_61
2944
#undef PIXEL01_70
2945
#undef PIXEL01_90
2946
#undef PIXEL01_100
2947
#undef PIXEL10_0
2948
#undef PIXEL10_10
2949
#undef PIXEL10_11
2950
#undef PIXEL10_12
2951
#undef PIXEL10_20
2952
#undef PIXEL10_21
2953
#undef PIXEL10_22
2954
#undef PIXEL10_60
2955
#undef PIXEL10_61
2956
#undef PIXEL10_70
2957
#undef PIXEL10_90
2958
#undef PIXEL10_100
2959
#undef PIXEL11_0
2960
#undef PIXEL11_10
2961
#undef PIXEL11_11
2962
#undef PIXEL11_12
2963
#undef PIXEL11_20
2964
#undef PIXEL11_21
2965
#undef PIXEL11_22
2966
#undef PIXEL11_60
2967
#undef PIXEL11_61
2968
#undef PIXEL11_70
2969
#undef PIXEL11_90
2970
#undef PIXEL11_100
2971
#endif // WANT_HQ2X
2972
 
2973
 
2974
//////////
2975
// HQ3X //
2976
//////////
2977
 
2978
#ifdef WANT_HQ3X
2979
#define PIXEL00_1M  Interp1(dp, w[5], w[1]);
2980
#define PIXEL00_1U  Interp1(dp, w[5], w[2]);
2981
#define PIXEL00_1L  Interp1(dp, w[5], w[4]);
2982
#define PIXEL00_2   Interp2(dp, w[5], w[4], w[2]);
2983
#define PIXEL00_4   Interp4(dp, w[5], w[4], w[2]);
2984
#define PIXEL00_5   Interp5(dp, w[4], w[2]);
2985
#define PIXEL00_C   *dp   = w[5];
2986
#define PIXEL01_1   Interp1(dp+1, w[5], w[2]);
2987
#define PIXEL01_3   Interp3(dp+1, w[5], w[2]);
2988
#define PIXEL01_6   Interp1(dp+1, w[2], w[5]);
2989
#define PIXEL01_C   *(dp+1) = w[5];
2990
#define PIXEL02_1M  Interp1(dp+2, w[5], w[3]);
2991
#define PIXEL02_1U  Interp1(dp+2, w[5], w[2]);
2992
#define PIXEL02_1R  Interp1(dp+2, w[5], w[6]);
2993
#define PIXEL02_2   Interp2(dp+2, w[5], w[2], w[6]);
2994
#define PIXEL02_4   Interp4(dp+2, w[5], w[2], w[6]);
2995
#define PIXEL02_5   Interp5(dp+2, w[2], w[6]);
2996
#define PIXEL02_C   *(dp+2) = w[5];
2997
#define PIXEL10_1   Interp1(dp+dpL, w[5], w[4]);
2998
#define PIXEL10_3   Interp3(dp+dpL, w[5], w[4]);
2999
#define PIXEL10_6   Interp1(dp+dpL, w[4], w[5]);
3000
#define PIXEL10_C   *(dp+dpL) = w[5];
3001
#define PIXEL11     *(dp+dpL+1) = w[5];
3002
#define PIXEL12_1   Interp1(dp+dpL+2, w[5], w[6]);
3003
#define PIXEL12_3   Interp3(dp+dpL+2, w[5], w[6]);
3004
#define PIXEL12_6   Interp1(dp+dpL+2, w[6], w[5]);
3005
#define PIXEL12_C   *(dp+dpL+2) = w[5];
3006
#define PIXEL20_1M  Interp1(dp+dpL+dpL, w[5], w[7]);
3007
#define PIXEL20_1D  Interp1(dp+dpL+dpL, w[5], w[8]);
3008
#define PIXEL20_1L  Interp1(dp+dpL+dpL, w[5], w[4]);
3009
#define PIXEL20_2   Interp2(dp+dpL+dpL, w[5], w[8], w[4]);
3010
#define PIXEL20_4   Interp4(dp+dpL+dpL, w[5], w[8], w[4]);
3011
#define PIXEL20_5   Interp5(dp+dpL+dpL, w[8], w[4]);
3012
#define PIXEL20_C   *(dp+dpL+dpL) = w[5];
3013
#define PIXEL21_1   Interp1(dp+dpL+dpL+1, w[5], w[8]);
3014
#define PIXEL21_3   Interp3(dp+dpL+dpL+1, w[5], w[8]);
3015
#define PIXEL21_6   Interp1(dp+dpL+dpL+1, w[8], w[5]);
3016
#define PIXEL21_C   *(dp+dpL+dpL+1) = w[5];
3017
#define PIXEL22_1M  Interp1(dp+dpL+dpL+2, w[5], w[9]);
3018
#define PIXEL22_1D  Interp1(dp+dpL+dpL+2, w[5], w[8]);
3019
#define PIXEL22_1R  Interp1(dp+dpL+dpL+2, w[5], w[6]);
3020
#define PIXEL22_2   Interp2(dp+dpL+dpL+2, w[5], w[6], w[8]);
3021
#define PIXEL22_4   Interp4(dp+dpL+dpL+2, w[5], w[6], w[8]);
3022
#define PIXEL22_5   Interp5(dp+dpL+dpL+2, w[6], w[8]);
3023
#define PIXEL22_C   *(dp+dpL+dpL+2) = w[5];
3024
 
3025
HQX_API void HQX_CALLCONV hq3x_32_rb( uint32_t * sp, uint32_t srb, uint32_t * dp, uint32_t drb, int Xres, int Yres )
3026
{
3027
    int  i, j, k;
3028
    int  prevline, nextline;
3029
    uint32_t  w[10];
3030
    int dpL = (drb >> 2);
3031
    int spL = (srb >> 2);
3032
    uint8_t *sRowP = (uint8_t *) sp;
3033
    uint8_t *dRowP = (uint8_t *) dp;
3034
    uint32_t yuv1, yuv2;
3035
 
3036
    //   +----+----+----+
3037
    //   |    |    |    |
3038
    //   | w1 | w2 | w3 |
3039
    //   +----+----+----+
3040
    //   |    |    |    |
3041
    //   | w4 | w5 | w6 |
3042
    //   +----+----+----+
3043
    //   |    |    |    |
3044
    //   | w7 | w8 | w9 |
3045
    //   +----+----+----+
3046
 
3047
    for (j=0; j<Yres; j++)
3048
    {
3049
        if (j>0)      prevline = -spL; else prevline = 0;
3050
        if (j<Yres-1) nextline =  spL; else nextline = 0;
3051
 
3052
        for (i=0; i<Xres; i++)
3053
        {
3054
            w[2] = *(sp + prevline);
3055
            w[5] = *sp;
3056
            w[8] = *(sp + nextline);
3057
 
3058
            if (i>0)
3059
            {
3060
                w[1] = *(sp + prevline - 1);
3061
                w[4] = *(sp - 1);
3062
                w[7] = *(sp + nextline - 1);
3063
            }
3064
            else
3065
            {
3066
                w[1] = w[2];
3067
                w[4] = w[5];
3068
                w[7] = w[8];
3069
            }
3070
 
3071
            if (i<Xres-1)
3072
            {
3073
                w[3] = *(sp + prevline + 1);
3074
                w[6] = *(sp + 1);
3075
                w[9] = *(sp + nextline + 1);
3076
            }
3077
            else
3078
            {
3079
                w[3] = w[2];
3080
                w[6] = w[5];
3081
                w[9] = w[8];
3082
            }
3083
 
3084
            int pattern = 0;
3085
            int flag = 1;
3086
 
3087
            yuv1 = rgb_to_yuv(w[5]);
3088
 
3089
            for (k=1; k<=9; k++)
3090
            {
3091
                if (k==5) continue;
3092
 
3093
                if ( w[k] != w[5] )
3094
                {
3095
                    yuv2 = rgb_to_yuv(w[k]);
3096
                    if (yuv_diff(yuv1, yuv2))
3097
                        pattern |= flag;
3098
                }
3099
                flag <<= 1;
3100
            }
3101
 
3102
            switch (pattern)
3103
            {
3104
                case 0:
3105
                case 1:
3106
                case 4:
3107
                case 32:
3108
                case 128:
3109
                case 5:
3110
                case 132:
3111
                case 160:
3112
                case 33:
3113
                case 129:
3114
                case 36:
3115
                case 133:
3116
                case 164:
3117
                case 161:
3118
                case 37:
3119
                case 165:
3120
                    {
3121
                        PIXEL00_2
3122
                        PIXEL01_1
3123
                        PIXEL02_2
3124
                        PIXEL10_1
3125
                        PIXEL11
3126
                        PIXEL12_1
3127
                        PIXEL20_2
3128
                        PIXEL21_1
3129
                        PIXEL22_2
3130
                        break;
3131
                    }
3132
                case 2:
3133
                case 34:
3134
                case 130:
3135
                case 162:
3136
                    {
3137
                        PIXEL00_1M
3138
                        PIXEL01_C
3139
                        PIXEL02_1M
3140
                        PIXEL10_1
3141
                        PIXEL11
3142
                        PIXEL12_1
3143
                        PIXEL20_2
3144
                        PIXEL21_1
3145
                        PIXEL22_2
3146
                        break;
3147
                    }
3148
                case 16:
3149
                case 17:
3150
                case 48:
3151
                case 49:
3152
                    {
3153
                        PIXEL00_2
3154
                        PIXEL01_1
3155
                        PIXEL02_1M
3156
                        PIXEL10_1
3157
                        PIXEL11
3158
                        PIXEL12_C
3159
                        PIXEL20_2
3160
                        PIXEL21_1
3161
                        PIXEL22_1M
3162
                        break;
3163
                    }
3164
                case 64:
3165
                case 65:
3166
                case 68:
3167
                case 69:
3168
                    {
3169
                        PIXEL00_2
3170
                        PIXEL01_1
3171
                        PIXEL02_2
3172
                        PIXEL10_1
3173
                        PIXEL11
3174
                        PIXEL12_1
3175
                        PIXEL20_1M
3176
                        PIXEL21_C
3177
                        PIXEL22_1M
3178
                        break;
3179
                    }
3180
                case 8:
3181
                case 12:
3182
                case 136:
3183
                case 140:
3184
                    {
3185
                        PIXEL00_1M
3186
                        PIXEL01_1
3187
                        PIXEL02_2
3188
                        PIXEL10_C
3189
                        PIXEL11
3190
                        PIXEL12_1
3191
                        PIXEL20_1M
3192
                        PIXEL21_1
3193
                        PIXEL22_2
3194
                        break;
3195
                    }
3196
                case 3:
3197
                case 35:
3198
                case 131:
3199
                case 163:
3200
                    {
3201
                        PIXEL00_1L
3202
                        PIXEL01_C
3203
                        PIXEL02_1M
3204
                        PIXEL10_1
3205
                        PIXEL11
3206
                        PIXEL12_1
3207
                        PIXEL20_2
3208
                        PIXEL21_1
3209
                        PIXEL22_2
3210
                        break;
3211
                    }
3212
                case 6:
3213
                case 38:
3214
                case 134:
3215
                case 166:
3216
                    {
3217
                        PIXEL00_1M
3218
                        PIXEL01_C
3219
                        PIXEL02_1R
3220
                        PIXEL10_1
3221
                        PIXEL11
3222
                        PIXEL12_1
3223
                        PIXEL20_2
3224
                        PIXEL21_1
3225
                        PIXEL22_2
3226
                        break;
3227
                    }
3228
                case 20:
3229
                case 21:
3230
                case 52:
3231
                case 53:
3232
                    {
3233
                        PIXEL00_2
3234
                        PIXEL01_1
3235
                        PIXEL02_1U
3236
                        PIXEL10_1
3237
                        PIXEL11
3238
                        PIXEL12_C
3239
                        PIXEL20_2
3240
                        PIXEL21_1
3241
                        PIXEL22_1M
3242
                        break;
3243
                    }
3244
                case 144:
3245
                case 145:
3246
                case 176:
3247
                case 177:
3248
                    {
3249
                        PIXEL00_2
3250
                        PIXEL01_1
3251
                        PIXEL02_1M
3252
                        PIXEL10_1
3253
                        PIXEL11
3254
                        PIXEL12_C
3255
                        PIXEL20_2
3256
                        PIXEL21_1
3257
                        PIXEL22_1D
3258
                        break;
3259
                    }
3260
                case 192:
3261
                case 193:
3262
                case 196:
3263
                case 197:
3264
                    {
3265
                        PIXEL00_2
3266
                        PIXEL01_1
3267
                        PIXEL02_2
3268
                        PIXEL10_1
3269
                        PIXEL11
3270
                        PIXEL12_1
3271
                        PIXEL20_1M
3272
                        PIXEL21_C
3273
                        PIXEL22_1R
3274
                        break;
3275
                    }
3276
                case 96:
3277
                case 97:
3278
                case 100:
3279
                case 101:
3280
                    {
3281
                        PIXEL00_2
3282
                        PIXEL01_1
3283
                        PIXEL02_2
3284
                        PIXEL10_1
3285
                        PIXEL11
3286
                        PIXEL12_1
3287
                        PIXEL20_1L
3288
                        PIXEL21_C
3289
                        PIXEL22_1M
3290
                        break;
3291
                    }
3292
                case 40:
3293
                case 44:
3294
                case 168:
3295
                case 172:
3296
                    {
3297
                        PIXEL00_1M
3298
                        PIXEL01_1
3299
                        PIXEL02_2
3300
                        PIXEL10_C
3301
                        PIXEL11
3302
                        PIXEL12_1
3303
                        PIXEL20_1D
3304
                        PIXEL21_1
3305
                        PIXEL22_2
3306
                        break;
3307
                    }
3308
                case 9:
3309
                case 13:
3310
                case 137:
3311
                case 141:
3312
                    {
3313
                        PIXEL00_1U
3314
                        PIXEL01_1
3315
                        PIXEL02_2
3316
                        PIXEL10_C
3317
                        PIXEL11
3318
                        PIXEL12_1
3319
                        PIXEL20_1M
3320
                        PIXEL21_1
3321
                        PIXEL22_2
3322
                        break;
3323
                    }
3324
                case 18:
3325
                case 50:
3326
                    {
3327
                        PIXEL00_1M
3328
                        if (Diff(w[2], w[6]))
3329
                        {
3330
                            PIXEL01_C
3331
                            PIXEL02_1M
3332
                            PIXEL12_C
3333
                        }
3334
                        else
3335
                        {
3336
                            PIXEL01_3
3337
                            PIXEL02_4
3338
                            PIXEL12_3
3339
                        }
3340
                        PIXEL10_1
3341
                        PIXEL11
3342
                        PIXEL20_2
3343
                        PIXEL21_1
3344
                        PIXEL22_1M
3345
                        break;
3346
                    }
3347
                case 80:
3348
                case 81:
3349
                    {
3350
                        PIXEL00_2
3351
                        PIXEL01_1
3352
                        PIXEL02_1M
3353
                        PIXEL10_1
3354
                        PIXEL11
3355
                        PIXEL20_1M
3356
                        if (Diff(w[6], w[8]))
3357
                        {
3358
                            PIXEL12_C
3359
                            PIXEL21_C
3360
                            PIXEL22_1M
3361
                        }
3362
                        else
3363
                        {
3364
                            PIXEL12_3
3365
                            PIXEL21_3
3366
                            PIXEL22_4
3367
                        }
3368
                        break;
3369
                    }
3370
                case 72:
3371
                case 76:
3372
                    {
3373
                        PIXEL00_1M
3374
                        PIXEL01_1
3375
                        PIXEL02_2
3376
                        PIXEL11
3377
                        PIXEL12_1
3378
                        if (Diff(w[8], w[4]))
3379
                        {
3380
                            PIXEL10_C
3381
                            PIXEL20_1M
3382
                            PIXEL21_C
3383
                        }
3384
                        else
3385
                        {
3386
                            PIXEL10_3
3387
                            PIXEL20_4
3388
                            PIXEL21_3
3389
                        }
3390
                        PIXEL22_1M
3391
                        break;
3392
                    }
3393
                case 10:
3394
                case 138:
3395
                    {
3396
                        if (Diff(w[4], w[2]))
3397
                        {
3398
                            PIXEL00_1M
3399
                            PIXEL01_C
3400
                            PIXEL10_C
3401
                        }
3402
                        else
3403
                        {
3404
                            PIXEL00_4
3405
                            PIXEL01_3
3406
                            PIXEL10_3
3407
                        }
3408
                        PIXEL02_1M
3409
                        PIXEL11
3410
                        PIXEL12_1
3411
                        PIXEL20_1M
3412
                        PIXEL21_1
3413
                        PIXEL22_2
3414
                        break;
3415
                    }
3416
                case 66:
3417
                    {
3418
                        PIXEL00_1M
3419
                        PIXEL01_C
3420
                        PIXEL02_1M
3421
                        PIXEL10_1
3422
                        PIXEL11
3423
                        PIXEL12_1
3424
                        PIXEL20_1M
3425
                        PIXEL21_C
3426
                        PIXEL22_1M
3427
                        break;
3428
                    }
3429
                case 24:
3430
                    {
3431
                        PIXEL00_1M
3432
                        PIXEL01_1
3433
                        PIXEL02_1M
3434
                        PIXEL10_C
3435
                        PIXEL11
3436
                        PIXEL12_C
3437
                        PIXEL20_1M
3438
                        PIXEL21_1
3439
                        PIXEL22_1M
3440
                        break;
3441
                    }
3442
                case 7:
3443
                case 39:
3444
                case 135:
3445
                    {
3446
                        PIXEL00_1L
3447
                        PIXEL01_C
3448
                        PIXEL02_1R
3449
                        PIXEL10_1
3450
                        PIXEL11
3451
                        PIXEL12_1
3452
                        PIXEL20_2
3453
                        PIXEL21_1
3454
                        PIXEL22_2
3455
                        break;
3456
                    }
3457
                case 148:
3458
                case 149:
3459
                case 180:
3460
                    {
3461
                        PIXEL00_2
3462
                        PIXEL01_1
3463
                        PIXEL02_1U
3464
                        PIXEL10_1
3465
                        PIXEL11
3466
                        PIXEL12_C
3467
                        PIXEL20_2
3468
                        PIXEL21_1
3469
                        PIXEL22_1D
3470
                        break;
3471
                    }
3472
                case 224:
3473
                case 228:
3474
                case 225:
3475
                    {
3476
                        PIXEL00_2
3477
                        PIXEL01_1
3478
                        PIXEL02_2
3479
                        PIXEL10_1
3480
                        PIXEL11
3481
                        PIXEL12_1
3482
                        PIXEL20_1L
3483
                        PIXEL21_C
3484
                        PIXEL22_1R
3485
                        break;
3486
                    }
3487
                case 41:
3488
                case 169:
3489
                case 45:
3490
                    {
3491
                        PIXEL00_1U
3492
                        PIXEL01_1
3493
                        PIXEL02_2
3494
                        PIXEL10_C
3495
                        PIXEL11
3496
                        PIXEL12_1
3497
                        PIXEL20_1D
3498
                        PIXEL21_1
3499
                        PIXEL22_2
3500
                        break;
3501
                    }
3502
                case 22:
3503
                case 54:
3504
                    {
3505
                        PIXEL00_1M
3506
                        if (Diff(w[2], w[6]))
3507
                        {
3508
                            PIXEL01_C
3509
                            PIXEL02_C
3510
                            PIXEL12_C
3511
                        }
3512
                        else
3513
                        {
3514
                            PIXEL01_3
3515
                            PIXEL02_4
3516
                            PIXEL12_3
3517
                        }
3518
                        PIXEL10_1
3519
                        PIXEL11
3520
                        PIXEL20_2
3521
                        PIXEL21_1
3522
                        PIXEL22_1M
3523
                        break;
3524
                    }
3525
                case 208:
3526
                case 209:
3527
                    {
3528
                        PIXEL00_2
3529
                        PIXEL01_1
3530
                        PIXEL02_1M
3531
                        PIXEL10_1
3532
                        PIXEL11
3533
                        PIXEL20_1M
3534
                        if (Diff(w[6], w[8]))
3535
                        {
3536
                            PIXEL12_C
3537
                            PIXEL21_C
3538
                            PIXEL22_C
3539
                        }
3540
                        else
3541
                        {
3542
                            PIXEL12_3
3543
                            PIXEL21_3
3544
                            PIXEL22_4
3545
                        }
3546
                        break;
3547
                    }
3548
                case 104:
3549
                case 108:
3550
                    {
3551
                        PIXEL00_1M
3552
                        PIXEL01_1
3553
                        PIXEL02_2
3554
                        PIXEL11
3555
                        PIXEL12_1
3556
                        if (Diff(w[8], w[4]))
3557
                        {
3558
                            PIXEL10_C
3559
                            PIXEL20_C
3560
                            PIXEL21_C
3561
                        }
3562
                        else
3563
                        {
3564
                            PIXEL10_3
3565
                            PIXEL20_4
3566
                            PIXEL21_3
3567
                        }
3568
                        PIXEL22_1M
3569
                        break;
3570
                    }
3571
                case 11:
3572
                case 139:
3573
                    {
3574
                        if (Diff(w[4], w[2]))
3575
                        {
3576
                            PIXEL00_C
3577
                            PIXEL01_C
3578
                            PIXEL10_C
3579
                        }
3580
                        else
3581
                        {
3582
                            PIXEL00_4
3583
                            PIXEL01_3
3584
                            PIXEL10_3
3585
                        }
3586
                        PIXEL02_1M
3587
                        PIXEL11
3588
                        PIXEL12_1
3589
                        PIXEL20_1M
3590
                        PIXEL21_1
3591
                        PIXEL22_2
3592
                        break;
3593
                    }
3594
                case 19:
3595
                case 51:
3596
                    {
3597
                        if (Diff(w[2], w[6]))
3598
                        {
3599
                            PIXEL00_1L
3600
                            PIXEL01_C
3601
                            PIXEL02_1M
3602
                            PIXEL12_C
3603
                        }
3604
                        else
3605
                        {
3606
                            PIXEL00_2
3607
                            PIXEL01_6
3608
                            PIXEL02_5
3609
                            PIXEL12_1
3610
                        }
3611
                        PIXEL10_1
3612
                        PIXEL11
3613
                        PIXEL20_2
3614
                        PIXEL21_1
3615
                        PIXEL22_1M
3616
                        break;
3617
                    }
3618
                case 146:
3619
                case 178:
3620
                    {
3621
                        if (Diff(w[2], w[6]))
3622
                        {
3623
                            PIXEL01_C
3624
                            PIXEL02_1M
3625
                            PIXEL12_C
3626
                            PIXEL22_1D
3627
                        }
3628
                        else
3629
                        {
3630
                            PIXEL01_1
3631
                            PIXEL02_5
3632
                            PIXEL12_6
3633
                            PIXEL22_2
3634
                        }
3635
                        PIXEL00_1M
3636
                        PIXEL10_1
3637
                        PIXEL11
3638
                        PIXEL20_2
3639
                        PIXEL21_1
3640
                        break;
3641
                    }
3642
                case 84:
3643
                case 85:
3644
                    {
3645
                        if (Diff(w[6], w[8]))
3646
                        {
3647
                            PIXEL02_1U
3648
                            PIXEL12_C
3649
                            PIXEL21_C
3650
                            PIXEL22_1M
3651
                        }
3652
                        else
3653
                        {
3654
                            PIXEL02_2
3655
                            PIXEL12_6
3656
                            PIXEL21_1
3657
                            PIXEL22_5
3658
                        }
3659
                        PIXEL00_2
3660
                        PIXEL01_1
3661
                        PIXEL10_1
3662
                        PIXEL11
3663
                        PIXEL20_1M
3664
                        break;
3665
                    }
3666
                case 112:
3667
                case 113:
3668
                    {
3669
                        if (Diff(w[6], w[8]))
3670
                        {
3671
                            PIXEL12_C
3672
                            PIXEL20_1L
3673
                            PIXEL21_C
3674
                            PIXEL22_1M
3675
                        }
3676
                        else
3677
                        {
3678
                            PIXEL12_1
3679
                            PIXEL20_2
3680
                            PIXEL21_6
3681
                            PIXEL22_5
3682
                        }
3683
                        PIXEL00_2
3684
                        PIXEL01_1
3685
                        PIXEL02_1M
3686
                        PIXEL10_1
3687
                        PIXEL11
3688
                        break;
3689
                    }
3690
                case 200:
3691
                case 204:
3692
                    {
3693
                        if (Diff(w[8], w[4]))
3694
                        {
3695
                            PIXEL10_C
3696
                            PIXEL20_1M
3697
                            PIXEL21_C
3698
                            PIXEL22_1R
3699
                        }
3700
                        else
3701
                        {
3702
                            PIXEL10_1
3703
                            PIXEL20_5
3704
                            PIXEL21_6
3705
                            PIXEL22_2
3706
                        }
3707
                        PIXEL00_1M
3708
                        PIXEL01_1
3709
                        PIXEL02_2
3710
                        PIXEL11
3711
                        PIXEL12_1
3712
                        break;
3713
                    }
3714
                case 73:
3715
                case 77:
3716
                    {
3717
                        if (Diff(w[8], w[4]))
3718
                        {
3719
                            PIXEL00_1U
3720
                            PIXEL10_C
3721
                            PIXEL20_1M
3722
                            PIXEL21_C
3723
                        }
3724
                        else
3725
                        {
3726
                            PIXEL00_2
3727
                            PIXEL10_6
3728
                            PIXEL20_5
3729
                            PIXEL21_1
3730
                        }
3731
                        PIXEL01_1
3732
                        PIXEL02_2
3733
                        PIXEL11
3734
                        PIXEL12_1
3735
                        PIXEL22_1M
3736
                        break;
3737
                    }
3738
                case 42:
3739
                case 170:
3740
                    {
3741
                        if (Diff(w[4], w[2]))
3742
                        {
3743
                            PIXEL00_1M
3744
                            PIXEL01_C
3745
                            PIXEL10_C
3746
                            PIXEL20_1D
3747
                        }
3748
                        else
3749
                        {
3750
                            PIXEL00_5
3751
                            PIXEL01_1
3752
                            PIXEL10_6
3753
                            PIXEL20_2
3754
                        }
3755
                        PIXEL02_1M
3756
                        PIXEL11
3757
                        PIXEL12_1
3758
                        PIXEL21_1
3759
                        PIXEL22_2
3760
                        break;
3761
                    }
3762
                case 14:
3763
                case 142:
3764
                    {
3765
                        if (Diff(w[4], w[2]))
3766
                        {
3767
                            PIXEL00_1M
3768
                            PIXEL01_C
3769
                            PIXEL02_1R
3770
                            PIXEL10_C
3771
                        }
3772
                        else
3773
                        {
3774
                            PIXEL00_5
3775
                            PIXEL01_6
3776
                            PIXEL02_2
3777
                            PIXEL10_1
3778
                        }
3779
                        PIXEL11
3780
                        PIXEL12_1
3781
                        PIXEL20_1M
3782
                        PIXEL21_1
3783
                        PIXEL22_2
3784
                        break;
3785
                    }
3786
                case 67:
3787
                    {
3788
                        PIXEL00_1L
3789
                        PIXEL01_C
3790
                        PIXEL02_1M
3791
                        PIXEL10_1
3792
                        PIXEL11
3793
                        PIXEL12_1
3794
                        PIXEL20_1M
3795
                        PIXEL21_C
3796
                        PIXEL22_1M
3797
                        break;
3798
                    }
3799
                case 70:
3800
                    {
3801
                        PIXEL00_1M
3802
                        PIXEL01_C
3803
                        PIXEL02_1R
3804
                        PIXEL10_1
3805
                        PIXEL11
3806
                        PIXEL12_1
3807
                        PIXEL20_1M
3808
                        PIXEL21_C
3809
                        PIXEL22_1M
3810
                        break;
3811
                    }
3812
                case 28:
3813
                    {
3814
                        PIXEL00_1M
3815
                        PIXEL01_1
3816
                        PIXEL02_1U
3817
                        PIXEL10_C
3818
                        PIXEL11
3819
                        PIXEL12_C
3820
                        PIXEL20_1M
3821
                        PIXEL21_1
3822
                        PIXEL22_1M
3823
                        break;
3824
                    }
3825
                case 152:
3826
                    {
3827
                        PIXEL00_1M
3828
                        PIXEL01_1
3829
                        PIXEL02_1M
3830
                        PIXEL10_C
3831
                        PIXEL11
3832
                        PIXEL12_C
3833
                        PIXEL20_1M
3834
                        PIXEL21_1
3835
                        PIXEL22_1D
3836
                        break;
3837
                    }
3838
                case 194:
3839
                    {
3840
                        PIXEL00_1M
3841
                        PIXEL01_C
3842
                        PIXEL02_1M
3843
                        PIXEL10_1
3844
                        PIXEL11
3845
                        PIXEL12_1
3846
                        PIXEL20_1M
3847
                        PIXEL21_C
3848
                        PIXEL22_1R
3849
                        break;
3850
                    }
3851
                case 98:
3852
                    {
3853
                        PIXEL00_1M
3854
                        PIXEL01_C
3855
                        PIXEL02_1M
3856
                        PIXEL10_1
3857
                        PIXEL11
3858
                        PIXEL12_1
3859
                        PIXEL20_1L
3860
                        PIXEL21_C
3861
                        PIXEL22_1M
3862
                        break;
3863
                    }
3864
                case 56:
3865
                    {
3866
                        PIXEL00_1M
3867
                        PIXEL01_1
3868
                        PIXEL02_1M
3869
                        PIXEL10_C
3870
                        PIXEL11
3871
                        PIXEL12_C
3872
                        PIXEL20_1D
3873
                        PIXEL21_1
3874
                        PIXEL22_1M
3875
                        break;
3876
                    }
3877
                case 25:
3878
                    {
3879
                        PIXEL00_1U
3880
                        PIXEL01_1
3881
                        PIXEL02_1M
3882
                        PIXEL10_C
3883
                        PIXEL11
3884
                        PIXEL12_C
3885
                        PIXEL20_1M
3886
                        PIXEL21_1
3887
                        PIXEL22_1M
3888
                        break;
3889
                    }
3890
                case 26:
3891
                case 31:
3892
                    {
3893
                        if (Diff(w[4], w[2]))
3894
                        {
3895
                            PIXEL00_C
3896
                            PIXEL10_C
3897
                        }
3898
                        else
3899
                        {
3900
                            PIXEL00_4
3901
                            PIXEL10_3
3902
                        }
3903
                        PIXEL01_C
3904
                        if (Diff(w[2], w[6]))
3905
                        {
3906
                            PIXEL02_C
3907
                            PIXEL12_C
3908
                        }
3909
                        else
3910
                        {
3911
                            PIXEL02_4
3912
                            PIXEL12_3
3913
                        }
3914
                        PIXEL11
3915
                        PIXEL20_1M
3916
                        PIXEL21_1
3917
                        PIXEL22_1M
3918
                        break;
3919
                    }
3920
                case 82:
3921
                case 214:
3922
                    {
3923
                        PIXEL00_1M
3924
                        if (Diff(w[2], w[6]))
3925
                        {
3926
                            PIXEL01_C
3927
                            PIXEL02_C
3928
                        }
3929
                        else
3930
                        {
3931
                            PIXEL01_3
3932
                            PIXEL02_4
3933
                        }
3934
                        PIXEL10_1
3935
                        PIXEL11
3936
                        PIXEL12_C
3937
                        PIXEL20_1M
3938
                        if (Diff(w[6], w[8]))
3939
                        {
3940
                            PIXEL21_C
3941
                            PIXEL22_C
3942
                        }
3943
                        else
3944
                        {
3945
                            PIXEL21_3
3946
                            PIXEL22_4
3947
                        }
3948
                        break;
3949
                    }
3950
                case 88:
3951
                case 248:
3952
                    {
3953
                        PIXEL00_1M
3954
                        PIXEL01_1
3955
                        PIXEL02_1M
3956
                        PIXEL11
3957
                        if (Diff(w[8], w[4]))
3958
                        {
3959
                            PIXEL10_C
3960
                            PIXEL20_C
3961
                        }
3962
                        else
3963
                        {
3964
                            PIXEL10_3
3965
                            PIXEL20_4
3966
                        }
3967
                        PIXEL21_C
3968
                        if (Diff(w[6], w[8]))
3969
                        {
3970
                            PIXEL12_C
3971
                            PIXEL22_C
3972
                        }
3973
                        else
3974
                        {
3975
                            PIXEL12_3
3976
                            PIXEL22_4
3977
                        }
3978
                        break;
3979
                    }
3980
                case 74:
3981
                case 107:
3982
                    {
3983
                        if (Diff(w[4], w[2]))
3984
                        {
3985
                            PIXEL00_C
3986
                            PIXEL01_C
3987
                        }
3988
                        else
3989
                        {
3990
                            PIXEL00_4
3991
                            PIXEL01_3
3992
                        }
3993
                        PIXEL02_1M
3994
                        PIXEL10_C
3995
                        PIXEL11
3996
                        PIXEL12_1
3997
                        if (Diff(w[8], w[4]))
3998
                        {
3999
                            PIXEL20_C
4000
                            PIXEL21_C
4001
                        }
4002
                        else
4003
                        {
4004
                            PIXEL20_4
4005
                            PIXEL21_3
4006
                        }
4007
                        PIXEL22_1M
4008
                        break;
4009
                    }
4010
                case 27:
4011
                    {
4012
                        if (Diff(w[4], w[2]))
4013
                        {
4014
                            PIXEL00_C
4015
                            PIXEL01_C
4016
                            PIXEL10_C
4017
                        }
4018
                        else
4019
                        {
4020
                            PIXEL00_4
4021
                            PIXEL01_3
4022
                            PIXEL10_3
4023
                        }
4024
                        PIXEL02_1M
4025
                        PIXEL11
4026
                        PIXEL12_C
4027
                        PIXEL20_1M
4028
                        PIXEL21_1
4029
                        PIXEL22_1M
4030
                        break;
4031
                    }
4032
                case 86:
4033
                    {
4034
                        PIXEL00_1M
4035
                        if (Diff(w[2], w[6]))
4036
                        {
4037
                            PIXEL01_C
4038
                            PIXEL02_C
4039
                            PIXEL12_C
4040
                        }
4041
                        else
4042
                        {
4043
                            PIXEL01_3
4044
                            PIXEL02_4
4045
                            PIXEL12_3
4046
                        }
4047
                        PIXEL10_1
4048
                        PIXEL11
4049
                        PIXEL20_1M
4050
                        PIXEL21_C
4051
                        PIXEL22_1M
4052
                        break;
4053
                    }
4054
                case 216:
4055
                    {
4056
                        PIXEL00_1M
4057
                        PIXEL01_1
4058
                        PIXEL02_1M
4059
                        PIXEL10_C
4060
                        PIXEL11
4061
                        PIXEL20_1M
4062
                        if (Diff(w[6], w[8]))
4063
                        {
4064
                            PIXEL12_C
4065
                            PIXEL21_C
4066
                            PIXEL22_C
4067
                        }
4068
                        else
4069
                        {
4070
                            PIXEL12_3
4071
                            PIXEL21_3
4072
                            PIXEL22_4
4073
                        }
4074
                        break;
4075
                    }
4076
                case 106:
4077
                    {
4078
                        PIXEL00_1M
4079
                        PIXEL01_C
4080
                        PIXEL02_1M
4081
                        PIXEL11
4082
                        PIXEL12_1
4083
                        if (Diff(w[8], w[4]))
4084
                        {
4085
                            PIXEL10_C
4086
                            PIXEL20_C
4087
                            PIXEL21_C
4088
                        }
4089
                        else
4090
                        {
4091
                            PIXEL10_3
4092
                            PIXEL20_4
4093
                            PIXEL21_3
4094
                        }
4095
                        PIXEL22_1M
4096
                        break;
4097
                    }
4098
                case 30:
4099
                    {
4100
                        PIXEL00_1M
4101
                        if (Diff(w[2], w[6]))
4102
                        {
4103
                            PIXEL01_C
4104
                            PIXEL02_C
4105
                            PIXEL12_C
4106
                        }
4107
                        else
4108
                        {
4109
                            PIXEL01_3
4110
                            PIXEL02_4
4111
                            PIXEL12_3
4112
                        }
4113
                        PIXEL10_C
4114
                        PIXEL11
4115
                        PIXEL20_1M
4116
                        PIXEL21_1
4117
                        PIXEL22_1M
4118
                        break;
4119
                    }
4120
                case 210:
4121
                    {
4122
                        PIXEL00_1M
4123
                        PIXEL01_C
4124
                        PIXEL02_1M
4125
                        PIXEL10_1
4126
                        PIXEL11
4127
                        PIXEL20_1M
4128
                        if (Diff(w[6], w[8]))
4129
                        {
4130
                            PIXEL12_C
4131
                            PIXEL21_C
4132
                            PIXEL22_C
4133
                        }
4134
                        else
4135
                        {
4136
                            PIXEL12_3
4137
                            PIXEL21_3
4138
                            PIXEL22_4
4139
                        }
4140
                        break;
4141
                    }
4142
                case 120:
4143
                    {
4144
                        PIXEL00_1M
4145
                        PIXEL01_1
4146
                        PIXEL02_1M
4147
                        PIXEL11
4148
                        PIXEL12_C
4149
                        if (Diff(w[8], w[4]))
4150
                        {
4151
                            PIXEL10_C
4152
                            PIXEL20_C
4153
                            PIXEL21_C
4154
                        }
4155
                        else
4156
                        {
4157
                            PIXEL10_3
4158
                            PIXEL20_4
4159
                            PIXEL21_3
4160
                        }
4161
                        PIXEL22_1M
4162
                        break;
4163
                    }
4164
                case 75:
4165
                    {
4166
                        if (Diff(w[4], w[2]))
4167
                        {
4168
                            PIXEL00_C
4169
                            PIXEL01_C
4170
                            PIXEL10_C
4171
                        }
4172
                        else
4173
                        {
4174
                            PIXEL00_4
4175
                            PIXEL01_3
4176
                            PIXEL10_3
4177
                        }
4178
                        PIXEL02_1M
4179
                        PIXEL11
4180
                        PIXEL12_1
4181
                        PIXEL20_1M
4182
                        PIXEL21_C
4183
                        PIXEL22_1M
4184
                        break;
4185
                    }
4186
                case 29:
4187
                    {
4188
                        PIXEL00_1U
4189
                        PIXEL01_1
4190
                        PIXEL02_1U
4191
                        PIXEL10_C
4192
                        PIXEL11
4193
                        PIXEL12_C
4194
                        PIXEL20_1M
4195
                        PIXEL21_1
4196
                        PIXEL22_1M
4197
                        break;
4198
                    }
4199
                case 198:
4200
                    {
4201
                        PIXEL00_1M
4202
                        PIXEL01_C
4203
                        PIXEL02_1R
4204
                        PIXEL10_1
4205
                        PIXEL11
4206
                        PIXEL12_1
4207
                        PIXEL20_1M
4208
                        PIXEL21_C
4209
                        PIXEL22_1R
4210
                        break;
4211
                    }
4212
                case 184:
4213
                    {
4214
                        PIXEL00_1M
4215
                        PIXEL01_1
4216
                        PIXEL02_1M
4217
                        PIXEL10_C
4218
                        PIXEL11
4219
                        PIXEL12_C
4220
                        PIXEL20_1D
4221
                        PIXEL21_1
4222
                        PIXEL22_1D
4223
                        break;
4224
                    }
4225
                case 99:
4226
                    {
4227
                        PIXEL00_1L
4228
                        PIXEL01_C
4229
                        PIXEL02_1M
4230
                        PIXEL10_1
4231
                        PIXEL11
4232
                        PIXEL12_1
4233
                        PIXEL20_1L
4234
                        PIXEL21_C
4235
                        PIXEL22_1M
4236
                        break;
4237
                    }
4238
                case 57:
4239
                    {
4240
                        PIXEL00_1U
4241
                        PIXEL01_1
4242
                        PIXEL02_1M
4243
                        PIXEL10_C
4244
                        PIXEL11
4245
                        PIXEL12_C
4246
                        PIXEL20_1D
4247
                        PIXEL21_1
4248
                        PIXEL22_1M
4249
                        break;
4250
                    }
4251
                case 71:
4252
                    {
4253
                        PIXEL00_1L
4254
                        PIXEL01_C
4255
                        PIXEL02_1R
4256
                        PIXEL10_1
4257
                        PIXEL11
4258
                        PIXEL12_1
4259
                        PIXEL20_1M
4260
                        PIXEL21_C
4261
                        PIXEL22_1M
4262
                        break;
4263
                    }
4264
                case 156:
4265
                    {
4266
                        PIXEL00_1M
4267
                        PIXEL01_1
4268
                        PIXEL02_1U
4269
                        PIXEL10_C
4270
                        PIXEL11
4271
                        PIXEL12_C
4272
                        PIXEL20_1M
4273
                        PIXEL21_1
4274
                        PIXEL22_1D
4275
                        break;
4276
                    }
4277
                case 226:
4278
                    {
4279
                        PIXEL00_1M
4280
                        PIXEL01_C
4281
                        PIXEL02_1M
4282
                        PIXEL10_1
4283
                        PIXEL11
4284
                        PIXEL12_1
4285
                        PIXEL20_1L
4286
                        PIXEL21_C
4287
                        PIXEL22_1R
4288
                        break;
4289
                    }
4290
                case 60:
4291
                    {
4292
                        PIXEL00_1M
4293
                        PIXEL01_1
4294
                        PIXEL02_1U
4295
                        PIXEL10_C
4296
                        PIXEL11
4297
                        PIXEL12_C
4298
                        PIXEL20_1D
4299
                        PIXEL21_1
4300
                        PIXEL22_1M
4301
                        break;
4302
                    }
4303
                case 195:
4304
                    {
4305
                        PIXEL00_1L
4306
                        PIXEL01_C
4307
                        PIXEL02_1M
4308
                        PIXEL10_1
4309
                        PIXEL11
4310
                        PIXEL12_1
4311
                        PIXEL20_1M
4312
                        PIXEL21_C
4313
                        PIXEL22_1R
4314
                        break;
4315
                    }
4316
                case 102:
4317
                    {
4318
                        PIXEL00_1M
4319
                        PIXEL01_C
4320
                        PIXEL02_1R
4321
                        PIXEL10_1
4322
                        PIXEL11
4323
                        PIXEL12_1
4324
                        PIXEL20_1L
4325
                        PIXEL21_C
4326
                        PIXEL22_1M
4327
                        break;
4328
                    }
4329
                case 153:
4330
                    {
4331
                        PIXEL00_1U
4332
                        PIXEL01_1
4333
                        PIXEL02_1M
4334
                        PIXEL10_C
4335
                        PIXEL11
4336
                        PIXEL12_C
4337
                        PIXEL20_1M
4338
                        PIXEL21_1
4339
                        PIXEL22_1D
4340
                        break;
4341
                    }
4342
                case 58:
4343
                    {
4344
                        if (Diff(w[4], w[2]))
4345
                        {
4346
                            PIXEL00_1M
4347
                        }
4348
                        else
4349
                        {
4350
                            PIXEL00_2
4351
                        }
4352
                        PIXEL01_C
4353
                        if (Diff(w[2], w[6]))
4354
                        {
4355
                            PIXEL02_1M
4356
                        }
4357
                        else
4358
                        {
4359
                            PIXEL02_2
4360
                        }
4361
                        PIXEL10_C
4362
                        PIXEL11
4363
                        PIXEL12_C
4364
                        PIXEL20_1D
4365
                        PIXEL21_1
4366
                        PIXEL22_1M
4367
                        break;
4368
                    }
4369
                case 83:
4370
                    {
4371
                        PIXEL00_1L
4372
                        PIXEL01_C
4373
                        if (Diff(w[2], w[6]))
4374
                        {
4375
                            PIXEL02_1M
4376
                        }
4377
                        else
4378
                        {
4379
                            PIXEL02_2
4380
                        }
4381
                        PIXEL10_1
4382
                        PIXEL11
4383
                        PIXEL12_C
4384
                        PIXEL20_1M
4385
                        PIXEL21_C
4386
                        if (Diff(w[6], w[8]))
4387
                        {
4388
                            PIXEL22_1M
4389
                        }
4390
                        else
4391
                        {
4392
                            PIXEL22_2
4393
                        }
4394
                        break;
4395
                    }
4396
                case 92:
4397
                    {
4398
                        PIXEL00_1M
4399
                        PIXEL01_1
4400
                        PIXEL02_1U
4401
                        PIXEL10_C
4402
                        PIXEL11
4403
                        PIXEL12_C
4404
                        if (Diff(w[8], w[4]))
4405
                        {
4406
                            PIXEL20_1M
4407
                        }
4408
                        else
4409
                        {
4410
                            PIXEL20_2
4411
                        }
4412
                        PIXEL21_C
4413
                        if (Diff(w[6], w[8]))
4414
                        {
4415
                            PIXEL22_1M
4416
                        }
4417
                        else
4418
                        {
4419
                            PIXEL22_2
4420
                        }
4421
                        break;
4422
                    }
4423
                case 202:
4424
                    {
4425
                        if (Diff(w[4], w[2]))
4426
                        {
4427
                            PIXEL00_1M
4428
                        }
4429
                        else
4430
                        {
4431
                            PIXEL00_2
4432
                        }
4433
                        PIXEL01_C
4434
                        PIXEL02_1M
4435
                        PIXEL10_C
4436
                        PIXEL11
4437
                        PIXEL12_1
4438
                        if (Diff(w[8], w[4]))
4439
                        {
4440
                            PIXEL20_1M
4441
                        }
4442
                        else
4443
                        {
4444
                            PIXEL20_2
4445
                        }
4446
                        PIXEL21_C
4447
                        PIXEL22_1R
4448
                        break;
4449
                    }
4450
                case 78:
4451
                    {
4452
                        if (Diff(w[4], w[2]))
4453
                        {
4454
                            PIXEL00_1M
4455
                        }
4456
                        else
4457
                        {
4458
                            PIXEL00_2
4459
                        }
4460
                        PIXEL01_C
4461
                        PIXEL02_1R
4462
                        PIXEL10_C
4463
                        PIXEL11
4464
                        PIXEL12_1
4465
                        if (Diff(w[8], w[4]))
4466
                        {
4467
                            PIXEL20_1M
4468
                        }
4469
                        else
4470
                        {
4471
                            PIXEL20_2
4472
                        }
4473
                        PIXEL21_C
4474
                        PIXEL22_1M
4475
                        break;
4476
                    }
4477
                case 154:
4478
                    {
4479
                        if (Diff(w[4], w[2]))
4480
                        {
4481
                            PIXEL00_1M
4482
                        }
4483
                        else
4484
                        {
4485
                            PIXEL00_2
4486
                        }
4487
                        PIXEL01_C
4488
                        if (Diff(w[2], w[6]))
4489
                        {
4490
                            PIXEL02_1M
4491
                        }
4492
                        else
4493
                        {
4494
                            PIXEL02_2
4495
                        }
4496
                        PIXEL10_C
4497
                        PIXEL11
4498
                        PIXEL12_C
4499
                        PIXEL20_1M
4500
                        PIXEL21_1
4501
                        PIXEL22_1D
4502
                        break;
4503
                    }
4504
                case 114:
4505
                    {
4506
                        PIXEL00_1M
4507
                        PIXEL01_C
4508
                        if (Diff(w[2], w[6]))
4509
                        {
4510
                            PIXEL02_1M
4511
                        }
4512
                        else
4513
                        {
4514
                            PIXEL02_2
4515
                        }
4516
                        PIXEL10_1
4517
                        PIXEL11
4518
                        PIXEL12_C
4519
                        PIXEL20_1L
4520
                        PIXEL21_C
4521
                        if (Diff(w[6], w[8]))
4522
                        {
4523
                            PIXEL22_1M
4524
                        }
4525
                        else
4526
                        {
4527
                            PIXEL22_2
4528
                        }
4529
                        break;
4530
                    }
4531
                case 89:
4532
                    {
4533
                        PIXEL00_1U
4534
                        PIXEL01_1
4535
                        PIXEL02_1M
4536
                        PIXEL10_C
4537
                        PIXEL11
4538
                        PIXEL12_C
4539
                        if (Diff(w[8], w[4]))
4540
                        {
4541
                            PIXEL20_1M
4542
                        }
4543
                        else
4544
                        {
4545
                            PIXEL20_2
4546
                        }
4547
                        PIXEL21_C
4548
                        if (Diff(w[6], w[8]))
4549
                        {
4550
                            PIXEL22_1M
4551
                        }
4552
                        else
4553
                        {
4554
                            PIXEL22_2
4555
                        }
4556
                        break;
4557
                    }
4558
                case 90:
4559
                    {
4560
                        if (Diff(w[4], w[2]))
4561
                        {
4562
                            PIXEL00_1M
4563
                        }
4564
                        else
4565
                        {
4566
                            PIXEL00_2
4567
                        }
4568
                        PIXEL01_C
4569
                        if (Diff(w[2], w[6]))
4570
                        {
4571
                            PIXEL02_1M
4572
                        }
4573
                        else
4574
                        {
4575
                            PIXEL02_2
4576
                        }
4577
                        PIXEL10_C
4578
                        PIXEL11
4579
                        PIXEL12_C
4580
                        if (Diff(w[8], w[4]))
4581
                        {
4582
                            PIXEL20_1M
4583
                        }
4584
                        else
4585
                        {
4586
                            PIXEL20_2
4587
                        }
4588
                        PIXEL21_C
4589
                        if (Diff(w[6], w[8]))
4590
                        {
4591
                            PIXEL22_1M
4592
                        }
4593
                        else
4594
                        {
4595
                            PIXEL22_2
4596
                        }
4597
                        break;
4598
                    }
4599
                case 55:
4600
                case 23:
4601
                    {
4602
                        if (Diff(w[2], w[6]))
4603
                        {
4604
                            PIXEL00_1L
4605
                            PIXEL01_C
4606
                            PIXEL02_C
4607
                            PIXEL12_C
4608
                        }
4609
                        else
4610
                        {
4611
                            PIXEL00_2
4612
                            PIXEL01_6
4613
                            PIXEL02_5
4614
                            PIXEL12_1
4615
                        }
4616
                        PIXEL10_1
4617
                        PIXEL11
4618
                        PIXEL20_2
4619
                        PIXEL21_1
4620
                        PIXEL22_1M
4621
                        break;
4622
                    }
4623
                case 182:
4624
                case 150:
4625
                    {
4626
                        if (Diff(w[2], w[6]))
4627
                        {
4628
                            PIXEL01_C
4629
                            PIXEL02_C
4630
                            PIXEL12_C
4631
                            PIXEL22_1D
4632
                        }
4633
                        else
4634
                        {
4635
                            PIXEL01_1
4636
                            PIXEL02_5
4637
                            PIXEL12_6
4638
                            PIXEL22_2
4639
                        }
4640
                        PIXEL00_1M
4641
                        PIXEL10_1
4642
                        PIXEL11
4643
                        PIXEL20_2
4644
                        PIXEL21_1
4645
                        break;
4646
                    }
4647
                case 213:
4648
                case 212:
4649
                    {
4650
                        if (Diff(w[6], w[8]))
4651
                        {
4652
                            PIXEL02_1U
4653
                            PIXEL12_C
4654
                            PIXEL21_C
4655
                            PIXEL22_C
4656
                        }
4657
                        else
4658
                        {
4659
                            PIXEL02_2
4660
                            PIXEL12_6
4661
                            PIXEL21_1
4662
                            PIXEL22_5
4663
                        }
4664
                        PIXEL00_2
4665
                        PIXEL01_1
4666
                        PIXEL10_1
4667
                        PIXEL11
4668
                        PIXEL20_1M
4669
                        break;
4670
                    }
4671
                case 241:
4672
                case 240:
4673
                    {
4674
                        if (Diff(w[6], w[8]))
4675
                        {
4676
                            PIXEL12_C
4677
                            PIXEL20_1L
4678
                            PIXEL21_C
4679
                            PIXEL22_C
4680
                        }
4681
                        else
4682
                        {
4683
                            PIXEL12_1
4684
                            PIXEL20_2
4685
                            PIXEL21_6
4686
                            PIXEL22_5
4687
                        }
4688
                        PIXEL00_2
4689
                        PIXEL01_1
4690
                        PIXEL02_1M
4691
                        PIXEL10_1
4692
                        PIXEL11
4693
                        break;
4694
                    }
4695
                case 236:
4696
                case 232:
4697
                    {
4698
                        if (Diff(w[8], w[4]))
4699
                        {
4700
                            PIXEL10_C
4701
                            PIXEL20_C
4702
                            PIXEL21_C
4703
                            PIXEL22_1R
4704
                        }
4705
                        else
4706
                        {
4707
                            PIXEL10_1
4708
                            PIXEL20_5
4709
                            PIXEL21_6
4710
                            PIXEL22_2
4711
                        }
4712
                        PIXEL00_1M
4713
                        PIXEL01_1
4714
                        PIXEL02_2
4715
                        PIXEL11
4716
                        PIXEL12_1
4717
                        break;
4718
                    }
4719
                case 109:
4720
                case 105:
4721
                    {
4722
                        if (Diff(w[8], w[4]))
4723
                        {
4724
                            PIXEL00_1U
4725
                            PIXEL10_C
4726
                            PIXEL20_C
4727
                            PIXEL21_C
4728
                        }
4729
                        else
4730
                        {
4731
                            PIXEL00_2
4732
                            PIXEL10_6
4733
                            PIXEL20_5
4734
                            PIXEL21_1
4735
                        }
4736
                        PIXEL01_1
4737
                        PIXEL02_2
4738
                        PIXEL11
4739
                        PIXEL12_1
4740
                        PIXEL22_1M
4741
                        break;
4742
                    }
4743
                case 171:
4744
                case 43:
4745
                    {
4746
                        if (Diff(w[4], w[2]))
4747
                        {
4748
                            PIXEL00_C
4749
                            PIXEL01_C
4750
                            PIXEL10_C
4751
                            PIXEL20_1D
4752
                        }
4753
                        else
4754
                        {
4755
                            PIXEL00_5
4756
                            PIXEL01_1
4757
                            PIXEL10_6
4758
                            PIXEL20_2
4759
                        }
4760
                        PIXEL02_1M
4761
                        PIXEL11
4762
                        PIXEL12_1
4763
                        PIXEL21_1
4764
                        PIXEL22_2
4765
                        break;
4766
                    }
4767
                case 143:
4768
                case 15:
4769
                    {
4770
                        if (Diff(w[4], w[2]))
4771
                        {
4772
                            PIXEL00_C
4773
                            PIXEL01_C
4774
                            PIXEL02_1R
4775
                            PIXEL10_C
4776
                        }
4777
                        else
4778
                        {
4779
                            PIXEL00_5
4780
                            PIXEL01_6
4781
                            PIXEL02_2
4782
                            PIXEL10_1
4783
                        }
4784
                        PIXEL11
4785
                        PIXEL12_1
4786
                        PIXEL20_1M
4787
                        PIXEL21_1
4788
                        PIXEL22_2
4789
                        break;
4790
                    }
4791
                case 124:
4792
                    {
4793
                        PIXEL00_1M
4794
                        PIXEL01_1
4795
                        PIXEL02_1U
4796
                        PIXEL11
4797
                        PIXEL12_C
4798
                        if (Diff(w[8], w[4]))
4799
                        {
4800
                            PIXEL10_C
4801
                            PIXEL20_C
4802
                            PIXEL21_C
4803
                        }
4804
                        else
4805
                        {
4806
                            PIXEL10_3
4807
                            PIXEL20_4
4808
                            PIXEL21_3
4809
                        }
4810
                        PIXEL22_1M
4811
                        break;
4812
                    }
4813
                case 203:
4814
                    {
4815
                        if (Diff(w[4], w[2]))
4816
                        {
4817
                            PIXEL00_C
4818
                            PIXEL01_C
4819
                            PIXEL10_C
4820
                        }
4821
                        else
4822
                        {
4823
                            PIXEL00_4
4824
                            PIXEL01_3
4825
                            PIXEL10_3
4826
                        }
4827
                        PIXEL02_1M
4828
                        PIXEL11
4829
                        PIXEL12_1
4830
                        PIXEL20_1M
4831
                        PIXEL21_C
4832
                        PIXEL22_1R
4833
                        break;
4834
                    }
4835
                case 62:
4836
                    {
4837
                        PIXEL00_1M
4838
                        if (Diff(w[2], w[6]))
4839
                        {
4840
                            PIXEL01_C
4841
                            PIXEL02_C
4842
                            PIXEL12_C
4843
                        }
4844
                        else
4845
                        {
4846
                            PIXEL01_3
4847
                            PIXEL02_4
4848
                            PIXEL12_3
4849
                        }
4850
                        PIXEL10_C
4851
                        PIXEL11
4852
                        PIXEL20_1D
4853
                        PIXEL21_1
4854
                        PIXEL22_1M
4855
                        break;
4856
                    }
4857
                case 211:
4858
                    {
4859
                        PIXEL00_1L
4860
                        PIXEL01_C
4861
                        PIXEL02_1M
4862
                        PIXEL10_1
4863
                        PIXEL11
4864
                        PIXEL20_1M
4865
                        if (Diff(w[6], w[8]))
4866
                        {
4867
                            PIXEL12_C
4868
                            PIXEL21_C
4869
                            PIXEL22_C
4870
                        }
4871
                        else
4872
                        {
4873
                            PIXEL12_3
4874
                            PIXEL21_3
4875
                            PIXEL22_4
4876
                        }
4877
                        break;
4878
                    }
4879
                case 118:
4880
                    {
4881
                        PIXEL00_1M
4882
                        if (Diff(w[2], w[6]))
4883
                        {
4884
                            PIXEL01_C
4885
                            PIXEL02_C
4886
                            PIXEL12_C
4887
                        }
4888
                        else
4889
                        {
4890
                            PIXEL01_3
4891
                            PIXEL02_4
4892
                            PIXEL12_3
4893
                        }
4894
                        PIXEL10_1
4895
                        PIXEL11
4896
                        PIXEL20_1L
4897
                        PIXEL21_C
4898
                        PIXEL22_1M
4899
                        break;
4900
                    }
4901
                case 217:
4902
                    {
4903
                        PIXEL00_1U
4904
                        PIXEL01_1
4905
                        PIXEL02_1M
4906
                        PIXEL10_C
4907
                        PIXEL11
4908
                        PIXEL20_1M
4909
                        if (Diff(w[6], w[8]))
4910
                        {
4911
                            PIXEL12_C
4912
                            PIXEL21_C
4913
                            PIXEL22_C
4914
                        }
4915
                        else
4916
                        {
4917
                            PIXEL12_3
4918
                            PIXEL21_3
4919
                            PIXEL22_4
4920
                        }
4921
                        break;
4922
                    }
4923
                case 110:
4924
                    {
4925
                        PIXEL00_1M
4926
                        PIXEL01_C
4927
                        PIXEL02_1R
4928
                        PIXEL11
4929
                        PIXEL12_1
4930
                        if (Diff(w[8], w[4]))
4931
                        {
4932
                            PIXEL10_C
4933
                            PIXEL20_C
4934
                            PIXEL21_C
4935
                        }
4936
                        else
4937
                        {
4938
                            PIXEL10_3
4939
                            PIXEL20_4
4940
                            PIXEL21_3
4941
                        }
4942
                        PIXEL22_1M
4943
                        break;
4944
                    }
4945
                case 155:
4946
                    {
4947
                        if (Diff(w[4], w[2]))
4948
                        {
4949
                            PIXEL00_C
4950
                            PIXEL01_C
4951
                            PIXEL10_C
4952
                        }
4953
                        else
4954
                        {
4955
                            PIXEL00_4
4956
                            PIXEL01_3
4957
                            PIXEL10_3
4958
                        }
4959
                        PIXEL02_1M
4960
                        PIXEL11
4961
                        PIXEL12_C
4962
                        PIXEL20_1M
4963
                        PIXEL21_1
4964
                        PIXEL22_1D
4965
                        break;
4966
                    }
4967
                case 188:
4968
                    {
4969
                        PIXEL00_1M
4970
                        PIXEL01_1
4971
                        PIXEL02_1U
4972
                        PIXEL10_C
4973
                        PIXEL11
4974
                        PIXEL12_C
4975
                        PIXEL20_1D
4976
                        PIXEL21_1
4977
                        PIXEL22_1D
4978
                        break;
4979
                    }
4980
                case 185:
4981
                    {
4982
                        PIXEL00_1U
4983
                        PIXEL01_1
4984
                        PIXEL02_1M
4985
                        PIXEL10_C
4986
                        PIXEL11
4987
                        PIXEL12_C
4988
                        PIXEL20_1D
4989
                        PIXEL21_1
4990
                        PIXEL22_1D
4991
                        break;
4992
                    }
4993
                case 61:
4994
                    {
4995
                        PIXEL00_1U
4996
                        PIXEL01_1
4997
                        PIXEL02_1U
4998
                        PIXEL10_C
4999
                        PIXEL11
5000
                        PIXEL12_C
5001
                        PIXEL20_1D
5002
                        PIXEL21_1
5003
                        PIXEL22_1M
5004
                        break;
5005
                    }
5006
                case 157:
5007
                    {
5008
                        PIXEL00_1U
5009
                        PIXEL01_1
5010
                        PIXEL02_1U
5011
                        PIXEL10_C
5012
                        PIXEL11
5013
                        PIXEL12_C
5014
                        PIXEL20_1M
5015
                        PIXEL21_1
5016
                        PIXEL22_1D
5017
                        break;
5018
                    }
5019
                case 103:
5020
                    {
5021
                        PIXEL00_1L
5022
                        PIXEL01_C
5023
                        PIXEL02_1R
5024
                        PIXEL10_1
5025
                        PIXEL11
5026
                        PIXEL12_1
5027
                        PIXEL20_1L
5028
                        PIXEL21_C
5029
                        PIXEL22_1M
5030
                        break;
5031
                    }
5032
                case 227:
5033
                    {
5034
                        PIXEL00_1L
5035
                        PIXEL01_C
5036
                        PIXEL02_1M
5037
                        PIXEL10_1
5038
                        PIXEL11
5039
                        PIXEL12_1
5040
                        PIXEL20_1L
5041
                        PIXEL21_C
5042
                        PIXEL22_1R
5043
                        break;
5044
                    }
5045
                case 230:
5046
                    {
5047
                        PIXEL00_1M
5048
                        PIXEL01_C
5049
                        PIXEL02_1R
5050
                        PIXEL10_1
5051
                        PIXEL11
5052
                        PIXEL12_1
5053
                        PIXEL20_1L
5054
                        PIXEL21_C
5055
                        PIXEL22_1R
5056
                        break;
5057
                    }
5058
                case 199:
5059
                    {
5060
                        PIXEL00_1L
5061
                        PIXEL01_C
5062
                        PIXEL02_1R
5063
                        PIXEL10_1
5064
                        PIXEL11
5065
                        PIXEL12_1
5066
                        PIXEL20_1M
5067
                        PIXEL21_C
5068
                        PIXEL22_1R
5069
                        break;
5070
                    }
5071
                case 220:
5072
                    {
5073
                        PIXEL00_1M
5074
                        PIXEL01_1
5075
                        PIXEL02_1U
5076
                        PIXEL10_C
5077
                        PIXEL11
5078
                        if (Diff(w[8], w[4]))
5079
                        {
5080
                            PIXEL20_1M
5081
                        }
5082
                        else
5083
                        {
5084
                            PIXEL20_2
5085
                        }
5086
                        if (Diff(w[6], w[8]))
5087
                        {
5088
                            PIXEL12_C
5089
                            PIXEL21_C
5090
                            PIXEL22_C
5091
                        }
5092
                        else
5093
                        {
5094
                            PIXEL12_3
5095
                            PIXEL21_3
5096
                            PIXEL22_4
5097
                        }
5098
                        break;
5099
                    }
5100
                case 158:
5101
                    {
5102
                        if (Diff(w[4], w[2]))
5103
                        {
5104
                            PIXEL00_1M
5105
                        }
5106
                        else
5107
                        {
5108
                            PIXEL00_2
5109
                        }
5110
                        if (Diff(w[2], w[6]))
5111
                        {
5112
                            PIXEL01_C
5113
                            PIXEL02_C
5114
                            PIXEL12_C
5115
                        }
5116
                        else
5117
                        {
5118
                            PIXEL01_3
5119
                            PIXEL02_4
5120
                            PIXEL12_3
5121
                        }
5122
                        PIXEL10_C
5123
                        PIXEL11
5124
                        PIXEL20_1M
5125
                        PIXEL21_1
5126
                        PIXEL22_1D
5127
                        break;
5128
                    }
5129
                case 234:
5130
                    {
5131
                        if (Diff(w[4], w[2]))
5132
                        {
5133
                            PIXEL00_1M
5134
                        }
5135
                        else
5136
                        {
5137
                            PIXEL00_2
5138
                        }
5139
                        PIXEL01_C
5140
                        PIXEL02_1M
5141
                        PIXEL11
5142
                        PIXEL12_1
5143
                        if (Diff(w[8], w[4]))
5144
                        {
5145
                            PIXEL10_C
5146
                            PIXEL20_C
5147
                            PIXEL21_C
5148
                        }
5149
                        else
5150
                        {
5151
                            PIXEL10_3
5152
                            PIXEL20_4
5153
                            PIXEL21_3
5154
                        }
5155
                        PIXEL22_1R
5156
                        break;
5157
                    }
5158
                case 242:
5159
                    {
5160
                        PIXEL00_1M
5161
                        PIXEL01_C
5162
                        if (Diff(w[2], w[6]))
5163
                        {
5164
                            PIXEL02_1M
5165
                        }
5166
                        else
5167
                        {
5168
                            PIXEL02_2
5169
                        }
5170
                        PIXEL10_1
5171
                        PIXEL11
5172
                        PIXEL20_1L
5173
                        if (Diff(w[6], w[8]))
5174
                        {
5175
                            PIXEL12_C
5176
                            PIXEL21_C
5177
                            PIXEL22_C
5178
                        }
5179
                        else
5180
                        {
5181
                            PIXEL12_3
5182
                            PIXEL21_3
5183
                            PIXEL22_4
5184
                        }
5185
                        break;
5186
                    }
5187
                case 59:
5188
                    {
5189
                        if (Diff(w[4], w[2]))
5190
                        {
5191
                            PIXEL00_C
5192
                            PIXEL01_C
5193
                            PIXEL10_C
5194
                        }
5195
                        else
5196
                        {
5197
                            PIXEL00_4
5198
                            PIXEL01_3
5199
                            PIXEL10_3
5200
                        }
5201
                        if (Diff(w[2], w[6]))
5202
                        {
5203
                            PIXEL02_1M
5204
                        }
5205
                        else
5206
                        {
5207
                            PIXEL02_2
5208
                        }
5209
                        PIXEL11
5210
                        PIXEL12_C
5211
                        PIXEL20_1D
5212
                        PIXEL21_1
5213
                        PIXEL22_1M
5214
                        break;
5215
                    }
5216
                case 121:
5217
                    {
5218
                        PIXEL00_1U
5219
                        PIXEL01_1
5220
                        PIXEL02_1M
5221
                        PIXEL11
5222
                        PIXEL12_C
5223
                        if (Diff(w[8], w[4]))
5224
                        {
5225
                            PIXEL10_C
5226
                            PIXEL20_C
5227
                            PIXEL21_C
5228
                        }
5229
                        else
5230
                        {
5231
                            PIXEL10_3
5232
                            PIXEL20_4
5233
                            PIXEL21_3
5234
                        }
5235
                        if (Diff(w[6], w[8]))
5236
                        {
5237
                            PIXEL22_1M
5238
                        }
5239
                        else
5240
                        {
5241
                            PIXEL22_2
5242
                        }
5243
                        break;
5244
                    }
5245
                case 87:
5246
                    {
5247
                        PIXEL00_1L
5248
                        if (Diff(w[2], w[6]))
5249
                        {
5250
                            PIXEL01_C
5251
                            PIXEL02_C
5252
                            PIXEL12_C
5253
                        }
5254
                        else
5255
                        {
5256
                            PIXEL01_3
5257
                            PIXEL02_4
5258
                            PIXEL12_3
5259
                        }
5260
                        PIXEL10_1
5261
                        PIXEL11
5262
                        PIXEL20_1M
5263
                        PIXEL21_C
5264
                        if (Diff(w[6], w[8]))
5265
                        {
5266
                            PIXEL22_1M
5267
                        }
5268
                        else
5269
                        {
5270
                            PIXEL22_2
5271
                        }
5272
                        break;
5273
                    }
5274
                case 79:
5275
                    {
5276
                        if (Diff(w[4], w[2]))
5277
                        {
5278
                            PIXEL00_C
5279
                            PIXEL01_C
5280
                            PIXEL10_C
5281
                        }
5282
                        else
5283
                        {
5284
                            PIXEL00_4
5285
                            PIXEL01_3
5286
                            PIXEL10_3
5287
                        }
5288
                        PIXEL02_1R
5289
                        PIXEL11
5290
                        PIXEL12_1
5291
                        if (Diff(w[8], w[4]))
5292
                        {
5293
                            PIXEL20_1M
5294
                        }
5295
                        else
5296
                        {
5297
                            PIXEL20_2
5298
                        }
5299
                        PIXEL21_C
5300
                        PIXEL22_1M
5301
                        break;
5302
                    }
5303
                case 122:
5304
                    {
5305
                        if (Diff(w[4], w[2]))
5306
                        {
5307
                            PIXEL00_1M
5308
                        }
5309
                        else
5310
                        {
5311
                            PIXEL00_2
5312
                        }
5313
                        PIXEL01_C
5314
                        if (Diff(w[2], w[6]))
5315
                        {
5316
                            PIXEL02_1M
5317
                        }
5318
                        else
5319
                        {
5320
                            PIXEL02_2
5321
                        }
5322
                        PIXEL11
5323
                        PIXEL12_C
5324
                        if (Diff(w[8], w[4]))
5325
                        {
5326
                            PIXEL10_C
5327
                            PIXEL20_C
5328
                            PIXEL21_C
5329
                        }
5330
                        else
5331
                        {
5332
                            PIXEL10_3
5333
                            PIXEL20_4
5334
                            PIXEL21_3
5335
                        }
5336
                        if (Diff(w[6], w[8]))
5337
                        {
5338
                            PIXEL22_1M
5339
                        }
5340
                        else
5341
                        {
5342
                            PIXEL22_2
5343
                        }
5344
                        break;
5345
                    }
5346
                case 94:
5347
                    {
5348
                        if (Diff(w[4], w[2]))
5349
                        {
5350
                            PIXEL00_1M
5351
                        }
5352
                        else
5353
                        {
5354
                            PIXEL00_2
5355
                        }
5356
                        if (Diff(w[2], w[6]))
5357
                        {
5358
                            PIXEL01_C
5359
                            PIXEL02_C
5360
                            PIXEL12_C
5361
                        }
5362
                        else
5363
                        {
5364
                            PIXEL01_3
5365
                            PIXEL02_4
5366
                            PIXEL12_3
5367
                        }
5368
                        PIXEL10_C
5369
                        PIXEL11
5370
                        if (Diff(w[8], w[4]))
5371
                        {
5372
                            PIXEL20_1M
5373
                        }
5374
                        else
5375
                        {
5376
                            PIXEL20_2
5377
                        }
5378
                        PIXEL21_C
5379
                        if (Diff(w[6], w[8]))
5380
                        {
5381
                            PIXEL22_1M
5382
                        }
5383
                        else
5384
                        {
5385
                            PIXEL22_2
5386
                        }
5387
                        break;
5388
                    }
5389
                case 218:
5390
                    {
5391
                        if (Diff(w[4], w[2]))
5392
                        {
5393
                            PIXEL00_1M
5394
                        }
5395
                        else
5396
                        {
5397
                            PIXEL00_2
5398
                        }
5399
                        PIXEL01_C
5400
                        if (Diff(w[2], w[6]))
5401
                        {
5402
                            PIXEL02_1M
5403
                        }
5404
                        else
5405
                        {
5406
                            PIXEL02_2
5407
                        }
5408
                        PIXEL10_C
5409
                        PIXEL11
5410
                        if (Diff(w[8], w[4]))
5411
                        {
5412
                            PIXEL20_1M
5413
                        }
5414
                        else
5415
                        {
5416
                            PIXEL20_2
5417
                        }
5418
                        if (Diff(w[6], w[8]))
5419
                        {
5420
                            PIXEL12_C
5421
                            PIXEL21_C
5422
                            PIXEL22_C
5423
                        }
5424
                        else
5425
                        {
5426
                            PIXEL12_3
5427
                            PIXEL21_3
5428
                            PIXEL22_4
5429
                        }
5430
                        break;
5431
                    }
5432
                case 91:
5433
                    {
5434
                        if (Diff(w[4], w[2]))
5435
                        {
5436
                            PIXEL00_C
5437
                            PIXEL01_C
5438
                            PIXEL10_C
5439
                        }
5440
                        else
5441
                        {
5442
                            PIXEL00_4
5443
                            PIXEL01_3
5444
                            PIXEL10_3
5445
                        }
5446
                        if (Diff(w[2], w[6]))
5447
                        {
5448
                            PIXEL02_1M
5449
                        }
5450
                        else
5451
                        {
5452
                            PIXEL02_2
5453
                        }
5454
                        PIXEL11
5455
                        PIXEL12_C
5456
                        if (Diff(w[8], w[4]))
5457
                        {
5458
                            PIXEL20_1M
5459
                        }
5460
                        else
5461
                        {
5462
                            PIXEL20_2
5463
                        }
5464
                        PIXEL21_C
5465
                        if (Diff(w[6], w[8]))
5466
                        {
5467
                            PIXEL22_1M
5468
                        }
5469
                        else
5470
                        {
5471
                            PIXEL22_2
5472
                        }
5473
                        break;
5474
                    }
5475
                case 229:
5476
                    {
5477
                        PIXEL00_2
5478
                        PIXEL01_1
5479
                        PIXEL02_2
5480
                        PIXEL10_1
5481
                        PIXEL11
5482
                        PIXEL12_1
5483
                        PIXEL20_1L
5484
                        PIXEL21_C
5485
                        PIXEL22_1R
5486
                        break;
5487
                    }
5488
                case 167:
5489
                    {
5490
                        PIXEL00_1L
5491
                        PIXEL01_C
5492
                        PIXEL02_1R
5493
                        PIXEL10_1
5494
                        PIXEL11
5495
                        PIXEL12_1
5496
                        PIXEL20_2
5497
                        PIXEL21_1
5498
                        PIXEL22_2
5499
                        break;
5500
                    }
5501
                case 173:
5502
                    {
5503
                        PIXEL00_1U
5504
                        PIXEL01_1
5505
                        PIXEL02_2
5506
                        PIXEL10_C
5507
                        PIXEL11
5508
                        PIXEL12_1
5509
                        PIXEL20_1D
5510
                        PIXEL21_1
5511
                        PIXEL22_2
5512
                        break;
5513
                    }
5514
                case 181:
5515
                    {
5516
                        PIXEL00_2
5517
                        PIXEL01_1
5518
                        PIXEL02_1U
5519
                        PIXEL10_1
5520
                        PIXEL11
5521
                        PIXEL12_C
5522
                        PIXEL20_2
5523
                        PIXEL21_1
5524
                        PIXEL22_1D
5525
                        break;
5526
                    }
5527
                case 186:
5528
                    {
5529
                        if (Diff(w[4], w[2]))
5530
                        {
5531
                            PIXEL00_1M
5532
                        }
5533
                        else
5534
                        {
5535
                            PIXEL00_2
5536
                        }
5537
                        PIXEL01_C
5538
                        if (Diff(w[2], w[6]))
5539
                        {
5540
                            PIXEL02_1M
5541
                        }
5542
                        else
5543
                        {
5544
                            PIXEL02_2
5545
                        }
5546
                        PIXEL10_C
5547
                        PIXEL11
5548
                        PIXEL12_C
5549
                        PIXEL20_1D
5550
                        PIXEL21_1
5551
                        PIXEL22_1D
5552
                        break;
5553
                    }
5554
                case 115:
5555
                    {
5556
                        PIXEL00_1L
5557
                        PIXEL01_C
5558
                        if (Diff(w[2], w[6]))
5559
                        {
5560
                            PIXEL02_1M
5561
                        }
5562
                        else
5563
                        {
5564
                            PIXEL02_2
5565
                        }
5566
                        PIXEL10_1
5567
                        PIXEL11
5568
                        PIXEL12_C
5569
                        PIXEL20_1L
5570
                        PIXEL21_C
5571
                        if (Diff(w[6], w[8]))
5572
                        {
5573
                            PIXEL22_1M
5574
                        }
5575
                        else
5576
                        {
5577
                            PIXEL22_2
5578
                        }
5579
                        break;
5580
                    }
5581
                case 93:
5582
                    {
5583
                        PIXEL00_1U
5584
                        PIXEL01_1
5585
                        PIXEL02_1U
5586
                        PIXEL10_C
5587
                        PIXEL11
5588
                        PIXEL12_C
5589
                        if (Diff(w[8], w[4]))
5590
                        {
5591
                            PIXEL20_1M
5592
                        }
5593
                        else
5594
                        {
5595
                            PIXEL20_2
5596
                        }
5597
                        PIXEL21_C
5598
                        if (Diff(w[6], w[8]))
5599
                        {
5600
                            PIXEL22_1M
5601
                        }
5602
                        else
5603
                        {
5604
                            PIXEL22_2
5605
                        }
5606
                        break;
5607
                    }
5608
                case 206:
5609
                    {
5610
                        if (Diff(w[4], w[2]))
5611
                        {
5612
                            PIXEL00_1M
5613
                        }
5614
                        else
5615
                        {
5616
                            PIXEL00_2
5617
                        }
5618
                        PIXEL01_C
5619
                        PIXEL02_1R
5620
                        PIXEL10_C
5621
                        PIXEL11
5622
                        PIXEL12_1
5623
                        if (Diff(w[8], w[4]))
5624
                        {
5625
                            PIXEL20_1M
5626
                        }
5627
                        else
5628
                        {
5629
                            PIXEL20_2
5630
                        }
5631
                        PIXEL21_C
5632
                        PIXEL22_1R
5633
                        break;
5634
                    }
5635
                case 205:
5636
                case 201:
5637
                    {
5638
                        PIXEL00_1U
5639
                        PIXEL01_1
5640
                        PIXEL02_2
5641
                        PIXEL10_C
5642
                        PIXEL11
5643
                        PIXEL12_1
5644
                        if (Diff(w[8], w[4]))
5645
                        {
5646
                            PIXEL20_1M
5647
                        }
5648
                        else
5649
                        {
5650
                            PIXEL20_2
5651
                        }
5652
                        PIXEL21_C
5653
                        PIXEL22_1R
5654
                        break;
5655
                    }
5656
                case 174:
5657
                case 46:
5658
                    {
5659
                        if (Diff(w[4], w[2]))
5660
                        {
5661
                            PIXEL00_1M
5662
                        }
5663
                        else
5664
                        {
5665
                            PIXEL00_2
5666
                        }
5667
                        PIXEL01_C
5668
                        PIXEL02_1R
5669
                        PIXEL10_C
5670
                        PIXEL11
5671
                        PIXEL12_1
5672
                        PIXEL20_1D
5673
                        PIXEL21_1
5674
                        PIXEL22_2
5675
                        break;
5676
                    }
5677
                case 179:
5678
                case 147:
5679
                    {
5680
                        PIXEL00_1L
5681
                        PIXEL01_C
5682
                        if (Diff(w[2], w[6]))
5683
                        {
5684
                            PIXEL02_1M
5685
                        }
5686
                        else
5687
                        {
5688
                            PIXEL02_2
5689
                        }
5690
                        PIXEL10_1
5691
                        PIXEL11
5692
                        PIXEL12_C
5693
                        PIXEL20_2
5694
                        PIXEL21_1
5695
                        PIXEL22_1D
5696
                        break;
5697
                    }
5698
                case 117:
5699
                case 116:
5700
                    {
5701
                        PIXEL00_2
5702
                        PIXEL01_1
5703
                        PIXEL02_1U
5704
                        PIXEL10_1
5705
                        PIXEL11
5706
                        PIXEL12_C
5707
                        PIXEL20_1L
5708
                        PIXEL21_C
5709
                        if (Diff(w[6], w[8]))
5710
                        {
5711
                            PIXEL22_1M
5712
                        }
5713
                        else
5714
                        {
5715
                            PIXEL22_2
5716
                        }
5717
                        break;
5718
                    }
5719
                case 189:
5720
                    {
5721
                        PIXEL00_1U
5722
                        PIXEL01_1
5723
                        PIXEL02_1U
5724
                        PIXEL10_C
5725
                        PIXEL11
5726
                        PIXEL12_C
5727
                        PIXEL20_1D
5728
                        PIXEL21_1
5729
                        PIXEL22_1D
5730
                        break;
5731
                    }
5732
                case 231:
5733
                    {
5734
                        PIXEL00_1L
5735
                        PIXEL01_C
5736
                        PIXEL02_1R
5737
                        PIXEL10_1
5738
                        PIXEL11
5739
                        PIXEL12_1
5740
                        PIXEL20_1L
5741
                        PIXEL21_C
5742
                        PIXEL22_1R
5743
                        break;
5744
                    }
5745
                case 126:
5746
                    {
5747
                        PIXEL00_1M
5748
                        if (Diff(w[2], w[6]))
5749
                        {
5750
                            PIXEL01_C
5751
                            PIXEL02_C
5752
                            PIXEL12_C
5753
                        }
5754
                        else
5755
                        {
5756
                            PIXEL01_3
5757
                            PIXEL02_4
5758
                            PIXEL12_3
5759
                        }
5760
                        PIXEL11
5761
                        if (Diff(w[8], w[4]))
5762
                        {
5763
                            PIXEL10_C
5764
                            PIXEL20_C
5765
                            PIXEL21_C
5766
                        }
5767
                        else
5768
                        {
5769
                            PIXEL10_3
5770
                            PIXEL20_4
5771
                            PIXEL21_3
5772
                        }
5773
                        PIXEL22_1M
5774
                        break;
5775
                    }
5776
                case 219:
5777
                    {
5778
                        if (Diff(w[4], w[2]))
5779
                        {
5780
                            PIXEL00_C
5781
                            PIXEL01_C
5782
                            PIXEL10_C
5783
                        }
5784
                        else
5785
                        {
5786
                            PIXEL00_4
5787
                            PIXEL01_3
5788
                            PIXEL10_3
5789
                        }
5790
                        PIXEL02_1M
5791
                        PIXEL11
5792
                        PIXEL20_1M
5793
                        if (Diff(w[6], w[8]))
5794
                        {
5795
                            PIXEL12_C
5796
                            PIXEL21_C
5797
                            PIXEL22_C
5798
                        }
5799
                        else
5800
                        {
5801
                            PIXEL12_3
5802
                            PIXEL21_3
5803
                            PIXEL22_4
5804
                        }
5805
                        break;
5806
                    }
5807
                case 125:
5808
                    {
5809
                        if (Diff(w[8], w[4]))
5810
                        {
5811
                            PIXEL00_1U
5812
                            PIXEL10_C
5813
                            PIXEL20_C
5814
                            PIXEL21_C
5815
                        }
5816
                        else
5817
                        {
5818
                            PIXEL00_2
5819
                            PIXEL10_6
5820
                            PIXEL20_5
5821
                            PIXEL21_1
5822
                        }
5823
                        PIXEL01_1
5824
                        PIXEL02_1U
5825
                        PIXEL11
5826
                        PIXEL12_C
5827
                        PIXEL22_1M
5828
                        break;
5829
                    }
5830
                case 221:
5831
                    {
5832
                        if (Diff(w[6], w[8]))
5833
                        {
5834
                            PIXEL02_1U
5835
                            PIXEL12_C
5836
                            PIXEL21_C
5837
                            PIXEL22_C
5838
                        }
5839
                        else
5840
                        {
5841
                            PIXEL02_2
5842
                            PIXEL12_6
5843
                            PIXEL21_1
5844
                            PIXEL22_5
5845
                        }
5846
                        PIXEL00_1U
5847
                        PIXEL01_1
5848
                        PIXEL10_C
5849
                        PIXEL11
5850
                        PIXEL20_1M
5851
                        break;
5852
                    }
5853
                case 207:
5854
                    {
5855
                        if (Diff(w[4], w[2]))
5856
                        {
5857
                            PIXEL00_C
5858
                            PIXEL01_C
5859
                            PIXEL02_1R
5860
                            PIXEL10_C
5861
                        }
5862
                        else
5863
                        {
5864
                            PIXEL00_5
5865
                            PIXEL01_6
5866
                            PIXEL02_2
5867
                            PIXEL10_1
5868
                        }
5869
                        PIXEL11
5870
                        PIXEL12_1
5871
                        PIXEL20_1M
5872
                        PIXEL21_C
5873
                        PIXEL22_1R
5874
                        break;
5875
                    }
5876
                case 238:
5877
                    {
5878
                        if (Diff(w[8], w[4]))
5879
                        {
5880
                            PIXEL10_C
5881
                            PIXEL20_C
5882
                            PIXEL21_C
5883
                            PIXEL22_1R
5884
                        }
5885
                        else
5886
                        {
5887
                            PIXEL10_1
5888
                            PIXEL20_5
5889
                            PIXEL21_6
5890
                            PIXEL22_2
5891
                        }
5892
                        PIXEL00_1M
5893
                        PIXEL01_C
5894
                        PIXEL02_1R
5895
                        PIXEL11
5896
                        PIXEL12_1
5897
                        break;
5898
                    }
5899
                case 190:
5900
                    {
5901
                        if (Diff(w[2], w[6]))
5902
                        {
5903
                            PIXEL01_C
5904
                            PIXEL02_C
5905
                            PIXEL12_C
5906
                            PIXEL22_1D
5907
                        }
5908
                        else
5909
                        {
5910
                            PIXEL01_1
5911
                            PIXEL02_5
5912
                            PIXEL12_6
5913
                            PIXEL22_2
5914
                        }
5915
                        PIXEL00_1M
5916
                        PIXEL10_C
5917
                        PIXEL11
5918
                        PIXEL20_1D
5919
                        PIXEL21_1
5920
                        break;
5921
                    }
5922
                case 187:
5923
                    {
5924
                        if (Diff(w[4], w[2]))
5925
                        {
5926
                            PIXEL00_C
5927
                            PIXEL01_C
5928
                            PIXEL10_C
5929
                            PIXEL20_1D
5930
                        }
5931
                        else
5932
                        {
5933
                            PIXEL00_5
5934
                            PIXEL01_1
5935
                            PIXEL10_6
5936
                            PIXEL20_2
5937
                        }
5938
                        PIXEL02_1M
5939
                        PIXEL11
5940
                        PIXEL12_C
5941
                        PIXEL21_1
5942
                        PIXEL22_1D
5943
                        break;
5944
                    }
5945
                case 243:
5946
                    {
5947
                        if (Diff(w[6], w[8]))
5948
                        {
5949
                            PIXEL12_C
5950
                            PIXEL20_1L
5951
                            PIXEL21_C
5952
                            PIXEL22_C
5953
                        }
5954
                        else
5955
                        {
5956
                            PIXEL12_1
5957
                            PIXEL20_2
5958
                            PIXEL21_6
5959
                            PIXEL22_5
5960
                        }
5961
                        PIXEL00_1L
5962
                        PIXEL01_C
5963
                        PIXEL02_1M
5964
                        PIXEL10_1
5965
                        PIXEL11
5966
                        break;
5967
                    }
5968
                case 119:
5969
                    {
5970
                        if (Diff(w[2], w[6]))
5971
                        {
5972
                            PIXEL00_1L
5973
                            PIXEL01_C
5974
                            PIXEL02_C
5975
                            PIXEL12_C
5976
                        }
5977
                        else
5978
                        {
5979
                            PIXEL00_2
5980
                            PIXEL01_6
5981
                            PIXEL02_5
5982
                            PIXEL12_1
5983
                        }
5984
                        PIXEL10_1
5985
                        PIXEL11
5986
                        PIXEL20_1L
5987
                        PIXEL21_C
5988
                        PIXEL22_1M
5989
                        break;
5990
                    }
5991
                case 237:
5992
                case 233:
5993
                    {
5994
                        PIXEL00_1U
5995
                        PIXEL01_1
5996
                        PIXEL02_2
5997
                        PIXEL10_C
5998
                        PIXEL11
5999
                        PIXEL12_1
6000
                        if (Diff(w[8], w[4]))
6001
                        {
6002
                            PIXEL20_C
6003
                        }
6004
                        else
6005
                        {
6006
                            PIXEL20_2
6007
                        }
6008
                        PIXEL21_C
6009
                        PIXEL22_1R
6010
                        break;
6011
                    }
6012
                case 175:
6013
                case 47:
6014
                    {
6015
                        if (Diff(w[4], w[2]))
6016
                        {
6017
                            PIXEL00_C
6018
                        }
6019
                        else
6020
                        {
6021
                            PIXEL00_2
6022
                        }
6023
                        PIXEL01_C
6024
                        PIXEL02_1R
6025
                        PIXEL10_C
6026
                        PIXEL11
6027
                        PIXEL12_1
6028
                        PIXEL20_1D
6029
                        PIXEL21_1
6030
                        PIXEL22_2
6031
                        break;
6032
                    }
6033
                case 183:
6034
                case 151:
6035
                    {
6036
                        PIXEL00_1L
6037
                        PIXEL01_C
6038
                        if (Diff(w[2], w[6]))
6039
                        {
6040
                            PIXEL02_C
6041
                        }
6042
                        else
6043
                        {
6044
                            PIXEL02_2
6045
                        }
6046
                        PIXEL10_1
6047
                        PIXEL11
6048
                        PIXEL12_C
6049
                        PIXEL20_2
6050
                        PIXEL21_1
6051
                        PIXEL22_1D
6052
                        break;
6053
                    }
6054
                case 245:
6055
                case 244:
6056
                    {
6057
                        PIXEL00_2
6058
                        PIXEL01_1
6059
                        PIXEL02_1U
6060
                        PIXEL10_1
6061
                        PIXEL11
6062
                        PIXEL12_C
6063
                        PIXEL20_1L
6064
                        PIXEL21_C
6065
                        if (Diff(w[6], w[8]))
6066
                        {
6067
                            PIXEL22_C
6068
                        }
6069
                        else
6070
                        {
6071
                            PIXEL22_2
6072
                        }
6073
                        break;
6074
                    }
6075
                case 250:
6076
                    {
6077
                        PIXEL00_1M
6078
                        PIXEL01_C
6079
                        PIXEL02_1M
6080
                        PIXEL11
6081
                        if (Diff(w[8], w[4]))
6082
                        {
6083
                            PIXEL10_C
6084
                            PIXEL20_C
6085
                        }
6086
                        else
6087
                        {
6088
                            PIXEL10_3
6089
                            PIXEL20_4
6090
                        }
6091
                        PIXEL21_C
6092
                        if (Diff(w[6], w[8]))
6093
                        {
6094
                            PIXEL12_C
6095
                            PIXEL22_C
6096
                        }
6097
                        else
6098
                        {
6099
                            PIXEL12_3
6100
                            PIXEL22_4
6101
                        }
6102
                        break;
6103
                    }
6104
                case 123:
6105
                    {
6106
                        if (Diff(w[4], w[2]))
6107
                        {
6108
                            PIXEL00_C
6109
                            PIXEL01_C
6110
                        }
6111
                        else
6112
                        {
6113
                            PIXEL00_4
6114
                            PIXEL01_3
6115
                        }
6116
                        PIXEL02_1M
6117
                        PIXEL10_C
6118
                        PIXEL11
6119
                        PIXEL12_C
6120
                        if (Diff(w[8], w[4]))
6121
                        {
6122
                            PIXEL20_C
6123
                            PIXEL21_C
6124
                        }
6125
                        else
6126
                        {
6127
                            PIXEL20_4
6128
                            PIXEL21_3
6129
                        }
6130
                        PIXEL22_1M
6131
                        break;
6132
                    }
6133
                case 95:
6134
                    {
6135
                        if (Diff(w[4], w[2]))
6136
                        {
6137
                            PIXEL00_C
6138
                            PIXEL10_C
6139
                        }
6140
                        else
6141
                        {
6142
                            PIXEL00_4
6143
                            PIXEL10_3
6144
                        }
6145
                        PIXEL01_C
6146
                        if (Diff(w[2], w[6]))
6147
                        {
6148
                            PIXEL02_C
6149
                            PIXEL12_C
6150
                        }
6151
                        else
6152
                        {
6153
                            PIXEL02_4
6154
                            PIXEL12_3
6155
                        }
6156
                        PIXEL11
6157
                        PIXEL20_1M
6158
                        PIXEL21_C
6159
                        PIXEL22_1M
6160
                        break;
6161
                    }
6162
                case 222:
6163
                    {
6164
                        PIXEL00_1M
6165
                        if (Diff(w[2], w[6]))
6166
                        {
6167
                            PIXEL01_C
6168
                            PIXEL02_C
6169
                        }
6170
                        else
6171
                        {
6172
                            PIXEL01_3
6173
                            PIXEL02_4
6174
                        }
6175
                        PIXEL10_C
6176
                        PIXEL11
6177
                        PIXEL12_C
6178
                        PIXEL20_1M
6179
                        if (Diff(w[6], w[8]))
6180
                        {
6181
                            PIXEL21_C
6182
                            PIXEL22_C
6183
                        }
6184
                        else
6185
                        {
6186
                            PIXEL21_3
6187
                            PIXEL22_4
6188
                        }
6189
                        break;
6190
                    }
6191
                case 252:
6192
                    {
6193
                        PIXEL00_1M
6194
                        PIXEL01_1
6195
                        PIXEL02_1U
6196
                        PIXEL11
6197
                        PIXEL12_C
6198
                        if (Diff(w[8], w[4]))
6199
                        {
6200
                            PIXEL10_C
6201
                            PIXEL20_C
6202
                        }
6203
                        else
6204
                        {
6205
                            PIXEL10_3
6206
                            PIXEL20_4
6207
                        }
6208
                        PIXEL21_C
6209
                        if (Diff(w[6], w[8]))
6210
                        {
6211
                            PIXEL22_C
6212
                        }
6213
                        else
6214
                        {
6215
                            PIXEL22_2
6216
                        }
6217
                        break;
6218
                    }
6219
                case 249:
6220
                    {
6221
                        PIXEL00_1U
6222
                        PIXEL01_1
6223
                        PIXEL02_1M
6224
                        PIXEL10_C
6225
                        PIXEL11
6226
                        if (Diff(w[8], w[4]))
6227
                        {
6228
                            PIXEL20_C
6229
                        }
6230
                        else
6231
                        {
6232
                            PIXEL20_2
6233
                        }
6234
                        PIXEL21_C
6235
                        if (Diff(w[6], w[8]))
6236
                        {
6237
                            PIXEL12_C
6238
                            PIXEL22_C
6239
                        }
6240
                        else
6241
                        {
6242
                            PIXEL12_3
6243
                            PIXEL22_4
6244
                        }
6245
                        break;
6246
                    }
6247
                case 235:
6248
                    {
6249
                        if (Diff(w[4], w[2]))
6250
                        {
6251
                            PIXEL00_C
6252
                            PIXEL01_C
6253
                        }
6254
                        else
6255
                        {
6256
                            PIXEL00_4
6257
                            PIXEL01_3
6258
                        }
6259
                        PIXEL02_1M
6260
                        PIXEL10_C
6261
                        PIXEL11
6262
                        PIXEL12_1
6263
                        if (Diff(w[8], w[4]))
6264
                        {
6265
                            PIXEL20_C
6266
                        }
6267
                        else
6268
                        {
6269
                            PIXEL20_2
6270
                        }
6271
                        PIXEL21_C
6272
                        PIXEL22_1R
6273
                        break;
6274
                    }
6275
                case 111:
6276
                    {
6277
                        if (Diff(w[4], w[2]))
6278
                        {
6279
                            PIXEL00_C
6280
                        }
6281
                        else
6282
                        {
6283
                            PIXEL00_2
6284
                        }
6285
                        PIXEL01_C
6286
                        PIXEL02_1R
6287
                        PIXEL10_C
6288
                        PIXEL11
6289
                        PIXEL12_1
6290
                        if (Diff(w[8], w[4]))
6291
                        {
6292
                            PIXEL20_C
6293
                            PIXEL21_C
6294
                        }
6295
                        else
6296
                        {
6297
                            PIXEL20_4
6298
                            PIXEL21_3
6299
                        }
6300
                        PIXEL22_1M
6301
                        break;
6302
                    }
6303
                case 63:
6304
                    {
6305
                        if (Diff(w[4], w[2]))
6306
                        {
6307
                            PIXEL00_C
6308
                        }
6309
                        else
6310
                        {
6311
                            PIXEL00_2
6312
                        }
6313
                        PIXEL01_C
6314
                        if (Diff(w[2], w[6]))
6315
                        {
6316
                            PIXEL02_C
6317
                            PIXEL12_C
6318
                        }
6319
                        else
6320
                        {
6321
                            PIXEL02_4
6322
                            PIXEL12_3
6323
                        }
6324
                        PIXEL10_C
6325
                        PIXEL11
6326
                        PIXEL20_1D
6327
                        PIXEL21_1
6328
                        PIXEL22_1M
6329
                        break;
6330
                    }
6331
                case 159:
6332
                    {
6333
                        if (Diff(w[4], w[2]))
6334
                        {
6335
                            PIXEL00_C
6336
                            PIXEL10_C
6337
                        }
6338
                        else
6339
                        {
6340
                            PIXEL00_4
6341
                            PIXEL10_3
6342
                        }
6343
                        PIXEL01_C
6344
                        if (Diff(w[2], w[6]))
6345
                        {
6346
                            PIXEL02_C
6347
                        }
6348
                        else
6349
                        {
6350
                            PIXEL02_2
6351
                        }
6352
                        PIXEL11
6353
                        PIXEL12_C
6354
                        PIXEL20_1M
6355
                        PIXEL21_1
6356
                        PIXEL22_1D
6357
                        break;
6358
                    }
6359
                case 215:
6360
                    {
6361
                        PIXEL00_1L
6362
                        PIXEL01_C
6363
                        if (Diff(w[2], w[6]))
6364
                        {
6365
                            PIXEL02_C
6366
                        }
6367
                        else
6368
                        {
6369
                            PIXEL02_2
6370
                        }
6371
                        PIXEL10_1
6372
                        PIXEL11
6373
                        PIXEL12_C
6374
                        PIXEL20_1M
6375
                        if (Diff(w[6], w[8]))
6376
                        {
6377
                            PIXEL21_C
6378
                            PIXEL22_C
6379
                        }
6380
                        else
6381
                        {
6382
                            PIXEL21_3
6383
                            PIXEL22_4
6384
                        }
6385
                        break;
6386
                    }
6387
                case 246:
6388
                    {
6389
                        PIXEL00_1M
6390
                        if (Diff(w[2], w[6]))
6391
                        {
6392
                            PIXEL01_C
6393
                            PIXEL02_C
6394
                        }
6395
                        else
6396
                        {
6397
                            PIXEL01_3
6398
                            PIXEL02_4
6399
                        }
6400
                        PIXEL10_1
6401
                        PIXEL11
6402
                        PIXEL12_C
6403
                        PIXEL20_1L
6404
                        PIXEL21_C
6405
                        if (Diff(w[6], w[8]))
6406
                        {
6407
                            PIXEL22_C
6408
                        }
6409
                        else
6410
                        {
6411
                            PIXEL22_2
6412
                        }
6413
                        break;
6414
                    }
6415
                case 254:
6416
                    {
6417
                        PIXEL00_1M
6418
                        if (Diff(w[2], w[6]))
6419
                        {
6420
                            PIXEL01_C
6421
                            PIXEL02_C
6422
                        }
6423
                        else
6424
                        {
6425
                            PIXEL01_3
6426
                            PIXEL02_4
6427
                        }
6428
                        PIXEL11
6429
                        if (Diff(w[8], w[4]))
6430
                        {
6431
                            PIXEL10_C
6432
                            PIXEL20_C
6433
                        }
6434
                        else
6435
                        {
6436
                            PIXEL10_3
6437
                            PIXEL20_4
6438
                        }
6439
                        if (Diff(w[6], w[8]))
6440
                        {
6441
                            PIXEL12_C
6442
                            PIXEL21_C
6443
                            PIXEL22_C
6444
                        }
6445
                        else
6446
                        {
6447
                            PIXEL12_3
6448
                            PIXEL21_3
6449
                            PIXEL22_2
6450
                        }
6451
                        break;
6452
                    }
6453
                case 253:
6454
                    {
6455
                        PIXEL00_1U
6456
                        PIXEL01_1
6457
                        PIXEL02_1U
6458
                        PIXEL10_C
6459
                        PIXEL11
6460
                        PIXEL12_C
6461
                        if (Diff(w[8], w[4]))
6462
                        {
6463
                            PIXEL20_C
6464
                        }
6465
                        else
6466
                        {
6467
                            PIXEL20_2
6468
                        }
6469
                        PIXEL21_C
6470
                        if (Diff(w[6], w[8]))
6471
                        {
6472
                            PIXEL22_C
6473
                        }
6474
                        else
6475
                        {
6476
                            PIXEL22_2
6477
                        }
6478
                        break;
6479
                    }
6480
                case 251:
6481
                    {
6482
                        if (Diff(w[4], w[2]))
6483
                        {
6484
                            PIXEL00_C
6485
                            PIXEL01_C
6486
                        }
6487
                        else
6488
                        {
6489
                            PIXEL00_4
6490
                            PIXEL01_3
6491
                        }
6492
                        PIXEL02_1M
6493
                        PIXEL11
6494
                        if (Diff(w[8], w[4]))
6495
                        {
6496
                            PIXEL10_C
6497
                            PIXEL20_C
6498
                            PIXEL21_C
6499
                        }
6500
                        else
6501
                        {
6502
                            PIXEL10_3
6503
                            PIXEL20_2
6504
                            PIXEL21_3
6505
                        }
6506
                        if (Diff(w[6], w[8]))
6507
                        {
6508
                            PIXEL12_C
6509
                            PIXEL22_C
6510
                        }
6511
                        else
6512
                        {
6513
                            PIXEL12_3
6514
                            PIXEL22_4
6515
                        }
6516
                        break;
6517
                    }
6518
                case 239:
6519
                    {
6520
                        if (Diff(w[4], w[2]))
6521
                        {
6522
                            PIXEL00_C
6523
                        }
6524
                        else
6525
                        {
6526
                            PIXEL00_2
6527
                        }
6528
                        PIXEL01_C
6529
                        PIXEL02_1R
6530
                        PIXEL10_C
6531
                        PIXEL11
6532
                        PIXEL12_1
6533
                        if (Diff(w[8], w[4]))
6534
                        {
6535
                            PIXEL20_C
6536
                        }
6537
                        else
6538
                        {
6539
                            PIXEL20_2
6540
                        }
6541
                        PIXEL21_C
6542
                        PIXEL22_1R
6543
                        break;
6544
                    }
6545
                case 127:
6546
                    {
6547
                        if (Diff(w[4], w[2]))
6548
                        {
6549
                            PIXEL00_C
6550
                            PIXEL01_C
6551
                            PIXEL10_C
6552
                        }
6553
                        else
6554
                        {
6555
                            PIXEL00_2
6556
                            PIXEL01_3
6557
                            PIXEL10_3
6558
                        }
6559
                        if (Diff(w[2], w[6]))
6560
                        {
6561
                            PIXEL02_C
6562
                            PIXEL12_C
6563
                        }
6564
                        else
6565
                        {
6566
                            PIXEL02_4
6567
                            PIXEL12_3
6568
                        }
6569
                        PIXEL11
6570
                        if (Diff(w[8], w[4]))
6571
                        {
6572
                            PIXEL20_C
6573
                            PIXEL21_C
6574
                        }
6575
                        else
6576
                        {
6577
                            PIXEL20_4
6578
                            PIXEL21_3
6579
                        }
6580
                        PIXEL22_1M
6581
                        break;
6582
                    }
6583
                case 191:
6584
                    {
6585
                        if (Diff(w[4], w[2]))
6586
                        {
6587
                            PIXEL00_C
6588
                        }
6589
                        else
6590
                        {
6591
                            PIXEL00_2
6592
                        }
6593
                        PIXEL01_C
6594
                        if (Diff(w[2], w[6]))
6595
                        {
6596
                            PIXEL02_C
6597
                        }
6598
                        else
6599
                        {
6600
                            PIXEL02_2
6601
                        }
6602
                        PIXEL10_C
6603
                        PIXEL11
6604
                        PIXEL12_C
6605
                        PIXEL20_1D
6606
                        PIXEL21_1
6607
                        PIXEL22_1D
6608
                        break;
6609
                    }
6610
                case 223:
6611
                    {
6612
                        if (Diff(w[4], w[2]))
6613
                        {
6614
                            PIXEL00_C
6615
                            PIXEL10_C
6616
                        }
6617
                        else
6618
                        {
6619
                            PIXEL00_4
6620
                            PIXEL10_3
6621
                        }
6622
                        if (Diff(w[2], w[6]))
6623
                        {
6624
                            PIXEL01_C
6625
                            PIXEL02_C
6626
                            PIXEL12_C
6627
                        }
6628
                        else
6629
                        {
6630
                            PIXEL01_3
6631
                            PIXEL02_2
6632
                            PIXEL12_3
6633
                        }
6634
                        PIXEL11
6635
                        PIXEL20_1M
6636
                        if (Diff(w[6], w[8]))
6637
                        {
6638
                            PIXEL21_C
6639
                            PIXEL22_C
6640
                        }
6641
                        else
6642
                        {
6643
                            PIXEL21_3
6644
                            PIXEL22_4
6645
                        }
6646
                        break;
6647
                    }
6648
                case 247:
6649
                    {
6650
                        PIXEL00_1L
6651
                        PIXEL01_C
6652
                        if (Diff(w[2], w[6]))
6653
                        {
6654
                            PIXEL02_C
6655
                        }
6656
                        else
6657
                        {
6658
                            PIXEL02_2
6659
                        }
6660
                        PIXEL10_1
6661
                        PIXEL11
6662
                        PIXEL12_C
6663
                        PIXEL20_1L
6664
                        PIXEL21_C
6665
                        if (Diff(w[6], w[8]))
6666
                        {
6667
                            PIXEL22_C
6668
                        }
6669
                        else
6670
                        {
6671
                            PIXEL22_2
6672
                        }
6673
                        break;
6674
                    }
6675
                case 255:
6676
                    {
6677
                        if (Diff(w[4], w[2]))
6678
                        {
6679
                            PIXEL00_C
6680
                        }
6681
                        else
6682
                        {
6683
                            PIXEL00_2
6684
                        }
6685
                        PIXEL01_C
6686
                        if (Diff(w[2], w[6]))
6687
                        {
6688
                            PIXEL02_C
6689
                        }
6690
                        else
6691
                        {
6692
                            PIXEL02_2
6693
                        }
6694
                        PIXEL10_C
6695
                        PIXEL11
6696
                        PIXEL12_C
6697
                        if (Diff(w[8], w[4]))
6698
                        {
6699
                            PIXEL20_C
6700
                        }
6701
                        else
6702
                        {
6703
                            PIXEL20_2
6704
                        }
6705
                        PIXEL21_C
6706
                        if (Diff(w[6], w[8]))
6707
                        {
6708
                            PIXEL22_C
6709
                        }
6710
                        else
6711
                        {
6712
                            PIXEL22_2
6713
                        }
6714
                        break;
6715
                    }
6716
            }
6717
            sp++;
6718
            dp += 3;
6719
        }
6720
 
6721
        sRowP += srb;
6722
        sp = (uint32_t *) sRowP;
6723
 
6724
        dRowP += drb * 3;
6725
        dp = (uint32_t *) dRowP;
6726
    }
6727
}
6728
 
6729
HQX_API void HQX_CALLCONV hq3x_32 (uint32_t *src_pixels, uint32_t *dest_pixels, int src_width, int src_height)
6730
{
6731
    if (!is_hqx_initialized)
6732
        hqxInit ();
6733
 
6734
    hq3x_32_rb (src_pixels, src_width * 4, dest_pixels, src_width * 4 * 3, src_width, src_height);
6735
}
6736
 
6737
#undef PIXEL00_1M
6738
#undef PIXEL00_1U
6739
#undef PIXEL00_1L
6740
#undef PIXEL00_2
6741
#undef PIXEL00_4
6742
#undef PIXEL00_5
6743
#undef PIXEL00_C
6744
#undef PIXEL01_1
6745
#undef PIXEL01_3
6746
#undef PIXEL01_6
6747
#undef PIXEL01_C
6748
#undef PIXEL02_1M
6749
#undef PIXEL02_1U
6750
#undef PIXEL02_1R
6751
#undef PIXEL02_2
6752
#undef PIXEL02_4
6753
#undef PIXEL02_5
6754
#undef PIXEL02_C
6755
#undef PIXEL10_1
6756
#undef PIXEL10_3
6757
#undef PIXEL10_6
6758
#undef PIXEL10_C
6759
#undef PIXEL11
6760
#undef PIXEL12_1
6761
#undef PIXEL12_3
6762
#undef PIXEL12_6
6763
#undef PIXEL12_C
6764
#undef PIXEL20_1M
6765
#undef PIXEL20_1D
6766
#undef PIXEL20_1L
6767
#undef PIXEL20_2
6768
#undef PIXEL20_4
6769
#undef PIXEL20_5
6770
#undef PIXEL20_C
6771
#undef PIXEL21_1
6772
#undef PIXEL21_3
6773
#undef PIXEL21_6
6774
#undef PIXEL21_C
6775
#undef PIXEL22_1M
6776
#undef PIXEL22_1D
6777
#undef PIXEL22_1R
6778
#undef PIXEL22_2
6779
#undef PIXEL22_4
6780
#undef PIXEL22_5
6781
#undef PIXEL22_C
6782
#endif // WANT_HQ3X
6783
 
6784
 
6785
//////////
6786
// HQ4X //
6787
//////////
6788
 
6789
#ifdef WANT_HQ4X
6790
#define PIXEL00_0     *dp = w[5];
6791
#define PIXEL00_11    Interp1(dp, w[5], w[4]);
6792
#define PIXEL00_12    Interp1(dp, w[5], w[2]);
6793
#define PIXEL00_20    Interp2(dp, w[5], w[2], w[4]);
6794
#define PIXEL00_50    Interp5(dp, w[2], w[4]);
6795
#define PIXEL00_80    Interp8(dp, w[5], w[1]);
6796
#define PIXEL00_81    Interp8(dp, w[5], w[4]);
6797
#define PIXEL00_82    Interp8(dp, w[5], w[2]);
6798
#define PIXEL01_0     *(dp+1) = w[5];
6799
#define PIXEL01_10    Interp1(dp+1, w[5], w[1]);
6800
#define PIXEL01_12    Interp1(dp+1, w[5], w[2]);
6801
#define PIXEL01_14    Interp1(dp+1, w[2], w[5]);
6802
#define PIXEL01_21    Interp2(dp+1, w[2], w[5], w[4]);
6803
#define PIXEL01_31    Interp3(dp+1, w[5], w[4]);
6804
#define PIXEL01_50    Interp5(dp+1, w[2], w[5]);
6805
#define PIXEL01_60    Interp6(dp+1, w[5], w[2], w[4]);
6806
#define PIXEL01_61    Interp6(dp+1, w[5], w[2], w[1]);
6807
#define PIXEL01_82    Interp8(dp+1, w[5], w[2]);
6808
#define PIXEL01_83    Interp8(dp+1, w[2], w[4]);
6809
#define PIXEL02_0     *(dp+2) = w[5];
6810
#define PIXEL02_10    Interp1(dp+2, w[5], w[3]);
6811
#define PIXEL02_11    Interp1(dp+2, w[5], w[2]);
6812
#define PIXEL02_13    Interp1(dp+2, w[2], w[5]);
6813
#define PIXEL02_21    Interp2(dp+2, w[2], w[5], w[6]);
6814
#define PIXEL02_32    Interp3(dp+2, w[5], w[6]);
6815
#define PIXEL02_50    Interp5(dp+2, w[2], w[5]);
6816
#define PIXEL02_60    Interp6(dp+2, w[5], w[2], w[6]);
6817
#define PIXEL02_61    Interp6(dp+2, w[5], w[2], w[3]);
6818
#define PIXEL02_81    Interp8(dp+2, w[5], w[2]);
6819
#define PIXEL02_83    Interp8(dp+2, w[2], w[6]);
6820
#define PIXEL03_0     *(dp+3) = w[5];
6821
#define PIXEL03_11    Interp1(dp+3, w[5], w[2]);
6822
#define PIXEL03_12    Interp1(dp+3, w[5], w[6]);
6823
#define PIXEL03_20    Interp2(dp+3, w[5], w[2], w[6]);
6824
#define PIXEL03_50    Interp5(dp+3, w[2], w[6]);
6825
#define PIXEL03_80    Interp8(dp+3, w[5], w[3]);
6826
#define PIXEL03_81    Interp8(dp+3, w[5], w[2]);
6827
#define PIXEL03_82    Interp8(dp+3, w[5], w[6]);
6828
#define PIXEL10_0     *(dp+dpL) = w[5];
6829
#define PIXEL10_10    Interp1(dp+dpL, w[5], w[1]);
6830
#define PIXEL10_11    Interp1(dp+dpL, w[5], w[4]);
6831
#define PIXEL10_13    Interp1(dp+dpL, w[4], w[5]);
6832
#define PIXEL10_21    Interp2(dp+dpL, w[4], w[5], w[2]);
6833
#define PIXEL10_32    Interp3(dp+dpL, w[5], w[2]);
6834
#define PIXEL10_50    Interp5(dp+dpL, w[4], w[5]);
6835
#define PIXEL10_60    Interp6(dp+dpL, w[5], w[4], w[2]);
6836
#define PIXEL10_61    Interp6(dp+dpL, w[5], w[4], w[1]);
6837
#define PIXEL10_81    Interp8(dp+dpL, w[5], w[4]);
6838
#define PIXEL10_83    Interp8(dp+dpL, w[4], w[2]);
6839
#define PIXEL11_0     *(dp+dpL+1) = w[5];
6840
#define PIXEL11_30    Interp3(dp+dpL+1, w[5], w[1]);
6841
#define PIXEL11_31    Interp3(dp+dpL+1, w[5], w[4]);
6842
#define PIXEL11_32    Interp3(dp+dpL+1, w[5], w[2]);
6843
#define PIXEL11_70    Interp7(dp+dpL+1, w[5], w[4], w[2]);
6844
#define PIXEL12_0     *(dp+dpL+2) = w[5];
6845
#define PIXEL12_30    Interp3(dp+dpL+2, w[5], w[3]);
6846
#define PIXEL12_31    Interp3(dp+dpL+2, w[5], w[2]);
6847
#define PIXEL12_32    Interp3(dp+dpL+2, w[5], w[6]);
6848
#define PIXEL12_70    Interp7(dp+dpL+2, w[5], w[6], w[2]);
6849
#define PIXEL13_0     *(dp+dpL+3) = w[5];
6850
#define PIXEL13_10    Interp1(dp+dpL+3, w[5], w[3]);
6851
#define PIXEL13_12    Interp1(dp+dpL+3, w[5], w[6]);
6852
#define PIXEL13_14    Interp1(dp+dpL+3, w[6], w[5]);
6853
#define PIXEL13_21    Interp2(dp+dpL+3, w[6], w[5], w[2]);
6854
#define PIXEL13_31    Interp3(dp+dpL+3, w[5], w[2]);
6855
#define PIXEL13_50    Interp5(dp+dpL+3, w[6], w[5]);
6856
#define PIXEL13_60    Interp6(dp+dpL+3, w[5], w[6], w[2]);
6857
#define PIXEL13_61    Interp6(dp+dpL+3, w[5], w[6], w[3]);
6858
#define PIXEL13_82    Interp8(dp+dpL+3, w[5], w[6]);
6859
#define PIXEL13_83    Interp8(dp+dpL+3, w[6], w[2]);
6860
#define PIXEL20_0     *(dp+dpL+dpL) = w[5];
6861
#define PIXEL20_10    Interp1(dp+dpL+dpL, w[5], w[7]);
6862
#define PIXEL20_12    Interp1(dp+dpL+dpL, w[5], w[4]);
6863
#define PIXEL20_14    Interp1(dp+dpL+dpL, w[4], w[5]);
6864
#define PIXEL20_21    Interp2(dp+dpL+dpL, w[4], w[5], w[8]);
6865
#define PIXEL20_31    Interp3(dp+dpL+dpL, w[5], w[8]);
6866
#define PIXEL20_50    Interp5(dp+dpL+dpL, w[4], w[5]);
6867
#define PIXEL20_60    Interp6(dp+dpL+dpL, w[5], w[4], w[8]);
6868
#define PIXEL20_61    Interp6(dp+dpL+dpL, w[5], w[4], w[7]);
6869
#define PIXEL20_82    Interp8(dp+dpL+dpL, w[5], w[4]);
6870
#define PIXEL20_83    Interp8(dp+dpL+dpL, w[4], w[8]);
6871
#define PIXEL21_0     *(dp+dpL+dpL+1) = w[5];
6872
#define PIXEL21_30    Interp3(dp+dpL+dpL+1, w[5], w[7]);
6873
#define PIXEL21_31    Interp3(dp+dpL+dpL+1, w[5], w[8]);
6874
#define PIXEL21_32    Interp3(dp+dpL+dpL+1, w[5], w[4]);
6875
#define PIXEL21_70    Interp7(dp+dpL+dpL+1, w[5], w[4], w[8]);
6876
#define PIXEL22_0     *(dp+dpL+dpL+2) = w[5];
6877
#define PIXEL22_30    Interp3(dp+dpL+dpL+2, w[5], w[9]);
6878
#define PIXEL22_31    Interp3(dp+dpL+dpL+2, w[5], w[6]);
6879
#define PIXEL22_32    Interp3(dp+dpL+dpL+2, w[5], w[8]);
6880
#define PIXEL22_70    Interp7(dp+dpL+dpL+2, w[5], w[6], w[8]);
6881
#define PIXEL23_0     *(dp+dpL+dpL+3) = w[5];
6882
#define PIXEL23_10    Interp1(dp+dpL+dpL+3, w[5], w[9]);
6883
#define PIXEL23_11    Interp1(dp+dpL+dpL+3, w[5], w[6]);
6884
#define PIXEL23_13    Interp1(dp+dpL+dpL+3, w[6], w[5]);
6885
#define PIXEL23_21    Interp2(dp+dpL+dpL+3, w[6], w[5], w[8]);
6886
#define PIXEL23_32    Interp3(dp+dpL+dpL+3, w[5], w[8]);
6887
#define PIXEL23_50    Interp5(dp+dpL+dpL+3, w[6], w[5]);
6888
#define PIXEL23_60    Interp6(dp+dpL+dpL+3, w[5], w[6], w[8]);
6889
#define PIXEL23_61    Interp6(dp+dpL+dpL+3, w[5], w[6], w[9]);
6890
#define PIXEL23_81    Interp8(dp+dpL+dpL+3, w[5], w[6]);
6891
#define PIXEL23_83    Interp8(dp+dpL+dpL+3, w[6], w[8]);
6892
#define PIXEL30_0     *(dp+dpL+dpL+dpL) = w[5];
6893
#define PIXEL30_11    Interp1(dp+dpL+dpL+dpL, w[5], w[8]);
6894
#define PIXEL30_12    Interp1(dp+dpL+dpL+dpL, w[5], w[4]);
6895
#define PIXEL30_20    Interp2(dp+dpL+dpL+dpL, w[5], w[8], w[4]);
6896
#define PIXEL30_50    Interp5(dp+dpL+dpL+dpL, w[8], w[4]);
6897
#define PIXEL30_80    Interp8(dp+dpL+dpL+dpL, w[5], w[7]);
6898
#define PIXEL30_81    Interp8(dp+dpL+dpL+dpL, w[5], w[8]);
6899
#define PIXEL30_82    Interp8(dp+dpL+dpL+dpL, w[5], w[4]);
6900
#define PIXEL31_0     *(dp+dpL+dpL+dpL+1) = w[5];
6901
#define PIXEL31_10    Interp1(dp+dpL+dpL+dpL+1, w[5], w[7]);
6902
#define PIXEL31_11    Interp1(dp+dpL+dpL+dpL+1, w[5], w[8]);
6903
#define PIXEL31_13    Interp1(dp+dpL+dpL+dpL+1, w[8], w[5]);
6904
#define PIXEL31_21    Interp2(dp+dpL+dpL+dpL+1, w[8], w[5], w[4]);
6905
#define PIXEL31_32    Interp3(dp+dpL+dpL+dpL+1, w[5], w[4]);
6906
#define PIXEL31_50    Interp5(dp+dpL+dpL+dpL+1, w[8], w[5]);
6907
#define PIXEL31_60    Interp6(dp+dpL+dpL+dpL+1, w[5], w[8], w[4]);
6908
#define PIXEL31_61    Interp6(dp+dpL+dpL+dpL+1, w[5], w[8], w[7]);
6909
#define PIXEL31_81    Interp8(dp+dpL+dpL+dpL+1, w[5], w[8]);
6910
#define PIXEL31_83    Interp8(dp+dpL+dpL+dpL+1, w[8], w[4]);
6911
#define PIXEL32_0     *(dp+dpL+dpL+dpL+2) = w[5];
6912
#define PIXEL32_10    Interp1(dp+dpL+dpL+dpL+2, w[5], w[9]);
6913
#define PIXEL32_12    Interp1(dp+dpL+dpL+dpL+2, w[5], w[8]);
6914
#define PIXEL32_14    Interp1(dp+dpL+dpL+dpL+2, w[8], w[5]);
6915
#define PIXEL32_21    Interp2(dp+dpL+dpL+dpL+2, w[8], w[5], w[6]);
6916
#define PIXEL32_31    Interp3(dp+dpL+dpL+dpL+2, w[5], w[6]);
6917
#define PIXEL32_50    Interp5(dp+dpL+dpL+dpL+2, w[8], w[5]);
6918
#define PIXEL32_60    Interp6(dp+dpL+dpL+dpL+2, w[5], w[8], w[6]);
6919
#define PIXEL32_61    Interp6(dp+dpL+dpL+dpL+2, w[5], w[8], w[9]);
6920
#define PIXEL32_82    Interp8(dp+dpL+dpL+dpL+2, w[5], w[8]);
6921
#define PIXEL32_83    Interp8(dp+dpL+dpL+dpL+2, w[8], w[6]);
6922
#define PIXEL33_0     *(dp+dpL+dpL+dpL+3) = w[5];
6923
#define PIXEL33_11    Interp1(dp+dpL+dpL+dpL+3, w[5], w[6]);
6924
#define PIXEL33_12    Interp1(dp+dpL+dpL+dpL+3, w[5], w[8]);
6925
#define PIXEL33_20    Interp2(dp+dpL+dpL+dpL+3, w[5], w[8], w[6]);
6926
#define PIXEL33_50    Interp5(dp+dpL+dpL+dpL+3, w[8], w[6]);
6927
#define PIXEL33_80    Interp8(dp+dpL+dpL+dpL+3, w[5], w[9]);
6928
#define PIXEL33_81    Interp8(dp+dpL+dpL+dpL+3, w[5], w[6]);
6929
#define PIXEL33_82    Interp8(dp+dpL+dpL+dpL+3, w[5], w[8]);
6930
 
6931
HQX_API void HQX_CALLCONV hq4x_32_rb( uint32_t * sp, uint32_t srb, uint32_t * dp, uint32_t drb, int Xres, int Yres )
6932
{
6933
    int  i, j, k;
6934
    int  prevline, nextline;
6935
    uint32_t w[10];
6936
    int dpL = (drb >> 2);
6937
    int spL = (srb >> 2);
6938
    uint8_t *sRowP = (uint8_t *) sp;
6939
    uint8_t *dRowP = (uint8_t *) dp;
6940
    uint32_t yuv1, yuv2;
6941
 
6942
    //   +----+----+----+
6943
    //   |    |    |    |
6944
    //   | w1 | w2 | w3 |
6945
    //   +----+----+----+
6946
    //   |    |    |    |
6947
    //   | w4 | w5 | w6 |
6948
    //   +----+----+----+
6949
    //   |    |    |    |
6950
    //   | w7 | w8 | w9 |
6951
    //   +----+----+----+
6952
 
6953
    for (j=0; j<Yres; j++)
6954
    {
6955
        if (j>0)      prevline = -spL; else prevline = 0;
6956
        if (j<Yres-1) nextline =  spL; else nextline = 0;
6957
 
6958
        for (i=0; i<Xres; i++)
6959
        {
6960
            w[2] = *(sp + prevline);
6961
            w[5] = *sp;
6962
            w[8] = *(sp + nextline);
6963
 
6964
            if (i>0)
6965
            {
6966
                w[1] = *(sp + prevline - 1);
6967
                w[4] = *(sp - 1);
6968
                w[7] = *(sp + nextline - 1);
6969
            }
6970
            else
6971
            {
6972
                w[1] = w[2];
6973
                w[4] = w[5];
6974
                w[7] = w[8];
6975
            }
6976
 
6977
            if (i<Xres-1)
6978
            {
6979
                w[3] = *(sp + prevline + 1);
6980
                w[6] = *(sp + 1);
6981
                w[9] = *(sp + nextline + 1);
6982
            }
6983
            else
6984
            {
6985
                w[3] = w[2];
6986
                w[6] = w[5];
6987
                w[9] = w[8];
6988
            }
6989
 
6990
            int pattern = 0;
6991
            int flag = 1;
6992
 
6993
            yuv1 = rgb_to_yuv(w[5]);
6994
 
6995
            for (k=1; k<=9; k++)
6996
            {
6997
                if (k==5) continue;
6998
 
6999
                if ( w[k] != w[5] )
7000
                {
7001
                    yuv2 = rgb_to_yuv(w[k]);
7002
                    if (yuv_diff(yuv1, yuv2))
7003
                        pattern |= flag;
7004
                }
7005
                flag <<= 1;
7006
            }
7007
 
7008
            switch (pattern)
7009
            {
7010
                case 0:
7011
                case 1:
7012
                case 4:
7013
                case 32:
7014
                case 128:
7015
                case 5:
7016
                case 132:
7017
                case 160:
7018
                case 33:
7019
                case 129:
7020
                case 36:
7021
                case 133:
7022
                case 164:
7023
                case 161:
7024
                case 37:
7025
                case 165:
7026
                    {
7027
                        PIXEL00_20
7028
                        PIXEL01_60
7029
                        PIXEL02_60
7030
                        PIXEL03_20
7031
                        PIXEL10_60
7032
                        PIXEL11_70
7033
                        PIXEL12_70
7034
                        PIXEL13_60
7035
                        PIXEL20_60
7036
                        PIXEL21_70
7037
                        PIXEL22_70
7038
                        PIXEL23_60
7039
                        PIXEL30_20
7040
                        PIXEL31_60
7041
                        PIXEL32_60
7042
                        PIXEL33_20
7043
                        break;
7044
                    }
7045
                case 2:
7046
                case 34:
7047
                case 130:
7048
                case 162:
7049
                    {
7050
                        PIXEL00_80
7051
                        PIXEL01_10
7052
                        PIXEL02_10
7053
                        PIXEL03_80
7054
                        PIXEL10_61
7055
                        PIXEL11_30
7056
                        PIXEL12_30
7057
                        PIXEL13_61
7058
                        PIXEL20_60
7059
                        PIXEL21_70
7060
                        PIXEL22_70
7061
                        PIXEL23_60
7062
                        PIXEL30_20
7063
                        PIXEL31_60
7064
                        PIXEL32_60
7065
                        PIXEL33_20
7066
                        break;
7067
                    }
7068
                case 16:
7069
                case 17:
7070
                case 48:
7071
                case 49:
7072
                    {
7073
                        PIXEL00_20
7074
                        PIXEL01_60
7075
                        PIXEL02_61
7076
                        PIXEL03_80
7077
                        PIXEL10_60
7078
                        PIXEL11_70
7079
                        PIXEL12_30
7080
                        PIXEL13_10
7081
                        PIXEL20_60
7082
                        PIXEL21_70
7083
                        PIXEL22_30
7084
                        PIXEL23_10
7085
                        PIXEL30_20
7086
                        PIXEL31_60
7087
                        PIXEL32_61
7088
                        PIXEL33_80
7089
                        break;
7090
                    }
7091
                case 64:
7092
                case 65:
7093
                case 68:
7094
                case 69:
7095
                    {
7096
                        PIXEL00_20
7097
                        PIXEL01_60
7098
                        PIXEL02_60
7099
                        PIXEL03_20
7100
                        PIXEL10_60
7101
                        PIXEL11_70
7102
                        PIXEL12_70
7103
                        PIXEL13_60
7104
                        PIXEL20_61
7105
                        PIXEL21_30
7106
                        PIXEL22_30
7107
                        PIXEL23_61
7108
                        PIXEL30_80
7109
                        PIXEL31_10
7110
                        PIXEL32_10
7111
                        PIXEL33_80
7112
                        break;
7113
                    }
7114
                case 8:
7115
                case 12:
7116
                case 136:
7117
                case 140:
7118
                    {
7119
                        PIXEL00_80
7120
                        PIXEL01_61
7121
                        PIXEL02_60
7122
                        PIXEL03_20
7123
                        PIXEL10_10
7124
                        PIXEL11_30
7125
                        PIXEL12_70
7126
                        PIXEL13_60
7127
                        PIXEL20_10
7128
                        PIXEL21_30
7129
                        PIXEL22_70
7130
                        PIXEL23_60
7131
                        PIXEL30_80
7132
                        PIXEL31_61
7133
                        PIXEL32_60
7134
                        PIXEL33_20
7135
                        break;
7136
                    }
7137
                case 3:
7138
                case 35:
7139
                case 131:
7140
                case 163:
7141
                    {
7142
                        PIXEL00_81
7143
                        PIXEL01_31
7144
                        PIXEL02_10
7145
                        PIXEL03_80
7146
                        PIXEL10_81
7147
                        PIXEL11_31
7148
                        PIXEL12_30
7149
                        PIXEL13_61
7150
                        PIXEL20_60
7151
                        PIXEL21_70
7152
                        PIXEL22_70
7153
                        PIXEL23_60
7154
                        PIXEL30_20
7155
                        PIXEL31_60
7156
                        PIXEL32_60
7157
                        PIXEL33_20
7158
                        break;
7159
                    }
7160
                case 6:
7161
                case 38:
7162
                case 134:
7163
                case 166:
7164
                    {
7165
                        PIXEL00_80
7166
                        PIXEL01_10
7167
                        PIXEL02_32
7168
                        PIXEL03_82
7169
                        PIXEL10_61
7170
                        PIXEL11_30
7171
                        PIXEL12_32
7172
                        PIXEL13_82
7173
                        PIXEL20_60
7174
                        PIXEL21_70
7175
                        PIXEL22_70
7176
                        PIXEL23_60
7177
                        PIXEL30_20
7178
                        PIXEL31_60
7179
                        PIXEL32_60
7180
                        PIXEL33_20
7181
                        break;
7182
                    }
7183
                case 20:
7184
                case 21:
7185
                case 52:
7186
                case 53:
7187
                    {
7188
                        PIXEL00_20
7189
                        PIXEL01_60
7190
                        PIXEL02_81
7191
                        PIXEL03_81
7192
                        PIXEL10_60
7193
                        PIXEL11_70
7194
                        PIXEL12_31
7195
                        PIXEL13_31
7196
                        PIXEL20_60
7197
                        PIXEL21_70
7198
                        PIXEL22_30
7199
                        PIXEL23_10
7200
                        PIXEL30_20
7201
                        PIXEL31_60
7202
                        PIXEL32_61
7203
                        PIXEL33_80
7204
                        break;
7205
                    }
7206
                case 144:
7207
                case 145:
7208
                case 176:
7209
                case 177:
7210
                    {
7211
                        PIXEL00_20
7212
                        PIXEL01_60
7213
                        PIXEL02_61
7214
                        PIXEL03_80
7215
                        PIXEL10_60
7216
                        PIXEL11_70
7217
                        PIXEL12_30
7218
                        PIXEL13_10
7219
                        PIXEL20_60
7220
                        PIXEL21_70
7221
                        PIXEL22_32
7222
                        PIXEL23_32
7223
                        PIXEL30_20
7224
                        PIXEL31_60
7225
                        PIXEL32_82
7226
                        PIXEL33_82
7227
                        break;
7228
                    }
7229
                case 192:
7230
                case 193:
7231
                case 196:
7232
                case 197:
7233
                    {
7234
                        PIXEL00_20
7235
                        PIXEL01_60
7236
                        PIXEL02_60
7237
                        PIXEL03_20
7238
                        PIXEL10_60
7239
                        PIXEL11_70
7240
                        PIXEL12_70
7241
                        PIXEL13_60
7242
                        PIXEL20_61
7243
                        PIXEL21_30
7244
                        PIXEL22_31
7245
                        PIXEL23_81
7246
                        PIXEL30_80
7247
                        PIXEL31_10
7248
                        PIXEL32_31
7249
                        PIXEL33_81
7250
                        break;
7251
                    }
7252
                case 96:
7253
                case 97:
7254
                case 100:
7255
                case 101:
7256
                    {
7257
                        PIXEL00_20
7258
                        PIXEL01_60
7259
                        PIXEL02_60
7260
                        PIXEL03_20
7261
                        PIXEL10_60
7262
                        PIXEL11_70
7263
                        PIXEL12_70
7264
                        PIXEL13_60
7265
                        PIXEL20_82
7266
                        PIXEL21_32
7267
                        PIXEL22_30
7268
                        PIXEL23_61
7269
                        PIXEL30_82
7270
                        PIXEL31_32
7271
                        PIXEL32_10
7272
                        PIXEL33_80
7273
                        break;
7274
                    }
7275
                case 40:
7276
                case 44:
7277
                case 168:
7278
                case 172:
7279
                    {
7280
                        PIXEL00_80
7281
                        PIXEL01_61
7282
                        PIXEL02_60
7283
                        PIXEL03_20
7284
                        PIXEL10_10
7285
                        PIXEL11_30
7286
                        PIXEL12_70
7287
                        PIXEL13_60
7288
                        PIXEL20_31
7289
                        PIXEL21_31
7290
                        PIXEL22_70
7291
                        PIXEL23_60
7292
                        PIXEL30_81
7293
                        PIXEL31_81
7294
                        PIXEL32_60
7295
                        PIXEL33_20
7296
                        break;
7297
                    }
7298
                case 9:
7299
                case 13:
7300
                case 137:
7301
                case 141:
7302
                    {
7303
                        PIXEL00_82
7304
                        PIXEL01_82
7305
                        PIXEL02_60
7306
                        PIXEL03_20
7307
                        PIXEL10_32
7308
                        PIXEL11_32
7309
                        PIXEL12_70
7310
                        PIXEL13_60
7311
                        PIXEL20_10
7312
                        PIXEL21_30
7313
                        PIXEL22_70
7314
                        PIXEL23_60
7315
                        PIXEL30_80
7316
                        PIXEL31_61
7317
                        PIXEL32_60
7318
                        PIXEL33_20
7319
                        break;
7320
                    }
7321
                case 18:
7322
                case 50:
7323
                    {
7324
                        PIXEL00_80
7325
                        PIXEL01_10
7326
                        if (Diff(w[2], w[6]))
7327
                        {
7328
                            PIXEL02_10
7329
                            PIXEL03_80
7330
                            PIXEL12_30
7331
                            PIXEL13_10
7332
                        }
7333
                        else
7334
                        {
7335
                            PIXEL02_50
7336
                            PIXEL03_50
7337
                            PIXEL12_0
7338
                            PIXEL13_50
7339
                        }
7340
                        PIXEL10_61
7341
                        PIXEL11_30
7342
                        PIXEL20_60
7343
                        PIXEL21_70
7344
                        PIXEL22_30
7345
                        PIXEL23_10
7346
                        PIXEL30_20
7347
                        PIXEL31_60
7348
                        PIXEL32_61
7349
                        PIXEL33_80
7350
                        break;
7351
                    }
7352
                case 80:
7353
                case 81:
7354
                    {
7355
                        PIXEL00_20
7356
                        PIXEL01_60
7357
                        PIXEL02_61
7358
                        PIXEL03_80
7359
                        PIXEL10_60
7360
                        PIXEL11_70
7361
                        PIXEL12_30
7362
                        PIXEL13_10
7363
                        PIXEL20_61
7364
                        PIXEL21_30
7365
                        if (Diff(w[6], w[8]))
7366
                        {
7367
                            PIXEL22_30
7368
                            PIXEL23_10
7369
                            PIXEL32_10
7370
                            PIXEL33_80
7371
                        }
7372
                        else
7373
                        {
7374
                            PIXEL22_0
7375
                            PIXEL23_50
7376
                            PIXEL32_50
7377
                            PIXEL33_50
7378
                        }
7379
                        PIXEL30_80
7380
                        PIXEL31_10
7381
                        break;
7382
                    }
7383
                case 72:
7384
                case 76:
7385
                    {
7386
                        PIXEL00_80
7387
                        PIXEL01_61
7388
                        PIXEL02_60
7389
                        PIXEL03_20
7390
                        PIXEL10_10
7391
                        PIXEL11_30
7392
                        PIXEL12_70
7393
                        PIXEL13_60
7394
                        if (Diff(w[8], w[4]))
7395
                        {
7396
                            PIXEL20_10
7397
                            PIXEL21_30
7398
                            PIXEL30_80
7399
                            PIXEL31_10
7400
                        }
7401
                        else
7402
                        {
7403
                            PIXEL20_50
7404
                            PIXEL21_0
7405
                            PIXEL30_50
7406
                            PIXEL31_50
7407
                        }
7408
                        PIXEL22_30
7409
                        PIXEL23_61
7410
                        PIXEL32_10
7411
                        PIXEL33_80
7412
                        break;
7413
                    }
7414
                case 10:
7415
                case 138:
7416
                    {
7417
                        if (Diff(w[4], w[2]))
7418
                        {
7419
                            PIXEL00_80
7420
                            PIXEL01_10
7421
                            PIXEL10_10
7422
                            PIXEL11_30
7423
                        }
7424
                        else
7425
                        {
7426
                            PIXEL00_50
7427
                            PIXEL01_50
7428
                            PIXEL10_50
7429
                            PIXEL11_0
7430
                        }
7431
                        PIXEL02_10
7432
                        PIXEL03_80
7433
                        PIXEL12_30
7434
                        PIXEL13_61
7435
                        PIXEL20_10
7436
                        PIXEL21_30
7437
                        PIXEL22_70
7438
                        PIXEL23_60
7439
                        PIXEL30_80
7440
                        PIXEL31_61
7441
                        PIXEL32_60
7442
                        PIXEL33_20
7443
                        break;
7444
                    }
7445
                case 66:
7446
                    {
7447
                        PIXEL00_80
7448
                        PIXEL01_10
7449
                        PIXEL02_10
7450
                        PIXEL03_80
7451
                        PIXEL10_61
7452
                        PIXEL11_30
7453
                        PIXEL12_30
7454
                        PIXEL13_61
7455
                        PIXEL20_61
7456
                        PIXEL21_30
7457
                        PIXEL22_30
7458
                        PIXEL23_61
7459
                        PIXEL30_80
7460
                        PIXEL31_10
7461
                        PIXEL32_10
7462
                        PIXEL33_80
7463
                        break;
7464
                    }
7465
                case 24:
7466
                    {
7467
                        PIXEL00_80
7468
                        PIXEL01_61
7469
                        PIXEL02_61
7470
                        PIXEL03_80
7471
                        PIXEL10_10
7472
                        PIXEL11_30
7473
                        PIXEL12_30
7474
                        PIXEL13_10
7475
                        PIXEL20_10
7476
                        PIXEL21_30
7477
                        PIXEL22_30
7478
                        PIXEL23_10
7479
                        PIXEL30_80
7480
                        PIXEL31_61
7481
                        PIXEL32_61
7482
                        PIXEL33_80
7483
                        break;
7484
                    }
7485
                case 7:
7486
                case 39:
7487
                case 135:
7488
                    {
7489
                        PIXEL00_81
7490
                        PIXEL01_31
7491
                        PIXEL02_32
7492
                        PIXEL03_82
7493
                        PIXEL10_81
7494
                        PIXEL11_31
7495
                        PIXEL12_32
7496
                        PIXEL13_82
7497
                        PIXEL20_60
7498
                        PIXEL21_70
7499
                        PIXEL22_70
7500
                        PIXEL23_60
7501
                        PIXEL30_20
7502
                        PIXEL31_60
7503
                        PIXEL32_60
7504
                        PIXEL33_20
7505
                        break;
7506
                    }
7507
                case 148:
7508
                case 149:
7509
                case 180:
7510
                    {
7511
                        PIXEL00_20
7512
                        PIXEL01_60
7513
                        PIXEL02_81
7514
                        PIXEL03_81
7515
                        PIXEL10_60
7516
                        PIXEL11_70
7517
                        PIXEL12_31
7518
                        PIXEL13_31
7519
                        PIXEL20_60
7520
                        PIXEL21_70
7521
                        PIXEL22_32
7522
                        PIXEL23_32
7523
                        PIXEL30_20
7524
                        PIXEL31_60
7525
                        PIXEL32_82
7526
                        PIXEL33_82
7527
                        break;
7528
                    }
7529
                case 224:
7530
                case 228:
7531
                case 225:
7532
                    {
7533
                        PIXEL00_20
7534
                        PIXEL01_60
7535
                        PIXEL02_60
7536
                        PIXEL03_20
7537
                        PIXEL10_60
7538
                        PIXEL11_70
7539
                        PIXEL12_70
7540
                        PIXEL13_60
7541
                        PIXEL20_82
7542
                        PIXEL21_32
7543
                        PIXEL22_31
7544
                        PIXEL23_81
7545
                        PIXEL30_82
7546
                        PIXEL31_32
7547
                        PIXEL32_31
7548
                        PIXEL33_81
7549
                        break;
7550
                    }
7551
                case 41:
7552
                case 169:
7553
                case 45:
7554
                    {
7555
                        PIXEL00_82
7556
                        PIXEL01_82
7557
                        PIXEL02_60
7558
                        PIXEL03_20
7559
                        PIXEL10_32
7560
                        PIXEL11_32
7561
                        PIXEL12_70
7562
                        PIXEL13_60
7563
                        PIXEL20_31
7564
                        PIXEL21_31
7565
                        PIXEL22_70
7566
                        PIXEL23_60
7567
                        PIXEL30_81
7568
                        PIXEL31_81
7569
                        PIXEL32_60
7570
                        PIXEL33_20
7571
                        break;
7572
                    }
7573
                case 22:
7574
                case 54:
7575
                    {
7576
                        PIXEL00_80
7577
                        PIXEL01_10
7578
                        if (Diff(w[2], w[6]))
7579
                        {
7580
                            PIXEL02_0
7581
                            PIXEL03_0
7582
                            PIXEL13_0
7583
                        }
7584
                        else
7585
                        {
7586
                            PIXEL02_50
7587
                            PIXEL03_50
7588
                            PIXEL13_50
7589
                        }
7590
                        PIXEL10_61
7591
                        PIXEL11_30
7592
                        PIXEL12_0
7593
                        PIXEL20_60
7594
                        PIXEL21_70
7595
                        PIXEL22_30
7596
                        PIXEL23_10
7597
                        PIXEL30_20
7598
                        PIXEL31_60
7599
                        PIXEL32_61
7600
                        PIXEL33_80
7601
                        break;
7602
                    }
7603
                case 208:
7604
                case 209:
7605
                    {
7606
                        PIXEL00_20
7607
                        PIXEL01_60
7608
                        PIXEL02_61
7609
                        PIXEL03_80
7610
                        PIXEL10_60
7611
                        PIXEL11_70
7612
                        PIXEL12_30
7613
                        PIXEL13_10
7614
                        PIXEL20_61
7615
                        PIXEL21_30
7616
                        PIXEL22_0
7617
                        if (Diff(w[6], w[8]))
7618
                        {
7619
                            PIXEL23_0
7620
                            PIXEL32_0
7621
                            PIXEL33_0
7622
                        }
7623
                        else
7624
                        {
7625
                            PIXEL23_50
7626
                            PIXEL32_50
7627
                            PIXEL33_50
7628
                        }
7629
                        PIXEL30_80
7630
                        PIXEL31_10
7631
                        break;
7632
                    }
7633
                case 104:
7634
                case 108:
7635
                    {
7636
                        PIXEL00_80
7637
                        PIXEL01_61
7638
                        PIXEL02_60
7639
                        PIXEL03_20
7640
                        PIXEL10_10
7641
                        PIXEL11_30
7642
                        PIXEL12_70
7643
                        PIXEL13_60
7644
                        if (Diff(w[8], w[4]))
7645
                        {
7646
                            PIXEL20_0
7647
                            PIXEL30_0
7648
                            PIXEL31_0
7649
                        }
7650
                        else
7651
                        {
7652
                            PIXEL20_50
7653
                            PIXEL30_50
7654
                            PIXEL31_50
7655
                        }
7656
                        PIXEL21_0
7657
                        PIXEL22_30
7658
                        PIXEL23_61
7659
                        PIXEL32_10
7660
                        PIXEL33_80
7661
                        break;
7662
                    }
7663
                case 11:
7664
                case 139:
7665
                    {
7666
                        if (Diff(w[4], w[2]))
7667
                        {
7668
                            PIXEL00_0
7669
                            PIXEL01_0
7670
                            PIXEL10_0
7671
                        }
7672
                        else
7673
                        {
7674
                            PIXEL00_50
7675
                            PIXEL01_50
7676
                            PIXEL10_50
7677
                        }
7678
                        PIXEL02_10
7679
                        PIXEL03_80
7680
                        PIXEL11_0
7681
                        PIXEL12_30
7682
                        PIXEL13_61
7683
                        PIXEL20_10
7684
                        PIXEL21_30
7685
                        PIXEL22_70
7686
                        PIXEL23_60
7687
                        PIXEL30_80
7688
                        PIXEL31_61
7689
                        PIXEL32_60
7690
                        PIXEL33_20
7691
                        break;
7692
                    }
7693
                case 19:
7694
                case 51:
7695
                    {
7696
                        if (Diff(w[2], w[6]))
7697
                        {
7698
                            PIXEL00_81
7699
                            PIXEL01_31
7700
                            PIXEL02_10
7701
                            PIXEL03_80
7702
                            PIXEL12_30
7703
                            PIXEL13_10
7704
                        }
7705
                        else
7706
                        {
7707
                            PIXEL00_12
7708
                            PIXEL01_14
7709
                            PIXEL02_83
7710
                            PIXEL03_50
7711
                            PIXEL12_70
7712
                            PIXEL13_21
7713
                        }
7714
                        PIXEL10_81
7715
                        PIXEL11_31
7716
                        PIXEL20_60
7717
                        PIXEL21_70
7718
                        PIXEL22_30
7719
                        PIXEL23_10
7720
                        PIXEL30_20
7721
                        PIXEL31_60
7722
                        PIXEL32_61
7723
                        PIXEL33_80
7724
                        break;
7725
                    }
7726
                case 146:
7727
                case 178:
7728
                    {
7729
                        PIXEL00_80
7730
                        PIXEL01_10
7731
                        if (Diff(w[2], w[6]))
7732
                        {
7733
                            PIXEL02_10
7734
                            PIXEL03_80
7735
                            PIXEL12_30
7736
                            PIXEL13_10
7737
                            PIXEL23_32
7738
                            PIXEL33_82
7739
                        }
7740
                        else
7741
                        {
7742
                            PIXEL02_21
7743
                            PIXEL03_50
7744
                            PIXEL12_70
7745
                            PIXEL13_83
7746
                            PIXEL23_13
7747
                            PIXEL33_11
7748
                        }
7749
                        PIXEL10_61
7750
                        PIXEL11_30
7751
                        PIXEL20_60
7752
                        PIXEL21_70
7753
                        PIXEL22_32
7754
                        PIXEL30_20
7755
                        PIXEL31_60
7756
                        PIXEL32_82
7757
                        break;
7758
                    }
7759
                case 84:
7760
                case 85:
7761
                    {
7762
                        PIXEL00_20
7763
                        PIXEL01_60
7764
                        PIXEL02_81
7765
                        if (Diff(w[6], w[8]))
7766
                        {
7767
                            PIXEL03_81
7768
                            PIXEL13_31
7769
                            PIXEL22_30
7770
                            PIXEL23_10
7771
                            PIXEL32_10
7772
                            PIXEL33_80
7773
                        }
7774
                        else
7775
                        {
7776
                            PIXEL03_12
7777
                            PIXEL13_14
7778
                            PIXEL22_70
7779
                            PIXEL23_83
7780
                            PIXEL32_21
7781
                            PIXEL33_50
7782
                        }
7783
                        PIXEL10_60
7784
                        PIXEL11_70
7785
                        PIXEL12_31
7786
                        PIXEL20_61
7787
                        PIXEL21_30
7788
                        PIXEL30_80
7789
                        PIXEL31_10
7790
                        break;
7791
                    }
7792
                case 112:
7793
                case 113:
7794
                    {
7795
                        PIXEL00_20
7796
                        PIXEL01_60
7797
                        PIXEL02_61
7798
                        PIXEL03_80
7799
                        PIXEL10_60
7800
                        PIXEL11_70
7801
                        PIXEL12_30
7802
                        PIXEL13_10
7803
                        PIXEL20_82
7804
                        PIXEL21_32
7805
                        if (Diff(w[6], w[8]))
7806
                        {
7807
                            PIXEL22_30
7808
                            PIXEL23_10
7809
                            PIXEL30_82
7810
                            PIXEL31_32
7811
                            PIXEL32_10
7812
                            PIXEL33_80
7813
                        }
7814
                        else
7815
                        {
7816
                            PIXEL22_70
7817
                            PIXEL23_21
7818
                            PIXEL30_11
7819
                            PIXEL31_13
7820
                            PIXEL32_83
7821
                            PIXEL33_50
7822
                        }
7823
                        break;
7824
                    }
7825
                case 200:
7826
                case 204:
7827
                    {
7828
                        PIXEL00_80
7829
                        PIXEL01_61
7830
                        PIXEL02_60
7831
                        PIXEL03_20
7832
                        PIXEL10_10
7833
                        PIXEL11_30
7834
                        PIXEL12_70
7835
                        PIXEL13_60
7836
                        if (Diff(w[8], w[4]))
7837
                        {
7838
                            PIXEL20_10
7839
                            PIXEL21_30
7840
                            PIXEL30_80
7841
                            PIXEL31_10
7842
                            PIXEL32_31
7843
                            PIXEL33_81
7844
                        }
7845
                        else
7846
                        {
7847
                            PIXEL20_21
7848
                            PIXEL21_70
7849
                            PIXEL30_50
7850
                            PIXEL31_83
7851
                            PIXEL32_14
7852
                            PIXEL33_12
7853
                        }
7854
                        PIXEL22_31
7855
                        PIXEL23_81
7856
                        break;
7857
                    }
7858
                case 73:
7859
                case 77:
7860
                    {
7861
                        if (Diff(w[8], w[4]))
7862
                        {
7863
                            PIXEL00_82
7864
                            PIXEL10_32
7865
                            PIXEL20_10
7866
                            PIXEL21_30
7867
                            PIXEL30_80
7868
                            PIXEL31_10
7869
                        }
7870
                        else
7871
                        {
7872
                            PIXEL00_11
7873
                            PIXEL10_13
7874
                            PIXEL20_83
7875
                            PIXEL21_70
7876
                            PIXEL30_50
7877
                            PIXEL31_21
7878
                        }
7879
                        PIXEL01_82
7880
                        PIXEL02_60
7881
                        PIXEL03_20
7882
                        PIXEL11_32
7883
                        PIXEL12_70
7884
                        PIXEL13_60
7885
                        PIXEL22_30
7886
                        PIXEL23_61
7887
                        PIXEL32_10
7888
                        PIXEL33_80
7889
                        break;
7890
                    }
7891
                case 42:
7892
                case 170:
7893
                    {
7894
                        if (Diff(w[4], w[2]))
7895
                        {
7896
                            PIXEL00_80
7897
                            PIXEL01_10
7898
                            PIXEL10_10
7899
                            PIXEL11_30
7900
                            PIXEL20_31
7901
                            PIXEL30_81
7902
                        }
7903
                        else
7904
                        {
7905
                            PIXEL00_50
7906
                            PIXEL01_21
7907
                            PIXEL10_83
7908
                            PIXEL11_70
7909
                            PIXEL20_14
7910
                            PIXEL30_12
7911
                        }
7912
                        PIXEL02_10
7913
                        PIXEL03_80
7914
                        PIXEL12_30
7915
                        PIXEL13_61
7916
                        PIXEL21_31
7917
                        PIXEL22_70
7918
                        PIXEL23_60
7919
                        PIXEL31_81
7920
                        PIXEL32_60
7921
                        PIXEL33_20
7922
                        break;
7923
                    }
7924
                case 14:
7925
                case 142:
7926
                    {
7927
                        if (Diff(w[4], w[2]))
7928
                        {
7929
                            PIXEL00_80
7930
                            PIXEL01_10
7931
                            PIXEL02_32
7932
                            PIXEL03_82
7933
                            PIXEL10_10
7934
                            PIXEL11_30
7935
                        }
7936
                        else
7937
                        {
7938
                            PIXEL00_50
7939
                            PIXEL01_83
7940
                            PIXEL02_13
7941
                            PIXEL03_11
7942
                            PIXEL10_21
7943
                            PIXEL11_70
7944
                        }
7945
                        PIXEL12_32
7946
                        PIXEL13_82
7947
                        PIXEL20_10
7948
                        PIXEL21_30
7949
                        PIXEL22_70
7950
                        PIXEL23_60
7951
                        PIXEL30_80
7952
                        PIXEL31_61
7953
                        PIXEL32_60
7954
                        PIXEL33_20
7955
                        break;
7956
                    }
7957
                case 67:
7958
                    {
7959
                        PIXEL00_81
7960
                        PIXEL01_31
7961
                        PIXEL02_10
7962
                        PIXEL03_80
7963
                        PIXEL10_81
7964
                        PIXEL11_31
7965
                        PIXEL12_30
7966
                        PIXEL13_61
7967
                        PIXEL20_61
7968
                        PIXEL21_30
7969
                        PIXEL22_30
7970
                        PIXEL23_61
7971
                        PIXEL30_80
7972
                        PIXEL31_10
7973
                        PIXEL32_10
7974
                        PIXEL33_80
7975
                        break;
7976
                    }
7977
                case 70:
7978
                    {
7979
                        PIXEL00_80
7980
                        PIXEL01_10
7981
                        PIXEL02_32
7982
                        PIXEL03_82
7983
                        PIXEL10_61
7984
                        PIXEL11_30
7985
                        PIXEL12_32
7986
                        PIXEL13_82
7987
                        PIXEL20_61
7988
                        PIXEL21_30
7989
                        PIXEL22_30
7990
                        PIXEL23_61
7991
                        PIXEL30_80
7992
                        PIXEL31_10
7993
                        PIXEL32_10
7994
                        PIXEL33_80
7995
                        break;
7996
                    }
7997
                case 28:
7998
                    {
7999
                        PIXEL00_80
8000
                        PIXEL01_61
8001
                        PIXEL02_81
8002
                        PIXEL03_81
8003
                        PIXEL10_10
8004
                        PIXEL11_30
8005
                        PIXEL12_31
8006
                        PIXEL13_31
8007
                        PIXEL20_10
8008
                        PIXEL21_30
8009
                        PIXEL22_30
8010
                        PIXEL23_10
8011
                        PIXEL30_80
8012
                        PIXEL31_61
8013
                        PIXEL32_61
8014
                        PIXEL33_80
8015
                        break;
8016
                    }
8017
                case 152:
8018
                    {
8019
                        PIXEL00_80
8020
                        PIXEL01_61
8021
                        PIXEL02_61
8022
                        PIXEL03_80
8023
                        PIXEL10_10
8024
                        PIXEL11_30
8025
                        PIXEL12_30
8026
                        PIXEL13_10
8027
                        PIXEL20_10
8028
                        PIXEL21_30
8029
                        PIXEL22_32
8030
                        PIXEL23_32
8031
                        PIXEL30_80
8032
                        PIXEL31_61
8033
                        PIXEL32_82
8034
                        PIXEL33_82
8035
                        break;
8036
                    }
8037
                case 194:
8038
                    {
8039
                        PIXEL00_80
8040
                        PIXEL01_10
8041
                        PIXEL02_10
8042
                        PIXEL03_80
8043
                        PIXEL10_61
8044
                        PIXEL11_30
8045
                        PIXEL12_30
8046
                        PIXEL13_61
8047
                        PIXEL20_61
8048
                        PIXEL21_30
8049
                        PIXEL22_31
8050
                        PIXEL23_81
8051
                        PIXEL30_80
8052
                        PIXEL31_10
8053
                        PIXEL32_31
8054
                        PIXEL33_81
8055
                        break;
8056
                    }
8057
                case 98:
8058
                    {
8059
                        PIXEL00_80
8060
                        PIXEL01_10
8061
                        PIXEL02_10
8062
                        PIXEL03_80
8063
                        PIXEL10_61
8064
                        PIXEL11_30
8065
                        PIXEL12_30
8066
                        PIXEL13_61
8067
                        PIXEL20_82
8068
                        PIXEL21_32
8069
                        PIXEL22_30
8070
                        PIXEL23_61
8071
                        PIXEL30_82
8072
                        PIXEL31_32
8073
                        PIXEL32_10
8074
                        PIXEL33_80
8075
                        break;
8076
                    }
8077
                case 56:
8078
                    {
8079
                        PIXEL00_80
8080
                        PIXEL01_61
8081
                        PIXEL02_61
8082
                        PIXEL03_80
8083
                        PIXEL10_10
8084
                        PIXEL11_30
8085
                        PIXEL12_30
8086
                        PIXEL13_10
8087
                        PIXEL20_31
8088
                        PIXEL21_31
8089
                        PIXEL22_30
8090
                        PIXEL23_10
8091
                        PIXEL30_81
8092
                        PIXEL31_81
8093
                        PIXEL32_61
8094
                        PIXEL33_80
8095
                        break;
8096
                    }
8097
                case 25:
8098
                    {
8099
                        PIXEL00_82
8100
                        PIXEL01_82
8101
                        PIXEL02_61
8102
                        PIXEL03_80
8103
                        PIXEL10_32
8104
                        PIXEL11_32
8105
                        PIXEL12_30
8106
                        PIXEL13_10
8107
                        PIXEL20_10
8108
                        PIXEL21_30
8109
                        PIXEL22_30
8110
                        PIXEL23_10
8111
                        PIXEL30_80
8112
                        PIXEL31_61
8113
                        PIXEL32_61
8114
                        PIXEL33_80
8115
                        break;
8116
                    }
8117
                case 26:
8118
                case 31:
8119
                    {
8120
                        if (Diff(w[4], w[2]))
8121
                        {
8122
                            PIXEL00_0
8123
                            PIXEL01_0
8124
                            PIXEL10_0
8125
                        }
8126
                        else
8127
                        {
8128
                            PIXEL00_50
8129
                            PIXEL01_50
8130
                            PIXEL10_50
8131
                        }
8132
                        if (Diff(w[2], w[6]))
8133
                        {
8134
                            PIXEL02_0
8135
                            PIXEL03_0
8136
                            PIXEL13_0
8137
                        }
8138
                        else
8139
                        {
8140
                            PIXEL02_50
8141
                            PIXEL03_50
8142
                            PIXEL13_50
8143
                        }
8144
                        PIXEL11_0
8145
                        PIXEL12_0
8146
                        PIXEL20_10
8147
                        PIXEL21_30
8148
                        PIXEL22_30
8149
                        PIXEL23_10
8150
                        PIXEL30_80
8151
                        PIXEL31_61
8152
                        PIXEL32_61
8153
                        PIXEL33_80
8154
                        break;
8155
                    }
8156
                case 82:
8157
                case 214:
8158
                    {
8159
                        PIXEL00_80
8160
                        PIXEL01_10
8161
                        if (Diff(w[2], w[6]))
8162
                        {
8163
                            PIXEL02_0
8164
                            PIXEL03_0
8165
                            PIXEL13_0
8166
                        }
8167
                        else
8168
                        {
8169
                            PIXEL02_50
8170
                            PIXEL03_50
8171
                            PIXEL13_50
8172
                        }
8173
                        PIXEL10_61
8174
                        PIXEL11_30
8175
                        PIXEL12_0
8176
                        PIXEL20_61
8177
                        PIXEL21_30
8178
                        PIXEL22_0
8179
                        if (Diff(w[6], w[8]))
8180
                        {
8181
                            PIXEL23_0
8182
                            PIXEL32_0
8183
                            PIXEL33_0
8184
                        }
8185
                        else
8186
                        {
8187
                            PIXEL23_50
8188
                            PIXEL32_50
8189
                            PIXEL33_50
8190
                        }
8191
                        PIXEL30_80
8192
                        PIXEL31_10
8193
                        break;
8194
                    }
8195
                case 88:
8196
                case 248:
8197
                    {
8198
                        PIXEL00_80
8199
                        PIXEL01_61
8200
                        PIXEL02_61
8201
                        PIXEL03_80
8202
                        PIXEL10_10
8203
                        PIXEL11_30
8204
                        PIXEL12_30
8205
                        PIXEL13_10
8206
                        if (Diff(w[8], w[4]))
8207
                        {
8208
                            PIXEL20_0
8209
                            PIXEL30_0
8210
                            PIXEL31_0
8211
                        }
8212
                        else
8213
                        {
8214
                            PIXEL20_50
8215
                            PIXEL30_50
8216
                            PIXEL31_50
8217
                        }
8218
                        PIXEL21_0
8219
                        PIXEL22_0
8220
                        if (Diff(w[6], w[8]))
8221
                        {
8222
                            PIXEL23_0
8223
                            PIXEL32_0
8224
                            PIXEL33_0
8225
                        }
8226
                        else
8227
                        {
8228
                            PIXEL23_50
8229
                            PIXEL32_50
8230
                            PIXEL33_50
8231
                        }
8232
                        break;
8233
                    }
8234
                case 74:
8235
                case 107:
8236
                    {
8237
                        if (Diff(w[4], w[2]))
8238
                        {
8239
                            PIXEL00_0
8240
                            PIXEL01_0
8241
                            PIXEL10_0
8242
                        }
8243
                        else
8244
                        {
8245
                            PIXEL00_50
8246
                            PIXEL01_50
8247
                            PIXEL10_50
8248
                        }
8249
                        PIXEL02_10
8250
                        PIXEL03_80
8251
                        PIXEL11_0
8252
                        PIXEL12_30
8253
                        PIXEL13_61
8254
                        if (Diff(w[8], w[4]))
8255
                        {
8256
                            PIXEL20_0
8257
                            PIXEL30_0
8258
                            PIXEL31_0
8259
                        }
8260
                        else
8261
                        {
8262
                            PIXEL20_50
8263
                            PIXEL30_50
8264
                            PIXEL31_50
8265
                        }
8266
                        PIXEL21_0
8267
                        PIXEL22_30
8268
                        PIXEL23_61
8269
                        PIXEL32_10
8270
                        PIXEL33_80
8271
                        break;
8272
                    }
8273
                case 27:
8274
                    {
8275
                        if (Diff(w[4], w[2]))
8276
                        {
8277
                            PIXEL00_0
8278
                            PIXEL01_0
8279
                            PIXEL10_0
8280
                        }
8281
                        else
8282
                        {
8283
                            PIXEL00_50
8284
                            PIXEL01_50
8285
                            PIXEL10_50
8286
                        }
8287
                        PIXEL02_10
8288
                        PIXEL03_80
8289
                        PIXEL11_0
8290
                        PIXEL12_30
8291
                        PIXEL13_10
8292
                        PIXEL20_10
8293
                        PIXEL21_30
8294
                        PIXEL22_30
8295
                        PIXEL23_10
8296
                        PIXEL30_80
8297
                        PIXEL31_61
8298
                        PIXEL32_61
8299
                        PIXEL33_80
8300
                        break;
8301
                    }
8302
                case 86:
8303
                    {
8304
                        PIXEL00_80
8305
                        PIXEL01_10
8306
                        if (Diff(w[2], w[6]))
8307
                        {
8308
                            PIXEL02_0
8309
                            PIXEL03_0
8310
                            PIXEL13_0
8311
                        }
8312
                        else
8313
                        {
8314
                            PIXEL02_50
8315
                            PIXEL03_50
8316
                            PIXEL13_50
8317
                        }
8318
                        PIXEL10_61
8319
                        PIXEL11_30
8320
                        PIXEL12_0
8321
                        PIXEL20_61
8322
                        PIXEL21_30
8323
                        PIXEL22_30
8324
                        PIXEL23_10
8325
                        PIXEL30_80
8326
                        PIXEL31_10
8327
                        PIXEL32_10
8328
                        PIXEL33_80
8329
                        break;
8330
                    }
8331
                case 216:
8332
                    {
8333
                        PIXEL00_80
8334
                        PIXEL01_61
8335
                        PIXEL02_61
8336
                        PIXEL03_80
8337
                        PIXEL10_10
8338
                        PIXEL11_30
8339
                        PIXEL12_30
8340
                        PIXEL13_10
8341
                        PIXEL20_10
8342
                        PIXEL21_30
8343
                        PIXEL22_0
8344
                        if (Diff(w[6], w[8]))
8345
                        {
8346
                            PIXEL23_0
8347
                            PIXEL32_0
8348
                            PIXEL33_0
8349
                        }
8350
                        else
8351
                        {
8352
                            PIXEL23_50
8353
                            PIXEL32_50
8354
                            PIXEL33_50
8355
                        }
8356
                        PIXEL30_80
8357
                        PIXEL31_10
8358
                        break;
8359
                    }
8360
                case 106:
8361
                    {
8362
                        PIXEL00_80
8363
                        PIXEL01_10
8364
                        PIXEL02_10
8365
                        PIXEL03_80
8366
                        PIXEL10_10
8367
                        PIXEL11_30
8368
                        PIXEL12_30
8369
                        PIXEL13_61
8370
                        if (Diff(w[8], w[4]))
8371
                        {
8372
                            PIXEL20_0
8373
                            PIXEL30_0
8374
                            PIXEL31_0
8375
                        }
8376
                        else
8377
                        {
8378
                            PIXEL20_50
8379
                            PIXEL30_50
8380
                            PIXEL31_50
8381
                        }
8382
                        PIXEL21_0
8383
                        PIXEL22_30
8384
                        PIXEL23_61
8385
                        PIXEL32_10
8386
                        PIXEL33_80
8387
                        break;
8388
                    }
8389
                case 30:
8390
                    {
8391
                        PIXEL00_80
8392
                        PIXEL01_10
8393
                        if (Diff(w[2], w[6]))
8394
                        {
8395
                            PIXEL02_0
8396
                            PIXEL03_0
8397
                            PIXEL13_0
8398
                        }
8399
                        else
8400
                        {
8401
                            PIXEL02_50
8402
                            PIXEL03_50
8403
                            PIXEL13_50
8404
                        }
8405
                        PIXEL10_10
8406
                        PIXEL11_30
8407
                        PIXEL12_0
8408
                        PIXEL20_10
8409
                        PIXEL21_30
8410
                        PIXEL22_30
8411
                        PIXEL23_10
8412
                        PIXEL30_80
8413
                        PIXEL31_61
8414
                        PIXEL32_61
8415
                        PIXEL33_80
8416
                        break;
8417
                    }
8418
                case 210:
8419
                    {
8420
                        PIXEL00_80
8421
                        PIXEL01_10
8422
                        PIXEL02_10
8423
                        PIXEL03_80
8424
                        PIXEL10_61
8425
                        PIXEL11_30
8426
                        PIXEL12_30
8427
                        PIXEL13_10
8428
                        PIXEL20_61
8429
                        PIXEL21_30
8430
                        PIXEL22_0
8431
                        if (Diff(w[6], w[8]))
8432
                        {
8433
                            PIXEL23_0
8434
                            PIXEL32_0
8435
                            PIXEL33_0
8436
                        }
8437
                        else
8438
                        {
8439
                            PIXEL23_50
8440
                            PIXEL32_50
8441
                            PIXEL33_50
8442
                        }
8443
                        PIXEL30_80
8444
                        PIXEL31_10
8445
                        break;
8446
                    }
8447
                case 120:
8448
                    {
8449
                        PIXEL00_80
8450
                        PIXEL01_61
8451
                        PIXEL02_61
8452
                        PIXEL03_80
8453
                        PIXEL10_10
8454
                        PIXEL11_30
8455
                        PIXEL12_30
8456
                        PIXEL13_10
8457
                        if (Diff(w[8], w[4]))
8458
                        {
8459
                            PIXEL20_0
8460
                            PIXEL30_0
8461
                            PIXEL31_0
8462
                        }
8463
                        else
8464
                        {
8465
                            PIXEL20_50
8466
                            PIXEL30_50
8467
                            PIXEL31_50
8468
                        }
8469
                        PIXEL21_0
8470
                        PIXEL22_30
8471
                        PIXEL23_10
8472
                        PIXEL32_10
8473
                        PIXEL33_80
8474
                        break;
8475
                    }
8476
                case 75:
8477
                    {
8478
                        if (Diff(w[4], w[2]))
8479
                        {
8480
                            PIXEL00_0
8481
                            PIXEL01_0
8482
                            PIXEL10_0
8483
                        }
8484
                        else
8485
                        {
8486
                            PIXEL00_50
8487
                            PIXEL01_50
8488
                            PIXEL10_50
8489
                        }
8490
                        PIXEL02_10
8491
                        PIXEL03_80
8492
                        PIXEL11_0
8493
                        PIXEL12_30
8494
                        PIXEL13_61
8495
                        PIXEL20_10
8496
                        PIXEL21_30
8497
                        PIXEL22_30
8498
                        PIXEL23_61
8499
                        PIXEL30_80
8500
                        PIXEL31_10
8501
                        PIXEL32_10
8502
                        PIXEL33_80
8503
                        break;
8504
                    }
8505
                case 29:
8506
                    {
8507
                        PIXEL00_82
8508
                        PIXEL01_82
8509
                        PIXEL02_81
8510
                        PIXEL03_81
8511
                        PIXEL10_32
8512
                        PIXEL11_32
8513
                        PIXEL12_31
8514
                        PIXEL13_31
8515
                        PIXEL20_10
8516
                        PIXEL21_30
8517
                        PIXEL22_30
8518
                        PIXEL23_10
8519
                        PIXEL30_80
8520
                        PIXEL31_61
8521
                        PIXEL32_61
8522
                        PIXEL33_80
8523
                        break;
8524
                    }
8525
                case 198:
8526
                    {
8527
                        PIXEL00_80
8528
                        PIXEL01_10
8529
                        PIXEL02_32
8530
                        PIXEL03_82
8531
                        PIXEL10_61
8532
                        PIXEL11_30
8533
                        PIXEL12_32
8534
                        PIXEL13_82
8535
                        PIXEL20_61
8536
                        PIXEL21_30
8537
                        PIXEL22_31
8538
                        PIXEL23_81
8539
                        PIXEL30_80
8540
                        PIXEL31_10
8541
                        PIXEL32_31
8542
                        PIXEL33_81
8543
                        break;
8544
                    }
8545
                case 184:
8546
                    {
8547
                        PIXEL00_80
8548
                        PIXEL01_61
8549
                        PIXEL02_61
8550
                        PIXEL03_80
8551
                        PIXEL10_10
8552
                        PIXEL11_30
8553
                        PIXEL12_30
8554
                        PIXEL13_10
8555
                        PIXEL20_31
8556
                        PIXEL21_31
8557
                        PIXEL22_32
8558
                        PIXEL23_32
8559
                        PIXEL30_81
8560
                        PIXEL31_81
8561
                        PIXEL32_82
8562
                        PIXEL33_82
8563
                        break;
8564
                    }
8565
                case 99:
8566
                    {
8567
                        PIXEL00_81
8568
                        PIXEL01_31
8569
                        PIXEL02_10
8570
                        PIXEL03_80
8571
                        PIXEL10_81
8572
                        PIXEL11_31
8573
                        PIXEL12_30
8574
                        PIXEL13_61
8575
                        PIXEL20_82
8576
                        PIXEL21_32
8577
                        PIXEL22_30
8578
                        PIXEL23_61
8579
                        PIXEL30_82
8580
                        PIXEL31_32
8581
                        PIXEL32_10
8582
                        PIXEL33_80
8583
                        break;
8584
                    }
8585
                case 57:
8586
                    {
8587
                        PIXEL00_82
8588
                        PIXEL01_82
8589
                        PIXEL02_61
8590
                        PIXEL03_80
8591
                        PIXEL10_32
8592
                        PIXEL11_32
8593
                        PIXEL12_30
8594
                        PIXEL13_10
8595
                        PIXEL20_31
8596
                        PIXEL21_31
8597
                        PIXEL22_30
8598
                        PIXEL23_10
8599
                        PIXEL30_81
8600
                        PIXEL31_81
8601
                        PIXEL32_61
8602
                        PIXEL33_80
8603
                        break;
8604
                    }
8605
                case 71:
8606
                    {
8607
                        PIXEL00_81
8608
                        PIXEL01_31
8609
                        PIXEL02_32
8610
                        PIXEL03_82
8611
                        PIXEL10_81
8612
                        PIXEL11_31
8613
                        PIXEL12_32
8614
                        PIXEL13_82
8615
                        PIXEL20_61
8616
                        PIXEL21_30
8617
                        PIXEL22_30
8618
                        PIXEL23_61
8619
                        PIXEL30_80
8620
                        PIXEL31_10
8621
                        PIXEL32_10
8622
                        PIXEL33_80
8623
                        break;
8624
                    }
8625
                case 156:
8626
                    {
8627
                        PIXEL00_80
8628
                        PIXEL01_61
8629
                        PIXEL02_81
8630
                        PIXEL03_81
8631
                        PIXEL10_10
8632
                        PIXEL11_30
8633
                        PIXEL12_31
8634
                        PIXEL13_31
8635
                        PIXEL20_10
8636
                        PIXEL21_30
8637
                        PIXEL22_32
8638
                        PIXEL23_32
8639
                        PIXEL30_80
8640
                        PIXEL31_61
8641
                        PIXEL32_82
8642
                        PIXEL33_82
8643
                        break;
8644
                    }
8645
                case 226:
8646
                    {
8647
                        PIXEL00_80
8648
                        PIXEL01_10
8649
                        PIXEL02_10
8650
                        PIXEL03_80
8651
                        PIXEL10_61
8652
                        PIXEL11_30
8653
                        PIXEL12_30
8654
                        PIXEL13_61
8655
                        PIXEL20_82
8656
                        PIXEL21_32
8657
                        PIXEL22_31
8658
                        PIXEL23_81
8659
                        PIXEL30_82
8660
                        PIXEL31_32
8661
                        PIXEL32_31
8662
                        PIXEL33_81
8663
                        break;
8664
                    }
8665
                case 60:
8666
                    {
8667
                        PIXEL00_80
8668
                        PIXEL01_61
8669
                        PIXEL02_81
8670
                        PIXEL03_81
8671
                        PIXEL10_10
8672
                        PIXEL11_30
8673
                        PIXEL12_31
8674
                        PIXEL13_31
8675
                        PIXEL20_31
8676
                        PIXEL21_31
8677
                        PIXEL22_30
8678
                        PIXEL23_10
8679
                        PIXEL30_81
8680
                        PIXEL31_81
8681
                        PIXEL32_61
8682
                        PIXEL33_80
8683
                        break;
8684
                    }
8685
                case 195:
8686
                    {
8687
                        PIXEL00_81
8688
                        PIXEL01_31
8689
                        PIXEL02_10
8690
                        PIXEL03_80
8691
                        PIXEL10_81
8692
                        PIXEL11_31
8693
                        PIXEL12_30
8694
                        PIXEL13_61
8695
                        PIXEL20_61
8696
                        PIXEL21_30
8697
                        PIXEL22_31
8698
                        PIXEL23_81
8699
                        PIXEL30_80
8700
                        PIXEL31_10
8701
                        PIXEL32_31
8702
                        PIXEL33_81
8703
                        break;
8704
                    }
8705
                case 102:
8706
                    {
8707
                        PIXEL00_80
8708
                        PIXEL01_10
8709
                        PIXEL02_32
8710
                        PIXEL03_82
8711
                        PIXEL10_61
8712
                        PIXEL11_30
8713
                        PIXEL12_32
8714
                        PIXEL13_82
8715
                        PIXEL20_82
8716
                        PIXEL21_32
8717
                        PIXEL22_30
8718
                        PIXEL23_61
8719
                        PIXEL30_82
8720
                        PIXEL31_32
8721
                        PIXEL32_10
8722
                        PIXEL33_80
8723
                        break;
8724
                    }
8725
                case 153:
8726
                    {
8727
                        PIXEL00_82
8728
                        PIXEL01_82
8729
                        PIXEL02_61
8730
                        PIXEL03_80
8731
                        PIXEL10_32
8732
                        PIXEL11_32
8733
                        PIXEL12_30
8734
                        PIXEL13_10
8735
                        PIXEL20_10
8736
                        PIXEL21_30
8737
                        PIXEL22_32
8738
                        PIXEL23_32
8739
                        PIXEL30_80
8740
                        PIXEL31_61
8741
                        PIXEL32_82
8742
                        PIXEL33_82
8743
                        break;
8744
                    }
8745
                case 58:
8746
                    {
8747
                        if (Diff(w[4], w[2]))
8748
                        {
8749
                            PIXEL00_80
8750
                            PIXEL01_10
8751
                            PIXEL10_10
8752
                            PIXEL11_30
8753
                        }
8754
                        else
8755
                        {
8756
                            PIXEL00_20
8757
                            PIXEL01_12
8758
                            PIXEL10_11
8759
                            PIXEL11_0
8760
                        }
8761
                        if (Diff(w[2], w[6]))
8762
                        {
8763
                            PIXEL02_10
8764
                            PIXEL03_80
8765
                            PIXEL12_30
8766
                            PIXEL13_10
8767
                        }
8768
                        else
8769
                        {
8770
                            PIXEL02_11
8771
                            PIXEL03_20
8772
                            PIXEL12_0
8773
                            PIXEL13_12
8774
                        }
8775
                        PIXEL20_31
8776
                        PIXEL21_31
8777
                        PIXEL22_30
8778
                        PIXEL23_10
8779
                        PIXEL30_81
8780
                        PIXEL31_81
8781
                        PIXEL32_61
8782
                        PIXEL33_80
8783
                        break;
8784
                    }
8785
                case 83:
8786
                    {
8787
                        PIXEL00_81
8788
                        PIXEL01_31
8789
                        if (Diff(w[2], w[6]))
8790
                        {
8791
                            PIXEL02_10
8792
                            PIXEL03_80
8793
                            PIXEL12_30
8794
                            PIXEL13_10
8795
                        }
8796
                        else
8797
                        {
8798
                            PIXEL02_11
8799
                            PIXEL03_20
8800
                            PIXEL12_0
8801
                            PIXEL13_12
8802
                        }
8803
                        PIXEL10_81
8804
                        PIXEL11_31
8805
                        PIXEL20_61
8806
                        PIXEL21_30
8807
                        if (Diff(w[6], w[8]))
8808
                        {
8809
                            PIXEL22_30
8810
                            PIXEL23_10
8811
                            PIXEL32_10
8812
                            PIXEL33_80
8813
                        }
8814
                        else
8815
                        {
8816
                            PIXEL22_0
8817
                            PIXEL23_11
8818
                            PIXEL32_12
8819
                            PIXEL33_20
8820
                        }
8821
                        PIXEL30_80
8822
                        PIXEL31_10
8823
                        break;
8824
                    }
8825
                case 92:
8826
                    {
8827
                        PIXEL00_80
8828
                        PIXEL01_61
8829
                        PIXEL02_81
8830
                        PIXEL03_81
8831
                        PIXEL10_10
8832
                        PIXEL11_30
8833
                        PIXEL12_31
8834
                        PIXEL13_31
8835
                        if (Diff(w[8], w[4]))
8836
                        {
8837
                            PIXEL20_10
8838
                            PIXEL21_30
8839
                            PIXEL30_80
8840
                            PIXEL31_10
8841
                        }
8842
                        else
8843
                        {
8844
                            PIXEL20_12
8845
                            PIXEL21_0
8846
                            PIXEL30_20
8847
                            PIXEL31_11
8848
                        }
8849
                        if (Diff(w[6], w[8]))
8850
                        {
8851
                            PIXEL22_30
8852
                            PIXEL23_10
8853
                            PIXEL32_10
8854
                            PIXEL33_80
8855
                        }
8856
                        else
8857
                        {
8858
                            PIXEL22_0
8859
                            PIXEL23_11
8860
                            PIXEL32_12
8861
                            PIXEL33_20
8862
                        }
8863
                        break;
8864
                    }
8865
                case 202:
8866
                    {
8867
                        if (Diff(w[4], w[2]))
8868
                        {
8869
                            PIXEL00_80
8870
                            PIXEL01_10
8871
                            PIXEL10_10
8872
                            PIXEL11_30
8873
                        }
8874
                        else
8875
                        {
8876
                            PIXEL00_20
8877
                            PIXEL01_12
8878
                            PIXEL10_11
8879
                            PIXEL11_0
8880
                        }
8881
                        PIXEL02_10
8882
                        PIXEL03_80
8883
                        PIXEL12_30
8884
                        PIXEL13_61
8885
                        if (Diff(w[8], w[4]))
8886
                        {
8887
                            PIXEL20_10
8888
                            PIXEL21_30
8889
                            PIXEL30_80
8890
                            PIXEL31_10
8891
                        }
8892
                        else
8893
                        {
8894
                            PIXEL20_12
8895
                            PIXEL21_0
8896
                            PIXEL30_20
8897
                            PIXEL31_11
8898
                        }
8899
                        PIXEL22_31
8900
                        PIXEL23_81
8901
                        PIXEL32_31
8902
                        PIXEL33_81
8903
                        break;
8904
                    }
8905
                case 78:
8906
                    {
8907
                        if (Diff(w[4], w[2]))
8908
                        {
8909
                            PIXEL00_80
8910
                            PIXEL01_10
8911
                            PIXEL10_10
8912
                            PIXEL11_30
8913
                        }
8914
                        else
8915
                        {
8916
                            PIXEL00_20
8917
                            PIXEL01_12
8918
                            PIXEL10_11
8919
                            PIXEL11_0
8920
                        }
8921
                        PIXEL02_32
8922
                        PIXEL03_82
8923
                        PIXEL12_32
8924
                        PIXEL13_82
8925
                        if (Diff(w[8], w[4]))
8926
                        {
8927
                            PIXEL20_10
8928
                            PIXEL21_30
8929
                            PIXEL30_80
8930
                            PIXEL31_10
8931
                        }
8932
                        else
8933
                        {
8934
                            PIXEL20_12
8935
                            PIXEL21_0
8936
                            PIXEL30_20
8937
                            PIXEL31_11
8938
                        }
8939
                        PIXEL22_30
8940
                        PIXEL23_61
8941
                        PIXEL32_10
8942
                        PIXEL33_80
8943
                        break;
8944
                    }
8945
                case 154:
8946
                    {
8947
                        if (Diff(w[4], w[2]))
8948
                        {
8949
                            PIXEL00_80
8950
                            PIXEL01_10
8951
                            PIXEL10_10
8952
                            PIXEL11_30
8953
                        }
8954
                        else
8955
                        {
8956
                            PIXEL00_20
8957
                            PIXEL01_12
8958
                            PIXEL10_11
8959
                            PIXEL11_0
8960
                        }
8961
                        if (Diff(w[2], w[6]))
8962
                        {
8963
                            PIXEL02_10
8964
                            PIXEL03_80
8965
                            PIXEL12_30
8966
                            PIXEL13_10
8967
                        }
8968
                        else
8969
                        {
8970
                            PIXEL02_11
8971
                            PIXEL03_20
8972
                            PIXEL12_0
8973
                            PIXEL13_12
8974
                        }
8975
                        PIXEL20_10
8976
                        PIXEL21_30
8977
                        PIXEL22_32
8978
                        PIXEL23_32
8979
                        PIXEL30_80
8980
                        PIXEL31_61
8981
                        PIXEL32_82
8982
                        PIXEL33_82
8983
                        break;
8984
                    }
8985
                case 114:
8986
                    {
8987
                        PIXEL00_80
8988
                        PIXEL01_10
8989
                        if (Diff(w[2], w[6]))
8990
                        {
8991
                            PIXEL02_10
8992
                            PIXEL03_80
8993
                            PIXEL12_30
8994
                            PIXEL13_10
8995
                        }
8996
                        else
8997
                        {
8998
                            PIXEL02_11
8999
                            PIXEL03_20
9000
                            PIXEL12_0
9001
                            PIXEL13_12
9002
                        }
9003
                        PIXEL10_61
9004
                        PIXEL11_30
9005
                        PIXEL20_82
9006
                        PIXEL21_32
9007
                        if (Diff(w[6], w[8]))
9008
                        {
9009
                            PIXEL22_30
9010
                            PIXEL23_10
9011
                            PIXEL32_10
9012
                            PIXEL33_80
9013
                        }
9014
                        else
9015
                        {
9016
                            PIXEL22_0
9017
                            PIXEL23_11
9018
                            PIXEL32_12
9019
                            PIXEL33_20
9020
                        }
9021
                        PIXEL30_82
9022
                        PIXEL31_32
9023
                        break;
9024
                    }
9025
                case 89:
9026
                    {
9027
                        PIXEL00_82
9028
                        PIXEL01_82
9029
                        PIXEL02_61
9030
                        PIXEL03_80
9031
                        PIXEL10_32
9032
                        PIXEL11_32
9033
                        PIXEL12_30
9034
                        PIXEL13_10
9035
                        if (Diff(w[8], w[4]))
9036
                        {
9037
                            PIXEL20_10
9038
                            PIXEL21_30
9039
                            PIXEL30_80
9040
                            PIXEL31_10
9041
                        }
9042
                        else
9043
                        {
9044
                            PIXEL20_12
9045
                            PIXEL21_0
9046
                            PIXEL30_20
9047
                            PIXEL31_11
9048
                        }
9049
                        if (Diff(w[6], w[8]))
9050
                        {
9051
                            PIXEL22_30
9052
                            PIXEL23_10
9053
                            PIXEL32_10
9054
                            PIXEL33_80
9055
                        }
9056
                        else
9057
                        {
9058
                            PIXEL22_0
9059
                            PIXEL23_11
9060
                            PIXEL32_12
9061
                            PIXEL33_20
9062
                        }
9063
                        break;
9064
                    }
9065
                case 90:
9066
                    {
9067
                        if (Diff(w[4], w[2]))
9068
                        {
9069
                            PIXEL00_80
9070
                            PIXEL01_10
9071
                            PIXEL10_10
9072
                            PIXEL11_30
9073
                        }
9074
                        else
9075
                        {
9076
                            PIXEL00_20
9077
                            PIXEL01_12
9078
                            PIXEL10_11
9079
                            PIXEL11_0
9080
                        }
9081
                        if (Diff(w[2], w[6]))
9082
                        {
9083
                            PIXEL02_10
9084
                            PIXEL03_80
9085
                            PIXEL12_30
9086
                            PIXEL13_10
9087
                        }
9088
                        else
9089
                        {
9090
                            PIXEL02_11
9091
                            PIXEL03_20
9092
                            PIXEL12_0
9093
                            PIXEL13_12
9094
                        }
9095
                        if (Diff(w[8], w[4]))
9096
                        {
9097
                            PIXEL20_10
9098
                            PIXEL21_30
9099
                            PIXEL30_80
9100
                            PIXEL31_10
9101
                        }
9102
                        else
9103
                        {
9104
                            PIXEL20_12
9105
                            PIXEL21_0
9106
                            PIXEL30_20
9107
                            PIXEL31_11
9108
                        }
9109
                        if (Diff(w[6], w[8]))
9110
                        {
9111
                            PIXEL22_30
9112
                            PIXEL23_10
9113
                            PIXEL32_10
9114
                            PIXEL33_80
9115
                        }
9116
                        else
9117
                        {
9118
                            PIXEL22_0
9119
                            PIXEL23_11
9120
                            PIXEL32_12
9121
                            PIXEL33_20
9122
                        }
9123
                        break;
9124
                    }
9125
                case 55:
9126
                case 23:
9127
                    {
9128
                        if (Diff(w[2], w[6]))
9129
                        {
9130
                            PIXEL00_81
9131
                            PIXEL01_31
9132
                            PIXEL02_0
9133
                            PIXEL03_0
9134
                            PIXEL12_0
9135
                            PIXEL13_0
9136
                        }
9137
                        else
9138
                        {
9139
                            PIXEL00_12
9140
                            PIXEL01_14
9141
                            PIXEL02_83
9142
                            PIXEL03_50
9143
                            PIXEL12_70
9144
                            PIXEL13_21
9145
                        }
9146
                        PIXEL10_81
9147
                        PIXEL11_31
9148
                        PIXEL20_60
9149
                        PIXEL21_70
9150
                        PIXEL22_30
9151
                        PIXEL23_10
9152
                        PIXEL30_20
9153
                        PIXEL31_60
9154
                        PIXEL32_61
9155
                        PIXEL33_80
9156
                        break;
9157
                    }
9158
                case 182:
9159
                case 150:
9160
                    {
9161
                        PIXEL00_80
9162
                        PIXEL01_10
9163
                        if (Diff(w[2], w[6]))
9164
                        {
9165
                            PIXEL02_0
9166
                            PIXEL03_0
9167
                            PIXEL12_0
9168
                            PIXEL13_0
9169
                            PIXEL23_32
9170
                            PIXEL33_82
9171
                        }
9172
                        else
9173
                        {
9174
                            PIXEL02_21
9175
                            PIXEL03_50
9176
                            PIXEL12_70
9177
                            PIXEL13_83
9178
                            PIXEL23_13
9179
                            PIXEL33_11
9180
                        }
9181
                        PIXEL10_61
9182
                        PIXEL11_30
9183
                        PIXEL20_60
9184
                        PIXEL21_70
9185
                        PIXEL22_32
9186
                        PIXEL30_20
9187
                        PIXEL31_60
9188
                        PIXEL32_82
9189
                        break;
9190
                    }
9191
                case 213:
9192
                case 212:
9193
                    {
9194
                        PIXEL00_20
9195
                        PIXEL01_60
9196
                        PIXEL02_81
9197
                        if (Diff(w[6], w[8]))
9198
                        {
9199
                            PIXEL03_81
9200
                            PIXEL13_31
9201
                            PIXEL22_0
9202
                            PIXEL23_0
9203
                            PIXEL32_0
9204
                            PIXEL33_0
9205
                        }
9206
                        else
9207
                        {
9208
                            PIXEL03_12
9209
                            PIXEL13_14
9210
                            PIXEL22_70
9211
                            PIXEL23_83
9212
                            PIXEL32_21
9213
                            PIXEL33_50
9214
                        }
9215
                        PIXEL10_60
9216
                        PIXEL11_70
9217
                        PIXEL12_31
9218
                        PIXEL20_61
9219
                        PIXEL21_30
9220
                        PIXEL30_80
9221
                        PIXEL31_10
9222
                        break;
9223
                    }
9224
                case 241:
9225
                case 240:
9226
                    {
9227
                        PIXEL00_20
9228
                        PIXEL01_60
9229
                        PIXEL02_61
9230
                        PIXEL03_80
9231
                        PIXEL10_60
9232
                        PIXEL11_70
9233
                        PIXEL12_30
9234
                        PIXEL13_10
9235
                        PIXEL20_82
9236
                        PIXEL21_32
9237
                        if (Diff(w[6], w[8]))
9238
                        {
9239
                            PIXEL22_0
9240
                            PIXEL23_0
9241
                            PIXEL30_82
9242
                            PIXEL31_32
9243
                            PIXEL32_0
9244
                            PIXEL33_0
9245
                        }
9246
                        else
9247
                        {
9248
                            PIXEL22_70
9249
                            PIXEL23_21
9250
                            PIXEL30_11
9251
                            PIXEL31_13
9252
                            PIXEL32_83
9253
                            PIXEL33_50
9254
                        }
9255
                        break;
9256
                    }
9257
                case 236:
9258
                case 232:
9259
                    {
9260
                        PIXEL00_80
9261
                        PIXEL01_61
9262
                        PIXEL02_60
9263
                        PIXEL03_20
9264
                        PIXEL10_10
9265
                        PIXEL11_30
9266
                        PIXEL12_70
9267
                        PIXEL13_60
9268
                        if (Diff(w[8], w[4]))
9269
                        {
9270
                            PIXEL20_0
9271
                            PIXEL21_0
9272
                            PIXEL30_0
9273
                            PIXEL31_0
9274
                            PIXEL32_31
9275
                            PIXEL33_81
9276
                        }
9277
                        else
9278
                        {
9279
                            PIXEL20_21
9280
                            PIXEL21_70
9281
                            PIXEL30_50
9282
                            PIXEL31_83
9283
                            PIXEL32_14
9284
                            PIXEL33_12
9285
                        }
9286
                        PIXEL22_31
9287
                        PIXEL23_81
9288
                        break;
9289
                    }
9290
                case 109:
9291
                case 105:
9292
                    {
9293
                        if (Diff(w[8], w[4]))
9294
                        {
9295
                            PIXEL00_82
9296
                            PIXEL10_32
9297
                            PIXEL20_0
9298
                            PIXEL21_0
9299
                            PIXEL30_0
9300
                            PIXEL31_0
9301
                        }
9302
                        else
9303
                        {
9304
                            PIXEL00_11
9305
                            PIXEL10_13
9306
                            PIXEL20_83
9307
                            PIXEL21_70
9308
                            PIXEL30_50
9309
                            PIXEL31_21
9310
                        }
9311
                        PIXEL01_82
9312
                        PIXEL02_60
9313
                        PIXEL03_20
9314
                        PIXEL11_32
9315
                        PIXEL12_70
9316
                        PIXEL13_60
9317
                        PIXEL22_30
9318
                        PIXEL23_61
9319
                        PIXEL32_10
9320
                        PIXEL33_80
9321
                        break;
9322
                    }
9323
                case 171:
9324
                case 43:
9325
                    {
9326
                        if (Diff(w[4], w[2]))
9327
                        {
9328
                            PIXEL00_0
9329
                            PIXEL01_0
9330
                            PIXEL10_0
9331
                            PIXEL11_0
9332
                            PIXEL20_31
9333
                            PIXEL30_81
9334
                        }
9335
                        else
9336
                        {
9337
                            PIXEL00_50
9338
                            PIXEL01_21
9339
                            PIXEL10_83
9340
                            PIXEL11_70
9341
                            PIXEL20_14
9342
                            PIXEL30_12
9343
                        }
9344
                        PIXEL02_10
9345
                        PIXEL03_80
9346
                        PIXEL12_30
9347
                        PIXEL13_61
9348
                        PIXEL21_31
9349
                        PIXEL22_70
9350
                        PIXEL23_60
9351
                        PIXEL31_81
9352
                        PIXEL32_60
9353
                        PIXEL33_20
9354
                        break;
9355
                    }
9356
                case 143:
9357
                case 15:
9358
                    {
9359
                        if (Diff(w[4], w[2]))
9360
                        {
9361
                            PIXEL00_0
9362
                            PIXEL01_0
9363
                            PIXEL02_32
9364
                            PIXEL03_82
9365
                            PIXEL10_0
9366
                            PIXEL11_0
9367
                        }
9368
                        else
9369
                        {
9370
                            PIXEL00_50
9371
                            PIXEL01_83
9372
                            PIXEL02_13
9373
                            PIXEL03_11
9374
                            PIXEL10_21
9375
                            PIXEL11_70
9376
                        }
9377
                        PIXEL12_32
9378
                        PIXEL13_82
9379
                        PIXEL20_10
9380
                        PIXEL21_30
9381
                        PIXEL22_70
9382
                        PIXEL23_60
9383
                        PIXEL30_80
9384
                        PIXEL31_61
9385
                        PIXEL32_60
9386
                        PIXEL33_20
9387
                        break;
9388
                    }
9389
                case 124:
9390
                    {
9391
                        PIXEL00_80
9392
                        PIXEL01_61
9393
                        PIXEL02_81
9394
                        PIXEL03_81
9395
                        PIXEL10_10
9396
                        PIXEL11_30
9397
                        PIXEL12_31
9398
                        PIXEL13_31
9399
                        if (Diff(w[8], w[4]))
9400
                        {
9401
                            PIXEL20_0
9402
                            PIXEL30_0
9403
                            PIXEL31_0
9404
                        }
9405
                        else
9406
                        {
9407
                            PIXEL20_50
9408
                            PIXEL30_50
9409
                            PIXEL31_50
9410
                        }
9411
                        PIXEL21_0
9412
                        PIXEL22_30
9413
                        PIXEL23_10
9414
                        PIXEL32_10
9415
                        PIXEL33_80
9416
                        break;
9417
                    }
9418
                case 203:
9419
                    {
9420
                        if (Diff(w[4], w[2]))
9421
                        {
9422
                            PIXEL00_0
9423
                            PIXEL01_0
9424
                            PIXEL10_0
9425
                        }
9426
                        else
9427
                        {
9428
                            PIXEL00_50
9429
                            PIXEL01_50
9430
                            PIXEL10_50
9431
                        }
9432
                        PIXEL02_10
9433
                        PIXEL03_80
9434
                        PIXEL11_0
9435
                        PIXEL12_30
9436
                        PIXEL13_61
9437
                        PIXEL20_10
9438
                        PIXEL21_30
9439
                        PIXEL22_31
9440
                        PIXEL23_81
9441
                        PIXEL30_80
9442
                        PIXEL31_10
9443
                        PIXEL32_31
9444
                        PIXEL33_81
9445
                        break;
9446
                    }
9447
                case 62:
9448
                    {
9449
                        PIXEL00_80
9450
                        PIXEL01_10
9451
                        if (Diff(w[2], w[6]))
9452
                        {
9453
                            PIXEL02_0
9454
                            PIXEL03_0
9455
                            PIXEL13_0
9456
                        }
9457
                        else
9458
                        {
9459
                            PIXEL02_50
9460
                            PIXEL03_50
9461
                            PIXEL13_50
9462
                        }
9463
                        PIXEL10_10
9464
                        PIXEL11_30
9465
                        PIXEL12_0
9466
                        PIXEL20_31
9467
                        PIXEL21_31
9468
                        PIXEL22_30
9469
                        PIXEL23_10
9470
                        PIXEL30_81
9471
                        PIXEL31_81
9472
                        PIXEL32_61
9473
                        PIXEL33_80
9474
                        break;
9475
                    }
9476
                case 211:
9477
                    {
9478
                        PIXEL00_81
9479
                        PIXEL01_31
9480
                        PIXEL02_10
9481
                        PIXEL03_80
9482
                        PIXEL10_81
9483
                        PIXEL11_31
9484
                        PIXEL12_30
9485
                        PIXEL13_10
9486
                        PIXEL20_61
9487
                        PIXEL21_30
9488
                        PIXEL22_0
9489
                        if (Diff(w[6], w[8]))
9490
                        {
9491
                            PIXEL23_0
9492
                            PIXEL32_0
9493
                            PIXEL33_0
9494
                        }
9495
                        else
9496
                        {
9497
                            PIXEL23_50
9498
                            PIXEL32_50
9499
                            PIXEL33_50
9500
                        }
9501
                        PIXEL30_80
9502
                        PIXEL31_10
9503
                        break;
9504
                    }
9505
                case 118:
9506
                    {
9507
                        PIXEL00_80
9508
                        PIXEL01_10
9509
                        if (Diff(w[2], w[6]))
9510
                        {
9511
                            PIXEL02_0
9512
                            PIXEL03_0
9513
                            PIXEL13_0
9514
                        }
9515
                        else
9516
                        {
9517
                            PIXEL02_50
9518
                            PIXEL03_50
9519
                            PIXEL13_50
9520
                        }
9521
                        PIXEL10_61
9522
                        PIXEL11_30
9523
                        PIXEL12_0
9524
                        PIXEL20_82
9525
                        PIXEL21_32
9526
                        PIXEL22_30
9527
                        PIXEL23_10
9528
                        PIXEL30_82
9529
                        PIXEL31_32
9530
                        PIXEL32_10
9531
                        PIXEL33_80
9532
                        break;
9533
                    }
9534
                case 217:
9535
                    {
9536
                        PIXEL00_82
9537
                        PIXEL01_82
9538
                        PIXEL02_61
9539
                        PIXEL03_80
9540
                        PIXEL10_32
9541
                        PIXEL11_32
9542
                        PIXEL12_30
9543
                        PIXEL13_10
9544
                        PIXEL20_10
9545
                        PIXEL21_30
9546
                        PIXEL22_0
9547
                        if (Diff(w[6], w[8]))
9548
                        {
9549
                            PIXEL23_0
9550
                            PIXEL32_0
9551
                            PIXEL33_0
9552
                        }
9553
                        else
9554
                        {
9555
                            PIXEL23_50
9556
                            PIXEL32_50
9557
                            PIXEL33_50
9558
                        }
9559
                        PIXEL30_80
9560
                        PIXEL31_10
9561
                        break;
9562
                    }
9563
                case 110:
9564
                    {
9565
                        PIXEL00_80
9566
                        PIXEL01_10
9567
                        PIXEL02_32
9568
                        PIXEL03_82
9569
                        PIXEL10_10
9570
                        PIXEL11_30
9571
                        PIXEL12_32
9572
                        PIXEL13_82
9573
                        if (Diff(w[8], w[4]))
9574
                        {
9575
                            PIXEL20_0
9576
                            PIXEL30_0
9577
                            PIXEL31_0
9578
                        }
9579
                        else
9580
                        {
9581
                            PIXEL20_50
9582
                            PIXEL30_50
9583
                            PIXEL31_50
9584
                        }
9585
                        PIXEL21_0
9586
                        PIXEL22_30
9587
                        PIXEL23_61
9588
                        PIXEL32_10
9589
                        PIXEL33_80
9590
                        break;
9591
                    }
9592
                case 155:
9593
                    {
9594
                        if (Diff(w[4], w[2]))
9595
                        {
9596
                            PIXEL00_0
9597
                            PIXEL01_0
9598
                            PIXEL10_0
9599
                        }
9600
                        else
9601
                        {
9602
                            PIXEL00_50
9603
                            PIXEL01_50
9604
                            PIXEL10_50
9605
                        }
9606
                        PIXEL02_10
9607
                        PIXEL03_80
9608
                        PIXEL11_0
9609
                        PIXEL12_30
9610
                        PIXEL13_10
9611
                        PIXEL20_10
9612
                        PIXEL21_30
9613
                        PIXEL22_32
9614
                        PIXEL23_32
9615
                        PIXEL30_80
9616
                        PIXEL31_61
9617
                        PIXEL32_82
9618
                        PIXEL33_82
9619
                        break;
9620
                    }
9621
                case 188:
9622
                    {
9623
                        PIXEL00_80
9624
                        PIXEL01_61
9625
                        PIXEL02_81
9626
                        PIXEL03_81
9627
                        PIXEL10_10
9628
                        PIXEL11_30
9629
                        PIXEL12_31
9630
                        PIXEL13_31
9631
                        PIXEL20_31
9632
                        PIXEL21_31
9633
                        PIXEL22_32
9634
                        PIXEL23_32
9635
                        PIXEL30_81
9636
                        PIXEL31_81
9637
                        PIXEL32_82
9638
                        PIXEL33_82
9639
                        break;
9640
                    }
9641
                case 185:
9642
                    {
9643
                        PIXEL00_82
9644
                        PIXEL01_82
9645
                        PIXEL02_61
9646
                        PIXEL03_80
9647
                        PIXEL10_32
9648
                        PIXEL11_32
9649
                        PIXEL12_30
9650
                        PIXEL13_10
9651
                        PIXEL20_31
9652
                        PIXEL21_31
9653
                        PIXEL22_32
9654
                        PIXEL23_32
9655
                        PIXEL30_81
9656
                        PIXEL31_81
9657
                        PIXEL32_82
9658
                        PIXEL33_82
9659
                        break;
9660
                    }
9661
                case 61:
9662
                    {
9663
                        PIXEL00_82
9664
                        PIXEL01_82
9665
                        PIXEL02_81
9666
                        PIXEL03_81
9667
                        PIXEL10_32
9668
                        PIXEL11_32
9669
                        PIXEL12_31
9670
                        PIXEL13_31
9671
                        PIXEL20_31
9672
                        PIXEL21_31
9673
                        PIXEL22_30
9674
                        PIXEL23_10
9675
                        PIXEL30_81
9676
                        PIXEL31_81
9677
                        PIXEL32_61
9678
                        PIXEL33_80
9679
                        break;
9680
                    }
9681
                case 157:
9682
                    {
9683
                        PIXEL00_82
9684
                        PIXEL01_82
9685
                        PIXEL02_81
9686
                        PIXEL03_81
9687
                        PIXEL10_32
9688
                        PIXEL11_32
9689
                        PIXEL12_31
9690
                        PIXEL13_31
9691
                        PIXEL20_10
9692
                        PIXEL21_30
9693
                        PIXEL22_32
9694
                        PIXEL23_32
9695
                        PIXEL30_80
9696
                        PIXEL31_61
9697
                        PIXEL32_82
9698
                        PIXEL33_82
9699
                        break;
9700
                    }
9701
                case 103:
9702
                    {
9703
                        PIXEL00_81
9704
                        PIXEL01_31
9705
                        PIXEL02_32
9706
                        PIXEL03_82
9707
                        PIXEL10_81
9708
                        PIXEL11_31
9709
                        PIXEL12_32
9710
                        PIXEL13_82
9711
                        PIXEL20_82
9712
                        PIXEL21_32
9713
                        PIXEL22_30
9714
                        PIXEL23_61
9715
                        PIXEL30_82
9716
                        PIXEL31_32
9717
                        PIXEL32_10
9718
                        PIXEL33_80
9719
                        break;
9720
                    }
9721
                case 227:
9722
                    {
9723
                        PIXEL00_81
9724
                        PIXEL01_31
9725
                        PIXEL02_10
9726
                        PIXEL03_80
9727
                        PIXEL10_81
9728
                        PIXEL11_31
9729
                        PIXEL12_30
9730
                        PIXEL13_61
9731
                        PIXEL20_82
9732
                        PIXEL21_32
9733
                        PIXEL22_31
9734
                        PIXEL23_81
9735
                        PIXEL30_82
9736
                        PIXEL31_32
9737
                        PIXEL32_31
9738
                        PIXEL33_81
9739
                        break;
9740
                    }
9741
                case 230:
9742
                    {
9743
                        PIXEL00_80
9744
                        PIXEL01_10
9745
                        PIXEL02_32
9746
                        PIXEL03_82
9747
                        PIXEL10_61
9748
                        PIXEL11_30
9749
                        PIXEL12_32
9750
                        PIXEL13_82
9751
                        PIXEL20_82
9752
                        PIXEL21_32
9753
                        PIXEL22_31
9754
                        PIXEL23_81
9755
                        PIXEL30_82
9756
                        PIXEL31_32
9757
                        PIXEL32_31
9758
                        PIXEL33_81
9759
                        break;
9760
                    }
9761
                case 199:
9762
                    {
9763
                        PIXEL00_81
9764
                        PIXEL01_31
9765
                        PIXEL02_32
9766
                        PIXEL03_82
9767
                        PIXEL10_81
9768
                        PIXEL11_31
9769
                        PIXEL12_32
9770
                        PIXEL13_82
9771
                        PIXEL20_61
9772
                        PIXEL21_30
9773
                        PIXEL22_31
9774
                        PIXEL23_81
9775
                        PIXEL30_80
9776
                        PIXEL31_10
9777
                        PIXEL32_31
9778
                        PIXEL33_81
9779
                        break;
9780
                    }
9781
                case 220:
9782
                    {
9783
                        PIXEL00_80
9784
                        PIXEL01_61
9785
                        PIXEL02_81
9786
                        PIXEL03_81
9787
                        PIXEL10_10
9788
                        PIXEL11_30
9789
                        PIXEL12_31
9790
                        PIXEL13_31
9791
                        if (Diff(w[8], w[4]))
9792
                        {
9793
                            PIXEL20_10
9794
                            PIXEL21_30
9795
                            PIXEL30_80
9796
                            PIXEL31_10
9797
                        }
9798
                        else
9799
                        {
9800
                            PIXEL20_12
9801
                            PIXEL21_0
9802
                            PIXEL30_20
9803
                            PIXEL31_11
9804
                        }
9805
                        PIXEL22_0
9806
                        if (Diff(w[6], w[8]))
9807
                        {
9808
                            PIXEL23_0
9809
                            PIXEL32_0
9810
                            PIXEL33_0
9811
                        }
9812
                        else
9813
                        {
9814
                            PIXEL23_50
9815
                            PIXEL32_50
9816
                            PIXEL33_50
9817
                        }
9818
                        break;
9819
                    }
9820
                case 158:
9821
                    {
9822
                        if (Diff(w[4], w[2]))
9823
                        {
9824
                            PIXEL00_80
9825
                            PIXEL01_10
9826
                            PIXEL10_10
9827
                            PIXEL11_30
9828
                        }
9829
                        else
9830
                        {
9831
                            PIXEL00_20
9832
                            PIXEL01_12
9833
                            PIXEL10_11
9834
                            PIXEL11_0
9835
                        }
9836
                        if (Diff(w[2], w[6]))
9837
                        {
9838
                            PIXEL02_0
9839
                            PIXEL03_0
9840
                            PIXEL13_0
9841
                        }
9842
                        else
9843
                        {
9844
                            PIXEL02_50
9845
                            PIXEL03_50
9846
                            PIXEL13_50
9847
                        }
9848
                        PIXEL12_0
9849
                        PIXEL20_10
9850
                        PIXEL21_30
9851
                        PIXEL22_32
9852
                        PIXEL23_32
9853
                        PIXEL30_80
9854
                        PIXEL31_61
9855
                        PIXEL32_82
9856
                        PIXEL33_82
9857
                        break;
9858
                    }
9859
                case 234:
9860
                    {
9861
                        if (Diff(w[4], w[2]))
9862
                        {
9863
                            PIXEL00_80
9864
                            PIXEL01_10
9865
                            PIXEL10_10
9866
                            PIXEL11_30
9867
                        }
9868
                        else
9869
                        {
9870
                            PIXEL00_20
9871
                            PIXEL01_12
9872
                            PIXEL10_11
9873
                            PIXEL11_0
9874
                        }
9875
                        PIXEL02_10
9876
                        PIXEL03_80
9877
                        PIXEL12_30
9878
                        PIXEL13_61
9879
                        if (Diff(w[8], w[4]))
9880
                        {
9881
                            PIXEL20_0
9882
                            PIXEL30_0
9883
                            PIXEL31_0
9884
                        }
9885
                        else
9886
                        {
9887
                            PIXEL20_50
9888
                            PIXEL30_50
9889
                            PIXEL31_50
9890
                        }
9891
                        PIXEL21_0
9892
                        PIXEL22_31
9893
                        PIXEL23_81
9894
                        PIXEL32_31
9895
                        PIXEL33_81
9896
                        break;
9897
                    }
9898
                case 242:
9899
                    {
9900
                        PIXEL00_80
9901
                        PIXEL01_10
9902
                        if (Diff(w[2], w[6]))
9903
                        {
9904
                            PIXEL02_10
9905
                            PIXEL03_80
9906
                            PIXEL12_30
9907
                            PIXEL13_10
9908
                        }
9909
                        else
9910
                        {
9911
                            PIXEL02_11
9912
                            PIXEL03_20
9913
                            PIXEL12_0
9914
                            PIXEL13_12
9915
                        }
9916
                        PIXEL10_61
9917
                        PIXEL11_30
9918
                        PIXEL20_82
9919
                        PIXEL21_32
9920
                        PIXEL22_0
9921
                        if (Diff(w[6], w[8]))
9922
                        {
9923
                            PIXEL23_0
9924
                            PIXEL32_0
9925
                            PIXEL33_0
9926
                        }
9927
                        else
9928
                        {
9929
                            PIXEL23_50
9930
                            PIXEL32_50
9931
                            PIXEL33_50
9932
                        }
9933
                        PIXEL30_82
9934
                        PIXEL31_32
9935
                        break;
9936
                    }
9937
                case 59:
9938
                    {
9939
                        if (Diff(w[4], w[2]))
9940
                        {
9941
                            PIXEL00_0
9942
                            PIXEL01_0
9943
                            PIXEL10_0
9944
                        }
9945
                        else
9946
                        {
9947
                            PIXEL00_50
9948
                            PIXEL01_50
9949
                            PIXEL10_50
9950
                        }
9951
                        if (Diff(w[2], w[6]))
9952
                        {
9953
                            PIXEL02_10
9954
                            PIXEL03_80
9955
                            PIXEL12_30
9956
                            PIXEL13_10
9957
                        }
9958
                        else
9959
                        {
9960
                            PIXEL02_11
9961
                            PIXEL03_20
9962
                            PIXEL12_0
9963
                            PIXEL13_12
9964
                        }
9965
                        PIXEL11_0
9966
                        PIXEL20_31
9967
                        PIXEL21_31
9968
                        PIXEL22_30
9969
                        PIXEL23_10
9970
                        PIXEL30_81
9971
                        PIXEL31_81
9972
                        PIXEL32_61
9973
                        PIXEL33_80
9974
                        break;
9975
                    }
9976
                case 121:
9977
                    {
9978
                        PIXEL00_82
9979
                        PIXEL01_82
9980
                        PIXEL02_61
9981
                        PIXEL03_80
9982
                        PIXEL10_32
9983
                        PIXEL11_32
9984
                        PIXEL12_30
9985
                        PIXEL13_10
9986
                        if (Diff(w[8], w[4]))
9987
                        {
9988
                            PIXEL20_0
9989
                            PIXEL30_0
9990
                            PIXEL31_0
9991
                        }
9992
                        else
9993
                        {
9994
                            PIXEL20_50
9995
                            PIXEL30_50
9996
                            PIXEL31_50
9997
                        }
9998
                        PIXEL21_0
9999
                        if (Diff(w[6], w[8]))
10000
                        {
10001
                            PIXEL22_30
10002
                            PIXEL23_10
10003
                            PIXEL32_10
10004
                            PIXEL33_80
10005
                        }
10006
                        else
10007
                        {
10008
                            PIXEL22_0
10009
                            PIXEL23_11
10010
                            PIXEL32_12
10011
                            PIXEL33_20
10012
                        }
10013
                        break;
10014
                    }
10015
                case 87:
10016
                    {
10017
                        PIXEL00_81
10018
                        PIXEL01_31
10019
                        if (Diff(w[2], w[6]))
10020
                        {
10021
                            PIXEL02_0
10022
                            PIXEL03_0
10023
                            PIXEL13_0
10024
                        }
10025
                        else
10026
                        {
10027
                            PIXEL02_50
10028
                            PIXEL03_50
10029
                            PIXEL13_50
10030
                        }
10031
                        PIXEL10_81
10032
                        PIXEL11_31
10033
                        PIXEL12_0
10034
                        PIXEL20_61
10035
                        PIXEL21_30
10036
                        if (Diff(w[6], w[8]))
10037
                        {
10038
                            PIXEL22_30
10039
                            PIXEL23_10
10040
                            PIXEL32_10
10041
                            PIXEL33_80
10042
                        }
10043
                        else
10044
                        {
10045
                            PIXEL22_0
10046
                            PIXEL23_11
10047
                            PIXEL32_12
10048
                            PIXEL33_20
10049
                        }
10050
                        PIXEL30_80
10051
                        PIXEL31_10
10052
                        break;
10053
                    }
10054
                case 79:
10055
                    {
10056
                        if (Diff(w[4], w[2]))
10057
                        {
10058
                            PIXEL00_0
10059
                            PIXEL01_0
10060
                            PIXEL10_0
10061
                        }
10062
                        else
10063
                        {
10064
                            PIXEL00_50
10065
                            PIXEL01_50
10066
                            PIXEL10_50
10067
                        }
10068
                        PIXEL02_32
10069
                        PIXEL03_82
10070
                        PIXEL11_0
10071
                        PIXEL12_32
10072
                        PIXEL13_82
10073
                        if (Diff(w[8], w[4]))
10074
                        {
10075
                            PIXEL20_10
10076
                            PIXEL21_30
10077
                            PIXEL30_80
10078
                            PIXEL31_10
10079
                        }
10080
                        else
10081
                        {
10082
                            PIXEL20_12
10083
                            PIXEL21_0
10084
                            PIXEL30_20
10085
                            PIXEL31_11
10086
                        }
10087
                        PIXEL22_30
10088
                        PIXEL23_61
10089
                        PIXEL32_10
10090
                        PIXEL33_80
10091
                        break;
10092
                    }
10093
                case 122:
10094
                    {
10095
                        if (Diff(w[4], w[2]))
10096
                        {
10097
                            PIXEL00_80
10098
                            PIXEL01_10
10099
                            PIXEL10_10
10100
                            PIXEL11_30
10101
                        }
10102
                        else
10103
                        {
10104
                            PIXEL00_20
10105
                            PIXEL01_12
10106
                            PIXEL10_11
10107
                            PIXEL11_0
10108
                        }
10109
                        if (Diff(w[2], w[6]))
10110
                        {
10111
                            PIXEL02_10
10112
                            PIXEL03_80
10113
                            PIXEL12_30
10114
                            PIXEL13_10
10115
                        }
10116
                        else
10117
                        {
10118
                            PIXEL02_11
10119
                            PIXEL03_20
10120
                            PIXEL12_0
10121
                            PIXEL13_12
10122
                        }
10123
                        if (Diff(w[8], w[4]))
10124
                        {
10125
                            PIXEL20_0
10126
                            PIXEL30_0
10127
                            PIXEL31_0
10128
                        }
10129
                        else
10130
                        {
10131
                            PIXEL20_50
10132
                            PIXEL30_50
10133
                            PIXEL31_50
10134
                        }
10135
                        PIXEL21_0
10136
                        if (Diff(w[6], w[8]))
10137
                        {
10138
                            PIXEL22_30
10139
                            PIXEL23_10
10140
                            PIXEL32_10
10141
                            PIXEL33_80
10142
                        }
10143
                        else
10144
                        {
10145
                            PIXEL22_0
10146
                            PIXEL23_11
10147
                            PIXEL32_12
10148
                            PIXEL33_20
10149
                        }
10150
                        break;
10151
                    }
10152
                case 94:
10153
                    {
10154
                        if (Diff(w[4], w[2]))
10155
                        {
10156
                            PIXEL00_80
10157
                            PIXEL01_10
10158
                            PIXEL10_10
10159
                            PIXEL11_30
10160
                        }
10161
                        else
10162
                        {
10163
                            PIXEL00_20
10164
                            PIXEL01_12
10165
                            PIXEL10_11
10166
                            PIXEL11_0
10167
                        }
10168
                        if (Diff(w[2], w[6]))
10169
                        {
10170
                            PIXEL02_0
10171
                            PIXEL03_0
10172
                            PIXEL13_0
10173
                        }
10174
                        else
10175
                        {
10176
                            PIXEL02_50
10177
                            PIXEL03_50
10178
                            PIXEL13_50
10179
                        }
10180
                        PIXEL12_0
10181
                        if (Diff(w[8], w[4]))
10182
                        {
10183
                            PIXEL20_10
10184
                            PIXEL21_30
10185
                            PIXEL30_80
10186
                            PIXEL31_10
10187
                        }
10188
                        else
10189
                        {
10190
                            PIXEL20_12
10191
                            PIXEL21_0
10192
                            PIXEL30_20
10193
                            PIXEL31_11
10194
                        }
10195
                        if (Diff(w[6], w[8]))
10196
                        {
10197
                            PIXEL22_30
10198
                            PIXEL23_10
10199
                            PIXEL32_10
10200
                            PIXEL33_80
10201
                        }
10202
                        else
10203
                        {
10204
                            PIXEL22_0
10205
                            PIXEL23_11
10206
                            PIXEL32_12
10207
                            PIXEL33_20
10208
                        }
10209
                        break;
10210
                    }
10211
                case 218:
10212
                    {
10213
                        if (Diff(w[4], w[2]))
10214
                        {
10215
                            PIXEL00_80
10216
                            PIXEL01_10
10217
                            PIXEL10_10
10218
                            PIXEL11_30
10219
                        }
10220
                        else
10221
                        {
10222
                            PIXEL00_20
10223
                            PIXEL01_12
10224
                            PIXEL10_11
10225
                            PIXEL11_0
10226
                        }
10227
                        if (Diff(w[2], w[6]))
10228
                        {
10229
                            PIXEL02_10
10230
                            PIXEL03_80
10231
                            PIXEL12_30
10232
                            PIXEL13_10
10233
                        }
10234
                        else
10235
                        {
10236
                            PIXEL02_11
10237
                            PIXEL03_20
10238
                            PIXEL12_0
10239
                            PIXEL13_12
10240
                        }
10241
                        if (Diff(w[8], w[4]))
10242
                        {
10243
                            PIXEL20_10
10244
                            PIXEL21_30
10245
                            PIXEL30_80
10246
                            PIXEL31_10
10247
                        }
10248
                        else
10249
                        {
10250
                            PIXEL20_12
10251
                            PIXEL21_0
10252
                            PIXEL30_20
10253
                            PIXEL31_11
10254
                        }
10255
                        PIXEL22_0
10256
                        if (Diff(w[6], w[8]))
10257
                        {
10258
                            PIXEL23_0
10259
                            PIXEL32_0
10260
                            PIXEL33_0
10261
                        }
10262
                        else
10263
                        {
10264
                            PIXEL23_50
10265
                            PIXEL32_50
10266
                            PIXEL33_50
10267
                        }
10268
                        break;
10269
                    }
10270
                case 91:
10271
                    {
10272
                        if (Diff(w[4], w[2]))
10273
                        {
10274
                            PIXEL00_0
10275
                            PIXEL01_0
10276
                            PIXEL10_0
10277
                        }
10278
                        else
10279
                        {
10280
                            PIXEL00_50
10281
                            PIXEL01_50
10282
                            PIXEL10_50
10283
                        }
10284
                        if (Diff(w[2], w[6]))
10285
                        {
10286
                            PIXEL02_10
10287
                            PIXEL03_80
10288
                            PIXEL12_30
10289
                            PIXEL13_10
10290
                        }
10291
                        else
10292
                        {
10293
                            PIXEL02_11
10294
                            PIXEL03_20
10295
                            PIXEL12_0
10296
                            PIXEL13_12
10297
                        }
10298
                        PIXEL11_0
10299
                        if (Diff(w[8], w[4]))
10300
                        {
10301
                            PIXEL20_10
10302
                            PIXEL21_30
10303
                            PIXEL30_80
10304
                            PIXEL31_10
10305
                        }
10306
                        else
10307
                        {
10308
                            PIXEL20_12
10309
                            PIXEL21_0
10310
                            PIXEL30_20
10311
                            PIXEL31_11
10312
                        }
10313
                        if (Diff(w[6], w[8]))
10314
                        {
10315
                            PIXEL22_30
10316
                            PIXEL23_10
10317
                            PIXEL32_10
10318
                            PIXEL33_80
10319
                        }
10320
                        else
10321
                        {
10322
                            PIXEL22_0
10323
                            PIXEL23_11
10324
                            PIXEL32_12
10325
                            PIXEL33_20
10326
                        }
10327
                        break;
10328
                    }
10329
                case 229:
10330
                    {
10331
                        PIXEL00_20
10332
                        PIXEL01_60
10333
                        PIXEL02_60
10334
                        PIXEL03_20
10335
                        PIXEL10_60
10336
                        PIXEL11_70
10337
                        PIXEL12_70
10338
                        PIXEL13_60
10339
                        PIXEL20_82
10340
                        PIXEL21_32
10341
                        PIXEL22_31
10342
                        PIXEL23_81
10343
                        PIXEL30_82
10344
                        PIXEL31_32
10345
                        PIXEL32_31
10346
                        PIXEL33_81
10347
                        break;
10348
                    }
10349
                case 167:
10350
                    {
10351
                        PIXEL00_81
10352
                        PIXEL01_31
10353
                        PIXEL02_32
10354
                        PIXEL03_82
10355
                        PIXEL10_81
10356
                        PIXEL11_31
10357
                        PIXEL12_32
10358
                        PIXEL13_82
10359
                        PIXEL20_60
10360
                        PIXEL21_70
10361
                        PIXEL22_70
10362
                        PIXEL23_60
10363
                        PIXEL30_20
10364
                        PIXEL31_60
10365
                        PIXEL32_60
10366
                        PIXEL33_20
10367
                        break;
10368
                    }
10369
                case 173:
10370
                    {
10371
                        PIXEL00_82
10372
                        PIXEL01_82
10373
                        PIXEL02_60
10374
                        PIXEL03_20
10375
                        PIXEL10_32
10376
                        PIXEL11_32
10377
                        PIXEL12_70
10378
                        PIXEL13_60
10379
                        PIXEL20_31
10380
                        PIXEL21_31
10381
                        PIXEL22_70
10382
                        PIXEL23_60
10383
                        PIXEL30_81
10384
                        PIXEL31_81
10385
                        PIXEL32_60
10386
                        PIXEL33_20
10387
                        break;
10388
                    }
10389
                case 181:
10390
                    {
10391
                        PIXEL00_20
10392
                        PIXEL01_60
10393
                        PIXEL02_81
10394
                        PIXEL03_81
10395
                        PIXEL10_60
10396
                        PIXEL11_70
10397
                        PIXEL12_31
10398
                        PIXEL13_31
10399
                        PIXEL20_60
10400
                        PIXEL21_70
10401
                        PIXEL22_32
10402
                        PIXEL23_32
10403
                        PIXEL30_20
10404
                        PIXEL31_60
10405
                        PIXEL32_82
10406
                        PIXEL33_82
10407
                        break;
10408
                    }
10409
                case 186:
10410
                    {
10411
                        if (Diff(w[4], w[2]))
10412
                        {
10413
                            PIXEL00_80
10414
                            PIXEL01_10
10415
                            PIXEL10_10
10416
                            PIXEL11_30
10417
                        }
10418
                        else
10419
                        {
10420
                            PIXEL00_20
10421
                            PIXEL01_12
10422
                            PIXEL10_11
10423
                            PIXEL11_0
10424
                        }
10425
                        if (Diff(w[2], w[6]))
10426
                        {
10427
                            PIXEL02_10
10428
                            PIXEL03_80
10429
                            PIXEL12_30
10430
                            PIXEL13_10
10431
                        }
10432
                        else
10433
                        {
10434
                            PIXEL02_11
10435
                            PIXEL03_20
10436
                            PIXEL12_0
10437
                            PIXEL13_12
10438
                        }
10439
                        PIXEL20_31
10440
                        PIXEL21_31
10441
                        PIXEL22_32
10442
                        PIXEL23_32
10443
                        PIXEL30_81
10444
                        PIXEL31_81
10445
                        PIXEL32_82
10446
                        PIXEL33_82
10447
                        break;
10448
                    }
10449
                case 115:
10450
                    {
10451
                        PIXEL00_81
10452
                        PIXEL01_31
10453
                        if (Diff(w[2], w[6]))
10454
                        {
10455
                            PIXEL02_10
10456
                            PIXEL03_80
10457
                            PIXEL12_30
10458
                            PIXEL13_10
10459
                        }
10460
                        else
10461
                        {
10462
                            PIXEL02_11
10463
                            PIXEL03_20
10464
                            PIXEL12_0
10465
                            PIXEL13_12
10466
                        }
10467
                        PIXEL10_81
10468
                        PIXEL11_31
10469
                        PIXEL20_82
10470
                        PIXEL21_32
10471
                        if (Diff(w[6], w[8]))
10472
                        {
10473
                            PIXEL22_30
10474
                            PIXEL23_10
10475
                            PIXEL32_10
10476
                            PIXEL33_80
10477
                        }
10478
                        else
10479
                        {
10480
                            PIXEL22_0
10481
                            PIXEL23_11
10482
                            PIXEL32_12
10483
                            PIXEL33_20
10484
                        }
10485
                        PIXEL30_82
10486
                        PIXEL31_32
10487
                        break;
10488
                    }
10489
                case 93:
10490
                    {
10491
                        PIXEL00_82
10492
                        PIXEL01_82
10493
                        PIXEL02_81
10494
                        PIXEL03_81
10495
                        PIXEL10_32
10496
                        PIXEL11_32
10497
                        PIXEL12_31
10498
                        PIXEL13_31
10499
                        if (Diff(w[8], w[4]))
10500
                        {
10501
                            PIXEL20_10
10502
                            PIXEL21_30
10503
                            PIXEL30_80
10504
                            PIXEL31_10
10505
                        }
10506
                        else
10507
                        {
10508
                            PIXEL20_12
10509
                            PIXEL21_0
10510
                            PIXEL30_20
10511
                            PIXEL31_11
10512
                        }
10513
                        if (Diff(w[6], w[8]))
10514
                        {
10515
                            PIXEL22_30
10516
                            PIXEL23_10
10517
                            PIXEL32_10
10518
                            PIXEL33_80
10519
                        }
10520
                        else
10521
                        {
10522
                            PIXEL22_0
10523
                            PIXEL23_11
10524
                            PIXEL32_12
10525
                            PIXEL33_20
10526
                        }
10527
                        break;
10528
                    }
10529
                case 206:
10530
                    {
10531
                        if (Diff(w[4], w[2]))
10532
                        {
10533
                            PIXEL00_80
10534
                            PIXEL01_10
10535
                            PIXEL10_10
10536
                            PIXEL11_30
10537
                        }
10538
                        else
10539
                        {
10540
                            PIXEL00_20
10541
                            PIXEL01_12
10542
                            PIXEL10_11
10543
                            PIXEL11_0
10544
                        }
10545
                        PIXEL02_32
10546
                        PIXEL03_82
10547
                        PIXEL12_32
10548
                        PIXEL13_82
10549
                        if (Diff(w[8], w[4]))
10550
                        {
10551
                            PIXEL20_10
10552
                            PIXEL21_30
10553
                            PIXEL30_80
10554
                            PIXEL31_10
10555
                        }
10556
                        else
10557
                        {
10558
                            PIXEL20_12
10559
                            PIXEL21_0
10560
                            PIXEL30_20
10561
                            PIXEL31_11
10562
                        }
10563
                        PIXEL22_31
10564
                        PIXEL23_81
10565
                        PIXEL32_31
10566
                        PIXEL33_81
10567
                        break;
10568
                    }
10569
                case 205:
10570
                case 201:
10571
                    {
10572
                        PIXEL00_82
10573
                        PIXEL01_82
10574
                        PIXEL02_60
10575
                        PIXEL03_20
10576
                        PIXEL10_32
10577
                        PIXEL11_32
10578
                        PIXEL12_70
10579
                        PIXEL13_60
10580
                        if (Diff(w[8], w[4]))
10581
                        {
10582
                            PIXEL20_10
10583
                            PIXEL21_30
10584
                            PIXEL30_80
10585
                            PIXEL31_10
10586
                        }
10587
                        else
10588
                        {
10589
                            PIXEL20_12
10590
                            PIXEL21_0
10591
                            PIXEL30_20
10592
                            PIXEL31_11
10593
                        }
10594
                        PIXEL22_31
10595
                        PIXEL23_81
10596
                        PIXEL32_31
10597
                        PIXEL33_81
10598
                        break;
10599
                    }
10600
                case 174:
10601
                case 46:
10602
                    {
10603
                        if (Diff(w[4], w[2]))
10604
                        {
10605
                            PIXEL00_80
10606
                            PIXEL01_10
10607
                            PIXEL10_10
10608
                            PIXEL11_30
10609
                        }
10610
                        else
10611
                        {
10612
                            PIXEL00_20
10613
                            PIXEL01_12
10614
                            PIXEL10_11
10615
                            PIXEL11_0
10616
                        }
10617
                        PIXEL02_32
10618
                        PIXEL03_82
10619
                        PIXEL12_32
10620
                        PIXEL13_82
10621
                        PIXEL20_31
10622
                        PIXEL21_31
10623
                        PIXEL22_70
10624
                        PIXEL23_60
10625
                        PIXEL30_81
10626
                        PIXEL31_81
10627
                        PIXEL32_60
10628
                        PIXEL33_20
10629
                        break;
10630
                    }
10631
                case 179:
10632
                case 147:
10633
                    {
10634
                        PIXEL00_81
10635
                        PIXEL01_31
10636
                        if (Diff(w[2], w[6]))
10637
                        {
10638
                            PIXEL02_10
10639
                            PIXEL03_80
10640
                            PIXEL12_30
10641
                            PIXEL13_10
10642
                        }
10643
                        else
10644
                        {
10645
                            PIXEL02_11
10646
                            PIXEL03_20
10647
                            PIXEL12_0
10648
                            PIXEL13_12
10649
                        }
10650
                        PIXEL10_81
10651
                        PIXEL11_31
10652
                        PIXEL20_60
10653
                        PIXEL21_70
10654
                        PIXEL22_32
10655
                        PIXEL23_32
10656
                        PIXEL30_20
10657
                        PIXEL31_60
10658
                        PIXEL32_82
10659
                        PIXEL33_82
10660
                        break;
10661
                    }
10662
                case 117:
10663
                case 116:
10664
                    {
10665
                        PIXEL00_20
10666
                        PIXEL01_60
10667
                        PIXEL02_81
10668
                        PIXEL03_81
10669
                        PIXEL10_60
10670
                        PIXEL11_70
10671
                        PIXEL12_31
10672
                        PIXEL13_31
10673
                        PIXEL20_82
10674
                        PIXEL21_32
10675
                        if (Diff(w[6], w[8]))
10676
                        {
10677
                            PIXEL22_30
10678
                            PIXEL23_10
10679
                            PIXEL32_10
10680
                            PIXEL33_80
10681
                        }
10682
                        else
10683
                        {
10684
                            PIXEL22_0
10685
                            PIXEL23_11
10686
                            PIXEL32_12
10687
                            PIXEL33_20
10688
                        }
10689
                        PIXEL30_82
10690
                        PIXEL31_32
10691
                        break;
10692
                    }
10693
                case 189:
10694
                    {
10695
                        PIXEL00_82
10696
                        PIXEL01_82
10697
                        PIXEL02_81
10698
                        PIXEL03_81
10699
                        PIXEL10_32
10700
                        PIXEL11_32
10701
                        PIXEL12_31
10702
                        PIXEL13_31
10703
                        PIXEL20_31
10704
                        PIXEL21_31
10705
                        PIXEL22_32
10706
                        PIXEL23_32
10707
                        PIXEL30_81
10708
                        PIXEL31_81
10709
                        PIXEL32_82
10710
                        PIXEL33_82
10711
                        break;
10712
                    }
10713
                case 231:
10714
                    {
10715
                        PIXEL00_81
10716
                        PIXEL01_31
10717
                        PIXEL02_32
10718
                        PIXEL03_82
10719
                        PIXEL10_81
10720
                        PIXEL11_31
10721
                        PIXEL12_32
10722
                        PIXEL13_82
10723
                        PIXEL20_82
10724
                        PIXEL21_32
10725
                        PIXEL22_31
10726
                        PIXEL23_81
10727
                        PIXEL30_82
10728
                        PIXEL31_32
10729
                        PIXEL32_31
10730
                        PIXEL33_81
10731
                        break;
10732
                    }
10733
                case 126:
10734
                    {
10735
                        PIXEL00_80
10736
                        PIXEL01_10
10737
                        if (Diff(w[2], w[6]))
10738
                        {
10739
                            PIXEL02_0
10740
                            PIXEL03_0
10741
                            PIXEL13_0
10742
                        }
10743
                        else
10744
                        {
10745
                            PIXEL02_50
10746
                            PIXEL03_50
10747
                            PIXEL13_50
10748
                        }
10749
                        PIXEL10_10
10750
                        PIXEL11_30
10751
                        PIXEL12_0
10752
                        if (Diff(w[8], w[4]))
10753
                        {
10754
                            PIXEL20_0
10755
                            PIXEL30_0
10756
                            PIXEL31_0
10757
                        }
10758
                        else
10759
                        {
10760
                            PIXEL20_50
10761
                            PIXEL30_50
10762
                            PIXEL31_50
10763
                        }
10764
                        PIXEL21_0
10765
                        PIXEL22_30
10766
                        PIXEL23_10
10767
                        PIXEL32_10
10768
                        PIXEL33_80
10769
                        break;
10770
                    }
10771
                case 219:
10772
                    {
10773
                        if (Diff(w[4], w[2]))
10774
                        {
10775
                            PIXEL00_0
10776
                            PIXEL01_0
10777
                            PIXEL10_0
10778
                        }
10779
                        else
10780
                        {
10781
                            PIXEL00_50
10782
                            PIXEL01_50
10783
                            PIXEL10_50
10784
                        }
10785
                        PIXEL02_10
10786
                        PIXEL03_80
10787
                        PIXEL11_0
10788
                        PIXEL12_30
10789
                        PIXEL13_10
10790
                        PIXEL20_10
10791
                        PIXEL21_30
10792
                        PIXEL22_0
10793
                        if (Diff(w[6], w[8]))
10794
                        {
10795
                            PIXEL23_0
10796
                            PIXEL32_0
10797
                            PIXEL33_0
10798
                        }
10799
                        else
10800
                        {
10801
                            PIXEL23_50
10802
                            PIXEL32_50
10803
                            PIXEL33_50
10804
                        }
10805
                        PIXEL30_80
10806
                        PIXEL31_10
10807
                        break;
10808
                    }
10809
                case 125:
10810
                    {
10811
                        if (Diff(w[8], w[4]))
10812
                        {
10813
                            PIXEL00_82
10814
                            PIXEL10_32
10815
                            PIXEL20_0
10816
                            PIXEL21_0
10817
                            PIXEL30_0
10818
                            PIXEL31_0
10819
                        }
10820
                        else
10821
                        {
10822
                            PIXEL00_11
10823
                            PIXEL10_13
10824
                            PIXEL20_83
10825
                            PIXEL21_70
10826
                            PIXEL30_50
10827
                            PIXEL31_21
10828
                        }
10829
                        PIXEL01_82
10830
                        PIXEL02_81
10831
                        PIXEL03_81
10832
                        PIXEL11_32
10833
                        PIXEL12_31
10834
                        PIXEL13_31
10835
                        PIXEL22_30
10836
                        PIXEL23_10
10837
                        PIXEL32_10
10838
                        PIXEL33_80
10839
                        break;
10840
                    }
10841
                case 221:
10842
                    {
10843
                        PIXEL00_82
10844
                        PIXEL01_82
10845
                        PIXEL02_81
10846
                        if (Diff(w[6], w[8]))
10847
                        {
10848
                            PIXEL03_81
10849
                            PIXEL13_31
10850
                            PIXEL22_0
10851
                            PIXEL23_0
10852
                            PIXEL32_0
10853
                            PIXEL33_0
10854
                        }
10855
                        else
10856
                        {
10857
                            PIXEL03_12
10858
                            PIXEL13_14
10859
                            PIXEL22_70
10860
                            PIXEL23_83
10861
                            PIXEL32_21
10862
                            PIXEL33_50
10863
                        }
10864
                        PIXEL10_32
10865
                        PIXEL11_32
10866
                        PIXEL12_31
10867
                        PIXEL20_10
10868
                        PIXEL21_30
10869
                        PIXEL30_80
10870
                        PIXEL31_10
10871
                        break;
10872
                    }
10873
                case 207:
10874
                    {
10875
                        if (Diff(w[4], w[2]))
10876
                        {
10877
                            PIXEL00_0
10878
                            PIXEL01_0
10879
                            PIXEL02_32
10880
                            PIXEL03_82
10881
                            PIXEL10_0
10882
                            PIXEL11_0
10883
                        }
10884
                        else
10885
                        {
10886
                            PIXEL00_50
10887
                            PIXEL01_83
10888
                            PIXEL02_13
10889
                            PIXEL03_11
10890
                            PIXEL10_21
10891
                            PIXEL11_70
10892
                        }
10893
                        PIXEL12_32
10894
                        PIXEL13_82
10895
                        PIXEL20_10
10896
                        PIXEL21_30
10897
                        PIXEL22_31
10898
                        PIXEL23_81
10899
                        PIXEL30_80
10900
                        PIXEL31_10
10901
                        PIXEL32_31
10902
                        PIXEL33_81
10903
                        break;
10904
                    }
10905
                case 238:
10906
                    {
10907
                        PIXEL00_80
10908
                        PIXEL01_10
10909
                        PIXEL02_32
10910
                        PIXEL03_82
10911
                        PIXEL10_10
10912
                        PIXEL11_30
10913
                        PIXEL12_32
10914
                        PIXEL13_82
10915
                        if (Diff(w[8], w[4]))
10916
                        {
10917
                            PIXEL20_0
10918
                            PIXEL21_0
10919
                            PIXEL30_0
10920
                            PIXEL31_0
10921
                            PIXEL32_31
10922
                            PIXEL33_81
10923
                        }
10924
                        else
10925
                        {
10926
                            PIXEL20_21
10927
                            PIXEL21_70
10928
                            PIXEL30_50
10929
                            PIXEL31_83
10930
                            PIXEL32_14
10931
                            PIXEL33_12
10932
                        }
10933
                        PIXEL22_31
10934
                        PIXEL23_81
10935
                        break;
10936
                    }
10937
                case 190:
10938
                    {
10939
                        PIXEL00_80
10940
                        PIXEL01_10
10941
                        if (Diff(w[2], w[6]))
10942
                        {
10943
                            PIXEL02_0
10944
                            PIXEL03_0
10945
                            PIXEL12_0
10946
                            PIXEL13_0
10947
                            PIXEL23_32
10948
                            PIXEL33_82
10949
                        }
10950
                        else
10951
                        {
10952
                            PIXEL02_21
10953
                            PIXEL03_50
10954
                            PIXEL12_70
10955
                            PIXEL13_83
10956
                            PIXEL23_13
10957
                            PIXEL33_11
10958
                        }
10959
                        PIXEL10_10
10960
                        PIXEL11_30
10961
                        PIXEL20_31
10962
                        PIXEL21_31
10963
                        PIXEL22_32
10964
                        PIXEL30_81
10965
                        PIXEL31_81
10966
                        PIXEL32_82
10967
                        break;
10968
                    }
10969
                case 187:
10970
                    {
10971
                        if (Diff(w[4], w[2]))
10972
                        {
10973
                            PIXEL00_0
10974
                            PIXEL01_0
10975
                            PIXEL10_0
10976
                            PIXEL11_0
10977
                            PIXEL20_31
10978
                            PIXEL30_81
10979
                        }
10980
                        else
10981
                        {
10982
                            PIXEL00_50
10983
                            PIXEL01_21
10984
                            PIXEL10_83
10985
                            PIXEL11_70
10986
                            PIXEL20_14
10987
                            PIXEL30_12
10988
                        }
10989
                        PIXEL02_10
10990
                        PIXEL03_80
10991
                        PIXEL12_30
10992
                        PIXEL13_10
10993
                        PIXEL21_31
10994
                        PIXEL22_32
10995
                        PIXEL23_32
10996
                        PIXEL31_81
10997
                        PIXEL32_82
10998
                        PIXEL33_82
10999
                        break;
11000
                    }
11001
                case 243:
11002
                    {
11003
                        PIXEL00_81
11004
                        PIXEL01_31
11005
                        PIXEL02_10
11006
                        PIXEL03_80
11007
                        PIXEL10_81
11008
                        PIXEL11_31
11009
                        PIXEL12_30
11010
                        PIXEL13_10
11011
                        PIXEL20_82
11012
                        PIXEL21_32
11013
                        if (Diff(w[6], w[8]))
11014
                        {
11015
                            PIXEL22_0
11016
                            PIXEL23_0
11017
                            PIXEL30_82
11018
                            PIXEL31_32
11019
                            PIXEL32_0
11020
                            PIXEL33_0
11021
                        }
11022
                        else
11023
                        {
11024
                            PIXEL22_70
11025
                            PIXEL23_21
11026
                            PIXEL30_11
11027
                            PIXEL31_13
11028
                            PIXEL32_83
11029
                            PIXEL33_50
11030
                        }
11031
                        break;
11032
                    }
11033
                case 119:
11034
                    {
11035
                        if (Diff(w[2], w[6]))
11036
                        {
11037
                            PIXEL00_81
11038
                            PIXEL01_31
11039
                            PIXEL02_0
11040
                            PIXEL03_0
11041
                            PIXEL12_0
11042
                            PIXEL13_0
11043
                        }
11044
                        else
11045
                        {
11046
                            PIXEL00_12
11047
                            PIXEL01_14
11048
                            PIXEL02_83
11049
                            PIXEL03_50
11050
                            PIXEL12_70
11051
                            PIXEL13_21
11052
                        }
11053
                        PIXEL10_81
11054
                        PIXEL11_31
11055
                        PIXEL20_82
11056
                        PIXEL21_32
11057
                        PIXEL22_30
11058
                        PIXEL23_10
11059
                        PIXEL30_82
11060
                        PIXEL31_32
11061
                        PIXEL32_10
11062
                        PIXEL33_80
11063
                        break;
11064
                    }
11065
                case 237:
11066
                case 233:
11067
                    {
11068
                        PIXEL00_82
11069
                        PIXEL01_82
11070
                        PIXEL02_60
11071
                        PIXEL03_20
11072
                        PIXEL10_32
11073
                        PIXEL11_32
11074
                        PIXEL12_70
11075
                        PIXEL13_60
11076
                        PIXEL20_0
11077
                        PIXEL21_0
11078
                        PIXEL22_31
11079
                        PIXEL23_81
11080
                        if (Diff(w[8], w[4]))
11081
                        {
11082
                            PIXEL30_0
11083
                        }
11084
                        else
11085
                        {
11086
                            PIXEL30_20
11087
                        }
11088
                        PIXEL31_0
11089
                        PIXEL32_31
11090
                        PIXEL33_81
11091
                        break;
11092
                    }
11093
                case 175:
11094
                case 47:
11095
                    {
11096
                        if (Diff(w[4], w[2]))
11097
                        {
11098
                            PIXEL00_0
11099
                        }
11100
                        else
11101
                        {
11102
                            PIXEL00_20
11103
                        }
11104
                        PIXEL01_0
11105
                        PIXEL02_32
11106
                        PIXEL03_82
11107
                        PIXEL10_0
11108
                        PIXEL11_0
11109
                        PIXEL12_32
11110
                        PIXEL13_82
11111
                        PIXEL20_31
11112
                        PIXEL21_31
11113
                        PIXEL22_70
11114
                        PIXEL23_60
11115
                        PIXEL30_81
11116
                        PIXEL31_81
11117
                        PIXEL32_60
11118
                        PIXEL33_20
11119
                        break;
11120
                    }
11121
                case 183:
11122
                case 151:
11123
                    {
11124
                        PIXEL00_81
11125
                        PIXEL01_31
11126
                        PIXEL02_0
11127
                        if (Diff(w[2], w[6]))
11128
                        {
11129
                            PIXEL03_0
11130
                        }
11131
                        else
11132
                        {
11133
                            PIXEL03_20
11134
                        }
11135
                        PIXEL10_81
11136
                        PIXEL11_31
11137
                        PIXEL12_0
11138
                        PIXEL13_0
11139
                        PIXEL20_60
11140
                        PIXEL21_70
11141
                        PIXEL22_32
11142
                        PIXEL23_32
11143
                        PIXEL30_20
11144
                        PIXEL31_60
11145
                        PIXEL32_82
11146
                        PIXEL33_82
11147
                        break;
11148
                    }
11149
                case 245:
11150
                case 244:
11151
                    {
11152
                        PIXEL00_20
11153
                        PIXEL01_60
11154
                        PIXEL02_81
11155
                        PIXEL03_81
11156
                        PIXEL10_60
11157
                        PIXEL11_70
11158
                        PIXEL12_31
11159
                        PIXEL13_31
11160
                        PIXEL20_82
11161
                        PIXEL21_32
11162
                        PIXEL22_0
11163
                        PIXEL23_0
11164
                        PIXEL30_82
11165
                        PIXEL31_32
11166
                        PIXEL32_0
11167
                        if (Diff(w[6], w[8]))
11168
                        {
11169
                            PIXEL33_0
11170
                        }
11171
                        else
11172
                        {
11173
                            PIXEL33_20
11174
                        }
11175
                        break;
11176
                    }
11177
                case 250:
11178
                    {
11179
                        PIXEL00_80
11180
                        PIXEL01_10
11181
                        PIXEL02_10
11182
                        PIXEL03_80
11183
                        PIXEL10_10
11184
                        PIXEL11_30
11185
                        PIXEL12_30
11186
                        PIXEL13_10
11187
                        if (Diff(w[8], w[4]))
11188
                        {
11189
                            PIXEL20_0
11190
                            PIXEL30_0
11191
                            PIXEL31_0
11192
                        }
11193
                        else
11194
                        {
11195
                            PIXEL20_50
11196
                            PIXEL30_50
11197
                            PIXEL31_50
11198
                        }
11199
                        PIXEL21_0
11200
                        PIXEL22_0
11201
                        if (Diff(w[6], w[8]))
11202
                        {
11203
                            PIXEL23_0
11204
                            PIXEL32_0
11205
                            PIXEL33_0
11206
                        }
11207
                        else
11208
                        {
11209
                            PIXEL23_50
11210
                            PIXEL32_50
11211
                            PIXEL33_50
11212
                        }
11213
                        break;
11214
                    }
11215
                case 123:
11216
                    {
11217
                        if (Diff(w[4], w[2]))
11218
                        {
11219
                            PIXEL00_0
11220
                            PIXEL01_0
11221
                            PIXEL10_0
11222
                        }
11223
                        else
11224
                        {
11225
                            PIXEL00_50
11226
                            PIXEL01_50
11227
                            PIXEL10_50
11228
                        }
11229
                        PIXEL02_10
11230
                        PIXEL03_80
11231
                        PIXEL11_0
11232
                        PIXEL12_30
11233
                        PIXEL13_10
11234
                        if (Diff(w[8], w[4]))
11235
                        {
11236
                            PIXEL20_0
11237
                            PIXEL30_0
11238
                            PIXEL31_0
11239
                        }
11240
                        else
11241
                        {
11242
                            PIXEL20_50
11243
                            PIXEL30_50
11244
                            PIXEL31_50
11245
                        }
11246
                        PIXEL21_0
11247
                        PIXEL22_30
11248
                        PIXEL23_10
11249
                        PIXEL32_10
11250
                        PIXEL33_80
11251
                        break;
11252
                    }
11253
                case 95:
11254
                    {
11255
                        if (Diff(w[4], w[2]))
11256
                        {
11257
                            PIXEL00_0
11258
                            PIXEL01_0
11259
                            PIXEL10_0
11260
                        }
11261
                        else
11262
                        {
11263
                            PIXEL00_50
11264
                            PIXEL01_50
11265
                            PIXEL10_50
11266
                        }
11267
                        if (Diff(w[2], w[6]))
11268
                        {
11269
                            PIXEL02_0
11270
                            PIXEL03_0
11271
                            PIXEL13_0
11272
                        }
11273
                        else
11274
                        {
11275
                            PIXEL02_50
11276
                            PIXEL03_50
11277
                            PIXEL13_50
11278
                        }
11279
                        PIXEL11_0
11280
                        PIXEL12_0
11281
                        PIXEL20_10
11282
                        PIXEL21_30
11283
                        PIXEL22_30
11284
                        PIXEL23_10
11285
                        PIXEL30_80
11286
                        PIXEL31_10
11287
                        PIXEL32_10
11288
                        PIXEL33_80
11289
                        break;
11290
                    }
11291
                case 222:
11292
                    {
11293
                        PIXEL00_80
11294
                        PIXEL01_10
11295
                        if (Diff(w[2], w[6]))
11296
                        {
11297
                            PIXEL02_0
11298
                            PIXEL03_0
11299
                            PIXEL13_0
11300
                        }
11301
                        else
11302
                        {
11303
                            PIXEL02_50
11304
                            PIXEL03_50
11305
                            PIXEL13_50
11306
                        }
11307
                        PIXEL10_10
11308
                        PIXEL11_30
11309
                        PIXEL12_0
11310
                        PIXEL20_10
11311
                        PIXEL21_30
11312
                        PIXEL22_0
11313
                        if (Diff(w[6], w[8]))
11314
                        {
11315
                            PIXEL23_0
11316
                            PIXEL32_0
11317
                            PIXEL33_0
11318
                        }
11319
                        else
11320
                        {
11321
                            PIXEL23_50
11322
                            PIXEL32_50
11323
                            PIXEL33_50
11324
                        }
11325
                        PIXEL30_80
11326
                        PIXEL31_10
11327
                        break;
11328
                    }
11329
                case 252:
11330
                    {
11331
                        PIXEL00_80
11332
                        PIXEL01_61
11333
                        PIXEL02_81
11334
                        PIXEL03_81
11335
                        PIXEL10_10
11336
                        PIXEL11_30
11337
                        PIXEL12_31
11338
                        PIXEL13_31
11339
                        if (Diff(w[8], w[4]))
11340
                        {
11341
                            PIXEL20_0
11342
                            PIXEL30_0
11343
                            PIXEL31_0
11344
                        }
11345
                        else
11346
                        {
11347
                            PIXEL20_50
11348
                            PIXEL30_50
11349
                            PIXEL31_50
11350
                        }
11351
                        PIXEL21_0
11352
                        PIXEL22_0
11353
                        PIXEL23_0
11354
                        PIXEL32_0
11355
                        if (Diff(w[6], w[8]))
11356
                        {
11357
                            PIXEL33_0
11358
                        }
11359
                        else
11360
                        {
11361
                            PIXEL33_20
11362
                        }
11363
                        break;
11364
                    }
11365
                case 249:
11366
                    {
11367
                        PIXEL00_82
11368
                        PIXEL01_82
11369
                        PIXEL02_61
11370
                        PIXEL03_80
11371
                        PIXEL10_32
11372
                        PIXEL11_32
11373
                        PIXEL12_30
11374
                        PIXEL13_10
11375
                        PIXEL20_0
11376
                        PIXEL21_0
11377
                        PIXEL22_0
11378
                        if (Diff(w[6], w[8]))
11379
                        {
11380
                            PIXEL23_0
11381
                            PIXEL32_0
11382
                            PIXEL33_0
11383
                        }
11384
                        else
11385
                        {
11386
                            PIXEL23_50
11387
                            PIXEL32_50
11388
                            PIXEL33_50
11389
                        }
11390
                        if (Diff(w[8], w[4]))
11391
                        {
11392
                            PIXEL30_0
11393
                        }
11394
                        else
11395
                        {
11396
                            PIXEL30_20
11397
                        }
11398
                        PIXEL31_0
11399
                        break;
11400
                    }
11401
                case 235:
11402
                    {
11403
                        if (Diff(w[4], w[2]))
11404
                        {
11405
                            PIXEL00_0
11406
                            PIXEL01_0
11407
                            PIXEL10_0
11408
                        }
11409
                        else
11410
                        {
11411
                            PIXEL00_50
11412
                            PIXEL01_50
11413
                            PIXEL10_50
11414
                        }
11415
                        PIXEL02_10
11416
                        PIXEL03_80
11417
                        PIXEL11_0
11418
                        PIXEL12_30
11419
                        PIXEL13_61
11420
                        PIXEL20_0
11421
                        PIXEL21_0
11422
                        PIXEL22_31
11423
                        PIXEL23_81
11424
                        if (Diff(w[8], w[4]))
11425
                        {
11426
                            PIXEL30_0
11427
                        }
11428
                        else
11429
                        {
11430
                            PIXEL30_20
11431
                        }
11432
                        PIXEL31_0
11433
                        PIXEL32_31
11434
                        PIXEL33_81
11435
                        break;
11436
                    }
11437
                case 111:
11438
                    {
11439
                        if (Diff(w[4], w[2]))
11440
                        {
11441
                            PIXEL00_0
11442
                        }
11443
                        else
11444
                        {
11445
                            PIXEL00_20
11446
                        }
11447
                        PIXEL01_0
11448
                        PIXEL02_32
11449
                        PIXEL03_82
11450
                        PIXEL10_0
11451
                        PIXEL11_0
11452
                        PIXEL12_32
11453
                        PIXEL13_82
11454
                        if (Diff(w[8], w[4]))
11455
                        {
11456
                            PIXEL20_0
11457
                            PIXEL30_0
11458
                            PIXEL31_0
11459
                        }
11460
                        else
11461
                        {
11462
                            PIXEL20_50
11463
                            PIXEL30_50
11464
                            PIXEL31_50
11465
                        }
11466
                        PIXEL21_0
11467
                        PIXEL22_30
11468
                        PIXEL23_61
11469
                        PIXEL32_10
11470
                        PIXEL33_80
11471
                        break;
11472
                    }
11473
                case 63:
11474
                    {
11475
                        if (Diff(w[4], w[2]))
11476
                        {
11477
                            PIXEL00_0
11478
                        }
11479
                        else
11480
                        {
11481
                            PIXEL00_20
11482
                        }
11483
                        PIXEL01_0
11484
                        if (Diff(w[2], w[6]))
11485
                        {
11486
                            PIXEL02_0
11487
                            PIXEL03_0
11488
                            PIXEL13_0
11489
                        }
11490
                        else
11491
                        {
11492
                            PIXEL02_50
11493
                            PIXEL03_50
11494
                            PIXEL13_50
11495
                        }
11496
                        PIXEL10_0
11497
                        PIXEL11_0
11498
                        PIXEL12_0
11499
                        PIXEL20_31
11500
                        PIXEL21_31
11501
                        PIXEL22_30
11502
                        PIXEL23_10
11503
                        PIXEL30_81
11504
                        PIXEL31_81
11505
                        PIXEL32_61
11506
                        PIXEL33_80
11507
                        break;
11508
                    }
11509
                case 159:
11510
                    {
11511
                        if (Diff(w[4], w[2]))
11512
                        {
11513
                            PIXEL00_0
11514
                            PIXEL01_0
11515
                            PIXEL10_0
11516
                        }
11517
                        else
11518
                        {
11519
                            PIXEL00_50
11520
                            PIXEL01_50
11521
                            PIXEL10_50
11522
                        }
11523
                        PIXEL02_0
11524
                        if (Diff(w[2], w[6]))
11525
                        {
11526
                            PIXEL03_0
11527
                        }
11528
                        else
11529
                        {
11530
                            PIXEL03_20
11531
                        }
11532
                        PIXEL11_0
11533
                        PIXEL12_0
11534
                        PIXEL13_0
11535
                        PIXEL20_10
11536
                        PIXEL21_30
11537
                        PIXEL22_32
11538
                        PIXEL23_32
11539
                        PIXEL30_80
11540
                        PIXEL31_61
11541
                        PIXEL32_82
11542
                        PIXEL33_82
11543
                        break;
11544
                    }
11545
                case 215:
11546
                    {
11547
                        PIXEL00_81
11548
                        PIXEL01_31
11549
                        PIXEL02_0
11550
                        if (Diff(w[2], w[6]))
11551
                        {
11552
                            PIXEL03_0
11553
                        }
11554
                        else
11555
                        {
11556
                            PIXEL03_20
11557
                        }
11558
                        PIXEL10_81
11559
                        PIXEL11_31
11560
                        PIXEL12_0
11561
                        PIXEL13_0
11562
                        PIXEL20_61
11563
                        PIXEL21_30
11564
                        PIXEL22_0
11565
                        if (Diff(w[6], w[8]))
11566
                        {
11567
                            PIXEL23_0
11568
                            PIXEL32_0
11569
                            PIXEL33_0
11570
                        }
11571
                        else
11572
                        {
11573
                            PIXEL23_50
11574
                            PIXEL32_50
11575
                            PIXEL33_50
11576
                        }
11577
                        PIXEL30_80
11578
                        PIXEL31_10
11579
                        break;
11580
                    }
11581
                case 246:
11582
                    {
11583
                        PIXEL00_80
11584
                        PIXEL01_10
11585
                        if (Diff(w[2], w[6]))
11586
                        {
11587
                            PIXEL02_0
11588
                            PIXEL03_0
11589
                            PIXEL13_0
11590
                        }
11591
                        else
11592
                        {
11593
                            PIXEL02_50
11594
                            PIXEL03_50
11595
                            PIXEL13_50
11596
                        }
11597
                        PIXEL10_61
11598
                        PIXEL11_30
11599
                        PIXEL12_0
11600
                        PIXEL20_82
11601
                        PIXEL21_32
11602
                        PIXEL22_0
11603
                        PIXEL23_0
11604
                        PIXEL30_82
11605
                        PIXEL31_32
11606
                        PIXEL32_0
11607
                        if (Diff(w[6], w[8]))
11608
                        {
11609
                            PIXEL33_0
11610
                        }
11611
                        else
11612
                        {
11613
                            PIXEL33_20
11614
                        }
11615
                        break;
11616
                    }
11617
                case 254:
11618
                    {
11619
                        PIXEL00_80
11620
                        PIXEL01_10
11621
                        if (Diff(w[2], w[6]))
11622
                        {
11623
                            PIXEL02_0
11624
                            PIXEL03_0
11625
                            PIXEL13_0
11626
                        }
11627
                        else
11628
                        {
11629
                            PIXEL02_50
11630
                            PIXEL03_50
11631
                            PIXEL13_50
11632
                        }
11633
                        PIXEL10_10
11634
                        PIXEL11_30
11635
                        PIXEL12_0
11636
                        if (Diff(w[8], w[4]))
11637
                        {
11638
                            PIXEL20_0
11639
                            PIXEL30_0
11640
                            PIXEL31_0
11641
                        }
11642
                        else
11643
                        {
11644
                            PIXEL20_50
11645
                            PIXEL30_50
11646
                            PIXEL31_50
11647
                        }
11648
                        PIXEL21_0
11649
                        PIXEL22_0
11650
                        PIXEL23_0
11651
                        PIXEL32_0
11652
                        if (Diff(w[6], w[8]))
11653
                        {
11654
                            PIXEL33_0
11655
                        }
11656
                        else
11657
                        {
11658
                            PIXEL33_20
11659
                        }
11660
                        break;
11661
                    }
11662
                case 253:
11663
                    {
11664
                        PIXEL00_82
11665
                        PIXEL01_82
11666
                        PIXEL02_81
11667
                        PIXEL03_81
11668
                        PIXEL10_32
11669
                        PIXEL11_32
11670
                        PIXEL12_31
11671
                        PIXEL13_31
11672
                        PIXEL20_0
11673
                        PIXEL21_0
11674
                        PIXEL22_0
11675
                        PIXEL23_0
11676
                        if (Diff(w[8], w[4]))
11677
                        {
11678
                            PIXEL30_0
11679
                        }
11680
                        else
11681
                        {
11682
                            PIXEL30_20
11683
                        }
11684
                        PIXEL31_0
11685
                        PIXEL32_0
11686
                        if (Diff(w[6], w[8]))
11687
                        {
11688
                            PIXEL33_0
11689
                        }
11690
                        else
11691
                        {
11692
                            PIXEL33_20
11693
                        }
11694
                        break;
11695
                    }
11696
                case 251:
11697
                    {
11698
                        if (Diff(w[4], w[2]))
11699
                        {
11700
                            PIXEL00_0
11701
                            PIXEL01_0
11702
                            PIXEL10_0
11703
                        }
11704
                        else
11705
                        {
11706
                            PIXEL00_50
11707
                            PIXEL01_50
11708
                            PIXEL10_50
11709
                        }
11710
                        PIXEL02_10
11711
                        PIXEL03_80
11712
                        PIXEL11_0
11713
                        PIXEL12_30
11714
                        PIXEL13_10
11715
                        PIXEL20_0
11716
                        PIXEL21_0
11717
                        PIXEL22_0
11718
                        if (Diff(w[6], w[8]))
11719
                        {
11720
                            PIXEL23_0
11721
                            PIXEL32_0
11722
                            PIXEL33_0
11723
                        }
11724
                        else
11725
                        {
11726
                            PIXEL23_50
11727
                            PIXEL32_50
11728
                            PIXEL33_50
11729
                        }
11730
                        if (Diff(w[8], w[4]))
11731
                        {
11732
                            PIXEL30_0
11733
                        }
11734
                        else
11735
                        {
11736
                            PIXEL30_20
11737
                        }
11738
                        PIXEL31_0
11739
                        break;
11740
                    }
11741
                case 239:
11742
                    {
11743
                        if (Diff(w[4], w[2]))
11744
                        {
11745
                            PIXEL00_0
11746
                        }
11747
                        else
11748
                        {
11749
                            PIXEL00_20
11750
                        }
11751
                        PIXEL01_0
11752
                        PIXEL02_32
11753
                        PIXEL03_82
11754
                        PIXEL10_0
11755
                        PIXEL11_0
11756
                        PIXEL12_32
11757
                        PIXEL13_82
11758
                        PIXEL20_0
11759
                        PIXEL21_0
11760
                        PIXEL22_31
11761
                        PIXEL23_81
11762
                        if (Diff(w[8], w[4]))
11763
                        {
11764
                            PIXEL30_0
11765
                        }
11766
                        else
11767
                        {
11768
                            PIXEL30_20
11769
                        }
11770
                        PIXEL31_0
11771
                        PIXEL32_31
11772
                        PIXEL33_81
11773
                        break;
11774
                    }
11775
                case 127:
11776
                    {
11777
                        if (Diff(w[4], w[2]))
11778
                        {
11779
                            PIXEL00_0
11780
                        }
11781
                        else
11782
                        {
11783
                            PIXEL00_20
11784
                        }
11785
                        PIXEL01_0
11786
                        if (Diff(w[2], w[6]))
11787
                        {
11788
                            PIXEL02_0
11789
                            PIXEL03_0
11790
                            PIXEL13_0
11791
                        }
11792
                        else
11793
                        {
11794
                            PIXEL02_50
11795
                            PIXEL03_50
11796
                            PIXEL13_50
11797
                        }
11798
                        PIXEL10_0
11799
                        PIXEL11_0
11800
                        PIXEL12_0
11801
                        if (Diff(w[8], w[4]))
11802
                        {
11803
                            PIXEL20_0
11804
                            PIXEL30_0
11805
                            PIXEL31_0
11806
                        }
11807
                        else
11808
                        {
11809
                            PIXEL20_50
11810
                            PIXEL30_50
11811
                            PIXEL31_50
11812
                        }
11813
                        PIXEL21_0
11814
                        PIXEL22_30
11815
                        PIXEL23_10
11816
                        PIXEL32_10
11817
                        PIXEL33_80
11818
                        break;
11819
                    }
11820
                case 191:
11821
                    {
11822
                        if (Diff(w[4], w[2]))
11823
                        {
11824
                            PIXEL00_0
11825
                        }
11826
                        else
11827
                        {
11828
                            PIXEL00_20
11829
                        }
11830
                        PIXEL01_0
11831
                        PIXEL02_0
11832
                        if (Diff(w[2], w[6]))
11833
                        {
11834
                            PIXEL03_0
11835
                        }
11836
                        else
11837
                        {
11838
                            PIXEL03_20
11839
                        }
11840
                        PIXEL10_0
11841
                        PIXEL11_0
11842
                        PIXEL12_0
11843
                        PIXEL13_0
11844
                        PIXEL20_31
11845
                        PIXEL21_31
11846
                        PIXEL22_32
11847
                        PIXEL23_32
11848
                        PIXEL30_81
11849
                        PIXEL31_81
11850
                        PIXEL32_82
11851
                        PIXEL33_82
11852
                        break;
11853
                    }
11854
                case 223:
11855
                    {
11856
                        if (Diff(w[4], w[2]))
11857
                        {
11858
                            PIXEL00_0
11859
                            PIXEL01_0
11860
                            PIXEL10_0
11861
                        }
11862
                        else
11863
                        {
11864
                            PIXEL00_50
11865
                            PIXEL01_50
11866
                            PIXEL10_50
11867
                        }
11868
                        PIXEL02_0
11869
                        if (Diff(w[2], w[6]))
11870
                        {
11871
                            PIXEL03_0
11872
                        }
11873
                        else
11874
                        {
11875
                            PIXEL03_20
11876
                        }
11877
                        PIXEL11_0
11878
                        PIXEL12_0
11879
                        PIXEL13_0
11880
                        PIXEL20_10
11881
                        PIXEL21_30
11882
                        PIXEL22_0
11883
                        if (Diff(w[6], w[8]))
11884
                        {
11885
                            PIXEL23_0
11886
                            PIXEL32_0
11887
                            PIXEL33_0
11888
                        }
11889
                        else
11890
                        {
11891
                            PIXEL23_50
11892
                            PIXEL32_50
11893
                            PIXEL33_50
11894
                        }
11895
                        PIXEL30_80
11896
                        PIXEL31_10
11897
                        break;
11898
                    }
11899
                case 247:
11900
                    {
11901
                        PIXEL00_81
11902
                        PIXEL01_31
11903
                        PIXEL02_0
11904
                        if (Diff(w[2], w[6]))
11905
                        {
11906
                            PIXEL03_0
11907
                        }
11908
                        else
11909
                        {
11910
                            PIXEL03_20
11911
                        }
11912
                        PIXEL10_81
11913
                        PIXEL11_31
11914
                        PIXEL12_0
11915
                        PIXEL13_0
11916
                        PIXEL20_82
11917
                        PIXEL21_32
11918
                        PIXEL22_0
11919
                        PIXEL23_0
11920
                        PIXEL30_82
11921
                        PIXEL31_32
11922
                        PIXEL32_0
11923
                        if (Diff(w[6], w[8]))
11924
                        {
11925
                            PIXEL33_0
11926
                        }
11927
                        else
11928
                        {
11929
                            PIXEL33_20
11930
                        }
11931
                        break;
11932
                    }
11933
                case 255:
11934
                    {
11935
                        if (Diff(w[4], w[2]))
11936
                        {
11937
                            PIXEL00_0
11938
                        }
11939
                        else
11940
                        {
11941
                            PIXEL00_20
11942
                        }
11943
                        PIXEL01_0
11944
                        PIXEL02_0
11945
                        if (Diff(w[2], w[6]))
11946
                        {
11947
                            PIXEL03_0
11948
                        }
11949
                        else
11950
                        {
11951
                            PIXEL03_20
11952
                        }
11953
                        PIXEL10_0
11954
                        PIXEL11_0
11955
                        PIXEL12_0
11956
                        PIXEL13_0
11957
                        PIXEL20_0
11958
                        PIXEL21_0
11959
                        PIXEL22_0
11960
                        PIXEL23_0
11961
                        if (Diff(w[8], w[4]))
11962
                        {
11963
                            PIXEL30_0
11964
                        }
11965
                        else
11966
                        {
11967
                            PIXEL30_20
11968
                        }
11969
                        PIXEL31_0
11970
                        PIXEL32_0
11971
                        if (Diff(w[6], w[8]))
11972
                        {
11973
                            PIXEL33_0
11974
                        }
11975
                        else
11976
                        {
11977
                            PIXEL33_20
11978
                        }
11979
                        break;
11980
                    }
11981
            }
11982
            sp++;
11983
            dp += 4;
11984
        }
11985
 
11986
        sRowP += srb;
11987
        sp = (uint32_t *) sRowP;
11988
 
11989
        dRowP += drb * 4;
11990
        dp = (uint32_t *) dRowP;
11991
    }
11992
}
11993
 
11994
HQX_API void HQX_CALLCONV hq4x_32 (uint32_t *src_pixels, uint32_t *dest_pixels, int src_width, int src_height)
11995
{
11996
    if (!is_hqx_initialized)
11997
        hqxInit ();
11998
 
11999
    hq4x_32_rb (src_pixels, src_width * 4, dest_pixels, src_width * 4 * 4, src_width, src_height);
12000
}
12001
 
12002
#undef PIXEL00_0
12003
#undef PIXEL00_11
12004
#undef PIXEL00_12
12005
#undef PIXEL00_20
12006
#undef PIXEL00_50
12007
#undef PIXEL00_80
12008
#undef PIXEL00_81
12009
#undef PIXEL00_82
12010
#undef PIXEL01_0
12011
#undef PIXEL01_10
12012
#undef PIXEL01_12
12013
#undef PIXEL01_14
12014
#undef PIXEL01_21
12015
#undef PIXEL01_31
12016
#undef PIXEL01_50
12017
#undef PIXEL01_60
12018
#undef PIXEL01_61
12019
#undef PIXEL01_82
12020
#undef PIXEL01_83
12021
#undef PIXEL02_0
12022
#undef PIXEL02_10
12023
#undef PIXEL02_11
12024
#undef PIXEL02_13
12025
#undef PIXEL02_21
12026
#undef PIXEL02_32
12027
#undef PIXEL02_50
12028
#undef PIXEL02_60
12029
#undef PIXEL02_61
12030
#undef PIXEL02_81
12031
#undef PIXEL02_83
12032
#undef PIXEL03_0
12033
#undef PIXEL03_11
12034
#undef PIXEL03_12
12035
#undef PIXEL03_20
12036
#undef PIXEL03_50
12037
#undef PIXEL03_80
12038
#undef PIXEL03_81
12039
#undef PIXEL03_82
12040
#undef PIXEL10_0
12041
#undef PIXEL10_10
12042
#undef PIXEL10_11
12043
#undef PIXEL10_13
12044
#undef PIXEL10_21
12045
#undef PIXEL10_32
12046
#undef PIXEL10_50
12047
#undef PIXEL10_60
12048
#undef PIXEL10_61
12049
#undef PIXEL10_81
12050
#undef PIXEL10_83
12051
#undef PIXEL11_0
12052
#undef PIXEL11_30
12053
#undef PIXEL11_31
12054
#undef PIXEL11_32
12055
#undef PIXEL11_70
12056
#undef PIXEL12_0
12057
#undef PIXEL12_30
12058
#undef PIXEL12_31
12059
#undef PIXEL12_32
12060
#undef PIXEL12_70
12061
#undef PIXEL13_0
12062
#undef PIXEL13_10
12063
#undef PIXEL13_12
12064
#undef PIXEL13_14
12065
#undef PIXEL13_21
12066
#undef PIXEL13_31
12067
#undef PIXEL13_50
12068
#undef PIXEL13_60
12069
#undef PIXEL13_61
12070
#undef PIXEL13_82
12071
#undef PIXEL13_83
12072
#undef PIXEL20_0
12073
#undef PIXEL20_10
12074
#undef PIXEL20_12
12075
#undef PIXEL20_14
12076
#undef PIXEL20_21
12077
#undef PIXEL20_31
12078
#undef PIXEL20_50
12079
#undef PIXEL20_60
12080
#undef PIXEL20_61
12081
#undef PIXEL20_82
12082
#undef PIXEL20_83
12083
#undef PIXEL21_0
12084
#undef PIXEL21_30
12085
#undef PIXEL21_31
12086
#undef PIXEL21_32
12087
#undef PIXEL21_70
12088
#undef PIXEL22_0
12089
#undef PIXEL22_30
12090
#undef PIXEL22_31
12091
#undef PIXEL22_32
12092
#undef PIXEL22_70
12093
#undef PIXEL23_0
12094
#undef PIXEL23_10
12095
#undef PIXEL23_11
12096
#undef PIXEL23_13
12097
#undef PIXEL23_21
12098
#undef PIXEL23_32
12099
#undef PIXEL23_50
12100
#undef PIXEL23_60
12101
#undef PIXEL23_61
12102
#undef PIXEL23_81
12103
#undef PIXEL23_83
12104
#undef PIXEL30_0
12105
#undef PIXEL30_11
12106
#undef PIXEL30_12
12107
#undef PIXEL30_20
12108
#undef PIXEL30_50
12109
#undef PIXEL30_80
12110
#undef PIXEL30_81
12111
#undef PIXEL30_82
12112
#undef PIXEL31_0
12113
#undef PIXEL31_10
12114
#undef PIXEL31_11
12115
#undef PIXEL31_13
12116
#undef PIXEL31_21
12117
#undef PIXEL31_32
12118
#undef PIXEL31_50
12119
#undef PIXEL31_60
12120
#undef PIXEL31_61
12121
#undef PIXEL31_81
12122
#undef PIXEL31_83
12123
#undef PIXEL32_0
12124
#undef PIXEL32_10
12125
#undef PIXEL32_12
12126
#undef PIXEL32_14
12127
#undef PIXEL32_21
12128
#undef PIXEL32_31
12129
#undef PIXEL32_50
12130
#undef PIXEL32_60
12131
#undef PIXEL32_61
12132
#undef PIXEL32_82
12133
#undef PIXEL32_83
12134
#undef PIXEL33_0
12135
#undef PIXEL33_11
12136
#undef PIXEL33_12
12137
#undef PIXEL33_20
12138
#undef PIXEL33_50
12139
#undef PIXEL33_80
12140
#undef PIXEL33_81
12141
#undef PIXEL33_82
12142
#endif // WANT_HQ4X
12143
 
12144
 
12145
///////////////
12146
// CATCH_ALL //
12147
///////////////
12148
 
12149
HQX_API void HQX_CALLCONV hqx_32 (int level, uint32_t *src_pixels, uint32_t *dest_pixels, int src_width, int src_height)
12150
{
12151
#ifdef WANT_HQ2X
12152
        if (level == 2) hq2x_32 (src_pixels, dest_pixels, src_width, src_height); else
12153
#endif // WANT_HQ2X
12154
#ifdef WANT_HQ3X
12155
        if (level == 3) hq3x_32 (src_pixels, dest_pixels, src_width, src_height); else
12156
#endif // WANT_HQ3X
12157
#ifdef WANT_HQ4X
12158
        if (level == 4) hq4x_32 (src_pixels, dest_pixels, src_width, src_height);
12159
#endif // WANT_HQ4X
12160
}