$ od -c -N 50000 [Indigo]<Beads>beads23.dm!1
0000000  377  \0  \0   b   e   a   d   s   D   e   f   s   .   m   e   s
0000020    a  \0 376 001  \0 024 310   -   -       b   e   a   d   s   D
0000040    e   f   s   .   m   e   s   a  \r  \r   D   I   R   E   C   T
0000060    O   R   Y           I   n   l   i   n   e   D   e   f   s   :
0000100    F   R   O   M   "   I   n   l   i   n   e   D   e   f   s   "
0000120    ;  \r   B   e   a   d   s   D   e   f   s   :   D   E   F   I
0000140    N   I   T   I   O   N   S       I   M   P   O   R   T   S    
0000160    I   n   l   i   n   e   D   e   f   s       =   B   E   G   I
0000200    N  \r  \r   P   t   r   T   o   C   a   r   d   A   r   r   a
0000220    y   :   T   Y   P   E   =   P   O   I   N   T   E   R       T
0000240    O       A   R   R   A   Y   [   0   .   .   2   ]       O   F
0000260        C   A   R   D   I   N   A   L   ;  \r  \r   w   h   o   l
0000300    e   W   i   r   e   :   I   N   T   E   G   E   R   =   1   0
0000320    0   0   0   ;  \r   C   R   :   C   H   A   R   A   C   T   E
0000340    R   =   '  \r   ;  \r   C   o   l   o   r   :   T   Y   P   E
0000360    =   {   n   o   n   e   ,   r   ,   b   ,   g   ,   y   ,   o
0000400    }   ;  \r   D   i   r   e   c   t   i   o   n   :   T   Y   P
0000420    E   =   {   h   ,   v   } 376 001  \0 250   i   ;  \r   B   e
0000440    a   d   T   y   p   e   :   T   Y   P   E   =   {   n   o   n
0000460    e   ,   a   l   l   ,   r   g   ,   r   b   ,   b   g   ,   t
0000500    t   ,   d   d   ,   t   t   V   ,   d   d   V   ,   e   n   d
0000520    G   ,   e   n   d   R   ,   e   n   d   B   ,   s   t   u   b
0000540    ,  \r                                                        
0000560        j   c   t   n   G   ,   j   c   t   n   R   ,   j   c   t
0000600    n   B   ,   b   f   ,   w   i   r   e   G   ,   w   i   r   e
0000620    R   ,   w   i   r   e   B   ,   w   i   r   e   O   ,   e   n
0000640    d   O   }   ;  \r  \r   S   t   i   c   k   :   T   Y   P   E
0000660    =   R   E   C   O   R   D   [   d   i   r   :   D   i   r   e
0000700    c   t   i   o   n   ,   c   o   l   o   r   :   C   o   l   o
0000720    r   ,   x   ,   y   ,   e   n   d   :   I   N   T   E   G   E
0000740    R   ]   ;  \r   m   a   x   S   t   i   c   k   :   C   A   R
0000760    D   I   N   A   L   =   3   0   0   ;  \r   S   t   i   c   k
0001000    N   o   :   T   Y   P   E   =   [   0   .   .   m   a   x   S
0001020    t   i   c   k   ]   ;  \r   S   t   i   c   k 376 001  \0 236
0001040  227   S   t   u   f   f   :   T   Y   P   E   =   A   R   R   A
0001060    Y       S   t   i   c   k   N   o       O   F       S   t   i
0001100    c   k   ;  \r  \r   C   o   n   t   a   c   t   :   T   Y   P
0001120    E   =   R   E   C   O   R   D   [   x   ,   y   :   C   A   R
0001140    D   I   N   A   L   ,   t   :   B   e   a   d   T   y   p   e
0001160    ]   ;  \r   m   a   x   C   o   n   t   a   c   t   :   C   A
0001200    R   D   I   N   A   L   =   2   0   0   ;  \r   C   o   n   t
0001220    a   c   t   N   o   :   T   Y   P   E   =   [   0   .   .   m
0001240    a   x   C   o   n   t   a   c   t   ]   ;  \r   C   o   n   S
0001260    t   u   f   f   :   T   Y   P   E   =   A   R   R   A   Y    
0001300    C   o   n   t   a   c   t   N   o       O   F       C   o   n
0001320    t   a   c   t   ;  \r  \r   B   e   a   d   S   t   u   f   f
0001340    :   T   Y   P   E   =   A   R   R   A   Y       B   e   a   d
0001360    N   o       O   F       B   e   a   d   ;  \r   B   e   a   d
0001400    P   t   r   :   T   Y   P   E   =   L   O   N   G       P   O
0001420    I   N   T   E   R       T   O       B   e   a   d   ;  \r   B
0001440    e 376 001  \0   1   G   a   d   :   T   Y   P   E   =   R   E
0001460    C   O   R   D   [  \r           x   ,   y   :   I   N   T   E
0001500    G   E   R   ,  \r           h   ,   w   :   I   N   T   E   G
0001520    E   R   ,  \r           b   e   a   d   U   ,   b   e   a   d
0001540    D   ,   b   e   a   d   L   ,   b   e   a   d   R   ,   b   e
0001560    a   d   T   :   C   A   R   D   I   N   A   L   ,  \r        
0001600    t   :   B   e   a   d   T   y   p   e   ,  \r           e   x
0001620    t   e   r   n   a   l   :   C   A   R   D   I   N   A   L   ,
0001640   \r           c   i   r   c   u   i   t   :   I   N   T   E   G
0001660    E   R   ,  \r           w   i   r   e   :   B   O   O   L   E
0001700    A   N   ,  \r           d   u   m   B   1   :   C   A   R   D
0001720    I   N   A   L   ,  \r           n   o   o   d   l   e   :   C
0001740    A   R   D   I   N   A   L   ,  \r           n   e   x   t   B
0001760    e   l   o   w   :   C   A   R   D   I   N   A   L   ]   ;  \r
0002000    W   o   r   k   S   t   u   f   f   :   T   Y   P   E   =   A
0002020    R   R   A   Y       B   e   a   d   N   o       O   F       W
0002040    o   r   k   ;  \r   W 376 001  \0   s   y   o   r   k   P   t
0002060    r   :   T   Y   P   E   =   L   O   N   G       P   O   I   N
0002100    T   E   R       T   O       W   o   r   k   ;  \r   W   o   r
0002120    k   :   T   Y   P   E   =   R   E   C   O   R   D   [  \r    
0002140        s   o   r   t   :   C   A   R   D   I   N   A   L   ,  \r
0002160            n   e   w   Y   :   I   N   T   E   G   E   R   ,  \r
0002200            s   t   i   f   f   ,   p   r   o   c   e   s   s   e
0002220    d   :   B   O   O   L   E   A   N   ,  \r           c   h   a
0002240    i   n   :   C   A   R   D   I   N   A   L   ,  \r           b
0002260    a   c   k   S   o   r   t   :   C   A   R   D   I   N   A   L
0002300    ,  \r           p   r   o   c   e   s   s   N   o   :   C   A
0002320    R   D   I   N   A   L   ,  \r           o   l   d   Y   :   I
0002340    N   T   E   G   E   R   ,  \r           s   e   e   n   :   C
0002360    A   R   D   I   N   A   L   ]   ;  \r   B   e   a   d   N   o
0002400    :   T   Y   P   E   =   [   0   .   .   2   ]   ;  \r   t   o
0002420    p   B   e   a   d   :   C   A   R   D   I   N   A   L   ;  \r
0002440    n   o   B   e   a   d   :   C   A   R   D 376 001  \0   /   w
0002460    I   N   A   L   ;  \r   b   e   a   d   :   B   e   a   d   P
0002500    t   r   ;  \r   w   o   r   k   :   W   o   r   k   P   t   r
0002520    ;  \r  \r   d   e   s   P   :   P   O   I   N   T   E   R    
0002540    T   O       d   e   s   S   t   u   f   f   ;  \r   d   e   s
0002560    S   t   u   f   f   :   T   Y   P   E   =   A   R   R   A   Y
0002600        B   e   a   d   T   y   p   e       O   F       D   e   s
0002620    R   e   c   ;  \r   D   e   s   R   e   c   :   T   Y   P   E
0002640    =   R   E   C   O   R   D   [  \r           l   e   v   e   l
0002660    ,   s   h   o   r   t   ,   h   :   I   N   T   E   G   E   R
0002700    ,  \r           p   r   i   n   t   :   C   H   A   R   A   C
0002720    T   E   R   ,  \r           t   o   C   o   d   e   :   I   N
0002740    T   E   G   E   R   ,  \r           t   o   W   i   r   e   ,
0002760    t   o   W   i   r   e   R   ,   w   ,   w   s   R   ,   w   s
0003000    U   ,   s   t   i   c   k   O   u   t   T   o   R   i   g   h
0003020    t   ,   l   e   s   s   L   e   v   e   l   ,   b   i   t   P
0003040    e   r   L   e   v   e   l   :   I   N   T   E   G   E   R   _
0003060  376 001  \0 342 237   N   U   L   L   ,  \r           b   i   t
0003100    P   e   r   L   e   v   e   l   V   :   I   N   T   E   G   E
0003120    R   _   N   U   L   L   ,  \r           r   o   t   a   t   e
0003140    ,   r   w   c   ,   u   w   c   :   B   e   a   d   T   y   p
0003160    e   _   N   U   L   L   ,  \r           c   o   l   o   r   :
0003200    C   o   l   o   r   _   N   U   L   L   ,  \r           t   r
0003220    u   e   I   f   T   r   a   n   s   ,   b   l   u   e   O   n
0003240    l   y   ,   r   g   O   n   l   y   ,   r   g   :   B   O   O
0003260    L   E   A   N   _   N   U   L   L   ,   u   g   :   B   O   O
0003300    L   E   A   N   _   N   U   L   L   ]   ;  \r   D   e   s   A
0003320    r   r   a   y   :   T   Y   P   E   =   A   R   R   A   Y    
0003340    [   0   .   .   7   ]       O   F       A   R   R   A   Y    
0003360    [   0   .   .   7   ]       O   F       I   N   T   E   G   E
0003400    R   ;  \r   D   e   s   4   :   D   e   s   A   r   r   a   y
0003420    ;  \r   D   e   s   5   :   D   e   s   A   r   r   a   y   ;
0003440   \r   D   e   s   6   :   D   e   s   A   r   r   a   y   ;  \r
0003460    D   e   s   7   : 376 001  \0   {   A   D   e   s   A   r   r
0003500    a   y   ;  \r  \r   m   a   x   Y   :   I   N   T   E   G   E
0003520    R   ;  \r   m   a   x   X   :   I   N   T   E   G   E   R   ;
0003540   \r  \r   g   e   t   W   h   a   t   Y   o   u   S   e   e   ,
0003560    b   e   n   d   i   n   g   W   i   r   e   s   ,   d   e   b
0003600    u   g   B   e   a   d   s   ,   s   m   a   l   l   D   i   s
0003620    p   l   a   y   ,   f   a   l   l   B   a   c   k   :   B   O
0003640    O   L   E   A   N   ;  \r   t   r   a   c   k   B   e   a   d
0003660    :   C   A   R   D   I   N   A   L   ;  \r  \r   t   o   p   N
0003700    o   o   d   l   e   :   C   A   R   D   I   N   A   L   =   2
0003720    0   0   0   ;       -   -   =   1   0   0   0   ;  \r  \r   n
0003740    o   o   d   l   e   C   h   a   i   n   :   P   O   I   N   T
0003760    E   R       T   O       A   R   R   A   Y       [   0   .   .
0004000    2   ]       O   F       C   A   R   D   I   N   A   L   ;  \r
0004020    n   o   o   d   l   e   D   X   :   P   O   I   N   T   E   R
0004040        T   O       A   R   R   A   Y       [   0   .   .   2   ]
0004060        O   F       I   N   T   E   G   E 376 001  \0 313 214   R
0004100    ;  \r   n   o   o   d   l   e   D   Y   :   P   O   I   N   T
0004120    E   R       T   O       A   R   R   A   Y       [   0   .   .
0004140    2   ]       O   F       I   N   T   E   G   E   R   ;  \r   f
0004160    r   e   e   N   o   o   d   l   e   C   h   a   i   n   :   C
0004200    A   R   D   I   N   A   L   ;  \r  \r   B   e   n   t   W   i
0004220    r   e   D   a   t   a   :   T   Y   P   E   =   R   E   C   O
0004240    R   D   [   t   h   i   s   ,   n   e   x   t   ,   o   l   d
0004260    ,   o   l   d   O   l   d   :   C   A   R   D   I   N   A   L
0004300    ,  \r               t   h   i   s   X   ,   t   h   i   s   Y
0004320    ,   n   e   x   t   X   ,   n   e   x   t   Y   ,   o   l   d
0004340    X   ,   o   l   d   Y   ,   f   i   r   s   t   X   ,   l   a
0004360    s   t   X   ,  \r               d   x   ,   d   y   ,   n   e
0004400    x   t   d   x   ,   n   e   x   t   d   y   ,   o   l   d   d
0004420    x   ,   o   l   d   d   y   :   I   N   T   E   G   E   R   ]
0004440    ;  \r   B   e   n   t   W   i   r   e   :   T   Y   P   E   =
0004460    P   O   I   N   T   E   R       T   O       B   e   n   t 376
0004500  001  \0 375 032   W   i   r   e   D   a   t   a   ;  \r  \r   -
0004520    -   p   r   o   c   e   d   u   r   e   s       f   o   r    
0004540    l   o   o   k   i   n   g       a   t       t   h   i   n   g
0004560    s      \r   P   r   i   n   t   B   e   a   d   s   :   P   R
0004600    O   C   E   D   U   R   E   ;  \r   P   r   i   n   t   G   e
0004620    o   m   e   t   r   y   :   P   R   O   C   E   D   U   R   E
0004640    [   S   T   R   I   N   G   ]   ;  \r   P   r   i   n   t   A
0004660    l   l   S   t   i   c   k   s   :   P   R   O   C   E   D   U
0004700    R   E   [   P   O   I   N   T   E   R       T   O       S   t
0004720    i   c   k   S   t   u   f   f   ,   C   A   R   D   I   N   A
0004740    L   ]   ;  \r   P   r   i   n   t   A   l   l   C   o   n   t
0004760    a   c   t   s   :   P   R   O   C   E   D   U   R   E   [   P
0005000    O   I   N   T   E   R       T   O       C   o   n   S   t   u
0005020    f   f   ,   C   A   R   D   I   N   A   L   ]   ;  \r   P   r
0005040    i   n   t   L   o   n   g   :   P   R   O   C   E   D   U   R
0005060    E   [   i   :   L   O   N   G       C   A   R   D   I   N   A
0005100    L   ]   ;  \r 376 001  \0 205   R   S   h   o   w   S   t   a
0005120    t   s   :   P   R   O   C   E   D   U   R   E   [   s   :   S
0005140    T   R   I   N   G   ,   a   ,   b   :   C   A   R   D   I   N
0005160    A   L   ]   ;  \r   P   r   i   n   t   D   e   s   :   P   R
0005200    O   C   E   D   U   R   E   [   x   ,   y   ,   z   :   P   O
0005220    I   N   T   E   R       T   O       D   e   s   A   r   r   a
0005240    y   ]   ;      \r   S   t   a   r   t   D   i   s   p   l   a
0005260    y   :   P   R   O   C   E   D   U   R   E   ;  \r   D   i   s
0005300    p   l   a   y   :   P   R   O   C   E   D   U   R   E   ;  \r
0005320    M   a   n   i   p   u   l   a   t   e   D   i   s   p   l   a
0005340    y   :   P   R   O   C   E   D   U   R   E       R   E   T   U
0005360    R   N   S   [   B   O   O   L   E   A   N   ]   ;  \r  \r   -
0005400    -   m   a   j   o   r       s   t   r   u   c   t   u   r   a
0005420    l       p   r   o   c   e   d   u   r   e   s  \r   F   r   o
0005440    m   I   n   p   u   t   T   o   B   e   a   d   s   :   P   R
0005460    O   C   E   D   U   R   E   [   S   T   R   I   N   G   ,   B
0005500    O   O   L   E   A   N   ]   ;  \r 376 001  \0 207 226   P   u
0005520    t   T   h   e   B   e   a   d   s   W   h   e   r   e   T   h
0005540    e   y   B   e   l   o   n   g   :   P   R   O   C   E   D   U
0005560    R   E   [   B   O   O   L   E   A   N   ,   [   0   .   .   2
0005600    5   6   )   ]   ;  \r   F   a   l   l   :   P   R   O   C   E
0005620    D   U   R   E   ;  \r   T   u   r   n   W   i   r   e   s   T
0005640    o   B   e   a   d   s   :   P   R   O   C   E   D   U   R   E
0005660    ;  \r   L   o   c   a   l   :   P   R   O   C   E   D   U   R
0005700    E   ;  \r   C   l   e   a   n   U   p   :   P   R   O   C   E
0005720    D   U   R   E   ;  \r   C   l   e   a   n   :   P   R   O   C
0005740    E   D   U   R   E   ;  \r  \r   -   -   u   t   i   l   i   t
0005760    y       r   o   u   t   i   n   e   s  \r   R   o   t   a   t
0006000    e   ,   R   e   f   l   e   c   t   ,   R   o   t   a   t   e
0006020    B   a   c   k   :   P   R   O   C   E   D   U   R   E   ;  \r
0006040    I   n   s   e   r   t   B   e   a   d   :   P   R   O   C   E
0006060    D   U   R   E   [   B   e   a   d   ]   ;  \r   C   h   e   c
0006100    k   B   e   a   d   s   :   P   R   O   C   E   D   U 376 001
0006120   \0 231   `   R   E   ;  \r   D   e   l   t   a   s   :   P   R
0006140    O   C   E   D   U   R   E   [   i   ,   j   :   C   A   R   D
0006160    I   N   A   L   ]       R   E   T   U   R   N   S   [   I   N
0006200    T   E   G   E   R   ,   I   N   T   E   G   E   R   ]   ;  \r
0006220    I   f   T   r   a   n   s   :   P   R   O   C   E   D   U   R
0006240    E   [   C   A   R   D   I   N   A   L   ,   I   N   T   E   G
0006260    E   R   ]       R   E   T   U   R   N   S   [   I   N   T   E
0006300    G   E   R   ]   ;  \r   I   n   i   t   B   e   a   d   W   o
0006320    r   k   :   P   R   O   C   E   D   U   R   E   [   C   A   R
0006340    D   I   N   A   L   ,   B   e   a   d   P   t   r   ]   ;  \r
0006360    S   t   a   r   t   B   e   n   t   W   i   r   e   :   P   R
0006400    O   C   E   D   U   R   E   [   C   A   R   D   I   N   A   L
0006420    ,   B   e   n   t   W   i   r   e   ]   ;  \r   A   d   v   a
0006440    n   c   e   B   e   n   t   W   i   r   e   :   P   R   O   C
0006460    E   D   U   R   E   [   B   e   n   t   W   i   r   e   ]   ;
0006500   \r   M   e   r   g   e   L   e   f   t   ,   M   e   r   g   e
0006520    R   i   g 376 001  \0  \a 260   h   t   ,   R   e   l   e   a
0006540    s   e   L   i   n   k   :   P   R   O   C   E   D   U   R   E
0006560    [   j   ,   o   l   d   :   C   A   R   D   I   N   A   L   ]
0006600    ;  \r   W   i   r   e   F   a   l   l   :   P   R   O   C   E
0006620    D   U   R   E   [   C   A   R   D   I   N   A   L   ]       R
0006640    E   T   U   R   N   S   [   B   O   O   L   E   A   N   ]   ;
0006660   \r   B   e   a   d   F   a   l   l   :   P   R   O   C   E   D
0006700    U   R   E   [   C   A   R   D   I   N   A   L   ,   I   N   T
0006720    E   G   E   R   ]       R   E   T   U   R   N   S   [   B   O
0006740    O   L   E   A   N   ]   ;  \r   T   u   r   n   W   i   r   e
0006760    :   P   R   O   C   E   D   U   R   E   [   i   :   C   A   R
0007000    D   I   N   A   L   ,   b   p   i   :   B   e   a   d   P   t
0007020    r   ]   ;  \r   F   i   x   W   i   r   e   s   :   P   R   O
0007040    C   E   D   U   R   E   ;  \r   F   i   x   W   i   r   e   :
0007060    P   R   O   C   E   D   U   R   E   [   i   :   C   A   R   D
0007100    I   N   A   L   ,   b   p   i   :   B   e   a   d   P   t   r
0007120    ]   ;  \r   S   c   o   u   r 376 001  \0 341   9   B   e   a
0007140    d   s   :   P   R   O   C   E   D   U   R   E   ;  \r   S   c
0007160    a   v   a   g   e   B   e   a   d   s   :   P   R   O   C   E
0007200    D   U   R   E   ;  \r   M   a   k   e   C   i   r   c   u   i
0007220    t   s   :   P   R   O   C   E   D   U   R   E   ;  \r   W   r
0007240    i   t   e   O   n   e   N   u   m   b   e   r   :   P   R   O
0007260    C   E   D   U   R   E   [   S   T   R   I   N   G   ,   I   N
0007300    T   E   G   E   R   ]   ;  \r   F   i   n   d   B   o   u   n
0007320    d   i   n   g   B   o   x   :   P   R   O   C   E   D   U   R
0007340    E   ;  \r   E   n   u   m   e   r   a   t   e   B   e   a   d
0007360    s   :   P   R   O   C   E   D   U   R   E   [   P   R   O   C
0007400    E   D   U   R   E   [   C   A   R   D   I   N   A   L   ,   B
0007420    e   a   d   P   t   r   ]   ]   ;  \r   E   n   u   m   e   r
0007440    a   t   e   S   o   r   t   e   d   B   o   t   t   o   m   U
0007460    p   :   P   R   O   C   E   D   U   R   E   [   P   R   O   C
0007500    E   D   U   R   E   [   C   A   R   D   I   N   A   L   ,   B
0007520    e   a   d   P   t   r   ]   ]   ;  \r   F   u   l 376 001  \0
0007540    ; 333   l   T   e   s   t   :   P   R   O   C   E   D   U   R
0007560    E   ;  \r  \r   -   -   /   /   /   /   S   t   a   r   t    
0007600    B   e   l   o   w       D   e   f   s   /   /   /   /   /  \r
0007620    P   r   o   c   e   s   s   P   a   i   r   :   T   Y   P   E
0007640    =   P   R   O   C   E   D   U   R   E   [   i   ,   j   :   C
0007660    A   R   D   I   N   A   L   ]       R   E   T   U   R   N   S
0007700    [   o   k   :   B   O   O   L   E   A   N   ]   ;  \r  \r   n
0007720    o   B   e   l   o   w   ,   w   o   r   s   t   B   e   l   o
0007740    w   :   C   A   R   D   I   N   A   L   ;  \r   t   i   m   e
0007760    V   5   ,   t   i   m   e   V   6   :   L   O   N   G       C
0010000    A   R   D   I   N   A   L   ;  \r  \r   A   l   l   o   c   a
0010020    t   e   B   e   l   o   w   :   P   R   O   C   E   D   U   R
0010040    E   ;  \r   F   r   e   e   B   e   l   o   w   :   P   R   O
0010060    C   E   D   U   R   E   ;  \r   R   e   s   e   t   B   e   l
0010100    o   w   :   P   R   O   C   E   D   U   R   E   ;  \r   M   a
0010120    k   e   B   e   l   o   w   :   P   R   O   C   E   D   U   R
0010140    E   ; 376 001  \0   ( 376  \r   S   h   o   w   B   e   l   o
0010160    w   :   P   R   O   C   E   D   U   R   E   ;  \r   T   r   y
0010200    A   l   l   B   e   l   o   w   :   P   R   O   C   E   D   U
0010220    R   E   [   C   A   R   D   I   N   A   L   ,   P   r   o   c
0010240    e   s   s   P   a   i   r   ]       R   E   T   U   R   N   S
0010260    [   B   O   O   L   E   A   N   ]   ;  \r  \r   -   -   /   /
0010300    /   /   E   n   d       B   e   l   o   w       D   e   f   s
0010320    /   /   /   /   /  \r  \r  \r   V   a   r   i   a   n   t   :
0010340    T   Y   P   E   =   {   t   i   e   d   ,   l   e   f   t   ,
0010360    r   i   g   h   t   ,   u   p   ,   d   o   w   n   ,   b   e
0010400    a   d   ,   w   i   r   e   }   ;  \r  \r   F   i   n   d   :
0010420    P   R   O   C   E   D   U   R   E   [   b   :   B   e   a   d
0010440    T   y   p   e   ,   i   :   C   A   R   D   I   N   A   L   ]
0010460        R   E   T   U   R   N   S   [   C   A   R   D   I   N   A
0010500    L   ]   ;  \r   N   u   m   R   e   l   a   t   i   v   e   s
0010520    :   P   R   O   C   E   D   U   R   E   [   i   :   C   A   R
0010540    D   I   N   A   L   ]     376 001  \0 330 244   R   E   T   U
0010560    R   N   S   [   C   A   R   D   I   N   A   L   ]   ;  \r   A
0010600    n   d   O   f   R   e   l   a   t   i   v   e   s   :   P   R
0010620    O   C   E   D   U   R   E   [   i   ,   j   :   C   A   R   D
0010640    I   N   A   L   ]       R   E   T   U   R   N   S   [   B   O
0010660    O   L   E   A   N   ]   ;  \r   A   t   t   a   c   h   :   P
0010700    R   O   C   E   D   U   R   E   [   i   :   C   A   R   D   I
0010720    N   A   L   ,   v   a   r   i   a   n   t   :   V   a   r   i
0010740    a   n   t   ,   j   :   C   A   R   D   I   N   A   L   ]   ;
0010760   \r   A   t   t   a   c   h   A   l   l   :   P   R   O   C   E
0011000    D   U   R   E   [   i   ,   j   :   C   A   R   D   I   N   A
0011020    L   ]   ;  \r   M   o   v   e   :   P   R   O   C   E   D   U
0011040    R   E   [   v   a   r   i   a   n   t   :   V   a   r   i   a
0011060    n   t   ,   i   :   C   A   R   D   I   N   A   L   ,   d   x
0011100    ,   d   y   :   I   N   T   E   G   E   R   ]       R   E   T
0011120    U   R   N   S   [   r   :   B   O   O   L   E   A   N   ]   ;
0011140   \r   I   n   i   t   i   a   l   i   z   e   : 376 001  \0   f
0011160    K   P   R   O   C   E   D   U   R   E   ;  \r   R   e   l   a
0011200    t   e   d   :   P   R   O   C   E   D   U   R   E   [   i   ,
0011220    j   :   C   A   R   D   I   N   A   L   ]       R   E   T   U
0011240    R   N   S   [   B   O   O   L   E   A   N   ]   ;  \r   O   v
0011260    e   r   l   a   p   :   P   R   O   C   E   D   U   R   E   [
0011300    i   ,   j   :   C   A   R   D   I   N   A   L   ]       R   E
0011320    T   U   R   N   S   [   B   O   O   L   E   A   N   ]   ;  \r
0011340    M   i   n   S   e   p   I   n   Y   :   P   R   O   C   E   D
0011360    U   R   E   [   i   ,   j   :   C   A   R   D   I   N   A   L
0011400    ]       R   E   T   U   R   N   S   [   I   N   T   E   G   E
0011420    R   ]   ;  \r   M   i   n   S   e   p   I   n   X   :   P   R
0011440    O   C   E   D   U   R   E   [   i   ,   j   :   C   A   R   D
0011460    I   N   A   L   ]       R   E   T   U   R   N   S   [   I   N
0011500    T   E   G   E   R   ]   ;  \r   P   u   t   :   P   R   O   C
0011520    E   D   U   R   E   [   i   :   C   A   R   D   I   N   A   L
0011540    ,   d   x   ,   d   y   ,   h   ,   w   :   I   N   T   E   G
0011560    E 376 001  \0 232 330   R   ]   ;  \r   T   i   e   d   :   P
0011600    R   O   C   E   D   U   R   E   [   i   ,   j   :   C   A   R
0011620    D   I   N   A   L   ]       R   E   T   U   R   N   S   [   B
0011640    O   O   L   E   A   N   ]   ;  \r   I   n   s   e   r   t   J
0011660    o   g   s   :   P   R   O   C   E   D   U   R   E   [   i   :
0011700    C   A   R   D   I   N   A   L   ,   h   o   r   i   z   o   n
0011720    t   a   l   ,   v   e   r   t   i   c   a   l   :   V   a   r
0011740    i   a   n   t   ]   ;  \r   R   e   m   o   v   e   P   a   t
0011760    h   s   :   P   R   O   C   E   D   U   R   E   [   i   ,   j
0012000    :   C   A   R   D   I   N   A   L   ,   v   :   V   a   r   i
0012020    a   n   t   ]   ;  \r   F   i   n   d   P   a   t   h   :   P
0012040    R   O   C   E   D   U   R   E   [   i   ,   j   :   C   A   R
0012060    D   I   N   A   L   ,   v   :   V   a   r   i   a   n   t   ]
0012100        R   E   T   U   R   N   S   [   B   O   O   L   E   A   N
0012120    ]   ;  \r   R   o   o   m   F   o   r   :   P   R   O   C   E
0012140    D   U   R   E   [   i   :   C   A   R   D   I   N   A   L   ]
0012160        R   E   T   U   R 376 001  \0 200 332   N   S   [   r   :
0012200    B   O   O   L   E   A   N   ]   ;  \r   R   e   s   t   o   r
0012220    e   :   P   R   O   C   E   D   U   R   E   ;  \r   A   b   o
0012240    r   t   :   P   R   O   C   E   D   U   R   E   ;  \r   C   o
0012260    m   m   i   t   :   P   R   O   C   E   D   U   R   E   ;  \r
0012300    D   e   l   e   t   e   B   e   a   d   :   P   R   O   C   E
0012320    D   U   R   E   [   i   :   C   A   R   D   I   N   A   L   ]
0012340    ;  \r   R   e   m   o   v   e   :   P   R   O   C   E   D   U
0012360    R   E   [   i   :   C   A   R   D   I   N   A   L   ]   ;  \r
0012400    C   l   e   a   r   S   h   i   f   t   :   P   U   B   L   I
0012420    C       P   R   O   C   E   D   U   R   E   ;  \r   S   h   i
0012440    f   t   :   P   R   O   C   E   D   U   R   E   [   d   x   ,
0012460    d   y   :   I   N   T   E   G   E   R   ]       R   E   T   U
0012500    R   N   S   [   B   O   O   L   E   A   N   ]   ;  \r   P   r
0012520    o   c   e   s   s   :   P   R   O   C   E   D   U   R   E   ;
0012540   \r  \r  \r   G   e   t   :   P   R   O   C   E   D   U   R   E
0012560    [   i   :   C   A   R   D   I   N   A   L 376 001  \0   c 373
0012600    ]   R   E   T   U   R   N   S   [   B   e   a   d   P   t   r
0012620    ]   =   I   N   L   I   N   E      \r       B   E   G   I   N
0012640        R   E   T   U   R   N   [   b   e   a   d   +   I   n   l
0012660    i   n   e   D   e   f   s   .   L   o   n   g   M   u   l   t
0012700    [   i   ,   S   I   Z   E   [   B   e   a   d   ]   ]   ]   ;
0012720        E   N   D   ;  \r  \r   G   e   t   W   :   P   R   O   C
0012740    E   D   U   R   E   [   i   :   C   A   R   D   I   N   A   L
0012760    ]   R   E   T   U   R   N   S   [   W   o   r   k   P   t   r
0013000    ]   =   I   N   L   I   N   E      \r       B   E   G   I   N
0013020        R   E   T   U   R   N   [   w   o   r   k   +   I   n   l
0013040    i   n   e   D   e   f   s   .   L   o   n   g   M   u   l   t
0013060    [   i   ,   S   I   Z   E   [   W   o   r   k   ]   ]   ]   ;
0013100        E   N   D   ;  \r  \r   E   N   D   .   .  \r  \r   T   h
0013120    e       m   o   d   u   l   e   s       w   h   i   c   h    
0013140    i   m   p   l   e   m   e   n   t       B   e   a   d   s   d
0013160    e   f   s       a   r   e   :  \r           B   e   a   d   s
0013200  376 001  \0   L   i   C   t   l       -       w   h   i   c   h
0013220        d   o   e   s       v   e   r   y       l   i   t   t   l
0013240    e       e   x   c   e   p   t       d   e   c   i   d   e    
0013260    w   h   a   t       s   h   o   u   l   d       b   e       d
0013300    o   n   e  \r           C   r   e   a   t   e   B   e   a   d
0013320    s       -       w   h   i   c   h       m   a   k   e   s    
0013340    b   e   a   d   s       o   u   t       o   f       S   t   i
0013360    c   k   s  \r           B   e   a   d   s   P   r   i   n   t
0013400        -       w   h   i   c   h       m   a   k   e   s       t
0013420    h   e       p   r   e   t   t   y       p   i   c   t   u   r
0013440    e   s       o   n       t   h   e       s   c   r   e   e   n
0013460   \r                                                       -    
0013500    a   n   d       f   o   r   m   a   t   s       m   a   j   o
0013520    r       d   a   t   a       s   t   r   u   c   t   u   r   e
0013540    s       f   o   r       p   r   i   n   t   i   n   g  \r    
0013560                                                    -       a   n
0013600    d       h   o   l 376 001  \0 340 250   d   s       g   l   o
0013620    b   a   l       d   a   t   a       a   n   d       u   t   i
0013640    l   i   t   y       r   o   u   t   i   n   e   s  \r        
0013660    B   e   a   d   s   B   e   l   o   w       -       w   h   o
0013700    s   e       j   o   b       i   s       t   o       e   n   u
0013720    m   e   r   a   t   e       e   v   e   r   y       b   e   a
0013740    d       "   b   e   l   o   w   "       a       b   e   a   d
0013760   \r           B   e   a   d   s   P   u   t               -    
0014000    p   l   a   c   e   s       t   h   e       b   e   a   d   s
0014020        i   n       t   h   e       c   o   m   p   r   e   s   s
0014040    i   o   n       l   o   g   i   c  \r           B   e   a   d
0014060    s   F   a   l   l           -       s   t   r   a   i   g   h
0014100    t   e   n   s       o   u   t       b   e   n   t       w   i
0014120    r   e   s  \r                                                
0014140        -       l   o   w   e   r   s       b   e   a   d   s    
0014160    p   l   a   c   e   d       u   n   n   e   c   e   s   s   a
0014200    r   i   l   y       h   i   g   h  \r 376 001  \0   B  \a    
0014220                                                    -       c   o
0014240    m   b   i   n   e   s       o   v   e   r   l   a   p   p   i
0014260    n   g       b   e   a   d   s  \r                            
0014300                            -       O   t   h   e   r       m   i
0014320    c   s   e   l   l   a   n   e   o   u   s       w   i   r   e
0014340        r   e   l   a   t   e   d       s   t   u   f   f  \r    
0014360        B   e   a   d   s   C   l   e   a   n       -       T   r
0014400    i   e   s       t   o       r   e   d   u   c   e       C   a
0014420    p   a   c   i   t   a   n   c   e       b   y       m   o   v
0014440    i   n   g       s   e   v   e   r   a   l       b   e   a   d
0014460    s  \r           B   e   a   d   s   L   o   c   a   l       -
0014500        M   a   k   e   s       L   o   c   a   l       t   r   a
0014520    n   s   f   o   r   m   a   t   i   o   n   s  \r            
0014540                                            -       m   a   k   e
0014560    s       "   f   r   e   e   "       t   r   a   n   s   f   o
0014600    r   m   a   t   i   o   n   s       e   a   c   h       p 376
0014620  001  \0 300   ;   a   s   s  \r           B   e   a   d   s   M
0014640    o   v   e           -       U   t   i   l   i   t   y       s
0014660    u   b   r   o   u   t   i   n   e   s       f   o   r       B
0014700    e   a   d   s   L   o   c   a   l  \r           B   e   a   d
0014720    s   T   e   s   t           -       c   h   e   c   k   s    
0014740    a       b   e   a   d       f   i   g   u   r   e       f   o
0014760    r       d   e   s   i   g   n       r   u   l   e       v   i
0015000    o   l   a   t   i   o   n  \r  \r   S   t   a   r   t       y
0015020    o   u   r       s   t   u   d   y       o   f       B   e   a
0015040    d   s   d   e   f   s       w   i   t   h       t   h   e    
0015060    m   o   d   u   l   e       c   a   l   l   e   d       b   e
0015100    a   d   s   C   t   l   .  \r   T   h   e   n       G   l   a
0015120    n   c   e       a   t       t   h   e       s   t   a   r   t
0015140        o   f       b   e   a   d   s   P   r   i   n   t       t
0015160    o       s   e   e       w   h   a   t       D   e   l   t   a
0015200    s       d   o   e   s   .  \r   T   h   e   n       l   e   a
0015220    p       i   n 376 001  \0   G 020   t   o       b   e   a   d
0015240    s   P   u   t   .  \r  \r 032   (   1   7   9   2   )   \   2
0015260    3   1   7   i   3   2   I   2   b   1   0   B   1   2   b   1
0015300    3   B   2   0   b   1   4   B   4   4   b   1   6   B   4   2
0015320    b   9   B   2   9   b   9   B   3   5   b   8   B   4   0   b
0015340    1   2   B   1   2   b   7   B   1   2   b   1   7   B   3   0
0015360    i   2   9   I   1   b   1   6   B   2   8   b   2   6   B   3
0015400    0   b   4   B   1   2   b   1   6   B   1   2   b   5   B   1
0015420    2   b   7   B   1   2   b   5   B   3   2   b   6   B   1   b
0015440    7   B   1   b   1   0   B   1   2   b   1   0   B   1   8   b
0015460    1   0   B   1   2   b   6   B   5   1   b   7   B   4   7   b
0015500    1   2   B   3   0   b   1   3   B   3   1   b   1   5   B   2
0015520    2   b   9   B   1   b   1   0   B   1   b   1   1   B   2   8
0015540    b   8   B   3   9   b   8   B   4   7   b   8   B   3   6   b
0015560    8   B   1   2   b   7   B   3   6   b   1   0   B   1   2   b
0015600    1   2   B   1   2   b   1   2   B   1   2   b   1   4   B   2
0015620    8   b   1   5   B   1   2   b   1 376  \0 265   c   w   4   B
0015640    4   1   b   2   3   B   4   1   b   8   B   1   6   3   b   1
0015660    3   B   1   2   b   9   B   1   2   b   1   0   B   1   2   b
0015700    9   B   1   2   b   9   B   1   2   b   1   1   B   1   3   0
0015720    b   5   B   5   3   b   1   2   B   4   2   b   1   4   B   4
0015740    3   b   6   B   5   1   b   9   B   2   6   b   4   B   7   3
0015760    b   1   0   B   1   2   b   7   B   4   3   b   7   B   4   3
0016000    b   9   B   4   3   b   9   B   4   3   b   3   B   4   2   b
0016020    4   B   4   3   b   1   0   B   5   2   b   1   1   B   3   6
0016040    b   8   B   5   3   b   7   B   4   3   b   7   B   1   2   b
0016060    5   B   1   2   b   6   B   1   2   b   1   0   B   2   4   b
0016100    6   B   2   4   b   1   0   B   1   9   b   5   B   4   4   b
0016120    7   B  \r 377  \0  \0   b   e   a   d   s   p   r   i   n   t
0016140    5   .   m   e   s   a  \0 376 001  \0 300 205   -   -       B
0016160    e   a   d   s   P   r   i   n   t   5   .   m   e   s   a  \r
0016200   \r   D   I   R   E   C   T   O   R   Y       I   O   D   e   f
0016220    s   :   F   R   O   M   "   I   O   D   e   f   s   "   ,  \r
0016240   \t           I   n   l   i   n   e   D   e   f   s   :   F   R
0016260    O   M   "   I   n   l   i   n   e   D   e   f   s   "   ,  \r
0016300                                            B   e   a   d   s   D
0016320    e   f   s   :   F   R   O   M   "   B   e   a   d   s   D   e
0016340    f   s   "   ,  \r                                           P
0016360    r   e   s   s   D   e   f   s   :   F   R   O   M   "   P   r
0016400    e   s   s   D   e   f   s   "   ,  \r                        
0016420                    S   y   s   t   e   m   D   e   f   s   :   F
0016440    R   O   M   "   S   y   s   t   e   m   D   e   f   s   "   ,
0016460   \r  \t           G   r   a   p   h   i   c   s   D   e   f   s
0016500    :   F   R   O   M   "   G   r   a   p   h   i   c   s   D   e
0016520    f   s   "   ;  \r   B   e   a   d   s   P   r   i   n   t   :
0016540    P   R   O   G   R   A   M       I   M   P   O 376 001  \0 225
0016560    n   R   T   S       I   O   D   e   f   s   ,       G   r   a
0016600    p   h   i   c   s   D   e   f   s   ,       S   y   s   t   e
0016620    m   D   e   f   s   ,       P   r   e   s   s   D   e   f   s
0016640    ,       I   n   l   i   n   e   D   e   f   s   ,   B   e   a
0016660    d   s   D   e   f   s  \r                                    
0016700    E   X   P   O   R   T   S       B   e   a   d   s   D   e   f
0016720    s       =   B   E   G   I   N       O   P   E   N       B   e
0016740    a   d   s   D   e   f   s   ;  \r   -   -   G   r   a   p   h
0016760    i   c   D   e   f   s       a   n   d       P   r   e   s   s
0017000    D   e   f   s       a   r   e       J   o   e       M   a   l
0017020    e   s   o   n   '   s   .  \r  \r   E   r   r   o   r   :   S
0017040    I   G   N   A   L   =   C   O   D   E   ;  \r  \r   n   o   B
0017060    e   a   d   :   P   U   B   L   I   C       C   A   R   D   I
0017100    N   A   L   ;  \r   n   o   B   e   l   o   w   :   P   U   B
0017120    L   I   C       C   A   R   D   I   N   A   L   ;  \r   t   o
0017140    p   B   e   a   d   :   P   U   B   L   I   C       C   A   R
0017160    D 376 001  \0   f  \n   I   N   A   L   ;  \r   b   e   a   d
0017200    :   P   U   B   L   I   C       B   e   a   d   P   t   r   ;
0017220   \r   w   o   r   k   :   P   U   B   L   I   C       W   o   r
0017240    k   P   t   r   ;  \r   m   a   x   Y   :   P   U   B   L   I
0017260    C       I   N   T   E   G   E   R   ;  \r   m   a   x   X   :
0017300    P   U   B   L   I   C       I   N   T   E   G   E   R   ;  \r
0017320    d   e   s   P   :   P   U   B   L   I   C       P   O   I   N
0017340    T   E   R       T   O       d   e   s   S   t   u   f   f   ;
0017360   \r   d   e   b   u   g   B   e   a   d   s   :   P   U   B   L
0017400    I   C       B   O   O   L   E   A   N   ;  \r   f   a   l   l
0017420    B   a   c   k   :   P   U   B   L   I   C       B   O   O   L
0017440    E   A   N   ;  \r   s   m   a   l   l   D   i   s   p   l   a
0017460    y   :   P   U   B   L   I   C       B   O   O   L   E   A   N
0017500    ;  \r   S   c   r   e   e   n   :   P   O   I   N   T   E   R
0017520        T   O       G   r   a   p   h   i   c   s   D   e   f   s
0017540    .   B   i   t   m   a   p   ;  \r   O   l   d   D   C   B   :
0017560    C   A   R   D   I   N 376 001  \0 216 351   A   L   ;  \r   D
0017600    C   B   H   e   a   d   :       P   O   I   N   T   E   R    
0017620    T   O       C   A   R   D   I   N   A   L   =       L   O   O
0017640    P   H   O   L   E   [   4   2   0   B   ]   ;  \r  \r   g   e
0017660    o   m   S   t   u   f   f   :   T   Y   P   E   =   A   R   R
0017700    A   Y       [   0   .   .   p   r   i   n   t   B   u   f   T
0017720    o   p   R   o   w   ]       O   F       A   R   R   A   Y    
0017740    [   0   .   .   p   r   i   n   t   B   u   f   T   o   p   C
0017760    o   l   ]       O   F       E   i   g   h   t   C   o   l   o
0020000    r   s   ;  \r   E   i   g   h   t   C   o   l   o   r   s   :
0020020    T   Y   P   E   =   R   E   C   O   R   D   [   a   ,   b   ,
0020040    c   ,   d   ,   e   ,   f   ,   g   ,   h   :   C   o   l   o
0020060    r   ]   ;  \r   p   r   i   n   t   B   u   f   T   o   p   C
0020100    o   l   :   C   A   R   D   I   N   A   L   =   9   ;  \r   p
0020120    r   i   n   t   B   u   f   T   o   p   R   o   w   :   C   A
0020140    R   D   I   N   A   L   =   8   0   ;  \r  \r   g   e   o   m
0020160    :   P   O   I   N   T   E   R       T   O 376 001  \0 034 215
0020200        g   e   o   m   S   t   u   f   f   _   N   I   L   ;  \r
0020220    p   r   e   s   s   :   P   r   e   s   s   D   e   f   s   .
0020240    P   r   e   s   s   F   i   l   e   D   e   s   c   r   i   p
0020260    t   o   r   ;  \r   c   o   r   n   e   r   X   ,   c   o   r
0020300    n   e   r   Y   :   I   N   T   E   G   E   R   ;  \r   d   i
0020320    s   p   l   a   y   :   B   O   O   L   E   A   N   _   T   R
0020340    U   E   ;  \r  \r   M   o   u   s   e   B   u   t   t   o   n
0020360    s   :       P   O   I   N   T   E   R       T   O       C   A
0020400    R   D   I   N   A   L       =       L   O   O   P   H   O   L
0020420    E   [   1   7   7   0   3   0   B   ]   ;  \r   K   e   y   B
0020440    o   a   r   d   1   :       P   O   I   N   T   E   R       T
0020460    O       C   A   R   D   I   N   A   L       =       L   O   O
0020500    P   H   O   L   E   [   1   7   7   0   3   4   B   ]   ;  \r
0020520    K   e   y   B   o   a   r   d   2   :       P   O   I   N   T
0020540    E   R       T   O       C   A   R   D   I   N   A   L       =
0020560        L   O   O   P   H   O   L   E   [   1   7   7   0   3   5
0020600  376 001  \0   *   d   B   ]   ;  \r   M   o   u   s   e   X   :
0020620        P   O   I   N   T   E   R       T   O       C   A   R   D
0020640    I   N   A   L       =       L   O   O   P   H   O   L   E   [
0020660    4   2   6   B   ]   ;  \r   M   o   u   s   e   Y   :       P
0020700    O   I   N   T   E   R       T   O       C   A   R   D   I   N
0020720    A   L       =       L   O   O   P   H   O   L   E   [   4   2
0020740    7   B   ]   ;  \r   x   0   ,   y   0   :       C   A   R   D
0020760    I   N   A   L   ;       -   -   o   f   f   s   e   t       t
0021000    o       t   h   e       d   i   s   p   l   a   y  \r   d   x
0021020    M   a   x   :   C   A   R   D   I   N   A   L   ;  \r   d   y
0021040    M   a   x   :   C   A   R   D   I   N   A   L   ;       -   -
0021060    s   i   z   e       o   f       t   h   e       d   i   s   p
0021100    l   a   y       s   c   r   e   e   n  \r  \r   n   o   o   d
0021120    l   e   C   h   a   i   n   :   P   U   B   L   I   C       P
0021140    O   I   N   T   E   R       T   O       A   R   R   A   Y    
0021160    [   0   .   .   2   ]       O   F       C   A   R   D   I   N
0021200    A   L   ;  \r   n 376 001  \0 310 020   o   o   d   l   e   D
0021220    X   :   P   U   B   L   I   C       P   O   I   N   T   E   R
0021240        T   O       A   R   R   A   Y       [   0   .   .   2   ]
0021260        O   F       I   N   T   E   G   E   R   ;  \r   n   o   o
0021300    d   l   e   D   Y   :   P   U   B   L   I   C       P   O   I
0021320    N   T   E   R       T   O       A   R   R   A   Y       [   0
0021340    .   .   2   ]       O   F       I   N   T   E   G   E   R   ;
0021360   \r  \r   D   e   s   4   :   P   U   B   L   I   C       D   e
0021400    s   A   r   r   a   y   ;  \r   D   e   s   5   :   P   U   B
0021420    L   I   C       D   e   s   A   r   r   a   y   ;  \r   D   e
0021440    s   6   :   P   U   B   L   I   C       D   e   s   A   r   r
0021460    a   y   ;  \r   D   e   s   7   :   P   U   B   L   I   C    
0021500    D   e   s   A   r   r   a   y   ;  \r  \r   b   e   n   d   i
0021520    n   g   W   i   r   e   s   :   P   U   B   L   I   C       B
0021540    O   O   L   E   A   N   ;  \r   t   r   a   c   k   B   e   a
0021560    d   :   P   U   B   L   I   C       C   A   R   D   I   N   A
0021600    L   ;  \r  \r   E   n   u   m   e   r 376 001  \0   s 002   a
0021620    t   e   B   e   a   d   s   :   P   U   B   L   I   C       P
0021640    R   O   C   E   D   U   R   E   [   f   o   o   :   P   R   O
0021660    C   E   D   U   R   E   [   C   A   R   D   I   N   A   L   ,
0021700    B   e   a   d   P   t   r   ]   ]   =   B   E   G   I   N  \r
0021720            i   :   C   A   R   D   I   N   A   L   ;       b   p
0021740    i   :   B   e   a   d   P   t   r   ;  \r           F   O   R
0021760        i       I   N       [   0   .   .   t   o   p   B   e   a
0022000    d   ]       D   O  \r                   b   p   i   _   G   e
0022020    t   [   i   ]   ;  \r                   I   F       b   p   i
0022040    .   t   #   n   o   n   e       T   H   E   N       f   o   o
0022060    [   i   ,   b   p   i   ]   ;  \r                   E   N   D
0022100    L   O   O   P   ;  \r           E   N   D   ;  \r  \r   E   n
0022120    u   m   e   r   a   t   e   S   o   r   t   e   d   B   o   t
0022140    t   o   m   U   p   :   P   U   B   L   I   C       P   R   O
0022160    C   E   D   U   R   E   [   c   a   l   l   :   P   R   O   C
0022200    E   D   U   R   E   [   C   A   R   D   I   N   A   L   , 376
0022220  001  \0 207 344   B   e   a   d   P   t   r   ]   ]   =  \r    
0022240        B   E   G   I   N       i   i   :   C   A   R   D   I   N
0022260    A   L   ;  \r           F   O   R       i   i       D   E   C
0022300    R   E   A   S   I   N   G       I   N       [   0   .   .   t
0022320    o   p   B   e   a   d   ]       D   O       B   E   G   I   N
0022340   \r                   i   :   C   A   R   D   I   N   A   L   _
0022360    G   e   t   W   [   i   i   ]   .   s   o   r   t   ;       b
0022400    p   i   :   B   e   a   d   P   t   r   _   G   e   t   [   i
0022420    ]   ;  \r                   I   F       b   p   i   .   t   #
0022440    n   o   n   e       T   H   E   N       c   a   l   l   [   i
0022460    ,   b   p   i   ]   ;  \r                   E   N   D       E
0022500    N   D   L   O   O   P   ;  \r           E   N   D   ;  \r  \r
0022520    D   e   l   t   a   s   :   P   U   B   L   I   C       P   R
0022540    O   C   E   D   U   R   E   [   i   ,   j   :   C   A   R   D
0022560    I   N   A   L   ]       R   E   T   U   R   N   S   [   I   N
0022600    T   E   G   E   R   ,   I   N   T   E   G   E   R   ]       =
0022620    B   E   G   I 376 001  \0 250 365   N  \r           b   p   i
0022640    :   B   e   a   d   P   t   r   _   G   e   t   [   i   ]   ;
0022660        w   p   i   :   W   o   r   k   P   t   r   _   G   e   t
0022700    W   [   i   ]   ;  \r           b   p   j   :   B   e   a   d
0022720    P   t   r   _   G   e   t   [   j   ]   ;       w   p   j   :
0022740    W   o   r   k   P   t   r   _   G   e   t   W   [   j   ]   ;
0022760   \r           s   i   :   C   A   R   D   I   N   A   L   _   d
0023000    e   s   P   [   b   p   i   .   t   ]   .   s   h   o   r   t
0023020    ;  \r           s   j   :   C   A   R   D   I   N   A   L   _
0023040    d   e   s   P   [   b   p   j   .   t   ]   .   s   h   o   r
0023060    t   ;  \r           S   E   L   E   C   T       T   R   U   E
0023100        F   R   O   M  \r                   b   p   i   .   c   i
0023120    r   c   u   i   t   #   b   p   j   .   c   i   r   c   u   i
0023140    t   =   >   B   E   G   I   N  \r                       I   F
0023160        b   p   i   .   w   i   r   e       A   N   D       b   p
0023200    j   .   w   i   r   e       T   H   E   N       B   E   G   I
0023220    N  \r                           i 376 001  \0 243   K   e   1
0023240    :   C   A   R   D   I   N   A   L   _   I   F       b   p   i
0023260    .   b   e   a   d   R   =   n   o   B   e   a   d       T   H
0023300    E   N       b   p   i   .   b   e   a   d   U       E   L   S
0023320    E       b   p   i   .   b   e   a   d   L   ;  \r            
0023340                i   e   2   :   C   A   R   D   I   N   A   L   _
0023360    I   F       b   p   i   .   b   e   a   d   R   =   n   o   B
0023400    e   a   d       T   H   E   N       b   p   i   .   b   e   a
0023420    d   D       E   L   S   E       b   p   i   .   b   e   a   d
0023440    R   ;  \r                           j   e   1   :   C   A   R
0023460    D   I   N   A   L   _   I   F       b   p   j   .   b   e   a
0023500    d   R   =   n   o   B   e   a   d       T   H   E   N       b
0023520    p   j   .   b   e   a   d   U       E   L   S   E       b   p
0023540    j   .   b   e   a   d   L   ;  \r                           j
0023560    e   2   :   C   A   R   D   I   N   A   L   _   I   F       b
0023600    p   j   .   b   e   a   d   R   =   n   o   B   e   a   d    
0023620    T   H   E   N       b   p   j   .   b   e   a   d   D 376 001
0023640   \0 365   h       E   L   S   E       b   p   j   .   b   e   a
0023660    d   R   ;  \r                           I   F       i   e   1
0023700    =   j   e   1       O   R       i   e   1   =   j   e   2    
0023720    O   R       i   e   2   =   j   e   1       O   R       i   e
0023740    2   =   j   e   2       T   H   E   N       R   E   T   U   R
0023760    N   [   0   ,   0   ]   ;  \r                           E   N
0024000    D   ;  \r                       R   E   T   U   R   N   [   D
0024020    e   s   6   [   s   i   ]   [   s   j   ]   ,   D   e   s   4
0024040    [   s   i   ]   [   s   j   ]   ]   ;  \r                    
0024060    E   N   D   ;  \r                   s   i   =   s   j       A
0024100    N   D       s   i       I   N       [   5   .   .   7   ]    
0024120    A   N   D       b   p   i   .   w   >   0       A   N   D    
0024140    b   p   j   .   w   >   0   =   >   B   E   G   I   N  \r    
0024160                            I   F       b   p   i   .   h   <   =
0024200    0       O   R       b   p   j   .   h   <   =   0       T   H
0024220    E   N       E   r   r   o   r   ;  \r       -   -            
0024240        R   E 376 001  \0   +   [   T   U   R   N   [   -   M   I
0024260    N   [   b   p   i   .   w   ,   b   p   j   .   w   ]   ,   -
0024300    M   I   N   [   b   p   i   .   h   ,   b   p   j   .   h   ]
0024320    ]   ;  \r       -   -                   R   E   T   U   R   N
0024340    [   -   b   p   i   .   w   ,   -   b   p   i   .   h   ]   ;
0024360   \r                               R   E   T   U   R   N   [   -
0024400    M   A   X   [   b   p   i   .   w   ,   b   p   j   .   w   ]
0024420    ,   -   M   A   X   [   b   p   i   .   h   ,   b   p   j   .
0024440    h   ]   ]   ;  \r                               E   N   D   ;
0024460   \r                   b   p   i   .   t   =   r   b       A   N
0024500    D       s   j   =   6       O   R       b   p   i   .   t   =
0024520    b   g       A   N   D       s   j   =   5   =   >  \r        
0024540                        I   F       C   o   n   t   a   c   t   W
0024560    a   l   l   [   b   p   i   ,   b   p   j   ]       T   H   E
0024600    N       R   E   T   U   R   N   [   0   ,   0   ]   ;  \r    
0024620                b   p   j   .   t   =   r   b       A   N   D    
0024640    s   i   =   6       O   R     376 001  \0 005 002   b   p   j
0024660    .   t   =   b   g       A   N   D       s   i   =   5   =   >
0024700   \r                               I   F       C   o   n   t   a
0024720    c   t   W   a   l   l   [   b   p   j   ,   b   p   i   ]    
0024740    T   H   E   N       R   E   T   U   R   N   [   0   ,   0   ]
0024760    ;  \r                   E   N   D   C   A   S   E   ;  \r    
0025000        R   E   T   U   R   N   [   D   e   s   7   [   s   i   ]
0025020    [   s   j   ]   ,   D   e   s   5   [   s   i   ]   [   s   j
0025040    ]   ]   ;  \r           E   N   D   ;  \r  \r   C   o   n   t
0025060    a   c   t   W   a   l   l   :   P   R   O   C   E   D   U   R
0025100    E   [   b   p   i   ,   b   p   j   :   B   e   a   d   P   t
0025120    r   ]       R   E   T   U   R   N   S   [   B   O   O   L   E
0025140    A   N   ]       =   B   E   G   I   N  \r           k   :   C
0025160    A   R   D   I   N   A   L   _   b   p   i   .   b   e   a   d
0025200    T   ;       b   p   k   :   B   e   a   d   P   t   r   _   G
0025220    e   t   [   k   ]   ;  \r           I   F       b   p   k   .
0025240    t   =   b   f       T   H   E   N       B   E   G 376 001  \0
0025260    O 207   I   N       k   _   b   p   k   .   b   e   a   d   T
0025300    ;       b   p   k   _   G   e   t   [   k   ]   ;       E   N
0025320    D   ;  \r           R   E   T   U   R   N   [   S   E   L   E
0025340    C   T       b   p   k   .   x   -   b   p   i   .   x       F
0025360    R   O   M  \r                   >   0   =   >   b   p   k   .
0025400    x   =   b   p   j   .   x   ,      \r                   <   0
0025420    =   >   b   p   k   .   x   +   b   p   k   .   w   =   b   p
0025440    j   .   x   +   b   p   j   .   w   ,  \r                   E
0025460    N   D   C   A   S   E   =   >   I   F       b   p   k   .   y
0025500    >   b   p   i   .   y       T   H   E   N       b   p   k   .
0025520    y   =   b   p   j   .   y       E   L   S   E       b   p   k
0025540    .   y   +   b   p   k   .   h   =   b   p   j   .   y   +   b
0025560    p   j   .   h   ]   ;  \r           E   N   D   ;  \r  \r   W
0025600    r   i   t   e   O   n   e   N   u   m   b   e   r   :   P   U
0025620    B   L   I   C       P   R   O   C   E   D   U   R   E   [   s
0025640    :   S   T   R   I   N   G   ,   n   :   I   N   T   E   G   E
0025660    R   ] 376 001  \0 357 276   =       B   E   G   I   N       O
0025700    P   E   N       I   O   D   e   f   s   ;  \r           W   r
0025720    i   t   e   C   h   a   r   [   C   R   ]   ;       W   r   i
0025740    t   e   S   t   r   i   n   g   [   s   ]   ;       W   r   i
0025760    t   e   N   u   m   b   e   r   [   n   ,           [   1   0
0026000    ,   F   A   L   S   E   ,   T   R   U   E   ,   5   ]   ]   ;
0026020   \r           E   N   D   ;  \r  \r   I   f   T   r   a   n   s
0026040    :   P   U   B   L   I   C       P   R   O   C   E   D   U   R
0026060    E   [   i   :   C   A   R   D   I   N   A   L   ,   a   :   I
0026100    N   T   E   G   E   R   ]       R   E   T   U   R   N   S   [
0026120    I   N   T   E   G   E   R   ]       =   B   E   G   I   N  \r
0026140            R   E   T   U   R   N   [   S   E   L   E   C   T    
0026160    G   e   t   [   i   ]   .   t       F   R   O   M       t   t
0026200    ,   d   d   ,   t   t   V   ,   d   d   V   =   >   a   ,    
0026220    E   N   D   C   A   S   E   =   >   0   ]   ;  \r           E
0026240    N   D   ;  \r  \r   I   n   i   t   B   e   a   d   W   o   r
0026260    k   :   P   U   B   L   I 376 001  \0       \   C       P   R
0026300    O   C   E   D   U   R   E   [   i   :   C   A   R   D   I   N
0026320    A   L   ,   b   p   i   :   B   e   a   d   P   t   r   ]   =
0026340        B   E   G   I   N  \r                           w   i   :
0026360    W   o   r   k   P   t   r   _   G   e   t   W   [   i   ]   ;
0026400   \r                           w   :   I   N   T   E   G   E   R
0026420    _   b   p   i   .   h   ;  \r                           t   i
0026440    :   B   e   a   d   T   y   p   e   _   b   p   i   .   t   ;
0026460   \r                           w   i   .   s   o   r   t   _   i
0026500    ;  \r                           b   p   i   .   n   e   x   t
0026520    B   e   l   o   w   _   n   o   B   e   l   o   w   ;  \r    
0026540                        w   i   .   c   h   a   i   n   _   n   o
0026560    B   e   a   d   ;  \r                           w   i   .   n
0026600    e   w   Y   _   m   a   x   Y   -   b   p   i   .   h   ;  \r
0026620                            b   p   i   .   n   o   o   d   l   e
0026640    _   t   o   p   N   o   o   d   l   e   ;  \r                
0026660            w   i   .   p   r   o   c   e   s   s 376 001  \0   >
0026700   \v   e   d   _   F   A   L   S   E   ;  \r                    
0026720        w   i   .   s   e   e   n   _   n   o   B   e   a   d   ;
0026740   \r                           w   i   .   s   t   i   f   f   _
0026760    ~   b   e   n   d   i   n   g   W   i   r   e   s       O   R
0027000        ~   b   p   i   .   w   i   r   e       O   R       b   p
0027020    i   .   b   e   a   d   R   =   n   o   B   e   a   d  \r    
0027040                                O   R       t   i   =   w   i   r
0027060    e   O  \r                                   O   R       b   p
0027100    i   .   w   +   b   p   i   .   h   <  \r                    
0027120                                        I   f   T   r   a   n   s
0027140    [   b   p   i   .   b   e   a   d   L   ,   w   +   2   ]   +
0027160    I   f   T   r   a   n   s   [   b   p   i   .   b   e   a   d
0027200    R   ,   w   +   2   ]  \r                                   O
0027220    R       b   p   i   .   w   <   0       -   -   n   o       n
0027240    e   e   d   -   -   ;  \r                           E   N   D
0027260    ;  \r  \r   S   h   o   w   S   t   a   t   s   :   P   U   B
0027300    L 376 001  \0 317   7   I   C       P   R   O   C   E   D   U
0027320    R   E   [   s   :   S   T   R   I   N   G   ,   a   ,   b   :
0027340    C   A   R   D   I   N   A   L   ]   =   B   E   G   I   N  \r
0027360            O   P   E   N       I   O   D   e   f   s   ;  \r    
0027400        W   r   i   t   e   C   h   a   r   [   C   R   ]   ;    
0027420    W   r   i   t   e   S   t   r   i   n   g   [   s   ]   ;    
0027440    W   r   i   t   e   N   u   m   b   e   r   [   a   ,   [   1
0027460    0   ,   F   A   L   S   E   ,   T   R   U   E   ,   6   ]   ]
0027500    ;  \r           W   r   i   t   e   N   u   m   b   e   r   [
0027520    b   ,   [   1   0   ,   F   A   L   S   E   ,   T   R   U   E
0027540    ,   6   ]   ]   ;       W   r   i   t   e   C   h   a   r   [
0027560    C   R   ]   ;  \r           E   N   D   ;  \r  \r   s   e   e
0027600    B   :   B   e   a   d   ;  \r   s   e   e   W   :   W   o   r
0027620    k   ;  \r  \r   S   e   e   :   P   R   O   C   E   D   U   R
0027640    E   [   i   :   C   A   R   D   I   N   A   L   ]   =       B
0027660    E   G   I   N       s   e   e   B   _   G   e   t   [   i   ]
0027700    ^   ;       s   e   e 376 001  \0   ,   a   W   _   G   e   t
0027720    W   [   i   ]   ^   ;       E   N   D   ;  \r  \r   P   r   i
0027740    n   t   A   l   l   S   t   i   c   k   s   :   P   U   B   L
0027760    I   C       P   R   O   C   E   D   U   R   E   [   s   t   :
0030000    P   O   I   N   T   E   R       T   O       S   t   i   c   k
0030020    S   t   u   f   f   ,   t   o   p   :   C   A   R   D   I   N
0030040    A   L   ]   =  \r           B   E   G   I   N       O   P   E
0030060    N       I   O   D   e   f   s   ;  \r           i   :   C   A
0030100    R   D   I   N   A   L   ;           a   :   S   t   i   c   k
0030120    ;  \r           W   r   i   t   e   C   h   a   r   [   C   R
0030140    ]   ;  \r           F   O   R       i       I   N       [   0
0030160    .   .   t   o   p   ]       D   O  \r                   a   _
0030200    s   t   [   i   ]   ;  \r                   W   r   i   t   e
0030220    C   h   a   r   [   C   R   ]   ;  \r                   W   r
0030240    i   t   e   N   u   m   b   e   r   [   i   ,   [   1   0   ,
0030260    F   A   L   S   E   ,   T   R   U   E   ,   3   ]   ]   ;  \r
0030300                    W   r   i   t   e   S   t 376 001  \0   $   |
0030320    r   i   n   g   [   S   E   L   E   C   T       a   .   d   i
0030340    r       F   R   O   M       v   =   >   "           v   e   r
0030360    t           "   ,       E   N   D   C   A   S   E   =   >   "
0030400            h   o   r   r           "   ]   ;  \r                
0030420    W   r   i   t   e   S   t   r   i   n   g   [   S   E   L   E
0030440    C   T       a   .   c   o   l   o   r       F   R   O   M  \r
0030460                            r   =   >   "           r   e   d   "
0030500    ,       g   =   >   "   g   r   e   e   n   "   ,       b   =
0030520    >   "       b   l   u   e   "   ,       E   N   D   C   A   S
0030540    E   =   >   "   e   r   r   o   r   "   ]   ;  \r            
0030560        W   r   i   t   e   N   u   m   b   e   r   [   a   .   x
0030600    ,           [   1   0   ,   F   A   L   S   E   ,   T   R   U
0030620    E   ,   5   ]   ]   ;  \r                   W   r   i   t   e
0030640    N   u   m   b   e   r   [   a   .   y   ,           [   1   0
0030660    ,   F   A   L   S   E   ,   T   R   U   E   ,   5   ]   ]   ;
0030700   \r                   W   r   i   t   e   N   u   m   b   e   r
0030720  376 001  \0   J   $   [   a   .   e   n   d   ,   [   1   0   ,
0030740    F   A   L   S   E   ,   T   R   U   E   ,   5   ]   ]   ;  \r
0030760                    E   N   D   L   O   O   P   ;  \r           E
0031000    N   D   ;   -   -   p   r   i   n   t       s   t   i   c   k
0031020    s  \r  \r   P   r   i   n   t   A   l   l   C   o   n   t   a
0031040    c   t   s   :   P   U   B   L   I   C       P   R   O   C   E
0031060    D   U   R   E   [   c   :   P   O   I   N   T   E   R       T
0031100    O       C   o   n   S   t   u   f   f   ,   t   o   p   :   C
0031120    A   R   D   I   N   A   L   ]   =  \r           B   E   G   I
0031140    N       O   P   E   N       I   O   D   e   f   s   ;  \r    
0031160        i   :   C   A   R   D   I   N   A   L   ;  \r           W
0031200    r   i   t   e   C   h   a   r   [   C   R   ]   ;  \r        
0031220    F   O   R       i       I   N       [   0   .   .   t   o   p
0031240    ]       D   O  \r                   W   r   i   t   e   C   h
0031260    a   r   [   C   R   ]   ;  \r                   W   r   i   t
0031300    e   N   u   m   b   e   r   [   i   ,   [   1   0   ,   F   A
0031320    L   S   E   ,   T 376 001  \0 024 342   R   U   E   ,   3   ]
0031340    ]   ;  \r                   W   r   i   t   e   S   t   r   i
0031360    n   g   [   B   e   a   d   T   y   p   e   T   o   S   t   r
0031400    i   n   g   [   c   [   i   ]   .   t   ]   ]   ;  \r        
0031420            W   r   i   t   e   N   u   m   b   e   r   [   c   [
0031440    i   ]   .   x   ,           [   1   0   ,   F   A   L   S   E
0031460    ,   T   R   U   E   ,   5   ]   ]   ;  \r                   W
0031500    r   i   t   e   N   u   m   b   e   r   [   c   [   i   ]   .
0031520    y   ,           [   1   0   ,   F   A   L   S   E   ,   T   R
0031540    U   E   ,   5   ]   ]   ;  \r                   E   N   D   L
0031560    O   O   P   ;  \r           E   N   D   ;   -   -   p   r   i
0031600    n   t       s   t   i   c   k   s  \r  \r   P   r   i   n   t
0031620    D   e   s   :   P   U   B   L   I   C       P   R   O   C   E
0031640    D   U   R   E   [   x   ,   y   ,   z   :   P   O   I   N   T
0031660    E   R       T   O       D   e   s   A   r   r   a   y   ]   =
0031700        B   E   G   I   N       O   P   E   N       I   O   D   e
0031720    f   s   ;  \r           i   ,   j   : 376 001  \0 006   9   C
0031740    A   R   D   I   N   A   L   ;  \r           W   r   i   t   e
0031760    C   h   a   r   [   C   R   ]   ;  \r           W   r   i   t
0032000    e   S   t   r   i   n   g   [   "       D   e   s   4   ,    
0032020    D   e   s   5       A   N   D       D   e   s   6   "   ]   ;
0032040   \r           F   O   R       i       I   N       [   0   .   .
0032060    7   ]       D   O  \r                   W   r   i   t   e   C
0032100    h   a   r   [   C   R   ]   ;  \r                   F   O   R
0032120        j       I   N       [   0   .   .   7   ]       D   O    
0032140    W   r   i   t   e   N   u   m   b   e   r   [   x   [   i   ]
0032160    [   j   ]   ,           [   1   0   ,   F   A   L   S   E   ,
0032200    T   R   U   E   ,   3   ]   ]   ;       E   N   D   L   O   O
0032220    P   ;  \r                   W   r   i   t   e   S   t   r   i
0032240    n   g   [   "       "   ]   ;  \r                   F   O   R
0032260        j       I   N       [   0   .   .   7   ]       D   O    
0032300    W   r   i   t   e   N   u   m   b   e   r   [   y   [   i   ]
0032320    [   j   ]   ,           [   1   0   ,   F   A   L   S   E 376
0032340  001  \0   e 004   ,   T   R   U   E   ,   3   ]   ]   ;       E
0032360    N   D   L   O   O   P   ;  \r                   W   r   i   t
0032400    e   S   t   r   i   n   g   [   "       "   ]   ;  \r        
0032420            F   O   R       j       I   N       [   0   .   .   7
0032440    ]       D   O       W   r   i   t   e   N   u   m   b   e   r
0032460    [   z   [   i   ]   [   j   ]   ,           [   1   0   ,   F
0032500    A   L   S   E   ,   T   R   U   E   ,   3   ]   ]   ;       E
0032520    N   D   L   O   O   P   ;  \r           E   N   D   L   O   O
0032540    P   ;  \r                   W   r   i   t   e   C   h   a   r
0032560    [   C   R   ]   ;  \r           E   N   D   ;  \r  \r   P   r
0032600    i   n   t   L   o   n   g   :   P   U   B   L   I   C       P
0032620    R   O   C   E   D   U   R   E   [   i   :   L   O   N   G    
0032640    C   A   R   D   I   N   A   L   ]   =       B   E   G   I   N
0032660   \r           O   P   E   N       I   O   D   e   f   s   ;  \r
0032700            k   :   C   A   R   D   I   N   A   L   _       0   ;
0032720   \r           W   H   I   L   E       i   >       1   0   0   0
0032740    0       D   O 376 001  \0 345 327      \r  \t   i   _       i
0032760    /   1   0   ;  \r  \t   k   _       k   +       1   ;       E
0033000    N   D   L   O   O   P   ;  \r           W   r   i   t   e   N
0033020    u   m   b   e   r   [   I   n   l   i   n   e   D   e   f   s
0033040    .   L   o   w   H   a   l   f   [   i   ]   ,   [   1   0   ,
0033060    F   A   L   S   E   ,   T   R   U   E   ,   5   ]   ]   ;  \r
0033100            W   r   i   t   e   C   h   a   r   [   '   E   ]   ;
0033120   \r           W   r   i   t   e   N   u   m   b   e   r   [   k
0033140    ,   [   1   0   ,   F   A   L   S   E   ,   T   R   U   E   ,
0033160    1   ]   ]   ;  \r           E   N   D   ;  \r  \r   B   e   a
0033200    d   T   y   p   e   T   o   S   t   r   i   n   g   :   P   R
0033220    O   C   E   D   U   R   E   [   t   :   B   e   a   d   T   y
0033240    p   e   ]       R   E   T   U   R   N   S       [   S   T   R
0033260    I   N   G   ]   =   B   E   G   I   N  \r                   R
0033300    E   T   U   R   N   [   S   E   L   E   C   T       t       F
0033320    R   O   M  \r                           n   o   n   e       =
0033340    >   "       n   o   n   e   "   , 376 001  \0 004 354  \r    
0033360                        a   l   l           =   >   "           a
0033400    l   l   "   ,  \r                           r   g            
0033420    =   >   "               r   g   "   ,  \r                    
0033440        r   b               =   >   "               r   b   "   ,
0033460   \r                           b   g               =   >   "    
0033500            b   g   "   ,  \r                           t   t    
0033520            =   >   "           t   t   H   "   ,  \r            
0033540                d   d               =   >   "           d   d   H
0033560    "   ,  \r                           t   t   V           =   >
0033600    "           t   t   V   "   ,  \r                           d
0033620    d   V           =   >   "           d   d   V   "   ,  \r    
0033640                        e   n   d   G       =   >   "       e   n
0033660    d   G   "   ,  \r                           e   n   d   R    
0033700    =   >   "       e   n   d   R   "   ,  \r                    
0033720        e   n   d   B       =   >   "       e   n   d   B   "   ,
0033740   \r                           s   t   u   b       =   > 376 001
0033760   \0  \r   /   "       s   t   u   b   "   ,  \r                
0034000            j   c   t   n   G   =   >   "   j   c   t   n   G   "
0034020    ,  \r                           j   c   t   n   R   =   >   "
0034040    j   c   t   n   R   "   ,  \r                           j   c
0034060    t   n   B   =   >   "   j   c   t   n   B   "   ,  \r        
0034100                    b   f               =   >   "               b
0034120    f   "   ,  \r                           w   i   r   e   G   =
0034140    >   "   w   i   r   e   G   "   ,  \r                        
0034160    w   i   r   e   R   =   >   "   w   i   r   e   R   "   ,  \r
0034200                            w   i   r   e   B   =   >   "   w   i
0034220    r   e   B   "   ,  \r                           w   i   r   e
0034240    O   =   >   "   w   i   r   e   O   "   ,  \r                
0034260            e   n   d   O       =   >   "       e   n   d   O   "
0034300    ,  \r                           E   N   D   C   A   S   E   =
0034320    >   E   R   R   O   R   ]   ;  \r           E   N   D   ;  \r
0034340   \r   P   r   i   n   t   B   e   a   d   s   :   P   U   B   L
0034360    I   C     376 001  \0 371 037   P   R   O   C   E   D   U   R
0034400    E   =       B   E   G   I   N       O   P   E   N       I   O
0034420    D   e   f   s   ;  \r           I   F       d   e   b   u   g
0034440    B   e   a   d   s       T   H   E   N       B   E   G   I   N
0034460        W   r   i   t   e   C   h   a   r   [   C   R   ]   ;    
0034500    E   n   u   m   e   r   a   t   e   B   e   a   d   s   [   P
0034520    r   i   n   t   B   e   a   d   ]   ;       E   N   D   ;  \r
0034540            E   N   D   ;  \r  \r   P   r   i   n   t   B   e   a
0034560    d   :   P   R   O   C   E   D   U   R   E   [   b   :   C   A
0034600    R   D   I   N   A   L   ,   b   p   i   :   B   e   a   d   P
0034620    t   r   ]   =       B   E   G   I   N       O   P   E   N    
0034640    I   O   D   e   f   s   ;  \r                   W   r   i   t
0034660    e   C   h   a   r   [   C   R   ]   ;  \r                   W
0034700    r   i   t   e   N   u   m   b   e   r   [   b   ,           [
0034720    1   0   ,   F   A   L   S   E   ,   T   R   U   E   ,   3   ]
0034740    ]   ;  \r                   W   r   i   t   e   S   t   r   i
0034760    n   g   [   "       [   "   ] 376 001  \0 235   v   ;  \r    
0035000                W   r   i   t   e   S   t   r   i   n   g   [   B
0035020    e   a   d   T   y   p   e   T   o   S   t   r   i   n   g   [
0035040    b   p   i   .   t   ]   ]   ;  \r                   W   r   i
0035060    t   e   N   u   m   b   e   r   [   b   p   i   .   x   ,    
0035100        [   1   0   ,   F   A   L   S   E   ,   T   R   U   E   ,
0035120    4   ]   ]   ;  \r                   W   r   i   t   e   S   t
0035140    r   i   n   g   [   "   ,   "   ]   ;  \r                   W
0035160    r   i   t   e   N   u   m   b   e   r   [   b   p   i   .   y
0035200    ,           [   1   0   ,   F   A   L   S   E   ,   T   R   U
0035220    E   ,   4   ]   ]   ;  \r                   W   r   i   t   e
0035240    S   t   r   i   n   g   [   "   ,   "   ]   ;  \r            
0035260        W   r   i   t   e   N   u   m   b   e   r   [   b   p   i
0035300    .   h   ,           [   1   0   ,   F   A   L   S   E   ,   F
0035320    A   L   S   E   ,   4   ]   ]   ;  \r                   W   r
0035340    i   t   e   S   t   r   i   n   g   [   "   ,   "   ]   ;  \r
0035360                    W   r   i   t   e   N   u   m   b 376 001  \0
0035400    o   %   e   r   [   b   p   i   .   w   ,           [   1   0
0035420    ,   F   A   L   S   E   ,   F   A   L   S   E   ,   4   ]   ]
0035440    ;  \r                   W   r   i   t   e   S   t   r   i   n
0035460    g   [   "   ,   "   ]   ;  \r                   W   r   i   t
0035500    e   N   u   m   b   e   r   [   b   p   i   .   e   x   t   e
0035520    r   n   a   l   ,           [   1   0   ,   F   A   L   S   E
0035540    ,   T   R   U   E   ,   2   ]   ]   ;  \r                   W
0035560    r   i   t   e   C   h   a   r   [   '   ]   ]   ;  \r        
0035600            I   F       b   p   i   .   b   e   a   d   U   #   n
0035620    o   B   e   a   d       O   R       b   p   i   .   b   e   a
0035640    d   D   #   n   o   B   e   a   d       O   R       b   p   i
0035660    .   b   e   a   d   L   #   n   o   B   e   a   d  \r        
0035700                                    O   R       b   p   i   .   b
0035720    e   a   d   R   #   n   o   B   e   a   d       O   R       b
0035740    p   i   .   b   e   a   d   T   #   n   o   B   e   a   d  \r
0035760                    T   H   E   N       B   E   G   I   N  \r    
0036000          376 001  \0   r   `               W   r   i   t   e   S
0036020    t   r   i   n   g   [   "       u   d   l   r   t   =   "   ]
0036040    ;  \r                           P   r   i   n   t   N   e   i
0036060    g   h   b   o   r   [   b   p   i   .   b   e   a   d   U   ]
0036100    ;  \r                           P   r   i   n   t   N   e   i
0036120    g   h   b   o   r   [   b   p   i   .   b   e   a   d   D   ]
0036140    ;  \r                           P   r   i   n   t   N   e   i
0036160    g   h   b   o   r   [   b   p   i   .   b   e   a   d   L   ]
0036200    ;  \r                           P   r   i   n   t   N   e   i
0036220    g   h   b   o   r   [   b   p   i   .   b   e   a   d   R   ]
0036240    ;  \r                           P   r   i   n   t   N   e   i
0036260    g   h   b   o   r   [   b   p   i   .   b   e   a   d   T   ]
0036300    ;  \r                           W   r   i   t   e   S   t   r
0036320    i   n   g   [   "       n       "   ]   ;  \r                
0036340            I   F       b   p   i   .   n   o   o   d   l   e   #
0036360    t   o   p   N   o   o   d   l   e  \r                        
0036400            T   H   E   N     376 001  \0 036 254   W   r   i   t
0036420    e   N   u   m   b   e   r   [   b   p   i   .   n   o   o   d
0036440    l   e   ,       [   1   0   ,   F   A   L   S   E   ,   T   R
0036460    U   E   ,   4   ]   ]  \r                                   E
0036500    L   S   E       W   r   i   t   e   S   t   r   i   n   g   [
0036520    "       x   x       "   ]   ;  \r                           W
0036540    r   i   t   e   S   t   r   i   n   g   [   "       c       "
0036560    ]   ;  \r                           W   r   i   t   e   N   u
0036600    m   b   e   r   [   b   p   i   .   c   i   r   c   u   i   t
0036620    ,       [   1   0   ,   F   A   L   S   E   ,   T   R   U   E
0036640    ,   4   ]   ]   ;  \r                           E   N   D   ;
0036660   \r           E   N   D   ;   -   -   p   r   i   n   t       b
0036700    e   a   d  \r  \r   P   r   i   n   t   N   e   i   g   h   b
0036720    o   r   :   P   R   O   C   E   D   U   R   E   [   q   :   C
0036740    A   R   D   I   N   A   L   ]   =   B   E   G   I   N       O
0036760    P   E   N       I   O   D   e   f   s   ;  \r                
0037000    I   F       q   =   n   o   B   e   a   d     376 001  \0 026
0037020  372   T   H   E   N       W   r   i   t   e   S   t   r   i   n
0037040    g   [   "           x   x   "   ]       E   L   S   E       W
0037060    r   i   t   e   N   u   m   b   e   r   [   q   ,           [
0037100    1   0   ,   F   A   L   S   E   ,   T   R   U   E   ,   4   ]
0037120    ]   ;  \r           E   N   D   ;  \r  \r   P   r   i   n   t
0037140    B   e   n   d   :   P   R   O   C   E   D   U   R   E   [   q
0037160    :   C   A   R   D   I   N   A   L   ]   =   B   E   G   I   N
0037200        O   P   E   N       I   O   D   e   f   s   ;  \r        
0037220    S   E   L   E   C   T       q       F   R   O   M  \r        
0037240            -   1   =   >   W   r   i   t   e   C   h   a   r   [
0037260    '       ]   ;  \r                   w   h   o   l   e   W   i
0037300    r   e   =   >   W   r   i   t   e   C   h   a   r   [   '   W
0037320    ]   ;  \r                   E   N   D   C   A   S   E   =   >
0037340    W   r   i   t   e   N   u   m   b   e   r   [   q   ,   [   1
0037360    0   ,   F   A   L   S   E   ,   T   R   U   E   ,   3   ]   ]
0037400    ;  \r           E   N   D   ;  \r  \r   -   -       -       -
0037420      376 001  \0 022   /   P   R   I   N   T       G   E   O   M
0037440    E   T   R   Y       -       -       -  \r  \r   F   i   n   d
0037460    B   o   u   n   d   i   n   g   B   o   x   :   P   U   B   L
0037500    I   C       P   R   O   C   E   D   U   R   E   =  \r        
0037520    B   E   G   I   N       m   a   x   X   _   m   a   x   Y   _
0037540    0   ;       E   n   u   m   e   r   a   t   e   B   e   a   d
0037560    s   [   O   n   e   B   o   u   n   d   ]   ;       E   N   D
0037600    ;  \r  \r   O   n   e   B   o   u   n   d   :   P   R   O   C
0037620    E   D   U   R   E   [   i   :   C   A   R   D   I   N   A   L
0037640    ,   b   p   i   :   B   e   a   d   P   t   r   ]   =   B   E
0037660    G   I   N  \r           m   a   x   X   _   M   A   X   [   b
0037700    p   i   .   x   +   b   p   i   .   w   ,   m   a   x   X   ]
0037720    ;  \r           m   a   x   Y   _   M   A   X   [   b   p   i
0037740    .   y   +   b   p   i   .   h   ,   m   a   x   Y   ]   ;  \r
0037760            E   N   D   ;  \r  \r   h   a   l   f   H   e   i   g
0040000    h   t   :   I   N   T   E   G   E   R   =   1   2   0   0   0
0040020    ;  \r   h   a   l   f 376 001  \0   5 331   W   i   d   t   h
0040040    :   I   N   T   E   G   E   R   =   8   0   0   0   ;  \r  \r
0040060    P   r   i   n   t   G   e   o   m   e   t   r   y   :   P   U
0040100    B   L   I   C       P   R   O   C   E   D   U   R   E   [   n
0040120    a   m   e   :   S   T   R   I   N   G   ]   =       B   E   G
0040140    I   N  \r           d   i   s   p   l   a   y   _   F   A   L
0040160    S   E   ;  \r           g   e   o   m   _   S   y   s   t   e
0040200    m   D   e   f   s   .   A   l   l   o   c   a   t   e   S   e
0040220    g   m   e   n   t   [   S   I   Z   E   [   g   e   o   m   S
0040240    t   u   f   f   ]   ]   ;  \r           F   i   n   d   B   o
0040260    u   n   d   i   n   g   B   o   x   [   ]   ;  \r           s
0040300    c   a   l   e   _   M   I   N   [   1   0   0   ,   2   *   h
0040320    a   l   f   H   e   i   g   h   t   /   m   a   x   Y   ,   2
0040340    *   h   a   l   f   W   i   d   t   h   /   m   a   x   X   ]
0040360    ;  \r           c   o   r   n   e   r   X   _   h   a   l   f
0040400    W   i   d   t   h   -   s   c   a   l   e   /   2   *   m   a
0040420    x   X   ;  \r           c   o   r   n   e 376 001  \0   J   *
0040440    r   Y   _   h   a   l   f   H   e   i   g   h   t   -   s   c
0040460    a   l   e   /   2   *   m   a   x   Y   ;  \r           P   r
0040500    e   s   s   D   e   f   s   .   I   n   i   t   P   r   e   s
0040520    s   F   i   l   e   D   e   s   c   r   i   p   t   o   r   [
0040540    @   p   r   e   s   s   ,   n   a   m   e   ]   ;  \r        
0040560    E   n   u   m   e   r   a   t   e   B   e   a   d   s   [   P
0040600    u   t   P   a   t   t   e   r   n   ]   ;  \r           P   r
0040620    e   s   s   D   e   f   s   .   C   l   o   s   e   P   r   e
0040640    s   s   F   i   l   e   [   @   p   r   e   s   s   ]   ;  \r
0040660            d   i   s   p   l   a   y   _   T   R   U   E   ;  \r
0040700            S   y   s   t   e   m   D   e   f   s   .   F   r   e
0040720    e   S   e   g   m   e   n   t   [   g   e   o   m   ]   ;  \r
0040740            E   N   D   ;   -   -   p   r   i   n   t       g   e
0040760    o   m  \r  \r   s   c   a   l   e   :   I   N   T   E   G   E
0041000    R   ;  \r  \r   P   u   t   P   a   t   t   e   r   n   :   P
0041020    R   O   C   E   D   U   R   E   [   b   :   C   A   R   D   I
0041040  376 001  \0  \a 020   N   A   L   ,   b   p   i   :   B   e   a
0041060    d   P   t   r   ]   =   B   E   G   I   N  \r           t   y
0041100    p   e   :   B   e   a   d   T   y   p   e   _   b   p   i   .
0041120    t   ;  \r           x   :   I   N   T   E   G   E   R   _   b
0041140    p   i   .   x   ;  \r           y   :   I   N   T   E   G   E
0041160    R   _   b   p   i   .   y   ;  \r           h   :   I   N   T
0041200    E   G   E   R   _   b   p   i   .   h   ;  \r           w   :
0041220    I   N   T   E   G   E   R   _   b   p   i   .   w   ;  \r    
0041240        c   :   C   o   l   o   r   _   d   e   s   P   [   t   y
0041260    p   e   ]   .   c   o   l   o   r   ;  \r           I   F    
0041300    h   <   =   0       O   R       w   <   =   0       T   H   E
0041320    N       R   E   T   U   R   N   ;  \r           I   F       ~
0041340    b   p   i   .   w   i   r   e       O   R       b   p   i   .
0041360    b   e   a   d   R   =   n   o   B   e   a   d       T   H   E
0041400    N       P   u   t   B   o   x   [   c   ,   x   ,   y   ,   w
0041420    ,   h   ]   ;  \r           S   E   L   E   C   T       t   y
0041440    p   e       F   R 376 001  \0 324 364   O   M  \r            
0041460        t   t   =   >   B   E   G   I   N  \r                    
0041500                            P   u   t   B   o   x   [   r   ,   x
0041520    ,   y   -   3   ,   w   ,   3   ]   ;  \r                    
0041540                            P   u   t   B   o   x   [   r   ,   x
0041560    ,   y   +   h   ,   w   ,   3   ]   ;  \r                    
0041600                            E   N   D   ;  \r                   d
0041620    d   =   >   B   E   G   I   N  \r                            
0041640                    P   u   t   B   o   x   [   r   ,   x   ,   y
0041660    -   2   ,   w   ,   2   ]   ;  \r                            
0041700                    P   u   t   B   o   x   [   r   ,   x   ,   y
0041720    +   h   ,   w   ,   2   ]   ;  \r                            
0041740                    E   N   D   ;  \r                   t   t   V
0041760    =   >   B   E   G   I   N  \r                                
0042000                P   u   t   B   o   x   [   r   ,   x   -   3   ,
0042020    y   ,   3   ,   h   ]   ;  \r                                
0042040                P   u   t   B   o   x   [ 376 001  \0  \f 016   r
0042060    ,   x   +   w   ,   y   ,   3   ,   h   ]   ;  \r            
0042100                                    E   N   D   ;  \r            
0042120        d   d   V   =   >   B   E   G   I   N  \r                
0042140                                P   u   t   B   o   x   [   r   ,
0042160    x   -   2   ,   y   ,   2   ,   h   ]   ;  \r                
0042200                                P   u   t   B   o   x   [   r   ,
0042220    x   +   w   ,   y   ,   2   ,   h   ]   ;  \r                
0042240                                E   N   D   ;  \r                
0042260    b   f   =   >   P   u   t   B   o   x   [   n   o   n   e   ,
0042300    x   +   2   ,   y   +   2   ,   w   -   4   ,   h   -   4   ]
0042320    ;       -   -   s   h   o   w       c   o   n   t   a   c   t
0042340    s  \r                   w   i   r   e   R   ,   w   i   r   e
0042360    B   ,   w   i   r   e   G   =   >   I   F       b   p   i   .
0042400    b   e   a   d   R   #   n   o   B   e   a   d       T   H   E
0042420    N       B   E   G   I   N  \r                           t   h
0042440    i   s   :   C   A   R   D   I   N   A   L   ;  \r         376
0042460  001  \0 266 266                   d   y   ,   n   e   x   t   X
0042500    ,   n   e   x   t   Y   :   I   N   T   E   G   E   R   ;  \r
0042520                            w   i   d   :   I   N   T   E   G   E
0042540    R   _   b   p   i   .   h   ;  \r                           t
0042560    h   i   s   X   :   I   N   T   E   G   E   R   _   b   p   i
0042600    .   x   -   w   i   d   ;  \r                           t   h
0042620    i   s   Y   :   I   N   T   E   G   E   R   _   b   p   i   .
0042640    y   ;  \r                           F   O   R       t   h   i
0042660    s   _   b   p   i   .   n   o   o   d   l   e   ,   n   o   o
0042700    d   l   e   C   h   a   i   n   [   t   h   i   s   ]       U
0042720    N   T   I   L       t   h   i   s   =   t   o   p   N   o   o
0042740    d   l   e       D   O  \r                               I   F
0042760        t   h   i   s   >   t   o   p   N   o   o   d   l   e    
0043000    T   H   E   N       E   r   r   o   r   ;  \r                
0043020                P   u   t   B   o   x   [   c   ,   t   h   i   s
0043040    X   ,   t   h   i   s   Y   ,   n   o   o   d   l   e   D   X
0043060    [   t   h   i 376 001  \0 036   s   s   ]   ,   w   i   d   ]
0043100    ;  \r                               d   y   _   n   o   o   d
0043120    l   e   D   Y   [   t   h   i   s   ]   ;  \r                
0043140                n   e   x   t   X   _   t   h   i   s   X   +   n
0043160    o   o   d   l   e   D   X   [   t   h   i   s   ]   ;  \r    
0043200                            n   e   x   t   Y   _   t   h   i   s
0043220    Y   +   d   y   ;  \r                               P   u   t
0043240    B   o   x   [   c   ,   n   e   x   t   X   ,   M   I   N   [
0043260    t   h   i   s   Y   ,   n   e   x   t   Y   ]   ,   w   i   d
0043300    ,   A   B   S   [   d   y   ]   +   w   i   d   ]   ;  \r    
0043320                            t   h   i   s   X   _   n   e   x   t
0043340    X   ;  \r                               t   h   i   s   Y   _
0043360    n   e   x   t   Y   ;  \r                               E   N
0043400    D   L   O   O   P   ;  \r                           n   e   x
0043420    t   X   _   b   p   i   .   w   +   b   p   i   .   x   ;  \r
0043440                            n   e   x   t   Y   _   G   e   t   [
0043460    b   p   i   .   b   e   a   d   R 376 001  \0 003   #   ]   .
0043500    y   ;  \r                           P   u   t   B   o   x   [
0043520    c   ,   t   h   i   s   X   ,   t   h   i   s   Y   ,   n   e
0043540    x   t   X   -   t   h   i   s   X   ,   w   i   d   ]   ;  \r
0043560                            P   u   t   B   o   x   [   c   ,   n
0043600    e   x   t   X   ,   M   I   N   [   t   h   i   s   Y   ,   n
0043620    e   x   t   Y   ]   ,   w   i   d   ,   A   B   S   [   n   e
0043640    x   t   Y   -   t   h   i   s   Y   ]   +   w   i   d   ]   ;
0043660   \r                           E   N   D   ;  \r                
0043700    j   c   t   n   G   ,   j   c   t   n   R   ,   j   c   t   n
0043720    B   ,   e   n   d   G   ,   e   n   d   R   ,   e   n   d   B
0043740    ,   b   g   ,   r   b   ,   w   i   r   e   O   ,   e   n   d
0043760    O   =   >   N   U   L   L   ;  \r                   E   N   D
0044000    C   A   S   E   =   >   E   r   r   o   r   ;  \r           E
0044020    N   D   ;   -   -   p   u   t       p   a   t   t   e   r   n
0044040   \r  \r   P   u   t   B   o   x   :   P   R   O   C   E   D   U
0044060    R   E   [   c   o   l   o   r   :   C   o   l   o   r 376 001
0044100   \0 335   _   ,   x   ,   y   ,   m   ,   n   :   C   A   R   D
0044120    I   N   A   L   ]   =   B   E   G   I   N  \r           x   1
0044140    ,   y   1   ,   w   1   ,   w   2   :   I   N   T   E   G   E
0044160    R   ;  \r           I   F       m   >   1   0   0   0       O
0044200    R       n   >   1   0   0   0       O   R       c   o   l   o
0044220    r   =   o       T   H   E   N       R   E   T   U   R   N   ;
0044240   \r           I   F       d   i   s   p   l   a   y       T   H
0044260    E   N       B   E   G   I   N       D   i   s   p   l   a   y
0044300    B   o   x   [   c   o   l   o   r   ,   x   ,   y   ,   m   ,
0044320    n   ]   ;       R   E   T   U   R   N   ;       E   N   D   ;
0044340   \r           S   E   L   E   C   T       c   o   l   o   r    
0044360    F   R   O   M  \r                   r   =   >   P   r   e   s
0044400    s   D   e   f   s   .   S   e   t   C   o   l   o   r   [   @
0044420    p   r   e   s   s   ,   2   2   0   ,   1   2   8   ,   2   5
0044440    5   ]   ;  \r                   g   =   >   P   r   e   s   s
0044460    D   e   f   s   .   S   e   t   C   o   l   o   r   [   @   p
0044500    r   e   s 376 001  \0 275 307   s   ,   0   8   0   ,   1   2
0044520    8   ,   2   5   5   ]   ;  \r                   b   =   >   P
0044540    r   e   s   s   D   e   f   s   .   S   e   t   C   o   l   o
0044560    r   [   @   p   r   e   s   s   ,   1   4   0   ,   0   6   4
0044600    ,   2   5   5   ]   ;  \r                   n   o   n   e   =
0044620    >   P   r   e   s   s   D   e   f   s   .   S   e   t   C   o
0044640    l   o   r   [   @   p   r   e   s   s   ,   1   4   0   ,   0
0044660    0   0   ,   0   0   0   ]   ;  \r                   E   N   D
0044700    C   A   S   E   ;  \r           x   1   _   c   o   r   n   e
0044720    r   X   +   s   c   a   l   e   *   x   ;  \r           y   1
0044740    _   c   o   r   n   e   r   Y   +   s   c   a   l   e   *   y
0044760    ;  \r           w   1   _   s   c   a   l   e   *   m   ;  \r
0045000            w   2   _   s   c   a   l   e   *   n   ;  \r        
0045020    I   F       x   1   >   2   *   h   a   l   f   W   i   d   t
0045040    h       O   R       y   1   >   2   *   h   a   l   f   H   e
0045060    i   g   h   t       O   R       x   1   +   w   1   >   2   *
0045100    h   a   l   f   W   i   d   t 376 001  \0       R   h  \r    
0045120                                                        O   R    
0045140    y   1   +   w   2   >   2   *   h   a   l   f   H   e   i   g
0045160    h   t       T   H   E   N       R   E   T   U   R   N   ;  \r
0045200            P   r   e   s   s   D   e   f   s   .   P   u   t   R
0045220    e   c   t   a   n   g   l   e   [   @   p   r   e   s   s   ,
0045240    x   1   ,   y   1   ,   w   1   ,   w   2   ]   ;  \r        
0045260    E   N   D   ;   -   -   P   u   t   B   o   x  \r  \r  \r   -
0045300    -  \r   -   -       G   r   a   p   h   i   c   s       D   i
0045320    s   p   l   a   y       P   r   o   c   e   d   u   r   e   s
0045340   \r   -   -  \r   S   t   a   r   t   D   i   s   p   l   a   y
0045360    :   P   U   B   L   I   C       P   R   O   C   E   D   U   R
0045400    E   =       B   E   G   I   N           -   -   i   n   i   t
0045420    i   a   l   i   z   e       t   h   e       s   c   r   e   e
0045440    n  \r           d   x   M   a   x   _   d   y   M   a   x   _
0045460    I   F       s   m   a   l   l   D   i   s   p   l   a   y    
0045500    T   H   E   N       2   5   6       E   L   S   E 376 001  \0
0045520  370   .       5   1   2   ;  \r           G   r   a   p   h   i
0045540    c   s   D   e   f   s   .   S   e   t   D   e   f   a   u   l
0045560    t   B   i   t   m   a   p   [   d   x   M   a   x   ,   d   y
0045600    M   a   x   ]   ;  \r           O   l   d   D   C   B   _    
0045620    D   C   B   H   e   a   d   ^   ;  \r           S   c   r   e
0045640    e   n       _       G   r   a   p   h   i   c   s   D   e   f
0045660    s   .   T   u   r   n   O   n   G   r   a   p   h   i   c   s
0045700    [   ]   ;  \r           E   N   D   ;  \r  \r   D   i   s   p
0045720    l   a   y   :   P   U   B   L   I   C       P   R   O   C   E
0045740    D   U   R   E   =       B   E   G   I   N  \r           G   r
0045760    a   p   h   i   c   s   D   e   f   s   .   E   r   a   s   e
0046000    A   r   e   a   [   0   ,   0   ,   d   x   M   a   x   ,   d
0046020    y   M   a   x   ]   ;  \r           x   0   _   y   0   _   1
0046040    7   7   7   6   7   B   ;      \r           S   E   L   E   C
0046060    T       M   A   X   [   m   a   x   X   ,   m   a   x   Y   ]
0046100        F   R   O   M  \r                   >   2   5   5       =
0046120    >     376 001  \0 267  \v   s   c   a   l   e   _   1   ;  \r
0046140                    >   1   2   7       =   >       s   c   a   l
0046160    e   _   I   F       s   m   a   l   l   D   i   s   p   l   a
0046200    y       T   H   E   N       1       E   L   S   E       2   ;
0046220   \r                   >   6   3           =   >       s   c   a
0046240    l   e   _   I   F       s   m   a   l   l   D   i   s   p   l
0046260    a   y       T   H   E   N       2       E   L   S   E       4
0046300    ;  \r                   E   N   D   C   A   S   E       =   >
0046320        s   c   a   l   e   _   4   ;  \r           E   n   u   m
0046340    e   r   a   t   e   B   e   a   d   s   [   P   u   t   P   a
0046360    t   t   e   r   n   ]   ;  \r           E   N   D   ;  \r  \r
0046400    M   a   n   i   p   u   l   a   t   e   D   i   s   p   l   a
0046420    y   :   P   U   B   L   I   C       P   R   O   C   E   D   U
0046440    R   E       R   E   T   U   R   N   S   [   p   r   i   n   t
0046460    :   B   O   O   L   E   A   N   ]   =       B   E   G   I   N
0046500   \r           x   1   ,   y   1   :   C   A   R   D   I   N   A
0046520    L   ;  \r           D   O 376 001  \0   /   r           S   E
0046540    L   E   C   T       T   R   U   E       F   R   O   M  \r  \t
0046560            B   l   u   e   B   u   t   t   o   n   [   ]       =
0046600    >       D   i   s   p   l   a   y   [   ]   ;  \r  \t        
0046620    Y   e   l   l   o   w   B   u   t   t   o   n   [   ]       =
0046640    >  \r  \t  \t   B   E   G   I   N  \r  \t  \t   x   1   _   M
0046660    o   u   s   e   X   ^   /   s   c   a   l   e       +   x   0
0046700    ;  \r  \t  \t   y   1   _   (   d   y   M   a   x   -   M   o
0046720    u   s   e   Y   ^   )   /   s   c   a   l   e       +   y   0
0046740    ;  \r  \t  \t   s   c   a   l   e   _   d   x   M   a   x   /
0046760    M   A   X   [   (   x   1   -   x   0   )   ,   (   y   1   -
0047000    y   0   )   ]   ;  \r  \t  \t   G   r   a   p   h   i   c   s
0047020    D   e   f   s   .   E   r   a   s   e   A   r   e   a   [   0
0047040    ,   0   ,   d   x   M   a   x   ,   d   y   M   a   x   ]   ;
0047060   \r  \t  \t   E   n   u   m   e   r   a   t   e   B   e   a   d
0047100    s   [   P   u   t   P   a   t   t   e   r   n   ]   ;  \r    
0047120   \t  \t   E   N   D   ;  \r  \t       R   e   d 376 001  \0   O
0047140    w   B   u   t   t   o   n   [   ]       =   >  \r  \t  \t   B
0047160    E   G   I   N  \r  \t  \t   x   0   _   M   o   u   s   e   X
0047200    ^   /   s   c   a   l   e       +   x   0   ;  \r  \t  \t   y
0047220    0   _   (   d   y   M   a   x   -   M   o   u   s   e   Y   ^
0047240    )   /   s   c   a   l   e       +   y   0   ;  \r  \t  \t   G
0047260    r   a   p   h   i   c   s   D   e   f   s   .   E   r   a   s
0047300    e   A   r   e   a   [   0   ,   0   ,   d   x   M   a   x   ,
0047320    d   y   M   a   x   ]   ;  \r  \t  \t   E   n   u   m   e   r
0047340    a   t   e   B   e   a   d   s   [   P   u   t   P   a   t   t
0047360    e   r   n   ]   ;  \r      \t  \t   E   N   D   ;  \r  \t   K
0047400    e   y   B   o   a   r   d   1   ^   =       1   7   7   7   5
0047420    7   B       =   >   B   E   G   I   N           p   r   i   n
0047440    t   _   T   R   U   E   ;       E   X   I   T   ;       E   N
0047460    D   ;       -   -   p       w   a   s       h   i   t  \r  \t
0047500    K   e   y   B   o   a   r   d   2   ^   =       1   6   7   7
0047520    7   7   B       =   >   B   E   G   I   N           p   r   i
0047540    n 376 001  \0 222 324   t   _   F   A   L   S   E   ;       E
0047560    X   I   T   ;       E   N   D   ;       -   -   q       w   a
0047600    s       h   i   t  \r  \t   E   N   D   C   A   S   E   ;  \r
0047620            E   N   D   L   O   O   P   ;  \r           T   u   r
0047640    n   O   f   f   G   r   a   p   h   i   c   s   [   ]   ;  \r
0047660            D   C   B   H   e   a   d   ^   _       O   l   d   D
0047700    C   B   ;  \r           [   ]   _       I   O   D   e   f   s
0047720    .   R   e   a   d   C   h   a   r   [   ]   ;  \r   E   N   D
0047740    ;  \r  \r   R   e   d   B   u   t   t   o   n   :   P   R   O
0047760    C   E   D   U   R   E       R   E   T   U   R   N   S   [   B
0050000    O   O   L   E   A   N   ]   =       B   E   G   I   N  \r    
0050020        I   F       (   M   o   u   s   e   B   u   t   t   o   n
0050040    s   ^       M   O   D       8   )       <       4  \r        
0050060            T   H   E   N       B   E   G   I   N  \r  \t       U
0050100    N   T   I   L       (   M   o   u   s   e   B   u   t   t   o
0050120    n   s   ^       M   O   D       8   )       >       3       D
0050140    O       E   N   D   L 376 001  \0   n  \r   O   O   P   ;  \r
0050160   \t       R   E   T   U   R   N       [   T   R   U   E   ]   ;
0050200   \r  \t       E   N   D  \r                   E   L   S   E    
0050220    R   E   T   U   R   N       [   F   A   L   S   E   ]   ;  \r
0050240    E   N   D   ;  \r  \r   B   l   u   e   B   u   t   t   o   n
0050260    :   P   R   O   C   E   D   U   R   E       R   E   T   U   R
0050300    N   S   [   B   O   O   L   E   A   N   ]   =       B   E   G
0050320    I   N  \r           I   F       (   M   o   u   s   e   B   u
0050340    t   t   o   n   s   ^       M   O   D       4   )       <    
0050360    2      \r                   T   H   E   N       B   E   G   I
0050400    N  \r  \t       U   N   T   I   L       (   M   o   u   s   e
0050420    B   u   t   t   o   n   s   ^       M   O   D       4   )    
0050440    >       1       D   O       E   N   D   L   O   O   P   ;  \r
0050460   \t       R   E   T   U   R   N       [   T   R   U   E   ]   ;
0050500   \r  \t       E   N   D  \r                   E   L   S   E    
0050520    R   E   T   U   R   N       [   F   A   L   S   E   ]   ;  \r
0050540    E   N   D   ;  \r  \r   Y   e   l   l   o 376 001  \0 216 321
0050560    w   B   u   t   t   o   n   :   P   R   O   C   E   D   U   R
0050600    E       R   E   T   U   R   N   S   [   B   O   O   L   E   A
0050620    N   ]   =       B   E   G   I   N  \r           I   F       (
0050640    M   o   u   s   e   B   u   t   t   o   n   s   ^       M   O
0050660    D       2   )       =       0      \r                   T   H
0050700    E   N       B   E   G   I   N  \r  \t       U   N   T   I   L
0050720        (   M   o   u   s   e   B   u   t   t   o   n   s   ^    
0050740    M   O   D       2   )       #       0       D   O       E   N
0050760    D   L   O   O   P   ;  \r  \t       R   E   T   U   R   N    
0051000    [   T   R   U   E   ]   ;  \r  \t       E   N   D  \r        
0051020            E   L   S   E       R   E   T   U   R   N       [   F
0051040    A   L   S   E   ]   ;  \r   E   N   D   ;  \r  \r   T   u   r
0051060    n   O   f   f   G   r   a   p   h   i   c   s   :   P   R   O
0051100    C   E   D   U   R   E   =       B   E   G   I   N  \r        
0051120    D   C   B   H   e   a   d   ^   _       0   ;  \r           S
0051140    y   s   t   e   m   D   e   f   s   .   F   r   e   e   S   e
0051160  376 001  \0   | 364   g   m   e   n   t   [   S   c   r   e   e
0051200    n   .   b   i   t   s   -       4   ]   ;  \r           S   c
0051220    r   e   e   n   .   b   i   t   s   _       N   I   L   ;  \r
0051240            E   N   D   ;  \r  \r  \r   D   i   s   p   l   a   y
0051260    B   o   x   :   P   R   O   C   E   D   U   R   E   [   c   o
0051300    l   o   r   :   C   o   l   o   r   ,   x   ,   y   ,   m   ,
0051320    n   :   C   A   R   D   I   N   A   L   ]   =   B   E   G   I
0051340    N  \r           x   1   ,   y   1   ,   x   2   ,   y   2   :
0051360        C   A   R   D   I   N   A   L   ;  \r           x   1   _
0051400    s   c   a   l   e   *   (   x   -   x   0   +   m   )   ;  \r
0051420            y   1   _   d   y   M   a   x   -   s   c   a   l   e
0051440    *   (   y   -   y   0   +   n   )   ;  \r           x   2   _
0051460    s   c   a   l   e   *   (   x   -   x   0   )   ;  \r        
0051500    y   2   _   d   y   M   a   x   -   s   c   a   l   e   *   (
0051520    y   -   y   0   )   ;  \r           I   F       x   2   >   1
0051540    5   0   0   0       O   R       y   2   >   1   5   0   0   0
0051560        O   R       c 376 001  \0   S 030   o   l   o   r   =   o
0051600        T   H   E   N       R   E   T   U   R   N   ;  \r        
0051620    I   F       x   1   >   1   5   0   0   0       T   H   E   N
0051640        x   1   _   0   ;  \r           I   F       y   1   >   1
0051660    5   0   0   0       T   H   E   N       y   1   _   0   ;  \r
0051700   \r           S   E   L   E   C   T       c   o   l   o   r    
0051720    F   R   O   M  \r                   b   =   >   G   r   a   p
0051740    h   i   c   s   D   e   f   s   .   S   e   t   G   r   a   y
0051760    L   e   v   e   l   [   1   4   ]   ;           -   -   l   i
0052000    g   h   t       g   r   e   y  \r                   g   =   >
0052020    G   r   a   p   h   i   c   s   D   e   f   s   .   S   e   t
0052040    G   r   a   y   L   e   v   e   l   [   1   0   ]   ;        
0052060    -   -   d   a   r   k       g   r   e   y  \r                
0052100    r   =   >   G   r   a   p   h   i   c   s   D   e   f   s   .
0052120    S   e   t   G   r   a   y   L   e   v   e   l   [   3   ]   ;
0052140                -   -   a   l   m   o   s   t       b   l   a   c
0052160    k  \r                   n   o   n   e 376 001  \0   I   i   =
0052200    >   G   r   a   p   h   i   c   s   D   e   f   s   .   S   e
0052220    t   G   r   a   y   L   e   v   e   l   [   0   ]   ;   -   -
0052240    b   l   a   c   k  \r                   E   N   D   C   A   S
0052260    E   ;  \r           G   r   a   p   h   i   c   s   D   e   f
0052300    s   .   P   u   t   G   r   a   y   [   x   1   ,   y   1   ,
0052320    x   2   ,   y   2   ]   ;  \r           E   N   D   ;   -   -
0052340    D   i   s   p   l   a   y   B   o   x  \r  \r  \r  \r   E   N
0052360    D   .   .  \r  \r  \r 032   (   1   7   9   2   )   \   i   1
0052400    3   I   1   i   6   I   3   5   6   i   4   6   I   9   7   3
0052420    i   2   1   I   3   5   i   2   6   I   7   2   2   7   b   1
0052440    4   B   1   4   3   1   i   1   3   I   1   4   7   8   b   2
0052460    8   B   3   b   1   2   B   2   6   i   2   3   I   1   6   6
0052500    b   7   B   2   9   6   b   1   7   B   5   3   8   i   9   I
0052520    5   7   i   1   0   I   2   1   i   2   I   7   0   b   9   B
0052540    1   8   1   b   1   0   B   1   8   2   b   1   2   B   1   8
0052560    2   b   1   5   B   1   0   4   b   1   0   B   3   2   6 376
0052600   \0 025 224 257   i   1   0   I   4   2   i   9   I   4   2   i
0052620    1   2   I   4   2   i   5   I  \r 377  \0  \0   c   r   e   a
0052640    t   e   b   e   a   d   s   5   .   m   e   s   a  \0 376 001
0052660   \0   + 205   -   -       C   r   e   a   t   e   B   e   a   d
0052700    s   5   .   m   e   s   a  \r   -   -       p   u   t       i
0052720    n       l   o   n   g       p   o   i   n   t   e   r   s  \r
0052740   \r   -   -       d   d       e   t   c  \r   -   -       t   w
0052760    o       b   a   c   k   f   a   c   i   n   g       t   r   a
0053000    n   s   i   s   t   o   r   s   !  \r  \r   D   I   R   E   C
0053020    T   O   R   Y       I   O   D   e   f   s   :   F   R   O   M
0053040    "   I   O   D   e   f   s   "   ,  \r                        
0053060                    B   e   a   d   s   D   e   f   s   :   F   R
0053100    O   M   "   B   e   a   d   s   D   e   f   s   "   ,  \r    
0053120                                        I   n   l   i   n   e   D
0053140    e   f   s   :   F   R   O   M   "   I   n   l   i   n   e   D
0053160    e   f   s   "   ,  \r                                        
0053200    S   y   s   t   e   m   D   e   f   s   :   F   R   O   M   "
0053220    S   y   s   t   e   m   D   e   f   s   "   ,  \r            
0053240                                S   t   r   i   n   g   D   e   f
0053260    s   :   F 376 001  \0   -   S   R   O   M   "   S   t   r   i
0053300    n   g   D   e   f   s   "   ,  \r                            
0053320                S   t   r   e   a   m   D   e   f   s   :   F   R
0053340    O   M   "   S   t   r   e   a   m   D   e   f   s   "   ;  \r
0053360    C   r   e   a   t   e   B   e   a   d   s   :   P   R   O   G
0053400    R   A   M  \r           I   M   P   O   R   T   S       I   n
0053420    l   i   n   e   D   e   f   s   ,   S   y   s   t   e   m   D
0053440    e   f   s   ,   S   t   r   i   n   g   D   e   f   s   ,   S
0053460    t   r   e   a   m   D   e   f   s   ,   I   O   D   e   f   s
0053500    ,   B   e   a   d   s   D   e   f   s  \r           E   X   P
0053520    O   R   T   S       B   e   a   d   s   D   e   f   s       =
0053540   \r           B   E   G   I   N       O   P   E   N       B   e
0053560    a   d   s   D   e   f   s   ;  \r  \r   E   r   r   o   r   :
0053600    S   I   G   N   A   L   =   C   O   D   E   ;  \r   I   l   l
0053620    e   g   a   l   I   n   p   u   t   :   S   I   G   N   A   L
0053640    =   C   O   D   E   ;  \r  \r   s   o   m   e   B   e   a   d
0053660    :   C   A   R   D   I   N   A 376 001  \0   - 301   L   =   n
0053700    o   B   e   a   d   +   1   ;  \r  \r   P   a   c   k   e   d
0053720    I   n   p   u   t   :   T   Y   P   E   =   R   E   C   O   R
0053740    D   [   a   :   [   0   .   .   1   7   B   ]   ,   b   :   [
0053760    0   .   .   7   7   7   7   B   ]   ]   ;  \r   P   a   c   k
0054000    e   d   B   y   t   e   s   :   T   Y   P   E   =   R   E   C
0054020    O   R   D   [   a   ,   b   :   B   y   t   e   ]   ;  \r   B
0054040    y   t   e   :   T   Y   P   E   =   [   0   .   .   2   5   6
0054060    )   ;  \r   p   i   e   c   e   s   :   P   a   c   k   e   d
0054100    B   y   t   e   s   ;  \r   r   i   g   h   t   :   B   O   O
0054120    L   E   A   N   ;  \r   a   l   t   o   Y   M   a   x   :   C
0054140    A   R   D   I   N   A   L   =   1   0   0   0   ;  \r   i   n
0054160    p   u   t   S   t   r   e   a   m   :   S   t   r   e   a   m
0054200    D   e   f   s   .   D   i   s   k   H   a   n   d   l   e   ;
0054220   \r  \r   a   l   l   S   t   i   c   k   s   :   P   O   I   N
0054240    T   E   R       T   O       S   t   i   c   k   S   t   u   f
0054260    f   ;  \r   t   o   p   S   t   i   c   k   :   C 376 001  \0
0054300  360   A   A   R   D   I   N   A   L   ;  \r   x   L   o   ,   y
0054320    L   o   ,   x   H   i   ,   y   H   i   :   [   0   .   .   1
0054340    0   0   0   0   ]   ;  \r   s   t   i   c   k   S   c   a   l
0054360    i   n   g   :   C   A   R   D   I   N   A   L   =   2   0   ;
0054400   \r  \r   -   -   a   l   l   C   o   n   t   a   c   t   s   :
0054420    C   o   n   S   t   u   f   f   ;  \r   -   -   t   o   p   C
0054440    o   n   t   a   c   t   :   C   A   R   D   I   N   A   L   _
0054460    0   ;  \r  \r   g   e   t   W   h   a   t   Y   o   u   S   e
0054500    e   :   P   U   B   L   I   C       B   O   O   L   E   A   N
0054520    ;  \r  \r   -   -   B   e   a   d   T   y   p   e   :   T   Y
0054540    P   E   =   {   n   o   n   e   ,   a   l   l   ,   r   g   ,
0054560    r   b   ,   b   g   ,   t   t   ,   d   d   ,   t   t   V   ,
0054600    d   d   V   ,   e   n   d   G   ,   e   n   d   R   ,   e   n
0054620    d   B   ,   s   t   u   b   ,  \r   -   -                    
0054640                                            j   c   t   n   ,   j
0054660    c   t   n   R   ,   j   c   t   n   B   ,   b   f   ,   w   i
0054700    r   e 376 001  \0   0 002   G   ,   w   i   r   e   R   ,   w
0054720    i   r   e   B   ,   w   i   r   e   O   ,   o   f   }   ;  \r
0054740   \r   t   y   p   e   F   r   o   m   C   o   l   o   r   :   A
0054760    R   R   A   Y       C   o   l   o   r       O   F       A   R
0055000    R   A   Y       C   o   l   o   r       O   F       B   e   a
0055020    d   T   y   p   e   _   [  \r           [   n   o   n   e   ,
0055040    e   n   d   R   ,   e   n   d   B   ,   e   n   d   G   ,   e
0055060    n   d   R   ,   e   n   d   O   ]   ,  \r           [   n   o
0055100    n   e   ,   j   c   t   n   R   ,   r   b   ,   r   g   ,   j
0055120    c   t   n   R   ,   e   n   d   O   ]   ,  \r           [   n
0055140    o   n   e   ,   r   b   ,   j   c   t   n   B   ,   b   g   ,
0055160    r   b   ,   e   n   d   O   ]   ,  \r           [   n   o   n
0055200    e   ,   r   g   ,   b   g   ,   j   c   t   n   G   ,   r   g
0055220    ,   e   n   d   O   ]   ,  \r           [   n   o   n   e   ,
0055240    j   c   t   n   R   ,   r   b   ,   r   g   ,   j   c   t   n
0055260    R   ,   e   n   d   O   ]   ,  \r           [   n   o   n   e
0055300    ,   e   n   d   O   ,   e 376 001  \0 314 225   n   d   O   ,
0055320    e   n   d   O   ,   e   n   d   O   ,   e   n   d   O   ]   ]
0055340    ;  \r  \r   C   o   l   o   r   T   o   L   e   v   e   l   :
0055360    A   R   R   A   Y       C   o   l   o   r       O   F       C
0055400    A   R   D   I   N   A   L   _   [   0   ,   1   ,   2   ,   1
0055420    ,   1   ,   3   ]   ;  \r                           -   -   n
0055440    o   n   e   ,   r   e   d   ,   b   l   u   e   ,   g   r   e
0055460    e   n   ,   y   e   l   l   o   w   ,   o   r   a   n   g   e
0055500   \r   C   o   l   o   r   T   o   T   y   p   e   :   A   R   R
0055520    A   Y       C   o   l   o   r       O   F       A   R   R   A
0055540    Y       C   o   l   o   r       O   F       B   e   a   d   T
0055560    y   p   e   _   -   -   1   s   t       g   u   y       h   o
0055600    r   i   z   o   n   t   a   l  \r               [   [   n   o
0055620    n   e       ,   n   o   n   e       ,   n   o   n   e       ,
0055640    n   o   n   e       ,   n   o   n   e       ,   n   o   n   e
0055660    ]   ,  \r                   [   n   o   n   e       ,   j   c
0055700    t   n   R   ,   n   o   n   e       ,       t 376 001  \0 223
0055720  244   t   V       ,   j   c   t   n   R   ,       e   n   d   O
0055740        ]   ,  \r                   [   n   o   n   e       ,   n
0055760    o   n   e       ,   j   c   t   n   B   ,   n   o   n   e    
0056000    ,   n   o   n   e       ,       e   n   d   O       ]   ,  \r
0056020                    [   n   o   n   e       ,           t   t    
0056040    ,   n   o   n   e       ,   j   c   t   n   G   ,           d
0056060    d       ,       e   n   d   O       ]   ,  \r                
0056100    [   n   o   n   e       ,   j   c   t   n   R   ,   n   o   n
0056120    e       ,       d   d   V       ,   j   c   t   n   R   ,    
0056140    e   n   d   O       ]   ,  \r                   [   n   o   n
0056160    e   ,       e   n   d   O           ,       e   n   d   O    
0056200        ,       e   n   d   O           ,       e   n   d   O    
0056220        ,       e   n   d   O       ]   ]   ;  \r  \r   -   -    
0056240    C   o   d   e   :               j   c   t   n   ,   j   c   t
0056260    n   R   ,   j   c   t   n   B   ,   r   b   ,   b   g   ,   r
0056300    g   ,   a   l   l   ,   o   t   h   e   r  \r   T   w   o   C
0056320    o 376 001  \0 377 321   d   e   s   :   A   R   R   A   Y    
0056340    [   0   .   .   5   ]       O   F       A   R   R   A   Y    
0056360    [   0   .   .   5   ]       O   F       B   e   a   d   T   y
0056400    p   e   _   [  \r                   [   j   c   t   n   G   ,
0056420        r   g           ,       b   g           ,       a   l   l
0056440        ,       b   g           ,       r   g           ]   ,  \r
0056460                    [       r   g           ,   j   c   t   n   R
0056500    ,       r   b           ,       r   b           ,       a   l
0056520    l       ,       r   g           ]   ,  \r                   [
0056540        b   g           ,       r   b           ,   j   c   t   n
0056560    B   ,       r   b           ,       b   g           ,       a
0056600    l   l       ]   ,  \r                   [       a   l   l    
0056620    ,       r   b           ,       r   b           ,       r   b
0056640            ,       a   l   l       ,       a   l   l       ]   ,
0056660   \r                   [       b   g           ,       a   l   l
0056700        ,       b   g           ,       a   l   l       ,       b
0056720    g           ,       a 376 001  \0   '   b   l   l       ]   ,
0056740   \r                   [       r   g           ,       r   g    
0056760        ,       a   l   l       ,       a   l   l       ,       a
0057000    l   l       ,       r   g           ]   ]   ;  \r   i   n   T
0057020    r   y   :   C   A   R   D   I   N   A   L   ;  \r  \r  \r   F
0057040    r   o   m   I   n   p   u   t   T   o   B   e   a   d   s   :
0057060    P   U   B   L   I   C       P   R   O   C   E   D   U   R   E
0057100    [   f   i   l   e   N   a   m   e   :   S   T   R   I   N   G
0057120    ,   p   r   :   B   O   O   L   E   A   N   ]   =   B   E   G
0057140    I   N  \r           i   :   C   A   R   D   I   N   A   L   ;
0057160   \r           a   l   l   S   t   i   c   k   s   _   S   y   s
0057200    t   e   m   D   e   f   s   .   A   l   l   o   c   a   t   e
0057220    S   e   g   m   e   n   t   [   S   I   Z   E   [   S   t   i
0057240    c   k   S   t   u   f   f   ]   ]   ;  \r           S   t   r
0057260    i   n   g   D   e   f   s   .   A   p   p   e   n   d   S   t
0057300    r   i   n   g   [   f   i   l   e   N   a   m   e   ,   "   .
0057320    s   t   i   c   k   "   ]   ;  \r         376 001  \0   ] 370
0057340    F   r   o   m   S   i   l   F   i   l   e   T   o   S   t   i
0057360    c   k   s   [   f   i   l   e   N   a   m   e   ]   ;  \r    
0057400        f   i   l   e   N   a   m   e   .   l   e   n   g   t   h
0057420    _   f   i   l   e   N   a   m   e   .   l   e   n   g   t   h
0057440    -   6   ;  \r           I   F       p   r       T   H   E   N
0057460        P   r   i   n   t   A   l   l   S   t   i   c   k   s   [
0057500    a   l   l   S   t   i   c   k   s   ,   t   o   p   S   t   i
0057520    c   k   ]   ;  \r           F   i   n   d   B   o   u   n   d
0057540    s   O   f   S   t   i   c   k   D   i   a   g   r   a   m   [
0057560    ]   ;  \r           I   F       g   e   t   W   h   a   t   Y
0057600    o   u   S   e   e       T   H   E   N       B   E   G   I   N
0057620   \r                       F   O   R       i       I   N       [
0057640    0   .   .   t   o   p   S   t   i   c   k   ]       D   O    
0057660    W   h   a   t   Y   o   u   S   e   e   I   s   W   h   a   t
0057700    Y   o   u   G   e   t   [   i   ]   ;       E   N   D   L   O
0057720    O   P   ;  \r                       E   l   i   m   i   n   a
0057740  376 001  \0 326   z   t   e   N   u   l   l   s   [   ]   ;  \r
0057760                        E   N   D   ;  \r           I   F       p
0060000    r       T   H   E   N       P   r   i   n   t   A   l   l   S
0060020    t   i   c   k   s   [   a   l   l   S   t   i   c   k   s   ,
0060040    t   o   p   S   t   i   c   k   ]   ;  \r           F   O   R
0060060        i       I   N       [   0   .   .   t   o   p   S   t   i
0060100    c   k   ]       D   O       M   a   k   e   C   l   o   s   e
0060120    T   e   e   J   c   t   n   s   T   o   u   c   h   [   i   ]
0060140    ;       E   N   D   L   O   O   P   ;  \r           I   F    
0060160    p   r       T   H   E   N       P   r   i   n   t   A   l   l
0060200    S   t   i   c   k   s   [   a   l   l   S   t   i   c   k   s
0060220    ,   t   o   p   S   t   i   c   k   ]   ;  \r           C   o
0060240    m   p   r   e   s   s   S   t   i   c   k   C   o   o   r   d
0060260    i   n   a   t   e   s   [   ]   ;  \r           I   F       p
0060300    r       T   H   E   N       P   r   i   n   t   A   l   l   S
0060320    t   i   c   k   s   [   a   l   l   S   t   i   c   k   s   ,
0060340    t   o   p   S   t 376 001  \0 002   &   i   c   k   ]   ;  \r
0060360            F   O   R       i       I   N       [   0   .   .   t
0060400    o   p   S   t   i   c   k   ]       D   O       P   u   t   T
0060420    e   e   J   c   t   n   s   I   n   B   e   a   d   T   a   b
0060440    l   e   [   i   ]   ;       E   N   D   L   O   O   P   ;  \r
0060460            I   F       p   r       T   H   E   N       P   r   i
0060500    n   t   B   e   a   d   s   [   ]   ;  \r           F   O   R
0060520        i       I   N       [   0   .   .   t   o   p   S   t   i
0060540    c   k   ]       D   O       P   u   t   C   r   o   s   s   i
0060560    n   g   s   I   n   B   e   a   d   T   a   b   l   e   [   i
0060600    ]   ;       E   N   D   L   O   O   P   ;  \r           I   F
0060620        p   r       T   H   E   N       P   r   i   n   t   B   e
0060640    a   d   s   [   ]   ;  \r           F   O   R       i       I
0060660    N       [   0   .   .   t   o   p   S   t   i   c   k   ]    
0060700    D   O       I   F       a   l   l   S   t   i   c   k   s   [
0060720    i   ]   .   c   o   l   o   r   =   y       T   H   E   N    
0060740    a   l   l   S   t   i   c   k   s   [ 376 001  \0 226 200   i
0060760    ]   .   c   o   l   o   r   _   r   ;       E   N   D   L   O
0061000    O   P   ;  \r           F   O   R       i       I   N       [
0061020    0   .   .   t   o   p   B   e   a   d   ]       D   O       G
0061040    e   t   [   i   ]   .   b   e   a   d   T   _   n   o   B   e
0061060    a   d   ;       E   N   D   L   O   O   P   ;  \r           F
0061100    O   R       i       I   N       [   0   .   .   t   o   p   B
0061120    e   a   d   ]       D   O       C   o   n   v   e   r   t   M
0061140    u   l   t   i   p   l   e   L   e   v   e   l   s   T   o   T
0061160    i   e   d   B   e   a   d   s   [   i   ]   ;       E   N   D
0061200    L   O   O   P   ;  \r           I   F       p   r       T   H
0061220    E   N       P   r   i   n   t   B   e   a   d   s   [   ]   ;
0061240   \r           F   O   R       i       I   N       [   0   .   .
0061260    t   o   p   B   e   a   d   ]       D   O       D   o   e   s
0061300    B   e   a   d   H   a   v   e   N   e   i   g   h   b   o   r
0061320    s   [   i   ]   ;       E   N   D   L   O   O   P   ;  \r    
0061340        F   O   R       i       I   N       [   0   .   .   t 376
0061360  001  \0   B 032   o   p   B   e   a   d   ]       D   O       R
0061400    e   c   o   r   d   B   e   a   d   s   N   e   i   g   h   b
0061420    o   r   s   [   i   ]   ;       E   N   D   L   O   O   P   ;
0061440   \r           I   F       p   r       T   H   E   N       P   r
0061460    i   n   t   B   e   a   d   s   [   ]   ;  \r           F   O
0061500    R       i       I   N       [   0   .   .   t   o   p   B   e
0061520    a   d   ]       D   O       S   t   i   c   k   T   o   B   e
0061540    a   d   C   o   o   r   d   i   n   a   t   e   s   [   i   ]
0061560    ;       E   N   D   L   O   O   P   ;  \r           I   F    
0061600    p   r       T   H   E   N       P   r   i   n   t   B   e   a
0061620    d   s   [   ]   ;  \r           F   O   R       i       I   N
0061640        [   0   .   .   t   o   p   B   e   a   d   ]       D   O
0061660        W   i   g   g   l   e   T   i   e   d   B   e   a   d   s
0061700    U   p   A   n   d   D   o   w   n   [   i   ]   ;       E   N
0061720    D   L   O   O   P   ;  \r           I   F       p   r       T
0061740    H   E   N       P   r   i   n   t   B   e   a   d   s   [   ]
0061760    ;  \r         376 001  \0 254   F   F   O   R       i       I
0062000    N       [   0   .   .   t   o   p   B   e   a   d   ]       D
0062020    O       G   e   t   [   i   ]   .   w   i   r   e   _   F   A
0062040    L   S   E   ;       E   N   D   L   O   O   P   ;  \r        
0062060    F   O   R       i       I   N       [   0   .   .   t   o   p
0062100    B   e   a   d   ]       D   O       A   d   d   W   i   r   e
0062120    s   [   i   ]   ;       E   N   D   L   O   O   P   ;  \r    
0062140        I   F       p   r       T   H   E   N       P   r   i   n
0062160    t   B   e   a   d   s   [   ]   ;  \r           F   O   R    
0062200    i       I   N       [   0   .   .   t   o   p   B   e   a   d
0062220    ]       D   O       S   e   t   H   e   i   g   h   t   A   n
0062240    d   W   i   d   t   h   [   i   ]   ;       E   N   D   L   O
0062260    O   P   ;  \r           F   O   R       i       I   N       [
0062300    0   .   .   t   o   p   B   e   a   d   ]       D   O       C
0062320    o   r   r   e   c   t   W   i   r   e   L   e   n   g   t   h
0062340    [   i   ]   ;       E   N   D   L   O   O   P   ;  \r        
0062360    I   F       p   r       T   H   E 376 001  \0 310 262   N    
0062400    P   r   i   n   t   B   e   a   d   s   [   ]   ;  \r        
0062420    M   a   k   e   C   i   r   c   u   i   t   s   [   ]   ;  \r
0062440            F   O   R       i       I   N       [   0   .   .   t
0062460    o   p   B   e   a   d   ]       D   O       S   e   t   T   y
0062500    p   e   C   o   n   s   t   a   n   t   s   [   i   ]   ;    
0062520    E   N   D   L   O   O   P   ;  \r           S   y   s   t   e
0062540    m   D   e   f   s   .   F   r   e   e   S   e   g   m   e   n
0062560    t   [   a   l   l   S   t   i   c   k   s   ]   ;  \r        
0062600    W   r   i   t   e   O   n   e   N   u   m   b   e   r   [   "
0062620    s   i   z   e       o   f       s   t   i   c   k       t   a
0062640    b   l   e   =           "   ,   t   o   p   S   t   i   c   k
0062660    ]   ;  \r           E   N   D   ;  \r  \r   F   r   o   m   S
0062700    i   l   F   i   l   e   T   o   S   t   i   c   k   s   :   P
0062720    R   O   C   E   D   U   R   E   [   i   n   N   a   m   e   :
0062740    S   T   R   I   N   G   ]   =   B   E   G   I   N  \r        
0062760    a   ,   i   :   C   A   R   D   I   N   A   L   ;     376 001
0063000   \0 323 246   m   :   P   a   c   k   e   d   I   n   p   u   t
0063020    ;  \r           s   ,   x   ,   y   ,   x   M   a   x   ,   y
0063040    M   a   x   ,   f   :   C   A   R   D   I   N   A   L   ;    
0063060    s   t   r   i   n   g   :   S   T   R   I   N   G   _   [   1
0063100    0   0   ]   ;       c   :   C   o   l   o   r   ;  \r        
0063120    i   n   T   r   y   _   0   ;  \r           i   n   p   u   t
0063140    S   t   r   e   a   m   _   S   t   r   e   a   m   D   e   f
0063160    s   .   N   e   w   W   o   r   d   S   t   r   e   a   m   [
0063200    i   n   N   a   m   e   ,   S   t   r   e   a   m   D   e   f
0063220    s   .   R   e   a   d   ]   ;  \r           a   _   R   W   [
0063240    ]   ;       S   E   L   E   C   T       a       F   R   O   M
0063260        3   4   5   6   2   B   ,   3   4   5   6   3   B   =   >
0063300    N   U   L   L   ;       E   N   D   C   A   S   E   =   >   E
0063320    r   r   o   r   ;  \r           t   o   p   S   t   i   c   k
0063340    _   0   ;  \r           U   N   T   I   L       i   n   p   u
0063360    t   S   t   r   e   a   m   .   e   n   d   o   f   [   i   n
0063400    p   u   t 376 001  \0   T  \b   S   t   r   e   a   m   ]    
0063420    D   O  \r                   I   F       (   a   _   R   W   [
0063440    ]   )   #   1   7   7   7   7   7   B       T   H   E   N    
0063460    E   r   r   o   r   ;       -   -       t   y   p   e       n
0063500    o   n   -   m   a   c   r   o  \r                   m   _   L
0063520    O   O   P   H   O   L   E   [   R   W   [   ]   ]   ;       x
0063540    _   m   .   b   ;  \r                   y   M   a   x   _   a
0063560    l   t   o   Y   M   a   x   -   R   W   [   ]   ;       I   F
0063600        y   M   a   x   >   a   l   t   o   Y   M   a   x       T
0063620    H   E   N       E   r   r   o   r   ;  \r                   m
0063640    _   L   O   O   P   H   O   L   E   [   R   W   [   ]   ]   ;
0063660        x   M   a   x   _   m   .   b   ;  \r                   c
0063700    _   S   E   L   E   C   T       m   .   a       F   R   O   M
0063720        1   =   >   r   ,       2   =   >   y   ,       3   =   >
0063740    g   ,       4   =   >   b   ,       9   =   >   o   ,       E
0063760    N   D   C   A   S   E   =   >   n   o   n   e   ;  \r        
0064000                    -   -   b   l 376 001  \0 304 320   a   c   k
0064020    ,   r   e   d   ,   y   e   l   l   o   w   ,   g   r   e   e
0064040    n   ,   c   y   a   n   ,   v   i   o   l   e   t   ,   m   a
0064060    g   e   n   t   a   ,   w   h   i   t   e   ,  \r            
0064100                -   -   b   r   o   w   n   ,   o   r   a   n   g
0064120    e   ,   l   i   m   e   ,   t   u   r   q   u   o   i   s   e
0064140    ,   a   q   u   a   ,   u   l   t   r   a   v   i   o   l   e
0064160    t   ,   p   i   n   k   ,   s   m   o   k   e  \r            
0064200        m   _   L   O   O   P   H   O   L   E   [   R   W   [   ]
0064220    ]   ;       f   _   m   .   a   ;       y   _   a   l   t   o
0064240    Y   M   a   x   -   m   .   b   ;       I   F       y   >   3
0064260    7   7   7   B       T   H   E   N       E   r   r   o   r   ;
0064300   \r                   I   F       f   <   =   1   3       T   H
0064320    E   N       B   E   G   I   N  \r                           s
0064340    _   R   B   [   ]   ;  \r                           F   O   R
0064360        i       I   N       [   0   .   .   s   )       D   O    
0064400    s   t   r   i   n   g   [   i   ]   _   L   O   O 376 001  \0
0064420    6 237   P   H   O   L   E   [   R   B   [   ]   ,   C   H   A
0064440    R   A   C   T   E   R   ]   ;       E   N   D   L   O   O   P
0064460    ;  \r                           E   N   D   ;  \r            
0064500        I   F       c   #   n   o   n   e       A   N   D       f
0064520    =   1   4       T   H   E   N       B   E   G   I   N  \r    
0064540                        w   :   C   A   R   D   I   N   A   L   _
0064560    x   M   a   x   -   x   ;  \r                           h   :
0064600    C   A   R   D   I   N   A   L   _   y   M   a   x   -   y   ;
0064620   \r                           a   l   l   S   t   i   c   k   s
0064640    [   t   o   p   S   t   i   c   k   ]   _   I   F       h   >
0064660    w       T   H   E   N       [   v   ,   c   ,   x   +   w   /
0064700    2   ,   y   ,   y   M   a   x   ]  \r                        
0064720                                                                 
0064740                                                E   L   S   E    
0064760    [   h   ,   c   ,   x   ,   y   +   h   /   2   ,   x   M   a
0065000    x   ]   ;  \r                           t   o   p   S   t   i
0065020    c   k 376 001  \0 312 001   _   t   o   p   S   t   i   c   k
0065040    +   1   ;  \r                           I   F       t   o   p
0065060    S   t   i   c   k   >   m   a   x   S   t   i   c   k       T
0065100    H   E   N       E   r   r   o   r   ;  \r                    
0065120        E   N   D   ;  \r                   -   -   p   r   o   c
0065140    e   s   s       e   x   c   e   p   t   i   o   n       s   t
0065160    u   f   f  \r                   E   N   D   L   O   O   P   ;
0065200   \r                   t   o   p   S   t   i   c   k   _   t   o
0065220    p   S   t   i   c   k   -   1   ;  \r                   i   n
0065240    p   u   t   S   t   r   e   a   m   .   d   e   s   t   r   o
0065260    y   [   i   n   p   u   t   S   t   r   e   a   m   ]   ;  \r
0065300            E   N   D   ;  \r   -   -       /   /   /   /   /   /
0065320    /   /   /   /   /   /   /   /   /  \r   F   i   n   d   B   o
0065340    u   n   d   s   O   f   S   t   i   c   k   D   i   a   g   r
0065360    a   m   :   P   R   O   C   E   D   U   R   E   =   B   E   G
0065400    I   N       i   :   C   A   R   D   I   N   A   L   ;  \r    
0065420        x   L   o   _   y   L 376 001  \0   x  \0   o   _   1   0
0065440    0   0   0   ;  \r           x   H   i   _   y   H   i   _   0
0065460    ;  \r           F   O   R       i       I   N       [   0   .
0065500    .   t   o   p   S   t   i   c   k   ]       D   O       I   F
0065520        a   l   l   S   t   i   c   k   s   [   i   ]   .   c   o
0065540    l   o   r   #   n   o   n   e       T   H   E   N       B   E
0065560    G   I   N  \r                   i   s   :   S   t   i   c   k
0065600    _   a   l   l   S   t   i   c   k   s   [   i   ]   ;  \r    
0065620                I   F       i   s   .   d   i   r   =   h       T
0065640    H   E   N       S   e   t   L   o   H   i   [   i   s   .   x
0065660    ,   i   s   .   y   -   4   ,   i   s   .   e   n   d   ,   i
0065700    s   .   y   +   4   ]  \r                                    
0065720                                E   L   S   E       S   e   t   L
0065740    o   H   i   [   i   s   .   x   -   4   ,   i   s   .   y   ,
0065760    i   s   .   x   +   4   ,   i   s   .   e   n   d   ]   ;  \r
0066000                    E   N   D   ;       E   N   D   L   O   O   P
0066020    ;  \r           E   N   D   ;  \r  \r   S   e 376 001  \0 325
0066040    `   t   L   o   H   i   :   P   R   O   C   E   D   U   R   E
0066060    [   a   ,   b   ,   c   ,   d   :   I   N   T   E   G   E   R
0066100    ]   =   B   E   G   I   N  \r           I   F       a   <   x
0066120    L   o       T   H   E   N       x   L   o   _   a   ;  \r    
0066140        I   F       b   <   y   L   o       T   H   E   N       y
0066160    L   o   _   b   ;  \r           I   F       c   >   x   H   i
0066200        T   H   E   N       x   H   i   _   c   ;  \r           I
0066220    F       d   >   y   H   i       T   H   E   N       y   H   i
0066240    _   d   ;  \r           E   N   D   ;  \r   -   -       /   /
0066260    /   /   /   /   /   /   /   /   /   /   /   /   /  \r   W   h
0066300    a   t   Y   o   u   S   e   e   I   s   W   h   a   t   Y   o
0066320    u   G   e   t   :   P   R   O   C   E   D   U   R   E   [   i
0066340    :   C   A   R   D   I   N   A   L   ]   =   B   E   G   I   N
0066360   \r           i   s   :   S   t   i   c   k   _   a   l   l   S
0066400    t   i   c   k   s   [   i   ]   ;  \r           j   :   C   A
0066420    R   D   I   N   A   L   ;       j   s   :   S   t   i   c   k
0066440    ; 376 001  \0 276   t  \r           I   F       i   s   .   d
0066460    i   r   =   h       T   H   E   N       F   O   R       j    
0066500    I   N       (   i   .   .   t   o   p   S   t   i   c   k   ]
0066520        D   O  \r                   j   s   _   a   l   l   S   t
0066540    i   c   k   s   [   j   ]   ;  \r                   I   F    
0066560    j   s   .   d   i   r   =   h       A   N   D       i   s   .
0066600    c   o   l   o   r   =   j   s   .   c   o   l   o   r       A
0066620    N   D       i   s   .   y   =   j   s   .   y       A   N   D
0066640        j   s   .   x   <   =   i   s   .   e   n   d  \r        
0066660                                    A   N   D       j   s   .   e
0066700    n   d   >   =   i   s   .   x       T   H   E   N       B   E
0066720    G   I   N  \r                                           j   s
0066740    .   x   _   M   I   N   [   i   s   .   x   ,   j   s   .   x
0066760    ]   ;  \r                                           j   s   .
0067000    e   n   d   _   M   A   X   [   i   s   .   e   n   d   ,   j
0067020    s   .   e   n   d   ]   ;  \r                                
0067040            a   l   l   S 376 001  \0   2 226   t   i   c   k   s
0067060    [   i   ]   .   c   o   l   o   r   _   n   o   n   e   ;  \r
0067100                                            E   X   I   T   ;  \r
0067120                                            E   N   D   ;  \r    
0067140                I   F       j   s   .   d   i   r   =   h       A
0067160    N   D       (   i   s   .   c   o   l   o   r   =   r       A
0067200    N   D       j   s   .   c   o   l   o   r   =   g       O   R
0067220        i   s   .   c   o   l   o   r   =   g       A   N   D    
0067240    j   s   .   c   o   l   o   r   =   r   )  \r                
0067260                    A   N   D       i   s   .   y   =   j   s   .
0067300    y       A   N   D       j   s   .   x   <   i   s   .   e   n
0067320    d  \r                                           A   N   D    
0067340    j   s   .   e   n   d   >   i   s   .   x       T   H   E   N
0067360        B   E   G   I   N   -   -   s   h   o   u   l   d       c
0067400    o   m   p   l   a   i   n       i   f       v   e   r   t    
0067420    w   i   r   e       n   e   a   r   b   y  \r                
0067440                            S   E   L   E   C 376 001  \0 300   B
0067460    T       T   R   U   E       F   R   O   M  \r                
0067500                                        i   s   .   x   >   =   j
0067520    s   .   x       A   N   D       i   s   .   e   n   d   <   =
0067540    j   s   .   e   n   d       =   >       a   l   l   S   t   i
0067560    c   k   s   [   i   ]   .   c   o   l   o   r   _   n   o   n
0067600    e   ;  \r                                                    
0067620    j   s   .   x   >   =   i   s   .   x       A   N   D       j
0067640    s   .   e   n   d   <   =   i   s   .   e   n   d       =   >
0067660        a   l   l   S   t   i   c   k   s   [   j   ]   .   c   o
0067700    l   o   r   _   n   o   n   e   ;  \r                        
0067720                                i   s   .   x   >   j   s   .   x
0067740        =   >       j   s   .   e   n   d   _   i   s   .   x   ;
0067760   \r                                                       E   N
0070000    D   C   A   S   E   =   >   i   s   .   e   n   d   _   j   s
0070020    .   x   ;  \r                                           E   X
0070040    I   T   ;  \r                                           E   N
0070060  376 001  \0   $ 271   D   ;  \r                   E   N   D   L
0070100    O   O   P  \r           E   L   S   E       F   O   R       j
0070120        I   N       (   i   .   .   t   o   p   S   t   i   c   k
0070140    ]       D   O  \r                   j   s   _   a   l   l   S
0070160    t   i   c   k   s   [   j   ]   ;  \r                   I   F
0070200        j   s   .   d   i   r   =   v       A   N   D       i   s
0070220    .   c   o   l   o   r   =   j   s   .   c   o   l   o   r    
0070240    A   N   D       i   s   .   x   =   j   s   .   x       A   N
0070260    D       j   s   .   y   <   =   i   s   .   e   n   d  \r    
0070300                                        A   N   D       j   s   .
0070320    e   n   d   >   =   i   s   .   y       T   H   E   N       B
0070340    E   G   I   N  \r                                           j
0070360    s   .   y   _   M   I   N   [   i   s   .   y   ,   j   s   .
0070400    y   ]   ;  \r                                           j   s
0070420    .   e   n   d   _   M   A   X   [   i   s   .   e   n   d   ,
0070440    j   s   .   e   n   d   ]   ;  \r                            
0070460                a   l 376 001  \0   g 246   l   S   t   i   c   k
0070500    s   [   i   ]   .   c   o   l   o   r   _   n   o   n   e   ;
0070520   \r                                           E   X   I   T   ;
0070540   \r                                           E   N   D   ;  \r
0070560                    I   F       j   s   .   d   i   r   =   v    
0070600    A   N   D       (   i   s   .   c   o   l   o   r   =   r    
0070620    A   N   D       j   s   .   c   o   l   o   r   =   g       O
0070640    R       i   s   .   c   o   l   o   r   =   g       A   N   D
0070660        j   s   .   c   o   l   o   r   =   r   )  \r            
0070700                        A   N   D       i   s   .   x   =   j   s
0070720    .   x       A   N   D       j   s   .   y   <   i   s   .   e
0070740    n   d  \r                                           A   N   D
0070760        j   s   .   e   n   d   >   i   s   .   y       T   H   E
0071000    N       B   E   G   I   N   -   -   s   h   o   u   l   d    
0071020    c   o   m   p   l   a   i   n       i   f       v   e   r   t
0071040        w   i   r   e       n   e   a   r   b   y  \r            
0071060                                S   E   L 376 001  \0 304   ;   E
0071100    C   T       T   R   U   E       F   R   O   M  \r            
0071120                                            i   s   .   y   >   =
0071140    j   s   .   y       A   N   D       i   s   .   e   n   d   <
0071160    =   j   s   .   e   n   d       =   >       a   l   l   S   t
0071200    i   c   k   s   [   i   ]   .   c   o   l   o   r   _   n   o
0071220    n   e   ;  \r                                                
0071240        j   s   .   y   >   =   i   s   .   y       A   N   D    
0071260    j   s   .   e   n   d   <   =   i   s   .   e   n   d       =
0071300    >       a   l   l   S   t   i   c   k   s   [   j   ]   .   c
0071320    o   l   o   r   _   n   o   n   e   ;  \r                    
0071340                                    i   s   .   y   >   j   s   .
0071360    y       =   >       j   s   .   e   n   d   _   i   s   .   y
0071400    ;  \r                                                       E
0071420    N   D   C   A   S   E   =   >   i   s   .   e   n   d   _   j
0071440    s   .   y   ;  \r                                           E
0071460    X   I   T   ;  \r                                         376
0071500  001  \0   k 204   E   N   D   ;  \r                   E   N   D
0071520    L   O   O   P   ;  \r           E   N   D   ;  \r  \r   E   l
0071540    i   m   i   n   a   t   e   N   u   l   l   s   :   P   R   O
0071560    C   E   D   U   R   E   =   B   E   G   I   N  \r           i
0071600    :   C   A   R   D   I   N   A   L   _   0   ;  \r           U
0071620    N   T   I   L       i   =   t   o   p   S   t   i   c   k    
0071640    D   O  \r                   I   F       a   l   l   S   t   i
0071660    c   k   s   [   i   ]   .   c   o   l   o   r   =   n   o   n
0071700    e  \r                           T   H   E   N       a   l   l
0071720    S   t   i   c   k   s   [   i   ]   _   a   l   l   S   t   i
0071740    c   k   s   [   (   t   o   p   S   t   i   c   k   _   t   o
0071760    p   S   t   i   c   k   -   1   )   +   1   ]  \r            
0072000                E   L   S   E       i   _   i   +   1   ;  \r    
0072020                E   N   D   L   O   O   P   ;  \r           E   N
0072040    D   ;  \r   -   -       /   /   /   /   /   /   /   /   /   /
0072060    /   /   /   /   /  \r   M   a   k   e   C   l   o   s   e   T
0072100    e   e   J   c 376 001  \0   u   E   t   n   s   T   o   u   c
0072120    h   :   P   R   O   C   E   D   U   R   E   [   i   :   C   A
0072140    R   D   I   N   A   L   ]   =   B   E   G   I   N       j   :
0072160    C   A   R   D   I   N   A   L   ;  \r           i   s   :   S
0072200    t   i   c   k   _   a   l   l   S   t   i   c   k   s   [   i
0072220    ]   ;  \r           I   F       i   s   .   c   o   l   o   r
0072240    =   n   o   n   e       T   H   E   N       R   E   T   U   R
0072260    N   ;  \r           I   F       C   l   o   s   e   [   i   s
0072300    .   x   ,   x   L   o   ]       T   H   E   N       i   s   .
0072320    x   _   x   L   o   ;  \r           I   F       C   l   o   s
0072340    e   [   i   s   .   y   ,   y   L   o   ]       T   H   E   N
0072360        i   s   .   y   _   y   L   o   ;  \r           I   F    
0072400    i   s   .   d   i   r   =   h       T   H   E   N       I   F
0072420        C   l   o   s   e   S   [   i   s   .   e   n   d   ,   x
0072440    H   i   ]       T   H   E   N       i   s   .   e   n   d   _
0072460    x   H   i       E   L   S   E       N   U   L   L  \r        
0072500                                      376 001  \0   Z 243        
0072520        E   L   S   E       I   F       C   l   o   s   e   S   [
0072540    i   s   .   e   n   d   ,   y   H   i   ]       T   H   E   N
0072560        i   s   .   e   n   d   _   y   H   i       E   L   S   E
0072600        N   U   L   L   ;  \r           F   O   R       j       I
0072620    N       [   0   .   .   t   o   p   S   t   i   c   k   ]    
0072640    D   O       I   F       i   #   j       T   H   E   N       B
0072660    E   G   I   N  \r                   j   s   :   S   t   i   c
0072700    k   _   a   l   l   S   t   i   c   k   s   [   j   ]   ;  \r
0072720                    I   F       i   s   .   d   i   r   =   j   s
0072740    .   d   i   r       T   H   E   N       B   E   G   I   N  \r
0072760                                I   F       i   s   .   d   i   r
0073000    =   h       A   N   D       C   l   o   s   e   S   [   i   s
0073020    .   y   ,   j   s   .   y   ]       A   N   D       i   s   .
0073040    y   #   j   s   .   y  \r                                    
0073060    A   N   D       (   W   i   t   h   i   n   S   [   i   s   .
0073100    e   n   d   ,   j   s   .   x   ,   j   s   .   e   n 376 001
0073120   \0   \ 251   d   ]       O   R       W   i   t   h   i   n   S
0073140    [   i   s   .   x   ,   j   s   .   x   ,   j   s   .   e   n
0073160    d   ]   )  \r                                       T   H   E
0073200    N       E   r   r   o   r   ;  \r                            
0073220    I   F       i   s   .   d   i   r   =   v       A   N   D    
0073240    C   l   o   s   e   S   [   i   s   .   x   ,   j   s   .   x
0073260    ]       A   N   D       i   s   .   x   #   j   s   .   x  \r
0073300                                        A   N   D       (   W   i
0073320    t   h   i   n   S   [   i   s   .   e   n   d   ,   j   s   .
0073340    y   ,   j   s   .   e   n   d   ]       O   R       W   i   t
0073360    h   i   n   S   [   i   s   .   y   ,   j   s   .   y   ,   j
0073400    s   .   e   n   d   ]   )  \r                                
0073420        T   H   E   N       E   r   r   o   r   ;  \r            
0073440                    E   N   D  \r                       E   L   S
0073460    E       B   E   G   I   N  \r                                
0073500    I   F       i   s   .   d   i   r   =   h       A   N   D    
0073520    W   i   t 376 001  \0   d 216   h   i   n   S   [   i   s   .
0073540    y   ,   j   s   .   y   ,   j   s   .   e   n   d   ]       T
0073560    H   E   N       B   E   G   I   N  \r                        
0073600                        I   F       C   l   o   s   e   S   [   i
0073620    s   .   x   ,   j   s   .   x   ]       T   H   E   N       i
0073640    s   .   x   _   j   s   .   x   ;  \r                        
0073660                        I   F           C   l   o   s   e   S   [
0073700    i   s   .   e   n   d   ,   j   s   .   x   ]       T   H   E
0073720    N       i   s   .   e   n   d   _   j   s   .   x   ;  \r    
0073740                                            E   N   D   ;  \r    
0073760                                I   F       i   s   .   d   i   r
0074000    =   v       A   N   D       W   i   t   h   i   n   S   [   i
0074020    s   .   x   ,   j   s   .   x   ,   j   s   .   e   n   d   ]
0074040        T   H   E   N       B   E   G   I   N  \r                
0074060                                I   F       C   l   o   s   e   S
0074100    [   i   s   .   y   ,   j   s   .   y   ]       T   H   E   N
0074120        i   s   .   y   _   j   s 376 001  \0   $ 330   .   y   ;
0074140   \r                                               I   F       C
0074160    l   o   s   e   S   [   i   s   .   e   n   d   ,   j   s   .
0074200    y   ]       T   H   E   N       i   s   .   e   n   d   _   j
0074220    s   .   y   ;  \r                                            
0074240    E   N   D   ;  \r                                   E   N   D
0074260    ;  \r                   E   N   D   ;       E   N   D   L   O
0074300    O   P   ;  \r                   a   l   l   S   t   i   c   k
0074320    s   [   i   ]   _   i   s   ;  \r           E   N   D   ;  \r
0074340    -   -       /   /   /   /   /   /   /   /   /   /   /   /   /
0074360    /   /  \r   C   o   m   p   r   e   s   s   S   t   i   c   k
0074400    C   o   o   r   d   i   n   a   t   e   s   :   P   R   O   C
0074420    E   D   U   R   E   =   B   E   G   I   N       i   :   C   A
0074440    R   D   I   N   A   L   ;  \r           s   ,   a   d   ,   c
0074460    :   I   N   T   E   G   E   R   ;  \r           s   _   0   ;
0074500   \r           F   O   R       c       I   N       [   x   L   o
0074520    .   .   x   H   i   ]       D   O  \r             376 001  \0
0074540  325   s       a   d   _   I   F       c   =   x   L   o       O
0074560    R       c   =   x   H   i       T   H   E   N       1       E
0074600    L   S   E       0   ;  \r                   F   O   R       i
0074620        I   N       [   0   .   .   t   o   p   S   t   i   c   k
0074640    ]       D   O  \r                           I   F       a   l
0074660    l   S   t   i   c   k   s   [   i   ]   .   x   =   c       T
0074700    H   E   N       B   E   G   I   N       a   l   l   S   t   i
0074720    c   k   s   [   i   ]   .   x   _   s   ;       a   d   _   1
0074740    ;       E   N   D   ;  \r                           I   F    
0074760    a   l   l   S   t   i   c   k   s   [   i   ]   .   e   n   d
0075000    =   c       A   N   D       a   l   l   S   t   i   c   k   s
0075020    [   i   ]   .   d   i   r   =   h  \r                        
0075040                            T   H   E   N       B   E   G   I   N
0075060        a   l   l   S   t   i   c   k   s   [   i   ]   .   e   n
0075100    d   _   s   ;       a   d   _   1   ;       E   N   D   ;  \r
0075120                            E   N   D   L   O   O   P   ;  \r    
0075140          376 001  \0   0 200       s   _   s   +   a   d   ;  \r
0075160                    E   N   D   L   O   O   P   ;  \r           x
0075200    L   o   _   0   ;       x   H   i   _   s   -   1   ;  \r    
0075220        s   _   0   ;  \r           F   O   R       c       I   N
0075240        [   y   L   o   .   .   y   H   i   ]       D   O  \r    
0075260                a   d   _   I   F       c   =   x   L   o       O
0075300    R       c   =   x   H   i       T   H   E   N       1       E
0075320    L   S   E       0   ;  \r                   F   O   R       i
0075340        I   N       [   0   .   .   t   o   p   S   t   i   c   k
0075360    ]       D   O  \r                           I   F       a   l
0075400    l   S   t   i   c   k   s   [   i   ]   .   y   =   c       T
0075420    H   E   N       B   E   G   I   N       a   l   l   S   t   i
0075440    c   k   s   [   i   ]   .   y   _   s   ;       a   d   _   1
0075460    ;       E   N   D   ;  \r                           I   F    
0075500    a   l   l   S   t   i   c   k   s   [   i   ]   .   e   n   d
0075520    =   c       A   N   D       a   l   l   S   t   i   c   k   s
0075540    [   i   ]   .   d   i   r 376 001  \0 207 221   =   v  \r    
0075560                                                T   H   E   N    
0075600    B   E   G   I   N       a   l   l   S   t   i   c   k   s   [
0075620    i   ]   .   e   n   d   _   s   ;       a   d   _   1   ;    
0075640    E   N   D   ;  \r                           E   N   D   L   O
0075660    O   P   ;  \r                   s   _   s   +   a   d   ;  \r
0075700                    E   N   D   L   O   O   P   ;  \r           y
0075720    L   o   _   0   ;       y   H   i   _   s   -   1   ;  \r    
0075740        E   N   D   ;  \r  \r   -   -       /   /   /   /   /   /
0075760    /   /   /   /   /   /   /   /   /  \r   P   u   t   T   e   e
0076000    J   c   t   n   s   I   n   B   e   a   d   T   a   b   l   e
0076020    :   P   R   O   C   E   D   U   R   E   [   i   :   C   A   R
0076040    D   I   N   A   L   ]   =   B   E   G   I   N       i   s   :
0076060    S   t   i   c   k   _   a   l   l   S   t   i   c   k   s   [
0076100    i   ]   ;  \r           I   F       i   s   .   c   o   l   o
0076120    r   =   n   o   n   e       T   H   E   N       R   E   T   U
0076140    R   N   ;  \r           S   e   e   I   f   B 376 001  \0 246
0076160  231   u   t   t   s   [   i   s   .   x   ,   i   s   .   y   ,
0076200    i   ]   ;  \r           I   F       i   s   .   d   i   r   =
0076220    h       T   H   E   N       S   e   e   I   f   B   u   t   t
0076240    s   [   i   s   .   e   n   d   ,   i   s   .   y   ,   i   ]
0076260        E   L   S   E       S   e   e   I   f   B   u   t   t   s
0076300    [   i   s   .   x   ,   i   s   .   e   n   d   ,   i   ]   ;
0076320   \r           E   N   D   ;  \r  \r   S   e   e   I   f   B   u
0076340    t   t   s   :   P   R   O   C   E   D   U   R   E   [   x   ,
0076360    y   :   I   N   T   E   G   E   R   ,   i   :   C   A   R   D
0076400    I   N   A   L   ]   =   B   E   G   I   N       j   :   C   A
0076420    R   D   I   N   A   L   ;  \r           i   c   :   C   o   l
0076440    o   r   _   a   l   l   S   t   i   c   k   s   [   i   ]   .
0076460    c   o   l   o   r   ;  \r           I   F       C   l   o   s
0076500    e   [   x   ,   x   H   i   ]       O   R       C   l   o   s
0076520    e   [   x   ,   x   L   o   ]       O   R       C   l   o   s
0076540    e   [   y   ,   y   H   i   ]       O   R       C   l   o   s
0076560    e 376 001  \0   V 255   [   y   ,   y   L   o   ]  \r        
0076600    T   H   E   N       C   c   [   x   ,   y   ,   n   o   n   e
0076620    ,   i   c   ]  \r           E   L   S   E       F   O   R    
0076640    j       I   N       [   0   .   .   t   o   p   S   t   i   c
0076660    k   ]       D   O       I   F       i   #   j       T   H   E
0076700    N       B   E   G   I   N  \r                   j   s   :   S
0076720    t   i   c   k   _   a   l   l   S   t   i   c   k   s   [   j
0076740    ]   ;  \r                   I   F       j   s   .   d   i   r
0076760    =   h       A   N   D       C   l   o   s   e   [   y   ,   j
0077000    s   .   y   ]       A   N   D       W   i   t   h   i   n   [
0077020    x   ,   j   s   .   x   ,   j   s   .   e   n   d   ]  \r    
0077040                O   R       j   s   .   d   i   r   =   v       A
0077060    N   D       C   l   o   s   e   [   x   ,   j   s   .   x   ]
0077100        A   N   D       W   i   t   h   i   n   [   y   ,   j   s
0077120    .   y   ,   j   s   .   e   n   d   ]  \r                    
0077140        T   H   E   N       C   c   [   x   ,   y   ,   i   c   ,
0077160    j   s   .   c   o   l 376 001  \0  \b 221   o   r   ]   ;  \r
0077200                    E   N   D   ;       E   N   D   L   O   O   P
0077220    ;  \r           E   N   D   ;  \r   -   -       /   /   /   /
0077240    /   /   /   /   /   /   /   /   /   /   /  \r   P   u   t   C
0077260    r   o   s   s   i   n   g   s   I   n   B   e   a   d   T   a
0077300    b   l   e   :   P   R   O   C   E   D   U   R   E   [   i   :
0077320    C   A   R   D   I   N   A   L   ]   =   B   E   G   I   N    
0077340    j   :   C   A   R   D   I   N   A   L   ;  \r           i   s
0077360    :   S   t   i   c   k   _   a   l   l   S   t   i   c   k   s
0077400    [   i   ]   ;  \r           I   F       i   s   .   c   o   l
0077420    o   r   =   n   o   n   e       T   H   E   N       R   E   T
0077440    U   R   N   ;  \r           F   O   R       j       I   N    
0077460    [   0   .   .   t   o   p   S   t   i   c   k   ]       D   O
0077500        B   E   G   I   N  \r                   j   s   :   S   t
0077520    i   c   k   _   a   l   l   S   t   i   c   k   s   [   j   ]
0077540    ;  \r                   I   F       i   s   .   d   i   r   =
0077560    h       A   N   D       j   s   .   d   i 376 001  \0 212 202
0077600    r   =   v       A   N   D       i   s   .   y       I   N    
0077620    (   j   s   .   y   .   .   j   s   .   e   n   d   )      \r
0077640                            A   N   D       j   s   .   x       I
0077660    N       (   i   s   .   x   .   .   i   s   .   e   n   d   )
0077700   \r                   T   H   E   N       B   E   G   I   N  \r
0077720                            t   y   p   e   :   B   e   a   d   T
0077740    y   p   e   _   C   o   l   o   r   T   o   T   y   p   e   [
0077760    i   s   .   c   o   l   o   r   ]   [   j   s   .   c   o   l
0100000    o   r   ]   ;  \r                           I   F       t   y
0100020    p   e   #   n   o   n   e       T   H   E   N       I   n   s
0100040    e   r   t   C   o   n   t   a   c   t   [   j   s   .   x   ,
0100060    i   s   .   y   ,   t   y   p   e   ]   ;  \r                
0100100            E   N   D   ;  \r           E   N   D   ;       E   N
0100120    D   L   O   O   P   ;  \r           E   N   D   ;  \r   -   -
0100140        /   /   /   /   /   /   /   /   /   /   /   /   /   /   /
0100160   \r   C   o   n   v   e   r   t   M   u   l   t   i   p   l   e
0100200  376 001  \0 244 032   L   e   v   e   l   s   T   o   T   i   e
0100220    d   B   e   a   d   s   :   P   R   O   C   E   D   U   R   E
0100240    [   i   :   C   A   R   D   I   N   A   L   ]   =       B   E
0100260    G   I   N  \r                   b   p   i   :   B   e   a   d
0100300    P   t   r   _   G   e   t   [   i   ]   ;  \r                
0100320    b   p   t   1   ,   b   p   t   2   :   B   e   a   d   P   t
0100340    r   ;  \r                   S   E   L   E   C   T       b   p
0100360    i   .   t       F   R   O   M  \r                   r   g   ,
0100400    a   l   l   =   >   B   E   G   I   N  \r                    
0100420        I   n   s   e   r   t   B   e   a   d   [   b   p   i   ^
0100440    ]   ;  \r                           b   p   t   1   _   G   e
0100460    t   [   t   o   p   B   e   a   d   ]   ;  \r                
0100500            I   n   s   e   r   t   B   e   a   d   [   b   p   i
0100520    ^   ]   ;  \r                           b   p   t   2   _   G
0100540    e   t   [   t   o   p   B   e   a   d   ]   ;  \r            
0100560                b   p   t   1   .   t   _   r   b   ;       b   p
0100600    t   1   .   b   e 376 001  \0   ? 213   a   d   T   _   t   o
0100620    p   B   e   a   d   ;  \r                           b   p   t
0100640    2   .   t   _   b   f   ;       b   p   t   2   .   b   e   a
0100660    d   T   _   i   ;  \r                           b   p   i    
0100700    .   t   _   b   g   ;       b   p   i       .   b   e   a   d
0100720    T   _   t   o   p   B   e   a   d   -   1   ;  \r            
0100740                E   N   D   ;  \r                   r   b   =   >
0100760    B   E   G   I   N  \r                           I   n   s   e
0101000    r   t   B   e   a   d   [   b   p   i   ^   ]   ;  \r        
0101020                    b   p   t   1   _   G   e   t   [   t   o   p
0101040    B   e   a   d   ]   ;  \r                           b   p   t
0101060    1   .   b   e   a   d   T   _   i   ;  \r                    
0101100        b   p   t   1   .   t   _   b   f   ;  \r                
0101120            b   p   i   .   b   e   a   d   T   _   t   o   p   B
0101140    e   a   d   ;  \r                           b   p   i   .   e
0101160    x   t   e   r   n   a   l   _   b   p   t   1   .   e   x   t
0101200    e   r   n   a   l   _   2   ;  \r     376 001  \0 020 021    
0101220                    E   N   D   ;  \r                   b   g   =
0101240    >   B   E   G   I   N  \r                           I   n   s
0101260    e   r   t   B   e   a   d   [   b   p   i   ^   ]   ;  \r    
0101300                        b   p   t   1   _   G   e   t   [   t   o
0101320    p   B   e   a   d   ]   ;  \r                           b   p
0101340    t   1   .   b   e   a   d   T   _   i   ;  \r                
0101360            b   p   t   1   .   t   _   b   f   ;  \r            
0101400                b   p   i   .   b   e   a   d   T   _   t   o   p
0101420    B   e   a   d   ;  \r                           b   p   i   .
0101440    e   x   t   e   r   n   a   l   _   b   p   t   1   .   e   x
0101460    t   e   r   n   a   l   _   2   ;  \r                        
0101500    E   N   D   ;  \r                   E   N   D   C   A   S   E
0101520    ;  \r           E   N   D   ;  \r   -   -       /   /   /   /
0101540    /   /   /   /   /   /   /   /   /   /   /  \r   D   o   e   s
0101560    B   e   a   d   H   a   v   e   N   e   i   g   h   b   o   r
0101600    s   :   P   R   O   C   E   D   U   R   E   [   i   :   C 376
0101620  001  \0   \ 261   A   R   D   I   N   A   L   ]   =   B   E   G
0101640    I   N       j   :   C   A   R   D   I   N   A   L   ;  \r    
0101660        b   p   i   :   B   e   a   d   P   t   r   _   G   e   t
0101700    [   i   ]   ;  \r           b   p   i   .   b   e   a   d   R
0101720    _   b   p   i   .   b   e   a   d   L   _   b   p   i   .   b
0101740    e   a   d   U   _   b   p   i   .   b   e   a   d   D   _   n
0101760    o   B   e   a   d   ;  \r           F   O   R       j       I
0102000    N       [   0   .   .   t   o   p   S   t   i   c   k   ]    
0102020    D   O       B   E   G   I   N       j   s   :   S   t   i   c
0102040    k   _   a   l   l   S   t   i   c   k   s   [   j   ]   ;  \r
0102060                    I   F       S   E   L   E   C   T       j   s
0102100    .   c   o   l   o   r       F   R   O   M  \r                
0102120            r   ,   y   =   >   S   E   L   E   C   T       b   p
0102140    i   .   t       F   R   O   M       a   l   l   ,   j   c   t
0102160    n   R   ,   r   g   ,   r   b   ,   t   t   ,   t   t   V   ,
0102200    d   d   ,   d   d   V   ,   e   n   d   R   =   >   T   R   U
0102220    E   ,  \r     376 001  \0   X 264                            
0102240                E   N   D   C   A   S   E   =   >   F   A   L   S
0102260    E   ,  \r                           g   =   >           S   E
0102300    L   E   C   T       b   p   i   .   t       F   R   O   M    
0102320    a   l   l   ,   j   c   t   n   G   ,   r   g   ,   b   g   ,
0102340    t   t   ,   t   t   V   ,   d   d   ,   d   d   V   ,   e   n
0102360    d   G   =   >   T   R   U   E   ,  \r                        
0102400                        E   N   D   C   A   S   E   =   >   F   A
0102420    L   S   E   ,  \r                           b   =   >       S
0102440    E   L   E   C   T       b   p   i   .   t       F   R   O   M
0102460        a   l   l   ,   j   c   t   n   B   ,   e   n   d   B   ,
0102500    b   f   =   >   T   R   U   E   ,       E   N   D   C   A   S
0102520    E   =   >   F   A   L   S   E   ,  \r                        
0102540    E   N   D   C   A   S   E   =   >   F   A   L   S   E       T
0102560    H   E   N       B   E   G   I   N  \r                   I   F
0102600        j   s   .   d   i   r   =   h       A   N   D       b   p
0102620    i   .   y   =   j   s   .   y     376 001  \0   }  \f   T   H
0102640    E   N       B   E   G   I   N  \r                           I
0102660    F       b   p   i   .   x       I   N       [   j   s   .   x
0102700    .   .   j   s   .   e   n   d   )       T   H   E   N       b
0102720    p   i   .   b   e   a   d   R   _   s   o   m   e   B   e   a
0102740    d   ;  \r                           I   F       b   p   i   .
0102760    x       I   N       (   j   s   .   x   .   .   j   s   .   e
0103000    n   d   ]       T   H   E   N       b   p   i   .   b   e   a
0103020    d   L   _   s   o   m   e   B   e   a   d   ;  \r            
0103040                E   N   D   ;  \r                   I   F       j
0103060    s   .   d   i   r   =   v       A   N   D       b   p   i   .
0103100    x   =   j   s   .   x       T   H   E   N       B   E   G   I
0103120    N  \r                           I   F       b   p   i   .   y
0103140        I   N       [   j   s   .   y   .   .   j   s   .   e   n
0103160    d   )       T   H   E   N       b   p   i   .   b   e   a   d
0103200    U   _   s   o   m   e   B   e   a   d   ;  \r                
0103220            I   F       b   p   i   .   y       I   N     376 001
0103240   \0 225 310   (   j   s   .   y   .   .   j   s   .   e   n   d
0103260    ]       T   H   E   N       b   p   i   .   b   e   a   d   D
0103300    _   s   o   m   e   B   e   a   d   ;  \r                    
0103320        E   N   D   ;  \r                           E   N   D   ;
0103340   \r           E   N   D   ;       E   N   D   L   O   O   P   ;
0103360   \r           E   N   D   ;  \r   -   -       /   /   /   /   /
0103400    /   /   /   /   /   /   /   /   /   /  \r   R   e   c   o   r
0103420    d   B   e   a   d   s   N   e   i   g   h   b   o   r   s   :
0103440    P   R   O   C   E   D   U   R   E   [   i   :   C   A   R   D
0103460    I   N   A   L   ]   =   B   E   G   I   N       j   :   C   A
0103500    R   D   I   N   A   L   ;  \r           b   p   i   :   B   e
0103520    a   d   P   t   r   _   G   e   t   [   i   ]   ;  \r        
0103540    b   p   a   :   B   e   a   d   P   t   r   ;  \r            
0103560        F   i   n   d   :   P   R   O   C   E   D   U   R   E   [
0103600    q   :   C   A   R   D   I   N   A   L   ]       R   E   T   U
0103620    R   N   S   [   a   B   e   a   d   :   C   A   R   D   I   N
0103640    A   L   ] 376 001  \0 234 336   =   B   E   G   I   N  \r    
0103660                        m   i   n   :   B   O   O   L   E   A   N
0103700    _   q   =   0       O   R       q   =   2   ;  \r            
0103720                e   x   t   :   I   N   T   E   G   E   R   _   I
0103740    F       m   i   n       T   H   E   N       1   0   0   0   0
0103760        E   L   S   E       0   ;  \r                           a
0104000    B   e   a   d   _   n   o   B   e   a   d   ;  \r            
0104020                F   O   R       j       I   N       [   0   .   .
0104040    t   o   p   B   e   a   d   ]       D   O       B   E   G   I
0104060    N  \r                                   b   p   j   :   B   e
0104100    a   d   P   t   r   _   G   e   t   [   j   ]   ;  \r        
0104120                            s   a   m   e   X   :   B   O   O   L
0104140    E   A   N   ;  \r                                   j   x   :
0104160    I   N   T   E   G   E   R   _   b   p   j   .   x   ;       j
0104200    y   :   I   N   T   E   G   E   R   _   b   p   j   .   y   ;
0104220   \r                                   a   y   ,   b   y   :   I
0104240    N   T   E   G   E   R   ;  \r 376 001  \0 372 021            
0104260                        I   F       q   <   2       T   H   E   N
0104300        B   E   G   I   N       a   y   _   j   y   ;       b   y
0104320    _   b   p   i   .   y   ;       s   a   m   e   X   _   (   j
0104340    x   =   b   p   i   .   x   )   ;       E   N   D  \r        
0104360                                                        E   L   S
0104400    E       B   E   G   I   N       a   y   _   j   x   ;       b
0104420    y   _   b   p   i   .   x   ;       s   a   m   e   X   _   (
0104440    j   y   =   b   p   i   .   y   )   ;       E   N   D   ;  \r
0104460                                    I   F       s   a   m   e   X
0104500   \r                                           A   N   D       (
0104520    I   F       m   i   n       T   H   E   N       a   y       I
0104540    N       (   b   y   .   .   e   x   t   ]       E   L   S   E
0104560        a   y       I   N       [   e   x   t   .   .   b   y   )
0104600    )  \r                                           A   N   D    
0104620    (   I   F       q   <   2       T   H   E   N       d   e   s
0104640    P   [   b   p   i   .   t   ]   .   b   i   t   P 376 001  \0
0104660    G   ?   e   r   L   e   v   e   l   V   =   d   e   s   P   [
0104700    b   p   j   .   t   ]   .   b   i   t   P   e   r   L   e   v
0104720    e   l   V  \r                                                
0104740                                            E   L   S   E       d
0104760    e   s   P   [   b   p   i   .   t   ]   .   b   i   t   P   e
0105000    r   L   e   v   e   l   =   d   e   s   P   [   b   p   j   .
0105020    t   ]   .   b   i   t   P   e   r   L   e   v   e   l   )  \r
0105040                                            T   H   E   N       B
0105060    E   G   I   N       e   x   t   _   a   y   ;       a   B   e
0105100    a   d   _   j   ;       E   N   D   ;  \r                    
0105120                E   N   D   ;       E   N   D   L   O   O   P   ;
0105140   \r                               b   p   a   _   G   e   t   [
0105160    a   B   e   a   d   ]   ;  \r                           I   F
0105200        n   o   B   e   a   d   =   (   S   E   L   E   C   T    
0105220    q       F   R   O   M       0   =   >   b   p   a   .   b   e
0105240    a   d   D   ,       1   =   >   b   p   a   .   b   e   a   d
0105260    U   , 376 001  \0   o 303  \r                                
0105300        2   =   >   b   p   a   .   b   e   a   d   L   ,       E
0105320    N   D   C   A   S   E   =   >   b   p   a   .   b   e   a   d
0105340    R   )  \r                                   T   H   E   N    
0105360    a   B   e   a   d   _   n   o   B   e   a   d   ;      \r    
0105400                        E   N   D   ;  \r                   I   F
0105420        b   p   i   .   b   e   a   d   U   =   s   o   m   e   B
0105440    e   a   d       T   H   E   N       b   p   i   .   b   e   a
0105460    d   U   _   F   i   n   d   [   0   ]   ;  \r                
0105500    I   F       b   p   i   .   b   e   a   d   D   =   s   o   m
0105520    e   B   e   a   d       T   H   E   N       b   p   i   .   b
0105540    e   a   d   D   _   F   i   n   d   [   1   ]   ;  \r        
0105560            I   F       b   p   i   .   b   e   a   d   R   =   s
0105600    o   m   e   B   e   a   d       T   H   E   N       b   p   i
0105620    .   b   e   a   d   R   _   F   i   n   d   [   2   ]   ;  \r
0105640                    I   F       b   p   i   .   b   e   a   d   L
0105660    =   s   o   m   e   B   e 376 001  \0 331   Q   a   d       T
0105700    H   E   N       b   p   i   .   b   e   a   d   L   _   F   i
0105720    n   d   [   3   ]   ;  \r           E   N   D   ;  \r   -   -
0105740        /   /   /   /   /   /   /   /   /   /   /   /   /   /   /
0105760   \r   S   t   i   c   k   T   o   B   e   a   d   C   o   o   r
0106000    d   i   n   a   t   e   s   :   P   R   O   C   E   D   U   R
0106020    E   [   i   :   C   A   R   D   I   N   A   L   ]   =   B   E
0106040    G   I   N  \r           b   p   i   :   B   e   a   d   P   t
0106060    r   _   G   e   t   [   i   ]   ;  \r           m   :   C   A
0106100    R   D   I   N   A   L   _   b   p   i   .   x   ;       n   :
0106120    C   A   R   D   I   N   A   L   _   b   p   i   .   y   ;  \r
0106140            b   p   i   .   x   _   m   *   s   t   i   c   k   S
0106160    c   a   l   i   n   g   ;       b   p   i   .   y   _   n   *
0106200    s   t   i   c   k   S   c   a   l   i   n   g   ;  \r        
0106220    E   N   D   ;  \r   -   -       /   /   /   /   /   /   /   /
0106240    /   /   /   /   /   /   /  \r   W   i   g   g   l   e   T   i
0106260    e   d   B   e   a   d   s   U   p   A   n   d 376 001  \0   T
0106300    7   D   o   w   n   :   P   R   O   C   E   D   U   R   E   [
0106320    i   :   C   A   R   D   I   N   A   L   ]   =       B   E   G
0106340    I   N  \r           N   e   w   :   T   Y   P   E   =   R   E
0106360    C   O   R   D   [   r   x   ,   r   y   ,   g   x   ,   g   y
0106400    ,   b   x   ,   b   y   :   I   N   T   E   G   E   R   ]   ;
0106420   \r           b   p   i   :   B   e   a   d   P   t   r   _   G
0106440    e   t   [   i   ]   ;  \r           I   F       b   p   i   .
0106460    t   =   b   g       A   N   D       G   e   t   [   b   p   i
0106500    .   b   e   a   d   T   ]   .   t   =   r   b       T   H   E
0106520    N       B   E   G   I   N  \r                   g   r   e   e
0106540    n   :   C   A   R   D   I   N   A   L   =   i   ;  \r        
0106560            r   e   d   :   C   A   R   D   I   N   A   L   _   b
0106600    p   i   .   b   e   a   d   T   ;  \r                   b   l
0106620    u   e   :   C   A   R   D   I   N   A   L   _   G   e   t   [
0106640    r   e   d   ]   .   b   e   a   d   T   ;  \r                
0106660    b   p   g   :   B   e   a   d   P   t   r   _   G   e   t   [
0106700    g 376 001  \0 006 020   r   e   e   n   ]   ;  \r            
0106720        b   p   r   :   B   e   a   d   P   t   r   _   G   e   t
0106740    [   r   e   d   ]   ;  \r                   b   p   b   :   B
0106760    e   a   d   P   t   r   _   G   e   t   [   b   l   u   e   ]
0107000    ;  \r                   I   F       b   p   b   .   t   #   b
0107020    f       O   R       b   p   b   .   b   e   a   d   T   #   g
0107040    r   e   e   n       T   H   E   N       E   r   r   o   r   ;
0107060   \r                           B   E   G   I   N  \r            
0107100                l   c   :   C   o   l   o   r   _   I   F       b
0107120    p   g   .   b   e   a   d   L   #   n   o   B   e   a   d    
0107140    T   H   E   N       g  \r                                    
0107160                                E   L   S   E       I   F       b
0107200    p   r   .   b   e   a   d   L   #   n   o   B   e   a   d    
0107220    T   H   E   N       r       E   L   S   E       n   o   n   e
0107240    ;  \r                           r   c   :   C   o   l   o   r
0107260    _   I   F       b   p   g   .   b   e   a   d   R   #   n   o
0107300    B   e   a   d       T 376 001  \0   {   v   H   E   N       g
0107320   \r                                                            
0107340        E   L   S   E       I   F       b   p   r   .   b   e   a
0107360    d   R   #   n   o   B   e   a   d       T   H   E   N       r
0107400        E   L   S   E       n   o   n   e   ;  \r                
0107420            u   c   :   C   o   l   o   r   _   I   F       b   p
0107440    g   .   b   e   a   d   U   #   n   o   B   e   a   d       T
0107460    H   E   N       g  \r                                        
0107500                            E   L   S   E       I   F       b   p
0107520    r   .   b   e   a   d   U   #   n   o   B   e   a   d       T
0107540    H   E   N       r       E   L   S   E       n   o   n   e   ;
0107560   \r                           d   c   :   C   o   l   o   r   _
0107600    I   F       b   p   g   .   b   e   a   d   D   #   n   o   B
0107620    e   a   d       T   H   E   N       g  \r                    
0107640                                                E   L   S   E    
0107660    I   F       b   p   r   .   b   e   a   d   D   #   n   o   B
0107700    e   a   d       T   H   E   N       r     376 001  \0 337 213
0107720    E   L   S   E       n   o   n   e   ;  \r                    
0107740        n   e   w   :   N   e   w   ;  \r                        
0107760    I   F       b   p   r   .   b   e   a   d   L   #   n   o   B
0110000    e   a   d       A   N   D       b   p   g   .   b   e   a   d
0110020    L   #   n   o   B   e   a   d       T   H   E   N       I   l
0110040    l   e   g   a   l   I   n   p   u   t   ;  \r                
0110060            I   F       b   p   r   .   b   e   a   d   R   #   n
0110100    o   B   e   a   d       A   N   D       b   p   g   .   b   e
0110120    a   d   R   #   n   o   B   e   a   d       T   H   E   N    
0110140    I   l   l   e   g   a   l   I   n   p   u   t   ;  \r        
0110160                    I   F       b   p   r   .   b   e   a   d   U
0110200    #   n   o   B   e   a   d       A   N   D       b   p   g   .
0110220    b   e   a   d   U   #   n   o   B   e   a   d       T   H   E
0110240    N       I   l   l   e   g   a   l   I   n   p   u   t   ;  \r
0110260                            I   F       b   p   r   .   b   e   a
0110300    d   D   #   n   o   B   e   a   d       A   N   D       b   p
0110320  376 001  \0   Q 352   g   .   b   e   a   d   D   #   n   o   B
0110340    e   a   d       T   H   E   N       I   l   l   e   g   a   l
0110360    I   n   p   u   t   ;  \r                           n   e   w
0110400    _   S   E   L   E   C   T       T   R   U   E       F   R   O
0110420    M           -   -   T   h   e   r   e       h   a   s       g
0110440    o   t       t   o       b   e       a       b   e   t   t   e
0110460    r       w   a   y   !  \r                               l   c
0110500    =   g       A   N   D       r   c   =   g       A   N   D    
0110520    u   c   =   r       =   >   [   0   ,   6   ,   0   ,       0
0110540    ,   0   ,       0   ]   ,  \r                               l
0110560    c   =   g       A   N   D       r   c   =   g                
0110600                            =   >   [   0   ,   -   6   ,   0   ,
0110620    0   ,   0   ,   -   6   ]   ,  \r                            
0110640    l   c   =   r       A   N   D       r   c   =   r       A   N
0110660    D       u   c   =   g       =   >   [   0   ,   0   ,   0   ,
0110700        6   ,   0   ,       0   ]   ,  \r                        
0110720        l   c   =   r 376 001  \0 235 223       A   N   D       r
0110740    c   =   r                                           =   >   [
0110760    0   ,   0   ,   0   ,   -   6   ,   0   ,   -   6   ]   ,  \r
0111000                                u   c   =   g       A   N   D    
0111020    d   c   =   g       A   N   D       l   c   =   r       =   >
0111040    [   -   6   ,   0   ,   0   ,   0   ,   -   6   ,   0   ]   ,
0111060   \r                               u   c   =   g       A   N   D
0111100        d   c   =   g                                           =
0111120    >   [       6   ,   0   ,   0   ,   0   ,       0   ,   0   ]
0111140    ,  \r                               u   c   =   r       A   N
0111160    D       d   c   =   r       A   N   D       l   c   =   g    
0111200    =   >   [   0   ,   0   ,   -   6   ,   0   ,   -   6   ,   0
0111220    ]   ,  \r                               u   c   =   r       A
0111240    N   D       d   c   =   r                                    
0111260        =   >   [   0   ,   0   ,   6   ,   0   ,       0   ,    
0111300    0   ]   ,  \r                               l   c   #   g    
0111320    A   N   D       r   c   #   g       A 376 001  \0   i 034   N
0111340    D       u   c   =   g       =   >   [   0   ,   0   ,   0   ,
0111360        6   ,   0   ,       0   ]   ,  \r                        
0111400        l   c   #   g       A   N   D       r   c   #   g        
0111420                                    =   >   [   0   ,   0   ,   0
0111440    ,   -   6   ,   0   ,   -   6   ]   ,  \r                    
0111460            l   c   #   r       A   N   D       r   c   #   r    
0111500    A   N   D       u   c   =   r       =   >   [   0   ,       6
0111520    ,   0   ,   0   ,   0   ,       0   ]   ,  \r                
0111540                l   c   #   r       A   N   D       r   c   #   r
0111560                                            =   >   [   0   ,   -
0111600    6   ,   0   ,   0   ,   0   ,   -   6   ]   ,  \r            
0111620                    u   c   #   g       A   N   D       d   c   #
0111640    g       A   N   D       r   c   =   g       =   >   [   0   ,
0111660    0   ,       6   ,   0   ,       0   ,   0   ]   ,  \r        
0111700                        u   c   #   g       A   N   D       d   c
0111720    #   g                                           =   >   [ 376
0111740  001  \0   w 345   0   ,   0   ,   -   6   ,   0   ,   -   6   ,
0111760    0   ]   ,  \r                               u   c   #   r    
0112000    A   N   D       d   c   #   r       A   N   D       r   c   =
0112020    r       =   >   [       6   ,   0   ,   0   ,   0   ,       0
0112040    ,   0   ]   ,  \r                               E   N   D   C
0112060    A   S   E                               =   >                
0112100                        [   -   6   ,   0   ,   0   ,   0   ,   -
0112120    6   ,   0   ]   ;  \r                           b   p   r   .
0112140    x   _   b   p   r   .   x   +   n   e   w   .   r   x   ;  \r
0112160                            b   p   g   .   x   _   b   p   g   .
0112200    x   +   n   e   w   .   g   x   ;  \r                        
0112220    b   p   b   .   x   _   b   p   b   .   x   +   n   e   w   .
0112240    b   x   ;  \r                           b   p   r   .   y   _
0112260    b   p   r   .   y   +   n   e   w   .   r   y   ;  \r        
0112300                    b   p   g   .   y   _   b   p   g   .   y   +
0112320    n   e   w   .   g   y   ;  \r                           b   p
0112340    b   .   y   _ 376 001  \0 276 032   b   p   b   .   y   +   n
0112360    e   w   .   b   y   ;  \r                           b   p   r
0112400    .   e   x   t   e   r   n   a   l   _           -   -   1    
0112420    m   e   a   n   s       6   h   x   8   w   -   -  \r        
0112440                    b   p   g   .   e   x   t   e   r   n   a   l
0112460    _           -   -   1       m   e   a   n   s       6   h   x
0112500    8   w   -   -  \r                           b   p   b   .   e
0112520    x   t   e   r   n   a   l   _   I   F       n   e   w   .   r
0112540    y   #   0       O   R       n   e   w   .   g   y   #   0    
0112560    T   H   E   N       1       E   L   S   E       0   ;  \r    
0112600                                            -   -   1       m   e
0112620    a   n   s       1   2   h   x   8   w   -   -  \r            
0112640                E   N   D   ;  \r                   E   N   D   ;
0112660   \r           E   N   D   ;  \r   -   -       /   /   /   /   /
0112700    /   /   /   /   /   /   /   /   /   /  \r   A   d   d   W   i
0112720    r   e   s   :   P   R   O   C   E   D   U   R   E   [   i   :
0112740    C   A   R   D   I   N   A   L   ] 376 001  \0 354   Q   =   B
0112760    E   G   I   N       k   :   C   A   R   D   I   N   A   L   ;
0113000   \r           b   i   :   B   e   a   d   P   t   r   _   G   e
0113020    t   [   i   ]   ;  \r           b   p   k   ,   b   p   t   :
0113040    B   e   a   d   P   t   r   ;  \r           I   F       (   k
0113060    _   b   i   .   b   e   a   d   R   )   #   n   o   B   e   a
0113100    d       T   H   E   N       B   E   G   I   N  \r            
0113120            b   p   k   _   G   e   t   [   k   ]   ;  \r        
0113140                I   F       (   t   o   p   B   e   a   d   _   t
0113160    o   p   B   e   a   d   +   1   )       N   O   T       I   N
0113200        [   0   .   .   n   o   B   e   a   d   )       T   H   E
0113220    N       E   R   R   O   R   ;  \r                       b   p
0113240    t   _   G   e   t   [   t   o   p   B   e   a   d   ]   ;  \r
0113260                        b   p   t   .   y   _   b   i   .   y   +
0113300    1   0   -   (   (   b   i   .   y   +   1   0   )       M   O
0113320    D       2   0   )   ;  \r                       b   p   t   .
0113340    b   e   a   d   U   _   b   p   t   .   b   e   a   d 376 001
0113360   \0   < 356   D   _   b   p   t   .   b   e   a   d   T   _   n
0113400    o   B   e   a   d   ;  \r                       b   p   t   .
0113420    b   e   a   d   L   _   i   ;  \r                       b   p
0113440    t   .   b   e   a   d   R   _   k   ;  \r                    
0113460    b   p   t   .   t   _   d   e   s   P   [   b   i   .   t   ]
0113500    .   r   w   c   ;  \r                       b   p   t   .   e
0113520    x   t   e   r   n   a   l   _   0   ;  \r                    
0113540    b   i   .   b   e   a   d   R   _   b   p   k   .   b   e   a
0113560    d   L   _   t   o   p   B   e   a   d   ;  \r                
0113600        S   e   t   T   y   p   e   C   o   n   s   t   a   n   t
0113620    s   [   t   o   p   B   e   a   d   ]   ;  \r                
0113640        E   N   D   ;  \r           I   F       (   k   _   b   i
0113660    .   b   e   a   d   U   )   #   n   o   B   e   a   d       T
0113700    H   E   N       B   E   G   I   N  \r                       b
0113720    p   k   _   G   e   t   [   k   ]   ;  \r                    
0113740    I   F       (   t   o   p   B   e   a   d   _   t   o   p   B
0113760    e   a   d 376 001  \0   $ 375   +   1   )       N   O   T    
0114000    I   N       [   0   .   .   n   o   B   e   a   d   )       T
0114020    H   E   N       E   R   R   O   R   ;  \r                    
0114040    b   p   t   _   G   e   t   [   t   o   p   B   e   a   d   ]
0114060    ;  \r                       b   p   t   .   x   _   b   i   .
0114100    x   +   1   0   -   (   (   b   i   .   x   +   1   0   )    
0114120    M   O   D       2   0   )   ;  \r                       b   p
0114140    t   .   b   e   a   d   L   _   b   p   t   .   b   e   a   d
0114160    R   _   b   p   t   .   b   e   a   d   T   _   n   o   B   e
0114200    a   d   ;  \r                       b   p   t   .   b   e   a
0114220    d   D   _   i   ;  \r                       b   p   t   .   b
0114240    e   a   d   U   _   k   ;  \r                       b   p   t
0114260    .   t   _   d   e   s   P   [   b   i   .   t   ]   .   u   w
0114300    c   ;  \r                       b   p   t   .   e   x   t   e
0114320    r   n   a   l   _   0   ;  \r                       b   i   .
0114340    b   e   a   d   U   _   b   p   k   .   b   e   a   d   D   _
0114360    t   o   p   B   e   a   d   ; 376 001  \0 027 225  \r        
0114400                S   e   t   T   y   p   e   C   o   n   s   t   a
0114420    n   t   s   [   t   o   p   B   e   a   d   ]   ;  \r        
0114440                E   N   D   ;  \r           E   N   D   ;  \r  \r
0114460    -   -       /   /   /   /   /   /   /   /   /   /   /   /   /
0114500    /   /  \r  \r   S   e   t   H   e   i   g   h   t   A   n   d
0114520    W   i   d   t   h   :   P   R   O   C   E   D   U   R   E   [
0114540    i   :   C   A   R   D   I   N   A   L   ]   =   B   E   G   I
0114560    N  \r                   b   p   i   :   B   e   a   d   P   t
0114600    r   _   G   e   t   [   i   ]   ;  \r                   t   y
0114620    p   e   :   B   e   a   d   T   y   p   e   _   b   p   i   .
0114640    t   ;  \r                   b   p   i   .   h   _   d   e   s
0114660    P   [   t   y   p   e   ]   .   h   ;  \r                   b
0114700    p   i   .   w   _   d   e   s   P   [   t   y   p   e   ]   .
0114720    w   ;  \r                   S   E   L   E   C   T       t   y
0114740    p   e       F   R   O   M   -   -       e   x   t   =   0   ,
0114760    1   ,   o   r   2  \r                           b 376 001  \0
0115000  270 002   f   =   >   B   E   G   I   N  \r                    
0115020                        b   p   i   .   h   _   I   F       b   p
0115040    i   .   e   x   t   e   r   n   a   l   =   1       T   H   E
0115060    N       1   2       E   L   S   E       8   ;  \r            
0115100                                b   p   i   .   w   _   I   F    
0115120    b   p   i   .   e   x   t   e   r   n   a   l   =   0       T
0115140    H   E   N       1   2       E   L   S   E       8   ;  \r    
0115160                                        E   N   D   ;  \r        
0115200                    b   g   ,   r   b   =   >   B   E   G   I   N
0115220   \r                                           b   p   i   .   h
0115240    _   I   F       b   p   i   .   e   x   t   e   r   n   a   l
0115260    =   1       T   H   E   N       6       E   L   S   E       8
0115300    ;  \r                                           b   p   i   .
0115320    w   _   I   F       b   p   i   .   e   x   t   e   r   n   a
0115340    l   =   0       T   H   E   N       6       E   L   S   E    
0115360    8   ;  \r                                           E   N   D
0115400    ;  \r 376 001  \0   s 350                       E   N   D   C
0115420    A   S   E   ;  \r           E   N   D   ;  \r  \r   C   o   r
0115440    r   e   c   t   W   i   r   e   L   e   n   g   t   h   :   P
0115460    R   O   C   E   D   U   R   E   [   i   :   C   A   R   D   I
0115500    N   A   L   ]   =   B   E   G   I   N  \r                   b
0115520    p   i   :   B   e   a   d   P   t   r   _   G   e   t   [   i
0115540    ]   ;  \r                   I   F       b   p   i   .   w   i
0115560    r   e       T   H   E   N       B   E   G   I   N  \r        
0115600                    o   n   e   ,   o   t   h   e   r   :   C   A
0115620    R   D   I   N   A   L   ;  \r                           t   :
0115640    I   N   T   E   G   E   R   ;  \r                           t
0115660    y   p   e   :   B   e   a   d   T   y   p   e   _   b   p   i
0115700    .   t   ;  \r                           I   F       b   p   i
0115720    .   b   e   a   d   U   =   n   o   B   e   a   d       T   H
0115740    E   N       B   E   G   I   N  \r                            
0115760        o   n   e   _   b   p   i   .   b   e   a   d   L   ;  \r
0116000                              376 001  \0 327   f       o   t   h
0116020    e   r   _   b   p   i   .   b   e   a   d   R   ;  \r        
0116040                            t   _   b   p   i   .   x   _   G   e
0116060    t   [   o   n   e   ]   .   x   +   G   e   t   [   o   n   e
0116100    ]   .   w   ;  \r                                   b   p   i
0116120    .   w   _   G   e   t   [   o   t   h   e   r   ]   .   x   -
0116140    t   ;  \r                                   E   N   D  \r    
0116160                            E   L   S   E       B   E   G   I   N
0116200   \r                                   o   n   e   _   b   p   i
0116220    .   b   e   a   d   D   ;  \r                                
0116240    o   t   h   e   r   _   b   p   i   .   b   e   a   d   U   ;
0116260   \r                                   t   _   b   p   i   .   y
0116300    _   G   e   t   [   o   n   e   ]   .   y   +   G   e   t   [
0116320    o   n   e   ]   .   h   ;  \r                                
0116340    b   p   i   .   h   _   G   e   t   [   o   t   h   e   r   ]
0116360    .   y   -   t   ;  \r                                   E   N
0116400    D   ;  \r                           E   N   D 376 001  \0   v
0116420  360   ;  \r           E   N   D   ;  \r   -   -       /   /   /
0116440    /   /   /   /   /   /   /   /   /   /   /   /  \r   M   a   k
0116460    e   C   i   r   c   u   i   t   s   :   P   U   B   L   I   C
0116500        P   R   O   C   E   D   U   R   E   =   B   E   G   I   N
0116520        i   :   C   A   R   D   I   N   A   L   ;       k   :   I
0116540    N   T   E   G   E   R   _   -   1   ;  \r           F   O   R
0116560        i       I   N       [   0   .   .   t   o   p   B   e   a
0116600    d   ]       D   O       G   e   t   [   i   ]   .   c   i   r
0116620    c   u   i   t   _   n   o   B   e   a   d   ;       E   N   D
0116640    L   O   O   P   ;  \r           F   O   R       i       I   N
0116660        [   0   .   .   t   o   p   B   e   a   d   ]  \r        
0116700            D   O       B   E   G   I   N       f   o   o   :   C
0116720    A   R   D   I   N   A   L   _   G   e   t   [   i   ]   .   c
0116740    i   r   c   u   i   t   ;  \r                   I   F       f
0116760    o   o   =   n   o   B   e   a   d       T   H   E   N       S
0117000    e   t   C   i   r   c   u   i   t   [   i   ,   k   _   k   +
0117020    1 376 001  \0   Z 215   ]   ;  \r                   E   N   D
0117040    ;  \r                   E   N   D   L   O   O   P   ;  \r    
0117060        E   N   D   ;  \r  \r   S   e   t   C   i   r   c   u   i
0117100    t   :   P   R   O   C   E   D   U   R   E   [   i   :   C   A
0117120    R   D   I   N   A   L   ,   k   :   I   N   T   E   G   E   R
0117140    ]   =   B   E   G   I   N  \r           b   p   i   :   B   e
0117160    a   d   P   t   r   _   G   e   t   [   i   ]   ;  \r        
0117200    f   o   o   :   C   A   R   D   I   N   A   L   _   b   p   i
0117220    .   c   i   r   c   u   i   t   ;  \r           I   F       i
0117240    =   n   o   B   e   a   d       O   R       f   o   o   #   n
0117260    o   B   e   a   d       T   H   E   N       R   E   T   U   R
0117300    N   ;  \r           b   p   i   .   c   i   r   c   u   i   t
0117320    _   k   ;  \r           S   E   L   E   C   T       b   p   i
0117340    .   t       F   R   O   M       t   t   ,   d   d   =   >   N
0117360    U   L   L   ;  \r               E   N   D   C   A   S   E   =
0117400    >   B   E   G   I   N  \r                       T   r   y   C
0117420    i   r   c   u   i   t 376 001  \0   ~ 366   H   [   b   p   i
0117440    .   b   e   a   d   L   ,   k   ]   ;       T   r   y   C   i
0117460    r   c   u   i   t   H   [   b   p   i   .   b   e   a   d   R
0117500    ,   k   ]   ;       E   N   D   ;  \r           S   E   L   E
0117520    C   T       b   p   i   .   t       F   R   O   M       t   t
0117540    V   ,   d   d   V   =   >   N   U   L   L   ;  \r            
0117560    E   N   D   C   A   S   E   =   >   B   E   G   I   N  \r    
0117600                    T   r   y   C   i   r   c   u   i   t   V   [
0117620    b   p   i   .   b   e   a   d   U   ,   k   ]   ;       T   r
0117640    y   C   i   r   c   u   i   t   V   [   b   p   i   .   b   e
0117660    a   d   D   ,   k   ]   ;       E   N   D   ;  \r           S
0117700    e   t   C   i   r   c   u   i   t   [   b   p   i   .   b   e
0117720    a   d   T   ,   k   ]   ;  \r           E   N   D   ;  \r  \r
0117740    T   r   y   C   i   r   c   u   i   t   H   :   P   R   O   C
0117760    E   D   U   R   E   [   m   :   C   A   R   D   I   N   A   L
0120000    ,   k   :   I   N   T   E   G   E   R   ]   =  \r           B
0120020    E   G   I   N       S   E   L   E   C   T 376 001  \0   = 243
0120040        G   e   t   [   m   ]   .   t       F   R   O   M       t
0120060    t   ,   d   d   =   >   N   U   L   L   ;       E   N   D   C
0120100    A   S   E   =   >   S   e   t   C   i   r   c   u   i   t   [
0120120    m   ,   k   ]   ;       E   N   D   ;  \r  \r   T   r   y   C
0120140    i   r   c   u   i   t   V   :   P   R   O   C   E   D   U   R
0120160    E   [   m   :   C   A   R   D   I   N   A   L   ,   k   :   I
0120200    N   T   E   G   E   R   ]   =  \r           B   E   G   I   N
0120220        S   E   L   E   C   T       G   e   t   [   m   ]   .   t
0120240        F   R   O   M       t   t   V   ,   d   d   V   =   >   N
0120260    U   L   L   ;       E   N   D   C   A   S   E   =   >   S   e
0120300    t   C   i   r   c   u   i   t   [   m   ,   k   ]   ;       E
0120320    N   D   ;  \r  \r   -   -       /   /   /   /   /   /   /   /
0120340    /   /   /   /   /   /   /  \r  \r  \r   C   c   :   P   R   O
0120360    C   E   D   U   R   E   [   x   ,   y   :   I   N   T   E   G
0120400    E   R   ,   i   c   ,   j   c   :   C   o   l   o   r   ]   =
0120420    B   E   G   I   N  \r           I   n   s   e   r   t   C   o
0120440  376 001  \0 347 233   n   t   a   c   t   [   x   ,   y   ,   t
0120460    y   p   e   F   r   o   m   C   o   l   o   r   [   i   c   ]
0120500    [   j   c   ]   ]   ;       E   N   D   ;  \r  \r   I   n   s
0120520    e   r   t   C   o   n   t   a   c   t   :   P   R   O   C   E
0120540    D   U   R   E   [   x   ,   y   :   I   N   T   E   G   E   R
0120560    ,   t   y   p   e   :   B   e   a   d   T   y   p   e   ]   =
0120600    B   E   G   I   N       i   :   C   A   R   D   I   N   A   L
0120620    ;  \r           b   p   i   ,   b   p   t   :   B   e   a   d
0120640    P   t   r   ;  \r           I   F       t   y   p   e   =   n
0120660    o   n   e       T   H   E   N       R   E   T   U   R   N   ;
0120700   \r           I   F       t   o   p   B   e   a   d   #   1   7
0120720    7   7   7   7   B       T   H   E   N       F   O   R       i
0120740        I   N       [   0   .   .   t   o   p   B   e   a   d   ]
0120760        D   O  \r                   b   p   i   _   G   e   t   [
0121000    i   ]   ;  \r                   I   F       C   l   o   s   e
0121020    [   x   ,   b   p   i   .   x   ]       A   N   D       C   l
0121040    o   s   e   [   y 376 001  \0 353 371   ,   b   p   i   .   y
0121060    ]  \r                   T   H   E   N       B   E   G   I   N
0121100        b   p   i   .   t   _   C   o   m   b   i   n   e   T   y
0121120    p   e   s   [   b   p   i   .   t   ,   t   y   p   e   ]   ;
0121140        R   E   T   U   R   N   ;       E   N   D   ;  \r        
0121160            E   N   D   L   O   O   P   ;  \r           t   o   p
0121200    B   e   a   d   _   t   o   p   B   e   a   d   +   1   ;  \r
0121220            I   F       t   o   p   B   e   a   d   >   n   o   B
0121240    e   a   d       T   H   E   N       E   r   r   o   r   ;  \r
0121260            b   p   t   _   G   e   t   [   t   o   p   B   e   a
0121300    d   ]   ;  \r           b   p   t   .   x   _   x   ;  \r    
0121320        b   p   t   .   y   _   y   ;  \r           b   p   t   .
0121340    t   _   t   y   p   e   ;  \r           b   p   t   .   e   x
0121360    t   e   r   n   a   l   _   0   ;  \r           E   N   D   ;
0121400   \r  \r   C   o   m   b   i   n   e   T   y   p   e   s   :   P
0121420    R   O   C   E   D   U   R   E   [   s   ,   t   :   B   e   a
0121440    d   T   y   p   e   ]       R   E   T 376 001  \0 356 374   U
0121460    R   N   S   [   B   e   a   d   T   y   p   e   ]   =   B   E
0121500    G   I   N  \r           s   1   :   C   A   R   D   I   N   A
0121520    L   _   d   e   s   P   [   s   ]   .   t   o   C   o   d   e
0121540    ;  \r           t   1   :   C   A   R   D   I   N   A   L   _
0121560    d   e   s   P   [   t   ]   .   t   o   C   o   d   e   ;  \r
0121600            I   F       s   1   >   6       O   R       t   1   >
0121620    6       T   H   E   N       E   r   r   o   r   ;  \r        
0121640    R   E   T   U   R   N   [   I   F       s   1   =   6       O
0121660    R       t   1   =   6       T   H   E   N       a   l   l    
0121700    E   L   S   E       T   w   o   C   o   d   e   s   [   s   1
0121720    ]   [   t   1   ]   ]   ;  \r           E   N   D   ;  \r  \r
0121740    I   n   s   e   r   t   B   e   a   d   :   P   U   B   L   I
0121760    C       P   R   O   C   E   D   U   R   E   [   b   :   B   e
0122000    a   d   ]   =   B   E   G   I   N  \r               I   F    
0122020    (   t   o   p   B   e   a   d   _   t   o   p   B   e   a   d
0122040    +   1   )       N   O   T       I   N       [   0   .   . 376
0122060  001  \0 372  \0   n   o   B   e   a   d   )       T   H   E   N
0122100        E   R   R   O   R   ;  \r               G   e   t   [   t
0122120    o   p   B   e   a   d   ]   ^   _   b   ;  \r               S
0122140    e   t   T   y   p   e   C   o   n   s   t   a   n   t   s   [
0122160    t   o   p   B   e   a   d   ]   ;  \r               E   N   D
0122200    ;  \r  \r   S   e   t   T   y   p   e   C   o   n   s   t   a
0122220    n   t   s   :   P   U   B   L   I   C       P   R   O   C   E
0122240    D   U   R   E   [   i   :   C   A   R   D   I   N   A   L   ]
0122260    =   B   E   G   I   N  \r           b   p   i   :   B   e   a
0122300    d   P   t   r   _   G   e   t   [   i   ]   ;  \r           I
0122320    F       i       N   O   T       I   N       [   0   .   .   n
0122340    o   B   e   a   d   )       T   H   E   N       E   R   R   O
0122360    R   ;  \r           b   p   i   .   w   i   r   e   _   S   E
0122400    L   E   C   T       b   p   i   .   t       F   R   O   M    
0122420    w   i   r   e   G   ,   w   i   r   e   R   ,   w   i   r   e
0122440    B   ,   w   i   r   e   O   =   >   T   R   U   E   ,       E
0122460    N   D   C   A 376 001  \0   ; 214   S   E   =   >   F   A   L
0122500    S   E   ;  \r           E   N   D   ;  \r  \r   C   h   e   c
0122520    k   B   e   a   d   s   :   P   U   B   L   I   C       P   R
0122540    O   C   E   D   U   R   E   =   B   E   G   I   N  \r        
0122560    i   ,   k   :   C   A   R   D   I   N   A   L   ;  \r        
0122600    F   O   R       i       I   N       [   0   .   .   t   o   p
0122620    B   e   a   d   ]       D   O       B   E   G   I   N  \r    
0122640                b   p   i   :   B   e   a   d   P   t   r   _   G
0122660    e   t   [   i   ]   ;  \r                   b   p   k   :   B
0122700    e   a   d   P   t   r   ;  \r                   I   F       (
0122720    k   _   b   p   i   .   b   e   a   d   R   )   #   n   o   B
0122740    e   a   d       T   H   E   N       B   E   G   I   N  \r    
0122760                        b   p   k   _   G   e   t   [   k   ]   ;
0123000   \r                           I   F       b   p   k   .   b   e
0123020    a   d   L   #   i       T   H   E   N       E   r   r   o   r
0123040    ;  \r                           I   F       b   p   i   .   x
0123060    +   b   p   i   .   w   #   b   p 376 001  \0 024   K   k   .
0123100    x       T   H   E   N       E   r   r   o   r   ;  \r        
0123120                    E   N   D   ;  \r                   I   F    
0123140    (   k   _   b   p   i   .   b   e   a   d   U   )   #   n   o
0123160    B   e   a   d       T   H   E   N       B   E   G   I   N  \r
0123200                            b   p   k   _   G   e   t   [   k   ]
0123220    ;  \r                           I   F       b   p   k   .   b
0123240    e   a   d   D   #   i       T   H   E   N       E   r   r   o
0123260    r   ;  \r                           I   F       b   p   i   .
0123300    y   +   b   p   i   .   h   #   b   p   k   .   y       T   H
0123320    E   N       E   r   r   o   r   ;  \r                        
0123340    E   N   D   ;  \r                   E   N   D   ;       E   N
0123360    D   L   O   O   P   ;  \r           E   N   D   ;  \r  \r   T
0123400    w   o   C   l   o   s   e   :   P   R   O   C   E   D   U   R
0123420    E   [   a   ,   b   ,   c   :   I   N   T   E   G   E   R   ]
0123440        R   E   T   U   R   N   S   [   B   O   O   L   E   A   N
0123460    ]   =  \r               B   E   G   I   N       R   E 376 001
0123500   \0 370   X   T   U   R   N   [   C   l   o   s   e   [   a   ,
0123520    b   ]       O   R       C   l   o   s   e   [   a   ,   c   ]
0123540    ]   ;       E   N   D   ;  \r  \r   C   l   o   s   e   :   P
0123560    R   O   C   E   D   U   R   E   [   a   ,   b   :   I   N   T
0123600    E   G   E   R   ]       R   E   T   U   R   N   S   [   B   O
0123620    O   L   E   A   N   ]   =   B   E   G   I   N       R   E   T
0123640    U   R   N   [   a   =   b   ]   ;       E   N   D   ;  \r  \r
0123660    W   i   t   h   i   n   :   P   R   O   C   E   D   U   R   E
0123700    [   a   ,   b   ,   c   :   I   N   T   E   G   E   R   ]    
0123720    R   E   T   U   R   N   S   [   B   O   O   L   E   A   N   ]
0123740    =  \r               B   E   G   I   N       R   E   T   U   R
0123760    N   [   a       I   N       [   b   .   .   c   ]   ]   ;    
0124000    E   N   D   ;  \r  \r   C   l   o   s   e   S   :   P   R   O
0124020    C   E   D   U   R   E   [   a   ,   b   :   I   N   T   E   G
0124040    E   R   ]       R   E   T   U   R   N   S   [   B   O   O   L
0124060    E   A   N   ]   =  \r               B   E   G   I   N       R
0124100    E   T   U 376 001  \0 203 214   R   N   [   a   -   b       I
0124120    N       [   -   1   .   .   1   ]   ]   ;       E   N   D   ;
0124140   \r  \r   W   i   t   h   i   n   S   :   P   R   O   C   E   D
0124160    U   R   E   [   a   ,   b   ,   c   :   I   N   T   E   G   E
0124200    R   ]       R   E   T   U   R   N   S   [   B   O   O   L   E
0124220    A   N   ]   =  \r               B   E   G   I   N       R   E
0124240    T   U   R   N   [   a       I   N       [   b   -   1   .   .
0124260    c   +   1   ]   ]   ;       E   N   D   ;  \r  \r   R   W   :
0124300    P   R   O   C   E   D   U   R   E       R   E   T   U   R   N
0124320    S   [   C   A   R   D   I   N   A   L   ]   =  \r       B   E
0124340    G   I   N       r   i   g   h   t   _   F   A   L   S   E   ;
0124360        R   E   T   U   R   N   [   i   n   p   u   t   S   t   r
0124400    e   a   m   .   g   e   t   [   i   n   p   u   t   S   t   r
0124420    e   a   m   ]   ]   ;       E   N   D   ;  \r  \r   R   B   :
0124440    P   R   O   C   E   D   U   R   E       R   E   T   U   R   N
0124460    S   [   B   y   t   e   ]   =   B   E   G   I   N  \r        
0124500    I   F       r   i   g   h   t 376  \0 270 017   y       T   H
0124520    E   N           p   i   e   c   e   s   .   a   _   p   i   e
0124540    c   e   s   .   b       E   L   S   E       p   i   e   c   e
0124560    s   _   L   O   O   P   H   O   L   E   [   R   W   [   ]   ]
0124600    ;  \r           r   i   g   h   t   _   ~   r   i   g   h   t
0124620    ;       R   E   T   U   R   N   [   p   i   e   c   e   s   .
0124640    a   ]   ;       E   N   D   ;  \r  \r   K   e   e   p   M   e
0124660    s   a   H   a   p   p   y   :   P   R   O   C   E   D   U   R
0124700    E   =   B   E   G   I   N       I   O   D   e   f   s   .   W
0124720    r   i   t   e   C   h   a   r   [   '       ]   ;       E   N
0124740    D   ;  \r  \r   E   N   D   .   .  \r  \r  \r 032   (   1   7
0124760    9   2   )   \   5   1   8   2   i   3   0   I   9   7   0   0
0125000    i   3   2   I  \r 377  \0  \0   b   e   a   d   s   l   o   c
0125020    a   l   5   .   m   e   s   a  \0 376 001  \0 362   2   -   -
0125040    b   e   a   d   s   L   o   c   a   l   4   .   m   e   s   a
0125060        A   u   g   u   s   t       2   1   ,       1   9   7   9
0125100            1   1   :   3   0       A   M  \r   -   -       m   o
0125120    v   e       b   e   a   d   s  \r   D   I   R   E   C   T   O
0125140    R   Y       I   O   D   e   f   s   :   F   R   O   M   "   I
0125160    O   D   e   f   s   "   ,  \r                                
0125200            I   n   l   i   n   e   D   e   f   s   :   F   R   O
0125220    M   "   I   n   l   i   n   e   D   e   f   s   "   ,  \r    
0125240                                        B   e   a   d   s   D   e
0125260    f   s   :   F   R   O   M   "   B   e   a   d   s   D   e   f
0125300    s   "   ;  \r   B   e   a   d   s   L   o   c   a   l   :   P
0125320    R   O   G   R   A   M       I   M   P   O   R   T   S       I
0125340    n   l   i   n   e   D   e   f   s   ,       I   O   D   e   f
0125360    s   ,   B   e   a   d   s   D   e   f   s       E   X   P   O
0125400    R   T   S       B   e   a   d   s   D   e   f   s   =  \r    
0125420        B   E   G   I   N       O   P   E   N       B   e 376 001
0125440   \0 233   [   a   d   s   D   e   f   s   ;  \r  \r   E   r   r
0125460    o   r   :   S   I   G   N   A   L   =   C   O   D   E   ;  \r
0125500    -   -   *   *   *   *   *   *   *   *   *   *   *   *   *   *
0125520    *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *
*
0125600    *   *   *   *   *   *   *   *   *   *  \r   -   -   c   o   n
0125620    t   r   o   l       p   r   o   c   e   d   u   r   e   s  \r
0125640    C   l   e   a   n   U   p   :   P   U   B   L   I   C       P
0125660    R   O   C   E   D   U   R   E   =       B   E   G   I   N  \r
0125700            I   n   i   t   i   a   l   i   z   e   [   ]   ;  \r
0125720            R   e   s   e   t   B   e   l   o   w   [   ]   ;  \r
0125740            E   n   u   m   e   r   a   t   e   B   e   a   d   s
0125760    [   L   o   c   a   l   2   ]   ;  \r       -   -       E   n
0126000    u   m   e   r   a   t   e   B   e   a   d   s   [   L   o   c
0126020    a   l   3   ]   ;  \r       -   -       E   n   u   m   e   r
0126040    a   t   e 376 001  \0 277 225   B   e   a   d   s   [   L   o
0126060    c   a   l   3   a   ]   ;  \r           E   N   D   ;  \r  \r
0126100    L   o   c   a   l   :   P   U   B   L   I   C       P   R   O
0126120    C   E   D   U   R   E   =   B   E   G   I   N  \r           L
0126140    o   c   a   l   S   t   u   f   f   ;                   -   -
0126160        R   e   f   l   e   c   t   [   ]   ;  \r           -   -
0126200    L   o   c   a   l   S   t   u   f   f   ;                    
0126220    R   e   f   l   e   c   t   [   ]   ;  \r           -   -   L
0126240    o   c   a   l   S   t   u   f   f   ;                       R
0126260    o   t   a   t   e   [   ]   ;  \r           -   -   L   o   c
0126300    a   l   S   t   u   f   f   ;                       R   o   t
0126320    a   t   e   [   ]   ;  \r                   E   N   D   ;  \r
0126340   \r   L   o   c   a   l   S   t   u   f   f   :   P   R   O   C
0126360    E   D   U   R   E   =       B   E   G   I   N  \r           i
0126400    ,   j   :   C   A   R   D   I   N   A   L   _   0   ;  \r    
0126420        E   n   u   m   e   r   a   t   e   B   e   a   d   s   [
0126440    I   n   i   t   B   e   a   d 376 001  \0   f   R   W   o   r
0126460    k   ]   ;  \r           I   n   i   t   i   a   l   i   z   e
0126500    [   ]   ;  \r       -   -       E   n   u   m   e   r   a   t
0126520    e   B   e   a   d   s   [   P   a   r   t   W   i   g   g   l
0126540    e   ]   ;  \r           E   n   u   m   e   r   a   t   e   B
0126560    e   a   d   s   [   T   r   a   n   s   f   o   r   m   a   t
0126600    i   o   n   1   ]   ;  \r           E   n   u   m   e   r   a
0126620    t   e   B   e   a   d   s   [   T   r   a   n   s   f   o   r
0126640    m   a   t   i   o   n   2   ]   ;  \r           E   n   u   m
0126660    e   r   a   t   e   B   e   a   d   s   [   T   r   a   n   s
0126700    f   o   r   m   a   t   i   o   n   3   ]   ;  \r           E
0126720    n   u   m   e   r   a   t   e   B   e   a   d   s   [   T   r
0126740    a   n   s   f   o   r   m   a   t   i   o   n   4   ]   ;  \r
0126760            E   n   u   m   e   r   a   t   e   B   e   a   d   s
0127000    [   L   o   c   a   l   1   ]   ;  \r           E   N   D   ;
0127020   \r  \r  \r   -   -   *   *   *   *   *   *   *   *   *   *   *
0127040    *   *   *   *   *   *   *   *   *   *   *   *   * 376 001  \0
0127060  365 310   *   *   *   *   *   *   *   *   *   *   *   *   *   *
0127100    *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *
*
0127140    *   *  \r   -   -   t   r   a   n   s   f   o   r   m   a   t
0127160    i   o   n   s       a   n   d       l   o   c   a   l       o
0127200    p   t   i   m   i   z   a   t   i   o   n   s  \r   -   -   L
0127220    o   c   a   l   #   1       d   e   l   e   t   e   s       u
0127240    n   n   e   e   d   e   d       j   u   n   c   t   i   o   n
0127260    s  \r   -   -   L   o   c   a   l   #   2       p   u   l   l
0127300    s       h   o   r   s   e   s   h   o   e   s       d   o   w
0127320    n       t   i   g   h   t  \r   -   -   L   o   c   a   l   #
0127340    3       p   u   l   l   s       i   n       h   o   o   k   s
0127360   \r   -   -   T   r   a   n   s   f   o   r   m   a   t   i   o
0127400    n   #   1       f   l   i   p   s       t   r   a   n   s   i
0127420    s   t   o   r   s  \r   -   -   T   r   a   n   s   f   o   r
0127440    m   a   t   i   o   n   #   2       r   o   t   a   t   e   s
0127460        c 376 001  \0 002   =   o   n   t   a   c   t   s  \r   -
0127500    -   T   r   a   n   s   f   o   r   m   a   t   i   o   n   #
0127520    3       m   e   r   g   e   s       c   o   n   t   a   c   t
0127540    s  \r   -   -   T   r   a   n   s   f   o   r   m   a   t   i
0127560    o   n   #   4       a   l   s   o       f   l   i   p   s    
0127600    t   r   a   n   s   i   s   t   o   r   s  \r   -   -   W   i
0127620    g   g   l   e       m   o   v   e   s       b   e   a   d   s
0127640        b   a   c   k       a   n   d       f   o   r   t   h    
0127660    t   o       s   e   e       i   f       t   h   e       b   e
0127700    a   d   s       c   a   n       b   e       m   o   v   e   d
0127720        u   p  \r  \r   P   a   r   t   W   i   g   g   l   e   :
0127740    P   R   O   C   E   D   U   R   E   [   i   :   C   A   R   D
0127760    I   N   A   L   ,   b   p   i   :   B   e   a   d   P   t   r
0130000    ]   =   B   E   G   I   N  \r           j   :   C   A   R   D
0130020    I   N   A   L   ;  \r           F   O   R       j       I   N
0130040        [   0   .   .   t   o   p   B   e   a   d   ]       D   O
0130060        I   F       G   e   t 376 001  \0   {   .   [   j   ]   .
0130100    t   #   n   o   n   e       T   H   E   N       W   i   g   g
0130120    l   e   [   i   ,   j   ]   ;       E   N   D   L   O   O   P
0130140    ;  \r           E   N   D   ;  \r  \r           W   i   g   g
0130160    l   e   :   P   R   O   C   E   D   U   R   E   [   i   ,   j
0130200    :   C   A   R   D   I   N   A   L   ]   =       B   E   G   I
0130220    N   -   -       j       i   s       b   e   l   o   w       i
0130240   \r           b   i   :   B   e   a   d   _   G   e   t   [   i
0130260    ]   ^   ;  \r           b   j   :   B   e   a   d   _   G   e
0130300    t   [   j   ]   ^   ;  \r           m   i   n   X   ,   m   i
0130320    n   Y   :   I   N   T   E   G   E   R   ;  \r           [   m
0130340    i   n   X   ,   m   i   n   Y   ]   _   D   e   l   t   a   s
0130360    [   i   ,   j   ]   ;  \r           I   F       b   i   .   w
0130400    i   r   e       O   R       b   j   .   w   i   r   e       T
0130420    H   E   N       R   E   T   U   R   N   ;   -   -       w   h
0130440    y   ?  \r           I   F       b   j   .   y   >       b   i
0130460    .   y       T   H   E   N  \r                 376 001  \0   2
0130500  210       B   E   G   I   N       t   :   C   A   R   D   I   N
0130520    A   L   _   i   ;       i   _   j   ;       j   _   t   ;    
0130540    b   i   _       b   j   ;       b   j   _   G   e   t   [   j
0130560    ]   ^   ;       E   N   D   ;  \r           I   F       m   i
0130600    n   Y   #   b   i   .   y   -   b   j   .   y   -       b   j
0130620    .   h  \r                       O   R       b   j   .   x   >
0130640    =       b   i   .   x   +       b   i   .   w   +       m   i
0130660    n   X  \r                       O   R       b   j   .   x   +
0130700        b   j   .   w   <   =       b   i   .   x   -       m   i
0130720    n   X  \r                       O   R       R   e   l   a   t
0130740    e   d   [   i   ,   j   ]  \r                       O   R    
0130760    T   i   e   d   [   i   ,   j   ]  \r                       O
0131000    R       G   e   t   [   b   j   .   b   e   a   d   U   ]   .
0131020    b   e   a   d   U   =       i       T   H   E   N       R   E
0131040    T   U   R   N   ;  \r           I   F       M   o   v   e   [
0131060    b   e   a   d   ,   j   ,   b   i   .   x   +       b   i   .
0131100    w 376 001  \0 340 243   +       m   i   n   X   -       b   j
0131120    .   x   ,   2   ]  \r                       T   H   E   N    
0131140    B   E   G   I   N       C   o   m   m   i   t   [   ]   ;    
0131160    R   E   T   U   R   N   ;       E   N   D       E   L   S   E
0131200        A   b   o   r   t   [   ]   ;  \r           I   F       M
0131220    o   v   e   [   b   e   a   d   ,   j   ,   b   i   .   x   -
0131240        (   b   j   .   x   +       b   j   .   w   +       m   i
0131260    n   X   )   ,   2   ]  \r                       T   H   E   N
0131300        B   E   G   I   N       C   o   m   m   i   t   [   ]   ;
0131320        R   E   T   U   R   N   ;       E   N   D       E   L   S
0131340    E       A   b   o   r   t   [   ]   ;  \r           R   e   s
0131360    t   o   r   e   [   ]   ;  \r           E   N   D   ;  \r  \r
0131400           \r   T   r   a   n   s   f   o   r   m   a   t   i   o
0131420    n   1   :   P   R   O   C   E   D   U   R   E   [   i   :   C
0131440    A   R   D   I   N   A   L   ,   b   p   i   :   B   e   a   d
0131460    P   t   r   ]   =       B   E   G   I   N  \r           k   ,
0131500    m   ,   n   :   C   A 376 001  \0 023   6   R   D   I   N   A
0131520    L   ;  \r           I   F       b   p   i   .   t   =       t
0131540    t   V       A   N   D  \r                       b   p   i   .
0131560    b   e   a   d   R   =       n   o   B   e   a   d       A   N
0131600    D  \r                       G   e   t   [   m   _       G   e
0131620    t   [   k   _       b   p   i   .   b   e   a   d   L   ]   .
0131640    b   e   a   d   L   ]   .   t   =       r   b       A   N   D
0131660   \r                       G   e   t   [   n   _       G   e   t
0131700    [   m   ]   .   b   e   a   d   T   ]   .   t   =       b   f
0131720        -   -   A   N   D  \r                       -   -   G   e
0131740    t   [   n   ]   .   b   e   a   d   R   #   n   o   B   e   a
0131760    d   -   -       T   H   E   N  \r  \t   B   E   G   I   N  \r
0132000   \t   O   P   E   N       I   O   D   e   f   s   ;  \r  \t   W
0132020    r   i   t   e   S   t   r   i   n   g   [   "   f   l   i   p
0132040        t   r   a   n   s   i   s   t   o   r   #   1   -       "
0132060    ]   ;  \r  \t   A   t   t   a   c   h   [   k   ,   r   i   g
0132100    h   t   ,   i   ]   ;  \r  \t   A   t   t 376 001  \0   | 202
0132120    a   c   h   [   k   ,   l   e   f   t   ,   m   ]   ;  \r  \t
0132140    I   F       ~   M   o   v   e   [   b   e   a   d   ,   m   ,
0132160    2   -       G   e   t   [   k   ]   .   w   ,   0   ]       T
0132200    H   E   N       B   E   G   I   N       W   r   i   t   e   L
0132220    i   n   e   [   "   c   o   u   l   d   n   '   t       m   o
0132240    v   e   "   ]   ;      \t  \t  \t  \t  \t                    
0132260    R   e   s   t   o   r   e   [   ]   ;       E   N   D  \r  \t
0132300   \t  \t  \t               E   L   S   E       B   E   G   I   N
0132320        W   r   i   t   e   L   i   n   e   [   "   f   l   i   p
0132340    p   e   d   "   ]   ;  \r      \t  \t  \t  \t  \t            
0132360                C   o   m   m   i   t   [   ]   ;       E   N   D
0132400    ;  \r  \t   E   N   D   ;  \r           E   N   D   ;  \r  \r
0132420    T   r   a   n   s   f   o   r   m   a   t   i   o   n   2   :
0132440    P   R   O   C   E   D   U   R   E   [   i   :   C   A   R   D
0132460    I   N   A   L   ,   b   p   i   :   B   e   a   d   P   t   r
0132500    ]   =       B   E   G   I   N   -   -   r   o   t   a   t   e
0132520  376 001  \0   ? 323       a       c   o   n   t   a   c   t  \r
0132540            j   ,   k   :   C   A   R   D   I   N   A   L   ;    
0132560    b   p   j   ,   b   p   k   :   B   e   a   d   P   t   r   ;
0132600   \r           I   F       b   p   i   .   t   #       b   f    
0132620    T   H   E   N       R   E   T   U   R   N   ;  \r           k
0132640    _   b   p   i   .   b   e   a   d   T   ;       b   p   k   _
0132660    G   e   t   [   k   ]   ;       j   _   b   p   k   .   b   e
0132700    a   d   T   ;       b   p   j   _   G   e   t   [   j   ]   ;
0132720   \r           I   F       b   p   k   .   t       =   b   g    
0132740    A   N   D       b   p   j   .   t   =       r   b       A   N
0132760    D       b   p   i   .   h   >   b   p   i   .   w       A   N
0133000    D           b   p   j   .   y   <       b   p   k   .   y    
0133020    T   H   E   N       B   E   G   I   N  \r                    
0133040    R   o   t   a   t   e   R   i   g   h   t   :   B   O   O   L
0133060    E   A   N   ;  \r                       I   F       b   p   i
0133100    .   h   <       b   p   i   .   w       T   H   E   N       R
0133120    E   T   U   R   N 376 001  \0 246   2   ;  \r                
0133140        I   F       b   p   j   .   x   >       b   p   k   .   x
0133160        T   H   E   N       R   E   T   U   R   N   ;  \r        
0133200                S   E   L   E   C   T       T   R   U   E       F
0133220    R   O   M  \r  \t   b   p   j   .   b   e   a   d   L   #   n
0133240    o   B   e   a   d       A   N   D       b   p   j   .   b   e
0133260    a   d   R   #   n   o   B   e   a   d       =   >       R   E
0133300    T   U   R   N   ;  \r  \t   b   p   k   .   b   e   a   d   L
0133320    #   n   o   B   e   a   d       A   N   D       b   p   k   .
0133340    b   e   a   d   R   #   n   o   B   e   a   d       =   >    
0133360    R   E   T   U   R   N   ;  \r  \t   b   p   j   .   b   e   a
0133400    d   R   #   n   o   B   e   a   d       A   N   D       b   p
0133420    k   .   b   e   a   d   R   #   n   o   B   e   a   d       =
0133440    >       R   E   T   U   R   N   ;  \r  \t   b   p   j   .   b
0133460    e   a   d   L   #   n   o   B   e   a   d       A   N   D    
0133500    b   p   k   .   b   e   a   d   L   #   n   o   B   e   a   d
0133520        =   >       R   E   T   U   R   N 376 001  \0 334   5   ;
0133540   \r  \t   b   p   j   .   b   e   a   d   L   #   n   o   B   e
0133560    a   d       A   N   D       b   p   k   .   b   e   a   d   U
0133600    #   n   o   B   e   a   d       =   >       R   o   t   a   t
0133620    e   R   i   g   h   t   _       T   R   U   E   ;  \r  \t   b
0133640    p   j   .   b   e   a   d   D   #   n   o   B   e   a   d    
0133660    A   N   D       b   p   k   .   b   e   a   d   L   #   n   o
0133700    B   e   a   d       =   >       R   o   t   a   t   e   R   i
0133720    g   h   t   _       F   A   L   S   E   ;  \r  \t   b   p   j
0133740    .   b   e   a   d   R   #   n   o   B   e   a   d       A   N
0133760    D       b   p   k   .   b   e   a   d   U   #   n   o   B   e
0134000    a   d       =   >       R   o   t   a   t   e   R   i   g   h
0134020    t   _       F   A   L   S   E   ;  \r  \t   b   p   j   .   b
0134040    e   a   d   D   #   n   o   B   e   a   d       A   N   D    
0134060    b   p   k   .   b   e   a   d   R   #   n   o   B   e   a   d
0134100        =   >       R   o   t   a   t   e   R   i   g   h   t   _
0134120        T   R   U   E   ;  \r  \t   b   p   j   .   b   e   a 376
0134140  001  \0 267 231   d   L   #   n   o   B   e   a   d       A   N
0134160    D       b   p   k   .   b   e   a   d   R   #   n   o   B   e
0134200    a   d       =   >       R   o   t   a   t   e   R   i   g   h
0134220    t   _       T   R   U   E   ;  \r  \t   b   p   j   .   b   e
0134240    a   d   R   #   n   o   B   e   a   d       A   N   D       b
0134260    p   k   .   b   e   a   d   L   #   n   o   B   e   a   d    
0134300    =   >       R   o   t   a   t   e   R   i   g   h   t   _    
0134320    F   A   L   S   E   ;  \r  \t   b   p   j   .   b   e   a   d
0134340    U   #   n   o   B   e   a   d       A   N   D       b   p   k
0134360    .   b   e   a   d   D   #   n   o   B   e   a   d       =   >
0134400   \r  \t  \t   I   F       G   e   t   [   b   p   j   .   b   e
0134420    a   d   D   ]   .   y   <       G   e   t   [   b   p   k   .
0134440    b   e   a   d   U   ]   .   y       T   H   E   N       R   o
0134460    t   a   t   e   R   i   g   h   t   _       T   R   U   E  \r
0134500   \t  \t  \t  \t  \t  \t                           E   L   S   E
0134520        R   o   t   a   t   e   R   i   g   h   t   _       F   A
0134540    L   S   E   ; 376 001  \0 235   E  \r  \t   E   N   D   C   A
0134560    S   E       =   >       R   E   T   U   R   N   ;  \r        
0134600                I   O   D   e   f   s   .   W   r   i   t   e   S
0134620    t   r   i   n   g   [   "   r   o   t   a   t   e       c   o
0134640    n   t   a   c   t   -       "   ]   ;      \r                
0134660        C   l   e   a   r   S   h   i   f   t   [   ]   ;       P
0134700    u   t   [   i   ,   -   2   ,   2   ,   8   ,   1   2   ]   ;
0134720       \r                       I   F       R   o   t   a   t   e
0134740    R   i   g   h   t       T   H   E   N       B   E   G   I   N
0134760        P   u   t   [   j   ,   -   2   ,   2   ,   8   ,   6   ]
0135000    ;       P   u   t   [   k   ,       4   ,   -   4   ,   8   ,
0135020    6   ]   ;       E   N   D  \r  \t  \t                   E   L
0135040    S   E       B   E   G   I   N       P   u   t   [   j   ,    
0135060    4   ,   2   ,   8   ,   6   ]   ;       P   u   t   [   k   ,
0135100    -   2   ,   -   4   ,   8   ,   6   ]   ;       E   N   D   ;
0135120   \r                       P   r   o   c   e   s   s   [   ]   ;
0135140   \r                       E   N   D 376 001  \0   ; 345   ;  \r
0135160            E   N   D   ;  \r  \r   T   r   a   n   s   f   o   r
0135200    m   a   t   i   o   n   3   :   P   R   O   C   E   D   U   R
0135220    E   [   i   :   C   A   R   D   I   N   A   L   ,   b   p   i
0135240    :   B   e   a   d   P   t   r   ]   =       B   E   G   I   N
0135260   \r           b   i   :   B   e   a   d   _       b   p   i   ^
0135300    ;       b   p   j   :   B   e   a   d   P   t   r   ;  \r    
0135320        j   ,   k   :   C   A   R   D   I   N   A   L   _       n
0135340    o   B   e   a   d   ;  \r           I   F       b   i   .   t
0135360    =   r   b       T   H   E   N       F   O   R       j       I
0135400    N       (   i   .   .   t   o   p   B   e   a   d   ]       D
0135420    O  \r                                   b   p   j   _   G   e
0135440    t   [   j   ]   ;      \r  \t   I   F       b   p   j   .   t
0135460    =   r   b       A   N   D       b   i   .   c   i   r   c   u
0135500    i   t   =   b   p   j   .   c   i   r   c   u   i   t  \r  \t
0135520   \t  \t   A   N   D       O   v   e   r   l   a   p   [   i   ,
0135540    j   ]       T   H   E   N       k   _   j   ;       E 376 001
0135560   \0 205 234   N   D   L   O   O   P   ;  \r           I   F    
0135600    b   i   .   t   =   b   g       T   H   E   N       F   O   R
0135620        j       I   N       (   i   .   .   t   o   p   B   e   a
0135640    d   ]       D   O  \r                                   b   p
0135660    j   _   G   e   t   [   j   ]   ;      \r  \t   I   F       b
0135700    p   j   .   t   =   b   g       A   N   D       b   i   .   c
0135720    i   r   c   u   i   t   =   b   p   j   .   c   i   r   c   u
0135740    i   t  \r  \t  \t  \t   A   N   D       O   v   e   r   l   a
0135760    p   [   i   ,   j   ]       T   H   E   N       k   _   j   ;
0136000        E   N   D   L   O   O   P   ;  \r           I   F       k
0136020    =   n   o   B   e   a   d       T   H   E   N       R   E   T
0136040    U   R   N       E   L   S   E       B   E   G   I   N  \r  \t
0136060    b   t   ,   b   k   :   B   e   a   d   _       G   e   t   [
0136100    k   ]   ^   ;  \r  \t   t   :   C   A   R   D   I   N   A   L
0136120    ;  \r  \t   l   :   C   A   R   D   I   N   A   L   _   F   i
0136140    n   d   [   b   f   ,   i   ]   ;       l   o   o   p   L   :
0136160    B   O   O 376 001  \0 030   t   L   E   A   N   _   G   e   t
0136200    [   l   ]   .   b   e   a   d   T   #   i   ;  \r  \t   m   :
0136220    C   A   R   D   I   N   A   L   _   F   i   n   d   [   b   f
0136240    ,   k   ]   ;       l   o   o   p   M   :   B   O   O   L   E
0136260    A   N   _   G   e   t   [   m   ]   .   b   e   a   d   T   #
0136300    k   ;  \r  \t   h   o   r   i   z   o   n   t   a   l   ,   v
0136320    e   r   t   i   c   a   l   :   V   a   r   i   a   n   t   ;
0136340   \r  \t   I   F       l   o   o   p   M       A   N   D       l
0136360    o   o   p   L       T   H   E   N       R   E   T   U   R   N
0136400    ;       -   -   b   u   d   d   i   n   g       c   o   n   t
0136420    a   c   t   s  \r  \t   I   O   D   e   f   s   .   W   r   i
0136440    t   e   S   t   r   i   n   g   [   "   d   o   u   b   l   e
0136460        c   o   n   t   a   c   t   -       "   ]   ;  \r  \t   I
0136500    F       l   o   o   p   M       T   H   E   N       B   E   G
0136520    I   N       -   -   a       b   u   d   d   i   n   g       c
0136540    o   n   t   a   c   t  \r  \t  \t   t   _   i   ;       i   _
0136560    k   ;       k   _   t   ;     376 001  \0 021   s       -   -
0136600    w   e       d   o   n   '   t       w   a   n   t       k    
0136620    t   o       b   e       a       3   -   w   a   y       c   o
0136640    n   t   a   c   t  \r  \t  \t   t   _   m   ;       m   _   l
0136660    ;       l   _   t   ;  \r  \t  \t   b   k   _   b   i   ;    
0136700    b   i   _   b   t   ;       E   N   D   ;  \r  \t   t   _    
0136720    I   F       b   i   .   t   =       b   g       T   H   E   N
0136740        F   i   n   d   [   r   b   ,   i   ]       E   L   S   E
0136760        F   i   n   d   [   b   g   ,   i   ]   ;  \r  \t   R   e
0137000    m   o   v   e   P   a   t   h   s   [   m   ,   l   ,   t   i
0137020    e   d   ]   ;           R   e   m   o   v   e   P   a   t   h
0137040    s   [   k   ,   i   ,   t   i   e   d   ]   ;  \r  \t   A   t
0137060    t   a   c   h   [   n   o   B   e   a   d   ,   t   i   e   d
0137100    ,   k   ]   ;  \r  \t   h   o   r   i   z   o   n   t   a   l
0137120    _       I   F       b   k   .   x   <       b   i   .   x    
0137140    T   H   E   N       d   o   w   n       E   L   S   E       u
0137160    p   ;  \r  \t   v   e   r   t   i   c   a   l   _ 376 001  \0
0137200  200 236       I   F       b   k   .   y   <       b   i   .   y
0137220            T   H   E   N       l   e   f   t       E   L   S   E
0137240        r   i   g   h   t   ;  \r  \t   I   F       (   N   u   m
0137260    R   e   l   a   t   i   v   e   s   [   k   ]   +       N   u
0137300    m   R   e   l   a   t   i   v   e   s   [   m   ]   )   *   4
0137320    >   =       n   o   B   e   a   d   -       t   o   p   B   e
0137340    a   d      \r  \t               T   H   E   N       B   E   G
0137360    I   N       R   e   s   t   o   r   e   [   ]   ;       I   O
0137400    D   e   f   s   .   W   r   i   t   e   L   i   n   e   [   "
0137420    >   n   o   B   e   a   d   "   ]   ;       R   E   T   U   R
0137440    N   ;       E   N   D   ;  \r  \t   I   n   s   e   r   t   J
0137460    o   g   s   [   k   ,   h   o   r   i   z   o   n   t   a   l
0137500    ,   v   e   r   t   i   c   a   l   ]   ;  \r  \t   I   n   s
0137520    e   r   t   J   o   g   s   [   m   ,   h   o   r   i   z   o
0137540    n   t   a   l   ,   v   e   r   t   i   c   a   l   ]   ;  \r
0137560   \t   A   t   t   a   c   h   A   l   l   [   k   ,   i   ]   ;
0137600        A 376 001  \0 032 216   t   t   a   c   h   A   l   l   [
0137620    m   ,   l   ]   ;  \r  \t   R   e   m   o   v   e   [   k   ]
0137640    ;       R   e   m   o   v   e   [   m   ]   ;  \r  \t   I   F
0137660        M   o   v   e   [   b   e   a   d   ,   i   ,   0   ,   0
0137700    ]       T   H   E   N       C   o   m   m   i   t   [   ]    
0137720    E   L   S   E       R   e   s   t   o   r   e   [   ]   ;  \r
0137740   \t   j   _   j   ;       -   -   a       h   a   c   k       t
0137760    o       g   e   t       a   r   o   u   n   d       a       b
0140000    u   g       i   n       t   h   e       d   e   b   u   g   g
0140020    e   r   ;  \r  \t   E   N   D   ;  \r                   E   N
0140040    D   ;  \r  \r   T   r   a   n   s   f   o   r   m   a   t   i
0140060    o   n   4   :   P   R   O   C   E   D   U   R   E   [   i   :
0140100    C   A   R   D   I   N   A   L   ,   b   p   i   :   B   e   a
0140120    d   P   t   r   ]   =       B   E   G   I   N  \r           b
0140140    i   :   B   e   a   d   _       b   p   i   ^   ;  \r        
0140160    j   ,   k   ,   l   ,   m   ,   n   ,   r   b   ,   b   g   ,
0140200    b   f   :   C   A   R   D 376 001  \0   7   N   I   N   A   L
0140220    ;  \r           I   F       (   b   i   .   t   =   d   d    
0140240    O   R       b   i   .   t   =   t   t   )       A   N   D    
0140260   \r                       N   u   m   R   e   l   a   t   i   v
0140300    e   s   [   i   ]   =   3       A   N   D  \r                
0140320        N   u   m   R   e   l   a   t   i   v   e   s   [   k   _
0140340    G   e   t   [   j   _   b   i   .   b   e   a   d   U   ]   .
0140360    b   e   a   d   U   ]   =   2       A   N   D  \r            
0140400            N   u   m   R   e   l   a   t   i   v   e   s   [   m
0140420    _   G   e   t   [   l   _   G   e   t   [   k   ]   .   b   e
0140440    a   d   L   ]   .   b   e   a   d   L   ]   =   2       A   N
0140460    D  \r                       N   u   m   R   e   l   a   t   i
0140500    v   e   s   [   r   b   _   G   e   t   [   n   _   G   e   t
0140520    [   m   ]   .   b   e   a   d   D   ]   .   b   e   a   d   D
0140540    ]   =   2       A   N   D  \r                       N   u   m
0140560    R   e   l   a   t   i   v   e   s   [   b   g   _   G   e   t
0140600    [   b   f   _   G   e   t   [   r   b   ]   . 376 001  \0 330
0140620    V   b   e   a   d   T   ]   .   b   e   a   d   T   ]   =   3
0140640        A   N   D  \r                       G   e   t   [   G   e
0140660    t   [   b   g   ]   .   b   e   a   d   R   ]   .   b   e   a
0140700    d   R   =   i       T   H   E   N       B   E   G   I   N  \r
0140720   \t   I   O   D   e   f   s   .   W   r   i   t   e   S   t   r
0140740    i   n   g   [   "   f   l   i   p       t   r   a   n   s   i
0140760    s   t   o   r   #   2   -       "   ]   ;  \r  \t   P   u   t
0141000    [   r   b   ,   0   ,   -   1   2   ,   0   ,   0   ]   ;    
0141020    P   u   t   [   b   f   ,   0   ,   -   6   ,   0   ,   0   ]
0141040    ;  \r  \t   A   t   t   a   c   h   [   n   ,   d   o   w   n
0141060    ,   r   b   ]   ;       A   t   t   a   c   h   [   n   ,   u
0141100    p   ,   m   ]   ;  \r  \t   A   t   t   a   c   h   [   j   ,
0141120    d   o   w   n   ,   i   ]   ;       A   t   t   a   c   h   [
0141140    j   ,   u   p   ,   k   ]   ;  \r  \t   I   F       ~   M   o
0141160    v   e   [   b   e   a   d   ,   r   b   ,   0   ,   0   ]    
0141200    T   H   E   N       G   O   T   O       A   b   o   r   t   ;
0141220   \r 376 001  \0 320 034  \t   I   F       ~   M   o   v   e   [
0141240    b   e   a   d   ,   b   f   ,   0   ,   0   ]       T   H   E
0141260    N       G   O   T   O       A   b   o   r   t   ;  \r  \t   C
0141300    o   m   m   i   t   [   ]   ;  \r  \t   E   N   D   ;  \r    
0141320        E   X   I   T   S  \r                   A   b   o   r   t
0141340        =   >       R   e   s   t   o   r   e   [   ]   ;  \r    
0141360        E   N   D   ;      \r                  \r  \r   L   o   c
0141400    a   l   1   :   P   R   O   C   E   D   U   R   E   [   i   :
0141420    C   A   R   D   I   N   A   L   ,   b   p   i   :   B   e   a
0141440    d   P   t   r   ]   =   B   E   G   I   N  \r                
0141460    k   :   C   A   R   D   I   N   A   L   _   b   p   i   .   b
0141500    e   a   d   D   ;  \r                   b   p   k   :   B   e
0141520