fast.cpp
Go to the documentation of this file.
00001 /* Based on the FAST corner detector, contributed to OpenCV by Edward Rosten.
00002    Below is the original copyright and the references */
00003 
00004 /*
00005 Copyright (c) 2006, 2008 Edward Rosten
00006 All rights reserved.
00007 
00008 Redistribution and use in source and binary forms, with or without
00009 modification, are permitted provided that the following conditions
00010 are met:
00011 
00012         *Redistributions of source code must retain the above copyright
00013          notice, this list of conditions and the following disclaimer.
00014 
00015         *Redistributions in binary form must reproduce the above copyright
00016          notice, this list of conditions and the following disclaimer in the
00017          documentation and/or other materials provided with the distribution.
00018 
00019         *Neither the name of the University of Cambridge nor the names of 
00020          its contributors may be used to endorse or promote products derived 
00021          from this software without specific prior written permission.
00022 
00023 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00024 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00025 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00026 A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00027 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00028 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00029 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00030 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00031 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00032 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00033 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034 */
00035 
00036 /*
00037 The references are:
00038  * Machine learning for high-speed corner detection, 
00039    E. Rosten and T. Drummond, ECCV 2006
00040  * Faster and better: A machine learning approach to corner detection
00041    E. Rosten, R. Porter and T. Drummond, PAMI, 2009
00042 */
00043 
00044 #include <stdint.h>
00045 #include <vector>
00046 #include "fast.hpp"
00047 
00048 using namespace std;
00049 
00050 namespace fovis
00051 {
00052 
00053 struct Point
00054 {
00055   int x;
00056   int y;
00057   Point() {}
00058   Point(int x_, int y_) : x(x_), y(y_) {}
00059 };
00060 
00061 static int fast9CornerScore(const unsigned char* p, const int pixel[], int bstart)
00062 {    
00063     int bmin = bstart;
00064     int bmax = 255;
00065     int b = (bmax + bmin)/2;
00066     
00067     /*Compute the score using binary search*/
00068     for(;;)
00069     {
00070         int cb = *p + b;
00071         int c_b= *p - b;
00072 
00073         if( p[pixel[0]] > cb)
00074          if( p[pixel[1]] > cb)
00075           if( p[pixel[2]] > cb)
00076            if( p[pixel[3]] > cb)
00077             if( p[pixel[4]] > cb)
00078              if( p[pixel[5]] > cb)
00079               if( p[pixel[6]] > cb)
00080                if( p[pixel[7]] > cb)
00081                 if( p[pixel[8]] > cb)
00082                  goto is_a_corner;
00083                 else
00084                  if( p[pixel[15]] > cb)
00085                   goto is_a_corner;
00086                  else
00087                   goto is_not_a_corner;
00088                else if( p[pixel[7]] < c_b)
00089                 if( p[pixel[14]] > cb)
00090                  if( p[pixel[15]] > cb)
00091                   goto is_a_corner;
00092                  else
00093                   goto is_not_a_corner;
00094                 else if( p[pixel[14]] < c_b)
00095                  if( p[pixel[8]] < c_b)
00096                   if( p[pixel[9]] < c_b)
00097                    if( p[pixel[10]] < c_b)
00098                     if( p[pixel[11]] < c_b)
00099                      if( p[pixel[12]] < c_b)
00100                       if( p[pixel[13]] < c_b)
00101                        if( p[pixel[15]] < c_b)
00102                         goto is_a_corner;
00103                        else
00104                         goto is_not_a_corner;
00105                       else
00106                        goto is_not_a_corner;
00107                      else
00108                       goto is_not_a_corner;
00109                     else
00110                      goto is_not_a_corner;
00111                    else
00112                     goto is_not_a_corner;
00113                   else
00114                    goto is_not_a_corner;
00115                  else
00116                   goto is_not_a_corner;
00117                 else
00118                  goto is_not_a_corner;
00119                else
00120                 if( p[pixel[14]] > cb)
00121                  if( p[pixel[15]] > cb)
00122                   goto is_a_corner;
00123                  else
00124                   goto is_not_a_corner;
00125                 else
00126                  goto is_not_a_corner;
00127               else if( p[pixel[6]] < c_b)
00128                if( p[pixel[15]] > cb)
00129                 if( p[pixel[13]] > cb)
00130                  if( p[pixel[14]] > cb)
00131                   goto is_a_corner;
00132                  else
00133                   goto is_not_a_corner;
00134                 else if( p[pixel[13]] < c_b)
00135                  if( p[pixel[7]] < c_b)
00136                   if( p[pixel[8]] < c_b)
00137                    if( p[pixel[9]] < c_b)
00138                     if( p[pixel[10]] < c_b)
00139                      if( p[pixel[11]] < c_b)
00140                       if( p[pixel[12]] < c_b)
00141                        if( p[pixel[14]] < c_b)
00142                         goto is_a_corner;
00143                        else
00144                         goto is_not_a_corner;
00145                       else
00146                        goto is_not_a_corner;
00147                      else
00148                       goto is_not_a_corner;
00149                     else
00150                      goto is_not_a_corner;
00151                    else
00152                     goto is_not_a_corner;
00153                   else
00154                    goto is_not_a_corner;
00155                  else
00156                   goto is_not_a_corner;
00157                 else
00158                  goto is_not_a_corner;
00159                else
00160                 if( p[pixel[7]] < c_b)
00161                  if( p[pixel[8]] < c_b)
00162                   if( p[pixel[9]] < c_b)
00163                    if( p[pixel[10]] < c_b)
00164                     if( p[pixel[11]] < c_b)
00165                      if( p[pixel[12]] < c_b)
00166                       if( p[pixel[13]] < c_b)
00167                        if( p[pixel[14]] < c_b)
00168                         goto is_a_corner;
00169                        else
00170                         goto is_not_a_corner;
00171                       else
00172                        goto is_not_a_corner;
00173                      else
00174                       goto is_not_a_corner;
00175                     else
00176                      goto is_not_a_corner;
00177                    else
00178                     goto is_not_a_corner;
00179                   else
00180                    goto is_not_a_corner;
00181                  else
00182                   goto is_not_a_corner;
00183                 else
00184                  goto is_not_a_corner;
00185               else
00186                if( p[pixel[13]] > cb)
00187                 if( p[pixel[14]] > cb)
00188                  if( p[pixel[15]] > cb)
00189                   goto is_a_corner;
00190                  else
00191                   goto is_not_a_corner;
00192                 else
00193                  goto is_not_a_corner;
00194                else if( p[pixel[13]] < c_b)
00195                 if( p[pixel[7]] < c_b)
00196                  if( p[pixel[8]] < c_b)
00197                   if( p[pixel[9]] < c_b)
00198                    if( p[pixel[10]] < c_b)
00199                     if( p[pixel[11]] < c_b)
00200                      if( p[pixel[12]] < c_b)
00201                       if( p[pixel[14]] < c_b)
00202                        if( p[pixel[15]] < c_b)
00203                         goto is_a_corner;
00204                        else
00205                         goto is_not_a_corner;
00206                       else
00207                        goto is_not_a_corner;
00208                      else
00209                       goto is_not_a_corner;
00210                     else
00211                      goto is_not_a_corner;
00212                    else
00213                     goto is_not_a_corner;
00214                   else
00215                    goto is_not_a_corner;
00216                  else
00217                   goto is_not_a_corner;
00218                 else
00219                  goto is_not_a_corner;
00220                else
00221                 goto is_not_a_corner;
00222              else if( p[pixel[5]] < c_b)
00223               if( p[pixel[14]] > cb)
00224                if( p[pixel[12]] > cb)
00225                 if( p[pixel[13]] > cb)
00226                  if( p[pixel[15]] > cb)
00227                   goto is_a_corner;
00228                  else
00229                   if( p[pixel[6]] > cb)
00230                    if( p[pixel[7]] > cb)
00231                     if( p[pixel[8]] > cb)
00232                      if( p[pixel[9]] > cb)
00233                       if( p[pixel[10]] > cb)
00234                        if( p[pixel[11]] > cb)
00235                         goto is_a_corner;
00236                        else
00237                         goto is_not_a_corner;
00238                       else
00239                        goto is_not_a_corner;
00240                      else
00241                       goto is_not_a_corner;
00242                     else
00243                      goto is_not_a_corner;
00244                    else
00245                     goto is_not_a_corner;
00246                   else
00247                    goto is_not_a_corner;
00248                 else
00249                  goto is_not_a_corner;
00250                else if( p[pixel[12]] < c_b)
00251                 if( p[pixel[6]] < c_b)
00252                  if( p[pixel[7]] < c_b)
00253                   if( p[pixel[8]] < c_b)
00254                    if( p[pixel[9]] < c_b)
00255                     if( p[pixel[10]] < c_b)
00256                      if( p[pixel[11]] < c_b)
00257                       if( p[pixel[13]] < c_b)
00258                        goto is_a_corner;
00259                       else
00260                        goto is_not_a_corner;
00261                      else
00262                       goto is_not_a_corner;
00263                     else
00264                      goto is_not_a_corner;
00265                    else
00266                     goto is_not_a_corner;
00267                   else
00268                    goto is_not_a_corner;
00269                  else
00270                   goto is_not_a_corner;
00271                 else
00272                  goto is_not_a_corner;
00273                else
00274                 goto is_not_a_corner;
00275               else if( p[pixel[14]] < c_b)
00276                if( p[pixel[7]] < c_b)
00277                 if( p[pixel[8]] < c_b)
00278                  if( p[pixel[9]] < c_b)
00279                   if( p[pixel[10]] < c_b)
00280                    if( p[pixel[11]] < c_b)
00281                     if( p[pixel[12]] < c_b)
00282                      if( p[pixel[13]] < c_b)
00283                       if( p[pixel[6]] < c_b)
00284                        goto is_a_corner;
00285                       else
00286                        if( p[pixel[15]] < c_b)
00287                         goto is_a_corner;
00288                        else
00289                         goto is_not_a_corner;
00290                      else
00291                       goto is_not_a_corner;
00292                     else
00293                      goto is_not_a_corner;
00294                    else
00295                     goto is_not_a_corner;
00296                   else
00297                    goto is_not_a_corner;
00298                  else
00299                   goto is_not_a_corner;
00300                 else
00301                  goto is_not_a_corner;
00302                else
00303                 goto is_not_a_corner;
00304               else
00305                if( p[pixel[6]] < c_b)
00306                 if( p[pixel[7]] < c_b)
00307                  if( p[pixel[8]] < c_b)
00308                   if( p[pixel[9]] < c_b)
00309                    if( p[pixel[10]] < c_b)
00310                     if( p[pixel[11]] < c_b)
00311                      if( p[pixel[12]] < c_b)
00312                       if( p[pixel[13]] < c_b)
00313                        goto is_a_corner;
00314                       else
00315                        goto is_not_a_corner;
00316                      else
00317                       goto is_not_a_corner;
00318                     else
00319                      goto is_not_a_corner;
00320                    else
00321                     goto is_not_a_corner;
00322                   else
00323                    goto is_not_a_corner;
00324                  else
00325                   goto is_not_a_corner;
00326                 else
00327                  goto is_not_a_corner;
00328                else
00329                 goto is_not_a_corner;
00330              else
00331               if( p[pixel[12]] > cb)
00332                if( p[pixel[13]] > cb)
00333                 if( p[pixel[14]] > cb)
00334                  if( p[pixel[15]] > cb)
00335                   goto is_a_corner;
00336                  else
00337                   if( p[pixel[6]] > cb)
00338                    if( p[pixel[7]] > cb)
00339                     if( p[pixel[8]] > cb)
00340                      if( p[pixel[9]] > cb)
00341                       if( p[pixel[10]] > cb)
00342                        if( p[pixel[11]] > cb)
00343                         goto is_a_corner;
00344                        else
00345                         goto is_not_a_corner;
00346                       else
00347                        goto is_not_a_corner;
00348                      else
00349                       goto is_not_a_corner;
00350                     else
00351                      goto is_not_a_corner;
00352                    else
00353                     goto is_not_a_corner;
00354                   else
00355                    goto is_not_a_corner;
00356                 else
00357                  goto is_not_a_corner;
00358                else
00359                 goto is_not_a_corner;
00360               else if( p[pixel[12]] < c_b)
00361                if( p[pixel[7]] < c_b)
00362                 if( p[pixel[8]] < c_b)
00363                  if( p[pixel[9]] < c_b)
00364                   if( p[pixel[10]] < c_b)
00365                    if( p[pixel[11]] < c_b)
00366                     if( p[pixel[13]] < c_b)
00367                      if( p[pixel[14]] < c_b)
00368                       if( p[pixel[6]] < c_b)
00369                        goto is_a_corner;
00370                       else
00371                        if( p[pixel[15]] < c_b)
00372                         goto is_a_corner;
00373                        else
00374                         goto is_not_a_corner;
00375                      else
00376                       goto is_not_a_corner;
00377                     else
00378                      goto is_not_a_corner;
00379                    else
00380                     goto is_not_a_corner;
00381                   else
00382                    goto is_not_a_corner;
00383                  else
00384                   goto is_not_a_corner;
00385                 else
00386                  goto is_not_a_corner;
00387                else
00388                 goto is_not_a_corner;
00389               else
00390                goto is_not_a_corner;
00391             else if( p[pixel[4]] < c_b)
00392              if( p[pixel[13]] > cb)
00393               if( p[pixel[11]] > cb)
00394                if( p[pixel[12]] > cb)
00395                 if( p[pixel[14]] > cb)
00396                  if( p[pixel[15]] > cb)
00397                   goto is_a_corner;
00398                  else
00399                   if( p[pixel[6]] > cb)
00400                    if( p[pixel[7]] > cb)
00401                     if( p[pixel[8]] > cb)
00402                      if( p[pixel[9]] > cb)
00403                       if( p[pixel[10]] > cb)
00404                        goto is_a_corner;
00405                       else
00406                        goto is_not_a_corner;
00407                      else
00408                       goto is_not_a_corner;
00409                     else
00410                      goto is_not_a_corner;
00411                    else
00412                     goto is_not_a_corner;
00413                   else
00414                    goto is_not_a_corner;
00415                 else
00416                  if( p[pixel[5]] > cb)
00417                   if( p[pixel[6]] > cb)
00418                    if( p[pixel[7]] > cb)
00419                     if( p[pixel[8]] > cb)
00420                      if( p[pixel[9]] > cb)
00421                       if( p[pixel[10]] > cb)
00422                        goto is_a_corner;
00423                       else
00424                        goto is_not_a_corner;
00425                      else
00426                       goto is_not_a_corner;
00427                     else
00428                      goto is_not_a_corner;
00429                    else
00430                     goto is_not_a_corner;
00431                   else
00432                    goto is_not_a_corner;
00433                  else
00434                   goto is_not_a_corner;
00435                else
00436                 goto is_not_a_corner;
00437               else if( p[pixel[11]] < c_b)
00438                if( p[pixel[5]] < c_b)
00439                 if( p[pixel[6]] < c_b)
00440                  if( p[pixel[7]] < c_b)
00441                   if( p[pixel[8]] < c_b)
00442                    if( p[pixel[9]] < c_b)
00443                     if( p[pixel[10]] < c_b)
00444                      if( p[pixel[12]] < c_b)
00445                       goto is_a_corner;
00446                      else
00447                       goto is_not_a_corner;
00448                     else
00449                      goto is_not_a_corner;
00450                    else
00451                     goto is_not_a_corner;
00452                   else
00453                    goto is_not_a_corner;
00454                  else
00455                   goto is_not_a_corner;
00456                 else
00457                  goto is_not_a_corner;
00458                else
00459                 goto is_not_a_corner;
00460               else
00461                goto is_not_a_corner;
00462              else if( p[pixel[13]] < c_b)
00463               if( p[pixel[7]] < c_b)
00464                if( p[pixel[8]] < c_b)
00465                 if( p[pixel[9]] < c_b)
00466                  if( p[pixel[10]] < c_b)
00467                   if( p[pixel[11]] < c_b)
00468                    if( p[pixel[12]] < c_b)
00469                     if( p[pixel[6]] < c_b)
00470                      if( p[pixel[5]] < c_b)
00471                       goto is_a_corner;
00472                      else
00473                       if( p[pixel[14]] < c_b)
00474                        goto is_a_corner;
00475                       else
00476                        goto is_not_a_corner;
00477                     else
00478                      if( p[pixel[14]] < c_b)
00479                       if( p[pixel[15]] < c_b)
00480                        goto is_a_corner;
00481                       else
00482                        goto is_not_a_corner;
00483                      else
00484                       goto is_not_a_corner;
00485                    else
00486                     goto is_not_a_corner;
00487                   else
00488                    goto is_not_a_corner;
00489                  else
00490                   goto is_not_a_corner;
00491                 else
00492                  goto is_not_a_corner;
00493                else
00494                 goto is_not_a_corner;
00495               else
00496                goto is_not_a_corner;
00497              else
00498               if( p[pixel[5]] < c_b)
00499                if( p[pixel[6]] < c_b)
00500                 if( p[pixel[7]] < c_b)
00501                  if( p[pixel[8]] < c_b)
00502                   if( p[pixel[9]] < c_b)
00503                    if( p[pixel[10]] < c_b)
00504                     if( p[pixel[11]] < c_b)
00505                      if( p[pixel[12]] < c_b)
00506                       goto is_a_corner;
00507                      else
00508                       goto is_not_a_corner;
00509                     else
00510                      goto is_not_a_corner;
00511                    else
00512                     goto is_not_a_corner;
00513                   else
00514                    goto is_not_a_corner;
00515                  else
00516                   goto is_not_a_corner;
00517                 else
00518                  goto is_not_a_corner;
00519                else
00520                 goto is_not_a_corner;
00521               else
00522                goto is_not_a_corner;
00523             else
00524              if( p[pixel[11]] > cb)
00525               if( p[pixel[12]] > cb)
00526                if( p[pixel[13]] > cb)
00527                 if( p[pixel[14]] > cb)
00528                  if( p[pixel[15]] > cb)
00529                   goto is_a_corner;
00530                  else
00531                   if( p[pixel[6]] > cb)
00532                    if( p[pixel[7]] > cb)
00533                     if( p[pixel[8]] > cb)
00534                      if( p[pixel[9]] > cb)
00535                       if( p[pixel[10]] > cb)
00536                        goto is_a_corner;
00537                       else
00538                        goto is_not_a_corner;
00539                      else
00540                       goto is_not_a_corner;
00541                     else
00542                      goto is_not_a_corner;
00543                    else
00544                     goto is_not_a_corner;
00545                   else
00546                    goto is_not_a_corner;
00547                 else
00548                  if( p[pixel[5]] > cb)
00549                   if( p[pixel[6]] > cb)
00550                    if( p[pixel[7]] > cb)
00551                     if( p[pixel[8]] > cb)
00552                      if( p[pixel[9]] > cb)
00553                       if( p[pixel[10]] > cb)
00554                        goto is_a_corner;
00555                       else
00556                        goto is_not_a_corner;
00557                      else
00558                       goto is_not_a_corner;
00559                     else
00560                      goto is_not_a_corner;
00561                    else
00562                     goto is_not_a_corner;
00563                   else
00564                    goto is_not_a_corner;
00565                  else
00566                   goto is_not_a_corner;
00567                else
00568                 goto is_not_a_corner;
00569               else
00570                goto is_not_a_corner;
00571              else if( p[pixel[11]] < c_b)
00572               if( p[pixel[7]] < c_b)
00573                if( p[pixel[8]] < c_b)
00574                 if( p[pixel[9]] < c_b)
00575                  if( p[pixel[10]] < c_b)
00576                   if( p[pixel[12]] < c_b)
00577                    if( p[pixel[13]] < c_b)
00578                     if( p[pixel[6]] < c_b)
00579                      if( p[pixel[5]] < c_b)
00580                       goto is_a_corner;
00581                      else
00582                       if( p[pixel[14]] < c_b)
00583                        goto is_a_corner;
00584                       else
00585                        goto is_not_a_corner;
00586                     else
00587                      if( p[pixel[14]] < c_b)
00588                       if( p[pixel[15]] < c_b)
00589                        goto is_a_corner;
00590                       else
00591                        goto is_not_a_corner;
00592                      else
00593                       goto is_not_a_corner;
00594                    else
00595                     goto is_not_a_corner;
00596                   else
00597                    goto is_not_a_corner;
00598                  else
00599                   goto is_not_a_corner;
00600                 else
00601                  goto is_not_a_corner;
00602                else
00603                 goto is_not_a_corner;
00604               else
00605                goto is_not_a_corner;
00606              else
00607               goto is_not_a_corner;
00608            else if( p[pixel[3]] < c_b)
00609             if( p[pixel[10]] > cb)
00610              if( p[pixel[11]] > cb)
00611               if( p[pixel[12]] > cb)
00612                if( p[pixel[13]] > cb)
00613                 if( p[pixel[14]] > cb)
00614                  if( p[pixel[15]] > cb)
00615                   goto is_a_corner;
00616                  else
00617                   if( p[pixel[6]] > cb)
00618                    if( p[pixel[7]] > cb)
00619                     if( p[pixel[8]] > cb)
00620                      if( p[pixel[9]] > cb)
00621                       goto is_a_corner;
00622                      else
00623                       goto is_not_a_corner;
00624                     else
00625                      goto is_not_a_corner;
00626                    else
00627                     goto is_not_a_corner;
00628                   else
00629                    goto is_not_a_corner;
00630                 else
00631                  if( p[pixel[5]] > cb)
00632                   if( p[pixel[6]] > cb)
00633                    if( p[pixel[7]] > cb)
00634                     if( p[pixel[8]] > cb)
00635                      if( p[pixel[9]] > cb)
00636                       goto is_a_corner;
00637                      else
00638                       goto is_not_a_corner;
00639                     else
00640                      goto is_not_a_corner;
00641                    else
00642                     goto is_not_a_corner;
00643                   else
00644                    goto is_not_a_corner;
00645                  else
00646                   goto is_not_a_corner;
00647                else
00648                 if( p[pixel[4]] > cb)
00649                  if( p[pixel[5]] > cb)
00650                   if( p[pixel[6]] > cb)
00651                    if( p[pixel[7]] > cb)
00652                     if( p[pixel[8]] > cb)
00653                      if( p[pixel[9]] > cb)
00654                       goto is_a_corner;
00655                      else
00656                       goto is_not_a_corner;
00657                     else
00658                      goto is_not_a_corner;
00659                    else
00660                     goto is_not_a_corner;
00661                   else
00662                    goto is_not_a_corner;
00663                  else
00664                   goto is_not_a_corner;
00665                 else
00666                  goto is_not_a_corner;
00667               else
00668                goto is_not_a_corner;
00669              else
00670               goto is_not_a_corner;
00671             else if( p[pixel[10]] < c_b)
00672              if( p[pixel[7]] < c_b)
00673               if( p[pixel[8]] < c_b)
00674                if( p[pixel[9]] < c_b)
00675                 if( p[pixel[11]] < c_b)
00676                  if( p[pixel[6]] < c_b)
00677                   if( p[pixel[5]] < c_b)
00678                    if( p[pixel[4]] < c_b)
00679                     goto is_a_corner;
00680                    else
00681                     if( p[pixel[12]] < c_b)
00682                      if( p[pixel[13]] < c_b)
00683                       goto is_a_corner;
00684                      else
00685                       goto is_not_a_corner;
00686                     else
00687                      goto is_not_a_corner;
00688                   else
00689                    if( p[pixel[12]] < c_b)
00690                     if( p[pixel[13]] < c_b)
00691                      if( p[pixel[14]] < c_b)
00692                       goto is_a_corner;
00693                      else
00694                       goto is_not_a_corner;
00695                     else
00696                      goto is_not_a_corner;
00697                    else
00698                     goto is_not_a_corner;
00699                  else
00700                   if( p[pixel[12]] < c_b)
00701                    if( p[pixel[13]] < c_b)
00702                     if( p[pixel[14]] < c_b)
00703                      if( p[pixel[15]] < c_b)
00704                       goto is_a_corner;
00705                      else
00706                       goto is_not_a_corner;
00707                     else
00708                      goto is_not_a_corner;
00709                    else
00710                     goto is_not_a_corner;
00711                   else
00712                    goto is_not_a_corner;
00713                 else
00714                  goto is_not_a_corner;
00715                else
00716                 goto is_not_a_corner;
00717               else
00718                goto is_not_a_corner;
00719              else
00720               goto is_not_a_corner;
00721             else
00722              goto is_not_a_corner;
00723            else
00724             if( p[pixel[10]] > cb)
00725              if( p[pixel[11]] > cb)
00726               if( p[pixel[12]] > cb)
00727                if( p[pixel[13]] > cb)
00728                 if( p[pixel[14]] > cb)
00729                  if( p[pixel[15]] > cb)
00730                   goto is_a_corner;
00731                  else
00732                   if( p[pixel[6]] > cb)
00733                    if( p[pixel[7]] > cb)
00734                     if( p[pixel[8]] > cb)
00735                      if( p[pixel[9]] > cb)
00736                       goto is_a_corner;
00737                      else
00738                       goto is_not_a_corner;
00739                     else
00740                      goto is_not_a_corner;
00741                    else
00742                     goto is_not_a_corner;
00743                   else
00744                    goto is_not_a_corner;
00745                 else
00746                  if( p[pixel[5]] > cb)
00747                   if( p[pixel[6]] > cb)
00748                    if( p[pixel[7]] > cb)
00749                     if( p[pixel[8]] > cb)
00750                      if( p[pixel[9]] > cb)
00751                       goto is_a_corner;
00752                      else
00753                       goto is_not_a_corner;
00754                     else
00755                      goto is_not_a_corner;
00756                    else
00757                     goto is_not_a_corner;
00758                   else
00759                    goto is_not_a_corner;
00760                  else
00761                   goto is_not_a_corner;
00762                else
00763                 if( p[pixel[4]] > cb)
00764                  if( p[pixel[5]] > cb)
00765                   if( p[pixel[6]] > cb)
00766                    if( p[pixel[7]] > cb)
00767                     if( p[pixel[8]] > cb)
00768                      if( p[pixel[9]] > cb)
00769                       goto is_a_corner;
00770                      else
00771                       goto is_not_a_corner;
00772                     else
00773                      goto is_not_a_corner;
00774                    else
00775                     goto is_not_a_corner;
00776                   else
00777                    goto is_not_a_corner;
00778                  else
00779                   goto is_not_a_corner;
00780                 else
00781                  goto is_not_a_corner;
00782               else
00783                goto is_not_a_corner;
00784              else
00785               goto is_not_a_corner;
00786             else if( p[pixel[10]] < c_b)
00787              if( p[pixel[7]] < c_b)
00788               if( p[pixel[8]] < c_b)
00789                if( p[pixel[9]] < c_b)
00790                 if( p[pixel[11]] < c_b)
00791                  if( p[pixel[12]] < c_b)
00792                   if( p[pixel[6]] < c_b)
00793                    if( p[pixel[5]] < c_b)
00794                     if( p[pixel[4]] < c_b)
00795                      goto is_a_corner;
00796                     else
00797                      if( p[pixel[13]] < c_b)
00798                       goto is_a_corner;
00799                      else
00800                       goto is_not_a_corner;
00801                    else
00802                     if( p[pixel[13]] < c_b)
00803                      if( p[pixel[14]] < c_b)
00804                       goto is_a_corner;
00805                      else
00806                       goto is_not_a_corner;
00807                     else
00808                      goto is_not_a_corner;
00809                   else
00810                    if( p[pixel[13]] < c_b)
00811                     if( p[pixel[14]] < c_b)
00812                      if( p[pixel[15]] < c_b)
00813                       goto is_a_corner;
00814                      else
00815                       goto is_not_a_corner;
00816                     else
00817                      goto is_not_a_corner;
00818                    else
00819                     goto is_not_a_corner;
00820                  else
00821                   goto is_not_a_corner;
00822                 else
00823                  goto is_not_a_corner;
00824                else
00825                 goto is_not_a_corner;
00826               else
00827                goto is_not_a_corner;
00828              else
00829               goto is_not_a_corner;
00830             else
00831              goto is_not_a_corner;
00832           else if( p[pixel[2]] < c_b)
00833            if( p[pixel[9]] > cb)
00834             if( p[pixel[10]] > cb)
00835              if( p[pixel[11]] > cb)
00836               if( p[pixel[12]] > cb)
00837                if( p[pixel[13]] > cb)
00838                 if( p[pixel[14]] > cb)
00839                  if( p[pixel[15]] > cb)
00840                   goto is_a_corner;
00841                  else
00842                   if( p[pixel[6]] > cb)
00843                    if( p[pixel[7]] > cb)
00844                     if( p[pixel[8]] > cb)
00845                      goto is_a_corner;
00846                     else
00847                      goto is_not_a_corner;
00848                    else
00849                     goto is_not_a_corner;
00850                   else
00851                    goto is_not_a_corner;
00852                 else
00853                  if( p[pixel[5]] > cb)
00854                   if( p[pixel[6]] > cb)
00855                    if( p[pixel[7]] > cb)
00856                     if( p[pixel[8]] > cb)
00857                      goto is_a_corner;
00858                     else
00859                      goto is_not_a_corner;
00860                    else
00861                     goto is_not_a_corner;
00862                   else
00863                    goto is_not_a_corner;
00864                  else
00865                   goto is_not_a_corner;
00866                else
00867                 if( p[pixel[4]] > cb)
00868                  if( p[pixel[5]] > cb)
00869                   if( p[pixel[6]] > cb)
00870                    if( p[pixel[7]] > cb)
00871                     if( p[pixel[8]] > cb)
00872                      goto is_a_corner;
00873                     else
00874                      goto is_not_a_corner;
00875                    else
00876                     goto is_not_a_corner;
00877                   else
00878                    goto is_not_a_corner;
00879                  else
00880                   goto is_not_a_corner;
00881                 else
00882                  goto is_not_a_corner;
00883               else
00884                if( p[pixel[3]] > cb)
00885                 if( p[pixel[4]] > cb)
00886                  if( p[pixel[5]] > cb)
00887                   if( p[pixel[6]] > cb)
00888                    if( p[pixel[7]] > cb)
00889                     if( p[pixel[8]] > cb)
00890                      goto is_a_corner;
00891                     else
00892                      goto is_not_a_corner;
00893                    else
00894                     goto is_not_a_corner;
00895                   else
00896                    goto is_not_a_corner;
00897                  else
00898                   goto is_not_a_corner;
00899                 else
00900                  goto is_not_a_corner;
00901                else
00902                 goto is_not_a_corner;
00903              else
00904               goto is_not_a_corner;
00905             else
00906              goto is_not_a_corner;
00907            else if( p[pixel[9]] < c_b)
00908             if( p[pixel[7]] < c_b)
00909              if( p[pixel[8]] < c_b)
00910               if( p[pixel[10]] < c_b)
00911                if( p[pixel[6]] < c_b)
00912                 if( p[pixel[5]] < c_b)
00913                  if( p[pixel[4]] < c_b)
00914                   if( p[pixel[3]] < c_b)
00915                    goto is_a_corner;
00916                   else
00917                    if( p[pixel[11]] < c_b)
00918                     if( p[pixel[12]] < c_b)
00919                      goto is_a_corner;
00920                     else
00921                      goto is_not_a_corner;
00922                    else
00923                     goto is_not_a_corner;
00924                  else
00925                   if( p[pixel[11]] < c_b)
00926                    if( p[pixel[12]] < c_b)
00927                     if( p[pixel[13]] < c_b)
00928                      goto is_a_corner;
00929                     else
00930                      goto is_not_a_corner;
00931                    else
00932                     goto is_not_a_corner;
00933                   else
00934                    goto is_not_a_corner;
00935                 else
00936                  if( p[pixel[11]] < c_b)
00937                   if( p[pixel[12]] < c_b)
00938                    if( p[pixel[13]] < c_b)
00939                     if( p[pixel[14]] < c_b)
00940                      goto is_a_corner;
00941                     else
00942                      goto is_not_a_corner;
00943                    else
00944                     goto is_not_a_corner;
00945                   else
00946                    goto is_not_a_corner;
00947                  else
00948                   goto is_not_a_corner;
00949                else
00950                 if( p[pixel[11]] < c_b)
00951                  if( p[pixel[12]] < c_b)
00952                   if( p[pixel[13]] < c_b)
00953                    if( p[pixel[14]] < c_b)
00954                     if( p[pixel[15]] < c_b)
00955                      goto is_a_corner;
00956                     else
00957                      goto is_not_a_corner;
00958                    else
00959                     goto is_not_a_corner;
00960                   else
00961                    goto is_not_a_corner;
00962                  else
00963                   goto is_not_a_corner;
00964                 else
00965                  goto is_not_a_corner;
00966               else
00967                goto is_not_a_corner;
00968              else
00969               goto is_not_a_corner;
00970             else
00971              goto is_not_a_corner;
00972            else
00973             goto is_not_a_corner;
00974           else
00975            if( p[pixel[9]] > cb)
00976             if( p[pixel[10]] > cb)
00977              if( p[pixel[11]] > cb)
00978               if( p[pixel[12]] > cb)
00979                if( p[pixel[13]] > cb)
00980                 if( p[pixel[14]] > cb)
00981                  if( p[pixel[15]] > cb)
00982                   goto is_a_corner;
00983                  else
00984                   if( p[pixel[6]] > cb)
00985                    if( p[pixel[7]] > cb)
00986                     if( p[pixel[8]] > cb)
00987                      goto is_a_corner;
00988                     else
00989                      goto is_not_a_corner;
00990                    else
00991                     goto is_not_a_corner;
00992                   else
00993                    goto is_not_a_corner;
00994                 else
00995                  if( p[pixel[5]] > cb)
00996                   if( p[pixel[6]] > cb)
00997                    if( p[pixel[7]] > cb)
00998                     if( p[pixel[8]] > cb)
00999                      goto is_a_corner;
01000                     else
01001                      goto is_not_a_corner;
01002                    else
01003                     goto is_not_a_corner;
01004                   else
01005                    goto is_not_a_corner;
01006                  else
01007                   goto is_not_a_corner;
01008                else
01009                 if( p[pixel[4]] > cb)
01010                  if( p[pixel[5]] > cb)
01011                   if( p[pixel[6]] > cb)
01012                    if( p[pixel[7]] > cb)
01013                     if( p[pixel[8]] > cb)
01014                      goto is_a_corner;
01015                     else
01016                      goto is_not_a_corner;
01017                    else
01018                     goto is_not_a_corner;
01019                   else
01020                    goto is_not_a_corner;
01021                  else
01022                   goto is_not_a_corner;
01023                 else
01024                  goto is_not_a_corner;
01025               else
01026                if( p[pixel[3]] > cb)
01027                 if( p[pixel[4]] > cb)
01028                  if( p[pixel[5]] > cb)
01029                   if( p[pixel[6]] > cb)
01030                    if( p[pixel[7]] > cb)
01031                     if( p[pixel[8]] > cb)
01032                      goto is_a_corner;
01033                     else
01034                      goto is_not_a_corner;
01035                    else
01036                     goto is_not_a_corner;
01037                   else
01038                    goto is_not_a_corner;
01039                  else
01040                   goto is_not_a_corner;
01041                 else
01042                  goto is_not_a_corner;
01043                else
01044                 goto is_not_a_corner;
01045              else
01046               goto is_not_a_corner;
01047             else
01048              goto is_not_a_corner;
01049            else if( p[pixel[9]] < c_b)
01050             if( p[pixel[7]] < c_b)
01051              if( p[pixel[8]] < c_b)
01052               if( p[pixel[10]] < c_b)
01053                if( p[pixel[11]] < c_b)
01054                 if( p[pixel[6]] < c_b)
01055                  if( p[pixel[5]] < c_b)
01056                   if( p[pixel[4]] < c_b)
01057                    if( p[pixel[3]] < c_b)
01058                     goto is_a_corner;
01059                    else
01060                     if( p[pixel[12]] < c_b)
01061                      goto is_a_corner;
01062                     else
01063                      goto is_not_a_corner;
01064                   else
01065                    if( p[pixel[12]] < c_b)
01066                     if( p[pixel[13]] < c_b)
01067                      goto is_a_corner;
01068                     else
01069                      goto is_not_a_corner;
01070                    else
01071                     goto is_not_a_corner;
01072                  else
01073                   if( p[pixel[12]] < c_b)
01074                    if( p[pixel[13]] < c_b)
01075                     if( p[pixel[14]] < c_b)
01076                      goto is_a_corner;
01077                     else
01078                      goto is_not_a_corner;
01079                    else
01080                     goto is_not_a_corner;
01081                   else
01082                    goto is_not_a_corner;
01083                 else
01084                  if( p[pixel[12]] < c_b)
01085                   if( p[pixel[13]] < c_b)
01086                    if( p[pixel[14]] < c_b)
01087                     if( p[pixel[15]] < c_b)
01088                      goto is_a_corner;
01089                     else
01090                      goto is_not_a_corner;
01091                    else
01092                     goto is_not_a_corner;
01093                   else
01094                    goto is_not_a_corner;
01095                  else
01096                   goto is_not_a_corner;
01097                else
01098                 goto is_not_a_corner;
01099               else
01100                goto is_not_a_corner;
01101              else
01102               goto is_not_a_corner;
01103             else
01104              goto is_not_a_corner;
01105            else
01106             goto is_not_a_corner;
01107          else if( p[pixel[1]] < c_b)
01108           if( p[pixel[8]] > cb)
01109            if( p[pixel[9]] > cb)
01110             if( p[pixel[10]] > cb)
01111              if( p[pixel[11]] > cb)
01112               if( p[pixel[12]] > cb)
01113                if( p[pixel[13]] > cb)
01114                 if( p[pixel[14]] > cb)
01115                  if( p[pixel[15]] > cb)
01116                   goto is_a_corner;
01117                  else
01118                   if( p[pixel[6]] > cb)
01119                    if( p[pixel[7]] > cb)
01120                     goto is_a_corner;
01121                    else
01122                     goto is_not_a_corner;
01123                   else
01124                    goto is_not_a_corner;
01125                 else
01126                  if( p[pixel[5]] > cb)
01127                   if( p[pixel[6]] > cb)
01128                    if( p[pixel[7]] > cb)
01129                     goto is_a_corner;
01130                    else
01131                     goto is_not_a_corner;
01132                   else
01133                    goto is_not_a_corner;
01134                  else
01135                   goto is_not_a_corner;
01136                else
01137                 if( p[pixel[4]] > cb)
01138                  if( p[pixel[5]] > cb)
01139                   if( p[pixel[6]] > cb)
01140                    if( p[pixel[7]] > cb)
01141                     goto is_a_corner;
01142                    else
01143                     goto is_not_a_corner;
01144                   else
01145                    goto is_not_a_corner;
01146                  else
01147                   goto is_not_a_corner;
01148                 else
01149                  goto is_not_a_corner;
01150               else
01151                if( p[pixel[3]] > cb)
01152                 if( p[pixel[4]] > cb)
01153                  if( p[pixel[5]] > cb)
01154                   if( p[pixel[6]] > cb)
01155                    if( p[pixel[7]] > cb)
01156                     goto is_a_corner;
01157                    else
01158                     goto is_not_a_corner;
01159                   else
01160                    goto is_not_a_corner;
01161                  else
01162                   goto is_not_a_corner;
01163                 else
01164                  goto is_not_a_corner;
01165                else
01166                 goto is_not_a_corner;
01167              else
01168               if( p[pixel[2]] > cb)
01169                if( p[pixel[3]] > cb)
01170                 if( p[pixel[4]] > cb)
01171                  if( p[pixel[5]] > cb)
01172                   if( p[pixel[6]] > cb)
01173                    if( p[pixel[7]] > cb)
01174                     goto is_a_corner;
01175                    else
01176                     goto is_not_a_corner;
01177                   else
01178                    goto is_not_a_corner;
01179                  else
01180                   goto is_not_a_corner;
01181                 else
01182                  goto is_not_a_corner;
01183                else
01184                 goto is_not_a_corner;
01185               else
01186                goto is_not_a_corner;
01187             else
01188              goto is_not_a_corner;
01189            else
01190             goto is_not_a_corner;
01191           else if( p[pixel[8]] < c_b)
01192            if( p[pixel[7]] < c_b)
01193             if( p[pixel[9]] < c_b)
01194              if( p[pixel[6]] < c_b)
01195               if( p[pixel[5]] < c_b)
01196                if( p[pixel[4]] < c_b)
01197                 if( p[pixel[3]] < c_b)
01198                  if( p[pixel[2]] < c_b)
01199                   goto is_a_corner;
01200                  else
01201                   if( p[pixel[10]] < c_b)
01202                    if( p[pixel[11]] < c_b)
01203                     goto is_a_corner;
01204                    else
01205                     goto is_not_a_corner;
01206                   else
01207                    goto is_not_a_corner;
01208                 else
01209                  if( p[pixel[10]] < c_b)
01210                   if( p[pixel[11]] < c_b)
01211                    if( p[pixel[12]] < c_b)
01212                     goto is_a_corner;
01213                    else
01214                     goto is_not_a_corner;
01215                   else
01216                    goto is_not_a_corner;
01217                  else
01218                   goto is_not_a_corner;
01219                else
01220                 if( p[pixel[10]] < c_b)
01221                  if( p[pixel[11]] < c_b)
01222                   if( p[pixel[12]] < c_b)
01223                    if( p[pixel[13]] < c_b)
01224                     goto is_a_corner;
01225                    else
01226                     goto is_not_a_corner;
01227                   else
01228                    goto is_not_a_corner;
01229                  else
01230                   goto is_not_a_corner;
01231                 else
01232                  goto is_not_a_corner;
01233               else
01234                if( p[pixel[10]] < c_b)
01235                 if( p[pixel[11]] < c_b)
01236                  if( p[pixel[12]] < c_b)
01237                   if( p[pixel[13]] < c_b)
01238                    if( p[pixel[14]] < c_b)
01239                     goto is_a_corner;
01240                    else
01241                     goto is_not_a_corner;
01242                   else
01243                    goto is_not_a_corner;
01244                  else
01245                   goto is_not_a_corner;
01246                 else
01247                  goto is_not_a_corner;
01248                else
01249                 goto is_not_a_corner;
01250              else
01251               if( p[pixel[10]] < c_b)
01252                if( p[pixel[11]] < c_b)
01253                 if( p[pixel[12]] < c_b)
01254                  if( p[pixel[13]] < c_b)
01255                   if( p[pixel[14]] < c_b)
01256                    if( p[pixel[15]] < c_b)
01257                     goto is_a_corner;
01258                    else
01259                     goto is_not_a_corner;
01260                   else
01261                    goto is_not_a_corner;
01262                  else
01263                   goto is_not_a_corner;
01264                 else
01265                  goto is_not_a_corner;
01266                else
01267                 goto is_not_a_corner;
01268               else
01269                goto is_not_a_corner;
01270             else
01271              goto is_not_a_corner;
01272            else
01273             goto is_not_a_corner;
01274           else
01275            goto is_not_a_corner;
01276          else
01277           if( p[pixel[8]] > cb)
01278            if( p[pixel[9]] > cb)
01279             if( p[pixel[10]] > cb)
01280              if( p[pixel[11]] > cb)
01281               if( p[pixel[12]] > cb)
01282                if( p[pixel[13]] > cb)
01283                 if( p[pixel[14]] > cb)
01284                  if( p[pixel[15]] > cb)
01285                   goto is_a_corner;
01286                  else
01287                   if( p[pixel[6]] > cb)
01288                    if( p[pixel[7]] > cb)
01289                     goto is_a_corner;
01290                    else
01291                     goto is_not_a_corner;
01292                   else
01293                    goto is_not_a_corner;
01294                 else
01295                  if( p[pixel[5]] > cb)
01296                   if( p[pixel[6]] > cb)
01297                    if( p[pixel[7]] > cb)
01298                     goto is_a_corner;
01299                    else
01300                     goto is_not_a_corner;
01301                   else
01302                    goto is_not_a_corner;
01303                  else
01304                   goto is_not_a_corner;
01305                else
01306                 if( p[pixel[4]] > cb)
01307                  if( p[pixel[5]] > cb)
01308                   if( p[pixel[6]] > cb)
01309                    if( p[pixel[7]] > cb)
01310                     goto is_a_corner;
01311                    else
01312                     goto is_not_a_corner;
01313                   else
01314                    goto is_not_a_corner;
01315                  else
01316                   goto is_not_a_corner;
01317                 else
01318                  goto is_not_a_corner;
01319               else
01320                if( p[pixel[3]] > cb)
01321                 if( p[pixel[4]] > cb)
01322                  if( p[pixel[5]] > cb)
01323                   if( p[pixel[6]] > cb)
01324                    if( p[pixel[7]] > cb)
01325                     goto is_a_corner;
01326                    else
01327                     goto is_not_a_corner;
01328                   else
01329                    goto is_not_a_corner;
01330                  else
01331                   goto is_not_a_corner;
01332                 else
01333                  goto is_not_a_corner;
01334                else
01335                 goto is_not_a_corner;
01336              else
01337               if( p[pixel[2]] > cb)
01338                if( p[pixel[3]] > cb)
01339                 if( p[pixel[4]] > cb)
01340                  if( p[pixel[5]] > cb)
01341                   if( p[pixel[6]] > cb)
01342                    if( p[pixel[7]] > cb)
01343                     goto is_a_corner;
01344                    else
01345                     goto is_not_a_corner;
01346                   else
01347                    goto is_not_a_corner;
01348                  else
01349                   goto is_not_a_corner;
01350                 else
01351                  goto is_not_a_corner;
01352                else
01353                 goto is_not_a_corner;
01354               else
01355                goto is_not_a_corner;
01356             else
01357              goto is_not_a_corner;
01358            else
01359             goto is_not_a_corner;
01360           else if( p[pixel[8]] < c_b)
01361            if( p[pixel[7]] < c_b)
01362             if( p[pixel[9]] < c_b)
01363              if( p[pixel[10]] < c_b)
01364               if( p[pixel[6]] < c_b)
01365                if( p[pixel[5]] < c_b)
01366                 if( p[pixel[4]] < c_b)
01367                  if( p[pixel[3]] < c_b)
01368                   if( p[pixel[2]] < c_b)
01369                    goto is_a_corner;
01370                   else
01371                    if( p[pixel[11]] < c_b)
01372                     goto is_a_corner;
01373                    else
01374                     goto is_not_a_corner;
01375                  else
01376                   if( p[pixel[11]] < c_b)
01377                    if( p[pixel[12]] < c_b)
01378                     goto is_a_corner;
01379                    else
01380                     goto is_not_a_corner;
01381                   else
01382                    goto is_not_a_corner;
01383                 else
01384                  if( p[pixel[11]] < c_b)
01385                   if( p[pixel[12]] < c_b)
01386                    if( p[pixel[13]] < c_b)
01387                     goto is_a_corner;
01388                    else
01389                     goto is_not_a_corner;
01390                   else
01391                    goto is_not_a_corner;
01392                  else
01393                   goto is_not_a_corner;
01394                else
01395                 if( p[pixel[11]] < c_b)
01396                  if( p[pixel[12]] < c_b)
01397                   if( p[pixel[13]] < c_b)
01398                    if( p[pixel[14]] < c_b)
01399                     goto is_a_corner;
01400                    else
01401                     goto is_not_a_corner;
01402                   else
01403                    goto is_not_a_corner;
01404                  else
01405                   goto is_not_a_corner;
01406                 else
01407                  goto is_not_a_corner;
01408               else
01409                if( p[pixel[11]] < c_b)
01410                 if( p[pixel[12]] < c_b)
01411                  if( p[pixel[13]] < c_b)
01412                   if( p[pixel[14]] < c_b)
01413                    if( p[pixel[15]] < c_b)
01414                     goto is_a_corner;
01415                    else
01416                     goto is_not_a_corner;
01417                   else
01418                    goto is_not_a_corner;
01419                  else
01420                   goto is_not_a_corner;
01421                 else
01422                  goto is_not_a_corner;
01423                else
01424                 goto is_not_a_corner;
01425              else
01426               goto is_not_a_corner;
01427             else
01428              goto is_not_a_corner;
01429            else
01430             goto is_not_a_corner;
01431           else
01432            goto is_not_a_corner;
01433         else if( p[pixel[0]] < c_b)
01434          if( p[pixel[1]] > cb)
01435           if( p[pixel[8]] > cb)
01436            if( p[pixel[7]] > cb)
01437             if( p[pixel[9]] > cb)
01438              if( p[pixel[6]] > cb)
01439               if( p[pixel[5]] > cb)
01440                if( p[pixel[4]] > cb)
01441                 if( p[pixel[3]] > cb)
01442                  if( p[pixel[2]] > cb)
01443                   goto is_a_corner;
01444                  else
01445                   if( p[pixel[10]] > cb)
01446                    if( p[pixel[11]] > cb)
01447                     goto is_a_corner;
01448                    else
01449                     goto is_not_a_corner;
01450                   else
01451                    goto is_not_a_corner;
01452                 else
01453                  if( p[pixel[10]] > cb)
01454                   if( p[pixel[11]] > cb)
01455                    if( p[pixel[12]] > cb)
01456                     goto is_a_corner;
01457                    else
01458                     goto is_not_a_corner;
01459                   else
01460                    goto is_not_a_corner;
01461                  else
01462                   goto is_not_a_corner;
01463                else
01464                 if( p[pixel[10]] > cb)
01465                  if( p[pixel[11]] > cb)
01466                   if( p[pixel[12]] > cb)
01467                    if( p[pixel[13]] > cb)
01468                     goto is_a_corner;
01469                    else
01470                     goto is_not_a_corner;
01471                   else
01472                    goto is_not_a_corner;
01473                  else
01474                   goto is_not_a_corner;
01475                 else
01476                  goto is_not_a_corner;
01477               else
01478                if( p[pixel[10]] > cb)
01479                 if( p[pixel[11]] > cb)
01480                  if( p[pixel[12]] > cb)
01481                   if( p[pixel[13]] > cb)
01482                    if( p[pixel[14]] > cb)
01483                     goto is_a_corner;
01484                    else
01485                     goto is_not_a_corner;
01486                   else
01487                    goto is_not_a_corner;
01488                  else
01489                   goto is_not_a_corner;
01490                 else
01491                  goto is_not_a_corner;
01492                else
01493                 goto is_not_a_corner;
01494              else
01495               if( p[pixel[10]] > cb)
01496                if( p[pixel[11]] > cb)
01497                 if( p[pixel[12]] > cb)
01498                  if( p[pixel[13]] > cb)
01499                   if( p[pixel[14]] > cb)
01500                    if( p[pixel[15]] > cb)
01501                     goto is_a_corner;
01502                    else
01503                     goto is_not_a_corner;
01504                   else
01505                    goto is_not_a_corner;
01506                  else
01507                   goto is_not_a_corner;
01508                 else
01509                  goto is_not_a_corner;
01510                else
01511                 goto is_not_a_corner;
01512               else
01513                goto is_not_a_corner;
01514             else
01515              goto is_not_a_corner;
01516            else
01517             goto is_not_a_corner;
01518           else if( p[pixel[8]] < c_b)
01519            if( p[pixel[9]] < c_b)
01520             if( p[pixel[10]] < c_b)
01521              if( p[pixel[11]] < c_b)
01522               if( p[pixel[12]] < c_b)
01523                if( p[pixel[13]] < c_b)
01524                 if( p[pixel[14]] < c_b)
01525                  if( p[pixel[15]] < c_b)
01526                   goto is_a_corner;
01527                  else
01528                   if( p[pixel[6]] < c_b)
01529                    if( p[pixel[7]] < c_b)
01530                     goto is_a_corner;
01531                    else
01532                     goto is_not_a_corner;
01533                   else
01534                    goto is_not_a_corner;
01535                 else
01536                  if( p[pixel[5]] < c_b)
01537                   if( p[pixel[6]] < c_b)
01538                    if( p[pixel[7]] < c_b)
01539                     goto is_a_corner;
01540                    else
01541                     goto is_not_a_corner;
01542                   else
01543                    goto is_not_a_corner;
01544                  else
01545                   goto is_not_a_corner;
01546                else
01547                 if( p[pixel[4]] < c_b)
01548                  if( p[pixel[5]] < c_b)
01549                   if( p[pixel[6]] < c_b)
01550                    if( p[pixel[7]] < c_b)
01551                     goto is_a_corner;
01552                    else
01553                     goto is_not_a_corner;
01554                   else
01555                    goto is_not_a_corner;
01556                  else
01557                   goto is_not_a_corner;
01558                 else
01559                  goto is_not_a_corner;
01560               else
01561                if( p[pixel[3]] < c_b)
01562                 if( p[pixel[4]] < c_b)
01563                  if( p[pixel[5]] < c_b)
01564                   if( p[pixel[6]] < c_b)
01565                    if( p[pixel[7]] < c_b)
01566                     goto is_a_corner;
01567                    else
01568                     goto is_not_a_corner;
01569                   else
01570                    goto is_not_a_corner;
01571                  else
01572                   goto is_not_a_corner;
01573                 else
01574                  goto is_not_a_corner;
01575                else
01576                 goto is_not_a_corner;
01577              else
01578               if( p[pixel[2]] < c_b)
01579                if( p[pixel[3]] < c_b)
01580                 if( p[pixel[4]] < c_b)
01581                  if( p[pixel[5]] < c_b)
01582                   if( p[pixel[6]] < c_b)
01583                    if( p[pixel[7]] < c_b)
01584                     goto is_a_corner;
01585                    else
01586                     goto is_not_a_corner;
01587                   else
01588                    goto is_not_a_corner;
01589                  else
01590                   goto is_not_a_corner;
01591                 else
01592                  goto is_not_a_corner;
01593                else
01594                 goto is_not_a_corner;
01595               else
01596                goto is_not_a_corner;
01597             else
01598              goto is_not_a_corner;
01599            else
01600             goto is_not_a_corner;
01601           else
01602            goto is_not_a_corner;
01603          else if( p[pixel[1]] < c_b)
01604           if( p[pixel[2]] > cb)
01605            if( p[pixel[9]] > cb)
01606             if( p[pixel[7]] > cb)
01607              if( p[pixel[8]] > cb)
01608               if( p[pixel[10]] > cb)
01609                if( p[pixel[6]] > cb)
01610                 if( p[pixel[5]] > cb)
01611                  if( p[pixel[4]] > cb)
01612                   if( p[pixel[3]] > cb)
01613                    goto is_a_corner;
01614                   else
01615                    if( p[pixel[11]] > cb)
01616                     if( p[pixel[12]] > cb)
01617                      goto is_a_corner;
01618                     else
01619                      goto is_not_a_corner;
01620                    else
01621                     goto is_not_a_corner;
01622                  else
01623                   if( p[pixel[11]] > cb)
01624                    if( p[pixel[12]] > cb)
01625                     if( p[pixel[13]] > cb)
01626                      goto is_a_corner;
01627                     else
01628                      goto is_not_a_corner;
01629                    else
01630                     goto is_not_a_corner;
01631                   else
01632                    goto is_not_a_corner;
01633                 else
01634                  if( p[pixel[11]] > cb)
01635                   if( p[pixel[12]] > cb)
01636                    if( p[pixel[13]] > cb)
01637                     if( p[pixel[14]] > cb)
01638                      goto is_a_corner;
01639                     else
01640                      goto is_not_a_corner;
01641                    else
01642                     goto is_not_a_corner;
01643                   else
01644                    goto is_not_a_corner;
01645                  else
01646                   goto is_not_a_corner;
01647                else
01648                 if( p[pixel[11]] > cb)
01649                  if( p[pixel[12]] > cb)
01650                   if( p[pixel[13]] > cb)
01651                    if( p[pixel[14]] > cb)
01652                     if( p[pixel[15]] > cb)
01653                      goto is_a_corner;
01654                     else
01655                      goto is_not_a_corner;
01656                    else
01657                     goto is_not_a_corner;
01658                   else
01659                    goto is_not_a_corner;
01660                  else
01661                   goto is_not_a_corner;
01662                 else
01663                  goto is_not_a_corner;
01664               else
01665                goto is_not_a_corner;
01666              else
01667               goto is_not_a_corner;
01668             else
01669              goto is_not_a_corner;
01670            else if( p[pixel[9]] < c_b)
01671             if( p[pixel[10]] < c_b)
01672              if( p[pixel[11]] < c_b)
01673               if( p[pixel[12]] < c_b)
01674                if( p[pixel[13]] < c_b)
01675                 if( p[pixel[14]] < c_b)
01676                  if( p[pixel[15]] < c_b)
01677                   goto is_a_corner;
01678                  else
01679                   if( p[pixel[6]] < c_b)
01680                    if( p[pixel[7]] < c_b)
01681                     if( p[pixel[8]] < c_b)
01682                      goto is_a_corner;
01683                     else
01684                      goto is_not_a_corner;
01685                    else
01686                     goto is_not_a_corner;
01687                   else
01688                    goto is_not_a_corner;
01689                 else
01690                  if( p[pixel[5]] < c_b)
01691                   if( p[pixel[6]] < c_b)
01692                    if( p[pixel[7]] < c_b)
01693                     if( p[pixel[8]] < c_b)
01694                      goto is_a_corner;
01695                     else
01696                      goto is_not_a_corner;
01697                    else
01698                     goto is_not_a_corner;
01699                   else
01700                    goto is_not_a_corner;
01701                  else
01702                   goto is_not_a_corner;
01703                else
01704                 if( p[pixel[4]] < c_b)
01705                  if( p[pixel[5]] < c_b)
01706                   if( p[pixel[6]] < c_b)
01707                    if( p[pixel[7]] < c_b)
01708                     if( p[pixel[8]] < c_b)
01709                      goto is_a_corner;
01710                     else
01711                      goto is_not_a_corner;
01712                    else
01713                     goto is_not_a_corner;
01714                   else
01715                    goto is_not_a_corner;
01716                  else
01717                   goto is_not_a_corner;
01718                 else
01719                  goto is_not_a_corner;
01720               else
01721                if( p[pixel[3]] < c_b)
01722                 if( p[pixel[4]] < c_b)
01723                  if( p[pixel[5]] < c_b)
01724                   if( p[pixel[6]] < c_b)
01725                    if( p[pixel[7]] < c_b)
01726                     if( p[pixel[8]] < c_b)
01727                      goto is_a_corner;
01728                     else
01729                      goto is_not_a_corner;
01730                    else
01731                     goto is_not_a_corner;
01732                   else
01733                    goto is_not_a_corner;
01734                  else
01735                   goto is_not_a_corner;
01736                 else
01737                  goto is_not_a_corner;
01738                else
01739                 goto is_not_a_corner;
01740              else
01741               goto is_not_a_corner;
01742             else
01743              goto is_not_a_corner;
01744            else
01745             goto is_not_a_corner;
01746           else if( p[pixel[2]] < c_b)
01747            if( p[pixel[3]] > cb)
01748             if( p[pixel[10]] > cb)
01749              if( p[pixel[7]] > cb)
01750               if( p[pixel[8]] > cb)
01751                if( p[pixel[9]] > cb)
01752                 if( p[pixel[11]] > cb)
01753                  if( p[pixel[6]] > cb)
01754                   if( p[pixel[5]] > cb)
01755                    if( p[pixel[4]] > cb)
01756                     goto is_a_corner;
01757                    else
01758                     if( p[pixel[12]] > cb)
01759                      if( p[pixel[13]] > cb)
01760                       goto is_a_corner;
01761                      else
01762                       goto is_not_a_corner;
01763                     else
01764                      goto is_not_a_corner;
01765                   else
01766                    if( p[pixel[12]] > cb)
01767                     if( p[pixel[13]] > cb)
01768                      if( p[pixel[14]] > cb)
01769                       goto is_a_corner;
01770                      else
01771                       goto is_not_a_corner;
01772                     else
01773                      goto is_not_a_corner;
01774                    else
01775                     goto is_not_a_corner;
01776                  else
01777                   if( p[pixel[12]] > cb)
01778                    if( p[pixel[13]] > cb)
01779                     if( p[pixel[14]] > cb)
01780                      if( p[pixel[15]] > cb)
01781                       goto is_a_corner;
01782                      else
01783                       goto is_not_a_corner;
01784                     else
01785                      goto is_not_a_corner;
01786                    else
01787                     goto is_not_a_corner;
01788                   else
01789                    goto is_not_a_corner;
01790                 else
01791                  goto is_not_a_corner;
01792                else
01793                 goto is_not_a_corner;
01794               else
01795                goto is_not_a_corner;
01796              else
01797               goto is_not_a_corner;
01798             else if( p[pixel[10]] < c_b)
01799              if( p[pixel[11]] < c_b)
01800               if( p[pixel[12]] < c_b)
01801                if( p[pixel[13]] < c_b)
01802                 if( p[pixel[14]] < c_b)
01803                  if( p[pixel[15]] < c_b)
01804                   goto is_a_corner;
01805                  else
01806                   if( p[pixel[6]] < c_b)
01807                    if( p[pixel[7]] < c_b)
01808                     if( p[pixel[8]] < c_b)
01809                      if( p[pixel[9]] < c_b)
01810                       goto is_a_corner;
01811                      else
01812                       goto is_not_a_corner;
01813                     else
01814                      goto is_not_a_corner;
01815                    else
01816                     goto is_not_a_corner;
01817                   else
01818                    goto is_not_a_corner;
01819                 else
01820                  if( p[pixel[5]] < c_b)
01821                   if( p[pixel[6]] < c_b)
01822                    if( p[pixel[7]] < c_b)
01823                     if( p[pixel[8]] < c_b)
01824                      if( p[pixel[9]] < c_b)
01825                       goto is_a_corner;
01826                      else
01827                       goto is_not_a_corner;
01828                     else
01829                      goto is_not_a_corner;
01830                    else
01831                     goto is_not_a_corner;
01832                   else
01833                    goto is_not_a_corner;
01834                  else
01835                   goto is_not_a_corner;
01836                else
01837                 if( p[pixel[4]] < c_b)
01838                  if( p[pixel[5]] < c_b)
01839                   if( p[pixel[6]] < c_b)
01840                    if( p[pixel[7]] < c_b)
01841                     if( p[pixel[8]] < c_b)
01842                      if( p[pixel[9]] < c_b)
01843                       goto is_a_corner;
01844                      else
01845                       goto is_not_a_corner;
01846                     else
01847                      goto is_not_a_corner;
01848                    else
01849                     goto is_not_a_corner;
01850                   else
01851                    goto is_not_a_corner;
01852                  else
01853                   goto is_not_a_corner;
01854                 else
01855                  goto is_not_a_corner;
01856               else
01857                goto is_not_a_corner;
01858              else
01859               goto is_not_a_corner;
01860             else
01861              goto is_not_a_corner;
01862            else if( p[pixel[3]] < c_b)
01863             if( p[pixel[4]] > cb)
01864              if( p[pixel[13]] > cb)
01865               if( p[pixel[7]] > cb)
01866                if( p[pixel[8]] > cb)
01867                 if( p[pixel[9]] > cb)
01868                  if( p[pixel[10]] > cb)
01869                   if( p[pixel[11]] > cb)
01870                    if( p[pixel[12]] > cb)
01871                     if( p[pixel[6]] > cb)
01872                      if( p[pixel[5]] > cb)
01873                       goto is_a_corner;
01874                      else
01875                       if( p[pixel[14]] > cb)
01876                        goto is_a_corner;
01877                       else
01878                        goto is_not_a_corner;
01879                     else
01880                      if( p[pixel[14]] > cb)
01881                       if( p[pixel[15]] > cb)
01882                        goto is_a_corner;
01883                       else
01884                        goto is_not_a_corner;
01885                      else
01886                       goto is_not_a_corner;
01887                    else
01888                     goto is_not_a_corner;
01889                   else
01890                    goto is_not_a_corner;
01891                  else
01892                   goto is_not_a_corner;
01893                 else
01894                  goto is_not_a_corner;
01895                else
01896                 goto is_not_a_corner;
01897               else
01898                goto is_not_a_corner;
01899              else if( p[pixel[13]] < c_b)
01900               if( p[pixel[11]] > cb)
01901                if( p[pixel[5]] > cb)
01902                 if( p[pixel[6]] > cb)
01903                  if( p[pixel[7]] > cb)
01904                   if( p[pixel[8]] > cb)
01905                    if( p[pixel[9]] > cb)
01906                     if( p[pixel[10]] > cb)
01907                      if( p[pixel[12]] > cb)
01908                       goto is_a_corner;
01909                      else
01910                       goto is_not_a_corner;
01911                     else
01912                      goto is_not_a_corner;
01913                    else
01914                     goto is_not_a_corner;
01915                   else
01916                    goto is_not_a_corner;
01917                  else
01918                   goto is_not_a_corner;
01919                 else
01920                  goto is_not_a_corner;
01921                else
01922                 goto is_not_a_corner;
01923               else if( p[pixel[11]] < c_b)
01924                if( p[pixel[12]] < c_b)
01925                 if( p[pixel[14]] < c_b)
01926                  if( p[pixel[15]] < c_b)
01927                   goto is_a_corner;
01928                  else
01929                   if( p[pixel[6]] < c_b)
01930                    if( p[pixel[7]] < c_b)
01931                     if( p[pixel[8]] < c_b)
01932                      if( p[pixel[9]] < c_b)
01933                       if( p[pixel[10]] < c_b)
01934                        goto is_a_corner;
01935                       else
01936                        goto is_not_a_corner;
01937                      else
01938                       goto is_not_a_corner;
01939                     else
01940                      goto is_not_a_corner;
01941                    else
01942                     goto is_not_a_corner;
01943                   else
01944                    goto is_not_a_corner;
01945                 else
01946                  if( p[pixel[5]] < c_b)
01947                   if( p[pixel[6]] < c_b)
01948                    if( p[pixel[7]] < c_b)
01949                     if( p[pixel[8]] < c_b)
01950                      if( p[pixel[9]] < c_b)
01951                       if( p[pixel[10]] < c_b)
01952                        goto is_a_corner;
01953                       else
01954                        goto is_not_a_corner;
01955                      else
01956                       goto is_not_a_corner;
01957                     else
01958                      goto is_not_a_corner;
01959                    else
01960                     goto is_not_a_corner;
01961                   else
01962                    goto is_not_a_corner;
01963                  else
01964                   goto is_not_a_corner;
01965                else
01966                 goto is_not_a_corner;
01967               else
01968                goto is_not_a_corner;
01969              else
01970               if( p[pixel[5]] > cb)
01971                if( p[pixel[6]] > cb)
01972                 if( p[pixel[7]] > cb)
01973                  if( p[pixel[8]] > cb)
01974                   if( p[pixel[9]] > cb)
01975                    if( p[pixel[10]] > cb)
01976                     if( p[pixel[11]] > cb)
01977                      if( p[pixel[12]] > cb)
01978                       goto is_a_corner;
01979                      else
01980                       goto is_not_a_corner;
01981                     else
01982                      goto is_not_a_corner;
01983                    else
01984                     goto is_not_a_corner;
01985                   else
01986                    goto is_not_a_corner;
01987                  else
01988                   goto is_not_a_corner;
01989                 else
01990                  goto is_not_a_corner;
01991                else
01992                 goto is_not_a_corner;
01993               else
01994                goto is_not_a_corner;
01995             else if( p[pixel[4]] < c_b)
01996              if( p[pixel[5]] > cb)
01997               if( p[pixel[14]] > cb)
01998                if( p[pixel[7]] > cb)
01999                 if( p[pixel[8]] > cb)
02000                  if( p[pixel[9]] > cb)
02001                   if( p[pixel[10]] > cb)
02002                    if( p[pixel[11]] > cb)
02003                     if( p[pixel[12]] > cb)
02004                      if( p[pixel[13]] > cb)
02005                       if( p[pixel[6]] > cb)
02006                        goto is_a_corner;
02007                       else
02008                        if( p[pixel[15]] > cb)
02009                         goto is_a_corner;
02010                        else
02011                         goto is_not_a_corner;
02012                      else
02013                       goto is_not_a_corner;
02014                     else
02015                      goto is_not_a_corner;
02016                    else
02017                     goto is_not_a_corner;
02018                   else
02019                    goto is_not_a_corner;
02020                  else
02021                   goto is_not_a_corner;
02022                 else
02023                  goto is_not_a_corner;
02024                else
02025                 goto is_not_a_corner;
02026               else if( p[pixel[14]] < c_b)
02027                if( p[pixel[12]] > cb)
02028                 if( p[pixel[6]] > cb)
02029                  if( p[pixel[7]] > cb)
02030                   if( p[pixel[8]] > cb)
02031                    if( p[pixel[9]] > cb)
02032                     if( p[pixel[10]] > cb)
02033                      if( p[pixel[11]] > cb)
02034                       if( p[pixel[13]] > cb)
02035                        goto is_a_corner;
02036                       else
02037                        goto is_not_a_corner;
02038                      else
02039                       goto is_not_a_corner;
02040                     else
02041                      goto is_not_a_corner;
02042                    else
02043                     goto is_not_a_corner;
02044                   else
02045                    goto is_not_a_corner;
02046                  else
02047                   goto is_not_a_corner;
02048                 else
02049                  goto is_not_a_corner;
02050                else if( p[pixel[12]] < c_b)
02051                 if( p[pixel[13]] < c_b)
02052                  if( p[pixel[15]] < c_b)
02053                   goto is_a_corner;
02054                  else
02055                   if( p[pixel[6]] < c_b)
02056                    if( p[pixel[7]] < c_b)
02057                     if( p[pixel[8]] < c_b)
02058                      if( p[pixel[9]] < c_b)
02059                       if( p[pixel[10]] < c_b)
02060                        if( p[pixel[11]] < c_b)
02061                         goto is_a_corner;
02062                        else
02063                         goto is_not_a_corner;
02064                       else
02065                        goto is_not_a_corner;
02066                      else
02067                       goto is_not_a_corner;
02068                     else
02069                      goto is_not_a_corner;
02070                    else
02071                     goto is_not_a_corner;
02072                   else
02073                    goto is_not_a_corner;
02074                 else
02075                  goto is_not_a_corner;
02076                else
02077                 goto is_not_a_corner;
02078               else
02079                if( p[pixel[6]] > cb)
02080                 if( p[pixel[7]] > cb)
02081                  if( p[pixel[8]] > cb)
02082                   if( p[pixel[9]] > cb)
02083                    if( p[pixel[10]] > cb)
02084                     if( p[pixel[11]] > cb)
02085                      if( p[pixel[12]] > cb)
02086                       if( p[pixel[13]] > cb)
02087                        goto is_a_corner;
02088                       else
02089                        goto is_not_a_corner;
02090                      else
02091                       goto is_not_a_corner;
02092                     else
02093                      goto is_not_a_corner;
02094                    else
02095                     goto is_not_a_corner;
02096                   else
02097                    goto is_not_a_corner;
02098                  else
02099                   goto is_not_a_corner;
02100                 else
02101                  goto is_not_a_corner;
02102                else
02103                 goto is_not_a_corner;
02104              else if( p[pixel[5]] < c_b)
02105               if( p[pixel[6]] > cb)
02106                if( p[pixel[15]] < c_b)
02107                 if( p[pixel[13]] > cb)
02108                  if( p[pixel[7]] > cb)
02109                   if( p[pixel[8]] > cb)
02110                    if( p[pixel[9]] > cb)
02111                     if( p[pixel[10]] > cb)
02112                      if( p[pixel[11]] > cb)
02113                       if( p[pixel[12]] > cb)
02114                        if( p[pixel[14]] > cb)
02115                         goto is_a_corner;
02116                        else
02117                         goto is_not_a_corner;
02118                       else
02119                        goto is_not_a_corner;
02120                      else
02121                       goto is_not_a_corner;
02122                     else
02123                      goto is_not_a_corner;
02124                    else
02125                     goto is_not_a_corner;
02126                   else
02127                    goto is_not_a_corner;
02128                  else
02129                   goto is_not_a_corner;
02130                 else if( p[pixel[13]] < c_b)
02131                  if( p[pixel[14]] < c_b)
02132                   goto is_a_corner;
02133                  else
02134                   goto is_not_a_corner;
02135                 else
02136                  goto is_not_a_corner;
02137                else
02138                 if( p[pixel[7]] > cb)
02139                  if( p[pixel[8]] > cb)
02140                   if( p[pixel[9]] > cb)
02141                    if( p[pixel[10]] > cb)
02142                     if( p[pixel[11]] > cb)
02143                      if( p[pixel[12]] > cb)
02144                       if( p[pixel[13]] > cb)
02145                        if( p[pixel[14]] > cb)
02146                         goto is_a_corner;
02147                        else
02148                         goto is_not_a_corner;
02149                       else
02150                        goto is_not_a_corner;
02151                      else
02152                       goto is_not_a_corner;
02153                     else
02154                      goto is_not_a_corner;
02155                    else
02156                     goto is_not_a_corner;
02157                   else
02158                    goto is_not_a_corner;
02159                  else
02160                   goto is_not_a_corner;
02161                 else
02162                  goto is_not_a_corner;
02163               else if( p[pixel[6]] < c_b)
02164                if( p[pixel[7]] > cb)
02165                 if( p[pixel[14]] > cb)
02166                  if( p[pixel[8]] > cb)
02167                   if( p[pixel[9]] > cb)
02168                    if( p[pixel[10]] > cb)
02169                     if( p[pixel[11]] > cb)
02170                      if( p[pixel[12]] > cb)
02171                       if( p[pixel[13]] > cb)
02172                        if( p[pixel[15]] > cb)
02173                         goto is_a_corner;
02174                        else
02175                         goto is_not_a_corner;
02176                       else
02177                        goto is_not_a_corner;
02178                      else
02179                       goto is_not_a_corner;
02180                     else
02181                      goto is_not_a_corner;
02182                    else
02183                     goto is_not_a_corner;
02184                   else
02185                    goto is_not_a_corner;
02186                  else
02187                   goto is_not_a_corner;
02188                 else if( p[pixel[14]] < c_b)
02189                  if( p[pixel[15]] < c_b)
02190                   goto is_a_corner;
02191                  else
02192                   goto is_not_a_corner;
02193                 else
02194                  goto is_not_a_corner;
02195                else if( p[pixel[7]] < c_b)
02196                 if( p[pixel[8]] < c_b)
02197                  goto is_a_corner;
02198                 else
02199                  if( p[pixel[15]] < c_b)
02200                   goto is_a_corner;
02201                  else
02202                   goto is_not_a_corner;
02203                else
02204                 if( p[pixel[14]] < c_b)
02205                  if( p[pixel[15]] < c_b)
02206                   goto is_a_corner;
02207                  else
02208                   goto is_not_a_corner;
02209                 else
02210                  goto is_not_a_corner;
02211               else
02212                if( p[pixel[13]] > cb)
02213                 if( p[pixel[7]] > cb)
02214                  if( p[pixel[8]] > cb)
02215                   if( p[pixel[9]] > cb)
02216                    if( p[pixel[10]] > cb)
02217                     if( p[pixel[11]] > cb)
02218                      if( p[pixel[12]] > cb)
02219                       if( p[pixel[14]] > cb)
02220                        if( p[pixel[15]] > cb)
02221                         goto is_a_corner;
02222                        else
02223                         goto is_not_a_corner;
02224                       else
02225                        goto is_not_a_corner;
02226                      else
02227                       goto is_not_a_corner;
02228                     else
02229                      goto is_not_a_corner;
02230                    else
02231                     goto is_not_a_corner;
02232                   else
02233                    goto is_not_a_corner;
02234                  else
02235                   goto is_not_a_corner;
02236                 else
02237                  goto is_not_a_corner;
02238                else if( p[pixel[13]] < c_b)
02239                 if( p[pixel[14]] < c_b)
02240                  if( p[pixel[15]] < c_b)
02241                   goto is_a_corner;
02242                  else
02243                   goto is_not_a_corner;
02244                 else
02245                  goto is_not_a_corner;
02246                else
02247                 goto is_not_a_corner;
02248              else
02249               if( p[pixel[12]] > cb)
02250                if( p[pixel[7]] > cb)
02251                 if( p[pixel[8]] > cb)
02252                  if( p[pixel[9]] > cb)
02253                   if( p[pixel[10]] > cb)
02254                    if( p[pixel[11]] > cb)
02255                     if( p[pixel[13]] > cb)
02256                      if( p[pixel[14]] > cb)
02257                       if( p[pixel[6]] > cb)
02258                        goto is_a_corner;
02259                       else
02260                        if( p[pixel[15]] > cb)
02261                         goto is_a_corner;
02262                        else
02263                         goto is_not_a_corner;
02264                      else
02265                       goto is_not_a_corner;
02266                     else
02267                      goto is_not_a_corner;
02268                    else
02269                     goto is_not_a_corner;
02270                   else
02271                    goto is_not_a_corner;
02272                  else
02273                   goto is_not_a_corner;
02274                 else
02275                  goto is_not_a_corner;
02276                else
02277                 goto is_not_a_corner;
02278               else if( p[pixel[12]] < c_b)
02279                if( p[pixel[13]] < c_b)
02280                 if( p[pixel[14]] < c_b)
02281                  if( p[pixel[15]] < c_b)
02282                   goto is_a_corner;
02283                  else
02284                   if( p[pixel[6]] < c_b)
02285                    if( p[pixel[7]] < c_b)
02286                     if( p[pixel[8]] < c_b)
02287                      if( p[pixel[9]] < c_b)
02288                       if( p[pixel[10]] < c_b)
02289                        if( p[pixel[11]] < c_b)
02290                         goto is_a_corner;
02291                        else
02292                         goto is_not_a_corner;
02293                       else
02294                        goto is_not_a_corner;
02295                      else
02296                       goto is_not_a_corner;
02297                     else
02298                      goto is_not_a_corner;
02299                    else
02300                     goto is_not_a_corner;
02301                   else
02302                    goto is_not_a_corner;
02303                 else
02304                  goto is_not_a_corner;
02305                else
02306                 goto is_not_a_corner;
02307               else
02308                goto is_not_a_corner;
02309             else
02310              if( p[pixel[11]] > cb)
02311               if( p[pixel[7]] > cb)
02312                if( p[pixel[8]] > cb)
02313                 if( p[pixel[9]] > cb)
02314                  if( p[pixel[10]] > cb)
02315                   if( p[pixel[12]] > cb)
02316                    if( p[pixel[13]] > cb)
02317                     if( p[pixel[6]] > cb)
02318                      if( p[pixel[5]] > cb)
02319                       goto is_a_corner;
02320                      else
02321                       if( p[pixel[14]] > cb)
02322                        goto is_a_corner;
02323                       else
02324                        goto is_not_a_corner;
02325                     else
02326                      if( p[pixel[14]] > cb)
02327                       if( p[pixel[15]] > cb)
02328                        goto is_a_corner;
02329                       else
02330                        goto is_not_a_corner;
02331                      else
02332                       goto is_not_a_corner;
02333                    else
02334                     goto is_not_a_corner;
02335                   else
02336                    goto is_not_a_corner;
02337                  else
02338                   goto is_not_a_corner;
02339                 else
02340                  goto is_not_a_corner;
02341                else
02342                 goto is_not_a_corner;
02343               else
02344                goto is_not_a_corner;
02345              else if( p[pixel[11]] < c_b)
02346               if( p[pixel[12]] < c_b)
02347                if( p[pixel[13]] < c_b)
02348                 if( p[pixel[14]] < c_b)
02349                  if( p[pixel[15]] < c_b)
02350                   goto is_a_corner;
02351                  else
02352                   if( p[pixel[6]] < c_b)
02353                    if( p[pixel[7]] < c_b)
02354                     if( p[pixel[8]] < c_b)
02355                      if( p[pixel[9]] < c_b)
02356                       if( p[pixel[10]] < c_b)
02357                        goto is_a_corner;
02358                       else
02359                        goto is_not_a_corner;
02360                      else
02361                       goto is_not_a_corner;
02362                     else
02363                      goto is_not_a_corner;
02364                    else
02365                     goto is_not_a_corner;
02366                   else
02367                    goto is_not_a_corner;
02368                 else
02369                  if( p[pixel[5]] < c_b)
02370                   if( p[pixel[6]] < c_b)
02371                    if( p[pixel[7]] < c_b)
02372                     if( p[pixel[8]] < c_b)
02373                      if( p[pixel[9]] < c_b)
02374                       if( p[pixel[10]] < c_b)
02375                        goto is_a_corner;
02376                       else
02377                        goto is_not_a_corner;
02378                      else
02379                       goto is_not_a_corner;
02380                     else
02381                      goto is_not_a_corner;
02382                    else
02383                     goto is_not_a_corner;
02384                   else
02385                    goto is_not_a_corner;
02386                  else
02387                   goto is_not_a_corner;
02388                else
02389                 goto is_not_a_corner;
02390               else
02391                goto is_not_a_corner;
02392              else
02393               goto is_not_a_corner;
02394            else
02395             if( p[pixel[10]] > cb)
02396              if( p[pixel[7]] > cb)
02397               if( p[pixel[8]] > cb)
02398                if( p[pixel[9]] > cb)
02399                 if( p[pixel[11]] > cb)
02400                  if( p[pixel[12]] > cb)
02401                   if( p[pixel[6]] > cb)
02402                    if( p[pixel[5]] > cb)
02403                     if( p[pixel[4]] > cb)
02404                      goto is_a_corner;
02405                     else
02406                      if( p[pixel[13]] > cb)
02407                       goto is_a_corner;
02408                      else
02409                       goto is_not_a_corner;
02410                    else
02411                     if( p[pixel[13]] > cb)
02412                      if( p[pixel[14]] > cb)
02413                       goto is_a_corner;
02414                      else
02415                       goto is_not_a_corner;
02416                     else
02417                      goto is_not_a_corner;
02418                   else
02419                    if( p[pixel[13]] > cb)
02420                     if( p[pixel[14]] > cb)
02421                      if( p[pixel[15]] > cb)
02422                       goto is_a_corner;
02423                      else
02424                       goto is_not_a_corner;
02425                     else
02426                      goto is_not_a_corner;
02427                    else
02428                     goto is_not_a_corner;
02429                  else
02430                   goto is_not_a_corner;
02431                 else
02432                  goto is_not_a_corner;
02433                else
02434                 goto is_not_a_corner;
02435               else
02436                goto is_not_a_corner;
02437              else
02438               goto is_not_a_corner;
02439             else if( p[pixel[10]] < c_b)
02440              if( p[pixel[11]] < c_b)
02441               if( p[pixel[12]] < c_b)
02442                if( p[pixel[13]] < c_b)
02443                 if( p[pixel[14]] < c_b)
02444                  if( p[pixel[15]] < c_b)
02445                   goto is_a_corner;
02446                  else
02447                   if( p[pixel[6]] < c_b)
02448                    if( p[pixel[7]] < c_b)
02449                     if( p[pixel[8]] < c_b)
02450                      if( p[pixel[9]] < c_b)
02451                       goto is_a_corner;
02452                      else
02453                       goto is_not_a_corner;
02454                     else
02455                      goto is_not_a_corner;
02456                    else
02457                     goto is_not_a_corner;
02458                   else
02459                    goto is_not_a_corner;
02460                 else
02461                  if( p[pixel[5]] < c_b)
02462                   if( p[pixel[6]] < c_b)
02463                    if( p[pixel[7]] < c_b)
02464                     if( p[pixel[8]] < c_b)
02465                      if( p[pixel[9]] < c_b)
02466                       goto is_a_corner;
02467                      else
02468                       goto is_not_a_corner;
02469                     else
02470                      goto is_not_a_corner;
02471                    else
02472                     goto is_not_a_corner;
02473                   else
02474                    goto is_not_a_corner;
02475                  else
02476                   goto is_not_a_corner;
02477                else
02478                 if( p[pixel[4]] < c_b)
02479                  if( p[pixel[5]] < c_b)
02480                   if( p[pixel[6]] < c_b)
02481                    if( p[pixel[7]] < c_b)
02482                     if( p[pixel[8]] < c_b)
02483                      if( p[pixel[9]] < c_b)
02484                       goto is_a_corner;
02485                      else
02486                       goto is_not_a_corner;
02487                     else
02488                      goto is_not_a_corner;
02489                    else
02490                     goto is_not_a_corner;
02491                   else
02492                    goto is_not_a_corner;
02493                  else
02494                   goto is_not_a_corner;
02495                 else
02496                  goto is_not_a_corner;
02497               else
02498                goto is_not_a_corner;
02499              else
02500               goto is_not_a_corner;
02501             else
02502              goto is_not_a_corner;
02503           else
02504            if( p[pixel[9]] > cb)
02505             if( p[pixel[7]] > cb)
02506              if( p[pixel[8]] > cb)
02507               if( p[pixel[10]] > cb)
02508                if( p[pixel[11]] > cb)
02509                 if( p[pixel[6]] > cb)
02510                  if( p[pixel[5]] > cb)
02511                   if( p[pixel[4]] > cb)
02512                    if( p[pixel[3]] > cb)
02513                     goto is_a_corner;
02514                    else
02515                     if( p[pixel[12]] > cb)
02516                      goto is_a_corner;
02517                     else
02518                      goto is_not_a_corner;
02519                   else
02520                    if( p[pixel[12]] > cb)
02521                     if( p[pixel[13]] > cb)
02522                      goto is_a_corner;
02523                     else
02524                      goto is_not_a_corner;
02525                    else
02526                     goto is_not_a_corner;
02527                  else
02528                   if( p[pixel[12]] > cb)
02529                    if( p[pixel[13]] > cb)
02530                     if( p[pixel[14]] > cb)
02531                      goto is_a_corner;
02532                     else
02533                      goto is_not_a_corner;
02534                    else
02535                     goto is_not_a_corner;
02536                   else
02537                    goto is_not_a_corner;
02538                 else
02539                  if( p[pixel[12]] > cb)
02540                   if( p[pixel[13]] > cb)
02541                    if( p[pixel[14]] > cb)
02542                     if( p[pixel[15]] > cb)
02543                      goto is_a_corner;
02544                     else
02545                      goto is_not_a_corner;
02546                    else
02547                     goto is_not_a_corner;
02548                   else
02549                    goto is_not_a_corner;
02550                  else
02551                   goto is_not_a_corner;
02552                else
02553                 goto is_not_a_corner;
02554               else
02555                goto is_not_a_corner;
02556              else
02557               goto is_not_a_corner;
02558             else
02559              goto is_not_a_corner;
02560            else if( p[pixel[9]] < c_b)
02561             if( p[pixel[10]] < c_b)
02562              if( p[pixel[11]] < c_b)
02563               if( p[pixel[12]] < c_b)
02564                if( p[pixel[13]] < c_b)
02565                 if( p[pixel[14]] < c_b)
02566                  if( p[pixel[15]] < c_b)
02567                   goto is_a_corner;
02568                  else
02569                   if( p[pixel[6]] < c_b)
02570                    if( p[pixel[7]] < c_b)
02571                     if( p[pixel[8]] < c_b)
02572                      goto is_a_corner;
02573                     else
02574                      goto is_not_a_corner;
02575                    else
02576                     goto is_not_a_corner;
02577                   else
02578                    goto is_not_a_corner;
02579                 else
02580                  if( p[pixel[5]] < c_b)
02581                   if( p[pixel[6]] < c_b)
02582                    if( p[pixel[7]] < c_b)
02583                     if( p[pixel[8]] < c_b)
02584                      goto is_a_corner;
02585                     else
02586                      goto is_not_a_corner;
02587                    else
02588                     goto is_not_a_corner;
02589                   else
02590                    goto is_not_a_corner;
02591                  else
02592                   goto is_not_a_corner;
02593                else
02594                 if( p[pixel[4]] < c_b)
02595                  if( p[pixel[5]] < c_b)
02596                   if( p[pixel[6]] < c_b)
02597                    if( p[pixel[7]] < c_b)
02598                     if( p[pixel[8]] < c_b)
02599                      goto is_a_corner;
02600                     else
02601                      goto is_not_a_corner;
02602                    else
02603                     goto is_not_a_corner;
02604                   else
02605                    goto is_not_a_corner;
02606                  else
02607                   goto is_not_a_corner;
02608                 else
02609                  goto is_not_a_corner;
02610               else
02611                if( p[pixel[3]] < c_b)
02612                 if( p[pixel[4]] < c_b)
02613                  if( p[pixel[5]] < c_b)
02614                   if( p[pixel[6]] < c_b)
02615                    if( p[pixel[7]] < c_b)
02616                     if( p[pixel[8]] < c_b)
02617                      goto is_a_corner;
02618                     else
02619                      goto is_not_a_corner;
02620                    else
02621                     goto is_not_a_corner;
02622                   else
02623                    goto is_not_a_corner;
02624                  else
02625                   goto is_not_a_corner;
02626                 else
02627                  goto is_not_a_corner;
02628                else
02629                 goto is_not_a_corner;
02630              else
02631               goto is_not_a_corner;
02632             else
02633              goto is_not_a_corner;
02634            else
02635             goto is_not_a_corner;
02636          else
02637           if( p[pixel[8]] > cb)
02638            if( p[pixel[7]] > cb)
02639             if( p[pixel[9]] > cb)
02640              if( p[pixel[10]] > cb)
02641               if( p[pixel[6]] > cb)
02642                if( p[pixel[5]] > cb)
02643                 if( p[pixel[4]] > cb)
02644                  if( p[pixel[3]] > cb)
02645                   if( p[pixel[2]] > cb)
02646                    goto is_a_corner;
02647                   else
02648                    if( p[pixel[11]] > cb)
02649                     goto is_a_corner;
02650                    else
02651                     goto is_not_a_corner;
02652                  else
02653                   if( p[pixel[11]] > cb)
02654                    if( p[pixel[12]] > cb)
02655                     goto is_a_corner;
02656                    else
02657                     goto is_not_a_corner;
02658                   else
02659                    goto is_not_a_corner;
02660                 else
02661                  if( p[pixel[11]] > cb)
02662                   if( p[pixel[12]] > cb)
02663                    if( p[pixel[13]] > cb)
02664                     goto is_a_corner;
02665                    else
02666                     goto is_not_a_corner;
02667                   else
02668                    goto is_not_a_corner;
02669                  else
02670                   goto is_not_a_corner;
02671                else
02672                 if( p[pixel[11]] > cb)
02673                  if( p[pixel[12]] > cb)
02674                   if( p[pixel[13]] > cb)
02675                    if( p[pixel[14]] > cb)
02676                     goto is_a_corner;
02677                    else
02678                     goto is_not_a_corner;
02679                   else
02680                    goto is_not_a_corner;
02681                  else
02682                   goto is_not_a_corner;
02683                 else
02684                  goto is_not_a_corner;
02685               else
02686                if( p[pixel[11]] > cb)
02687                 if( p[pixel[12]] > cb)
02688                  if( p[pixel[13]] > cb)
02689                   if( p[pixel[14]] > cb)
02690                    if( p[pixel[15]] > cb)
02691                     goto is_a_corner;
02692                    else
02693                     goto is_not_a_corner;
02694                   else
02695                    goto is_not_a_corner;
02696                  else
02697                   goto is_not_a_corner;
02698                 else
02699                  goto is_not_a_corner;
02700                else
02701                 goto is_not_a_corner;
02702              else
02703               goto is_not_a_corner;
02704             else
02705              goto is_not_a_corner;
02706            else
02707             goto is_not_a_corner;
02708           else if( p[pixel[8]] < c_b)
02709            if( p[pixel[9]] < c_b)
02710             if( p[pixel[10]] < c_b)
02711              if( p[pixel[11]] < c_b)
02712               if( p[pixel[12]] < c_b)
02713                if( p[pixel[13]] < c_b)
02714                 if( p[pixel[14]] < c_b)
02715                  if( p[pixel[15]] < c_b)
02716                   goto is_a_corner;
02717                  else
02718                   if( p[pixel[6]] < c_b)
02719                    if( p[pixel[7]] < c_b)
02720                     goto is_a_corner;
02721                    else
02722                     goto is_not_a_corner;
02723                   else
02724                    goto is_not_a_corner;
02725                 else
02726                  if( p[pixel[5]] < c_b)
02727                   if( p[pixel[6]] < c_b)
02728                    if( p[pixel[7]] < c_b)
02729                     goto is_a_corner;
02730                    else
02731                     goto is_not_a_corner;
02732                   else
02733                    goto is_not_a_corner;
02734                  else
02735                   goto is_not_a_corner;
02736                else
02737                 if( p[pixel[4]] < c_b)
02738                  if( p[pixel[5]] < c_b)
02739                   if( p[pixel[6]] < c_b)
02740                    if( p[pixel[7]] < c_b)
02741                     goto is_a_corner;
02742                    else
02743                     goto is_not_a_corner;
02744                   else
02745                    goto is_not_a_corner;
02746                  else
02747                   goto is_not_a_corner;
02748                 else
02749                  goto is_not_a_corner;
02750               else
02751                if( p[pixel[3]] < c_b)
02752                 if( p[pixel[4]] < c_b)
02753                  if( p[pixel[5]] < c_b)
02754                   if( p[pixel[6]] < c_b)
02755                    if( p[pixel[7]] < c_b)
02756                     goto is_a_corner;
02757                    else
02758                     goto is_not_a_corner;
02759                   else
02760                    goto is_not_a_corner;
02761                  else
02762                   goto is_not_a_corner;
02763                 else
02764                  goto is_not_a_corner;
02765                else
02766                 goto is_not_a_corner;
02767              else
02768               if( p[pixel[2]] < c_b)
02769                if( p[pixel[3]] < c_b)
02770                 if( p[pixel[4]] < c_b)
02771                  if( p[pixel[5]] < c_b)
02772                   if( p[pixel[6]] < c_b)
02773                    if( p[pixel[7]] < c_b)
02774                     goto is_a_corner;
02775                    else
02776                     goto is_not_a_corner;
02777                   else
02778                    goto is_not_a_corner;
02779                  else
02780                   goto is_not_a_corner;
02781                 else
02782                  goto is_not_a_corner;
02783                else
02784                 goto is_not_a_corner;
02785               else
02786                goto is_not_a_corner;
02787             else
02788              goto is_not_a_corner;
02789            else
02790             goto is_not_a_corner;
02791           else
02792            goto is_not_a_corner;
02793         else
02794          if( p[pixel[7]] > cb)
02795           if( p[pixel[8]] > cb)
02796            if( p[pixel[9]] > cb)
02797             if( p[pixel[6]] > cb)
02798              if( p[pixel[5]] > cb)
02799               if( p[pixel[4]] > cb)
02800                if( p[pixel[3]] > cb)
02801                 if( p[pixel[2]] > cb)
02802                  if( p[pixel[1]] > cb)
02803                   goto is_a_corner;
02804                  else
02805                   if( p[pixel[10]] > cb)
02806                    goto is_a_corner;
02807                   else
02808                    goto is_not_a_corner;
02809                 else
02810                  if( p[pixel[10]] > cb)
02811                   if( p[pixel[11]] > cb)
02812                    goto is_a_corner;
02813                   else
02814                    goto is_not_a_corner;
02815                  else
02816                   goto is_not_a_corner;
02817                else
02818                 if( p[pixel[10]] > cb)
02819                  if( p[pixel[11]] > cb)
02820                   if( p[pixel[12]] > cb)
02821                    goto is_a_corner;
02822                   else
02823                    goto is_not_a_corner;
02824                  else
02825                   goto is_not_a_corner;
02826                 else
02827                  goto is_not_a_corner;
02828               else
02829                if( p[pixel[10]] > cb)
02830                 if( p[pixel[11]] > cb)
02831                  if( p[pixel[12]] > cb)
02832                   if( p[pixel[13]] > cb)
02833                    goto is_a_corner;
02834                   else
02835                    goto is_not_a_corner;
02836                  else
02837                   goto is_not_a_corner;
02838                 else
02839                  goto is_not_a_corner;
02840                else
02841                 goto is_not_a_corner;
02842              else
02843               if( p[pixel[10]] > cb)
02844                if( p[pixel[11]] > cb)
02845                 if( p[pixel[12]] > cb)
02846                  if( p[pixel[13]] > cb)
02847                   if( p[pixel[14]] > cb)
02848                    goto is_a_corner;
02849                   else
02850                    goto is_not_a_corner;
02851                  else
02852                   goto is_not_a_corner;
02853                 else
02854                  goto is_not_a_corner;
02855                else
02856                 goto is_not_a_corner;
02857               else
02858                goto is_not_a_corner;
02859             else
02860              if( p[pixel[10]] > cb)
02861               if( p[pixel[11]] > cb)
02862                if( p[pixel[12]] > cb)
02863                 if( p[pixel[13]] > cb)
02864                  if( p[pixel[14]] > cb)
02865                   if( p[pixel[15]] > cb)
02866                    goto is_a_corner;
02867                   else
02868                    goto is_not_a_corner;
02869                  else
02870                   goto is_not_a_corner;
02871                 else
02872                  goto is_not_a_corner;
02873                else
02874                 goto is_not_a_corner;
02875               else
02876                goto is_not_a_corner;
02877              else
02878               goto is_not_a_corner;
02879            else
02880             goto is_not_a_corner;
02881           else
02882            goto is_not_a_corner;
02883          else if( p[pixel[7]] < c_b)
02884           if( p[pixel[8]] < c_b)
02885            if( p[pixel[9]] < c_b)
02886             if( p[pixel[6]] < c_b)
02887              if( p[pixel[5]] < c_b)
02888               if( p[pixel[4]] < c_b)
02889                if( p[pixel[3]] < c_b)
02890                 if( p[pixel[2]] < c_b)
02891                  if( p[pixel[1]] < c_b)
02892                   goto is_a_corner;
02893                  else
02894                   if( p[pixel[10]] < c_b)
02895                    goto is_a_corner;
02896                   else
02897                    goto is_not_a_corner;
02898                 else
02899                  if( p[pixel[10]] < c_b)
02900                   if( p[pixel[11]] < c_b)
02901                    goto is_a_corner;
02902                   else
02903                    goto is_not_a_corner;
02904                  else
02905                   goto is_not_a_corner;
02906                else
02907                 if( p[pixel[10]] < c_b)
02908                  if( p[pixel[11]] < c_b)
02909                   if( p[pixel[12]] < c_b)
02910                    goto is_a_corner;
02911                   else
02912                    goto is_not_a_corner;
02913                  else
02914                   goto is_not_a_corner;
02915                 else
02916                  goto is_not_a_corner;
02917               else
02918                if( p[pixel[10]] < c_b)
02919                 if( p[pixel[11]] < c_b)
02920                  if( p[pixel[12]] < c_b)
02921                   if( p[pixel[13]] < c_b)
02922                    goto is_a_corner;
02923                   else
02924                    goto is_not_a_corner;
02925                  else
02926                   goto is_not_a_corner;
02927                 else
02928                  goto is_not_a_corner;
02929                else
02930                 goto is_not_a_corner;
02931              else
02932               if( p[pixel[10]] < c_b)
02933                if( p[pixel[11]] < c_b)
02934                 if( p[pixel[12]] < c_b)
02935                  if( p[pixel[13]] < c_b)
02936                   if( p[pixel[14]] < c_b)
02937                    goto is_a_corner;
02938                   else
02939                    goto is_not_a_corner;
02940                  else
02941                   goto is_not_a_corner;
02942                 else
02943                  goto is_not_a_corner;
02944                else
02945                 goto is_not_a_corner;
02946               else
02947                goto is_not_a_corner;
02948             else
02949              if( p[pixel[10]] < c_b)
02950               if( p[pixel[11]] < c_b)
02951                if( p[pixel[12]] < c_b)
02952                 if( p[pixel[13]] < c_b)
02953                  if( p[pixel[14]] < c_b)
02954                   if( p[pixel[15]] < c_b)
02955                    goto is_a_corner;
02956                   else
02957                    goto is_not_a_corner;
02958                  else
02959                   goto is_not_a_corner;
02960                 else
02961                  goto is_not_a_corner;
02962                else
02963                 goto is_not_a_corner;
02964               else
02965                goto is_not_a_corner;
02966              else
02967               goto is_not_a_corner;
02968            else
02969             goto is_not_a_corner;
02970           else
02971            goto is_not_a_corner;
02972          else
02973           goto is_not_a_corner;
02974 
02975         is_a_corner:
02976             bmin=b;
02977             goto end_if;
02978 
02979         is_not_a_corner:
02980             bmax=b;
02981             goto end_if;
02982 
02983         end_if:
02984 
02985         if(bmin == bmax - 1 || bmin == bmax)
02986             return bmin;
02987         b = (bmin + bmax) / 2;
02988     }
02989 }
02990 
02991 static inline void makeOffsets(int pixel[], int row_stride)
02992 {
02993     pixel[0] = 0 + row_stride * 3;
02994     pixel[1] = 1 + row_stride * 3;
02995     pixel[2] = 2 + row_stride * 2;
02996     pixel[3] = 3 + row_stride * 1;
02997     pixel[4] = 3 + row_stride * 0;
02998     pixel[5] = 3 + row_stride * -1;
02999     pixel[6] = 2 + row_stride * -2;
03000     pixel[7] = 1 + row_stride * -3;
03001     pixel[8] = 0 + row_stride * -3;
03002     pixel[9] = -1 + row_stride * -3;
03003     pixel[10] = -2 + row_stride * -2;
03004     pixel[11] = -3 + row_stride * -1;
03005     pixel[12] = -3 + row_stride * 0;
03006     pixel[13] = -3 + row_stride * 1;
03007     pixel[14] = -2 + row_stride * 2;
03008     pixel[15] = -1 + row_stride * 3;
03009 }
03010 
03011 
03012 static void fast9ComputeScores(const uint8_t* img, int width, int height, int row_stride,
03013         vector<Point>& corners, vector<int>& scores, int b)
03014 {   
03015     int pixel[16];
03016     makeOffsets(pixel, (int)row_stride);
03017     size_t n, num_corners = corners.size();
03018 
03019     scores.resize(num_corners);
03020     for(n=0; n < num_corners; n++) {
03021         const uint8_t* p = &img[corners[n].y*row_stride + corners[n].x];
03022         scores[n] = fast9CornerScore(p, pixel, b);
03023     }
03024 }
03025 
03026 
03027 static void fast9Detect(const uint8_t* img, int width, int height, int row_stride, 
03028         vector<Point>& ret_corners, int b)
03029 {
03030     int xsize = width, ysize = height;
03031     int pixel[16];
03032     makeOffsets(pixel, row_stride);
03033 
03034     ret_corners.reserve(512);
03035 
03036     for(int y=3; y < ysize - 3; y++)
03037         for(int x=3; x < xsize - 3; x++)
03038         {
03039 //            const uchar* p = &img.at<uchar>(y,x);
03040             const uint8_t* p = &img[y*row_stride + x];
03041         
03042             int cb = *p + b;
03043             int c_b= *p - b;
03044         if(p[pixel[0]] > cb)
03045          if(p[pixel[1]] > cb)
03046           if(p[pixel[2]] > cb)
03047            if(p[pixel[3]] > cb)
03048             if(p[pixel[4]] > cb)
03049              if(p[pixel[5]] > cb)
03050               if(p[pixel[6]] > cb)
03051                if(p[pixel[7]] > cb)
03052                 if(p[pixel[8]] > cb)
03053                  {}
03054                 else
03055                  if(p[pixel[15]] > cb)
03056                   {}
03057                  else
03058                   continue;
03059                else if(p[pixel[7]] < c_b)
03060                 if(p[pixel[14]] > cb)
03061                  if(p[pixel[15]] > cb)
03062                   {}
03063                  else
03064                   continue;
03065                 else if(p[pixel[14]] < c_b)
03066                  if(p[pixel[8]] < c_b)
03067                   if(p[pixel[9]] < c_b)
03068                    if(p[pixel[10]] < c_b)
03069                     if(p[pixel[11]] < c_b)
03070                      if(p[pixel[12]] < c_b)
03071                       if(p[pixel[13]] < c_b)
03072                        if(p[pixel[15]] < c_b)
03073                         {}
03074                        else
03075                         continue;
03076                       else
03077                        continue;
03078                      else
03079                       continue;
03080                     else
03081                      continue;
03082                    else
03083                     continue;
03084                   else
03085                    continue;
03086                  else
03087                   continue;
03088                 else
03089                  continue;
03090                else
03091                 if(p[pixel[14]] > cb)
03092                  if(p[pixel[15]] > cb)
03093                   {}
03094                  else
03095                   continue;
03096                 else
03097                  continue;
03098               else if(p[pixel[6]] < c_b)
03099                if(p[pixel[15]] > cb)
03100                 if(p[pixel[13]] > cb)
03101                  if(p[pixel[14]] > cb)
03102                   {}
03103                  else
03104                   continue;
03105                 else if(p[pixel[13]] < c_b)
03106                  if(p[pixel[7]] < c_b)
03107                   if(p[pixel[8]] < c_b)
03108                    if(p[pixel[9]] < c_b)
03109                     if(p[pixel[10]] < c_b)
03110                      if(p[pixel[11]] < c_b)
03111                       if(p[pixel[12]] < c_b)
03112                        if(p[pixel[14]] < c_b)
03113                         {}
03114                        else
03115                         continue;
03116                       else
03117                        continue;
03118                      else
03119                       continue;
03120                     else
03121                      continue;
03122                    else
03123                     continue;
03124                   else
03125                    continue;
03126                  else
03127                   continue;
03128                 else
03129                  continue;
03130                else
03131                 if(p[pixel[7]] < c_b)
03132                  if(p[pixel[8]] < c_b)
03133                   if(p[pixel[9]] < c_b)
03134                    if(p[pixel[10]] < c_b)
03135                     if(p[pixel[11]] < c_b)
03136                      if(p[pixel[12]] < c_b)
03137                       if(p[pixel[13]] < c_b)
03138                        if(p[pixel[14]] < c_b)
03139                         {}
03140                        else
03141                         continue;
03142                       else
03143                        continue;
03144                      else
03145                       continue;
03146                     else
03147                      continue;
03148                    else
03149                     continue;
03150                   else
03151                    continue;
03152                  else
03153                   continue;
03154                 else
03155                  continue;
03156               else
03157                if(p[pixel[13]] > cb)
03158                 if(p[pixel[14]] > cb)
03159                  if(p[pixel[15]] > cb)
03160                   {}
03161                  else
03162                   continue;
03163                 else
03164                  continue;
03165                else if(p[pixel[13]] < c_b)
03166                 if(p[pixel[7]] < c_b)
03167                  if(p[pixel[8]] < c_b)
03168                   if(p[pixel[9]] < c_b)
03169                    if(p[pixel[10]] < c_b)
03170                     if(p[pixel[11]] < c_b)
03171                      if(p[pixel[12]] < c_b)
03172                       if(p[pixel[14]] < c_b)
03173                        if(p[pixel[15]] < c_b)
03174                         {}
03175                        else
03176                         continue;
03177                       else
03178                        continue;
03179                      else
03180                       continue;
03181                     else
03182                      continue;
03183                    else
03184                     continue;
03185                   else
03186                    continue;
03187                  else
03188                   continue;
03189                 else
03190                  continue;
03191                else
03192                 continue;
03193              else if(p[pixel[5]] < c_b)
03194               if(p[pixel[14]] > cb)
03195                if(p[pixel[12]] > cb)
03196                 if(p[pixel[13]] > cb)
03197                  if(p[pixel[15]] > cb)
03198                   {}
03199                  else
03200                   if(p[pixel[6]] > cb)
03201                    if(p[pixel[7]] > cb)
03202                     if(p[pixel[8]] > cb)
03203                      if(p[pixel[9]] > cb)
03204                       if(p[pixel[10]] > cb)
03205                        if(p[pixel[11]] > cb)
03206                         {}
03207                        else
03208                         continue;
03209                       else
03210                        continue;
03211                      else
03212                       continue;
03213                     else
03214                      continue;
03215                    else
03216                     continue;
03217                   else
03218                    continue;
03219                 else
03220                  continue;
03221                else if(p[pixel[12]] < c_b)
03222                 if(p[pixel[6]] < c_b)
03223                  if(p[pixel[7]] < c_b)
03224                   if(p[pixel[8]] < c_b)
03225                    if(p[pixel[9]] < c_b)
03226                     if(p[pixel[10]] < c_b)
03227                      if(p[pixel[11]] < c_b)
03228                       if(p[pixel[13]] < c_b)
03229                        {}
03230                       else
03231                        continue;
03232                      else
03233                       continue;
03234                     else
03235                      continue;
03236                    else
03237                     continue;
03238                   else
03239                    continue;
03240                  else
03241                   continue;
03242                 else
03243                  continue;
03244                else
03245                 continue;
03246               else if(p[pixel[14]] < c_b)
03247                if(p[pixel[7]] < c_b)
03248                 if(p[pixel[8]] < c_b)
03249                  if(p[pixel[9]] < c_b)
03250                   if(p[pixel[10]] < c_b)
03251                    if(p[pixel[11]] < c_b)
03252                     if(p[pixel[12]] < c_b)
03253                      if(p[pixel[13]] < c_b)
03254                       if(p[pixel[6]] < c_b)
03255                        {}
03256                       else
03257                        if(p[pixel[15]] < c_b)
03258                         {}
03259                        else
03260                         continue;
03261                      else
03262                       continue;
03263                     else
03264                      continue;
03265                    else
03266                     continue;
03267                   else
03268                    continue;
03269                  else
03270                   continue;
03271                 else
03272                  continue;
03273                else
03274                 continue;
03275               else
03276                if(p[pixel[6]] < c_b)
03277                 if(p[pixel[7]] < c_b)
03278                  if(p[pixel[8]] < c_b)
03279                   if(p[pixel[9]] < c_b)
03280                    if(p[pixel[10]] < c_b)
03281                     if(p[pixel[11]] < c_b)
03282                      if(p[pixel[12]] < c_b)
03283                       if(p[pixel[13]] < c_b)
03284                        {}
03285                       else
03286                        continue;
03287                      else
03288                       continue;
03289                     else
03290                      continue;
03291                    else
03292                     continue;
03293                   else
03294                    continue;
03295                  else
03296                   continue;
03297                 else
03298                  continue;
03299                else
03300                 continue;
03301              else
03302               if(p[pixel[12]] > cb)
03303                if(p[pixel[13]] > cb)
03304                 if(p[pixel[14]] > cb)
03305                  if(p[pixel[15]] > cb)
03306                   {}
03307                  else
03308                   if(p[pixel[6]] > cb)
03309                    if(p[pixel[7]] > cb)
03310                     if(p[pixel[8]] > cb)
03311                      if(p[pixel[9]] > cb)
03312                       if(p[pixel[10]] > cb)
03313                        if(p[pixel[11]] > cb)
03314                         {}
03315                        else
03316                         continue;
03317                       else
03318                        continue;
03319                      else
03320                       continue;
03321                     else
03322                      continue;
03323                    else
03324                     continue;
03325                   else
03326                    continue;
03327                 else
03328                  continue;
03329                else
03330                 continue;
03331               else if(p[pixel[12]] < c_b)
03332                if(p[pixel[7]] < c_b)
03333                 if(p[pixel[8]] < c_b)
03334                  if(p[pixel[9]] < c_b)
03335                   if(p[pixel[10]] < c_b)
03336                    if(p[pixel[11]] < c_b)
03337                     if(p[pixel[13]] < c_b)
03338                      if(p[pixel[14]] < c_b)
03339                       if(p[pixel[6]] < c_b)
03340                        {}
03341                       else
03342                        if(p[pixel[15]] < c_b)
03343                         {}
03344                        else
03345                         continue;
03346                      else
03347                       continue;
03348                     else
03349                      continue;
03350                    else
03351                     continue;
03352                   else
03353                    continue;
03354                  else
03355                   continue;
03356                 else
03357                  continue;
03358                else
03359                 continue;
03360               else
03361                continue;
03362             else if(p[pixel[4]] < c_b)
03363              if(p[pixel[13]] > cb)
03364               if(p[pixel[11]] > cb)
03365                if(p[pixel[12]] > cb)
03366                 if(p[pixel[14]] > cb)
03367                  if(p[pixel[15]] > cb)
03368                   {}
03369                  else
03370                   if(p[pixel[6]] > cb)
03371                    if(p[pixel[7]] > cb)
03372                     if(p[pixel[8]] > cb)
03373                      if(p[pixel[9]] > cb)
03374                       if(p[pixel[10]] > cb)
03375                        {}
03376                       else
03377                        continue;
03378                      else
03379                       continue;
03380                     else
03381                      continue;
03382                    else
03383                     continue;
03384                   else
03385                    continue;
03386                 else
03387                  if(p[pixel[5]] > cb)
03388                   if(p[pixel[6]] > cb)
03389                    if(p[pixel[7]] > cb)
03390                     if(p[pixel[8]] > cb)
03391                      if(p[pixel[9]] > cb)
03392                       if(p[pixel[10]] > cb)
03393                        {}
03394                       else
03395                        continue;
03396                      else
03397                       continue;
03398                     else
03399                      continue;
03400                    else
03401                     continue;
03402                   else
03403                    continue;
03404                  else
03405                   continue;
03406                else
03407                 continue;
03408               else if(p[pixel[11]] < c_b)
03409                if(p[pixel[5]] < c_b)
03410                 if(p[pixel[6]] < c_b)
03411                  if(p[pixel[7]] < c_b)
03412                   if(p[pixel[8]] < c_b)
03413                    if(p[pixel[9]] < c_b)
03414                     if(p[pixel[10]] < c_b)
03415                      if(p[pixel[12]] < c_b)
03416                       {}
03417                      else
03418                       continue;
03419                     else
03420                      continue;
03421                    else
03422                     continue;
03423                   else
03424                    continue;
03425                  else
03426                   continue;
03427                 else
03428                  continue;
03429                else
03430                 continue;
03431               else
03432                continue;
03433              else if(p[pixel[13]] < c_b)
03434               if(p[pixel[7]] < c_b)
03435                if(p[pixel[8]] < c_b)
03436                 if(p[pixel[9]] < c_b)
03437                  if(p[pixel[10]] < c_b)
03438                   if(p[pixel[11]] < c_b)
03439                    if(p[pixel[12]] < c_b)
03440                     if(p[pixel[6]] < c_b)
03441                      if(p[pixel[5]] < c_b)
03442                       {}
03443                      else
03444                       if(p[pixel[14]] < c_b)
03445                        {}
03446                       else
03447                        continue;
03448                     else
03449                      if(p[pixel[14]] < c_b)
03450                       if(p[pixel[15]] < c_b)
03451                        {}
03452                       else
03453                        continue;
03454                      else
03455                       continue;
03456                    else
03457                     continue;
03458                   else
03459                    continue;
03460                  else
03461                   continue;
03462                 else
03463                  continue;
03464                else
03465                 continue;
03466               else
03467                continue;
03468              else
03469               if(p[pixel[5]] < c_b)
03470                if(p[pixel[6]] < c_b)
03471                 if(p[pixel[7]] < c_b)
03472                  if(p[pixel[8]] < c_b)
03473                   if(p[pixel[9]] < c_b)
03474                    if(p[pixel[10]] < c_b)
03475                     if(p[pixel[11]] < c_b)
03476                      if(p[pixel[12]] < c_b)
03477                       {}
03478                      else
03479                       continue;
03480                     else
03481                      continue;
03482                    else
03483                     continue;
03484                   else
03485                    continue;
03486                  else
03487                   continue;
03488                 else
03489                  continue;
03490                else
03491                 continue;
03492               else
03493                continue;
03494             else
03495              if(p[pixel[11]] > cb)
03496               if(p[pixel[12]] > cb)
03497                if(p[pixel[13]] > cb)
03498                 if(p[pixel[14]] > cb)
03499                  if(p[pixel[15]] > cb)
03500                   {}
03501                  else
03502                   if(p[pixel[6]] > cb)
03503                    if(p[pixel[7]] > cb)
03504                     if(p[pixel[8]] > cb)
03505                      if(p[pixel[9]] > cb)
03506                       if(p[pixel[10]] > cb)
03507                        {}
03508                       else
03509                        continue;
03510                      else
03511                       continue;
03512                     else
03513                      continue;
03514                    else
03515                     continue;
03516                   else
03517                    continue;
03518                 else
03519                  if(p[pixel[5]] > cb)
03520                   if(p[pixel[6]] > cb)
03521                    if(p[pixel[7]] > cb)
03522                     if(p[pixel[8]] > cb)
03523                      if(p[pixel[9]] > cb)
03524                       if(p[pixel[10]] > cb)
03525                        {}
03526                       else
03527                        continue;
03528                      else
03529                       continue;
03530                     else
03531                      continue;
03532                    else
03533                     continue;
03534                   else
03535                    continue;
03536                  else
03537                   continue;
03538                else
03539                 continue;
03540               else
03541                continue;
03542              else if(p[pixel[11]] < c_b)
03543               if(p[pixel[7]] < c_b)
03544                if(p[pixel[8]] < c_b)
03545                 if(p[pixel[9]] < c_b)
03546                  if(p[pixel[10]] < c_b)
03547                   if(p[pixel[12]] < c_b)
03548                    if(p[pixel[13]] < c_b)
03549                     if(p[pixel[6]] < c_b)
03550                      if(p[pixel[5]] < c_b)
03551                       {}
03552                      else
03553                       if(p[pixel[14]] < c_b)
03554                        {}
03555                       else
03556                        continue;
03557                     else
03558                      if(p[pixel[14]] < c_b)
03559                       if(p[pixel[15]] < c_b)
03560                        {}
03561                       else
03562                        continue;
03563                      else
03564                       continue;
03565                    else
03566                     continue;
03567                   else
03568                    continue;
03569                  else
03570                   continue;
03571                 else
03572                  continue;
03573                else
03574                 continue;
03575               else
03576                continue;
03577              else
03578               continue;
03579            else if(p[pixel[3]] < c_b)
03580             if(p[pixel[10]] > cb)
03581              if(p[pixel[11]] > cb)
03582               if(p[pixel[12]] > cb)
03583                if(p[pixel[13]] > cb)
03584                 if(p[pixel[14]] > cb)
03585                  if(p[pixel[15]] > cb)
03586                   {}
03587                  else
03588                   if(p[pixel[6]] > cb)
03589                    if(p[pixel[7]] > cb)
03590                     if(p[pixel[8]] > cb)
03591                      if(p[pixel[9]] > cb)
03592                       {}
03593                      else
03594                       continue;
03595                     else
03596                      continue;
03597                    else
03598                     continue;
03599                   else
03600                    continue;
03601                 else
03602                  if(p[pixel[5]] > cb)
03603                   if(p[pixel[6]] > cb)
03604                    if(p[pixel[7]] > cb)
03605                     if(p[pixel[8]] > cb)
03606                      if(p[pixel[9]] > cb)
03607                       {}
03608                      else
03609                       continue;
03610                     else
03611                      continue;
03612                    else
03613                     continue;
03614                   else
03615                    continue;
03616                  else
03617                   continue;
03618                else
03619                 if(p[pixel[4]] > cb)
03620                  if(p[pixel[5]] > cb)
03621                   if(p[pixel[6]] > cb)
03622                    if(p[pixel[7]] > cb)
03623                     if(p[pixel[8]] > cb)
03624                      if(p[pixel[9]] > cb)
03625                       {}
03626                      else
03627                       continue;
03628                     else
03629                      continue;
03630                    else
03631                     continue;
03632                   else
03633                    continue;
03634                  else
03635                   continue;
03636                 else
03637                  continue;
03638               else
03639                continue;
03640              else
03641               continue;
03642             else if(p[pixel[10]] < c_b)
03643              if(p[pixel[7]] < c_b)
03644               if(p[pixel[8]] < c_b)
03645                if(p[pixel[9]] < c_b)
03646                 if(p[pixel[11]] < c_b)
03647                  if(p[pixel[6]] < c_b)
03648                   if(p[pixel[5]] < c_b)
03649                    if(p[pixel[4]] < c_b)
03650                     {}
03651                    else
03652                     if(p[pixel[12]] < c_b)
03653                      if(p[pixel[13]] < c_b)
03654                       {}
03655                      else
03656                       continue;
03657                     else
03658                      continue;
03659                   else
03660                    if(p[pixel[12]] < c_b)
03661                     if(p[pixel[13]] < c_b)
03662                      if(p[pixel[14]] < c_b)
03663                       {}
03664                      else
03665                       continue;
03666                     else
03667                      continue;
03668                    else
03669                     continue;
03670                  else
03671                   if(p[pixel[12]] < c_b)
03672                    if(p[pixel[13]] < c_b)
03673                     if(p[pixel[14]] < c_b)
03674                      if(p[pixel[15]] < c_b)
03675                       {}
03676                      else
03677                       continue;
03678                     else
03679                      continue;
03680                    else
03681                     continue;
03682                   else
03683                    continue;
03684                 else
03685                  continue;
03686                else
03687                 continue;
03688               else
03689                continue;
03690              else
03691               continue;
03692             else
03693              continue;
03694            else
03695             if(p[pixel[10]] > cb)
03696              if(p[pixel[11]] > cb)
03697               if(p[pixel[12]] > cb)
03698                if(p[pixel[13]] > cb)
03699                 if(p[pixel[14]] > cb)
03700                  if(p[pixel[15]] > cb)
03701                   {}
03702                  else
03703                   if(p[pixel[6]] > cb)
03704                    if(p[pixel[7]] > cb)
03705                     if(p[pixel[8]] > cb)
03706                      if(p[pixel[9]] > cb)
03707                       {}
03708                      else
03709                       continue;
03710                     else
03711                      continue;
03712                    else
03713                     continue;
03714                   else
03715                    continue;
03716                 else
03717                  if(p[pixel[5]] > cb)
03718                   if(p[pixel[6]] > cb)
03719                    if(p[pixel[7]] > cb)
03720                     if(p[pixel[8]] > cb)
03721                      if(p[pixel[9]] > cb)
03722                       {}
03723                      else
03724                       continue;
03725                     else
03726                      continue;
03727                    else
03728                     continue;
03729                   else
03730                    continue;
03731                  else
03732                   continue;
03733                else
03734                 if(p[pixel[4]] > cb)
03735                  if(p[pixel[5]] > cb)
03736                   if(p[pixel[6]] > cb)
03737                    if(p[pixel[7]] > cb)
03738                     if(p[pixel[8]] > cb)
03739                      if(p[pixel[9]] > cb)
03740                       {}
03741                      else
03742                       continue;
03743                     else
03744                      continue;
03745                    else
03746                     continue;
03747                   else
03748                    continue;
03749                  else
03750                   continue;
03751                 else
03752                  continue;
03753               else
03754                continue;
03755              else
03756               continue;
03757             else if(p[pixel[10]] < c_b)
03758              if(p[pixel[7]] < c_b)
03759               if(p[pixel[8]] < c_b)
03760                if(p[pixel[9]] < c_b)
03761                 if(p[pixel[11]] < c_b)
03762                  if(p[pixel[12]] < c_b)
03763                   if(p[pixel[6]] < c_b)
03764                    if(p[pixel[5]] < c_b)
03765                     if(p[pixel[4]] < c_b)
03766                      {}
03767                     else
03768                      if(p[pixel[13]] < c_b)
03769                       {}
03770                      else
03771                       continue;
03772                    else
03773                     if(p[pixel[13]] < c_b)
03774                      if(p[pixel[14]] < c_b)
03775                       {}
03776                      else
03777                       continue;
03778                     else
03779                      continue;
03780                   else
03781                    if(p[pixel[13]] < c_b)
03782                     if(p[pixel[14]] < c_b)
03783                      if(p[pixel[15]] < c_b)
03784                       {}
03785                      else
03786                       continue;
03787                     else
03788                      continue;
03789                    else
03790                     continue;
03791                  else
03792                   continue;
03793                 else
03794                  continue;
03795                else
03796                 continue;
03797               else
03798                continue;
03799              else
03800               continue;
03801             else
03802              continue;
03803           else if(p[pixel[2]] < c_b)
03804            if(p[pixel[9]] > cb)
03805             if(p[pixel[10]] > cb)
03806              if(p[pixel[11]] > cb)
03807               if(p[pixel[12]] > cb)
03808                if(p[pixel[13]] > cb)
03809                 if(p[pixel[14]] > cb)
03810                  if(p[pixel[15]] > cb)
03811                   {}
03812                  else
03813                   if(p[pixel[6]] > cb)
03814                    if(p[pixel[7]] > cb)
03815                     if(p[pixel[8]] > cb)
03816                      {}
03817                     else
03818                      continue;
03819                    else
03820                     continue;
03821                   else
03822                    continue;
03823                 else
03824                  if(p[pixel[5]] > cb)
03825                   if(p[pixel[6]] > cb)
03826                    if(p[pixel[7]] > cb)
03827                     if(p[pixel[8]] > cb)
03828                      {}
03829                     else
03830                      continue;
03831                    else
03832                     continue;
03833                   else
03834                    continue;
03835                  else
03836                   continue;
03837                else
03838                 if(p[pixel[4]] > cb)
03839                  if(p[pixel[5]] > cb)
03840                   if(p[pixel[6]] > cb)
03841                    if(p[pixel[7]] > cb)
03842                     if(p[pixel[8]] > cb)
03843                      {}
03844                     else
03845                      continue;
03846                    else
03847                     continue;
03848                   else
03849                    continue;
03850                  else
03851                   continue;
03852                 else
03853                  continue;
03854               else
03855                if(p[pixel[3]] > cb)
03856                 if(p[pixel[4]] > cb)
03857                  if(p[pixel[5]] > cb)
03858                   if(p[pixel[6]] > cb)
03859                    if(p[pixel[7]] > cb)
03860                     if(p[pixel[8]] > cb)
03861                      {}
03862                     else
03863                      continue;
03864                    else
03865                     continue;
03866                   else
03867                    continue;
03868                  else
03869                   continue;
03870                 else
03871                  continue;
03872                else
03873                 continue;
03874              else
03875               continue;
03876             else
03877              continue;
03878            else if(p[pixel[9]] < c_b)
03879             if(p[pixel[7]] < c_b)
03880              if(p[pixel[8]] < c_b)
03881               if(p[pixel[10]] < c_b)
03882                if(p[pixel[6]] < c_b)
03883                 if(p[pixel[5]] < c_b)
03884                  if(p[pixel[4]] < c_b)
03885                   if(p[pixel[3]] < c_b)
03886                    {}
03887                   else
03888                    if(p[pixel[11]] < c_b)
03889                     if(p[pixel[12]] < c_b)
03890                      {}
03891                     else
03892                      continue;
03893                    else
03894                     continue;
03895                  else
03896                   if(p[pixel[11]] < c_b)
03897                    if(p[pixel[12]] < c_b)
03898                     if(p[pixel[13]] < c_b)
03899                      {}
03900                     else
03901                      continue;
03902                    else
03903                     continue;
03904                   else
03905                    continue;
03906                 else
03907                  if(p[pixel[11]] < c_b)
03908                   if(p[pixel[12]] < c_b)
03909                    if(p[pixel[13]] < c_b)
03910                     if(p[pixel[14]] < c_b)
03911                      {}
03912                     else
03913                      continue;
03914                    else
03915                     continue;
03916                   else
03917                    continue;
03918                  else
03919                   continue;
03920                else
03921                 if(p[pixel[11]] < c_b)
03922                  if(p[pixel[12]] < c_b)
03923                   if(p[pixel[13]] < c_b)
03924                    if(p[pixel[14]] < c_b)
03925                     if(p[pixel[15]] < c_b)
03926                      {}
03927                     else
03928                      continue;
03929                    else
03930                     continue;
03931                   else
03932                    continue;
03933                  else
03934                   continue;
03935                 else
03936                  continue;
03937               else
03938                continue;
03939              else
03940               continue;
03941             else
03942              continue;
03943            else
03944             continue;
03945           else
03946            if(p[pixel[9]] > cb)
03947             if(p[pixel[10]] > cb)
03948              if(p[pixel[11]] > cb)
03949               if(p[pixel[12]] > cb)
03950                if(p[pixel[13]] > cb)
03951                 if(p[pixel[14]] > cb)
03952                  if(p[pixel[15]] > cb)
03953                   {}
03954                  else
03955                   if(p[pixel[6]] > cb)
03956                    if(p[pixel[7]] > cb)
03957                     if(p[pixel[8]] > cb)
03958                      {}
03959                     else
03960                      continue;
03961                    else
03962                     continue;
03963                   else
03964                    continue;
03965                 else
03966                  if(p[pixel[5]] > cb)
03967                   if(p[pixel[6]] > cb)
03968                    if(p[pixel[7]] > cb)
03969                     if(p[pixel[8]] > cb)
03970                      {}
03971                     else
03972                      continue;
03973                    else
03974                     continue;
03975                   else
03976                    continue;
03977                  else
03978                   continue;
03979                else
03980                 if(p[pixel[4]] > cb)
03981                  if(p[pixel[5]] > cb)
03982                   if(p[pixel[6]] > cb)
03983                    if(p[pixel[7]] > cb)
03984                     if(p[pixel[8]] > cb)
03985                      {}
03986                     else
03987                      continue;
03988                    else
03989                     continue;
03990                   else
03991                    continue;
03992                  else
03993                   continue;
03994                 else
03995                  continue;
03996               else
03997                if(p[pixel[3]] > cb)
03998                 if(p[pixel[4]] > cb)
03999                  if(p[pixel[5]] > cb)
04000                   if(p[pixel[6]] > cb)
04001                    if(p[pixel[7]] > cb)
04002                     if(p[pixel[8]] > cb)
04003                      {}
04004                     else
04005                      continue;
04006                    else
04007                     continue;
04008                   else
04009                    continue;
04010                  else
04011                   continue;
04012                 else
04013                  continue;
04014                else
04015                 continue;
04016              else
04017               continue;
04018             else
04019              continue;
04020            else if(p[pixel[9]] < c_b)
04021             if(p[pixel[7]] < c_b)
04022              if(p[pixel[8]] < c_b)
04023               if(p[pixel[10]] < c_b)
04024                if(p[pixel[11]] < c_b)
04025                 if(p[pixel[6]] < c_b)
04026                  if(p[pixel[5]] < c_b)
04027                   if(p[pixel[4]] < c_b)
04028                    if(p[pixel[3]] < c_b)
04029                     {}
04030                    else
04031                     if(p[pixel[12]] < c_b)
04032                      {}
04033                     else
04034                      continue;
04035                   else
04036                    if(p[pixel[12]] < c_b)
04037                     if(p[pixel[13]] < c_b)
04038                      {}
04039                     else
04040                      continue;
04041                    else
04042                     continue;
04043                  else
04044                   if(p[pixel[12]] < c_b)
04045                    if(p[pixel[13]] < c_b)
04046                     if(p[pixel[14]] < c_b)
04047                      {}
04048                     else
04049                      continue;
04050                    else
04051                     continue;
04052                   else
04053                    continue;
04054                 else
04055                  if(p[pixel[12]] < c_b)
04056                   if(p[pixel[13]] < c_b)
04057                    if(p[pixel[14]] < c_b)
04058                     if(p[pixel[15]] < c_b)
04059                      {}
04060                     else
04061                      continue;
04062                    else
04063                     continue;
04064                   else
04065                    continue;
04066                  else
04067                   continue;
04068                else
04069                 continue;
04070               else
04071                continue;
04072              else
04073               continue;
04074             else
04075              continue;
04076            else
04077             continue;
04078          else if(p[pixel[1]] < c_b)
04079           if(p[pixel[8]] > cb)
04080            if(p[pixel[9]] > cb)
04081             if(p[pixel[10]] > cb)
04082              if(p[pixel[11]] > cb)
04083               if(p[pixel[12]] > cb)
04084                if(p[pixel[13]] > cb)
04085                 if(p[pixel[14]] > cb)
04086                  if(p[pixel[15]] > cb)
04087                   {}
04088                  else
04089                   if(p[pixel[6]] > cb)
04090                    if(p[pixel[7]] > cb)
04091                     {}
04092                    else
04093                     continue;
04094                   else
04095                    continue;
04096                 else
04097                  if(p[pixel[5]] > cb)
04098                   if(p[pixel[6]] > cb)
04099                    if(p[pixel[7]] > cb)
04100                     {}
04101                    else
04102                     continue;
04103                   else
04104                    continue;
04105                  else
04106                   continue;
04107                else
04108                 if(p[pixel[4]] > cb)
04109                  if(p[pixel[5]] > cb)
04110                   if(p[pixel[6]] > cb)
04111                    if(p[pixel[7]] > cb)
04112                     {}
04113                    else
04114                     continue;
04115                   else
04116                    continue;
04117                  else
04118                   continue;
04119                 else
04120                  continue;
04121               else
04122                if(p[pixel[3]] > cb)
04123                 if(p[pixel[4]] > cb)
04124                  if(p[pixel[5]] > cb)
04125                   if(p[pixel[6]] > cb)
04126                    if(p[pixel[7]] > cb)
04127                     {}
04128                    else
04129                     continue;
04130                   else
04131                    continue;
04132                  else
04133                   continue;
04134                 else
04135                  continue;
04136                else
04137                 continue;
04138              else
04139               if(p[pixel[2]] > cb)
04140                if(p[pixel[3]] > cb)
04141                 if(p[pixel[4]] > cb)
04142                  if(p[pixel[5]] > cb)
04143                   if(p[pixel[6]] > cb)
04144                    if(p[pixel[7]] > cb)
04145                     {}
04146                    else
04147                     continue;
04148                   else
04149                    continue;
04150                  else
04151                   continue;
04152                 else
04153                  continue;
04154                else
04155                 continue;
04156               else
04157                continue;
04158             else
04159              continue;
04160            else
04161             continue;
04162           else if(p[pixel[8]] < c_b)
04163            if(p[pixel[7]] < c_b)
04164             if(p[pixel[9]] < c_b)
04165              if(p[pixel[6]] < c_b)
04166               if(p[pixel[5]] < c_b)
04167                if(p[pixel[4]] < c_b)
04168                 if(p[pixel[3]] < c_b)
04169                  if(p[pixel[2]] < c_b)
04170                   {}
04171                  else
04172                   if(p[pixel[10]] < c_b)
04173                    if(p[pixel[11]] < c_b)
04174                     {}
04175                    else
04176                     continue;
04177                   else
04178                    continue;
04179                 else
04180                  if(p[pixel[10]] < c_b)
04181                   if(p[pixel[11]] < c_b)
04182                    if(p[pixel[12]] < c_b)
04183                     {}
04184                    else
04185                     continue;
04186                   else
04187                    continue;
04188                  else
04189                   continue;
04190                else
04191                 if(p[pixel[10]] < c_b)
04192                  if(p[pixel[11]] < c_b)
04193                   if(p[pixel[12]] < c_b)
04194                    if(p[pixel[13]] < c_b)
04195                     {}
04196                    else
04197                     continue;
04198                   else
04199                    continue;
04200                  else
04201                   continue;
04202                 else
04203                  continue;
04204               else
04205                if(p[pixel[10]] < c_b)
04206                 if(p[pixel[11]] < c_b)
04207                  if(p[pixel[12]] < c_b)
04208                   if(p[pixel[13]] < c_b)
04209                    if(p[pixel[14]] < c_b)
04210                     {}
04211                    else
04212                     continue;
04213                   else
04214                    continue;
04215                  else
04216                   continue;
04217                 else
04218                  continue;
04219                else
04220                 continue;
04221              else
04222               if(p[pixel[10]] < c_b)
04223                if(p[pixel[11]] < c_b)
04224                 if(p[pixel[12]] < c_b)
04225                  if(p[pixel[13]] < c_b)
04226                   if(p[pixel[14]] < c_b)
04227                    if(p[pixel[15]] < c_b)
04228                     {}
04229                    else
04230                     continue;
04231                   else
04232                    continue;
04233                  else
04234                   continue;
04235                 else
04236                  continue;
04237                else
04238                 continue;
04239               else
04240                continue;
04241             else
04242              continue;
04243            else
04244             continue;
04245           else
04246            continue;
04247          else
04248           if(p[pixel[8]] > cb)
04249            if(p[pixel[9]] > cb)
04250             if(p[pixel[10]] > cb)
04251              if(p[pixel[11]] > cb)
04252               if(p[pixel[12]] > cb)
04253                if(p[pixel[13]] > cb)
04254                 if(p[pixel[14]] > cb)
04255                  if(p[pixel[15]] > cb)
04256                   {}
04257                  else
04258                   if(p[pixel[6]] > cb)
04259                    if(p[pixel[7]] > cb)
04260                     {}
04261                    else
04262                     continue;
04263                   else
04264                    continue;
04265                 else
04266                  if(p[pixel[5]] > cb)
04267                   if(p[pixel[6]] > cb)
04268                    if(p[pixel[7]] > cb)
04269                     {}
04270                    else
04271                     continue;
04272                   else
04273                    continue;
04274                  else
04275                   continue;
04276                else
04277                 if(p[pixel[4]] > cb)
04278                  if(p[pixel[5]] > cb)
04279                   if(p[pixel[6]] > cb)
04280                    if(p[pixel[7]] > cb)
04281                     {}
04282                    else
04283                     continue;
04284                   else
04285                    continue;
04286                  else
04287                   continue;
04288                 else
04289                  continue;
04290               else
04291                if(p[pixel[3]] > cb)
04292                 if(p[pixel[4]] > cb)
04293                  if(p[pixel[5]] > cb)
04294                   if(p[pixel[6]] > cb)
04295                    if(p[pixel[7]] > cb)
04296                     {}
04297                    else
04298                     continue;
04299                   else
04300                    continue;
04301                  else
04302                   continue;
04303                 else
04304                  continue;
04305                else
04306                 continue;
04307              else
04308               if(p[pixel[2]] > cb)
04309                if(p[pixel[3]] > cb)
04310                 if(p[pixel[4]] > cb)
04311                  if(p[pixel[5]] > cb)
04312                   if(p[pixel[6]] > cb)
04313                    if(p[pixel[7]] > cb)
04314                     {}
04315                    else
04316                     continue;
04317                   else
04318                    continue;
04319                  else
04320                   continue;
04321                 else
04322                  continue;
04323                else
04324                 continue;
04325               else
04326                continue;
04327             else
04328              continue;
04329            else
04330             continue;
04331           else if(p[pixel[8]] < c_b)
04332            if(p[pixel[7]] < c_b)
04333             if(p[pixel[9]] < c_b)
04334              if(p[pixel[10]] < c_b)
04335               if(p[pixel[6]] < c_b)
04336                if(p[pixel[5]] < c_b)
04337                 if(p[pixel[4]] < c_b)
04338                  if(p[pixel[3]] < c_b)
04339                   if(p[pixel[2]] < c_b)
04340                    {}
04341                   else
04342                    if(p[pixel[11]] < c_b)
04343                     {}
04344                    else
04345                     continue;
04346                  else
04347                   if(p[pixel[11]] < c_b)
04348                    if(p[pixel[12]] < c_b)
04349                     {}
04350                    else
04351                     continue;
04352                   else
04353                    continue;
04354                 else
04355                  if(p[pixel[11]] < c_b)
04356                   if(p[pixel[12]] < c_b)
04357                    if(p[pixel[13]] < c_b)
04358                     {}
04359                    else
04360                     continue;
04361                   else
04362                    continue;
04363                  else
04364                   continue;
04365                else
04366                 if(p[pixel[11]] < c_b)
04367                  if(p[pixel[12]] < c_b)
04368                   if(p[pixel[13]] < c_b)
04369                    if(p[pixel[14]] < c_b)
04370                     {}
04371                    else
04372                     continue;
04373                   else
04374                    continue;
04375                  else
04376                   continue;
04377                 else
04378                  continue;
04379               else
04380                if(p[pixel[11]] < c_b)
04381                 if(p[pixel[12]] < c_b)
04382                  if(p[pixel[13]] < c_b)
04383                   if(p[pixel[14]] < c_b)
04384                    if(p[pixel[15]] < c_b)
04385                     {}
04386                    else
04387                     continue;
04388                   else
04389                    continue;
04390                  else
04391                   continue;
04392                 else
04393                  continue;
04394                else
04395                 continue;
04396              else
04397               continue;
04398             else
04399              continue;
04400            else
04401             continue;
04402           else
04403            continue;
04404         else if(p[pixel[0]] < c_b)
04405          if(p[pixel[1]] > cb)
04406           if(p[pixel[8]] > cb)
04407            if(p[pixel[7]] > cb)
04408             if(p[pixel[9]] > cb)
04409              if(p[pixel[6]] > cb)
04410               if(p[pixel[5]] > cb)
04411                if(p[pixel[4]] > cb)
04412                 if(p[pixel[3]] > cb)
04413                  if(p[pixel[2]] > cb)
04414                   {}
04415                  else
04416                   if(p[pixel[10]] > cb)
04417                    if(p[pixel[11]] > cb)
04418                     {}
04419                    else
04420                     continue;
04421                   else
04422                    continue;
04423                 else
04424                  if(p[pixel[10]] > cb)
04425                   if(p[pixel[11]] > cb)
04426                    if(p[pixel[12]] > cb)
04427                     {}
04428                    else
04429                     continue;
04430                   else
04431                    continue;
04432                  else
04433                   continue;
04434                else
04435                 if(p[pixel[10]] > cb)
04436                  if(p[pixel[11]] > cb)
04437                   if(p[pixel[12]] > cb)
04438                    if(p[pixel[13]] > cb)
04439                     {}
04440                    else
04441                     continue;
04442                   else
04443                    continue;
04444                  else
04445                   continue;
04446                 else
04447                  continue;
04448               else
04449                if(p[pixel[10]] > cb)
04450                 if(p[pixel[11]] > cb)
04451                  if(p[pixel[12]] > cb)
04452                   if(p[pixel[13]] > cb)
04453                    if(p[pixel[14]] > cb)
04454                     {}
04455                    else
04456                     continue;
04457                   else
04458                    continue;
04459                  else
04460                   continue;
04461                 else
04462                  continue;
04463                else
04464                 continue;
04465              else
04466               if(p[pixel[10]] > cb)
04467                if(p[pixel[11]] > cb)
04468                 if(p[pixel[12]] > cb)
04469                  if(p[pixel[13]] > cb)
04470                   if(p[pixel[14]] > cb)
04471                    if(p[pixel[15]] > cb)
04472                     {}
04473                    else
04474                     continue;
04475                   else
04476                    continue;
04477                  else
04478                   continue;
04479                 else
04480                  continue;
04481                else
04482                 continue;
04483               else
04484                continue;
04485             else
04486              continue;
04487            else
04488             continue;
04489           else if(p[pixel[8]] < c_b)
04490            if(p[pixel[9]] < c_b)
04491             if(p[pixel[10]] < c_b)
04492              if(p[pixel[11]] < c_b)
04493               if(p[pixel[12]] < c_b)
04494                if(p[pixel[13]] < c_b)
04495                 if(p[pixel[14]] < c_b)
04496                  if(p[pixel[15]] < c_b)
04497                   {}
04498                  else
04499                   if(p[pixel[6]] < c_b)
04500                    if(p[pixel[7]] < c_b)
04501                     {}
04502                    else
04503                     continue;
04504                   else
04505                    continue;
04506                 else
04507                  if(p[pixel[5]] < c_b)
04508                   if(p[pixel[6]] < c_b)
04509                    if(p[pixel[7]] < c_b)
04510                     {}
04511                    else
04512                     continue;
04513                   else
04514                    continue;
04515                  else
04516                   continue;
04517                else
04518                 if(p[pixel[4]] < c_b)
04519                  if(p[pixel[5]] < c_b)
04520                   if(p[pixel[6]] < c_b)
04521                    if(p[pixel[7]] < c_b)
04522                     {}
04523                    else
04524                     continue;
04525                   else
04526                    continue;
04527                  else
04528                   continue;
04529                 else
04530                  continue;
04531               else
04532                if(p[pixel[3]] < c_b)
04533                 if(p[pixel[4]] < c_b)
04534                  if(p[pixel[5]] < c_b)
04535                   if(p[pixel[6]] < c_b)
04536                    if(p[pixel[7]] < c_b)
04537                     {}
04538                    else
04539                     continue;
04540                   else
04541                    continue;
04542                  else
04543                   continue;
04544                 else
04545                  continue;
04546                else
04547                 continue;
04548              else
04549               if(p[pixel[2]] < c_b)
04550                if(p[pixel[3]] < c_b)
04551                 if(p[pixel[4]] < c_b)
04552                  if(p[pixel[5]] < c_b)
04553                   if(p[pixel[6]] < c_b)
04554                    if(p[pixel[7]] < c_b)
04555                     {}
04556                    else
04557                     continue;
04558                   else
04559                    continue;
04560                  else
04561                   continue;
04562                 else
04563                  continue;
04564                else
04565                 continue;
04566               else
04567                continue;
04568             else
04569              continue;
04570            else
04571             continue;
04572           else
04573            continue;
04574          else if(p[pixel[1]] < c_b)
04575           if(p[pixel[2]] > cb)
04576            if(p[pixel[9]] > cb)
04577             if(p[pixel[7]] > cb)
04578              if(p[pixel[8]] > cb)
04579               if(p[pixel[10]] > cb)
04580                if(p[pixel[6]] > cb)
04581                 if(p[pixel[5]] > cb)
04582                  if(p[pixel[4]] > cb)
04583                   if(p[pixel[3]] > cb)
04584                    {}
04585                   else
04586                    if(p[pixel[11]] > cb)
04587                     if(p[pixel[12]] > cb)
04588                      {}
04589                     else
04590                      continue;
04591                    else
04592                     continue;
04593                  else
04594                   if(p[pixel[11]] > cb)
04595                    if(p[pixel[12]] > cb)
04596                     if(p[pixel[13]] > cb)
04597                      {}
04598                     else
04599                      continue;
04600                    else
04601                     continue;
04602                   else
04603                    continue;
04604                 else
04605                  if(p[pixel[11]] > cb)
04606                   if(p[pixel[12]] > cb)
04607                    if(p[pixel[13]] > cb)
04608                     if(p[pixel[14]] > cb)
04609                      {}
04610                     else
04611                      continue;
04612                    else
04613                     continue;
04614                   else
04615                    continue;
04616                  else
04617                   continue;
04618                else
04619                 if(p[pixel[11]] > cb)
04620                  if(p[pixel[12]] > cb)
04621                   if(p[pixel[13]] > cb)
04622                    if(p[pixel[14]] > cb)
04623                     if(p[pixel[15]] > cb)
04624                      {}
04625                     else
04626                      continue;
04627                    else
04628                     continue;
04629                   else
04630                    continue;
04631                  else
04632                   continue;
04633                 else
04634                  continue;
04635               else
04636                continue;
04637              else
04638               continue;
04639             else
04640              continue;
04641            else if(p[pixel[9]] < c_b)
04642             if(p[pixel[10]] < c_b)
04643              if(p[pixel[11]] < c_b)
04644               if(p[pixel[12]] < c_b)
04645                if(p[pixel[13]] < c_b)
04646                 if(p[pixel[14]] < c_b)
04647                  if(p[pixel[15]] < c_b)
04648                   {}
04649                  else
04650                   if(p[pixel[6]] < c_b)
04651                    if(p[pixel[7]] < c_b)
04652                     if(p[pixel[8]] < c_b)
04653                      {}
04654                     else
04655                      continue;
04656                    else
04657                     continue;
04658                   else
04659                    continue;
04660                 else
04661                  if(p[pixel[5]] < c_b)
04662                   if(p[pixel[6]] < c_b)
04663                    if(p[pixel[7]] < c_b)
04664                     if(p[pixel[8]] < c_b)
04665                      {}
04666                     else
04667                      continue;
04668                    else
04669                     continue;
04670                   else
04671                    continue;
04672                  else
04673                   continue;
04674                else
04675                 if(p[pixel[4]] < c_b)
04676                  if(p[pixel[5]] < c_b)
04677                   if(p[pixel[6]] < c_b)
04678                    if(p[pixel[7]] < c_b)
04679                     if(p[pixel[8]] < c_b)
04680                      {}
04681                     else
04682                      continue;
04683                    else
04684                     continue;
04685                   else
04686                    continue;
04687                  else
04688                   continue;
04689                 else
04690                  continue;
04691               else
04692                if(p[pixel[3]] < c_b)
04693                 if(p[pixel[4]] < c_b)
04694                  if(p[pixel[5]] < c_b)
04695                   if(p[pixel[6]] < c_b)
04696                    if(p[pixel[7]] < c_b)
04697                     if(p[pixel[8]] < c_b)
04698                      {}
04699                     else
04700                      continue;
04701                    else
04702                     continue;
04703                   else
04704                    continue;
04705                  else
04706                   continue;
04707                 else
04708                  continue;
04709                else
04710                 continue;
04711              else
04712               continue;
04713             else
04714              continue;
04715            else
04716             continue;
04717           else if(p[pixel[2]] < c_b)
04718            if(p[pixel[3]] > cb)
04719             if(p[pixel[10]] > cb)
04720              if(p[pixel[7]] > cb)
04721               if(p[pixel[8]] > cb)
04722                if(p[pixel[9]] > cb)
04723                 if(p[pixel[11]] > cb)
04724                  if(p[pixel[6]] > cb)
04725                   if(p[pixel[5]] > cb)
04726                    if(p[pixel[4]] > cb)
04727                     {}
04728                    else
04729                     if(p[pixel[12]] > cb)
04730                      if(p[pixel[13]] > cb)
04731                       {}
04732                      else
04733                       continue;
04734                     else
04735                      continue;
04736                   else
04737                    if(p[pixel[12]] > cb)
04738                     if(p[pixel[13]] > cb)
04739                      if(p[pixel[14]] > cb)
04740                       {}
04741                      else
04742                       continue;
04743                     else
04744                      continue;
04745                    else
04746                     continue;
04747                  else
04748                   if(p[pixel[12]] > cb)
04749                    if(p[pixel[13]] > cb)
04750                     if(p[pixel[14]] > cb)
04751                      if(p[pixel[15]] > cb)
04752                       {}
04753                      else
04754                       continue;
04755                     else
04756                      continue;
04757                    else
04758                     continue;
04759                   else
04760                    continue;
04761                 else
04762                  continue;
04763                else
04764                 continue;
04765               else
04766                continue;
04767              else
04768               continue;
04769             else if(p[pixel[10]] < c_b)
04770              if(p[pixel[11]] < c_b)
04771               if(p[pixel[12]] < c_b)
04772                if(p[pixel[13]] < c_b)
04773                 if(p[pixel[14]] < c_b)
04774                  if(p[pixel[15]] < c_b)
04775                   {}
04776                  else
04777                   if(p[pixel[6]] < c_b)
04778                    if(p[pixel[7]] < c_b)
04779                     if(p[pixel[8]] < c_b)
04780                      if(p[pixel[9]] < c_b)
04781                       {}
04782                      else
04783                       continue;
04784                     else
04785                      continue;
04786                    else
04787                     continue;
04788                   else
04789                    continue;
04790                 else
04791                  if(p[pixel[5]] < c_b)
04792                   if(p[pixel[6]] < c_b)
04793                    if(p[pixel[7]] < c_b)
04794                     if(p[pixel[8]] < c_b)
04795                      if(p[pixel[9]] < c_b)
04796                       {}
04797                      else
04798                       continue;
04799                     else
04800                      continue;
04801                    else
04802                     continue;
04803                   else
04804                    continue;
04805                  else
04806                   continue;
04807                else
04808                 if(p[pixel[4]] < c_b)
04809                  if(p[pixel[5]] < c_b)
04810                   if(p[pixel[6]] < c_b)
04811                    if(p[pixel[7]] < c_b)
04812                     if(p[pixel[8]] < c_b)
04813                      if(p[pixel[9]] < c_b)
04814                       {}
04815                      else
04816                       continue;
04817                     else
04818                      continue;
04819                    else
04820                     continue;
04821                   else
04822                    continue;
04823                  else
04824                   continue;
04825                 else
04826                  continue;
04827               else
04828                continue;
04829              else
04830               continue;
04831             else
04832              continue;
04833            else if(p[pixel[3]] < c_b)
04834             if(p[pixel[4]] > cb)
04835              if(p[pixel[13]] > cb)
04836               if(p[pixel[7]] > cb)
04837                if(p[pixel[8]] > cb)
04838                 if(p[pixel[9]] > cb)
04839                  if(p[pixel[10]] > cb)
04840                   if(p[pixel[11]] > cb)
04841                    if(p[pixel[12]] > cb)
04842                     if(p[pixel[6]] > cb)
04843                      if(p[pixel[5]] > cb)
04844                       {}
04845                      else
04846                       if(p[pixel[14]] > cb)
04847                        {}
04848                       else
04849                        continue;
04850                     else
04851                      if(p[pixel[14]] > cb)
04852                       if(p[pixel[15]] > cb)
04853                        {}
04854                       else
04855                        continue;
04856                      else
04857                       continue;
04858                    else
04859                     continue;
04860                   else
04861                    continue;
04862                  else
04863                   continue;
04864                 else
04865                  continue;
04866                else
04867                 continue;
04868               else
04869                continue;
04870              else if(p[pixel[13]] < c_b)
04871               if(p[pixel[11]] > cb)
04872                if(p[pixel[5]] > cb)
04873                 if(p[pixel[6]] > cb)
04874                  if(p[pixel[7]] > cb)
04875                   if(p[pixel[8]] > cb)
04876                    if(p[pixel[9]] > cb)
04877                     if(p[pixel[10]] > cb)
04878                      if(p[pixel[12]] > cb)
04879                       {}
04880                      else
04881                       continue;
04882                     else
04883                      continue;
04884                    else
04885                     continue;
04886                   else
04887                    continue;
04888                  else
04889                   continue;
04890                 else
04891                  continue;
04892                else
04893                 continue;
04894               else if(p[pixel[11]] < c_b)
04895                if(p[pixel[12]] < c_b)
04896                 if(p[pixel[14]] < c_b)
04897                  if(p[pixel[15]] < c_b)
04898                   {}
04899                  else
04900                   if(p[pixel[6]] < c_b)
04901                    if(p[pixel[7]] < c_b)
04902                     if(p[pixel[8]] < c_b)
04903                      if(p[pixel[9]] < c_b)
04904                       if(p[pixel[10]] < c_b)
04905                        {}
04906                       else
04907                        continue;
04908                      else
04909                       continue;
04910                     else
04911                      continue;
04912                    else
04913                     continue;
04914                   else
04915                    continue;
04916                 else
04917                  if(p[pixel[5]] < c_b)
04918                   if(p[pixel[6]] < c_b)
04919                    if(p[pixel[7]] < c_b)
04920                     if(p[pixel[8]] < c_b)
04921                      if(p[pixel[9]] < c_b)
04922                       if(p[pixel[10]] < c_b)
04923                        {}
04924                       else
04925                        continue;
04926                      else
04927                       continue;
04928                     else
04929                      continue;
04930                    else
04931                     continue;
04932                   else
04933                    continue;
04934                  else
04935                   continue;
04936                else
04937                 continue;
04938               else
04939                continue;
04940              else
04941               if(p[pixel[5]] > cb)
04942                if(p[pixel[6]] > cb)
04943                 if(p[pixel[7]] > cb)
04944                  if(p[pixel[8]] > cb)
04945                   if(p[pixel[9]] > cb)
04946                    if(p[pixel[10]] > cb)
04947                     if(p[pixel[11]] > cb)
04948                      if(p[pixel[12]] > cb)
04949                       {}
04950                      else
04951                       continue;
04952                     else
04953                      continue;
04954                    else
04955                     continue;
04956                   else
04957                    continue;
04958                  else
04959                   continue;
04960                 else
04961                  continue;
04962                else
04963                 continue;
04964               else
04965                continue;
04966             else if(p[pixel[4]] < c_b)
04967              if(p[pixel[5]] > cb)
04968               if(p[pixel[14]] > cb)
04969                if(p[pixel[7]] > cb)
04970                 if(p[pixel[8]] > cb)
04971                  if(p[pixel[9]] > cb)
04972                   if(p[pixel[10]] > cb)
04973                    if(p[pixel[11]] > cb)
04974                     if(p[pixel[12]] > cb)
04975                      if(p[pixel[13]] > cb)
04976                       if(p[pixel[6]] > cb)
04977                        {}
04978                       else
04979                        if(p[pixel[15]] > cb)
04980                         {}
04981                        else
04982                         continue;
04983                      else
04984                       continue;
04985                     else
04986                      continue;
04987                    else
04988                     continue;
04989                   else
04990                    continue;
04991                  else
04992                   continue;
04993                 else
04994                  continue;
04995                else
04996                 continue;
04997               else if(p[pixel[14]] < c_b)
04998                if(p[pixel[12]] > cb)
04999                 if(p[pixel[6]] > cb)
05000                  if(p[pixel[7]] > cb)
05001                   if(p[pixel[8]] > cb)
05002                    if(p[pixel[9]] > cb)
05003                     if(p[pixel[10]] > cb)
05004                      if(p[pixel[11]] > cb)
05005                       if(p[pixel[13]] > cb)
05006                        {}
05007                       else
05008                        continue;
05009                      else
05010                       continue;
05011                     else
05012                      continue;
05013                    else
05014                     continue;
05015                   else
05016                    continue;
05017                  else
05018                   continue;
05019                 else
05020                  continue;
05021                else if(p[pixel[12]] < c_b)
05022                 if(p[pixel[13]] < c_b)
05023                  if(p[pixel[15]] < c_b)
05024                   {}
05025                  else
05026                   if(p[pixel[6]] < c_b)
05027                    if(p[pixel[7]] < c_b)
05028                     if(p[pixel[8]] < c_b)
05029                      if(p[pixel[9]] < c_b)
05030                       if(p[pixel[10]] < c_b)
05031                        if(p[pixel[11]] < c_b)
05032                         {}
05033                        else
05034                         continue;
05035                       else
05036                        continue;
05037                      else
05038                       continue;
05039                     else
05040                      continue;
05041                    else
05042                     continue;
05043                   else
05044                    continue;
05045                 else
05046                  continue;
05047                else
05048                 continue;
05049               else
05050                if(p[pixel[6]] > cb)
05051                 if(p[pixel[7]] > cb)
05052                  if(p[pixel[8]] > cb)
05053                   if(p[pixel[9]] > cb)
05054                    if(p[pixel[10]] > cb)
05055                     if(p[pixel[11]] > cb)
05056                      if(p[pixel[12]] > cb)
05057                       if(p[pixel[13]] > cb)
05058                        {}
05059                       else
05060                        continue;
05061                      else
05062                       continue;
05063                     else
05064                      continue;
05065                    else
05066                     continue;
05067                   else
05068                    continue;
05069                  else
05070                   continue;
05071                 else
05072                  continue;
05073                else
05074                 continue;
05075              else if(p[pixel[5]] < c_b)
05076               if(p[pixel[6]] > cb)
05077                if(p[pixel[15]] < c_b)
05078                 if(p[pixel[13]] > cb)
05079                  if(p[pixel[7]] > cb)
05080                   if(p[pixel[8]] > cb)
05081                    if(p[pixel[9]] > cb)
05082                     if(p[pixel[10]] > cb)
05083                      if(p[pixel[11]] > cb)
05084                       if(p[pixel[12]] > cb)
05085                        if(p[pixel[14]] > cb)
05086                         {}
05087                        else
05088                         continue;
05089                       else
05090                        continue;
05091                      else
05092                       continue;
05093                     else
05094                      continue;
05095                    else
05096                     continue;
05097                   else
05098                    continue;
05099                  else
05100                   continue;
05101                 else if(p[pixel[13]] < c_b)
05102                  if(p[pixel[14]] < c_b)
05103                   {}
05104                  else
05105                   continue;
05106                 else
05107                  continue;
05108                else
05109                 if(p[pixel[7]] > cb)
05110                  if(p[pixel[8]] > cb)
05111                   if(p[pixel[9]] > cb)
05112                    if(p[pixel[10]] > cb)
05113                     if(p[pixel[11]] > cb)
05114                      if(p[pixel[12]] > cb)
05115                       if(p[pixel[13]] > cb)
05116                        if(p[pixel[14]] > cb)
05117                         {}
05118                        else
05119                         continue;
05120                       else
05121                        continue;
05122                      else
05123                       continue;
05124                     else
05125                      continue;
05126                    else
05127                     continue;
05128                   else
05129                    continue;
05130                  else
05131                   continue;
05132                 else
05133                  continue;
05134               else if(p[pixel[6]] < c_b)
05135                if(p[pixel[7]] > cb)
05136                 if(p[pixel[14]] > cb)
05137                  if(p[pixel[8]] > cb)
05138                   if(p[pixel[9]] > cb)
05139                    if(p[pixel[10]] > cb)
05140                     if(p[pixel[11]] > cb)
05141                      if(p[pixel[12]] > cb)
05142                       if(p[pixel[13]] > cb)
05143                        if(p[pixel[15]] > cb)
05144                         {}
05145                        else
05146                         continue;
05147                       else
05148                        continue;
05149                      else
05150                       continue;
05151                     else
05152                      continue;
05153                    else
05154                     continue;
05155                   else
05156                    continue;
05157                  else
05158                   continue;
05159                 else if(p[pixel[14]] < c_b)
05160                  if(p[pixel[15]] < c_b)
05161                   {}
05162                  else
05163                   continue;
05164                 else
05165                  continue;
05166                else if(p[pixel[7]] < c_b)
05167                 if(p[pixel[8]] < c_b)
05168                  {}
05169                 else
05170                  if(p[pixel[15]] < c_b)
05171                   {}
05172                  else
05173                   continue;
05174                else
05175                 if(p[pixel[14]] < c_b)
05176                  if(p[pixel[15]] < c_b)
05177                   {}
05178                  else
05179                   continue;
05180                 else
05181                  continue;
05182               else
05183                if(p[pixel[13]] > cb)
05184                 if(p[pixel[7]] > cb)
05185                  if(p[pixel[8]] > cb)
05186                   if(p[pixel[9]] > cb)
05187                    if(p[pixel[10]] > cb)
05188                     if(p[pixel[11]] > cb)
05189                      if(p[pixel[12]] > cb)
05190                       if(p[pixel[14]] > cb)
05191                        if(p[pixel[15]] > cb)
05192                         {}
05193                        else
05194                         continue;
05195                       else
05196                        continue;
05197                      else
05198                       continue;
05199                     else
05200                      continue;
05201                    else
05202                     continue;
05203                   else
05204                    continue;
05205                  else
05206                   continue;
05207                 else
05208                  continue;
05209                else if(p[pixel[13]] < c_b)
05210                 if(p[pixel[14]] < c_b)
05211                  if(p[pixel[15]] < c_b)
05212                   {}
05213                  else
05214                   continue;
05215                 else
05216                  continue;
05217                else
05218                 continue;
05219              else
05220               if(p[pixel[12]] > cb)
05221                if(p[pixel[7]] > cb)
05222                 if(p[pixel[8]] > cb)
05223                  if(p[pixel[9]] > cb)
05224                   if(p[pixel[10]] > cb)
05225                    if(p[pixel[11]] > cb)
05226                     if(p[pixel[13]] > cb)
05227                      if(p[pixel[14]] > cb)
05228                       if(p[pixel[6]] > cb)
05229                        {}
05230                       else
05231                        if(p[pixel[15]] > cb)
05232                         {}
05233                        else
05234                         continue;
05235                      else
05236                       continue;
05237                     else
05238                      continue;
05239                    else
05240                     continue;
05241                   else
05242                    continue;
05243                  else
05244                   continue;
05245                 else
05246                  continue;
05247                else
05248                 continue;
05249               else if(p[pixel[12]] < c_b)
05250                if(p[pixel[13]] < c_b)
05251                 if(p[pixel[14]] < c_b)
05252                  if(p[pixel[15]] < c_b)
05253                   {}
05254                  else
05255                   if(p[pixel[6]] < c_b)
05256                    if(p[pixel[7]] < c_b)
05257                     if(p[pixel[8]] < c_b)
05258                      if(p[pixel[9]] < c_b)
05259                       if(p[pixel[10]] < c_b)
05260                        if(p[pixel[11]] < c_b)
05261                         {}
05262                        else
05263                         continue;
05264                       else
05265                        continue;
05266                      else
05267                       continue;
05268                     else
05269                      continue;
05270                    else
05271                     continue;
05272                   else
05273                    continue;
05274                 else
05275                  continue;
05276                else
05277                 continue;
05278               else
05279                continue;
05280             else
05281              if(p[pixel[11]] > cb)
05282               if(p[pixel[7]] > cb)
05283                if(p[pixel[8]] > cb)
05284                 if(p[pixel[9]] > cb)
05285                  if(p[pixel[10]] > cb)
05286                   if(p[pixel[12]] > cb)
05287                    if(p[pixel[13]] > cb)
05288                     if(p[pixel[6]] > cb)
05289                      if(p[pixel[5]] > cb)
05290                       {}
05291                      else
05292                       if(p[pixel[14]] > cb)
05293                        {}
05294                       else
05295                        continue;
05296                     else
05297                      if(p[pixel[14]] > cb)
05298                       if(p[pixel[15]] > cb)
05299                        {}
05300                       else
05301                        continue;
05302                      else
05303                       continue;
05304                    else
05305                     continue;
05306                   else
05307                    continue;
05308                  else
05309                   continue;
05310                 else
05311                  continue;
05312                else
05313                 continue;
05314               else
05315                continue;
05316              else if(p[pixel[11]] < c_b)
05317               if(p[pixel[12]] < c_b)
05318                if(p[pixel[13]] < c_b)
05319                 if(p[pixel[14]] < c_b)
05320                  if(p[pixel[15]] < c_b)
05321                   {}
05322                  else
05323                   if(p[pixel[6]] < c_b)
05324                    if(p[pixel[7]] < c_b)
05325                     if(p[pixel[8]] < c_b)
05326                      if(p[pixel[9]] < c_b)
05327                       if(p[pixel[10]] < c_b)
05328                        {}
05329                       else
05330                        continue;
05331                      else
05332                       continue;
05333                     else
05334                      continue;
05335                    else
05336                     continue;
05337                   else
05338                    continue;
05339                 else
05340                  if(p[pixel[5]] < c_b)
05341                   if(p[pixel[6]] < c_b)
05342                    if(p[pixel[7]] < c_b)
05343                     if(p[pixel[8]] < c_b)
05344                      if(p[pixel[9]] < c_b)
05345                       if(p[pixel[10]] < c_b)
05346                        {}
05347                       else
05348                        continue;
05349                      else
05350                       continue;
05351                     else
05352                      continue;
05353                    else
05354                     continue;
05355                   else
05356                    continue;
05357                  else
05358                   continue;
05359                else
05360                 continue;
05361               else
05362                continue;
05363              else
05364               continue;
05365            else
05366             if(p[pixel[10]] > cb)
05367              if(p[pixel[7]] > cb)
05368               if(p[pixel[8]] > cb)
05369                if(p[pixel[9]] > cb)
05370                 if(p[pixel[11]] > cb)
05371                  if(p[pixel[12]] > cb)
05372                   if(p[pixel[6]] > cb)
05373                    if(p[pixel[5]] > cb)
05374                     if(p[pixel[4]] > cb)
05375                      {}
05376                     else
05377                      if(p[pixel[13]] > cb)
05378                       {}
05379                      else
05380                       continue;
05381                    else
05382                     if(p[pixel[13]] > cb)
05383                      if(p[pixel[14]] > cb)
05384                       {}
05385                      else
05386                       continue;
05387                     else
05388                      continue;
05389                   else
05390                    if(p[pixel[13]] > cb)
05391                     if(p[pixel[14]] > cb)
05392                      if(p[pixel[15]] > cb)
05393                       {}
05394                      else
05395                       continue;
05396                     else
05397                      continue;
05398                    else
05399                     continue;
05400                  else
05401                   continue;
05402                 else
05403                  continue;
05404                else
05405                 continue;
05406               else
05407                continue;
05408              else
05409               continue;
05410             else if(p[pixel[10]] < c_b)
05411              if(p[pixel[11]] < c_b)
05412               if(p[pixel[12]] < c_b)
05413                if(p[pixel[13]] < c_b)
05414                 if(p[pixel[14]] < c_b)
05415                  if(p[pixel[15]] < c_b)
05416                   {}
05417                  else
05418                   if(p[pixel[6]] < c_b)
05419                    if(p[pixel[7]] < c_b)
05420                     if(p[pixel[8]] < c_b)
05421                      if(p[pixel[9]] < c_b)
05422                       {}
05423                      else
05424                       continue;
05425                     else
05426                      continue;
05427                    else
05428                     continue;
05429                   else
05430                    continue;
05431                 else
05432                  if(p[pixel[5]] < c_b)
05433                   if(p[pixel[6]] < c_b)
05434                    if(p[pixel[7]] < c_b)
05435                     if(p[pixel[8]] < c_b)
05436                      if(p[pixel[9]] < c_b)
05437                       {}
05438                      else
05439                       continue;
05440                     else
05441                      continue;
05442                    else
05443                     continue;
05444                   else
05445                    continue;
05446                  else
05447                   continue;
05448                else
05449                 if(p[pixel[4]] < c_b)
05450                  if(p[pixel[5]] < c_b)
05451                   if(p[pixel[6]] < c_b)
05452                    if(p[pixel[7]] < c_b)
05453                     if(p[pixel[8]] < c_b)
05454                      if(p[pixel[9]] < c_b)
05455                       {}
05456                      else
05457                       continue;
05458                     else
05459                      continue;
05460                    else
05461                     continue;
05462                   else
05463                    continue;
05464                  else
05465                   continue;
05466                 else
05467                  continue;
05468               else
05469                continue;
05470              else
05471               continue;
05472             else
05473              continue;
05474           else
05475            if(p[pixel[9]] > cb)
05476             if(p[pixel[7]] > cb)
05477              if(p[pixel[8]] > cb)
05478               if(p[pixel[10]] > cb)
05479                if(p[pixel[11]] > cb)
05480                 if(p[pixel[6]] > cb)
05481                  if(p[pixel[5]] > cb)
05482                   if(p[pixel[4]] > cb)
05483                    if(p[pixel[3]] > cb)
05484                     {}
05485                    else
05486                     if(p[pixel[12]] > cb)
05487                      {}
05488                     else
05489                      continue;
05490                   else
05491                    if(p[pixel[12]] > cb)
05492                     if(p[pixel[13]] > cb)
05493                      {}
05494                     else
05495                      continue;
05496                    else
05497                     continue;
05498                  else
05499                   if(p[pixel[12]] > cb)
05500                    if(p[pixel[13]] > cb)
05501                     if(p[pixel[14]] > cb)
05502                      {}
05503                     else
05504                      continue;
05505                    else
05506                     continue;
05507                   else
05508                    continue;
05509                 else
05510                  if(p[pixel[12]] > cb)
05511                   if(p[pixel[13]] > cb)
05512                    if(p[pixel[14]] > cb)
05513                     if(p[pixel[15]] > cb)
05514                      {}
05515                     else
05516                      continue;
05517                    else
05518                     continue;
05519                   else
05520                    continue;
05521                  else
05522                   continue;
05523                else
05524                 continue;
05525               else
05526                continue;
05527              else
05528               continue;
05529             else
05530              continue;
05531            else if(p[pixel[9]] < c_b)
05532             if(p[pixel[10]] < c_b)
05533              if(p[pixel[11]] < c_b)
05534               if(p[pixel[12]] < c_b)
05535                if(p[pixel[13]] < c_b)
05536                 if(p[pixel[14]] < c_b)
05537                  if(p[pixel[15]] < c_b)
05538                   {}
05539                  else
05540                   if(p[pixel[6]] < c_b)
05541                    if(p[pixel[7]] < c_b)
05542                     if(p[pixel[8]] < c_b)
05543                      {}
05544                     else
05545                      continue;
05546                    else
05547                     continue;
05548                   else
05549                    continue;
05550                 else
05551                  if(p[pixel[5]] < c_b)
05552                   if(p[pixel[6]] < c_b)
05553                    if(p[pixel[7]] < c_b)
05554                     if(p[pixel[8]] < c_b)
05555                      {}
05556                     else
05557                      continue;
05558                    else
05559                     continue;
05560                   else
05561                    continue;
05562                  else
05563                   continue;
05564                else
05565                 if(p[pixel[4]] < c_b)
05566                  if(p[pixel[5]] < c_b)
05567                   if(p[pixel[6]] < c_b)
05568                    if(p[pixel[7]] < c_b)
05569                     if(p[pixel[8]] < c_b)
05570                      {}
05571                     else
05572                      continue;
05573                    else
05574                     continue;
05575                   else
05576                    continue;
05577                  else
05578                   continue;
05579                 else
05580                  continue;
05581               else
05582                if(p[pixel[3]] < c_b)
05583                 if(p[pixel[4]] < c_b)
05584                  if(p[pixel[5]] < c_b)
05585                   if(p[pixel[6]] < c_b)
05586                    if(p[pixel[7]] < c_b)
05587                     if(p[pixel[8]] < c_b)
05588                      {}
05589                     else
05590                      continue;
05591                    else
05592                     continue;
05593                   else
05594                    continue;
05595                  else
05596                   continue;
05597                 else
05598                  continue;
05599                else
05600                 continue;
05601              else
05602               continue;
05603             else
05604              continue;
05605            else
05606             continue;
05607          else
05608           if(p[pixel[8]] > cb)
05609            if(p[pixel[7]] > cb)
05610             if(p[pixel[9]] > cb)
05611              if(p[pixel[10]] > cb)
05612               if(p[pixel[6]] > cb)
05613                if(p[pixel[5]] > cb)
05614                 if(p[pixel[4]] > cb)
05615                  if(p[pixel[3]] > cb)
05616                   if(p[pixel[2]] > cb)
05617                    {}
05618                   else
05619                    if(p[pixel[11]] > cb)
05620                     {}
05621                    else
05622                     continue;
05623                  else
05624                   if(p[pixel[11]] > cb)
05625                    if(p[pixel[12]] > cb)
05626                     {}
05627                    else
05628                     continue;
05629                   else
05630                    continue;
05631                 else
05632                  if(p[pixel[11]] > cb)
05633                   if(p[pixel[12]] > cb)
05634                    if(p[pixel[13]] > cb)
05635                     {}
05636                    else
05637                     continue;
05638                   else
05639                    continue;
05640                  else
05641                   continue;
05642                else
05643                 if(p[pixel[11]] > cb)
05644                  if(p[pixel[12]] > cb)
05645                   if(p[pixel[13]] > cb)
05646                    if(p[pixel[14]] > cb)
05647                     {}
05648                    else
05649                     continue;
05650                   else
05651                    continue;
05652                  else
05653                   continue;
05654                 else
05655                  continue;
05656               else
05657                if(p[pixel[11]] > cb)
05658                 if(p[pixel[12]] > cb)
05659                  if(p[pixel[13]] > cb)
05660                   if(p[pixel[14]] > cb)
05661                    if(p[pixel[15]] > cb)
05662                     {}
05663                    else
05664                     continue;
05665                   else
05666                    continue;
05667                  else
05668                   continue;
05669                 else
05670                  continue;
05671                else
05672                 continue;
05673              else
05674               continue;
05675             else
05676              continue;
05677            else
05678             continue;
05679           else if(p[pixel[8]] < c_b)
05680            if(p[pixel[9]] < c_b)
05681             if(p[pixel[10]] < c_b)
05682              if(p[pixel[11]] < c_b)
05683               if(p[pixel[12]] < c_b)
05684                if(p[pixel[13]] < c_b)
05685                 if(p[pixel[14]] < c_b)
05686                  if(p[pixel[15]] < c_b)
05687                   {}
05688                  else
05689                   if(p[pixel[6]] < c_b)
05690                    if(p[pixel[7]] < c_b)
05691                     {}
05692                    else
05693                     continue;
05694                   else
05695                    continue;
05696                 else
05697                  if(p[pixel[5]] < c_b)
05698                   if(p[pixel[6]] < c_b)
05699                    if(p[pixel[7]] < c_b)
05700                     {}
05701                    else
05702                     continue;
05703                   else
05704                    continue;
05705                  else
05706                   continue;
05707                else
05708                 if(p[pixel[4]] < c_b)
05709                  if(p[pixel[5]] < c_b)
05710                   if(p[pixel[6]] < c_b)
05711                    if(p[pixel[7]] < c_b)
05712                     {}
05713                    else
05714                     continue;
05715                   else
05716                    continue;
05717                  else
05718                   continue;
05719                 else
05720                  continue;
05721               else
05722                if(p[pixel[3]] < c_b)
05723                 if(p[pixel[4]] < c_b)
05724                  if(p[pixel[5]] < c_b)
05725                   if(p[pixel[6]] < c_b)
05726                    if(p[pixel[7]] < c_b)
05727                     {}
05728                    else
05729                     continue;
05730                   else
05731                    continue;
05732                  else
05733                   continue;
05734                 else
05735                  continue;
05736                else
05737                 continue;
05738              else
05739               if(p[pixel[2]] < c_b)
05740                if(p[pixel[3]] < c_b)
05741                 if(p[pixel[4]] < c_b)
05742                  if(p[pixel[5]] < c_b)
05743                   if(p[pixel[6]] < c_b)
05744                    if(p[pixel[7]] < c_b)
05745                     {}
05746                    else
05747                     continue;
05748                   else
05749                    continue;
05750                  else
05751                   continue;
05752                 else
05753                  continue;
05754                else
05755                 continue;
05756               else
05757                continue;
05758             else
05759              continue;
05760            else
05761             continue;
05762           else
05763            continue;
05764         else
05765          if(p[pixel[7]] > cb)
05766           if(p[pixel[8]] > cb)
05767            if(p[pixel[9]] > cb)
05768             if(p[pixel[6]] > cb)
05769              if(p[pixel[5]] > cb)
05770               if(p[pixel[4]] > cb)
05771                if(p[pixel[3]] > cb)
05772                 if(p[pixel[2]] > cb)
05773                  if(p[pixel[1]] > cb)
05774                   {}
05775                  else
05776                   if(p[pixel[10]] > cb)
05777                    {}
05778                   else
05779                    continue;
05780                 else
05781                  if(p[pixel[10]] > cb)
05782                   if(p[pixel[11]] > cb)
05783                    {}
05784                   else
05785                    continue;
05786                  else
05787                   continue;
05788                else
05789                 if(p[pixel[10]] > cb)
05790                  if(p[pixel[11]] > cb)
05791                   if(p[pixel[12]] > cb)
05792                    {}
05793                   else
05794                    continue;
05795                  else
05796                   continue;
05797                 else
05798                  continue;
05799               else
05800                if(p[pixel[10]] > cb)
05801                 if(p[pixel[11]] > cb)
05802                  if(p[pixel[12]] > cb)
05803                   if(p[pixel[13]] > cb)
05804                    {}
05805                   else
05806                    continue;
05807                  else
05808                   continue;
05809                 else
05810                  continue;
05811                else
05812                 continue;
05813              else
05814               if(p[pixel[10]] > cb)
05815                if(p[pixel[11]] > cb)
05816                 if(p[pixel[12]] > cb)
05817                  if(p[pixel[13]] > cb)
05818                   if(p[pixel[14]] > cb)
05819                    {}
05820                   else
05821                    continue;
05822                  else
05823                   continue;
05824                 else
05825                  continue;
05826                else
05827                 continue;
05828               else
05829                continue;
05830             else
05831              if(p[pixel[10]] > cb)
05832               if(p[pixel[11]] > cb)
05833                if(p[pixel[12]] > cb)
05834                 if(p[pixel[13]] > cb)
05835                  if(p[pixel[14]] > cb)
05836                   if(p[pixel[15]] > cb)
05837                    {}
05838                   else
05839                    continue;
05840                  else
05841                   continue;
05842                 else
05843                  continue;
05844                else
05845                 continue;
05846               else
05847                continue;
05848              else
05849               continue;
05850            else
05851             continue;
05852           else
05853            continue;
05854          else if(p[pixel[7]] < c_b)
05855           if(p[pixel[8]] < c_b)
05856            if(p[pixel[9]] < c_b)
05857             if(p[pixel[6]] < c_b)
05858              if(p[pixel[5]] < c_b)
05859               if(p[pixel[4]] < c_b)
05860                if(p[pixel[3]] < c_b)
05861                 if(p[pixel[2]] < c_b)
05862                  if(p[pixel[1]] < c_b)
05863                   {}
05864                  else
05865                   if(p[pixel[10]] < c_b)
05866                    {}
05867                   else
05868                    continue;
05869                 else
05870                  if(p[pixel[10]] < c_b)
05871                   if(p[pixel[11]] < c_b)
05872                    {}
05873                   else
05874                    continue;
05875                  else
05876                   continue;
05877                else
05878                 if(p[pixel[10]] < c_b)
05879                  if(p[pixel[11]] < c_b)
05880                   if(p[pixel[12]] < c_b)
05881                    {}
05882                   else
05883                    continue;
05884                  else
05885                   continue;
05886                 else
05887                  continue;
05888               else
05889                if(p[pixel[10]] < c_b)
05890                 if(p[pixel[11]] < c_b)
05891                  if(p[pixel[12]] < c_b)
05892                   if(p[pixel[13]] < c_b)
05893                    {}
05894                   else
05895                    continue;
05896                  else
05897                   continue;
05898                 else
05899                  continue;
05900                else
05901                 continue;
05902              else
05903               if(p[pixel[10]] < c_b)
05904                if(p[pixel[11]] < c_b)
05905                 if(p[pixel[12]] < c_b)
05906                  if(p[pixel[13]] < c_b)
05907                   if(p[pixel[14]] < c_b)
05908                    {}
05909                   else
05910                    continue;
05911                  else
05912                   continue;
05913                 else
05914                  continue;
05915                else
05916                 continue;
05917               else
05918                continue;
05919             else
05920              if(p[pixel[10]] < c_b)
05921               if(p[pixel[11]] < c_b)
05922                if(p[pixel[12]] < c_b)
05923                 if(p[pixel[13]] < c_b)
05924                  if(p[pixel[14]] < c_b)
05925                   if(p[pixel[15]] < c_b)
05926                    {}
05927                   else
05928                    continue;
05929                  else
05930                   continue;
05931                 else
05932                  continue;
05933                else
05934                 continue;
05935               else
05936                continue;
05937              else
05938               continue;
05939            else
05940             continue;
05941           else
05942            continue;
05943          else
05944           continue;
05945       ret_corners.push_back(Point(x,y));
05946         }
05947 }
05948 
05949 /* This defines non-strict maxima */
05950 #define Compare(X, Y) ((X)>=(Y))
05951 
05952 /* This is a fast, integer only, sparse nonmaximal suppression. */
05953 /* probably only useful for FAST corner detection */
05954 static void fastNonmaxSuppression(const vector<Point>& corners,
05955                                   const vector<int>& scores,
05956                                   vector<KeyPoint>& ret_nonmax)
05957 {
05958     int i, j, num_corners = (int)corners.size(); 
05959 
05960     // Point above points (roughly) to the pixel above the one of interest, if there is a feature there.
05961     int point_above = 0;
05962     int point_below = 0;
05963 
05964     ret_nonmax.clear();
05965     if(num_corners < 1)
05966         return;
05967 
05968     /* Find where each row begins
05969        (the corners are output in raster scan order). A beginning of -1 signifies
05970        that there are no corners on that row. */
05971     int last_row = corners[num_corners-1].y;
05972     vector<int> row_start(last_row+1);
05973 
05974     for(i=0; i < last_row+1; i++)
05975         row_start[i] = -1;
05976 
05977     int prev_row = -1;
05978     for(i=0; i< num_corners; i++)
05979         if(corners[i].y != prev_row)
05980         {
05981             row_start[corners[i].y] = i;
05982             prev_row = corners[i].y;
05983         }
05984 
05985     ret_nonmax.reserve(num_corners);
05986     for(i = 0; i < num_corners; i++)
05987     {
05988         int score = scores[i];
05989         Point pos = corners[i];
05990     
05991         // Check left
05992         if(i > 0 && corners[i-1].x == pos.x-1 && corners[i-1].y == pos.y && Compare(scores[i-1], score))
05993             continue;
05994     
05995         // Check right
05996         if(i < num_corners-1 && corners[i+1].x == pos.x+1 && corners[i+1].y == pos.y && Compare(scores[i+1], score))
05997             continue;
05998 
05999         bool suppressed = false;
06000         // Check above (if there is a valid row above)
06001         if(pos.y != 0 && row_start[pos.y - 1] != -1) 
06002         {
06003             // Make sure that current point_above is one row above.
06004             if(corners[point_above].y < pos.y - 1)
06005                 point_above = row_start[pos.y-1];
06006     
06007             // Make point_above point to the first of the pixels above the current point, if it exists.
06008             for(; corners[point_above].y < pos.y && corners[point_above].x < pos.x - 1; point_above++)
06009                 ;
06010     
06011             for(j=point_above; corners[j].y < pos.y && corners[j].x <= pos.x + 1; j++)
06012             {
06013                 int x = corners[j].x;
06014                 if( (x == pos.x - 1 || x ==pos.x || x == pos.x+1) && Compare(scores[j], score))
06015                 {
06016                     suppressed = true;
06017                     break;
06018                 }
06019             }
06020             if( suppressed )
06021                 continue;
06022         }
06023     
06024         // Check below (if there is anything below)
06025         if(pos.y != last_row && row_start[pos.y + 1] != -1 && point_below < num_corners) // Nothing below
06026         {
06027             if(corners[point_below].y < pos.y + 1)
06028                 point_below = row_start[pos.y+1];
06029     
06030             // Make point below point to one of the pixels belowthe current point, if it exists.
06031             for(; point_below < num_corners && corners[point_below].y == pos.y+1
06032                 && corners[point_below].x < pos.x - 1; point_below++)
06033                 ;
06034 
06035             for(j=point_below; j < num_corners && corners[j].y == pos.y+1 && corners[j].x <= pos.x + 1; j++)
06036             {
06037                 int x = corners[j].x;
06038                 if( (x == pos.x - 1 || x ==pos.x || x == pos.x+1) && Compare(scores[j],score))
06039                 {
06040                     suppressed = true;
06041                     break;
06042                 }
06043             }
06044             if( suppressed )
06045                 continue;
06046         }
06047 
06048         ret_nonmax.push_back(KeyPoint(corners[i].x, corners[i].y, (float)score));
06049     }
06050 }
06051 
06052 void FAST(const uint8_t* image, int width, int height, int row_stride,
06053         vector<KeyPoint>* keypoints, int threshold, bool nonmax_suppression )
06054 {
06055     vector<Point> corners;
06056     fast9Detect(image, width, height, row_stride, corners, threshold);
06057     
06058     if(nonmax_suppression)
06059     {
06060         vector<int> scores;
06061         fast9ComputeScores(image, width, height, row_stride, corners, scores, threshold);
06062         fastNonmaxSuppression(corners, scores, *keypoints);
06063     }
06064     else
06065     {
06066         size_t i, n = corners.size();
06067         keypoints->resize(n);
06068         for( i = 0; i < n; i++ )
06069             (*keypoints)[i] = KeyPoint(corners[i].x, corners[i].y, 0);
06070     }
06071 }
06072 
06073 }


libfovis
Author(s): Albert Huang, Maurice Fallon
autogenerated on Thu Jun 6 2019 20:16:12