1 module dcv.features.corner.fast.fast_11;
2 
3 /*
4 Authors: Edward Rosten
5 Copyright: Copyright (c) 2006, 2008 Edward Rosten, All rights reserved.
6 
7 Additional notice:
8 Module integrates FAST implementation present in the Edward Rosten's
9 github repository: https://github.com/edrosten/fast-C-src
10 */
11 
12 import core.stdc.stdlib : malloc, free, realloc;
13 
14 import dcv.features.corner.fast.base;
15 
16 
17 int fast11_corner_score(const ubyte* p, const int *pixel, int bstart)
18 {    
19     int bmin = bstart;
20     int bmax = 255;
21     int b = (bmax + bmin)/2;
22     
23     /*Compute the score using binary search*/
24     for(;;)
25     {
26         int cb = *p + b;
27         int c_b= *p - b;
28 
29         
30         if( p[pixel[0]] > cb)
31             if( p[pixel[1]] > cb)
32                 if( p[pixel[2]] > cb)
33                     if( p[pixel[3]] > cb)
34                         if( p[pixel[4]] > cb)
35                             if( p[pixel[5]] > cb)
36                                 if( p[pixel[6]] > cb)
37                                     if( p[pixel[7]] > cb)
38                                         if( p[pixel[8]] > cb)
39                                             if( p[pixel[9]] > cb)
40                                                 if( p[pixel[10]] > cb)
41                                                     goto is_a_corner;
42                                                 else
43                                                     if( p[pixel[15]] > cb)
44                                                         goto is_a_corner;
45                                                     else
46                                                         goto is_not_a_corner;
47         else
48             if( p[pixel[14]] > cb)
49                 if( p[pixel[15]] > cb)
50                     goto is_a_corner;
51                 else
52                     goto is_not_a_corner;
53         else
54             goto is_not_a_corner;
55         else
56             if( p[pixel[13]] > cb)
57                 if( p[pixel[14]] > cb)
58                     if( p[pixel[15]] > cb)
59                         goto is_a_corner;
60                     else
61                         goto is_not_a_corner;
62         else
63             goto is_not_a_corner;
64         else
65             goto is_not_a_corner;
66         else
67             if( p[pixel[12]] > cb)
68                 if( p[pixel[13]] > cb)
69                     if( p[pixel[14]] > cb)
70                         if( p[pixel[15]] > cb)
71                             goto is_a_corner;
72                         else
73                             goto is_not_a_corner;
74         else
75             goto is_not_a_corner;
76         else
77             goto is_not_a_corner;
78         else
79             goto is_not_a_corner;
80         else
81             if( p[pixel[11]] > cb)
82                 if( p[pixel[12]] > cb)
83                     if( p[pixel[13]] > cb)
84                         if( p[pixel[14]] > cb)
85                             if( p[pixel[15]] > cb)
86                                 goto is_a_corner;
87                             else
88                                 goto is_not_a_corner;
89         else
90             goto is_not_a_corner;
91         else
92             goto is_not_a_corner;
93         else
94             goto is_not_a_corner;
95         else
96             goto is_not_a_corner;
97         else if( p[pixel[5]] < c_b)
98             if( p[pixel[10]] > cb)
99                 if( p[pixel[11]] > cb)
100                     if( p[pixel[12]] > cb)
101                         if( p[pixel[13]] > cb)
102                             if( p[pixel[14]] > cb)
103                                 if( p[pixel[15]] > cb)
104                                     goto is_a_corner;
105                                 else
106                                     goto is_not_a_corner;
107         else
108             goto is_not_a_corner;
109         else
110             goto is_not_a_corner;
111         else
112             goto is_not_a_corner;
113         else
114             goto is_not_a_corner;
115         else if( p[pixel[10]] < c_b)
116             if( p[pixel[6]] < c_b)
117                 if( p[pixel[7]] < c_b)
118                     if( p[pixel[8]] < c_b)
119                         if( p[pixel[9]] < c_b)
120                             if( p[pixel[11]] < c_b)
121                                 if( p[pixel[12]] < c_b)
122                                     if( p[pixel[13]] < c_b)
123                                         if( p[pixel[14]] < c_b)
124                                             if( p[pixel[15]] < c_b)
125                                                 goto is_a_corner;
126                                             else
127                                                 goto is_not_a_corner;
128         else
129             goto is_not_a_corner;
130         else
131             goto is_not_a_corner;
132         else
133             goto is_not_a_corner;
134         else
135             goto is_not_a_corner;
136         else
137             goto is_not_a_corner;
138         else
139             goto is_not_a_corner;
140         else
141             goto is_not_a_corner;
142         else
143             goto is_not_a_corner;
144         else
145             goto is_not_a_corner;
146         else
147             if( p[pixel[10]] > cb)
148                 if( p[pixel[11]] > cb)
149                     if( p[pixel[12]] > cb)
150                         if( p[pixel[13]] > cb)
151                             if( p[pixel[14]] > cb)
152                                 if( p[pixel[15]] > cb)
153                                     goto is_a_corner;
154                                 else
155                                     goto is_not_a_corner;
156         else
157             goto is_not_a_corner;
158         else
159             goto is_not_a_corner;
160         else
161             goto is_not_a_corner;
162         else
163             goto is_not_a_corner;
164         else
165             goto is_not_a_corner;
166         else if( p[pixel[4]] < c_b)
167             if( p[pixel[15]] > cb)
168                 if( p[pixel[9]] > cb)
169                     if( p[pixel[10]] > cb)
170                         if( p[pixel[11]] > cb)
171                             if( p[pixel[12]] > cb)
172                                 if( p[pixel[13]] > cb)
173                                     if( p[pixel[14]] > cb)
174                                         goto is_a_corner;
175                                     else
176                                         goto is_not_a_corner;
177         else
178             goto is_not_a_corner;
179         else
180             goto is_not_a_corner;
181         else
182             goto is_not_a_corner;
183         else
184             goto is_not_a_corner;
185         else if( p[pixel[9]] < c_b)
186             if( p[pixel[5]] < c_b)
187                 if( p[pixel[6]] < c_b)
188                     if( p[pixel[7]] < c_b)
189                         if( p[pixel[8]] < c_b)
190                             if( p[pixel[10]] < c_b)
191                                 if( p[pixel[11]] < c_b)
192                                     if( p[pixel[12]] < c_b)
193                                         if( p[pixel[13]] < c_b)
194                                             if( p[pixel[14]] < c_b)
195                                                 goto is_a_corner;
196                                             else
197                                                 goto is_not_a_corner;
198         else
199             goto is_not_a_corner;
200         else
201             goto is_not_a_corner;
202         else
203             goto is_not_a_corner;
204         else
205             goto is_not_a_corner;
206         else
207             goto is_not_a_corner;
208         else
209             goto is_not_a_corner;
210         else
211             goto is_not_a_corner;
212         else
213             goto is_not_a_corner;
214         else
215             goto is_not_a_corner;
216         else
217             if( p[pixel[5]] < c_b)
218                 if( p[pixel[6]] < c_b)
219                     if( p[pixel[7]] < c_b)
220                         if( p[pixel[8]] < c_b)
221                             if( p[pixel[9]] < c_b)
222                                 if( p[pixel[10]] < c_b)
223                                     if( p[pixel[11]] < c_b)
224                                         if( p[pixel[12]] < c_b)
225                                             if( p[pixel[13]] < c_b)
226                                                 if( p[pixel[14]] < c_b)
227                                                     goto is_a_corner;
228                                                 else
229                                                     goto is_not_a_corner;
230         else
231             goto is_not_a_corner;
232         else
233             goto is_not_a_corner;
234         else
235             goto is_not_a_corner;
236         else
237             goto is_not_a_corner;
238         else
239             goto is_not_a_corner;
240         else
241             goto is_not_a_corner;
242         else
243             goto is_not_a_corner;
244         else
245             goto is_not_a_corner;
246         else
247             goto is_not_a_corner;
248         else
249             if( p[pixel[9]] > cb)
250                 if( p[pixel[10]] > cb)
251                     if( p[pixel[11]] > cb)
252                         if( p[pixel[12]] > cb)
253                             if( p[pixel[13]] > cb)
254                                 if( p[pixel[14]] > cb)
255                                     if( p[pixel[15]] > cb)
256                                         goto is_a_corner;
257                                     else
258                                         goto is_not_a_corner;
259         else
260             goto is_not_a_corner;
261         else
262             goto is_not_a_corner;
263         else
264             goto is_not_a_corner;
265         else
266             goto is_not_a_corner;
267         else
268             goto is_not_a_corner;
269         else if( p[pixel[9]] < c_b)
270             if( p[pixel[5]] < c_b)
271                 if( p[pixel[6]] < c_b)
272                     if( p[pixel[7]] < c_b)
273                         if( p[pixel[8]] < c_b)
274                             if( p[pixel[10]] < c_b)
275                                 if( p[pixel[11]] < c_b)
276                                     if( p[pixel[12]] < c_b)
277                                         if( p[pixel[13]] < c_b)
278                                             if( p[pixel[14]] < c_b)
279                                                 if( p[pixel[15]] < c_b)
280                                                     goto is_a_corner;
281                                                 else
282                                                     goto is_not_a_corner;
283         else
284             goto is_not_a_corner;
285         else
286             goto is_not_a_corner;
287         else
288             goto is_not_a_corner;
289         else
290             goto is_not_a_corner;
291         else
292             goto is_not_a_corner;
293         else
294             goto is_not_a_corner;
295         else
296             goto is_not_a_corner;
297         else
298             goto is_not_a_corner;
299         else
300             goto is_not_a_corner;
301         else
302             goto is_not_a_corner;
303         else if( p[pixel[3]] < c_b)
304             if( p[pixel[14]] > cb)
305                 if( p[pixel[8]] > cb)
306                     if( p[pixel[9]] > cb)
307                         if( p[pixel[10]] > cb)
308                             if( p[pixel[11]] > cb)
309                                 if( p[pixel[12]] > cb)
310                                     if( p[pixel[13]] > cb)
311                                         if( p[pixel[15]] > cb)
312                                             goto is_a_corner;
313                                         else
314                                             if( p[pixel[4]] > cb)
315                                                 if( p[pixel[5]] > cb)
316                                                     if( p[pixel[6]] > cb)
317                                                         if( p[pixel[7]] > cb)
318                                                             goto is_a_corner;
319                                                         else
320                                                             goto is_not_a_corner;
321         else
322             goto is_not_a_corner;
323         else
324             goto is_not_a_corner;
325         else
326             goto is_not_a_corner;
327         else
328             goto is_not_a_corner;
329         else
330             goto is_not_a_corner;
331         else
332             goto is_not_a_corner;
333         else
334             goto is_not_a_corner;
335         else
336             goto is_not_a_corner;
337         else if( p[pixel[8]] < c_b)
338             if( p[pixel[4]] < c_b)
339                 if( p[pixel[5]] < c_b)
340                     if( p[pixel[6]] < c_b)
341                         if( p[pixel[7]] < c_b)
342                             if( p[pixel[9]] < c_b)
343                                 if( p[pixel[10]] < c_b)
344                                     if( p[pixel[11]] < c_b)
345                                         if( p[pixel[12]] < c_b)
346                                             if( p[pixel[13]] < c_b)
347                                                 goto is_a_corner;
348                                             else
349                                                 goto is_not_a_corner;
350         else
351             goto is_not_a_corner;
352         else
353             goto is_not_a_corner;
354         else
355             goto is_not_a_corner;
356         else
357             goto is_not_a_corner;
358         else
359             goto is_not_a_corner;
360         else
361             goto is_not_a_corner;
362         else
363             goto is_not_a_corner;
364         else
365             goto is_not_a_corner;
366         else
367             goto is_not_a_corner;
368         else if( p[pixel[14]] < c_b)
369             if( p[pixel[5]] < c_b)
370                 if( p[pixel[6]] < c_b)
371                     if( p[pixel[7]] < c_b)
372                         if( p[pixel[8]] < c_b)
373                             if( p[pixel[9]] < c_b)
374                                 if( p[pixel[10]] < c_b)
375                                     if( p[pixel[11]] < c_b)
376                                         if( p[pixel[12]] < c_b)
377                                             if( p[pixel[13]] < c_b)
378                                                 if( p[pixel[4]] < c_b)
379                                                     goto is_a_corner;
380                                                 else
381                                                     if( p[pixel[15]] < c_b)
382                                                         goto is_a_corner;
383                                                     else
384                                                         goto is_not_a_corner;
385         else
386             goto is_not_a_corner;
387         else
388             goto is_not_a_corner;
389         else
390             goto is_not_a_corner;
391         else
392             goto is_not_a_corner;
393         else
394             goto is_not_a_corner;
395         else
396             goto is_not_a_corner;
397         else
398             goto is_not_a_corner;
399         else
400             goto is_not_a_corner;
401         else
402             goto is_not_a_corner;
403         else
404             if( p[pixel[4]] < c_b)
405                 if( p[pixel[5]] < c_b)
406                     if( p[pixel[6]] < c_b)
407                         if( p[pixel[7]] < c_b)
408                             if( p[pixel[8]] < c_b)
409                                 if( p[pixel[9]] < c_b)
410                                     if( p[pixel[10]] < c_b)
411                                         if( p[pixel[11]] < c_b)
412                                             if( p[pixel[12]] < c_b)
413                                                 if( p[pixel[13]] < c_b)
414                                                     goto is_a_corner;
415                                                 else
416                                                     goto is_not_a_corner;
417         else
418             goto is_not_a_corner;
419         else
420             goto is_not_a_corner;
421         else
422             goto is_not_a_corner;
423         else
424             goto is_not_a_corner;
425         else
426             goto is_not_a_corner;
427         else
428             goto is_not_a_corner;
429         else
430             goto is_not_a_corner;
431         else
432             goto is_not_a_corner;
433         else
434             goto is_not_a_corner;
435         else
436             if( p[pixel[8]] > cb)
437                 if( p[pixel[9]] > cb)
438                     if( p[pixel[10]] > cb)
439                         if( p[pixel[11]] > cb)
440                             if( p[pixel[12]] > cb)
441                                 if( p[pixel[13]] > cb)
442                                     if( p[pixel[14]] > cb)
443                                         if( p[pixel[15]] > cb)
444                                             goto is_a_corner;
445                                         else
446                                             if( p[pixel[4]] > cb)
447                                                 if( p[pixel[5]] > cb)
448                                                     if( p[pixel[6]] > cb)
449                                                         if( p[pixel[7]] > cb)
450                                                             goto is_a_corner;
451                                                         else
452                                                             goto is_not_a_corner;
453         else
454             goto is_not_a_corner;
455         else
456             goto is_not_a_corner;
457         else
458             goto is_not_a_corner;
459         else
460             goto is_not_a_corner;
461         else
462             goto is_not_a_corner;
463         else
464             goto is_not_a_corner;
465         else
466             goto is_not_a_corner;
467         else
468             goto is_not_a_corner;
469         else
470             goto is_not_a_corner;
471         else if( p[pixel[8]] < c_b)
472             if( p[pixel[5]] < c_b)
473                 if( p[pixel[6]] < c_b)
474                     if( p[pixel[7]] < c_b)
475                         if( p[pixel[9]] < c_b)
476                             if( p[pixel[10]] < c_b)
477                                 if( p[pixel[11]] < c_b)
478                                     if( p[pixel[12]] < c_b)
479                                         if( p[pixel[13]] < c_b)
480                                             if( p[pixel[14]] < c_b)
481                                                 if( p[pixel[4]] < c_b)
482                                                     goto is_a_corner;
483                                                 else
484                                                     if( p[pixel[15]] < c_b)
485                                                         goto is_a_corner;
486                                                     else
487                                                         goto is_not_a_corner;
488         else
489             goto is_not_a_corner;
490         else
491             goto is_not_a_corner;
492         else
493             goto is_not_a_corner;
494         else
495             goto is_not_a_corner;
496         else
497             goto is_not_a_corner;
498         else
499             goto is_not_a_corner;
500         else
501             goto is_not_a_corner;
502         else
503             goto is_not_a_corner;
504         else
505             goto is_not_a_corner;
506         else
507             goto is_not_a_corner;
508         else if( p[pixel[2]] < c_b)
509             if( p[pixel[7]] > cb)
510                 if( p[pixel[8]] > cb)
511                     if( p[pixel[9]] > cb)
512                         if( p[pixel[10]] > cb)
513                             if( p[pixel[11]] > cb)
514                                 if( p[pixel[12]] > cb)
515                                     if( p[pixel[13]] > cb)
516                                         if( p[pixel[14]] > cb)
517                                             if( p[pixel[15]] > cb)
518                                                 goto is_a_corner;
519                                             else
520                                                 if( p[pixel[4]] > cb)
521                                                     if( p[pixel[5]] > cb)
522                                                         if( p[pixel[6]] > cb)
523                                                             goto is_a_corner;
524                                                         else
525                                                             goto is_not_a_corner;
526         else
527             goto is_not_a_corner;
528         else
529             goto is_not_a_corner;
530         else
531             if( p[pixel[3]] > cb)
532                 if( p[pixel[4]] > cb)
533                     if( p[pixel[5]] > cb)
534                         if( p[pixel[6]] > cb)
535                             goto is_a_corner;
536                         else
537                             goto is_not_a_corner;
538         else
539             goto is_not_a_corner;
540         else
541             goto is_not_a_corner;
542         else
543             goto is_not_a_corner;
544         else
545             goto is_not_a_corner;
546         else
547             goto is_not_a_corner;
548         else
549             goto is_not_a_corner;
550         else
551             goto is_not_a_corner;
552         else
553             goto is_not_a_corner;
554         else
555             goto is_not_a_corner;
556         else if( p[pixel[7]] < c_b)
557             if( p[pixel[5]] < c_b)
558                 if( p[pixel[6]] < c_b)
559                     if( p[pixel[8]] < c_b)
560                         if( p[pixel[9]] < c_b)
561                             if( p[pixel[10]] < c_b)
562                                 if( p[pixel[11]] < c_b)
563                                     if( p[pixel[12]] < c_b)
564                                         if( p[pixel[4]] < c_b)
565                                             if( p[pixel[3]] < c_b)
566                                                 goto is_a_corner;
567                                             else
568                                                 if( p[pixel[13]] < c_b)
569                                                     if( p[pixel[14]] < c_b)
570                                                         goto is_a_corner;
571                                                     else
572                                                         goto is_not_a_corner;
573         else
574             goto is_not_a_corner;
575         else
576             if( p[pixel[13]] < c_b)
577                 if( p[pixel[14]] < c_b)
578                     if( p[pixel[15]] < c_b)
579                         goto is_a_corner;
580                     else
581                         goto is_not_a_corner;
582         else
583             goto is_not_a_corner;
584         else
585             goto is_not_a_corner;
586         else
587             goto is_not_a_corner;
588         else
589             goto is_not_a_corner;
590         else
591             goto is_not_a_corner;
592         else
593             goto is_not_a_corner;
594         else
595             goto is_not_a_corner;
596         else
597             goto is_not_a_corner;
598         else
599             goto is_not_a_corner;
600         else
601             goto is_not_a_corner;
602         else
603             if( p[pixel[7]] > cb)
604                 if( p[pixel[8]] > cb)
605                     if( p[pixel[9]] > cb)
606                         if( p[pixel[10]] > cb)
607                             if( p[pixel[11]] > cb)
608                                 if( p[pixel[12]] > cb)
609                                     if( p[pixel[13]] > cb)
610                                         if( p[pixel[14]] > cb)
611                                             if( p[pixel[15]] > cb)
612                                                 goto is_a_corner;
613                                             else
614                                                 if( p[pixel[4]] > cb)
615                                                     if( p[pixel[5]] > cb)
616                                                         if( p[pixel[6]] > cb)
617                                                             goto is_a_corner;
618                                                         else
619                                                             goto is_not_a_corner;
620         else
621             goto is_not_a_corner;
622         else
623             goto is_not_a_corner;
624         else
625             if( p[pixel[3]] > cb)
626                 if( p[pixel[4]] > cb)
627                     if( p[pixel[5]] > cb)
628                         if( p[pixel[6]] > cb)
629                             goto is_a_corner;
630                         else
631                             goto is_not_a_corner;
632         else
633             goto is_not_a_corner;
634         else
635             goto is_not_a_corner;
636         else
637             goto is_not_a_corner;
638         else
639             goto is_not_a_corner;
640         else
641             goto is_not_a_corner;
642         else
643             goto is_not_a_corner;
644         else
645             goto is_not_a_corner;
646         else
647             goto is_not_a_corner;
648         else
649             goto is_not_a_corner;
650         else if( p[pixel[7]] < c_b)
651             if( p[pixel[5]] < c_b)
652                 if( p[pixel[6]] < c_b)
653                     if( p[pixel[8]] < c_b)
654                         if( p[pixel[9]] < c_b)
655                             if( p[pixel[10]] < c_b)
656                                 if( p[pixel[11]] < c_b)
657                                     if( p[pixel[12]] < c_b)
658                                         if( p[pixel[13]] < c_b)
659                                             if( p[pixel[4]] < c_b)
660                                                 if( p[pixel[3]] < c_b)
661                                                     goto is_a_corner;
662                                                 else
663                                                     if( p[pixel[14]] < c_b)
664                                                         goto is_a_corner;
665                                                     else
666                                                         goto is_not_a_corner;
667         else
668             if( p[pixel[14]] < c_b)
669                 if( p[pixel[15]] < c_b)
670                     goto is_a_corner;
671                 else
672                     goto is_not_a_corner;
673         else
674             goto is_not_a_corner;
675         else
676             goto is_not_a_corner;
677         else
678             goto is_not_a_corner;
679         else
680             goto is_not_a_corner;
681         else
682             goto is_not_a_corner;
683         else
684             goto is_not_a_corner;
685         else
686             goto is_not_a_corner;
687         else
688             goto is_not_a_corner;
689         else
690             goto is_not_a_corner;
691         else
692             goto is_not_a_corner;
693         else if( p[pixel[1]] < c_b)
694             if( p[pixel[6]] > cb)
695                 if( p[pixel[7]] > cb)
696                     if( p[pixel[8]] > cb)
697                         if( p[pixel[9]] > cb)
698                             if( p[pixel[10]] > cb)
699                                 if( p[pixel[11]] > cb)
700                                     if( p[pixel[12]] > cb)
701                                         if( p[pixel[13]] > cb)
702                                             if( p[pixel[14]] > cb)
703                                                 if( p[pixel[15]] > cb)
704                                                     goto is_a_corner;
705                                                 else
706                                                     if( p[pixel[4]] > cb)
707                                                         if( p[pixel[5]] > cb)
708                                                             goto is_a_corner;
709                                                         else
710                                                             goto is_not_a_corner;
711         else
712             goto is_not_a_corner;
713         else
714             if( p[pixel[3]] > cb)
715                 if( p[pixel[4]] > cb)
716                     if( p[pixel[5]] > cb)
717                         goto is_a_corner;
718                     else
719                         goto is_not_a_corner;
720         else
721             goto is_not_a_corner;
722         else
723             goto is_not_a_corner;
724         else
725             if( p[pixel[2]] > cb)
726                 if( p[pixel[3]] > cb)
727                     if( p[pixel[4]] > cb)
728                         if( p[pixel[5]] > cb)
729                             goto is_a_corner;
730                         else
731                             goto is_not_a_corner;
732         else
733             goto is_not_a_corner;
734         else
735             goto is_not_a_corner;
736         else
737             goto is_not_a_corner;
738         else
739             goto is_not_a_corner;
740         else
741             goto is_not_a_corner;
742         else
743             goto is_not_a_corner;
744         else
745             goto is_not_a_corner;
746         else
747             goto is_not_a_corner;
748         else
749             goto is_not_a_corner;
750         else if( p[pixel[6]] < c_b)
751             if( p[pixel[5]] < c_b)
752                 if( p[pixel[7]] < c_b)
753                     if( p[pixel[8]] < c_b)
754                         if( p[pixel[9]] < c_b)
755                             if( p[pixel[10]] < c_b)
756                                 if( p[pixel[11]] < c_b)
757                                     if( p[pixel[4]] < c_b)
758                                         if( p[pixel[3]] < c_b)
759                                             if( p[pixel[2]] < c_b)
760                                                 goto is_a_corner;
761                                             else
762                                                 if( p[pixel[12]] < c_b)
763                                                     if( p[pixel[13]] < c_b)
764                                                         goto is_a_corner;
765                                                     else
766                                                         goto is_not_a_corner;
767         else
768             goto is_not_a_corner;
769         else
770             if( p[pixel[12]] < c_b)
771                 if( p[pixel[13]] < c_b)
772                     if( p[pixel[14]] < c_b)
773                         goto is_a_corner;
774                     else
775                         goto is_not_a_corner;
776         else
777             goto is_not_a_corner;
778         else
779             goto is_not_a_corner;
780         else
781             if( p[pixel[12]] < c_b)
782                 if( p[pixel[13]] < c_b)
783                     if( p[pixel[14]] < c_b)
784                         if( p[pixel[15]] < c_b)
785                             goto is_a_corner;
786                         else
787                             goto is_not_a_corner;
788         else
789             goto is_not_a_corner;
790         else
791             goto is_not_a_corner;
792         else
793             goto is_not_a_corner;
794         else
795             goto is_not_a_corner;
796         else
797             goto is_not_a_corner;
798         else
799             goto is_not_a_corner;
800         else
801             goto is_not_a_corner;
802         else
803             goto is_not_a_corner;
804         else
805             goto is_not_a_corner;
806         else
807             goto is_not_a_corner;
808         else
809             if( p[pixel[6]] > cb)
810                 if( p[pixel[7]] > cb)
811                     if( p[pixel[8]] > cb)
812                         if( p[pixel[9]] > cb)
813                             if( p[pixel[10]] > cb)
814                                 if( p[pixel[11]] > cb)
815                                     if( p[pixel[12]] > cb)
816                                         if( p[pixel[13]] > cb)
817                                             if( p[pixel[14]] > cb)
818                                                 if( p[pixel[15]] > cb)
819                                                     goto is_a_corner;
820                                                 else
821                                                     if( p[pixel[4]] > cb)
822                                                         if( p[pixel[5]] > cb)
823                                                             goto is_a_corner;
824                                                         else
825                                                             goto is_not_a_corner;
826         else
827             goto is_not_a_corner;
828         else
829             if( p[pixel[3]] > cb)
830                 if( p[pixel[4]] > cb)
831                     if( p[pixel[5]] > cb)
832                         goto is_a_corner;
833                     else
834                         goto is_not_a_corner;
835         else
836             goto is_not_a_corner;
837         else
838             goto is_not_a_corner;
839         else
840             if( p[pixel[2]] > cb)
841                 if( p[pixel[3]] > cb)
842                     if( p[pixel[4]] > cb)
843                         if( p[pixel[5]] > cb)
844                             goto is_a_corner;
845                         else
846                             goto is_not_a_corner;
847         else
848             goto is_not_a_corner;
849         else
850             goto is_not_a_corner;
851         else
852             goto is_not_a_corner;
853         else
854             goto is_not_a_corner;
855         else
856             goto is_not_a_corner;
857         else
858             goto is_not_a_corner;
859         else
860             goto is_not_a_corner;
861         else
862             goto is_not_a_corner;
863         else
864             goto is_not_a_corner;
865         else if( p[pixel[6]] < c_b)
866             if( p[pixel[5]] < c_b)
867                 if( p[pixel[7]] < c_b)
868                     if( p[pixel[8]] < c_b)
869                         if( p[pixel[9]] < c_b)
870                             if( p[pixel[10]] < c_b)
871                                 if( p[pixel[11]] < c_b)
872                                     if( p[pixel[12]] < c_b)
873                                         if( p[pixel[4]] < c_b)
874                                             if( p[pixel[3]] < c_b)
875                                                 if( p[pixel[2]] < c_b)
876                                                     goto is_a_corner;
877                                                 else
878                                                     if( p[pixel[13]] < c_b)
879                                                         goto is_a_corner;
880                                                     else
881                                                         goto is_not_a_corner;
882         else
883             if( p[pixel[13]] < c_b)
884                 if( p[pixel[14]] < c_b)
885                     goto is_a_corner;
886                 else
887                     goto is_not_a_corner;
888         else
889             goto is_not_a_corner;
890         else
891             if( p[pixel[13]] < c_b)
892                 if( p[pixel[14]] < c_b)
893                     if( p[pixel[15]] < c_b)
894                         goto is_a_corner;
895                     else
896                         goto is_not_a_corner;
897         else
898             goto is_not_a_corner;
899         else
900             goto is_not_a_corner;
901         else
902             goto is_not_a_corner;
903         else
904             goto is_not_a_corner;
905         else
906             goto is_not_a_corner;
907         else
908             goto is_not_a_corner;
909         else
910             goto is_not_a_corner;
911         else
912             goto is_not_a_corner;
913         else
914             goto is_not_a_corner;
915         else
916             goto is_not_a_corner;
917         else if( p[pixel[0]] < c_b)
918             if( p[pixel[1]] > cb)
919                 if( p[pixel[6]] > cb)
920                     if( p[pixel[5]] > cb)
921                         if( p[pixel[7]] > cb)
922                             if( p[pixel[8]] > cb)
923                                 if( p[pixel[9]] > cb)
924                                     if( p[pixel[10]] > cb)
925                                         if( p[pixel[11]] > cb)
926                                             if( p[pixel[4]] > cb)
927                                                 if( p[pixel[3]] > cb)
928                                                     if( p[pixel[2]] > cb)
929                                                         goto is_a_corner;
930                                                     else
931                                                         if( p[pixel[12]] > cb)
932                                                             if( p[pixel[13]] > cb)
933                                                                 goto is_a_corner;
934                                                             else
935                                                                 goto is_not_a_corner;
936         else
937             goto is_not_a_corner;
938         else
939             if( p[pixel[12]] > cb)
940                 if( p[pixel[13]] > cb)
941                     if( p[pixel[14]] > cb)
942                         goto is_a_corner;
943                     else
944                         goto is_not_a_corner;
945         else
946             goto is_not_a_corner;
947         else
948             goto is_not_a_corner;
949         else
950             if( p[pixel[12]] > cb)
951                 if( p[pixel[13]] > cb)
952                     if( p[pixel[14]] > cb)
953                         if( p[pixel[15]] > cb)
954                             goto is_a_corner;
955                         else
956                             goto is_not_a_corner;
957         else
958             goto is_not_a_corner;
959         else
960             goto is_not_a_corner;
961         else
962             goto is_not_a_corner;
963         else
964             goto is_not_a_corner;
965         else
966             goto is_not_a_corner;
967         else
968             goto is_not_a_corner;
969         else
970             goto is_not_a_corner;
971         else
972             goto is_not_a_corner;
973         else
974             goto is_not_a_corner;
975         else if( p[pixel[6]] < c_b)
976             if( p[pixel[7]] < c_b)
977                 if( p[pixel[8]] < c_b)
978                     if( p[pixel[9]] < c_b)
979                         if( p[pixel[10]] < c_b)
980                             if( p[pixel[11]] < c_b)
981                                 if( p[pixel[12]] < c_b)
982                                     if( p[pixel[13]] < c_b)
983                                         if( p[pixel[14]] < c_b)
984                                             if( p[pixel[15]] < c_b)
985                                                 goto is_a_corner;
986                                             else
987                                                 if( p[pixel[4]] < c_b)
988                                                     if( p[pixel[5]] < c_b)
989                                                         goto is_a_corner;
990                                                     else
991                                                         goto is_not_a_corner;
992         else
993             goto is_not_a_corner;
994         else
995             if( p[pixel[3]] < c_b)
996                 if( p[pixel[4]] < c_b)
997                     if( p[pixel[5]] < c_b)
998                         goto is_a_corner;
999                     else
1000                         goto is_not_a_corner;
1001         else
1002             goto is_not_a_corner;
1003         else
1004             goto is_not_a_corner;
1005         else
1006             if( p[pixel[2]] < c_b)
1007                 if( p[pixel[3]] < c_b)
1008                     if( p[pixel[4]] < c_b)
1009                         if( p[pixel[5]] < c_b)
1010                             goto is_a_corner;
1011                         else
1012                             goto is_not_a_corner;
1013         else
1014             goto is_not_a_corner;
1015         else
1016             goto is_not_a_corner;
1017         else
1018             goto is_not_a_corner;
1019         else
1020             goto is_not_a_corner;
1021         else
1022             goto is_not_a_corner;
1023         else
1024             goto is_not_a_corner;
1025         else
1026             goto is_not_a_corner;
1027         else
1028             goto is_not_a_corner;
1029         else
1030             goto is_not_a_corner;
1031         else
1032             goto is_not_a_corner;
1033         else if( p[pixel[1]] < c_b)
1034             if( p[pixel[2]] > cb)
1035                 if( p[pixel[7]] > cb)
1036                     if( p[pixel[5]] > cb)
1037                         if( p[pixel[6]] > cb)
1038                             if( p[pixel[8]] > cb)
1039                                 if( p[pixel[9]] > cb)
1040                                     if( p[pixel[10]] > cb)
1041                                         if( p[pixel[11]] > cb)
1042                                             if( p[pixel[12]] > cb)
1043                                                 if( p[pixel[4]] > cb)
1044                                                     if( p[pixel[3]] > cb)
1045                                                         goto is_a_corner;
1046                                                     else
1047                                                         if( p[pixel[13]] > cb)
1048                                                             if( p[pixel[14]] > cb)
1049                                                                 goto is_a_corner;
1050                                                             else
1051                                                                 goto is_not_a_corner;
1052         else
1053             goto is_not_a_corner;
1054         else
1055             if( p[pixel[13]] > cb)
1056                 if( p[pixel[14]] > cb)
1057                     if( p[pixel[15]] > cb)
1058                         goto is_a_corner;
1059                     else
1060                         goto is_not_a_corner;
1061         else
1062             goto is_not_a_corner;
1063         else
1064             goto is_not_a_corner;
1065         else
1066             goto is_not_a_corner;
1067         else
1068             goto is_not_a_corner;
1069         else
1070             goto is_not_a_corner;
1071         else
1072             goto is_not_a_corner;
1073         else
1074             goto is_not_a_corner;
1075         else
1076             goto is_not_a_corner;
1077         else
1078             goto is_not_a_corner;
1079         else if( p[pixel[7]] < c_b)
1080             if( p[pixel[8]] < c_b)
1081                 if( p[pixel[9]] < c_b)
1082                     if( p[pixel[10]] < c_b)
1083                         if( p[pixel[11]] < c_b)
1084                             if( p[pixel[12]] < c_b)
1085                                 if( p[pixel[13]] < c_b)
1086                                     if( p[pixel[14]] < c_b)
1087                                         if( p[pixel[15]] < c_b)
1088                                             goto is_a_corner;
1089                                         else
1090                                             if( p[pixel[4]] < c_b)
1091                                                 if( p[pixel[5]] < c_b)
1092                                                     if( p[pixel[6]] < c_b)
1093                                                         goto is_a_corner;
1094                                                     else
1095                                                         goto is_not_a_corner;
1096         else
1097             goto is_not_a_corner;
1098         else
1099             goto is_not_a_corner;
1100         else
1101             if( p[pixel[3]] < c_b)
1102                 if( p[pixel[4]] < c_b)
1103                     if( p[pixel[5]] < c_b)
1104                         if( p[pixel[6]] < c_b)
1105                             goto is_a_corner;
1106                         else
1107                             goto is_not_a_corner;
1108         else
1109             goto is_not_a_corner;
1110         else
1111             goto is_not_a_corner;
1112         else
1113             goto is_not_a_corner;
1114         else
1115             goto is_not_a_corner;
1116         else
1117             goto is_not_a_corner;
1118         else
1119             goto is_not_a_corner;
1120         else
1121             goto is_not_a_corner;
1122         else
1123             goto is_not_a_corner;
1124         else
1125             goto is_not_a_corner;
1126         else
1127             goto is_not_a_corner;
1128         else if( p[pixel[2]] < c_b)
1129             if( p[pixel[3]] > cb)
1130                 if( p[pixel[14]] > cb)
1131                     if( p[pixel[5]] > cb)
1132                         if( p[pixel[6]] > cb)
1133                             if( p[pixel[7]] > cb)
1134                                 if( p[pixel[8]] > cb)
1135                                     if( p[pixel[9]] > cb)
1136                                         if( p[pixel[10]] > cb)
1137                                             if( p[pixel[11]] > cb)
1138                                                 if( p[pixel[12]] > cb)
1139                                                     if( p[pixel[13]] > cb)
1140                                                         if( p[pixel[4]] > cb)
1141                                                             goto is_a_corner;
1142                                                         else
1143                                                             if( p[pixel[15]] > cb)
1144                                                                 goto is_a_corner;
1145                                                             else
1146                                                                 goto is_not_a_corner;
1147         else
1148             goto is_not_a_corner;
1149         else
1150             goto is_not_a_corner;
1151         else
1152             goto is_not_a_corner;
1153         else
1154             goto is_not_a_corner;
1155         else
1156             goto is_not_a_corner;
1157         else
1158             goto is_not_a_corner;
1159         else
1160             goto is_not_a_corner;
1161         else
1162             goto is_not_a_corner;
1163         else
1164             goto is_not_a_corner;
1165         else if( p[pixel[14]] < c_b)
1166             if( p[pixel[8]] > cb)
1167                 if( p[pixel[4]] > cb)
1168                     if( p[pixel[5]] > cb)
1169                         if( p[pixel[6]] > cb)
1170                             if( p[pixel[7]] > cb)
1171                                 if( p[pixel[9]] > cb)
1172                                     if( p[pixel[10]] > cb)
1173                                         if( p[pixel[11]] > cb)
1174                                             if( p[pixel[12]] > cb)
1175                                                 if( p[pixel[13]] > cb)
1176                                                     goto is_a_corner;
1177                                                 else
1178                                                     goto is_not_a_corner;
1179         else
1180             goto is_not_a_corner;
1181         else
1182             goto is_not_a_corner;
1183         else
1184             goto is_not_a_corner;
1185         else
1186             goto is_not_a_corner;
1187         else
1188             goto is_not_a_corner;
1189         else
1190             goto is_not_a_corner;
1191         else
1192             goto is_not_a_corner;
1193         else
1194             goto is_not_a_corner;
1195         else if( p[pixel[8]] < c_b)
1196             if( p[pixel[9]] < c_b)
1197                 if( p[pixel[10]] < c_b)
1198                     if( p[pixel[11]] < c_b)
1199                         if( p[pixel[12]] < c_b)
1200                             if( p[pixel[13]] < c_b)
1201                                 if( p[pixel[15]] < c_b)
1202                                     goto is_a_corner;
1203                                 else
1204                                     if( p[pixel[4]] < c_b)
1205                                         if( p[pixel[5]] < c_b)
1206                                             if( p[pixel[6]] < c_b)
1207                                                 if( p[pixel[7]] < c_b)
1208                                                     goto is_a_corner;
1209                                                 else
1210                                                     goto is_not_a_corner;
1211         else
1212             goto is_not_a_corner;
1213         else
1214             goto is_not_a_corner;
1215         else
1216             goto is_not_a_corner;
1217         else
1218             goto is_not_a_corner;
1219         else
1220             goto is_not_a_corner;
1221         else
1222             goto is_not_a_corner;
1223         else
1224             goto is_not_a_corner;
1225         else
1226             goto is_not_a_corner;
1227         else
1228             goto is_not_a_corner;
1229         else
1230             if( p[pixel[4]] > cb)
1231                 if( p[pixel[5]] > cb)
1232                     if( p[pixel[6]] > cb)
1233                         if( p[pixel[7]] > cb)
1234                             if( p[pixel[8]] > cb)
1235                                 if( p[pixel[9]] > cb)
1236                                     if( p[pixel[10]] > cb)
1237                                         if( p[pixel[11]] > cb)
1238                                             if( p[pixel[12]] > cb)
1239                                                 if( p[pixel[13]] > cb)
1240                                                     goto is_a_corner;
1241                                                 else
1242                                                     goto is_not_a_corner;
1243         else
1244             goto is_not_a_corner;
1245         else
1246             goto is_not_a_corner;
1247         else
1248             goto is_not_a_corner;
1249         else
1250             goto is_not_a_corner;
1251         else
1252             goto is_not_a_corner;
1253         else
1254             goto is_not_a_corner;
1255         else
1256             goto is_not_a_corner;
1257         else
1258             goto is_not_a_corner;
1259         else
1260             goto is_not_a_corner;
1261         else if( p[pixel[3]] < c_b)
1262             if( p[pixel[4]] > cb)
1263                 if( p[pixel[15]] < c_b)
1264                     if( p[pixel[9]] > cb)
1265                         if( p[pixel[5]] > cb)
1266                             if( p[pixel[6]] > cb)
1267                                 if( p[pixel[7]] > cb)
1268                                     if( p[pixel[8]] > cb)
1269                                         if( p[pixel[10]] > cb)
1270                                             if( p[pixel[11]] > cb)
1271                                                 if( p[pixel[12]] > cb)
1272                                                     if( p[pixel[13]] > cb)
1273                                                         if( p[pixel[14]] > cb)
1274                                                             goto is_a_corner;
1275                                                         else
1276                                                             goto is_not_a_corner;
1277         else
1278             goto is_not_a_corner;
1279         else
1280             goto is_not_a_corner;
1281         else
1282             goto is_not_a_corner;
1283         else
1284             goto is_not_a_corner;
1285         else
1286             goto is_not_a_corner;
1287         else
1288             goto is_not_a_corner;
1289         else
1290             goto is_not_a_corner;
1291         else
1292             goto is_not_a_corner;
1293         else if( p[pixel[9]] < c_b)
1294             if( p[pixel[10]] < c_b)
1295                 if( p[pixel[11]] < c_b)
1296                     if( p[pixel[12]] < c_b)
1297                         if( p[pixel[13]] < c_b)
1298                             if( p[pixel[14]] < c_b)
1299                                 goto is_a_corner;
1300                             else
1301                                 goto is_not_a_corner;
1302         else
1303             goto is_not_a_corner;
1304         else
1305             goto is_not_a_corner;
1306         else
1307             goto is_not_a_corner;
1308         else
1309             goto is_not_a_corner;
1310         else
1311             goto is_not_a_corner;
1312         else
1313             if( p[pixel[5]] > cb)
1314                 if( p[pixel[6]] > cb)
1315                     if( p[pixel[7]] > cb)
1316                         if( p[pixel[8]] > cb)
1317                             if( p[pixel[9]] > cb)
1318                                 if( p[pixel[10]] > cb)
1319                                     if( p[pixel[11]] > cb)
1320                                         if( p[pixel[12]] > cb)
1321                                             if( p[pixel[13]] > cb)
1322                                                 if( p[pixel[14]] > cb)
1323                                                     goto is_a_corner;
1324                                                 else
1325                                                     goto is_not_a_corner;
1326         else
1327             goto is_not_a_corner;
1328         else
1329             goto is_not_a_corner;
1330         else
1331             goto is_not_a_corner;
1332         else
1333             goto is_not_a_corner;
1334         else
1335             goto is_not_a_corner;
1336         else
1337             goto is_not_a_corner;
1338         else
1339             goto is_not_a_corner;
1340         else
1341             goto is_not_a_corner;
1342         else
1343             goto is_not_a_corner;
1344         else if( p[pixel[4]] < c_b)
1345             if( p[pixel[5]] > cb)
1346                 if( p[pixel[10]] > cb)
1347                     if( p[pixel[6]] > cb)
1348                         if( p[pixel[7]] > cb)
1349                             if( p[pixel[8]] > cb)
1350                                 if( p[pixel[9]] > cb)
1351                                     if( p[pixel[11]] > cb)
1352                                         if( p[pixel[12]] > cb)
1353                                             if( p[pixel[13]] > cb)
1354                                                 if( p[pixel[14]] > cb)
1355                                                     if( p[pixel[15]] > cb)
1356                                                         goto is_a_corner;
1357                                                     else
1358                                                         goto is_not_a_corner;
1359         else
1360             goto is_not_a_corner;
1361         else
1362             goto is_not_a_corner;
1363         else
1364             goto is_not_a_corner;
1365         else
1366             goto is_not_a_corner;
1367         else
1368             goto is_not_a_corner;
1369         else
1370             goto is_not_a_corner;
1371         else
1372             goto is_not_a_corner;
1373         else
1374             goto is_not_a_corner;
1375         else if( p[pixel[10]] < c_b)
1376             if( p[pixel[11]] < c_b)
1377                 if( p[pixel[12]] < c_b)
1378                     if( p[pixel[13]] < c_b)
1379                         if( p[pixel[14]] < c_b)
1380                             if( p[pixel[15]] < c_b)
1381                                 goto is_a_corner;
1382                             else
1383                                 goto is_not_a_corner;
1384         else
1385             goto is_not_a_corner;
1386         else
1387             goto is_not_a_corner;
1388         else
1389             goto is_not_a_corner;
1390         else
1391             goto is_not_a_corner;
1392         else
1393             goto is_not_a_corner;
1394         else if( p[pixel[5]] < c_b)
1395             if( p[pixel[6]] < c_b)
1396                 if( p[pixel[7]] < c_b)
1397                     if( p[pixel[8]] < c_b)
1398                         if( p[pixel[9]] < c_b)
1399                             if( p[pixel[10]] < c_b)
1400                                 goto is_a_corner;
1401                             else
1402                                 if( p[pixel[15]] < c_b)
1403                                     goto is_a_corner;
1404                                 else
1405                                     goto is_not_a_corner;
1406         else
1407             if( p[pixel[14]] < c_b)
1408                 if( p[pixel[15]] < c_b)
1409                     goto is_a_corner;
1410                 else
1411                     goto is_not_a_corner;
1412         else
1413             goto is_not_a_corner;
1414         else
1415             if( p[pixel[13]] < c_b)
1416                 if( p[pixel[14]] < c_b)
1417                     if( p[pixel[15]] < c_b)
1418                         goto is_a_corner;
1419                     else
1420                         goto is_not_a_corner;
1421         else
1422             goto is_not_a_corner;
1423         else
1424             goto is_not_a_corner;
1425         else
1426             if( p[pixel[12]] < c_b)
1427                 if( p[pixel[13]] < c_b)
1428                     if( p[pixel[14]] < c_b)
1429                         if( p[pixel[15]] < c_b)
1430                             goto is_a_corner;
1431                         else
1432                             goto is_not_a_corner;
1433         else
1434             goto is_not_a_corner;
1435         else
1436             goto is_not_a_corner;
1437         else
1438             goto is_not_a_corner;
1439         else
1440             if( p[pixel[11]] < c_b)
1441                 if( p[pixel[12]] < c_b)
1442                     if( p[pixel[13]] < c_b)
1443                         if( p[pixel[14]] < c_b)
1444                             if( p[pixel[15]] < c_b)
1445                                 goto is_a_corner;
1446                             else
1447                                 goto is_not_a_corner;
1448         else
1449             goto is_not_a_corner;
1450         else
1451             goto is_not_a_corner;
1452         else
1453             goto is_not_a_corner;
1454         else
1455             goto is_not_a_corner;
1456         else
1457             if( p[pixel[10]] < c_b)
1458                 if( p[pixel[11]] < c_b)
1459                     if( p[pixel[12]] < c_b)
1460                         if( p[pixel[13]] < c_b)
1461                             if( p[pixel[14]] < c_b)
1462                                 if( p[pixel[15]] < c_b)
1463                                     goto is_a_corner;
1464                                 else
1465                                     goto is_not_a_corner;
1466         else
1467             goto is_not_a_corner;
1468         else
1469             goto is_not_a_corner;
1470         else
1471             goto is_not_a_corner;
1472         else
1473             goto is_not_a_corner;
1474         else
1475             goto is_not_a_corner;
1476         else
1477             if( p[pixel[9]] > cb)
1478                 if( p[pixel[5]] > cb)
1479                     if( p[pixel[6]] > cb)
1480                         if( p[pixel[7]] > cb)
1481                             if( p[pixel[8]] > cb)
1482                                 if( p[pixel[10]] > cb)
1483                                     if( p[pixel[11]] > cb)
1484                                         if( p[pixel[12]] > cb)
1485                                             if( p[pixel[13]] > cb)
1486                                                 if( p[pixel[14]] > cb)
1487                                                     if( p[pixel[15]] > cb)
1488                                                         goto is_a_corner;
1489                                                     else
1490                                                         goto is_not_a_corner;
1491         else
1492             goto is_not_a_corner;
1493         else
1494             goto is_not_a_corner;
1495         else
1496             goto is_not_a_corner;
1497         else
1498             goto is_not_a_corner;
1499         else
1500             goto is_not_a_corner;
1501         else
1502             goto is_not_a_corner;
1503         else
1504             goto is_not_a_corner;
1505         else
1506             goto is_not_a_corner;
1507         else
1508             goto is_not_a_corner;
1509         else if( p[pixel[9]] < c_b)
1510             if( p[pixel[10]] < c_b)
1511                 if( p[pixel[11]] < c_b)
1512                     if( p[pixel[12]] < c_b)
1513                         if( p[pixel[13]] < c_b)
1514                             if( p[pixel[14]] < c_b)
1515                                 if( p[pixel[15]] < c_b)
1516                                     goto is_a_corner;
1517                                 else
1518                                     goto is_not_a_corner;
1519         else
1520             goto is_not_a_corner;
1521         else
1522             goto is_not_a_corner;
1523         else
1524             goto is_not_a_corner;
1525         else
1526             goto is_not_a_corner;
1527         else
1528             goto is_not_a_corner;
1529         else
1530             goto is_not_a_corner;
1531         else
1532             if( p[pixel[8]] > cb)
1533                 if( p[pixel[5]] > cb)
1534                     if( p[pixel[6]] > cb)
1535                         if( p[pixel[7]] > cb)
1536                             if( p[pixel[9]] > cb)
1537                                 if( p[pixel[10]] > cb)
1538                                     if( p[pixel[11]] > cb)
1539                                         if( p[pixel[12]] > cb)
1540                                             if( p[pixel[13]] > cb)
1541                                                 if( p[pixel[14]] > cb)
1542                                                     if( p[pixel[4]] > cb)
1543                                                         goto is_a_corner;
1544                                                     else
1545                                                         if( p[pixel[15]] > cb)
1546                                                             goto is_a_corner;
1547                                                         else
1548                                                             goto is_not_a_corner;
1549         else
1550             goto is_not_a_corner;
1551         else
1552             goto is_not_a_corner;
1553         else
1554             goto is_not_a_corner;
1555         else
1556             goto is_not_a_corner;
1557         else
1558             goto is_not_a_corner;
1559         else
1560             goto is_not_a_corner;
1561         else
1562             goto is_not_a_corner;
1563         else
1564             goto is_not_a_corner;
1565         else
1566             goto is_not_a_corner;
1567         else if( p[pixel[8]] < c_b)
1568             if( p[pixel[9]] < c_b)
1569                 if( p[pixel[10]] < c_b)
1570                     if( p[pixel[11]] < c_b)
1571                         if( p[pixel[12]] < c_b)
1572                             if( p[pixel[13]] < c_b)
1573                                 if( p[pixel[14]] < c_b)
1574                                     if( p[pixel[15]] < c_b)
1575                                         goto is_a_corner;
1576                                     else
1577                                         if( p[pixel[4]] < c_b)
1578                                             if( p[pixel[5]] < c_b)
1579                                                 if( p[pixel[6]] < c_b)
1580                                                     if( p[pixel[7]] < c_b)
1581                                                         goto is_a_corner;
1582                                                     else
1583                                                         goto is_not_a_corner;
1584         else
1585             goto is_not_a_corner;
1586         else
1587             goto is_not_a_corner;
1588         else
1589             goto is_not_a_corner;
1590         else
1591             goto is_not_a_corner;
1592         else
1593             goto is_not_a_corner;
1594         else
1595             goto is_not_a_corner;
1596         else
1597             goto is_not_a_corner;
1598         else
1599             goto is_not_a_corner;
1600         else
1601             goto is_not_a_corner;
1602         else
1603             goto is_not_a_corner;
1604         else
1605             if( p[pixel[7]] > cb)
1606                 if( p[pixel[5]] > cb)
1607                     if( p[pixel[6]] > cb)
1608                         if( p[pixel[8]] > cb)
1609                             if( p[pixel[9]] > cb)
1610                                 if( p[pixel[10]] > cb)
1611                                     if( p[pixel[11]] > cb)
1612                                         if( p[pixel[12]] > cb)
1613                                             if( p[pixel[13]] > cb)
1614                                                 if( p[pixel[4]] > cb)
1615                                                     if( p[pixel[3]] > cb)
1616                                                         goto is_a_corner;
1617                                                     else
1618                                                         if( p[pixel[14]] > cb)
1619                                                             goto is_a_corner;
1620                                                         else
1621                                                             goto is_not_a_corner;
1622         else
1623             if( p[pixel[14]] > cb)
1624                 if( p[pixel[15]] > cb)
1625                     goto is_a_corner;
1626                 else
1627                     goto is_not_a_corner;
1628         else
1629             goto is_not_a_corner;
1630         else
1631             goto is_not_a_corner;
1632         else
1633             goto is_not_a_corner;
1634         else
1635             goto is_not_a_corner;
1636         else
1637             goto is_not_a_corner;
1638         else
1639             goto is_not_a_corner;
1640         else
1641             goto is_not_a_corner;
1642         else
1643             goto is_not_a_corner;
1644         else
1645             goto is_not_a_corner;
1646         else if( p[pixel[7]] < c_b)
1647             if( p[pixel[8]] < c_b)
1648                 if( p[pixel[9]] < c_b)
1649                     if( p[pixel[10]] < c_b)
1650                         if( p[pixel[11]] < c_b)
1651                             if( p[pixel[12]] < c_b)
1652                                 if( p[pixel[13]] < c_b)
1653                                     if( p[pixel[14]] < c_b)
1654                                         if( p[pixel[15]] < c_b)
1655                                             goto is_a_corner;
1656                                         else
1657                                             if( p[pixel[4]] < c_b)
1658                                                 if( p[pixel[5]] < c_b)
1659                                                     if( p[pixel[6]] < c_b)
1660                                                         goto is_a_corner;
1661                                                     else
1662                                                         goto is_not_a_corner;
1663         else
1664             goto is_not_a_corner;
1665         else
1666             goto is_not_a_corner;
1667         else
1668             if( p[pixel[3]] < c_b)
1669                 if( p[pixel[4]] < c_b)
1670                     if( p[pixel[5]] < c_b)
1671                         if( p[pixel[6]] < c_b)
1672                             goto is_a_corner;
1673                         else
1674                             goto is_not_a_corner;
1675         else
1676             goto is_not_a_corner;
1677         else
1678             goto is_not_a_corner;
1679         else
1680             goto is_not_a_corner;
1681         else
1682             goto is_not_a_corner;
1683         else
1684             goto is_not_a_corner;
1685         else
1686             goto is_not_a_corner;
1687         else
1688             goto is_not_a_corner;
1689         else
1690             goto is_not_a_corner;
1691         else
1692             goto is_not_a_corner;
1693         else
1694             goto is_not_a_corner;
1695         else
1696             if( p[pixel[6]] > cb)
1697                 if( p[pixel[5]] > cb)
1698                     if( p[pixel[7]] > cb)
1699                         if( p[pixel[8]] > cb)
1700                             if( p[pixel[9]] > cb)
1701                                 if( p[pixel[10]] > cb)
1702                                     if( p[pixel[11]] > cb)
1703                                         if( p[pixel[12]] > cb)
1704                                             if( p[pixel[4]] > cb)
1705                                                 if( p[pixel[3]] > cb)
1706                                                     if( p[pixel[2]] > cb)
1707                                                         goto is_a_corner;
1708                                                     else
1709                                                         if( p[pixel[13]] > cb)
1710                                                             goto is_a_corner;
1711                                                         else
1712                                                             goto is_not_a_corner;
1713         else
1714             if( p[pixel[13]] > cb)
1715                 if( p[pixel[14]] > cb)
1716                     goto is_a_corner;
1717                 else
1718                     goto is_not_a_corner;
1719         else
1720             goto is_not_a_corner;
1721         else
1722             if( p[pixel[13]] > cb)
1723                 if( p[pixel[14]] > cb)
1724                     if( p[pixel[15]] > cb)
1725                         goto is_a_corner;
1726                     else
1727                         goto is_not_a_corner;
1728         else
1729             goto is_not_a_corner;
1730         else
1731             goto is_not_a_corner;
1732         else
1733             goto is_not_a_corner;
1734         else
1735             goto is_not_a_corner;
1736         else
1737             goto is_not_a_corner;
1738         else
1739             goto is_not_a_corner;
1740         else
1741             goto is_not_a_corner;
1742         else
1743             goto is_not_a_corner;
1744         else
1745             goto is_not_a_corner;
1746         else if( p[pixel[6]] < c_b)
1747             if( p[pixel[7]] < c_b)
1748                 if( p[pixel[8]] < c_b)
1749                     if( p[pixel[9]] < c_b)
1750                         if( p[pixel[10]] < c_b)
1751                             if( p[pixel[11]] < c_b)
1752                                 if( p[pixel[12]] < c_b)
1753                                     if( p[pixel[13]] < c_b)
1754                                         if( p[pixel[14]] < c_b)
1755                                             if( p[pixel[15]] < c_b)
1756                                                 goto is_a_corner;
1757                                             else
1758                                                 if( p[pixel[4]] < c_b)
1759                                                     if( p[pixel[5]] < c_b)
1760                                                         goto is_a_corner;
1761                                                     else
1762                                                         goto is_not_a_corner;
1763         else
1764             goto is_not_a_corner;
1765         else
1766             if( p[pixel[3]] < c_b)
1767                 if( p[pixel[4]] < c_b)
1768                     if( p[pixel[5]] < c_b)
1769                         goto is_a_corner;
1770                     else
1771                         goto is_not_a_corner;
1772         else
1773             goto is_not_a_corner;
1774         else
1775             goto is_not_a_corner;
1776         else
1777             if( p[pixel[2]] < c_b)
1778                 if( p[pixel[3]] < c_b)
1779                     if( p[pixel[4]] < c_b)
1780                         if( p[pixel[5]] < c_b)
1781                             goto is_a_corner;
1782                         else
1783                             goto is_not_a_corner;
1784         else
1785             goto is_not_a_corner;
1786         else
1787             goto is_not_a_corner;
1788         else
1789             goto is_not_a_corner;
1790         else
1791             goto is_not_a_corner;
1792         else
1793             goto is_not_a_corner;
1794         else
1795             goto is_not_a_corner;
1796         else
1797             goto is_not_a_corner;
1798         else
1799             goto is_not_a_corner;
1800         else
1801             goto is_not_a_corner;
1802         else
1803             goto is_not_a_corner;
1804         else
1805             if( p[pixel[5]] > cb)
1806                 if( p[pixel[6]] > cb)
1807                     if( p[pixel[7]] > cb)
1808                         if( p[pixel[8]] > cb)
1809                             if( p[pixel[9]] > cb)
1810                                 if( p[pixel[10]] > cb)
1811                                     if( p[pixel[11]] > cb)
1812                                         if( p[pixel[4]] > cb)
1813                                             if( p[pixel[3]] > cb)
1814                                                 if( p[pixel[2]] > cb)
1815                                                     if( p[pixel[1]] > cb)
1816                                                         goto is_a_corner;
1817                                                     else
1818                                                         if( p[pixel[12]] > cb)
1819                                                             goto is_a_corner;
1820                                                         else
1821                                                             goto is_not_a_corner;
1822         else
1823             if( p[pixel[12]] > cb)
1824                 if( p[pixel[13]] > cb)
1825                     goto is_a_corner;
1826                 else
1827                     goto is_not_a_corner;
1828         else
1829             goto is_not_a_corner;
1830         else
1831             if( p[pixel[12]] > cb)
1832                 if( p[pixel[13]] > cb)
1833                     if( p[pixel[14]] > cb)
1834                         goto is_a_corner;
1835                     else
1836                         goto is_not_a_corner;
1837         else
1838             goto is_not_a_corner;
1839         else
1840             goto is_not_a_corner;
1841         else
1842             if( p[pixel[12]] > cb)
1843                 if( p[pixel[13]] > cb)
1844                     if( p[pixel[14]] > cb)
1845                         if( p[pixel[15]] > cb)
1846                             goto is_a_corner;
1847                         else
1848                             goto is_not_a_corner;
1849         else
1850             goto is_not_a_corner;
1851         else
1852             goto is_not_a_corner;
1853         else
1854             goto is_not_a_corner;
1855         else
1856             goto is_not_a_corner;
1857         else
1858             goto is_not_a_corner;
1859         else
1860             goto is_not_a_corner;
1861         else
1862             goto is_not_a_corner;
1863         else
1864             goto is_not_a_corner;
1865         else
1866             goto is_not_a_corner;
1867         else if( p[pixel[5]] < c_b)
1868             if( p[pixel[6]] < c_b)
1869                 if( p[pixel[7]] < c_b)
1870                     if( p[pixel[8]] < c_b)
1871                         if( p[pixel[9]] < c_b)
1872                             if( p[pixel[10]] < c_b)
1873                                 if( p[pixel[11]] < c_b)
1874                                     if( p[pixel[4]] < c_b)
1875                                         if( p[pixel[3]] < c_b)
1876                                             if( p[pixel[2]] < c_b)
1877                                                 if( p[pixel[1]] < c_b)
1878                                                     goto is_a_corner;
1879                                                 else
1880                                                     if( p[pixel[12]] < c_b)
1881                                                         goto is_a_corner;
1882                                                     else
1883                                                         goto is_not_a_corner;
1884         else
1885             if( p[pixel[12]] < c_b)
1886                 if( p[pixel[13]] < c_b)
1887                     goto is_a_corner;
1888                 else
1889                     goto is_not_a_corner;
1890         else
1891             goto is_not_a_corner;
1892         else
1893             if( p[pixel[12]] < c_b)
1894                 if( p[pixel[13]] < c_b)
1895                     if( p[pixel[14]] < c_b)
1896                         goto is_a_corner;
1897                     else
1898                         goto is_not_a_corner;
1899         else
1900             goto is_not_a_corner;
1901         else
1902             goto is_not_a_corner;
1903         else
1904             if( p[pixel[12]] < c_b)
1905                 if( p[pixel[13]] < c_b)
1906                     if( p[pixel[14]] < c_b)
1907                         if( p[pixel[15]] < c_b)
1908                             goto is_a_corner;
1909                         else
1910                             goto is_not_a_corner;
1911         else
1912             goto is_not_a_corner;
1913         else
1914             goto is_not_a_corner;
1915         else
1916             goto is_not_a_corner;
1917         else
1918             goto is_not_a_corner;
1919         else
1920             goto is_not_a_corner;
1921         else
1922             goto is_not_a_corner;
1923         else
1924             goto is_not_a_corner;
1925         else
1926             goto is_not_a_corner;
1927         else
1928             goto is_not_a_corner;
1929         else
1930             goto is_not_a_corner;
1931 
1932     is_a_corner:
1933         bmin=b;
1934         goto end_if;
1935 
1936     is_not_a_corner:
1937         bmax=b;
1938         goto end_if;
1939 
1940     end_if:
1941 
1942         if(bmin == bmax - 1 || bmin == bmax)
1943             return bmin;
1944         b = (bmin + bmax) / 2;
1945     }
1946     return 0;
1947 }
1948 
1949 static void make_offsets(int *pixel, int row_stride)
1950 {
1951     pixel[0] = 0 + row_stride * 3;
1952     pixel[1] = 1 + row_stride * 3;
1953     pixel[2] = 2 + row_stride * 2;
1954     pixel[3] = 3 + row_stride * 1;
1955     pixel[4] = 3 + row_stride * 0;
1956     pixel[5] = 3 + row_stride * -1;
1957     pixel[6] = 2 + row_stride * -2;
1958     pixel[7] = 1 + row_stride * -3;
1959     pixel[8] = 0 + row_stride * -3;
1960     pixel[9] = -1 + row_stride * -3;
1961     pixel[10] = -2 + row_stride * -2;
1962     pixel[11] = -3 + row_stride * -1;
1963     pixel[12] = -3 + row_stride * 0;
1964     pixel[13] = -3 + row_stride * 1;
1965     pixel[14] = -2 + row_stride * 2;
1966     pixel[15] = -1 + row_stride * 3;
1967 }
1968 
1969 
1970 
1971 int* fast11_score(const ubyte* i, int stride, xy* corners, int num_corners, int b)
1972 {	
1973     int* scores = cast(int*)malloc(int.sizeof* num_corners);
1974     int n;
1975 
1976     int [16]pixel;
1977     make_offsets(pixel.ptr, stride);
1978 
1979     for(n=0; n < num_corners; n++)
1980         scores[n] = fast11_corner_score(i + corners[n].y*stride + corners[n].x, pixel.ptr, b);
1981 
1982     return scores;
1983 }
1984 
1985 
1986 xy* fast11_detect(const ubyte* im, int xsize, int ysize, int stride, int b, int* ret_num_corners)
1987 {
1988     int num_corners=0;
1989     xy* ret_corners;
1990     int rsize=512;
1991     int [16]pixel;
1992     int x, y;
1993 
1994     ret_corners = cast(xy*)malloc(xy.sizeof*rsize);
1995     make_offsets(pixel.ptr, stride);
1996 
1997     for(y=3; y < ysize - 3; y++)
1998         for(x=3; x < xsize - 3; x++)
1999     {
2000         const ubyte* p = im + y*stride + x;
2001         
2002         int cb = *p + b;
2003         int c_b= *p - b;
2004         if(p[pixel[0]] > cb)
2005             if(p[pixel[1]] > cb)
2006                 if(p[pixel[2]] > cb)
2007                     if(p[pixel[3]] > cb)
2008                         if(p[pixel[4]] > cb)
2009                             if(p[pixel[5]] > cb)
2010                                 if(p[pixel[6]] > cb)
2011                                     if(p[pixel[7]] > cb)
2012                                         if(p[pixel[8]] > cb)
2013                                             if(p[pixel[9]] > cb)
2014                                                 if(p[pixel[10]] > cb)
2015                                             {}
2016         else
2017             if(p[pixel[15]] > cb)
2018         {}
2019         else
2020             continue;
2021         else
2022             if(p[pixel[14]] > cb)
2023                 if(p[pixel[15]] > cb)
2024             {}
2025         else
2026             continue;
2027         else
2028             continue;
2029         else
2030             if(p[pixel[13]] > cb)
2031                 if(p[pixel[14]] > cb)
2032                     if(p[pixel[15]] > cb)
2033                 {}
2034         else
2035             continue;
2036         else
2037             continue;
2038         else
2039             continue;
2040         else
2041             if(p[pixel[12]] > cb)
2042                 if(p[pixel[13]] > cb)
2043                     if(p[pixel[14]] > cb)
2044                         if(p[pixel[15]] > cb)
2045                     {}
2046         else
2047             continue;
2048         else
2049             continue;
2050         else
2051             continue;
2052         else
2053             continue;
2054         else
2055             if(p[pixel[11]] > cb)
2056                 if(p[pixel[12]] > cb)
2057                     if(p[pixel[13]] > cb)
2058                         if(p[pixel[14]] > cb)
2059                             if(p[pixel[15]] > cb)
2060                         {}
2061         else
2062             continue;
2063         else
2064             continue;
2065         else
2066             continue;
2067         else
2068             continue;
2069         else
2070             continue;
2071         else if(p[pixel[5]] < c_b)
2072             if(p[pixel[10]] > cb)
2073                 if(p[pixel[11]] > cb)
2074                     if(p[pixel[12]] > cb)
2075                         if(p[pixel[13]] > cb)
2076                             if(p[pixel[14]] > cb)
2077                                 if(p[pixel[15]] > cb)
2078                             {}
2079         else
2080             continue;
2081         else
2082             continue;
2083         else
2084             continue;
2085         else
2086             continue;
2087         else
2088             continue;
2089         else if(p[pixel[10]] < c_b)
2090             if(p[pixel[6]] < c_b)
2091                 if(p[pixel[7]] < c_b)
2092                     if(p[pixel[8]] < c_b)
2093                         if(p[pixel[9]] < c_b)
2094                             if(p[pixel[11]] < c_b)
2095                                 if(p[pixel[12]] < c_b)
2096                                     if(p[pixel[13]] < c_b)
2097                                         if(p[pixel[14]] < c_b)
2098                                             if(p[pixel[15]] < c_b)
2099                                         {}
2100         else
2101             continue;
2102         else
2103             continue;
2104         else
2105             continue;
2106         else
2107             continue;
2108         else
2109             continue;
2110         else
2111             continue;
2112         else
2113             continue;
2114         else
2115             continue;
2116         else
2117             continue;
2118         else
2119             continue;
2120         else
2121             if(p[pixel[10]] > cb)
2122                 if(p[pixel[11]] > cb)
2123                     if(p[pixel[12]] > cb)
2124                         if(p[pixel[13]] > cb)
2125                             if(p[pixel[14]] > cb)
2126                                 if(p[pixel[15]] > cb)
2127                             {}
2128         else
2129             continue;
2130         else
2131             continue;
2132         else
2133             continue;
2134         else
2135             continue;
2136         else
2137             continue;
2138         else
2139             continue;
2140         else if(p[pixel[4]] < c_b)
2141             if(p[pixel[15]] > cb)
2142                 if(p[pixel[9]] > cb)
2143                     if(p[pixel[10]] > cb)
2144                         if(p[pixel[11]] > cb)
2145                             if(p[pixel[12]] > cb)
2146                                 if(p[pixel[13]] > cb)
2147                                     if(p[pixel[14]] > cb)
2148                                 {}
2149         else
2150             continue;
2151         else
2152             continue;
2153         else
2154             continue;
2155         else
2156             continue;
2157         else
2158             continue;
2159         else if(p[pixel[9]] < c_b)
2160             if(p[pixel[5]] < c_b)
2161                 if(p[pixel[6]] < c_b)
2162                     if(p[pixel[7]] < c_b)
2163                         if(p[pixel[8]] < c_b)
2164                             if(p[pixel[10]] < c_b)
2165                                 if(p[pixel[11]] < c_b)
2166                                     if(p[pixel[12]] < c_b)
2167                                         if(p[pixel[13]] < c_b)
2168                                             if(p[pixel[14]] < c_b)
2169                                         {}
2170         else
2171             continue;
2172         else
2173             continue;
2174         else
2175             continue;
2176         else
2177             continue;
2178         else
2179             continue;
2180         else
2181             continue;
2182         else
2183             continue;
2184         else
2185             continue;
2186         else
2187             continue;
2188         else
2189             continue;
2190         else
2191             if(p[pixel[5]] < c_b)
2192                 if(p[pixel[6]] < c_b)
2193                     if(p[pixel[7]] < c_b)
2194                         if(p[pixel[8]] < c_b)
2195                             if(p[pixel[9]] < c_b)
2196                                 if(p[pixel[10]] < c_b)
2197                                     if(p[pixel[11]] < c_b)
2198                                         if(p[pixel[12]] < c_b)
2199                                             if(p[pixel[13]] < c_b)
2200                                                 if(p[pixel[14]] < c_b)
2201                                             {}
2202         else
2203             continue;
2204         else
2205             continue;
2206         else
2207             continue;
2208         else
2209             continue;
2210         else
2211             continue;
2212         else
2213             continue;
2214         else
2215             continue;
2216         else
2217             continue;
2218         else
2219             continue;
2220         else
2221             continue;
2222         else
2223             if(p[pixel[9]] > cb)
2224                 if(p[pixel[10]] > cb)
2225                     if(p[pixel[11]] > cb)
2226                         if(p[pixel[12]] > cb)
2227                             if(p[pixel[13]] > cb)
2228                                 if(p[pixel[14]] > cb)
2229                                     if(p[pixel[15]] > cb)
2230                                 {}
2231         else
2232             continue;
2233         else
2234             continue;
2235         else
2236             continue;
2237         else
2238             continue;
2239         else
2240             continue;
2241         else
2242             continue;
2243         else if(p[pixel[9]] < c_b)
2244             if(p[pixel[5]] < c_b)
2245                 if(p[pixel[6]] < c_b)
2246                     if(p[pixel[7]] < c_b)
2247                         if(p[pixel[8]] < c_b)
2248                             if(p[pixel[10]] < c_b)
2249                                 if(p[pixel[11]] < c_b)
2250                                     if(p[pixel[12]] < c_b)
2251                                         if(p[pixel[13]] < c_b)
2252                                             if(p[pixel[14]] < c_b)
2253                                                 if(p[pixel[15]] < c_b)
2254                                             {}
2255         else
2256             continue;
2257         else
2258             continue;
2259         else
2260             continue;
2261         else
2262             continue;
2263         else
2264             continue;
2265         else
2266             continue;
2267         else
2268             continue;
2269         else
2270             continue;
2271         else
2272             continue;
2273         else
2274             continue;
2275         else
2276             continue;
2277         else if(p[pixel[3]] < c_b)
2278             if(p[pixel[14]] > cb)
2279                 if(p[pixel[8]] > cb)
2280                     if(p[pixel[9]] > cb)
2281                         if(p[pixel[10]] > cb)
2282                             if(p[pixel[11]] > cb)
2283                                 if(p[pixel[12]] > cb)
2284                                     if(p[pixel[13]] > cb)
2285                                         if(p[pixel[15]] > cb)
2286                                     {}
2287         else
2288             if(p[pixel[4]] > cb)
2289                 if(p[pixel[5]] > cb)
2290                     if(p[pixel[6]] > cb)
2291                         if(p[pixel[7]] > cb)
2292                     {}
2293         else
2294             continue;
2295         else
2296             continue;
2297         else
2298             continue;
2299         else
2300             continue;
2301         else
2302             continue;
2303         else
2304             continue;
2305         else
2306             continue;
2307         else
2308             continue;
2309         else
2310             continue;
2311         else if(p[pixel[8]] < c_b)
2312             if(p[pixel[4]] < c_b)
2313                 if(p[pixel[5]] < c_b)
2314                     if(p[pixel[6]] < c_b)
2315                         if(p[pixel[7]] < c_b)
2316                             if(p[pixel[9]] < c_b)
2317                                 if(p[pixel[10]] < c_b)
2318                                     if(p[pixel[11]] < c_b)
2319                                         if(p[pixel[12]] < c_b)
2320                                             if(p[pixel[13]] < c_b)
2321                                         {}
2322         else
2323             continue;
2324         else
2325             continue;
2326         else
2327             continue;
2328         else
2329             continue;
2330         else
2331             continue;
2332         else
2333             continue;
2334         else
2335             continue;
2336         else
2337             continue;
2338         else
2339             continue;
2340         else
2341             continue;
2342         else if(p[pixel[14]] < c_b)
2343             if(p[pixel[5]] < c_b)
2344                 if(p[pixel[6]] < c_b)
2345                     if(p[pixel[7]] < c_b)
2346                         if(p[pixel[8]] < c_b)
2347                             if(p[pixel[9]] < c_b)
2348                                 if(p[pixel[10]] < c_b)
2349                                     if(p[pixel[11]] < c_b)
2350                                         if(p[pixel[12]] < c_b)
2351                                             if(p[pixel[13]] < c_b)
2352                                                 if(p[pixel[4]] < c_b)
2353                                             {}
2354         else
2355             if(p[pixel[15]] < c_b)
2356         {}
2357         else
2358             continue;
2359         else
2360             continue;
2361         else
2362             continue;
2363         else
2364             continue;
2365         else
2366             continue;
2367         else
2368             continue;
2369         else
2370             continue;
2371         else
2372             continue;
2373         else
2374             continue;
2375         else
2376             continue;
2377         else
2378             if(p[pixel[4]] < c_b)
2379                 if(p[pixel[5]] < c_b)
2380                     if(p[pixel[6]] < c_b)
2381                         if(p[pixel[7]] < c_b)
2382                             if(p[pixel[8]] < c_b)
2383                                 if(p[pixel[9]] < c_b)
2384                                     if(p[pixel[10]] < c_b)
2385                                         if(p[pixel[11]] < c_b)
2386                                             if(p[pixel[12]] < c_b)
2387                                                 if(p[pixel[13]] < c_b)
2388                                             {}
2389         else
2390             continue;
2391         else
2392             continue;
2393         else
2394             continue;
2395         else
2396             continue;
2397         else
2398             continue;
2399         else
2400             continue;
2401         else
2402             continue;
2403         else
2404             continue;
2405         else
2406             continue;
2407         else
2408             continue;
2409         else
2410             if(p[pixel[8]] > cb)
2411                 if(p[pixel[9]] > cb)
2412                     if(p[pixel[10]] > cb)
2413                         if(p[pixel[11]] > cb)
2414                             if(p[pixel[12]] > cb)
2415                                 if(p[pixel[13]] > cb)
2416                                     if(p[pixel[14]] > cb)
2417                                         if(p[pixel[15]] > cb)
2418                                     {}
2419         else
2420             if(p[pixel[4]] > cb)
2421                 if(p[pixel[5]] > cb)
2422                     if(p[pixel[6]] > cb)
2423                         if(p[pixel[7]] > cb)
2424                     {}
2425         else
2426             continue;
2427         else
2428             continue;
2429         else
2430             continue;
2431         else
2432             continue;
2433         else
2434             continue;
2435         else
2436             continue;
2437         else
2438             continue;
2439         else
2440             continue;
2441         else
2442             continue;
2443         else
2444             continue;
2445         else if(p[pixel[8]] < c_b)
2446             if(p[pixel[5]] < c_b)
2447                 if(p[pixel[6]] < c_b)
2448                     if(p[pixel[7]] < c_b)
2449                         if(p[pixel[9]] < c_b)
2450                             if(p[pixel[10]] < c_b)
2451                                 if(p[pixel[11]] < c_b)
2452                                     if(p[pixel[12]] < c_b)
2453                                         if(p[pixel[13]] < c_b)
2454                                             if(p[pixel[14]] < c_b)
2455                                                 if(p[pixel[4]] < c_b)
2456                                             {}
2457         else
2458             if(p[pixel[15]] < c_b)
2459         {}
2460         else
2461             continue;
2462         else
2463             continue;
2464         else
2465             continue;
2466         else
2467             continue;
2468         else
2469             continue;
2470         else
2471             continue;
2472         else
2473             continue;
2474         else
2475             continue;
2476         else
2477             continue;
2478         else
2479             continue;
2480         else
2481             continue;
2482         else if(p[pixel[2]] < c_b)
2483             if(p[pixel[7]] > cb)
2484                 if(p[pixel[8]] > cb)
2485                     if(p[pixel[9]] > cb)
2486                         if(p[pixel[10]] > cb)
2487                             if(p[pixel[11]] > cb)
2488                                 if(p[pixel[12]] > cb)
2489                                     if(p[pixel[13]] > cb)
2490                                         if(p[pixel[14]] > cb)
2491                                             if(p[pixel[15]] > cb)
2492                                         {}
2493         else
2494             if(p[pixel[4]] > cb)
2495                 if(p[pixel[5]] > cb)
2496                     if(p[pixel[6]] > cb)
2497                 {}
2498         else
2499             continue;
2500         else
2501             continue;
2502         else
2503             continue;
2504         else
2505             if(p[pixel[3]] > cb)
2506                 if(p[pixel[4]] > cb)
2507                     if(p[pixel[5]] > cb)
2508                         if(p[pixel[6]] > cb)
2509                     {}
2510         else
2511             continue;
2512         else
2513             continue;
2514         else
2515             continue;
2516         else
2517             continue;
2518         else
2519             continue;
2520         else
2521             continue;
2522         else
2523             continue;
2524         else
2525             continue;
2526         else
2527             continue;
2528         else
2529             continue;
2530         else if(p[pixel[7]] < c_b)
2531             if(p[pixel[5]] < c_b)
2532                 if(p[pixel[6]] < c_b)
2533                     if(p[pixel[8]] < c_b)
2534                         if(p[pixel[9]] < c_b)
2535                             if(p[pixel[10]] < c_b)
2536                                 if(p[pixel[11]] < c_b)
2537                                     if(p[pixel[12]] < c_b)
2538                                         if(p[pixel[4]] < c_b)
2539                                             if(p[pixel[3]] < c_b)
2540                                         {}
2541         else
2542             if(p[pixel[13]] < c_b)
2543                 if(p[pixel[14]] < c_b)
2544             {}
2545         else
2546             continue;
2547         else
2548             continue;
2549         else
2550             if(p[pixel[13]] < c_b)
2551                 if(p[pixel[14]] < c_b)
2552                     if(p[pixel[15]] < c_b)
2553                 {}
2554         else
2555             continue;
2556         else
2557             continue;
2558         else
2559             continue;
2560         else
2561             continue;
2562         else
2563             continue;
2564         else
2565             continue;
2566         else
2567             continue;
2568         else
2569             continue;
2570         else
2571             continue;
2572         else
2573             continue;
2574         else
2575             continue;
2576         else
2577             if(p[pixel[7]] > cb)
2578                 if(p[pixel[8]] > cb)
2579                     if(p[pixel[9]] > cb)
2580                         if(p[pixel[10]] > cb)
2581                             if(p[pixel[11]] > cb)
2582                                 if(p[pixel[12]] > cb)
2583                                     if(p[pixel[13]] > cb)
2584                                         if(p[pixel[14]] > cb)
2585                                             if(p[pixel[15]] > cb)
2586                                         {}
2587         else
2588             if(p[pixel[4]] > cb)
2589                 if(p[pixel[5]] > cb)
2590                     if(p[pixel[6]] > cb)
2591                 {}
2592         else
2593             continue;
2594         else
2595             continue;
2596         else
2597             continue;
2598         else
2599             if(p[pixel[3]] > cb)
2600                 if(p[pixel[4]] > cb)
2601                     if(p[pixel[5]] > cb)
2602                         if(p[pixel[6]] > cb)
2603                     {}
2604         else
2605             continue;
2606         else
2607             continue;
2608         else
2609             continue;
2610         else
2611             continue;
2612         else
2613             continue;
2614         else
2615             continue;
2616         else
2617             continue;
2618         else
2619             continue;
2620         else
2621             continue;
2622         else
2623             continue;
2624         else if(p[pixel[7]] < c_b)
2625             if(p[pixel[5]] < c_b)
2626                 if(p[pixel[6]] < c_b)
2627                     if(p[pixel[8]] < c_b)
2628                         if(p[pixel[9]] < c_b)
2629                             if(p[pixel[10]] < c_b)
2630                                 if(p[pixel[11]] < c_b)
2631                                     if(p[pixel[12]] < c_b)
2632                                         if(p[pixel[13]] < c_b)
2633                                             if(p[pixel[4]] < c_b)
2634                                                 if(p[pixel[3]] < c_b)
2635                                             {}
2636         else
2637             if(p[pixel[14]] < c_b)
2638         {}
2639         else
2640             continue;
2641         else
2642             if(p[pixel[14]] < c_b)
2643                 if(p[pixel[15]] < c_b)
2644             {}
2645         else
2646             continue;
2647         else
2648             continue;
2649         else
2650             continue;
2651         else
2652             continue;
2653         else
2654             continue;
2655         else
2656             continue;
2657         else
2658             continue;
2659         else
2660             continue;
2661         else
2662             continue;
2663         else
2664             continue;
2665         else
2666             continue;
2667         else if(p[pixel[1]] < c_b)
2668             if(p[pixel[6]] > cb)
2669                 if(p[pixel[7]] > cb)
2670                     if(p[pixel[8]] > cb)
2671                         if(p[pixel[9]] > cb)
2672                             if(p[pixel[10]] > cb)
2673                                 if(p[pixel[11]] > cb)
2674                                     if(p[pixel[12]] > cb)
2675                                         if(p[pixel[13]] > cb)
2676                                             if(p[pixel[14]] > cb)
2677                                                 if(p[pixel[15]] > cb)
2678                                             {}
2679         else
2680             if(p[pixel[4]] > cb)
2681                 if(p[pixel[5]] > cb)
2682             {}
2683         else
2684             continue;
2685         else
2686             continue;
2687         else
2688             if(p[pixel[3]] > cb)
2689                 if(p[pixel[4]] > cb)
2690                     if(p[pixel[5]] > cb)
2691                 {}
2692         else
2693             continue;
2694         else
2695             continue;
2696         else
2697             continue;
2698         else
2699             if(p[pixel[2]] > cb)
2700                 if(p[pixel[3]] > cb)
2701                     if(p[pixel[4]] > cb)
2702                         if(p[pixel[5]] > cb)
2703                     {}
2704         else
2705             continue;
2706         else
2707             continue;
2708         else
2709             continue;
2710         else
2711             continue;
2712         else
2713             continue;
2714         else
2715             continue;
2716         else
2717             continue;
2718         else
2719             continue;
2720         else
2721             continue;
2722         else
2723             continue;
2724         else if(p[pixel[6]] < c_b)
2725             if(p[pixel[5]] < c_b)
2726                 if(p[pixel[7]] < c_b)
2727                     if(p[pixel[8]] < c_b)
2728                         if(p[pixel[9]] < c_b)
2729                             if(p[pixel[10]] < c_b)
2730                                 if(p[pixel[11]] < c_b)
2731                                     if(p[pixel[4]] < c_b)
2732                                         if(p[pixel[3]] < c_b)
2733                                             if(p[pixel[2]] < c_b)
2734                                         {}
2735         else
2736             if(p[pixel[12]] < c_b)
2737                 if(p[pixel[13]] < c_b)
2738             {}
2739         else
2740             continue;
2741         else
2742             continue;
2743         else
2744             if(p[pixel[12]] < c_b)
2745                 if(p[pixel[13]] < c_b)
2746                     if(p[pixel[14]] < c_b)
2747                 {}
2748         else
2749             continue;
2750         else
2751             continue;
2752         else
2753             continue;
2754         else
2755             if(p[pixel[12]] < c_b)
2756                 if(p[pixel[13]] < c_b)
2757                     if(p[pixel[14]] < c_b)
2758                         if(p[pixel[15]] < c_b)
2759                     {}
2760         else
2761             continue;
2762         else
2763             continue;
2764         else
2765             continue;
2766         else
2767             continue;
2768         else
2769             continue;
2770         else
2771             continue;
2772         else
2773             continue;
2774         else
2775             continue;
2776         else
2777             continue;
2778         else
2779             continue;
2780         else
2781             continue;
2782         else
2783             if(p[pixel[6]] > cb)
2784                 if(p[pixel[7]] > cb)
2785                     if(p[pixel[8]] > cb)
2786                         if(p[pixel[9]] > cb)
2787                             if(p[pixel[10]] > cb)
2788                                 if(p[pixel[11]] > cb)
2789                                     if(p[pixel[12]] > cb)
2790                                         if(p[pixel[13]] > cb)
2791                                             if(p[pixel[14]] > cb)
2792                                                 if(p[pixel[15]] > cb)
2793                                             {}
2794         else
2795             if(p[pixel[4]] > cb)
2796                 if(p[pixel[5]] > cb)
2797             {}
2798         else
2799             continue;
2800         else
2801             continue;
2802         else
2803             if(p[pixel[3]] > cb)
2804                 if(p[pixel[4]] > cb)
2805                     if(p[pixel[5]] > cb)
2806                 {}
2807         else
2808             continue;
2809         else
2810             continue;
2811         else
2812             continue;
2813         else
2814             if(p[pixel[2]] > cb)
2815                 if(p[pixel[3]] > cb)
2816                     if(p[pixel[4]] > cb)
2817                         if(p[pixel[5]] > cb)
2818                     {}
2819         else
2820             continue;
2821         else
2822             continue;
2823         else
2824             continue;
2825         else
2826             continue;
2827         else
2828             continue;
2829         else
2830             continue;
2831         else
2832             continue;
2833         else
2834             continue;
2835         else
2836             continue;
2837         else
2838             continue;
2839         else if(p[pixel[6]] < c_b)
2840             if(p[pixel[5]] < c_b)
2841                 if(p[pixel[7]] < c_b)
2842                     if(p[pixel[8]] < c_b)
2843                         if(p[pixel[9]] < c_b)
2844                             if(p[pixel[10]] < c_b)
2845                                 if(p[pixel[11]] < c_b)
2846                                     if(p[pixel[12]] < c_b)
2847                                         if(p[pixel[4]] < c_b)
2848                                             if(p[pixel[3]] < c_b)
2849                                                 if(p[pixel[2]] < c_b)
2850                                             {}
2851         else
2852             if(p[pixel[13]] < c_b)
2853         {}
2854         else
2855             continue;
2856         else
2857             if(p[pixel[13]] < c_b)
2858                 if(p[pixel[14]] < c_b)
2859             {}
2860         else
2861             continue;
2862         else
2863             continue;
2864         else
2865             if(p[pixel[13]] < c_b)
2866                 if(p[pixel[14]] < c_b)
2867                     if(p[pixel[15]] < c_b)
2868                 {}
2869         else
2870             continue;
2871         else
2872             continue;
2873         else
2874             continue;
2875         else
2876             continue;
2877         else
2878             continue;
2879         else
2880             continue;
2881         else
2882             continue;
2883         else
2884             continue;
2885         else
2886             continue;
2887         else
2888             continue;
2889         else
2890             continue;
2891         else if(p[pixel[0]] < c_b)
2892             if(p[pixel[1]] > cb)
2893                 if(p[pixel[6]] > cb)
2894                     if(p[pixel[5]] > cb)
2895                         if(p[pixel[7]] > cb)
2896                             if(p[pixel[8]] > cb)
2897                                 if(p[pixel[9]] > cb)
2898                                     if(p[pixel[10]] > cb)
2899                                         if(p[pixel[11]] > cb)
2900                                             if(p[pixel[4]] > cb)
2901                                                 if(p[pixel[3]] > cb)
2902                                                     if(p[pixel[2]] > cb)
2903                                                 {}
2904         else
2905             if(p[pixel[12]] > cb)
2906                 if(p[pixel[13]] > cb)
2907             {}
2908         else
2909             continue;
2910         else
2911             continue;
2912         else
2913             if(p[pixel[12]] > cb)
2914                 if(p[pixel[13]] > cb)
2915                     if(p[pixel[14]] > cb)
2916                 {}
2917         else
2918             continue;
2919         else
2920             continue;
2921         else
2922             continue;
2923         else
2924             if(p[pixel[12]] > cb)
2925                 if(p[pixel[13]] > cb)
2926                     if(p[pixel[14]] > cb)
2927                         if(p[pixel[15]] > cb)
2928                     {}
2929         else
2930             continue;
2931         else
2932             continue;
2933         else
2934             continue;
2935         else
2936             continue;
2937         else
2938             continue;
2939         else
2940             continue;
2941         else
2942             continue;
2943         else
2944             continue;
2945         else
2946             continue;
2947         else
2948             continue;
2949         else if(p[pixel[6]] < c_b)
2950             if(p[pixel[7]] < c_b)
2951                 if(p[pixel[8]] < c_b)
2952                     if(p[pixel[9]] < c_b)
2953                         if(p[pixel[10]] < c_b)
2954                             if(p[pixel[11]] < c_b)
2955                                 if(p[pixel[12]] < c_b)
2956                                     if(p[pixel[13]] < c_b)
2957                                         if(p[pixel[14]] < c_b)
2958                                             if(p[pixel[15]] < c_b)
2959                                         {}
2960         else
2961             if(p[pixel[4]] < c_b)
2962                 if(p[pixel[5]] < c_b)
2963             {}
2964         else
2965             continue;
2966         else
2967             continue;
2968         else
2969             if(p[pixel[3]] < c_b)
2970                 if(p[pixel[4]] < c_b)
2971                     if(p[pixel[5]] < c_b)
2972                 {}
2973         else
2974             continue;
2975         else
2976             continue;
2977         else
2978             continue;
2979         else
2980             if(p[pixel[2]] < c_b)
2981                 if(p[pixel[3]] < c_b)
2982                     if(p[pixel[4]] < c_b)
2983                         if(p[pixel[5]] < c_b)
2984                     {}
2985         else
2986             continue;
2987         else
2988             continue;
2989         else
2990             continue;
2991         else
2992             continue;
2993         else
2994             continue;
2995         else
2996             continue;
2997         else
2998             continue;
2999         else
3000             continue;
3001         else
3002             continue;
3003         else
3004             continue;
3005         else
3006             continue;
3007         else if(p[pixel[1]] < c_b)
3008             if(p[pixel[2]] > cb)
3009                 if(p[pixel[7]] > cb)
3010                     if(p[pixel[5]] > cb)
3011                         if(p[pixel[6]] > cb)
3012                             if(p[pixel[8]] > cb)
3013                                 if(p[pixel[9]] > cb)
3014                                     if(p[pixel[10]] > cb)
3015                                         if(p[pixel[11]] > cb)
3016                                             if(p[pixel[12]] > cb)
3017                                                 if(p[pixel[4]] > cb)
3018                                                     if(p[pixel[3]] > cb)
3019                                                 {}
3020         else
3021             if(p[pixel[13]] > cb)
3022                 if(p[pixel[14]] > cb)
3023             {}
3024         else
3025             continue;
3026         else
3027             continue;
3028         else
3029             if(p[pixel[13]] > cb)
3030                 if(p[pixel[14]] > cb)
3031                     if(p[pixel[15]] > cb)
3032                 {}
3033         else
3034             continue;
3035         else
3036             continue;
3037         else
3038             continue;
3039         else
3040             continue;
3041         else
3042             continue;
3043         else
3044             continue;
3045         else
3046             continue;
3047         else
3048             continue;
3049         else
3050             continue;
3051         else
3052             continue;
3053         else if(p[pixel[7]] < c_b)
3054             if(p[pixel[8]] < c_b)
3055                 if(p[pixel[9]] < c_b)
3056                     if(p[pixel[10]] < c_b)
3057                         if(p[pixel[11]] < c_b)
3058                             if(p[pixel[12]] < c_b)
3059                                 if(p[pixel[13]] < c_b)
3060                                     if(p[pixel[14]] < c_b)
3061                                         if(p[pixel[15]] < c_b)
3062                                     {}
3063         else
3064             if(p[pixel[4]] < c_b)
3065                 if(p[pixel[5]] < c_b)
3066                     if(p[pixel[6]] < c_b)
3067                 {}
3068         else
3069             continue;
3070         else
3071             continue;
3072         else
3073             continue;
3074         else
3075             if(p[pixel[3]] < c_b)
3076                 if(p[pixel[4]] < c_b)
3077                     if(p[pixel[5]] < c_b)
3078                         if(p[pixel[6]] < c_b)
3079                     {}
3080         else
3081             continue;
3082         else
3083             continue;
3084         else
3085             continue;
3086         else
3087             continue;
3088         else
3089             continue;
3090         else
3091             continue;
3092         else
3093             continue;
3094         else
3095             continue;
3096         else
3097             continue;
3098         else
3099             continue;
3100         else
3101             continue;
3102         else if(p[pixel[2]] < c_b)
3103             if(p[pixel[3]] > cb)
3104                 if(p[pixel[14]] > cb)
3105                     if(p[pixel[5]] > cb)
3106                         if(p[pixel[6]] > cb)
3107                             if(p[pixel[7]] > cb)
3108                                 if(p[pixel[8]] > cb)
3109                                     if(p[pixel[9]] > cb)
3110                                         if(p[pixel[10]] > cb)
3111                                             if(p[pixel[11]] > cb)
3112                                                 if(p[pixel[12]] > cb)
3113                                                     if(p[pixel[13]] > cb)
3114                                                         if(p[pixel[4]] > cb)
3115                                                     {}
3116         else
3117             if(p[pixel[15]] > cb)
3118         {}
3119         else
3120             continue;
3121         else
3122             continue;
3123         else
3124             continue;
3125         else
3126             continue;
3127         else
3128             continue;
3129         else
3130             continue;
3131         else
3132             continue;
3133         else
3134             continue;
3135         else
3136             continue;
3137         else
3138             continue;
3139         else if(p[pixel[14]] < c_b)
3140             if(p[pixel[8]] > cb)
3141                 if(p[pixel[4]] > cb)
3142                     if(p[pixel[5]] > cb)
3143                         if(p[pixel[6]] > cb)
3144                             if(p[pixel[7]] > cb)
3145                                 if(p[pixel[9]] > cb)
3146                                     if(p[pixel[10]] > cb)
3147                                         if(p[pixel[11]] > cb)
3148                                             if(p[pixel[12]] > cb)
3149                                                 if(p[pixel[13]] > cb)
3150                                             {}
3151         else
3152             continue;
3153         else
3154             continue;
3155         else
3156             continue;
3157         else
3158             continue;
3159         else
3160             continue;
3161         else
3162             continue;
3163         else
3164             continue;
3165         else
3166             continue;
3167         else
3168             continue;
3169         else if(p[pixel[8]] < c_b)
3170             if(p[pixel[9]] < c_b)
3171                 if(p[pixel[10]] < c_b)
3172                     if(p[pixel[11]] < c_b)
3173                         if(p[pixel[12]] < c_b)
3174                             if(p[pixel[13]] < c_b)
3175                                 if(p[pixel[15]] < c_b)
3176                             {}
3177         else
3178             if(p[pixel[4]] < c_b)
3179                 if(p[pixel[5]] < c_b)
3180                     if(p[pixel[6]] < c_b)
3181                         if(p[pixel[7]] < c_b)
3182                     {}
3183         else
3184             continue;
3185         else
3186             continue;
3187         else
3188             continue;
3189         else
3190             continue;
3191         else
3192             continue;
3193         else
3194             continue;
3195         else
3196             continue;
3197         else
3198             continue;
3199         else
3200             continue;
3201         else
3202             continue;
3203         else
3204             if(p[pixel[4]] > cb)
3205                 if(p[pixel[5]] > cb)
3206                     if(p[pixel[6]] > cb)
3207                         if(p[pixel[7]] > cb)
3208                             if(p[pixel[8]] > cb)
3209                                 if(p[pixel[9]] > cb)
3210                                     if(p[pixel[10]] > cb)
3211                                         if(p[pixel[11]] > cb)
3212                                             if(p[pixel[12]] > cb)
3213                                                 if(p[pixel[13]] > cb)
3214                                             {}
3215         else
3216             continue;
3217         else
3218             continue;
3219         else
3220             continue;
3221         else
3222             continue;
3223         else
3224             continue;
3225         else
3226             continue;
3227         else
3228             continue;
3229         else
3230             continue;
3231         else
3232             continue;
3233         else
3234             continue;
3235         else if(p[pixel[3]] < c_b)
3236             if(p[pixel[4]] > cb)
3237                 if(p[pixel[15]] < c_b)
3238                     if(p[pixel[9]] > cb)
3239                         if(p[pixel[5]] > cb)
3240                             if(p[pixel[6]] > cb)
3241                                 if(p[pixel[7]] > cb)
3242                                     if(p[pixel[8]] > cb)
3243                                         if(p[pixel[10]] > cb)
3244                                             if(p[pixel[11]] > cb)
3245                                                 if(p[pixel[12]] > cb)
3246                                                     if(p[pixel[13]] > cb)
3247                                                         if(p[pixel[14]] > cb)
3248                                                     {}
3249         else
3250             continue;
3251         else
3252             continue;
3253         else
3254             continue;
3255         else
3256             continue;
3257         else
3258             continue;
3259         else
3260             continue;
3261         else
3262             continue;
3263         else
3264             continue;
3265         else
3266             continue;
3267         else if(p[pixel[9]] < c_b)
3268             if(p[pixel[10]] < c_b)
3269                 if(p[pixel[11]] < c_b)
3270                     if(p[pixel[12]] < c_b)
3271                         if(p[pixel[13]] < c_b)
3272                             if(p[pixel[14]] < c_b)
3273                         {}
3274         else
3275             continue;
3276         else
3277             continue;
3278         else
3279             continue;
3280         else
3281             continue;
3282         else
3283             continue;
3284         else
3285             continue;
3286         else
3287             if(p[pixel[5]] > cb)
3288                 if(p[pixel[6]] > cb)
3289                     if(p[pixel[7]] > cb)
3290                         if(p[pixel[8]] > cb)
3291                             if(p[pixel[9]] > cb)
3292                                 if(p[pixel[10]] > cb)
3293                                     if(p[pixel[11]] > cb)
3294                                         if(p[pixel[12]] > cb)
3295                                             if(p[pixel[13]] > cb)
3296                                                 if(p[pixel[14]] > cb)
3297                                             {}
3298         else
3299             continue;
3300         else
3301             continue;
3302         else
3303             continue;
3304         else
3305             continue;
3306         else
3307             continue;
3308         else
3309             continue;
3310         else
3311             continue;
3312         else
3313             continue;
3314         else
3315             continue;
3316         else
3317             continue;
3318         else if(p[pixel[4]] < c_b)
3319             if(p[pixel[5]] > cb)
3320                 if(p[pixel[10]] > cb)
3321                     if(p[pixel[6]] > cb)
3322                         if(p[pixel[7]] > cb)
3323                             if(p[pixel[8]] > cb)
3324                                 if(p[pixel[9]] > cb)
3325                                     if(p[pixel[11]] > cb)
3326                                         if(p[pixel[12]] > cb)
3327                                             if(p[pixel[13]] > cb)
3328                                                 if(p[pixel[14]] > cb)
3329                                                     if(p[pixel[15]] > cb)
3330                                                 {}
3331         else
3332             continue;
3333         else
3334             continue;
3335         else
3336             continue;
3337         else
3338             continue;
3339         else
3340             continue;
3341         else
3342             continue;
3343         else
3344             continue;
3345         else
3346             continue;
3347         else
3348             continue;
3349         else if(p[pixel[10]] < c_b)
3350             if(p[pixel[11]] < c_b)
3351                 if(p[pixel[12]] < c_b)
3352                     if(p[pixel[13]] < c_b)
3353                         if(p[pixel[14]] < c_b)
3354                             if(p[pixel[15]] < c_b)
3355                         {}
3356         else
3357             continue;
3358         else
3359             continue;
3360         else
3361             continue;
3362         else
3363             continue;
3364         else
3365             continue;
3366         else
3367             continue;
3368         else if(p[pixel[5]] < c_b)
3369             if(p[pixel[6]] < c_b)
3370                 if(p[pixel[7]] < c_b)
3371                     if(p[pixel[8]] < c_b)
3372                         if(p[pixel[9]] < c_b)
3373                             if(p[pixel[10]] < c_b)
3374                         {}
3375         else
3376             if(p[pixel[15]] < c_b)
3377         {}
3378         else
3379             continue;
3380         else
3381             if(p[pixel[14]] < c_b)
3382                 if(p[pixel[15]] < c_b)
3383             {}
3384         else
3385             continue;
3386         else
3387             continue;
3388         else
3389             if(p[pixel[13]] < c_b)
3390                 if(p[pixel[14]] < c_b)
3391                     if(p[pixel[15]] < c_b)
3392                 {}
3393         else
3394             continue;
3395         else
3396             continue;
3397         else
3398             continue;
3399         else
3400             if(p[pixel[12]] < c_b)
3401                 if(p[pixel[13]] < c_b)
3402                     if(p[pixel[14]] < c_b)
3403                         if(p[pixel[15]] < c_b)
3404                     {}
3405         else
3406             continue;
3407         else
3408             continue;
3409         else
3410             continue;
3411         else
3412             continue;
3413         else
3414             if(p[pixel[11]] < c_b)
3415                 if(p[pixel[12]] < c_b)
3416                     if(p[pixel[13]] < c_b)
3417                         if(p[pixel[14]] < c_b)
3418                             if(p[pixel[15]] < c_b)
3419                         {}
3420         else
3421             continue;
3422         else
3423             continue;
3424         else
3425             continue;
3426         else
3427             continue;
3428         else
3429             continue;
3430         else
3431             if(p[pixel[10]] < c_b)
3432                 if(p[pixel[11]] < c_b)
3433                     if(p[pixel[12]] < c_b)
3434                         if(p[pixel[13]] < c_b)
3435                             if(p[pixel[14]] < c_b)
3436                                 if(p[pixel[15]] < c_b)
3437                             {}
3438         else
3439             continue;
3440         else
3441             continue;
3442         else
3443             continue;
3444         else
3445             continue;
3446         else
3447             continue;
3448         else
3449             continue;
3450         else
3451             if(p[pixel[9]] > cb)
3452                 if(p[pixel[5]] > cb)
3453                     if(p[pixel[6]] > cb)
3454                         if(p[pixel[7]] > cb)
3455                             if(p[pixel[8]] > cb)
3456                                 if(p[pixel[10]] > cb)
3457                                     if(p[pixel[11]] > cb)
3458                                         if(p[pixel[12]] > cb)
3459                                             if(p[pixel[13]] > cb)
3460                                                 if(p[pixel[14]] > cb)
3461                                                     if(p[pixel[15]] > cb)
3462                                                 {}
3463         else
3464             continue;
3465         else
3466             continue;
3467         else
3468             continue;
3469         else
3470             continue;
3471         else
3472             continue;
3473         else
3474             continue;
3475         else
3476             continue;
3477         else
3478             continue;
3479         else
3480             continue;
3481         else
3482             continue;
3483         else if(p[pixel[9]] < c_b)
3484             if(p[pixel[10]] < c_b)
3485                 if(p[pixel[11]] < c_b)
3486                     if(p[pixel[12]] < c_b)
3487                         if(p[pixel[13]] < c_b)
3488                             if(p[pixel[14]] < c_b)
3489                                 if(p[pixel[15]] < c_b)
3490                             {}
3491         else
3492             continue;
3493         else
3494             continue;
3495         else
3496             continue;
3497         else
3498             continue;
3499         else
3500             continue;
3501         else
3502             continue;
3503         else
3504             continue;
3505         else
3506             if(p[pixel[8]] > cb)
3507                 if(p[pixel[5]] > cb)
3508                     if(p[pixel[6]] > cb)
3509                         if(p[pixel[7]] > cb)
3510                             if(p[pixel[9]] > cb)
3511                                 if(p[pixel[10]] > cb)
3512                                     if(p[pixel[11]] > cb)
3513                                         if(p[pixel[12]] > cb)
3514                                             if(p[pixel[13]] > cb)
3515                                                 if(p[pixel[14]] > cb)
3516                                                     if(p[pixel[4]] > cb)
3517                                                 {}
3518         else
3519             if(p[pixel[15]] > cb)
3520         {}
3521         else
3522             continue;
3523         else
3524             continue;
3525         else
3526             continue;
3527         else
3528             continue;
3529         else
3530             continue;
3531         else
3532             continue;
3533         else
3534             continue;
3535         else
3536             continue;
3537         else
3538             continue;
3539         else
3540             continue;
3541         else if(p[pixel[8]] < c_b)
3542             if(p[pixel[9]] < c_b)
3543                 if(p[pixel[10]] < c_b)
3544                     if(p[pixel[11]] < c_b)
3545                         if(p[pixel[12]] < c_b)
3546                             if(p[pixel[13]] < c_b)
3547                                 if(p[pixel[14]] < c_b)
3548                                     if(p[pixel[15]] < c_b)
3549                                 {}
3550         else
3551             if(p[pixel[4]] < c_b)
3552                 if(p[pixel[5]] < c_b)
3553                     if(p[pixel[6]] < c_b)
3554                         if(p[pixel[7]] < c_b)
3555                     {}
3556         else
3557             continue;
3558         else
3559             continue;
3560         else
3561             continue;
3562         else
3563             continue;
3564         else
3565             continue;
3566         else
3567             continue;
3568         else
3569             continue;
3570         else
3571             continue;
3572         else
3573             continue;
3574         else
3575             continue;
3576         else
3577             continue;
3578         else
3579             if(p[pixel[7]] > cb)
3580                 if(p[pixel[5]] > cb)
3581                     if(p[pixel[6]] > cb)
3582                         if(p[pixel[8]] > cb)
3583                             if(p[pixel[9]] > cb)
3584                                 if(p[pixel[10]] > cb)
3585                                     if(p[pixel[11]] > cb)
3586                                         if(p[pixel[12]] > cb)
3587                                             if(p[pixel[13]] > cb)
3588                                                 if(p[pixel[4]] > cb)
3589                                                     if(p[pixel[3]] > cb)
3590                                                 {}
3591         else
3592             if(p[pixel[14]] > cb)
3593         {}
3594         else
3595             continue;
3596         else
3597             if(p[pixel[14]] > cb)
3598                 if(p[pixel[15]] > cb)
3599             {}
3600         else
3601             continue;
3602         else
3603             continue;
3604         else
3605             continue;
3606         else
3607             continue;
3608         else
3609             continue;
3610         else
3611             continue;
3612         else
3613             continue;
3614         else
3615             continue;
3616         else
3617             continue;
3618         else
3619             continue;
3620         else if(p[pixel[7]] < c_b)
3621             if(p[pixel[8]] < c_b)
3622                 if(p[pixel[9]] < c_b)
3623                     if(p[pixel[10]] < c_b)
3624                         if(p[pixel[11]] < c_b)
3625                             if(p[pixel[12]] < c_b)
3626                                 if(p[pixel[13]] < c_b)
3627                                     if(p[pixel[14]] < c_b)
3628                                         if(p[pixel[15]] < c_b)
3629                                     {}
3630         else
3631             if(p[pixel[4]] < c_b)
3632                 if(p[pixel[5]] < c_b)
3633                     if(p[pixel[6]] < c_b)
3634                 {}
3635         else
3636             continue;
3637         else
3638             continue;
3639         else
3640             continue;
3641         else
3642             if(p[pixel[3]] < c_b)
3643                 if(p[pixel[4]] < c_b)
3644                     if(p[pixel[5]] < c_b)
3645                         if(p[pixel[6]] < c_b)
3646                     {}
3647         else
3648             continue;
3649         else
3650             continue;
3651         else
3652             continue;
3653         else
3654             continue;
3655         else
3656             continue;
3657         else
3658             continue;
3659         else
3660             continue;
3661         else
3662             continue;
3663         else
3664             continue;
3665         else
3666             continue;
3667         else
3668             continue;
3669         else
3670             if(p[pixel[6]] > cb)
3671                 if(p[pixel[5]] > cb)
3672                     if(p[pixel[7]] > cb)
3673                         if(p[pixel[8]] > cb)
3674                             if(p[pixel[9]] > cb)
3675                                 if(p[pixel[10]] > cb)
3676                                     if(p[pixel[11]] > cb)
3677                                         if(p[pixel[12]] > cb)
3678                                             if(p[pixel[4]] > cb)
3679                                                 if(p[pixel[3]] > cb)
3680                                                     if(p[pixel[2]] > cb)
3681                                                 {}
3682         else
3683             if(p[pixel[13]] > cb)
3684         {}
3685         else
3686             continue;
3687         else
3688             if(p[pixel[13]] > cb)
3689                 if(p[pixel[14]] > cb)
3690             {}
3691         else
3692             continue;
3693         else
3694             continue;
3695         else
3696             if(p[pixel[13]] > cb)
3697                 if(p[pixel[14]] > cb)
3698                     if(p[pixel[15]] > cb)
3699                 {}
3700         else
3701             continue;
3702         else
3703             continue;
3704         else
3705             continue;
3706         else
3707             continue;
3708         else
3709             continue;
3710         else
3711             continue;
3712         else
3713             continue;
3714         else
3715             continue;
3716         else
3717             continue;
3718         else
3719             continue;
3720         else if(p[pixel[6]] < c_b)
3721             if(p[pixel[7]] < c_b)
3722                 if(p[pixel[8]] < c_b)
3723                     if(p[pixel[9]] < c_b)
3724                         if(p[pixel[10]] < c_b)
3725                             if(p[pixel[11]] < c_b)
3726                                 if(p[pixel[12]] < c_b)
3727                                     if(p[pixel[13]] < c_b)
3728                                         if(p[pixel[14]] < c_b)
3729                                             if(p[pixel[15]] < c_b)
3730                                         {}
3731         else
3732             if(p[pixel[4]] < c_b)
3733                 if(p[pixel[5]] < c_b)
3734             {}
3735         else
3736             continue;
3737         else
3738             continue;
3739         else
3740             if(p[pixel[3]] < c_b)
3741                 if(p[pixel[4]] < c_b)
3742                     if(p[pixel[5]] < c_b)
3743                 {}
3744         else
3745             continue;
3746         else
3747             continue;
3748         else
3749             continue;
3750         else
3751             if(p[pixel[2]] < c_b)
3752                 if(p[pixel[3]] < c_b)
3753                     if(p[pixel[4]] < c_b)
3754                         if(p[pixel[5]] < c_b)
3755                     {}
3756         else
3757             continue;
3758         else
3759             continue;
3760         else
3761             continue;
3762         else
3763             continue;
3764         else
3765             continue;
3766         else
3767             continue;
3768         else
3769             continue;
3770         else
3771             continue;
3772         else
3773             continue;
3774         else
3775             continue;
3776         else
3777             continue;
3778         else
3779             if(p[pixel[5]] > cb)
3780                 if(p[pixel[6]] > cb)
3781                     if(p[pixel[7]] > cb)
3782                         if(p[pixel[8]] > cb)
3783                             if(p[pixel[9]] > cb)
3784                                 if(p[pixel[10]] > cb)
3785                                     if(p[pixel[11]] > cb)
3786                                         if(p[pixel[4]] > cb)
3787                                             if(p[pixel[3]] > cb)
3788                                                 if(p[pixel[2]] > cb)
3789                                                     if(p[pixel[1]] > cb)
3790                                                 {}
3791         else
3792             if(p[pixel[12]] > cb)
3793         {}
3794         else
3795             continue;
3796         else
3797             if(p[pixel[12]] > cb)
3798                 if(p[pixel[13]] > cb)
3799             {}
3800         else
3801             continue;
3802         else
3803             continue;
3804         else
3805             if(p[pixel[12]] > cb)
3806                 if(p[pixel[13]] > cb)
3807                     if(p[pixel[14]] > cb)
3808                 {}
3809         else
3810             continue;
3811         else
3812             continue;
3813         else
3814             continue;
3815         else
3816             if(p[pixel[12]] > cb)
3817                 if(p[pixel[13]] > cb)
3818                     if(p[pixel[14]] > cb)
3819                         if(p[pixel[15]] > cb)
3820                     {}
3821         else
3822             continue;
3823         else
3824             continue;
3825         else
3826             continue;
3827         else
3828             continue;
3829         else
3830             continue;
3831         else
3832             continue;
3833         else
3834             continue;
3835         else
3836             continue;
3837         else
3838             continue;
3839         else
3840             continue;
3841         else if(p[pixel[5]] < c_b)
3842             if(p[pixel[6]] < c_b)
3843                 if(p[pixel[7]] < c_b)
3844                     if(p[pixel[8]] < c_b)
3845                         if(p[pixel[9]] < c_b)
3846                             if(p[pixel[10]] < c_b)
3847                                 if(p[pixel[11]] < c_b)
3848                                     if(p[pixel[4]] < c_b)
3849                                         if(p[pixel[3]] < c_b)
3850                                             if(p[pixel[2]] < c_b)
3851                                                 if(p[pixel[1]] < c_b)
3852                                             {}
3853         else
3854             if(p[pixel[12]] < c_b)
3855         {}
3856         else
3857             continue;
3858         else
3859             if(p[pixel[12]] < c_b)
3860                 if(p[pixel[13]] < c_b)
3861             {}
3862         else
3863             continue;
3864         else
3865             continue;
3866         else
3867             if(p[pixel[12]] < c_b)
3868                 if(p[pixel[13]] < c_b)
3869                     if(p[pixel[14]] < c_b)
3870                 {}
3871         else
3872             continue;
3873         else
3874             continue;
3875         else
3876             continue;
3877         else
3878             if(p[pixel[12]] < c_b)
3879                 if(p[pixel[13]] < c_b)
3880                     if(p[pixel[14]] < c_b)
3881                         if(p[pixel[15]] < c_b)
3882                     {}
3883         else
3884             continue;
3885         else
3886             continue;
3887         else
3888             continue;
3889         else
3890             continue;
3891         else
3892             continue;
3893         else
3894             continue;
3895         else
3896             continue;
3897         else
3898             continue;
3899         else
3900             continue;
3901         else
3902             continue;
3903         else
3904             continue;
3905         if(num_corners == rsize)
3906         {
3907             rsize*=2;
3908             ret_corners = cast(xy*)realloc(ret_corners, xy.sizeof*rsize);
3909         }
3910 
3911         ret_corners[num_corners].x = x;
3912         ret_corners[num_corners].y = y;
3913         num_corners++;
3914     }
3915     
3916     *ret_num_corners = num_corners;
3917     return ret_corners;
3918 
3919 }
3920 
3921 
3922