$ od -c -N 50000 [Indigo]<Chipmonk>xgate>gate-sources.dm!1
0000000  377  \0  \0   r   l   d   e   f   s   .   m   e   s   a  \0 373
0000020  227 366   q 236  \0  \0 376 001  \0   ? 267   -   -       d   e
0000040    f   i   n   i   t   i   o   n   s       m   o   d   u   l   e
0000060        f   o   r       r   a   n   d   o   m       l   o   g   i
0000100    c       l   a   y   o   u   t       s   u   b   r   o   u   t
0000120    i   n   e  \r   -   -       w   r   i   t   t   e   n       b
0000140    y       P   e   t   i   t   ,       S   e   p   t   e   m   b
0000160    e   r       2   6   ,       1   9   8   1           6   :   3
0000200    5       P   M  \r  \r   D   I   R   E   C   T   O   R   Y  \r
0000220            S   e   g   m   e   n   t   D   e   f   s   ,  \r    
0000240        p   p   d   e   f   s   ;  \r   r   l   d   e   f   s   :
0000260        D   E   F   I   N   I   T   I   O   N   S       I   M   P
0000300    O   R   T   S       S   e   g   m   e   n   t   D   e   f   s
0000320    ,       p   p   d   e   f   s       =  \r           B   E   G
0000340    I   N       O   P   E   N       p   p   d   e   f   s   ,    
0000360    S   e   g   m   e   n   t   D   e   f   s   ;  \r  \r  \r   -
0000400    -       g   a   t   e       s   t   u   f   f   :  \r  \r   g
0000420    a   t   e   C   h   a   r   a   c   :   T 376 001  \0   ~  \f
0000440    Y   P   E       =       R   E   C   O   R   D   [   i   n   C
0000460    n   t   ,   n   o   r   C   n   t   :   I   N   T   E   G   E
0000500    R   ,   -   -       n   o   r   C   n   t       i   s       m
0000520    a   x   C   n   t       f   o   r       S   e   q   u   e   n
0000540    c   e  \r  \t   a   n   d   s   :   S   E   Q   U   E   N   C
0000560    E       C   O   M   P   U   T   E   D       C   A   R   D   I
0000600    N   A   L       O   F       [   0   .   .   2   5   5   ]    
0000620    ]   ;  \r  \r   g   a   t   e   :   T   Y   P   E       =    
0000640    R   E   C   O   R   D       [   n   x   t   :   L   O   N   G
0000660        P   O   I   N   T   E   R       T   O       g   a   t   e
0000700    ,  \r  \t   c   h   a   r   a   c   :   L   O   N   G       P
0000720    O   I   N   T   E   R       T   O       g   a   t   e   C   h
0000740    a   r   a   c   ,  \r  \t   f   i   r   s   t   I   n   T   o
0000760    p   A   v   a   i   l   :   B   O   O   L   E   A   N   ,  \r
0001000   \t   l   S   p   a   c   ,   r   S   p   a   c   :   [   0   .
0001020    .   7   ]   ,  \r  \t   p   a   r   m   N   u   m   :   [   0
0001040  376 001  \0 215 220   .   .   2   5   5   ]   ,  \r  \t   c   e
0001060    l   l   :   L   O   N   G       P   O   I   N   T   E   R    
0001100    T   O       c   L   i   s   t   ,  \r  \t   i   n   C   n   t
0001120    :   I   N   T   E   G   E   R   ,   -   -       t   h   i   s
0001140        i   s       t   h   e       m   a   x   C   o   u   n   t
0001160        f   o   r       t   h   e       S   e   q   u   e   n   c
0001200    e  \r  \t   g   n   d   :   P   o   i   n   t   ,  \r  \t   f
0001220    i   r   s   t   I   n   T   o   p   :   P   o   i   n   t   ,
0001240   \r  \t   o   u   t   :   P   o   i   n   t   ,  \r  \t   i   n
0001260    s   :   S   E   Q   U   E   N   C   E       C   O   M   P   U
0001300    T   E   D       C   A   R   D   I   N   A   L       O   F    
0001320    P   o   i   n   t       ]   ;  \r  \r   G   a   t   e   L   i
0001340    s   t   :   T   Y   P   E       =       R   E   C   O   R   D
0001360    [   n   x   t   :   L   O   N   G       P   O   I   N   T   E
0001400    R       T   O       G   a   t   e   L   i   s   t   ,  \r  \t
0001420    g   a   t   :   L   O   N   G       P   O   I   N   T   E   R
0001440        T   O       g 376 001  \0 330 270   a   t   e   ,  \r  \t
0001460    x   ,   y   :   l   o   c   N   u   m   ,  \r  \t   o   u   t
0001500    N   o   d   e   :   I   N   T   E   G   E   R   ,  \r  \t   n
0001520    o   d   e   s   :   S   E   Q   U   E   N   C   E       n   o
0001540    d   e   C   n   t   :   C   A   R   D   I   N   A   L       O
0001560    F       [   0   .   .   2   5   5   ]       ]   ;  \r  \r   m
0001600    C   o   n   t   P   r   o   c   d   :   T   Y   P   E       =
0001620        P   R   O   C   E   D   U   R   E   [   l   C   n   t   ,
0001640    r   C   n   t   ,   x   ,   y   ,   m   a   x   y   :   I   N
0001660    T   E   G   E   R   ,  \r  \t   l   p   :   L   O   N   G    
0001700    P   O   I   N   T   E   R       T   O       l   i   s   t   ,
0001720    t   o   t   I   n   s   :   I   N   T   E   G   E   R   ]  \r
0001740   \t   R   E   T   U   R   N   S   [   d   x   ,   w   i   d   :
0001760    I   N   T   E   G   E   R   ,   n   l   :   L   O   N   G    
0002000    P   O   I   N   T   E   R       T   O       l   i   s   t   ]
0002020    ;  \r  \r   m   A   n   d   P   r   o   c   d   :   T   Y   P
0002040    E       =       P   R   O   C   E   D 376 001  \0   ;   O   U
0002060    R   E   [   a   C   n   t   ,   x   ,   y   :   I   N   T   E
0002100    G   E   R   ,   l   p   :   L   O   N   G       P   O   I   N
0002120    T   E   R       T   O       l   i   s   t   ,  \r  \t   i   n
0002140    p   u   t   s   :   I   N   T   E   G   E   R   ,   g   a   t
0002160    :   L   O   N   G       P   O   I   N   T   E   R       T   O
0002200        g   a   t   e   ,   t   o   t   I   n   s   :   I   N   T
0002220    E   G   E   R   ]  \r  \t   R   E   T   U   R   N   S   [   d
0002240    x   ,   w   i   d   :   I   N   T   E   G   E   R   ,   n   l
0002260    :   L   O   N   G       P   O   I   N   T   E   R       T   O
0002300        l   i   s   t   ]   ;  \r  \r   m   T   W   P   r   o   c
0002320    d   :   T   Y   P   E       =       P   R   O   C   E   D   U
0002340    R   E   [   x   :   I   N   T   E   G   E   R   ,   l   p   :
0002360    L   O   N   G       P   O   I   N   T   E   R       T   O    
0002400    l   i   s   t   ,   t   o   t   I   n   s   :   I   N   T   E
0002420    G   E   R   ]  \r  \t   R   E   T   U   R   N   S   [   d   x
0002440    :   I   N   T   E   G   E   R   ,   n   l   :   L   O   N 376
0002460  001  \0 204 374   G       P   O   I   N   T   E   R       T   O
0002500        l   i   s   t   ]   ;  \r  \r   m   P   u   P   r   o   c
0002520    d   :   T   Y   P   E       =       P   R   O   C   E   D   U
0002540    R   E   [   x   1   ,   x   2   ,   m   x   :   I   N   T   E
0002560    G   E   R   ,  \r  \t   l   p   :   L   O   N   G       P   O
0002600    I   N   T   E   R       T   O       l   i   s   t   ,   g   a
0002620    t   :   L   O   N   G       P   O   I   N   T   E   R       T
0002640    O       g   a   t   e   ,   t   o   t   I   n   s   :   I   N
0002660    T   E   G   E   R   ]  \r  \t   R   E   T   U   R   N   S   [
0002700    d   x   :   I   N   T   E   G   E   R   ,   n   l   :   L   O
0002720    N   G       P   O   I   N   T   E   R       T   O       l   i
0002740    s   t   ]   ;  \r  \r   c   a   l   c   M   y   P   r   o   c
0002760    d   :   T   Y   P   E       =       P   R   O   C   E   D   U
0003000    R   E   [   g   c   :   L   O   N   G       P   O   I   N   T
0003020    E   R       T   O       g   a   t   e   C   h   a   r   a   c
0003040    ]  \r  \t   R   E   T   U   R   N   S   [   m   y   :   I   N
0003060    T   E   G   E 376 001  \0 034   Y   R   ]   ;  \r  \r   p   a
0003100    r   m   a   C   n   t   :   T   Y   P   E       =       [   1
0003120    .   .   5   ]   ;  \r  \r   g   a   t   e   T   y   p   e   R
0003140    e   c   o   r   d   :   T   Y   P   E       =       R   E   C
0003160    O   R   D   [  \r  \t   w   W   i   d   ,   m   w   W   i   d
0003200    :   I   N   T   E   G   E   R   ,  \r  \t   n   o   r   W   i
0003220    r   e   O   f   f   :   I   N   T   E   G   E   R   ,  \r  \t
0003240    s   t   a   n   d   W   i   d   t   h   :   I   N   T   E   G
0003260    E   R   ,  \r  \t   s   t   r   t   Y   ,   i   n   v   O   f
0003300    f   :   I   N   T   E   G   E   R   ,  \r  \t   p   u   t   W
0003320    i   d   ,   p   u   t   L   e   n   :   I   N   T   E   G   E
0003340    R   ,  \r  \t   m   a   k   A   n   d   :   m   A   n   d   P
0003360    r   o   c   d   ,  \r  \t   m   a   k   P   u   :   m   P   u
0003400    P   r   o   c   d   ,  \r  \t   m   a   k   C   o   n   t   s
0003420    :   m   C   o   n   t   P   r   o   c   d   ,  \r  \t   m   a
0003440    k   T   o   p   W   i   r   e   :   m   T   W   P   r   o   c
0003460    d   ,  \r  \t   c   a   l   c   M 376 001  \0 324   o   a   x
0003500    y   :   c   a   l   c   M   y   P   r   o   c   d       ]   ;
0003520   \r  \r   d   o   w   n   W   i   r   e   R   e   c   :   T   Y
0003540    P   E       =       R   E   C   O   R   D       [  \r  \t   n
0003560    o   d   e   ,   x   ,   y   ,   t   x   ,   t   y   :   I   N
0003600    T   E   G   E   R   ,  \r  \t   f   i   x   e   d   :   B   O
0003620    O   L   E   A   N   ,   l   e   f   t   E   n   d   ,   r   i
0003640    g   h   t   E   n   d   ,   a   n   d   C   n   t   :   [   0
0003660    .   .   3   1   ]   ,  \r  \t   w   i   r   e   d   L   e   f
0003700    t   ,   t   o   p   W   i   r   e   a   b   l   e   :   B   O
0003720    O   L   E   A   N   ,   d   w   L   e   f   t   :   [   0   .
0003740    .   3   7   7   7   7   B   ]   ,  \r  \t   w   i   r   e   d
0003760    R   i   g   h   t   :   B   O   O   L   E   A   N   ,   d   w
0004000    R   i   g   h   t   :   [   0   .   .   3   7   7   7   7   B
0004020    ]       ]   ;  \r  \r   b   l   o   c   k   a   g   e   T   y
0004040    p   e   :   T   Y   P   E       =       {   n   o   n   e   ,
0004060    m   e   t   ,   p   o   l   y   ,   c   e   l   l   } 376 001
0004100   \0   } 243   ;  \r  \r   h   L   i   n   e   R   e   c   :   T
0004120    Y   P   E       =       R   E   C   O   R   D       [  \r  \t
0004140    b   t   y   p   :   b   l   o   c   k   a   g   e   T   y   p
0004160    e   ,   d   i   s   t   a   n   c   e   :   [   -   2   0   .
0004200    .   5   0   0   0   ]       ]   ;  \r  \r  \r   -   -       *
0004220    *   *   *   *   *       S   t   u   f   f       F   r   o   m
0004240            r   l   g   a   t   e   .   m   e   s   a   :  \r  \r
0004260    g   e   t   G   a   t   e   :   P   R   O   C   E   D   U   R
0004300    E   [   g   c   :   L   O   N   G       P   O   I   N   T   E
0004320    R       T   O       g   a   t   e   C   h   a   r   a   c   ,
0004340    p   a   r   m   s   :   I   N   T   E   G   E   R   ]  \r  \t
0004360    R   E   T   U   R   N   S   [   g   a   t   :   L   O   N   G
0004400        P   O   I   N   T   E   R       T   O       g   a   t   e
0004420    ]       ;  \r  \r  \r   -   -       *   *   *   *   *   *    
0004440    S   t   u   f   f       F   r   o   m           r   l   i   n
0004460    .   m   e   s   a   :  \r  \r   m   y   Z   o   n   e   :    
0004500    U   N   C 376  \0 214   } 222   O   U   N   T   E   D       Z
0004520    O   N   E       ;  \r   f   i   l   e   E   r   r   :       S
0004540    I   G   N   A   L   ;  \r   a   b   b   r   t   :       S   I
0004560    G   N   A   L   ;  \r  \r   i   n   p   u   t   C   i   r   c
0004600    u   i   t   :   P   R   O   C   E   D   U   R   E       R   E
0004620    T   U   R   N   S   [   p   n   t   :   L   O   N   G       P
0004640    O   I   N   T   E   R       T   O       G   a   t   e   L   i
0004660    s   t   ,  \r  \t   d   w   C   n   t   ,   m   a   x   N   N
0004700    :   I   N   T   E   G   E   R   ]   ;  \r  \r  \r           E
0004720    N   D   .  \r 377  \0  \0   r   l   g   a   t   e   .   m   e
0004740    s   a  \0 373 234 224 336 302  \0  \0 376 001  \0 017   P   -
0004760    -       a       p   r   o   g   r   a   m       t   o       r
0005000    u   n       w   i   t   h   i   n       C   h   i   p   m   o
0005020    n   k  \r  \r   -   -       l   a   s   t       m   o   d   i
0005040    f   i   e   d       b   y       P   e   t   i   t   ,       O
0005060    c   t   o   b   e   r       8   ,       1   9   8   1        
0005100    2   :   2   0       P   M  \r   -   -       w   r   i   t   t
0005120    e   n       b   y       P   e   t   i   t   ,       O   c   t
0005140    o   b   e   r       5   ,       1   9   8   1           6   :
0005160    4   5       P   M  \r  \r   D   I   R   E   C   T   O   R   Y
0005200   \r           p   p   d   d   e   f   s   ,  \r           p   p
0005220    d   e   f   s   ,  \r           r   l   d   e   f   s   ,  \r
0005240            p   p   d   d   d   e   f   s   ,  \r           S   t
0005260    r   i   n   g   D   e   f   s   ;  \r  \r   r   l   g   a   t
0005300    e   :       P   R   O   G   R   A   M  \r           I   M   P
0005320    O   R   T   S       p   p   d   d   e   f   s   ,       p   p
0005340    d   e   f   s   ,       p   p   d   d   d   e   f   s   , 376
0005360  001  \0 263   N       S   t   r   i   n   g   D   e   f   s    
0005400    E   X   P   O   R   T   S       r   l   d   e   f   s       =
0005420   \r           B   E   G   I   N       O   P   E   N       p   p
0005440    d   d   e   f   s   ,       r   l   d   e   f   s   ,       p
0005460    p   d   e   f   s   ,       p   p   d   d   d   e   f   s   ,
0005500        S   t   r   i   n   g   D   e   f   s   ;  \r  \r  \r   -
0005520    -       g   a   t   e       c   r   e   a   t   i   o   n    
0005540    r   o   u   t   i   n   e   s   :  \r  \r   p   a   r   m   a
0005560    :   A   R   R   A   Y       p   a   r   m   a   C   n   t    
0005600    O   F       P   O   I   N   T   E   R       T   O       g   a
0005620    t   e   T   y   p   e   R   e   c   o   r   d       _  \r  \t
0005640    [   @   g   t   r   1   ,   @   g   t   r   2   ,   @   g   t
0005660    r   3   ,   @   g   t   r   4   ,   @   g   t   r   5   ]   ;
0005700   \r  \r   c   u   r   r   e   n   t   P   a   r   a   m   e   t
0005720    e   r   s   :   P   O   I   N   T   E   R       T   O       g
0005740    a   t   e   T   y   p   e   R   e   c   o   r   d   ;  \r   c
0005760    u   r   r   e 376 001  \0  \f 266   n   t   P   a   r   a   m
0006000    N   u   m   b   e   r   :   p   a   r   m   a   C   n   t   ;
0006020   \r  \r   g   t   r   1   :   g   a   t   e   T   y   p   e   R
0006040    e   c   o   r   d       _       [  \r  \t   w   W   i   d   :
0006060    4   ,  \r  \t   m   w   W   i   d   :   8   ,  \r  \t   n   o
0006100    r   W   i   r   e   O   f   f   :   2   ,  \r  \t   s   t   a
0006120    n   d   W   i   d   t   h   :   1   6   ,  \r  \t   s   t   r
0006140    t   Y   :   3   0   ,  \r  \t   i   n   v   O   f   f   :   1
0006160    0   ,  \r  \t   p   u   t   W   i   d   :   4   ,  \r  \t   p
0006200    u   t   L   e   n   :   4   ,  \r  \t   m   a   k   A   n   d
0006220    :   m   A   n   d   1   ,  \r  \t   m   a   k   P   u   :   m
0006240    P   u   1   ,  \r  \t   m   a   k   C   o   n   t   s   :   m
0006260    C   o   n   t   1   ,  \r  \t   m   a   k   T   o   p   W   i
0006300    r   e   :   m   T   W   1   ,  \r  \t   c   a   l   c   M   a
0006320    x   y   :   m   C   a   l   c   1  \r   ]   ;  \r   g   t   r
0006340    2   :   g   a   t   e   T   y   p   e   R   e   c   o   r   d
0006360        _       [  \r  \t   w   W   i 376 001  \0   r 222   d   :
0006400    4   ,  \r  \t   m   w   W   i   d   :   8   ,  \r  \t   n   o
0006420    r   W   i   r   e   O   f   f   :   2   ,  \r  \t   s   t   a
0006440    n   d   W   i   d   t   h   :   3   2   ,  \r  \t   s   t   r
0006460    t   Y   :   3   0   ,  \r  \t   i   n   v   O   f   f   :   1
0006500    0   ,  \r  \t   p   u   t   W   i   d   :   8   ,  \r  \t   p
0006520    u   t   L   e   n   :   4   ,  \r  \t   m   a   k   A   n   d
0006540    :   m   A   n   d   1   ,  \r  \t   m   a   k   P   u   :   m
0006560    P   u   1   ,  \r  \t   m   a   k   C   o   n   t   s   :   m
0006600    C   o   n   t   1   ,  \r  \t   m   a   k   T   o   p   W   i
0006620    r   e   :   m   T   W   1   ,  \r  \t   c   a   l   c   M   a
0006640    x   y   :   m   C   a   l   c   1  \r   ]   ;  \r   g   t   r
0006660    3   :   g   a   t   e   T   y   p   e   R   e   c   o   r   d
0006700        _       [  \r  \t   w   W   i   d   :   4   ,  \r  \t   m
0006720    w   W   i   d   :   8   ,  \r  \t   n   o   r   W   i   r   e
0006740    O   f   f   :   2   ,  \r  \t   s   t   a   n   d   W   i   d
0006760    t   h   :   4   8   ,  \r  \t   s   t   r   t   Y   : 376 001
0007000   \0   * 204   3   0   ,  \r  \t   i   n   v   O   f   f   :   1
0007020    0   ,  \r  \t   p   u   t   W   i   d   :   1   2   ,  \r  \t
0007040    p   u   t   L   e   n   :   4   ,  \r  \t   m   a   k   A   n
0007060    d   :   m   A   n   d   1   ,  \r  \t   m   a   k   P   u   :
0007100    m   P   u   1   ,  \r  \t   m   a   k   C   o   n   t   s   :
0007120    m   C   o   n   t   1   ,  \r  \t   m   a   k   T   o   p   W
0007140    i   r   e   :   m   T   W   1   ,  \r  \t   c   a   l   c   M
0007160    a   x   y   :   m   C   a   l   c   1  \r   ]   ;  \r   g   t
0007200    r   4   :   g   a   t   e   T   y   p   e   R   e   c   o   r
0007220    d       _       [  \r  \t   w   W   i   d   :   4   ,  \r  \t
0007240    m   w   W   i   d   :   8   ,  \r  \t   n   o   r   W   i   r
0007260    e   O   f   f   :   2   ,  \r  \t   s   t   a   n   d   W   i
0007300    d   t   h   :   8   ,  \r  \t   s   t   r   t   Y   :   2   8
0007320    ,       -   -       p   u   t   L   e   n   +   2   0  \r  \t
0007340    i   n   v   O   f   f   :   6   ,  \r  \t   p   u   t   W   i
0007360    d   :   4   ,  \r  \t   p   u   t   L   e   n   :   8   ,  \r
0007400   \t   m   a 376 001  \0 323 001   k   A   n   d   :   m   A   n
0007420    d   1   ,  \r  \t   m   a   k   P   u   :   m   P   u   2   ,
0007440   \r  \t   m   a   k   C   o   n   t   s   :   m   C   o   n   t
0007460    1   ,  \r  \t   m   a   k   T   o   p   W   i   r   e   :   m
0007500    T   W   1   ,  \r  \t   c   a   l   c   M   a   x   y   :   m
0007520    C   a   l   c   1  \r   ]   ;  \r   g   t   r   5   :   g   a
0007540    t   e   T   y   p   e   R   e   c   o   r   d       _       [
0007560   \r  \t   w   W   i   d   :   4   ,  \r  \t   m   w   W   i   d
0007600    :   8   ,  \r  \t   n   o   r   W   i   r   e   O   f   f   :
0007620    2   ,  \r  \t   s   t   a   n   d   W   i   d   t   h   :   4
0007640    ,  \r  \t   s   t   r   t   Y   :   3   6   ,       -   -    
0007660    p   u   t   L   e   n   +   2   0  \r  \t   i   n   v   O   f
0007700    f   :   6   ,  \r  \t   p   u   t   W   i   d   :   4   ,  \r
0007720   \t   p   u   t   L   e   n   :   1   6   ,  \r  \t   m   a   k
0007740    A   n   d   :   m   A   n   d   1   ,  \r  \t   m   a   k   P
0007760    u   :   m   P   u   2   ,  \r  \t   m   a   k   C   o   n   t
0010000    s   :   m   C   o   n   t   1 376 001  \0 336  \t   ,  \r  \t
0010020    m   a   k   T   o   p   W   i   r   e   :   m   T   W   1   ,
0010040   \r  \t   c   a   l   c   M   a   x   y   :   m   C   a   l   c
0010060    1  \r   ]   ;  \r  \r   g   a   t   e   L   i   s   t   :   L
0010100    O   N   G       P   O   I   N   T   E   R       T   O       g
0010120    a   t   e   _   N   I   L   ;  \r  \r   g   e   t   G   a   t
0010140    e   :   P   U   B   L   I   C       P   R   O   C   E   D   U
0010160    R   E   [   g   c   :   L   O   N   G       P   O   I   N   T
0010200    E   R       T   O       g   a   t   e   C   h   a   r   a   c
0010220    ,   p   a   r   m   s   :   I   N   T   E   G   E   R   ]  \r
0010240   \t   R   E   T   U   R   N   S   [   g   a   t   :   L   O   N
0010260    G       P   O   I   N   T   E   R       T   O       g   a   t
0010300    e   ]       =  \r                   B   E   G   I   N  \r  \t
0010320    g   a   t   _   g   a   t   e   L   i   s   t   ;  \r  \t   W
0010340    H   I   L   E       g   a   t   #   N   I   L       D   O  \r
0010360   \t           I   F       g   a   t   .   p   a   r   m   N   u
0010400    m       =       p   a   r   m   s       A   N   D 376 001  \0
0010420    v 217       g   c   S   a   m   e   [   g   c   ,   g   a   t
0010440    .   c   h   a   r   a   c   ]       T   H   E   N       R   E
0010460    T   U   R   N   ;  \r  \t           g   a   t   _   g   a   t
0010500    .   n   x   t   ;  \r  \t   E   N   D   L   O   O   P   ;  \r
0010520   \t   g   a   t   _   m   a   k   e   G   a   t   e   [   g   c
0010540    ,   p   a   r   m   s   ]   ;  \r  \t   g   a   t   .   n   x
0010560    t   _   g   a   t   e   L   i   s   t   ;  \r  \t   g   a   t
0010600    e   L   i   s   t   _   g   a   t   ;  \r                   E
0010620    N   D   ;  \r   g   c   S   a   m   e   :   P   R   O   C   E
0010640    D   U   R   E   [   a   ,   b   :   L   O   N   G       P   O
0010660    I   N   T   E   R       T   O       g   a   t   e   C   h   a
0010700    r   a   c   ]       R   E   T   U   R   N   S   [   B   O   O
0010720    L   E   A   N   ]       =  \r                   B   E   G   I
0010740    N  \r  \t   I   F       a   .   i   n   C   n   t   #   b   .
0010760    i   n   C   n   t       O   R       a   .   n   o   r   C   n
0011000    t   #   b   .   n   o   r   C   n   t       T   H   E   N    
0011020    R   E 376 001  \0   O 310   T   U   R   N   [   F   A   L   S
0011040    E   ]   ;  \r  \t   F   O   R       i   :   I   N   T   E   G
0011060    E   R       I   N       [   0   .   .   a   .   n   o   r   C
0011100    n   t   )       D   O  \r  \t           I   F       a   .   a
0011120    n   d   s   [   i   ]       #       b   .   a   n   d   s   [
0011140    i   ]       T   H   E   N       R   E   T   U   R   N   [   F
0011160    A   L   S   E   ]   ;  \r  \t   E   N   D   L   O   O   P   ;
0011200   \r  \t   R   E   T   U   R   N   [   T   R   U   E   ]   ;  \r
0011220                    E   N   D   ;  \r  \r   m   a   k   e   G   a
0011240    t   e   :   P   R   O   C   E   D   U   R   E   [   g   c   :
0011260    L   O   N   G       P   O   I   N   T   E   R       T   O    
0011300    g   a   t   e   C   h   a   r   a   c   ,   p   a   r   m   s
0011320    :   p   a   r   m   a   C   n   t   ]  \r  \t   R   E   T   U
0011340    R   N   S   [   g   a   t   :   L   O   N   G       P   O   I
0011360    N   T   E   R       T   O       g   a   t   e   ]       =  \r
0011400                    B   E   G   I   N  \r  \t   O   P   E   N    
0011420    c   u   r   r   e   n   t 376 001  \0  \0 265   P   a   r   a
0011440    m   e   t   e   r   s   ;  \r  \t   l   p   :   L   O   N   G
0011460        P   O   I   N   T   E   R       T   O       l   i   s   t
0011500    ;   -   -   _   N   I   L   ;  \r  \t   o   b   :   L   O   N
0011520    G       P   O   I   N   T   E   R       T   O       o   b   j
0011540    e   c   t   ;  \r  \t   c   p   :   L   O   N   G       P   O
0011560    I   N   T   E   R       T   O       c   L   i   s   t   ;  \r
0011600   \t   x   :   l   o   c   N   u   m   ;  \r  \t   y   :   l   o
0011620    c   N   u   m   ;  \r  \t   i   ,   i   n   I   d   x   ,   a
0011640    c   n   t   ,   m   x   ,   m   a   x   y   :   I   N   T   E
0011660    G   E   R   ;  \r  \t   t   o   p   x   1   ,   t   o   p   x
0011700    2   ,   d   x   ,   w   i   d   t   h   ,   b   o   t   x   :
0011720    I   N   T   E   G   E   R   ;  \r  \t   c   u   r   r   e   n
0011740    t   P   a   r   a   m   e   t   e   r   s   _   p   a   r   m
0011760    a   [   p   a   r   m   s   ]   ;  \r  \t   c   u   r   r   e
0012000    n   t   P   a   r   a   m   N   u   m   b   e   r   _   p   a
0012020    r   m   s   ;  \r  \t   g   a   t   _   G   e 376 001  \0 273
0012040  037   t   S   p   a   c   e   [   S   I   Z   E   [   g   a   t
0012060    e   [   g   c   .   i   n   C   n   t   ]   ]   ]   ;  \r  \t
0012100    g   a   t   .   i   n   C   n   t   _   g   c   .   i   n   C
0012120    n   t   ;  \r  \t   g   a   t   .   n   x   t   _   N   I   L
0012140    ;  \r  \t   g   a   t   .   c   h   a   r   a   c   _   g   c
0012160    ;  \r  \t   g   a   t   .   p   a   r   m   N   u   m   _   c
0012200    u   r   r   e   n   t   P   a   r   a   m   N   u   m   b   e
0012220    r   ;  \r  \t   m   x   _   0   ;  \r  \t   y   _   s   t   r
0012240    t   Y   ;  \r  \t   m   a   x   y   _   y   +   c   a   l   c
0012260    M   a   x   y   [   g   c   ]   ;  \r  \t   x   _   -   2   ;
0012300   \r  \t   [   d   x   ,   ,   l   p   ]   _   m   a   k   C   o
0012320    n   t   s   [   0   ,   g   c   .   a   n   d   s   [   0   ]
0012340    ,   x   ,   y   ,   m   a   x   y   ,   N   I   L   ,   g   c
0012360    .   i   n   C   n   t   ]   ;  \r  \t   x   _   x   +   d   x
0012400    ;  \r  \t   b   o   t   x   _   0   ;  \r  \t   i   n   I   d
0012420    x   _   0   ;  \r  \t   F   O   R       i       I   N       [
0012440    0 376 001  \0 004 312   .   .   g   c   .   n   o   r   C   n
0012460    t   )       D   O  \r  \t           a   c   n   t   _   g   c
0012500    .   a   n   d   s   [   i   ]   ;  \r  \t           [   d   x
0012520    ,   w   i   d   t   h   ,   l   p   ]   _   m   a   k   A   n
0012540    d   [   a   c   n   t   ,   x   ,   y   ,   l   p   ,   i   n
0012560    I   d   x   ,   g   a   t   ,   g   c   .   i   n   C   n   t
0012600    ]   ;  \r  \t           i   n   I   d   x   _   i   n   I   d
0012620    x   +   a   c   n   t   ;  \r  \t           m   x   _   M   A
0012640    X   [   m   x   ,   x   +   w   i   d   t   h   ]   ;  \r  \t
0012660            x   _   x   +   d   x   ;  \r  \t           I   F    
0012700    i   =   0       T   H   E   N       t   o   p   x   1   _   x
0012720    +   n   o   r   W   i   r   e   O   f   f   ;  \r  \t        
0012740    I   F       i       M   O   D       2       =       0       T
0012760    H   E   N  \r  \t                   B   E   G   I   N  \r  \t
0013000   \t   t   o   p   x   2   _   x   +   n   o   r   W   i   r   e
0013020    O   f   f   +   w   W   i   d   ;  \r  \t  \t   [   d   x   ,
0013040    l   p   ]   _   m   a 376 001  \0 020   C   k   T   o   p   W
0013060    i   r   e   [   x   +   n   o   r   W   i   r   e   O   f   f
0013100    ,   l   p   ,   g   c   .   i   n   C   n   t   ]   ;  \r  \t
0013120   \t   x   _   x   +   d   x   ;  \r  \t  \t   m   x   _   M   A
0013140    X   [   m   x   ,   t   o   p   x   2   ]   ;  \r  \t        
0013160            E   N   D  \r  \t       E   L   S   E  \r  \t        
0013200            B   E   G   I   N  \r  \t  \t   [   d   x   ,   w   i
0013220    d   t   h   ,   l   p   ]   _   m   a   k   C   o   n   t   s
0013240    [   a   c   n   t   ,   (   I   F       i   =   g   c   .   n
0013260    o   r   C   n   t   -   1       T   H   E   N       0  \r  \t
0013300   \t  \t   E   L   S   E       g   c   .   a   n   d   s   [   i
0013320    +   1   ]   )   ,   x   ,   y   ,   m   a   x   y   ,   l   p
0013340    ,   g   c   .   i   n   C   n   t   ]   ;  \r  \t  \t   b   o
0013360    t   x   _   x   +   2   ;  \r  \t  \t   m   x   _   M   A   X
0013400    [   m   x   ,   x   +   w   i   d   t   h   ]   ;  \r  \t  \t
0013420    x   _   x   +   d   x   ;  \r  \t                   E   N   D
0013440    ;  \r  \t   E   N   D   L   O   O   P   ; 376 001  \0 331 303
0013460   \r  \t   [   d   x   ,   l   p   ]   _   m   a   k   P   u   [
0013500    t   o   p   x   1   ,   t   o   p   x   2   ,   m   x   ,   l
0013520    p   ,   g   a   t   ,   g   c   .   i   n   C   n   t   ]   ;
0013540   \r  \t   m   x   _   M   A   X   [   m   x   ,   d   x   ]   ;
0013560   \r  \t   I   F       b   o   t   x   >   0       T   H   E   N
0013600   \r  \t                   B   E   G   I   N  \r  \t  \t   l   p
0013620    _   i   n   s   e   r   t   L   i   s   t   [   l   p   ,   m
0013640    a   k   e   L   i   s   t   [   m   a   k   e   W   i   r   e
0013660    [   b   o   t   x   +   m   w   W   i   d   ,   6   ,   m   e
0013700    t   ]  \r  \t  \t  \t   ,   0   ,   m   a   x   y   -   2   ,
0013720    2   ,   0   ]   ]   ;  \r  \t                   E   N   D   ;
0013740   \r  \t   g   a   t   .   g   n   d   _   [   b   o   t   x   +
0013760    2   ,   m   a   x   y   -   2   ]   ;  \r  \t   o   b   _   m
0014000    a   k   e   C   e   l   l   [   m   x   ,   m   a   x   y   +
0014020    4   ,   0   ,   l   p   ]   ;  \r  \t   c   p   _   a   l   o
0014040    c   C   L   i   s   t   [   ]   ;  \r  \t   c   p   .   o   b
0014060  376 001  \0 020 320   _   o   b   ;  \r  \t   c   p   .   n   a
0014100    m   e   _   m   a   k   e   C   e   l   l   N   a   m   e   [
0014120    g   c   ]   ;  \r  \t   o   b   .   r   e   t   u   r   n   a
0014140    b   l   e   _   F   A   L   S   E   ;  \r  \t   g   a   t   .
0014160    c   e   l   l   _   c   p   ;  \r  \t   c   p   .   n   x   t
0014200    _   c   e   l   l   L   i   s   t   ;  \r  \t   c   e   l   l
0014220    L   i   s   t   _   c   p   ;  \r                   E   N   D
0014240    ;  \r  \r   m   a   k   e   C   e   l   l   N   a   m   e   :
0014260    P   R   O   C   E   D   U   R   E   [   g   c   :   L   O   N
0014300    G       P   O   I   N   T   E   R       T   O       g   a   t
0014320    e   C   h   a   r   a   c   ]       R   E   T   U   R   N   S
0014340    [   s   :   S   T   R   I   N   G   ]       =  \r            
0014360        B   E   G   I   N  \r  \t   s   s   :   S   T   R   I   N
0014400    G   _   [   1   0   1   ]   ;  \r  \t   s   s   .   l   e   n
0014420    g   t   h   _   0   ;  \r  \t   A   p   p   e   n   d   S   t
0014440    r   i   n   g   [   s   s   ,   "   G   A   T   E   "   ]   ;
0014460   \r  \t   A   p   p 376 001  \0 372 376   e   n   d   D   e   c
0014500    i   m   a   l   [   s   s   ,   c   u   r   r   e   n   t   P
0014520    a   r   a   m   N   u   m   b   e   r   ]   ;  \r  \t   A   p
0014540    p   e   n   d   C   h   a   r   [   s   s   ,   '   -   ]   ;
0014560   \r  \t   A   p   p   e   n   d   D   e   c   i   m   a   l   [
0014600    s   s   ,   g   c   .   n   o   r   C   n   t   ]   ;  \r  \t
0014620    F   O   R       i   :   I   N   T   E   G   E   R       I   N
0014640        [   0   .   .   g   c   .   n   o   r   C   n   t   )    
0014660    D   O  \r  \t           I   F       s   s   .   l   e   n   g
0014700    t   h   >   9   2       T   H   E   N       B   E   G   I   N
0014720        A   p   p   e   n   d   S   t   r   i   n   g   [   s   s
0014740    ,   "   .   E   T   C   "   ]   ;   E   X   I   T   ;   E   N
0014760    D   ;  \r  \t           I   F       g   c   .   a   n   d   s
0015000    [   i   ]   >   1       T   H   E   N  \r  \t                
0015020    B   E   G   I   N  \r  \t  \t   A   p   p   e   n   d   C   h
0015040    a   r   [   s   s   ,   '   -   ]   ;  \r  \t  \t   A   p   p
0015060    e   n   d   C   h   a   r   [   s   s 376 001  \0 256 256   ,
0015100    (   '   A   +   i   )   ]   ;  \r  \t  \t   A   p   p   e   n
0015120    d   D   e   c   i   m   a   l   [   s   s   ,   g   c   .   a
0015140    n   d   s   [   i   ]   ]   ;  \r  \t                   E   N
0015160    D   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t   s   _
0015200    n   e   w   S   t   r   i   n   g   [   s   s   ]   ;  \r    
0015220                E   N   D   ;  \r  \r   m   A   n   d   1   :   m
0015240    A   n   d   P   r   o   c   d       =  \r                   B
0015260    E   G   I   N  \r  \t   O   P   E   N       c   u   r   r   e
0015300    n   t   P   a   r   a   m   e   t   e   r   s   ;  \r  \t   i
0015320    :   I   N   T   E   G   E   R   ;  \r  \t   l   l   :   L   O
0015340    N   G       P   O   I   N   T   E   R       T   O       l   i
0015360    s   t   ;  \r  \t   d   x   _   0   ;  \r  \t   g   a   t   .
0015400    f   i   r   s   t   I   n   T   o   p   A   v   a   i   l   _
0015420    T   R   U   E   ;  \r  \t   I   F       t   o   t   I   n   s
0015440    =   1       T   H   E   N  \r  \t                   B   E   G
0015460    I   N  \r  \t  \t   y   _   y   +   i   n   v   O   f   f 376
0015500  001  \0 343   Z   ;  \r  \t  \t   l   l   _   m   a   k   e   L
0015520    i   s   t   [   m   a   k   e   X   s   t   r   [   s   t   a
0015540    n   d   W   i   d   t   h   ,   c   L   e   n   g   t   h   ]
0015560    ,   x   ,   y   -   4   ,   0   ,   0   ]   ;  \r  \t  \t   l
0015600    p   _   i   n   s   e   r   t   L   i   s   t   [   l   p   ,
0015620    l   l   ]   ;  \r  \t  \t   g   a   t   .   i   n   s   [   0
0015640    ]   _   [   x   ,   y   ]   ;  \r  \t  \t   g   a   t   .   f
0015660    i   r   s   t   I   n   T   o   p   _   [   x   -   2   ,   y
0015700    +   4   ]   ;  \r  \t  \t   g   a   t   .   r   S   p   a   c
0015720    _   2   ;  \r  \t  \t   g   a   t   .   l   S   p   a   c   _
0015740    3   ;  \r  \t  \t   d   x   _   s   t   a   n   d   W   i   d
0015760    t   h   +   2   ;  \r  \t  \t   n   l   _   l   p   ;  \r  \t
0016000   \t   w   i   d   _   d   x   +   6   ;  \r  \t  \t   R   E   T
0016020    U   R   N   ;  \r  \t                   E   N   D   ;  \r  \t
0016040    I   F       i   n   p   u   t   s   =   0       T   H   E   N
0016060        g   a   t   .   l   S   p   a   c   _   g   a   t   .   r
0016100    S   p   a   c 376 001  \0 200 363   _   1   ;  \r  \t   F   O
0016120    R       i       I   N       [   0   .   .   a   C   n   t   )
0016140        D   O  \r  \t           l   l   _   m   a   k   e   L   i
0016160    s   t   [   m   a   k   e   X   s   t   r   [   s   t   a   n
0016200    d   W   i   d   t   h   *   a   C   n   t   ,   c   L   e   n
0016220    g   t   h   ]   ,   x   +   d   x   ,   y   ,   2   ,   0   ]
0016240    ;  \r  \t           l   p   _   i   n   s   e   r   t   L   i
0016260    s   t   [   l   p   ,   l   l   ]   ;  \r  \t           g   a
0016300    t   .   i   n   s   [   i   n   p   u   t   s   +   i   ]   _
0016320    [   x   +   d   x   +   4   +   c   L   e   n   g   t   h   /
0016340    2   ,   y   +   s   t   a   n   d   W   i   d   t   h   *   a
0016360    C   n   t   +   6   ]   ;  \r  \t           I   F       i   n
0016400    p   u   t   s   +   i   =   0       T   H   E   N       g   a
0016420    t   .   f   i   r   s   t   I   n   T   o   p   _   [   x   +
0016440    d   x   +   4   +   c   L   e   n   g   t   h   /   2   ,   y
0016460    +   2   ]   ;  \r  \t           d   x   _   d   x   +   8   ;
0016500   \r  \t   E   N   D   L   O   O   P 376 001  \0   @ 271   ;  \r
0016520   \t   n   l   _   l   p   ;  \r  \t   w   i   d   _   d   x   +
0016540    4   ;  \r                   E   N   D   ;  \r   m   P   u   1
0016560    :   m   P   u   P   r   o   c   d       =  \r                
0016600    B   E   G   I   N  \r  \t   O   P   E   N       c   u   r   r
0016620    e   n   t   P   a   r   a   m   e   t   e   r   s   ;  \r  \t
0016640    l   p   p   :   L   O   N   G       P   O   I   N   T   E   R
0016660        T   O       l   i   s   t   ;  \r  \t   w   i   d   :   I
0016700    N   T   E   G   E   R   _   p   u   t   W   i   d   +   1   2
0016720    ;  \r  \t   t   :   I   N   T   E   G   E   R   _   x   2   -
0016740    w   i   d   ;  \r  \t   o   x   :   I   N   T   E   G   E   R
0016760    _   m   x   +   g   a   t   .   r   S   p   a   c   *   2   ;
0017000   \r  \t   y   :   I   N   T   E   G   E   R   _   1   6   ;  \r
0017020   \t   I   F       t   o   t   I   n   s   =   1       T   H   E
0017040    N  \r  \t                   B   E   G   I   N  \r  \t  \t   x
0017060    2   _   x   1   ;  \r  \t  \t   x   1   _   x   1   -   s   t
0017100    a   n   d   W   i   d   t   h   ;  \r  \t  \t   t   _ 376 001
0017120   \0   /       x   2   -   w   i   d   ;  \r  \t  \t   y   _   y
0017140    +   i   n   v   O   f   f   ;  \r  \t                   E   N
0017160    D   ;  \r  \t   I   F       t   <   x   1       T   H   E   N
0017200        t   _   M   I   N   [   x   1   ,   m   x   -   w   i   d
0017220    ]   ;  \r  \t   I   F       t   <   0       T   H   E   N    
0017240    t   _   0   ;  \r  \t   x   1   _   M   I   N   [   t   ,   x
0017260    1   ]   ;  \r  \t   x   2   _   M   A   X   [   x   2   ,   t
0017300    +   w   i   d   ]   ;  \r  \t   l   p   p   _   m   a   k   e
0017320    L   i   s   t   [   m   a   k   e   W   i   r   e   [   x   2
0017340    -   x   1   ,   w   W   i   d   ,   d   i   f   ]   ,   x   1
0017360    ,   y   +   8   ,   2   ,   0   ]   ;  \r  \t   l   p   _   i
0017400    n   s   e   r   t   L   i   s   t   [   l   p   ,   l   p   p
0017420    ]   ;  \r  \t   l   p   p   _   m   a   k   e   L   i   s   t
0017440    [   m   a   k   e   B   u   t   c   o   n   [   ]   ,   t   ,
0017460    y   ,   0   ,   0   ]   ;  \r  \t   l   p   _   i   n   s   e
0017500    r   t   L   i   s   t   [   l   p   ,   l   p   p   ]   ;  \r
0017520   \t   l   p 376 001  \0 210 006   p   _   m   a   k   e   L   i
0017540    s   t   [   m   a   k   e   D   i   f   c   o   n   [   M   A
0017560    X   [   8   ,   p   u   t   W   i   d   ]   ]   ,   t   +   1
0017600    2   ,   0   ,   2   ,   0   ]   ;  \r  \t   l   p   _   i   n
0017620    s   e   r   t   L   i   s   t   [   l   p   ,   l   p   p   ]
0017640    ;  \r  \t   d   x   _   M   A   X   [   t   +   w   i   d   +
0017660    4   ,   x   2   ]   ;  \r  \t   I   F       t   +   w   i   d
0017700    +   2   <   o   x       T   H   E   N  \r  \t                
0017720    B   E   G   I   N  \r  \t  \t   d   x   _   M   A   X   [   o
0017740    x   +   2   ,   d   x   ]   ;  \r  \t  \t   l   p   p   _   m
0017760    a   k   e   L   i   s   t   [   m   a   k   e   W   i   r   e
0020000    [   o   x   -   t   -   w   i   d   ,   4   ,   p   o   l   ]
0020020    ,   t   +   w   i   d   +   2   ,   y   +   2   ,   2   ,   0
0020040    ]   ;  \r  \t  \t   l   p   _   i   n   s   e   r   t   L   i
0020060    s   t   [   l   p   ,   l   p   p   ]   ;  \r  \t  \t   g   a
0020100    t   .   o   u   t   _   [   o   x   +   2   ,   y   +   2   ]
0020120    ;  \r  \t                   E 376 001  \0   a   ;   N   D  \r
0020140   \t       E   L   S   E  \r  \t                   B   E   G   I
0020160    N  \r  \t  \t   g   a   t   .   o   u   t   _   [   t   +   w
0020200    i   d   +   4   ,   y   +   2   ]   ;  \r  \t                
0020220    E   N   D   ;  \r  \t   l   p   p   _   m   a   k   e   L   i
0020240    s   t   [   m   a   k   e   W   i   r   e   [   y   -   6   ,
0020260    p   u   t   W   i   d   ,   d   i   f   ]   ,   t   +   1   2
0020300    ,   6   ,   0   ,   0   ]   ;  \r  \t   l   p   _   i   n   s
0020320    e   r   t   L   i   s   t   [   l   p   ,   l   p   p   ]   ;
0020340   \r  \t   l   p   p   _   m   a   k   e   L   i   s   t   [   m
0020360    a   k   e   X   s   t   r   [   p   u   t   W   i   d   ,   p
0020400    u   t   L   e   n   ,   p   p   d   e   f   s   .   s   t   r
0020420    o   n   g   D   e   p   l   e   t   i   o   n   ]   ,   t   +
0020440    8   ,   y   -   2   ,   0   ,   0   ]   ;  \r  \t   n   l   _
0020460    i   n   s   e   r   t   L   i   s   t   [   l   p   ,   l   p
0020500    p   ]   ;  \r                   E   N   D   ;  \r   m   P   u
0020520    2   :   m   P   u   P   r   o   c   d       =  \r 376 001  \0
0020540  242   7                   B   E   G   I   N  \r  \t   O   P   E
0020560    N       c   u   r   r   e   n   t   P   a   r   a   m   e   t
0020600    e   r   s   ;  \r  \t   l   p   p   :   L   O   N   G       P
0020620    O   I   N   T   E   R       T   O       l   i   s   t   ;  \r
0020640   \t   w   i   d   :   I   N   T   E   G   E   R   =   1   0   ;
0020660   \r  \t   t   :   I   N   T   E   G   E   R   _   x   2   -   w
0020700    i   d   ;  \r  \t   o   x   :   I   N   T   E   G   E   R   _
0020720    m   x   +   g   a   t   .   r   S   p   a   c   *   2   ;  \r
0020740   \t   y   :   I   N   T   E   G   E   R   _   s   t   r   t   Y
0020760    -   1   2   ;  \r  \t   I   F       t   o   t   I   n   s   =
0021000    1       T   H   E   N  \r  \t                   B   E   G   I
0021020    N  \r  \t  \t   x   2   _   x   1   ;  \r  \t  \t   x   1   _
0021040    x   1   -   s   t   a   n   d   W   i   d   t   h   ;  \r  \t
0021060   \t   t   _   x   2   -   w   i   d   ;  \r  \t  \t   y   _   y
0021100    +   i   n   v   O   f   f   ;  \r  \t                   E   N
0021120    D   ;  \r  \t   I   F       t   <   x   1   -   2       T   H
0021140    E   N 376 001  \0 024   "       t   _   M   I   N   [   x   1
0021160    -   2   ,   m   x   -   w   i   d   ]   ;  \r  \t   I   F    
0021200    t   <   0       T   H   E   N       t   _   0   ;  \r  \t   x
0021220    1   _   M   I   N   [   t   +   2   ,   x   1   ]   ;  \r  \t
0021240    x   2   _   M   A   X   [   x   2   ,   t   +   w   i   d   ]
0021260    ;  \r  \t   l   p   p   _   m   a   k   e   L   i   s   t   [
0021300    m   a   k   e   W   i   r   e   [   x   2   -   x   1   ,   w
0021320    W   i   d   ,   d   i   f   ]   ,   x   1   ,   y   +   6   ,
0021340    2   ,   0   ]   ;  \r  \t   l   p   _   i   n   s   e   r   t
0021360    L   i   s   t   [   l   p   ,   l   p   p   ]   ;  \r  \t   l
0021400    p   p   _   m   a   k   e   L   i   s   t   [   m   a   k   e
0021420    D   i   f   c   o   n   [   8   ]   ,   t   +   2   ,   0   ,
0021440    2   ,   0   ]   ;  \r  \t   l   p   _   i   n   s   e   r   t
0021460    L   i   s   t   [   l   p   ,   l   p   p   ]   ;  \r  \t   d
0021500    x   _   M   A   X   [   t   +   w   i   d   +   2   ,   x   2
0021520    ]   ;  \r  \t   I   F       t   +   w   i   d   <   o   x    
0021540    T   H   E   N  \r  \t     376 001  \0 375 275               B
0021560    E   G   I   N  \r  \t  \t   d   x   _   M   A   X   [   o   x
0021600    +   2   ,   d   x   ]   ;  \r  \t  \t   l   p   p   _   m   a
0021620    k   e   L   i   s   t   [   m   a   k   e   W   i   r   e   [
0021640    o   x   -   t   -   w   i   d   ,   4   ,   p   o   l   ]   ,
0021660    t   +   w   i   d   +   2   ,   y   ,   2   ,   0   ]   ;  \r
0021700   \t  \t   l   p   _   i   n   s   e   r   t   L   i   s   t   [
0021720    l   p   ,   l   p   p   ]   ;  \r  \t  \t   g   a   t   .   o
0021740    u   t   _   [   o   x   +   2   ,   y   ]   ;  \r  \t        
0021760            E   N   D  \r  \t       E   L   S   E  \r  \t        
0022000            B   E   G   I   N  \r  \t  \t   g   a   t   .   o   u
0022020    t   _   [   t   +   w   i   d   +   4   ,   y   ]   ;  \r  \t
0022040                    E   N   D   ;  \r  \t   l   p   p   _   m   a
0022060    k   e   L   i   s   t   [   m   a   k   e   P   u   l   l   u
0022100    p   [   p   u   t   W   i   d   ,   p   u   t   L   e   n   ]
0022120    ,   t   ,  \r  \t  \t   (   I   F       t   o   t   I   n   s
0022140    >   1       T   H   E   N       8       E   L 376 001  \0 211
0022160  017   S   E       i   n   v   O   f   f   +   8   )   ,   0   ,
0022200    0   ]   ;  \r  \t   n   l   _   i   n   s   e   r   t   L   i
0022220    s   t   [   l   p   ,   l   p   p   ]   ;  \r  \t   I   F    
0022240    t   o   t   I   n   s   =   1       T   H   E   N  \r  \t    
0022260                B   E   G   I   N  \r  \t  \t   l   p   p   _   m
0022300    a   k   e   L   i   s   t   [   m   a   k   e   W   i   r   e
0022320    [   i   n   v   O   f   f   +   4   ,   p   u   t   W   i   d
0022340    ,   d   i   f   ]   ,   t   +   4   ,   6   ,   0   ,   0   ]
0022360    ;  \r  \t  \t   n   l   _   i   n   s   e   r   t   L   i   s
0022400    t   [   n   l   ,   l   p   p   ]   ;  \r  \t                
0022420    E   N   D   ;  \r                   E   N   D   ;  \r   m   T
0022440    W   1   :   m   T   W   P   r   o   c   d       =  \r        
0022460            B   E   G   I   N  \r  \t   I   F       t   o   t   I
0022500    n   s   =   1       T   H   E   N       {   d   x   _   1   0
0022520    ;   n   l   _   l   p   ;   R   E   T   U   R   N   }   ;  \r
0022540   \t   n   l   _   m   a   k   e   L   i   s   t   [   m   a   k
0022560    e 376 001  \0   Z 344   W   i   r   e   [   1   4   ,   c   u
0022600    r   r   e   n   t   P   a   r   a   m   e   t   e   r   s   .
0022620    w   W   i   d   ,   d   i   f   ]   ,  \r  \t  \t   x   ,   c
0022640    u   r   r   e   n   t   P   a   r   a   m   e   t   e   r   s
0022660    .   s   t   r   t   Y   -   6   ,   0   ,   0   ]   ;  \r  \t
0022700    n   l   _   i   n   s   e   r   t   L   i   s   t   [   l   p
0022720    ,   n   l   ]   ;  \r  \t   d   x   _   c   u   r   r   e   n
0022740    t   P   a   r   a   m   e   t   e   r   s   .   w   W   i   d
0022760    ;  \r                   E   N   D   ;  \r   m   C   o   n   t
0023000    1   :   m   C   o   n   t   P   r   o   c   d       =  \r    
0023020                B   E   G   I   N  \r  \t   O   P   E   N       c
0023040    u   r   r   e   n   t   P   a   r   a   m   e   t   e   r   s
0023060    ;  \r  \t   l   h   ,   r   h   ,   n   y   ,   c   :   I   N
0023100    T   E   G   E   R   ;  \r  \t   l   h   _   s   t   a   n   d
0023120    W   i   d   t   h   *   l   C   n   t   ;  \r  \t   r   h   _
0023140    s   t   a   n   d   W   i   d   t   h   *   r   C   n   t   ;
0023160   \r  \t   I   F       t 376 001  \0 260   L   o   t   I   n   s
0023200    =   1       T   H   E   N  \r  \t                   B   E   G
0023220    I   N  \r  \t  \t   x   _   x   +   6   ;  \r  \t  \t   y   _
0023240    y   -   2   +   i   n   v   O   f   f   ;  \r  \t  \t   n   y
0023260    _   y       +       8   ;  \r  \t  \t   n   l   _   m   a   k
0023300    e   L   i   s   t   [   m   a   k   e   D   i   f   c   o   n
0023320    [   8   ]   ,   x   ,   n   y   ,   0   ,   0   ]   ;  \r  \t
0023340   \t   l   p   _   i   n   s   e   r   t   L   i   s   t   [   l
0023360    p   ,   n   l   ]   ;  \r  \t  \t   n   l   _   m   a   k   e
0023400    L   i   s   t   [   m   a   k   e   W   i   r   e   [   l   h
0023420    ,   4   ,   d   i   f   ]   ,   x   ,   n   y   +   2   ,   2
0023440    ,   0   ]   ;  \r  \t  \t   l   p   _   i   n   s   e   r   t
0023460    L   i   s   t   [   l   p   ,   n   l   ]   ;  \r  \t  \t   I
0023500    F       m   a   x   y   -   n   y   >   2       T   H   E   N
0023520   \r  \t  \t                   B   E   G   I   N  \r  \t  \t  \t
0023540    n   l   _   m   a   k   e   L   i   s   t   [   m   a   k   e
0023560    W   i   r   e   [   m   a   x   y   -   n 376 001  \0   z   r
0023600    y   +   2   ,   m   w   W   i   d   ,   m   e   t   ]   ,   x
0023620    ,   n   y   +   2   ,   0   ,   0   ]   ;  \r  \t  \t  \t   n
0023640    l   _   i   n   s   e   r   t   L   i   s   t   [   l   p   ,
0023660    n   l   ]   ;  \r  \t  \t                   E   N   D   ;  \r
0023700   \t  \t   d   x   _   2   ;  \r  \t  \t   w   i   d   _   2   ;
0023720   \r  \t  \t   R   E   T   U   R   N   ;  \r  \t                
0023740    E   N   D   ;  \r  \t   x   _   x   +   2   ;  \r  \t   c   _
0023760    I   F       M   A   X   [   r   h   ,   l   h   ]   <   1   2
0024000        T   H   E   N       1       E   L   S   E       (   M   A
0024020    X   [   r   h   ,   l   h   ]   -   8   )   /   1   6   +   1
0024040    ;  \r  \t   y   _   y   +   4   ;  \r  \t   n   y   _   y    
0024060    +       (   (   M   A   X   [   r   h   ,   l   h   ]   -   8
0024100    )   M   O   D       1   6   )   ;  \r  \t   F   O   R       i
0024120    :   I   N   T   E   G   E   R       I   N       [   0   .   .
0024140    c   )       D   O  \r  \t           n   l   _   m   a   k   e
0024160    L   i   s   t   [   m   a   k   e   D   i   f   c   o   n   [
0024200  376 001  \0 344 244   8   ]   ,   x   ,   n   y   +   i   *   1
0024220    6   ,   0   ,   0   ]   ;  \r  \t           l   p   _   i   n
0024240    s   e   r   t   L   i   s   t   [   l   p   ,   n   l   ]   ;
0024260   \r  \t   E   N   D   L   O   O   P   ;  \r  \t   n   l   _   m
0024300    a   k   e   L   i   s   t   [   m   a   k   e   W   i   r   e
0024320    [   M   A   X   [   r   h   ,   l   h   ]   ,   4   ,   d   i
0024340    f   ]   ,   x   +   2   ,   y   ,   0   ,   0   ]   ;  \r  \t
0024360    l   p   _   i   n   s   e   r   t   L   i   s   t   [   l   p
0024400    ,   n   l   ]   ;  \r  \t   n   l   _   m   a   k   e   L   i
0024420    s   t   [   m   a   k   e   W   i   r   e   [   m   a   x   y
0024440    -   n   y   +   4   ,   m   w   W   i   d   ,   m   e   t   ]
0024460    ,   x   ,   n   y   ,   0   ,   0   ]   ;  \r  \t   n   l   _
0024500    i   n   s   e   r   t   L   i   s   t   [   l   p   ,   n   l
0024520    ]   ;  \r  \t   d   x   _   8   ;  \r  \t   w   i   d   _   1
0024540    0   ;  \r                   E   N   D   ;  \r   m   C   a   l
0024560    c   1   :   c   a   l   c   M   y   P   r   o   c   d       =
0024600   \r                 376  \0 233   @ 230   B   E   G   I   N  \r
0024620   \t   m   y   _   0   ;  \r  \t   F   O   R       i   :   I   N
0024640    T   E   G   E   R       I   N       [   0   .   .   g   c   .
0024660    n   o   r   C   n   t   )       D   O  \r  \t           m   y
0024700    _   M   A   X   [   m   y   ,   g   c   .   a   n   d   s   [
0024720    i   ]   ]   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t
0024740    m   y   _   m   y   *   c   u   r   r   e   n   t   P   a   r
0024760    a   m   e   t   e   r   s   .   s   t   a   n   d   W   i   d
0025000    t   h   +   8   ;  \r                   E   N   D   ;  \r  \r
0025020   \r           E   N   D   .       -   -       o   f       r   l
0025040    g   a   t   e  \r 377  \0  \0   r   l   i   n   .   m   e   s
0025060    a  \0 373 227 366 204 260  \0  \0 376 001  \0 275 240   -   -
0025100        a       p   r   o   g   r   a   m       t   o       r   u
0025120    n       w   i   t   h   i   n       C   h   i   p   m   o   n
0025140    k  \r  \r   -   -       l   a   s   t       m   o   d   i   f
0025160    i   e   d       b   y       P   e   t   i   t   ,       O   c
0025200    t   o   b   e   r       1   3   ,       1   9   8   1        
0025220    8   :   0   0       P   M  \r   -   -       w   r   i   t   t
0025240    e   n       b   y       P   e   t   i   t   ,       O   c   t
0025260    o   b   e   r       9   ,       1   9   8   1           2   :
0025300    0   4       P   M  \r  \r   D   I   R   E   C   T   O   R   Y
0025320   \r           p   p   d   d   e   f   s   ,  \r           p   p
0025340    d   e   f   s   ,  \r           r   l   d   e   f   s   ,  \r
0025360            A   l   t   o   F   i   l   e   D   e   f   s   ,  \r
0025400            Z   o   n   e   A   l   l   o   c   D   e   f   s   ,
0025420   \r           S   t   r   e   a   m   D   e   f   s   ,  \r    
0025440        D   i   r   e   c   t   o   r   y   D   e   f   s   ,  \r
0025460            S   t   r   i   n   g   D   e   f   s   ;  \r 376 001
0025500   \0 324 242  \r   r   l   i   n   :       P   R   O   G   R   A
0025520    M  \r           I   M   P   O   R   T   S       p   p   d   e
0025540    f   s   ,       S   t   r   e   a   m   D   e   f   s   ,    
0025560    D   i   r   e   c   t   o   r   y   D   e   f   s   ,       r
0025600    l   d   e   f   s   ,       S   t   r   i   n   g   D   e   f
0025620    s  \r       E   X   P   O   R   T   S       r   l   d   e   f
0025640    s       =  \r           B   E   G   I   N       O   P   E   N
0025660        p   p   d   d   e   f   s   ,       r   l   d   e   f   s
0025700    ,       S   t   r   e   a   m   D   e   f   s   ,       D   i
0025720    r   e   c   t   o   r   y   D   e   f   s   ,       p   p   d
0025740    e   f   s   ,       S   t   r   i   n   g   D   e   f   s   ;
0025760   \r  \r  \r           f   H   a   n   d   l   e   :   D   i   s
0026000    k   H   a   n   d   l   e   ;  \r           f   p   :   A   l
0026020    t   o   F   i   l   e   D   e   f   s   .   F   P   ;  \r  \r
0026040            m   y   Z   o   n   e   :       P   U   B   L   I   C
0026060        U   N   C   O   U   N   T   E   D       Z   O   N   E   ;
0026100   \r  \r     376 001  \0 354 253       f   i   l   e   E   r   r
0026120    :   P   U   B   L   I   C       S   I   G   N   A   L   =   C
0026140    O   D   E   ;  \r           a   b   b   r   t   :   P   U   B
0026160    L   I   C       S   I   G   N   A   L   =   C   O   D   E   ;
0026200   \r  \r  \r   -   -       N   E   W       F   I   L   E       F
0026220    O   R   M   A   T   :  \r  \r   -   -       e   a   c   h    
0026240    g   a   t   e       i   s       r   e   p   r   e   s   e   n
0026260    t   e   d       b   y       o   n   e       l   i   n   e    
0026300    o   f       t   e   x   t   ,       t   h   u   s   :  \r   -
0026320    -               <   o   u   t   p   u   t       N   o   d   e
0026340        N   a   m   e   >       (       <   #   >       )       :
0026360        <   i   n   p   u   t       S   p   e   c   >       <   s
0026400    e   p   >       <   i   n   p   u   t       S   p   e   c   >
0026420        .   .   .       <   C   R   >  \r   -   -       W   h   e
0026440    r   e       <   i   n   p   u   t       S   p   e   c   >    
0026460    i   s       e   i   t   h   e   r       <   N   o   d   e    
0026500    N   a   m   e   >           f 376 001  \0   x 207   o   r    
0026520    a       s   i   n   g   l   e       n   o   r       i   n   p
0026540    u   t  \r   -   -       o   r       [       <   N   o   d   e
0026560        N   a   m   e   >       <   s   e   p   >       <   N   o
0026600    d   e       N   a   m   e   >       .   .   .       ]        
0026620    f   o   r       a   n       A   N   D       n   o   r       i
0026640    n   p   u   t  \r   -   -       <   s   e   p   >       i   s
0026660        e   i   t   h   e   r       s   p   a   c   e       o   r
0026700        c   o   m   m   a   .  \r   -   -       N   o   d   e    
0026720    N   a   m   e   s       a   r   e       i   d   e   n   t   i
0026740    f   i   e   r   s       (   s   t   r   i   n   g   s       o
0026760    f       <   D   i   g   i   t   >       a   n   d   /   o   r
0027000        <   L   e   t   t   e   r   >   )  \r   -   -       T   h
0027020    e       "   (       <   #   >       )   "       f   o   l   l
0027040    o   w   i   n   g       t   h   e       <   o   u   t   p   u
0027060    t       N   o   d   e       N   a   m   e   >       i   s    
0027100    t   h   e  \r   -   -       p   a   r   a   m   e 376 001  \0
0027120  344 330   t   e   r       (   p   u   l   l   u   p       s   t
0027140    r   e   n   g   t   h   )       i   n   d   e   x   .        
0027160    I   t       i   s       o   p   t   i   o   n   a   l   ,    
0027200    a   n   d       i   f  \r   -   -       i   t       i   s    
0027220    l   e   f   t       o   u   t       t   h   e       c   u   r
0027240    r   e   n   t       d   e   f   a   u   l   t       w   i   l
0027260    l       b   e       u   s   e   d   .  \r   -   -       A    
0027300    l   i   n   e       c   o   n   s   i   s   t   i   n   g    
0027320    o   f       o   n   l   y   :       (   <   #   >   )   <   C
0027340    R   >           w   i   l   l       s   e   t       t   h   e
0027360        d   e   f   a   u   l   t   .  \r   -   -       N   .   B
0027400    .   :       i   d   e   n   t   i   f   i   e   r   s       a
0027420    r   e       l   i   m   i   t   e   d       t   o       1   0
0027440    0       C   h   a   r   a   c   t   e   r   s   !  \r   -   -
0027460        f   i   l   e       e   n   d   s       w   i   t   h    
0027500    a       l   i   n   e       c   o   n   s   i   s   t   i   n
0027520    g     376 001  \0   6 265   o   f       @  \r  \r   -   -    
0027540    <   C   R   >       a   n   d       ;       a   r   e       e
0027560    q   u   i   v   a   l   e   n   t   .           C   o   m   m
0027600    a       a   n   d       s   p   a   c   e       a   r   e    
0027620    e   q   u   i   v   a   l   e   n   t   .  \r   -   -       a
0027640        l   i   n   e       s   t   a   r   t   i   n   g       w
0027660    i   t   h       (   f   i   r   s   t       n   o   n   -   b
0027700    l   a   n   k       c   h   r   )       a       m   i   n   u
0027720    s       (   -   )       i   s       i   g   n   o   r   e   d
0027740    .  \r  \r  \r   i   t   e   m   T   y   p   e   :   T   Y   P
0027760    E       =       {   i   d   e   n   t   ,   n   u   m   ,   s
0030000    e   p   ,   l   e   n   d   ,   c   o   l   o   n   ,   l   p
0030020    a   r   ,   r   p   a   r   ,   l   b   r   k   ,   r   b   r
0030040    k   ,   f   e   n   d   ,   c   o   m   m   t   }   ;  \r   p
0030060    i   n   T   y   p   e   :   T   Y   P   E       =       {   o
0030100    u   t   ,   n   o   r   ,   f   i   r   s   t   A   n   d   ,
0030120    a   n   d   }   ;  \r   p 376 001  \0   @ 001   i   n   D   e
0030140    f   :   T   Y   P   E       =       R   E   C   O   R   D   [
0030160    n   x   t   :   L   O   N   G       P   O   I   N   T   E   R
0030200        T   O       p   i   n   D   e   f   ,   n   o   d   e   :
0030220    I   N   T   E   G   E   R   ,   t   y   p   e   :   p   i   n
0030240    T   y   p   e   ]   ;  \r  \r   n   o   d   e   N   a   m   e
0030260    L   i   s   t   :   T   Y   P   E       =       R   E   C   O
0030300    R   D   [   n   x   t   :   L   O   N   G       P   O   I   N
0030320    T   E   R       T   O       n   o   d   e   N   a   m   e   L
0030340    i   s   t   ,  \r  \t   n   o   d   e   :   I   N   T   E   G
0030360    E   R   ,   n   a   m   e   :   S   T   R   I   N   G   ]   ;
0030400   \r  \r   t   e   r   m   C   h   a   r   :   C   H   A   R   A
0030420    C   T   E   R   ;  \r   d   u   m   m   y   t   c   :   C   H
0030440    A   R   A   C   T   E   R       =       1   7   7   C   ;  \r
0030460    p   i   n   s   ,   p   n   p   :   L   O   N   G       P   O
0030500    I   N   T   E   R       T   O       p   i   n   D   e   f   ;
0030520   \r   s   a   v   e   P   D   :   L   O   N   G 376 001  \0 362
0030540    1       P   O   I   N   T   E   R       T   O       p   i   n
0030560    D   e   f   _   N   I   L   ;  \r   n   n   L   i   s   t   :
0030600    L   O   N   G       P   O   I   N   T   E   R       T   O    
0030620    n   o   d   e   N   a   m   e   L   i   s   t   ;  \r  \r   i
0030640    n   p   u   t   C   i   r   c   u   i   t   :   P   U   B   L
0030660    I   C       P   R   O   C   E   D   U   R   E  \r  \t   R   E
0030700    T   U   R   N   S   [   p   n   t   :   L   O   N   G       P
0030720    O   I   N   T   E   R       T   O       G   a   t   e   L   i
0030740    s   t   ,   d   w   C   n   t   ,   m   a   x   N   N   :   I
0030760    N   T   E   G   E   R   ]       =  \r                   B   E
0031000    G   I   N  \r  \t   s   :   S   T   R   I   N   G   ;  \r  \t
0031020    o   k   :   B   O   O   L   E   A   N   ;  \r  \t   t   y   p
0031040    :   i   t   e   m   T   y   p   e   ;  \r  \t   g   c   :   L
0031060    O   N   G       P   O   I   N   T   E   R       T   O       g
0031100    a   t   e   C   h   a   r   a   c   ;  \r  \t   g   a   t   :
0031120    L   O   N   G       P   O   I   N   T   E   R       T   O    
0031140    g 376 001  \0 225 017   a   t   e   ;  \r  \t   g   p   ,   m
0031160    o   s   t   R   e   c   e   n   t   :   L   O   N   G       P
0031200    O   I   N   T   E   R       T   O       G   a   t   e   L   i
0031220    s   t   ;  \r  \t   n   o   r   C   n   t   ,   i   n   C   n
0031240    t   ,   i   ,   a   ,   p   a   r   m   :   I   N   T   E   G
0031260    E   R   ;  \r  \t   d   e   f   p   a   r   m   :   I   N   T
0031300    E   G   E   R   _   1   ;   -   -   d   e   f   a   u   l   t
0031320   \r  \t   [   o   k   ,   s   ,   ]   _   t   y   p   e   I   n
0031340    [   "   T   y   p   e       F   i   l   e       N   a   m   e
0031360    "   L   ,   "   W   i   t   h       E   x   t   e   n   s   i
0031400    o   n   "   L   ,   "   "   L   ]   ;  \r  \t   I   F       N
0031420    O   T       o   k       T   H   E   N       S   I   G   N   A
0031440    L       a   b   b   r   t   ;  \r  \t   o   k   _   o   p   e
0031460    n   F   [   s   ]   ;  \r  \t   p   n   t   _   N   I   L   ;
0031500   \r  \t   p   i   n   s   _   N   I   L   ;  \r  \t   d   w   C
0031520    n   t   _   m   a   x   N   N   _   0   ;  \r  \t   n   n   L
0031540    i   s   t   _   N   I 376 001  \0 270 356   L   ;  \r  \t   W
0031560    H   I   L   E       N   O   T       o   k       D   O  \r  \t
0031600            [   o   k   ,   s   ,   ]   _   t   y   p   e   I   n
0031620    [   "   N   o       S   u   c   h       F   i   l   e   "   L
0031640    ,   "   T   y   p   e       F   i   l   e       N   a   m   e
0031660    "   L   ,  \r  \t  \t  \t   "   W   i   t   h       E   x   t
0031700    e   n   s   i   o   n   "   L   ]   ;  \r  \t           I   F
0031720        N   O   T       o   k       T   H   E   N       S   I   G
0031740    N   A   L       a   b   b   r   t   ;  \r  \t           o   k
0031760    _   o   p   e   n   F   [   s   ]   ;  \r  \t   E   N   D   L
0032000    O   O   P   ;  \r  \r  \t   t   e   r   m   C   h   a   r   _
0032020    d   u   m   m   y   t   c   ;  \r  \t   D   O  \r  \t        
0032040    [   t   y   p   ,   s   ,   a   ]   _   s   c   a   n   [   ]
0032060    ;  \r  \t           I   F       t   y   p   =   f   e   n   d
0032100        T   H   E   N       E   X   I   T   ;  \r  \t           I
0032120    F       t   y   p   =   c   o   m   m   t       T   H   E   N
0032140        U   N   T   I   L       t   y   p   = 376 001  \0   @ 216
0032160    l   e   n   d       D   O       [   t   y   p   ,   ,   ]   _
0032200    s   c   a   n   [   ]   ;   E   N   D   L   O   O   P   ;  \r
0032220   \t           I   F       t   y   p   =   l   e   n   d       T
0032240    H   E   N       L   O   O   P   ;  \r  \t           I   F    
0032260    t   y   p   =   l   p   a   r       T   H   E   N  \r  \t    
0032300                B   E   G   I   N  \r  \t  \t   d   e   f   p   a
0032320    r   m   _   r   e   a   d   N   u   m   [   ]   ;  \r  \t  \t
0032340    c   h   e   c   k   F   o   r   C   h   r   [   '   )   ]   ;
0032360   \r  \t  \t   [   t   y   p   ,   ,   ]   _   s   c   a   n   [
0032400    ]   ;  \r  \t  \t   I   F       t   y   p   #   l   e   n   d
0032420        T   H   E   N       S   I   G   N   A   L       f   i   l
0032440    e   E   r   r   ;  \r  \t                   E   N   D  \r  \t
0032460            E   L   S   E       I   F       t   y   p   #   i   d
0032500    e   n   t       T   H   E   N       S   I   G   N   A   L    
0032520    f   i   l   e   E   r   r  \r  \t           E   L   S   E  \r
0032540   \t                   B   E   G   I   N  \r  \t  \t   p   a   r
0032560  376 001  \0 327 035   m   _   d   e   f   p   a   r   m   ;  \r
0032600   \t  \t   e   n   t   e   r   P   i   n   [   o   u   t   ,   s
0032620    ]   ;  \r  \t  \t   [   t   y   p   ,   ,   ]   _   s   c   a
0032640    n   [   ]   ;  \r  \t  \t   I   F       t   y   p   =   l   p
0032660    a   r       T   H   E   N  \r  \t  \t                   B   E
0032700    G   I   N  \r  \t  \t  \t   p   a   r   m   _   r   e   a   d
0032720    N   u   m   [   ]   ;  \r  \t  \t  \t   c   h   e   c   k   F
0032740    o   r   C   h   r   [   '   )   ]   ;  \r  \t  \t  \t   [   t
0032760    y   p   ,   ,   ]   _   s   c   a   n   [   ]   ;  \r  \t  \t
0033000                    E   N   D   ;  \r  \t  \t   I   F       t   y
0033020    p   #   c   o   l   o   n       T   H   E   N       S   I   G
0033040    N   A   L       f   i   l   e   E   r   r   ;  \r  \t  \t   I
0033060    F       N   O   T       p   a   r   m       I   N       p   a
0033100    r   m   a   C   n   t       T   H   E   N       S   I   G   N
0033120    A   L       f   i   l   e   E   r   r   ;  \r  \t  \t   n   o
0033140    r   C   n   t   _   0   ;  \r  \t  \t   D   O  \r  \t  \t    
0033160        [   t   y   p 376 001  \0   _   k   ,   s   ,   a   ]   _
0033200    s   c   a   n   [   ]   ;  \r  \t  \t           I   F       t
0033220    y   p   =   l   b   r   k       T   H   E   N  \r  \t  \t    
0033240                B   E   G   I   N  \r  \t  \t  \t   [   t   y   p
0033260    ,   s   ,   a   ]   _   s   c   a   n   [   ]   ;  \r  \t  \t
0033300   \t   I   F       t   y   p   #   i   d   e   n   t       T   H
0033320    E   N       S   I   G   N   A   L       f   i   l   e   E   r
0033340    r   ;  \r  \t  \t  \t   e   n   t   e   r   P   i   n   [   f
0033360    i   r   s   t   A   n   d   ,   s   ]   ;  \r  \t  \t  \t   n
0033400    o   r   C   n   t   _   n   o   r   C   n   t   +   1   ;  \r
0033420   \t  \t  \t   D   O  \r  \t  \t  \t           [   t   y   p   ,
0033440    s   ,   a   ]   _   s   c   a   n   [   ]   ;  \r  \t  \t  \t
0033460            I   F       t   y   p   =   r   b   r   k       T   H
0033500    E   N       E   X   I   T   ;  \r  \t  \t  \t           I   F
0033520        t   y   p   #   i   d   e   n   t       T   H   E   N    
0033540    S   I   G   N   A   L       f   i   l   e   E   r   r   ;  \r
0033560   \t  \t  \t           e   n   t   e   r 376 001  \0   Y 320   P
0033600    i   n   [   a   n   d   ,   s   ]   ;  \r  \t  \t  \t   E   N
0033620    D   L   O   O   P   ;  \r  \t  \t  \t   L   O   O   P   ;  \r
0033640   \t  \t                   E   N   D   ;  \r  \t  \t           I
0033660    F       t   y   p   =   l   e   n   d       T   H   E   N    
0033700    E   X   I   T   ;  \r  \t  \t           I   F       t   y   p
0033720    #   i   d   e   n   t       T   H   E   N       S   I   G   N
0033740    A   L       f   i   l   e   E   r   r   ;  \r  \t  \t        
0033760    n   o   r   C   n   t   _   n   o   r   C   n   t   +   1   ;
0034000   \r  \t  \t           e   n   t   e   r   P   i   n   [   n   o
0034020    r   ,   s   ]   ;  \r  \t  \t   E   N   D   L   O   O   P   ;
0034040   \r  \t  \t   g   c   _   G   e   t   S   p   a   c   e   [   S
0034060    I   Z   E   [   g   a   t   e   C   h   a   r   a   c   [   n
0034100    o   r   C   n   t   ]   ]   ]   ;  \r  \t  \t   g   c   .   n
0034120    o   r   C   n   t   _   n   o   r   C   n   t   ;  \r  \t  \t
0034140    i   n   C   n   t   _   i   _   0   ;  \r  \t  \t   p   n   p
0034160    _   p   i   n   s   ;  \r  \t  \t   W   H   I   L   E     376
0034200  001  \0   m 254   p   n   p   #   N   I   L       D   O  \r  \t
0034220   \t           S   E   L   E   C   T       p   n   p   .   t   y
0034240    p   e       F   R   O   M  \r  \t  \t  \t   o   u   t       =
0034260    >       {   p   n   p   _   p   n   p   .   n   x   t   ;   L
0034300    O   O   P   }   ;  \r  \t  \t  \t   n   o   r       =   >    
0034320    {   i   n   C   n   t   _   i   n   C   n   t   +   1   ;   g
0034340    c   .   a   n   d   s   [   i   ]   _   1   ;   i   _   i   +
0034360    1   ;   p   n   p   _   p   n   p   .   n   x   t   }   ;  \r
0034400   \t  \t  \t   f   i   r   s   t   A   n   d       =   >       B
0034420    E   G   I   N  \r  \t  \t  \t  \t   a   _   1   ;  \r  \t  \t
0034440   \t  \t   i   n   C   n   t   _   i   n   C   n   t   +   1   ;
0034460   \r  \t  \t  \t  \t   p   n   p   _   p   n   p   .   n   x   t
0034500    ;  \r  \t  \t  \t  \t   W   H   I   L   E       p   n   p   #
0034520    N   I   L       A   N   D       p   n   p   .   t   y   p   e
0034540    =   a   n   d       D   O  \r  \t  \t  \t  \t           a   _
0034560    a   +   1   ;  \r  \t  \t  \t  \t           i   n   C   n   t
0034600    _   i   n   C 376 001  \0 310 376   n   t   +   1   ;  \r  \t
0034620   \t  \t  \t           p   n   p   _   p   n   p   .   n   x   t
0034640    ;  \r  \t  \t  \t  \t   E   N   D   L   O   O   P   ;  \r  \t
0034660   \t  \t  \t   g   c   .   a   n   d   s   [   i   ]   _   a   ;
0034700   \r  \t  \t  \t  \t   i   _   i   +   1   ;  \r  \t  \t  \t    
0034720                E   N   D   ;  \r  \t  \t  \t   E   N   D   C   A
0034740    S   E   ;  \r  \t  \t   E   N   D   L   O   O   P   ;  \r  \t
0034760   \t   g   c   .   i   n   C   n   t   _   i   n   C   n   t   ;
0035000   \r  \t  \t   g   a   t   _   g   e   t   G   a   t   e   [   g
0035020    c   ,   p   a   r   m   ]   ;  \r  \t  \t   g   p   _   g   e
0035040    t   N   e   w   G   a   t   e   L   i   s   t   [   i   n   C
0035060    n   t   ]   ;  \r  \t  \t   i   _   0   ;  \r  \t  \t   p   n
0035100    p   _   p   i   n   s   ;  \r  \t  \t   a   _   p   n   p   .
0035120    n   o   d   e   ;  \r  \t  \t   m   a   x   N   N   _   M   A
0035140    X   [   m   a   x   N   N   ,   a   ]   ;  \r  \t  \t   g   p
0035160    .   o   u   t   N   o   d   e   _   a   ;  \r  \t  \t   p   n
0035200    p   _   p   n   p   .   n   x   t 376 001  \0   M 006   ;  \r
0035220   \t  \t   W   H   I   L   E       p   n   p   #   N   I   L    
0035240    D   O  \r  \t  \t           a   _   p   n   p   .   n   o   d
0035260    e   ;  \r  \t  \t           g   p   .   n   o   d   e   s   [
0035300    i   ]   _   a   ;  \r  \t  \t           m   a   x   N   N   _
0035320    M   A   X   [   m   a   x   N   N   ,   a   ]   ;  \r  \t  \t
0035340            i   _   i   +   1   ;  \r  \t  \t           p   n   p
0035360    _   p   n   p   .   n   x   t   ;  \r  \t  \t   E   N   D   L
0035400    O   O   P   ;  \r  \t  \t   d   w   C   n   t   _   d   w   C
0035420    n   t   +   i   n   C   n   t   +   1   ;  \r  \t  \t   g   p
0035440    .   g   a   t   _   g   a   t   ;  \r  \t  \t   g   p   .   n
0035460    x   t   _   N   I   L   ;  \r  \t  \t   I   F       p   n   t
0035500    =   N   I   L       T   H   E   N       p   n   t   _   g   p
0035520        E   L   S   E       m   o   s   t   R   e   c   e   n   t
0035540    .   n   x   t   _   g   p   ;  \r  \t  \t   m   o   s   t   R
0035560    e   c   e   n   t   _   g   p   ;  \r  \t  \t   f   r   e   e
0035600    u   p   P   i   n   s   [   ]   ;  \r  \t             376 001
0035620   \0 247 252       E   N   D   ;  \r  \t   E   N   D   L   O   O
0035640    P   ;  \r                   E   N   D   ;  \r   c   h   e   c
0035660    k   F   o   r   C   h   r   :   P   R   O   C   E   D   U   R
0035700    E   [   c   :   C   H   A   R   A   C   T   E   R   ]       =
0035720   \r                   B   E   G   I   N  \r  \t   c   h   r   :
0035740    C   H   A   R   A   C   T   E   R   ;  \r  \t   W   H   I   L
0035760    E       (   c   h   r   _   r   e   a   d   C   h   r   [   ]
0036000    )       =       '           O   R       c   h   r   =   '   ,
0036020        O   R       c   h   r   =   1   1   C       D   O       E
0036040    N   D   L   O   O   P   ;  \r  \t   I   F       c   h   r   #
0036060    c       T   H   E   N       S   I   G   N   A   L       f   i
0036100    l   e   E   r   r   ;  \r                   E   N   D   ;  \r
0036120    o   p   e   n   F   :   P   R   O   C   E   D   U   R   E    
0036140    [   f   n   a   m   e   :       S   T   R   I   N   G   ]  \r
0036160   \t   R   E   T   U   R   N   S       [   B   O   O   L   E   A
0036200    N   ]       =  \r                   B   E   G   I   N  \r  \t
0036220    I   F     376 001  \0   g 323   N   O   T       D   i   r   e
0036240    c   t   o   r   y   L   o   o   k   u   p   [   @   f   p   ,
0036260        f   n   a   m   e   ,       F   A   L   S   E   ]       T
0036300    H   E   N       R   E   T   U   R   N   [   F   A   L   S   E
0036320    ]   ;  \r  \t   f   H   a   n   d   l   e       _       N   e
0036340    w   B   y   t   e   S   t   r   e   a   m   [   f   n   a   m
0036360    e   ,       R   e   a   d   ]   ;  \r  \t   R   E   T   U   R
0036400    N   [   T   R   U   E   ]   ;  \r                   E   N   D
0036420    ;  \r   r   e   a   d   C   h   r   :   P   R   O   C   E   D
0036440    U   R   E       R   E   T   U   R   N   S   [   C   H   A   R
0036460    A   C   T   E   R   ]       =  \r                   B   E   G
0036500    I   N  \r  \t   c   :   C   H   A   R   A   C   T   E   R   _
0036520    t   e   r   m   C   h   a   r   ;  \r  \t   t   e   r   m   C
0036540    h   a   r   _   d   u   m   m   y   t   c   ;  \r  \t   I   F
0036560        c   #   d   u   m   m   y   t   c       T   H   E   N    
0036600    R   E   T   U   R   N   [   c   ]   ;  \r  \t   I   F       N
0036620    O   T       f   H   a   n   d 376 001  \0   H 210   l   e   .
0036640    e   n   d   o   f   [   f   H   a   n   d   l   e   ]       T
0036660    H   E   N       R   E   T   U   R   N   [   f   H   a   n   d
0036700    l   e   .   g   e   t   [   f   H   a   n   d   l   e   ]   ]
0036720    ;  \r  \t   R   E   T   U   R   N   [   1   5   C   ]   ;  \r
0036740                    E   N   D   ;  \r   r   e   a   d   N   u   m
0036760    :   P   R   O   C   E   D   U   R   E       R   E   T   U   R
0037000    N   S   [   i   :   I   N   T   E   G   E   R   ]       =  \r
0037020                    B   E   G   I   N  \r  \t   c   :   C   H   A
0037040    R   A   C   T   E   R   ;  \r  \t   i   _   0   ;  \r  \t   W
0037060    H   I   L   E       (   c   _   r   e   a   d   C   h   r   [
0037100    ]   )       =       '           O   R       c   =   '   ,    
0037120    O   R       c   =   1   1   C       D   O       E   N   D   L
0037140    O   O   P   ;  \r  \t   W   H   I   L   E       c       I   N
0037160        [   '   0   .   .   '   9   ]       D   O  \r  \t        
0037200    i   _   i   *   1   0   +   (   c   -   '   0   )   ;  \r  \t
0037220            c   _   r   e   a   d   C   h   r   [   ] 376 001  \0
0037240  361 305   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t   t
0037260    e   r   m   C   h   a   r   _   c   ;  \r                   E
0037300    N   D   ;  \r   s   c   a   n   :   P   R   O   C   E   D   U
0037320    R   E       R   E   T   U   R   N   S   [   t   :   i   t   e
0037340    m   T   y   p   e   ,   s   :   S   T   R   I   N   G   ,   i
0037360    :   I   N   T   E   G   E   R   ]       =  \r                
0037400    B   E   G   I   N  \r  \t   c   :   C   H   A   R   A   C   T
0037420    E   R   ;  \r  \t   s   s   :   S   T   R   I   N   G   _   [
0037440    1   0   0   ]   ;  \r  \t   i   _   0   ;  \r  \t   s   _   N
0037460    I   L   ;  \r  \t   W   H   I   L   E       (   c   _   r   e
0037500    a   d   C   h   r   [   ]   )       =       '           O   R
0037520        c   =   '   ,       O   R       c   =   1   1   C       D
0037540    O       E   N   D   L   O   O   P   ;  \r  \t   t   _   n   u
0037560    m   ;  \r  \t   I   F       N   O   T       (   c       I   N
0037600        [   '   0   .   .   '   9   ]       O   R       c       I
0037620    N       [   '   a   .   .   '   z   ]       O   R       c    
0037640    I   N 376 001  \0   '   >       [   '   A   .   .   '   Z   ]
0037660    )       T   H   E   N  \r  \t                   B   E   G   I
0037700    N  \r  \t  \t   S   E   L   E   C   T       c       F   R   O
0037720    M  \r  \t  \t  \t   '   ,   ,   '           =   >       t   _
0037740    s   e   p   ;  \r  \t  \t  \t   '   :       =   >       t   _
0037760    c   o   l   o   n   ;  \r  \t  \t  \t   1   5   C   ,   '   ;
0040000        =   >       t   _   l   e   n   d   ;  \r  \t  \t  \t   '
0040020    (       =   >       t   _   l   p   a   r   ;  \r  \t  \t  \t
0040040    '   [       =   >       t   _   l   b   r   k   ;  \r  \t  \t
0040060   \t   '   ]       =   >       t   _   r   b   r   k   ;  \r  \t
0040100   \t  \t   '   )       =   >       t   _   r   p   a   r   ;  \r
0040120   \t  \t  \t   '   @       =   >       t   _   f   e   n   d   ;
0040140   \r  \t  \t  \t   '   -       =   >       t   _   c   o   m   m
0040160    t   ;  \r  \t  \t   E   N   D   C   A   S   E       =   >    
0040200    S   I   G   N   A   L       f   i   l   e   E   r   r   ;  \r
0040220   \t  \t   R   E   T   U   R   N   ;  \r  \t                   E
0040240    N   D   ;  \r  \t   W   H 376 001  \0 336 031   I   L   E    
0040260    c       I   N       [   '   0   .   .   '   9   ]       O   R
0040300        c       I   N       [   '   a   .   .   '   z   ]       O
0040320    R       c       I   N       [   '   A   .   .   '   Z   ]    
0040340    D   O  \r  \t           I   F       t   =   n   u   m       T
0040360    H   E   N  \r  \t                   B   E   G   I   N  \r  \t
0040400   \t   I   F       c       I   N       [   '   0   .   .   '   9
0040420    ]       T   H   E   N       i   _   i   *   1   0   +   (   c
0040440    -   '   0   )  \r  \t  \t       E   L   S   E       t   _   i
0040460    d   e   n   t   ;  \r  \t                   E   N   D   ;  \r
0040500   \t           A   p   p   e   n   d   C   h   a   r   [   s   s
0040520    ,   c   ]   ;  \r  \t           c   _   r   e   a   d   C   h
0040540    r   [   ]   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t
0040560    s   _   n   e   w   S   t   r   i   n   g   [   s   s   ]   ;
0040600   \r  \t   t   e   r   m   C   h   a   r   _   c   ;  \r        
0040620            E   N   D   ;  \r   g   e   t   N   e   w   G   a   t
0040640    e   L   i   s   t   :   P   R   O   C   E   D 376 001  \0 260
0040660  300   U   R   E   [   c   n   t   :   I   N   T   E   G   E   R
0040700    ]       R   E   T   U   R   N   S   [   L   O   N   G       P
0040720    O   I   N   T   E   R       T   O       G   a   t   e   L   i
0040740    s   t   ]       =  \r                   B   E   G   I   N  \r
0040760   \t   R   E   T   U   R   N   [   m   y   Z   o   n   e   .   N
0041000    E   W   [   G   a   t   e   L   i   s   t   [   c   n   t   ]
0041020    ]   ]   ;  \r                   E   N   D   ;  \r  \r   e   n
0041040    t   e   r   P   i   n   :   P   R   O   C   E   D   U   R   E
0041060    [   t   y   p   :   p   i   n   T   y   p   e   ,   s   :   S
0041100    T   R   I   N   G   ]       =  \r                   B   E   G
0041120    I   N  \r  \t   p   :   L   O   N   G       P   O   I   N   T
0041140    E   R       T   O       p   i   n   D   e   f   ;  \r  \t   p
0041160    p   :   L   O   N   G       P   O   I   N   T   E   R       T
0041200    O       p   i   n   D   e   f   _   g   e   t   P   i   n   D
0041220    e   f   [   ]   ;  \r  \t   p   p   ^   _   [   N   I   L   ,
0041240    e   n   t   e   r   N   o   d   e   N   a   m   e   [   s   ]
0041260    , 376 001  \0  \n 025   t   y   p   ]   ;  \r  \t   I   F    
0041300    p   i   n   s   =   N   I   L       T   H   E   N       p   i
0041320    n   s   _   p   p  \r  \t       E   L   S   E  \r  \t        
0041340            B   E   G   I   N  \r  \t  \t   p   _   p   i   n   s
0041360    ;  \r  \t  \t   W   H   I   L   E       p   .   n   x   t   #
0041400    N   I   L       D   O       p   _   p   .   n   x   t   ;   E
0041420    N   D   L   O   O   P   ;  \r  \t  \t   p   .   n   x   t   _
0041440    p   p   ;  \r  \t                   E   N   D   ;  \r        
0041460            E   N   D   ;  \r   g   e   t   P   i   n   D   e   f
0041500    :   P   R   O   C   E   D   U   R   E       R   E   T   U   R
0041520    N   S   [   p   :   L   O   N   G       P   O   I   N   T   E
0041540    R       T   O       p   i   n   D   e   f   ]       =  \r    
0041560                B   E   G   I   N  \r  \t   I   F       s   a   v
0041600    e   P   D   =   N   I   L       T   H   E   N       R   E   T
0041620    U   R   N   [   m   y   Z   o   n   e   .   N   E   W   [   p
0041640    i   n   D   e   f   ]   ]   ;  \r  \t   p   _   s   a   v   e
0041660    P   D   ;  \r  \t   s 376 001  \0   & 213   a   v   e   P   D
0041700    _   p   .   n   x   t   ;  \r                   E   N   D   ;
0041720   \r   f   r   e   e   u   p   P   i   n   s   :   P   R   O   C
0041740    E   D   U   R   E       =  \r                   B   E   G   I
0041760    N  \r  \t   I   F       s   a   v   e   P   D   =   N   I   L
0042000        T   H   E   N       {   s   a   v   e   P   D   _   p   i
0042020    n   s   ;   p   i   n   s   _   N   I   L   ;   R   E   T   U
0042040    R   N   }   ;  \r  \t   p   n   p   _   s   a   v   e   P   D
0042060    ;  \r  \t   W   H   I   L   E       p   n   p   .   n   x   t
0042100    #   N   I   L       D   O       p   n   p   _   p   n   p   .
0042120    n   x   t   ;   E   N   D   L   O   O   P   ;  \r  \t   p   n
0042140    p   .   n   x   t   _   p   i   n   s   ;  \r  \t   p   i   n
0042160    s   _   N   I   L   ;  \r                   E   N   D   ;  \r
0042200    e   n   t   e   r   N   o   d   e   N   a   m   e   :   P   R
0042220    O   C   E   D   U   R   E   [   s   :   S   T   R   I   N   G
0042240    ]       R   E   T   U   R   N   S   [   I   N   T   E   G   E
0042260    R   ]       =  \r                   B   E 376 001  \0 352   x
0042300    G   I   N  \r  \t   n   :   I   N   T   E   G   E   R   _   0
0042320    ;  \r  \t   n   n   :   L   O   N   G       P   O   I   N   T
0042340    E   R       T   O       n   o   d   e   N   a   m   e   L   i
0042360    s   t   _   n   n   L   i   s   t   ;  \r  \t   W   H   I   L
0042400    E       n   n   #   N   I   L       D   O  \r  \t           I
0042420    F       E   q   u   i   v   a   l   e   n   t   S   t   r   i
0042440    n   g   [   s   ,   n   n   .   n   a   m   e   ]       T   H
0042460    E   N       R   E   T   U   R   N   [   n   n   .   n   o   d
0042500    e   ]   ;  \r  \t           n   _   M   A   X   [   n   ,   n
0042520    n   .   n   o   d   e   ]   ;  \r  \t           n   n   _   n
0042540    n   .   n   x   t   ;  \r  \t   E   N   D   L   O   O   P   ;
0042560   \r  \t   n   _   n   +   1   ;  \r  \t   n   n   _   m   y   Z
0042600    o   n   e   .   N   E   W   [   n   o   d   e   N   a   m   e
0042620    L   i   s   t   ]   ;  \r  \t   n   n   .   n   a   m   e   _
0042640    s   ;  \r  \t   n   n   .   n   o   d   e   _   n   ;  \r  \t
0042660    n   n   .   n   x   t   _   n   n   L   i   s   t   ;  \r  \t
0042700  376  \0   ;   V 230   n   n   L   i   s   t   _   n   n   ;  \r
0042720   \t   R   E   T   U   R   N   [   n   ]   ;  \r                
0042740    E   N   D   ;  \r  \r  \r  \r   E   N   D   .       -   -    
0042760    o   f       r   l   i   n  \r 032   (   1   7   9   2   )  \r
0043000  377  \0  \0   r   l   m   a   i   n   .   m   e   s   a  \0 373
0043020  233   i   Q      \0  \0 376 001  \0 220 024   -   -       a    
0043040    p   r   o   g   r   a   m       t   o       r   u   n       w
0043060    i   t   h   i   n       C   h   i   p   m   o   n   k  \r  \r
0043100    -   -       l   a   s   t       m   o   d   i   f   i   e   d
0043120        b   y       P   e   t   i   t   ,       O   c   t   o   b
0043140    e   r       ?   ,       1   9   8   1           2   :   2   0
0043160        P   M  \r   -   -       w   r   i   t   t   e   n       b
0043200    y       P   e   t   i   t   ,       O   c   t   o   b   e   r
0043220        9   ,       1   9   8   1           2   :   0   4       P
0043240    M  \r  \r   D   I   R   E   C   T   O   R   Y  \r           p
0043260    p   d   d   e   f   s   ,  \r           p   p   d   d   d   e
0043300    f   s   ,  \r           p   p   d   e   f   s   ,  \r        
0043320    r   l   d   e   f   s   ,  \r           Z   o   n   e   A   l
0043340    l   o   c   D   e   f   s   ,  \r           S   t   r   i   n
0043360    g   D   e   f   s   ;  \r  \r   r   l   m   a   i   n   :    
0043400    P   R   O   G   R   A   M  \r           I   M   P   O   R   T
0043420    S       p   p   d   d   e   f   s   ,     376 001  \0 236   G
0043440    p   p   d   e   f   s   ,       Z   o   n   e   A   l   l   o
0043460    c   D   e   f   s   ,       p   p   d   d   d   e   f   s   ,
0043500        r   l   d   e   f   s  \r       -   -   E   X   P   O   R
0043520    T   S       r   l   d   e   f   s   -   -       =  \r        
0043540    B   E   G   I   N       O   P   E   N       p   p   d   d   e
0043560    f   s   ,       r   l   d   e   f   s   ,       p   p   d   d
0043600    d   e   f   s   ,       p   p   d   e   f   s   ,       S   t
0043620    r   i   n   g   D   e   f   s   ;  \r  \r  \r                
0043640    d   o   w   n   W   i   r   e   A   r   r   a   y   :   T   Y
0043660    P   E       =       R   E   C   O   R   D   [   S   E   Q   U
0043700    E   N   C   E       C   O   M   P   U   T   E   D       C   A
0043720    R   D   I   N   A   L       O   F       d   o   w   n   W   i
0043740    r   e   R   e   c   ]   ;  \r           d   w   A   r   :   L
0043760    O   N   G       P   O   I   N   T   E   R       T   O       d
0044000    o   w   n   W   i   r   e   A   r   r   a   y   ;  \r        
0044020            n   o   d   e   A   r   r   a   y   :   T   Y   P   E
0044040  376 001  \0 200 345       =       R   E   C   O   R   D   [   S
0044060    E   Q   U   E   N   C   E       C   O   M   P   U   T   E   D
0044100        C   A   R   D   I   N   A   L       O   F       I   N   T
0044120    E   G   E   R   ]   ;  \r           n   o   d   e   A   r   :
0044140    L   O   N   G       P   O   I   N   T   E   R       T   O    
0044160    n   o   d   e   A   r   r   a   y   ;  \r                   h
0044200    o   r   L   i   n   e   A   r   r   a   y   :   T   Y   P   E
0044220        =       R   E   C   O   R   D   [   S   E   Q   U   E   N
0044240    C   E       C   O   M   P   U   T   E   D       C   A   R   D
0044260    I   N   A   L       O   F       h   L   i   n   e   R   e   c
0044300    ]   ;  \r           h   l   A   r   :   L   O   N   G       P
0044320    O   I   N   T   E   R       T   O       h   o   r   L   i   n
0044340    e   A   r   r   a   y   ;  \r  \r           h   L   e   v   :
0044360    I   N   T   E   G   E   R   ;  \r           d   o   w   n   W
0044400    i   r   e   C   n   t   ,   m   a   x   N   o   d   e   N   u
0044420    m   :   I   N   T   E   G   E   R   ;  \r           m   a   x
0044440    x   ,   m   a   x 376 001  \0 335   {   y   s   ,   m   i   n
0044460    y   s   :   I   N   T   E   G   E   R   _   0   ;  \r        
0044500    m   i   n   e   ,   l   l   :   L   O   N   G       P   O   I
0044520    N   T   E   R       T   O       l   i   s   t   ;  \r  \r  \r
0044540    d   o   S   w   i   t   c   h   :   P   R   O   C   E   D   U
0044560    R   E   [   i   ,   j   :   I   N   T   E   G   E   R   ]    
0044600    =  \r                   B   E   G   I   N  \r  \t   t   :   I
0044620    N   T   E   G   E   R   ;  \r  \t   t   _   d   w   A   r   [
0044640    i   ]   .   n   o   d   e   ;   d   w   A   r   [   i   ]   .
0044660    n   o   d   e   _   d   w   A   r   [   j   ]   .   n   o   d
0044700    e   ;   d   w   A   r   [   j   ]   .   n   o   d   e   _   t
0044720    ;  \r  \t   t   _   d   w   A   r   [   i   ]   .   d   w   L
0044740    e   f   t   ;   d   w   A   r   [   i   ]   .   d   w   L   e
0044760    f   t   _   d   w   A   r   [   j   ]   .   d   w   L   e   f
0045000    t   ;   d   w   A   r   [   j   ]   .   d   w   L   e   f   t
0045020    _   t   ;  \r  \t   t   _   d   w   A   r   [   i   ]   .   d
0045040    w   R   i   g   h   t   ;   d   w   A 376 001  \0 360 267   r
0045060    [   i   ]   .   d   w   R   i   g   h   t   _   d   w   A   r
0045100    [   j   ]   .   d   w   R   i   g   h   t   ;   d   w   A   r
0045120    [   j   ]   .   d   w   R   i   g   h   t   _   t   ;  \r  \t
0045140    I   F       (   t   _   d   w   A   r   [   i   ]   .   d   w
0045160    L   e   f   t   )   #   0       T   H   E   N       d   w   A
0045200    r   [   t   ]   .   d   w   R   i   g   h   t   _   i   ;  \r
0045220   \t   I   F       (   t   _   d   w   A   r   [   j   ]   .   d
0045240    w   L   e   f   t   )   #   0       T   H   E   N       d   w
0045260    A   r   [   t   ]   .   d   w   R   i   g   h   t   _   j   ;
0045300   \r  \t   I   F       (   t   _   d   w   A   r   [   i   ]   .
0045320    d   w   R   i   g   h   t   )   #   0       T   H   E   N    
0045340    d   w   A   r   [   t   ]   .   d   w   L   e   f   t   _   i
0045360    ;  \r  \t   I   F       (   t   _   d   w   A   r   [   j   ]
0045400    .   d   w   R   i   g   h   t   )   #   0       T   H   E   N
0045420        d   w   A   r   [   t   ]   .   d   w   L   e   f   t   _
0045440    j   ;  \r                   E   N   D   ;  \r   r   u   n 376
0045460  001  \0   g 301   L   e   n   g   t   h   :   P   R   O   C   E
0045500    D   U   R   E   [   i   :   I   N   T   E   G   E   R   ]    
0045520    R   E   T   U   R   N   S   [   I   N   T   E   G   E   R   ]
0045540        =  \r                   B   E   G   I   N  \r  \t   l   ,
0045560    r   :   I   N   T   E   G   E   R   ;  \r  \t   l   _   d   w
0045600    A   r   [   i   ]   .   d   w   L   e   f   t   ;  \r  \t   r
0045620    _   d   w   A   r   [   i   ]   .   d   w   R   i   g   h   t
0045640    ;  \r  \t   I   F       l   =   0       T   H   E   N       l
0045660    _   i       E   L   S   E  \r  \t       U   N   T   I   L    
0045700    d   w   A   r   [   l   ]   .   d   w   L   e   f   t   =   0
0045720        D   O       l   _   d   w   A   r   [   l   ]   .   d   w
0045740    L   e   f   t   ;   E   N   D   L   O   O   P   ;  \r  \t   I
0045760    F       r   =   0       T   H   E   N       r   _   i       E
0046000    L   S   E  \r  \t       U   N   T   I   L       d   w   A   r
0046020    [   r   ]   .   d   w   R   i   g   h   t   =   0       D   O
0046040        r   _   d   w   A   r   [   r   ]   .   d   w   R   i   g
0046060    h   t   ;   E 376 001  \0 250 237   N   D   L   O   O   P   ;
0046100   \r  \t   U   N   T   I   L       d   w   A   r   [   l   ]   .
0046120    f   i   x   e   d       O   R       d   w   A   r   [   l   ]
0046140    .   r   i   g   h   t   E   n   d   =   0       O   R       d
0046160    w   A   r   [   l   +   1   ]   .   f   i   x   e   d       D
0046200    O       l   _   l   +   1   ;   E   N   D   L   O   O   P   ;
0046220   \r  \t   U   N   T   I   L       d   w   A   r   [   r   ]   .
0046240    f   i   x   e   d       O   R       d   w   A   r   [   r   ]
0046260    .   l   e   f   t   E   n   d   =   0       O   R       d   w
0046300    A   r   [   r   -   1   ]   .   f   i   x   e   d       D   O
0046320        r   _   r   -   1   ;   E   N   D   L   O   O   P   ;  \r
0046340   \t   R   E   T   U   R   N   [   r   -   l   ]   ;  \r        
0046360            E   N   D   ;  \r  \r   m   o   v   e   D   o   w   n
0046400    :   P   R   O   C   E   D   U   R   E   [   c   u   r   ,   a
0046420    m   t   :   I   N   T   E   G   E   R   ]       R   E   T   U
0046440    R   N   S   [   I   N   T   E   G   E   R   ]       =  \r    
0046460                B   E   G   I   N  \r 376 001  \0 361   @  \t   t
0046500    :   I   N   T   E   G   E   R   ;  \r  \t   I   F       a   m
0046520    t   =   0       T   H   E   N  \r  \t                   B   E
0046540    G   I   N  \r  \t  \t   a   m   t   _   1   0   0   0   0   ;
0046560   \r  \t  \t   F   O   R       i   :   I   N   T   E   G   E   R
0046600        I   N       [   1   .   .   d   o   w   n   W   i   r   e
0046620    C   n   t   ]       D   O  \r  \t  \t           t   _   h   l
0046640    A   r   [   i   ]   .   d   i   s   t   a   n   c   e   ;  \r
0046660   \t  \t           I   F       t   >   =   0       A   N   D    
0046700    t   <   a   m   t       T   H   E   N       a   m   t   _   t
0046720    ;  \r  \t  \t   E   N   D   L   O   O   P   ;  \r  \t  \t   a
0046740    m   t   _   I   F       a   m   t   =   1   0   0   0   0    
0046760    T   H   E   N       1       E   L   S   E       a   m   t   +
0047000    1   ;  \r  \t                   E   N   D   ;  \r  \t   F   O
0047020    R       i   :   I   N   T   E   G   E   R       I   N       [
0047040    1   .   .   d   o   w   n   W   i   r   e   C   n   t   ]    
0047060    D   O  \r  \t           I   F       h   l   A   r   [ 376 001
0047100   \0 231   %   i   ]   .   b   t   y   p   =   n   o   n   e    
0047120    T   H   E   N       L   O   O   P   ;  \r  \t           t   _
0047140    h   l   A   r   [   i   ]   .   d   i   s   t   a   n   c   e
0047160    ;  \r  \t           t   _   t   -   a   m   t   ;  \r  \t    
0047200        I   F       t   <   -   3       T   H   E   N       h   l
0047220    A   r   [   i   ]   _   [   n   o   n   e   ,   -   5   ]  \r
0047240   \t               E   L   S   E       h   l   A   r   [   i   ]
0047260    .   d   i   s   t   a   n   c   e   _   t   ;  \r  \t   E   N
0047300    D   L   O   O   P   ;  \r  \t   R   E   T   U   R   N   [   c
0047320    u   r   +   a   m   t   ]   ;  \r                   E   N   D
0047340    ;  \r  \r   f   i   n   d   G   a   p   :   P   R   O   C   E
0047360    D   U   R   E   [   s   t   r   t   :   I   N   T   E   G   E
0047400    R   ]       R   E   T   U   R   N   S   [   o   k   :   B   O
0047420    O   L   E   A   N   ,   l   e   ,   r   e   :   I   N   T   E
0047440    G   E   R   ]       =  \r                   B   E   G   I   N
0047460   \r  \t   o   k   _   T   R   U   E   ;  \r  \t   U   N   T   I
0047500    L       s 376 001  \0 355   i   t   r   t   >   d   o   w   n
0047520    W   i   r   e   C   n   t       O   R       h   l   A   r   [
0047540    s   t   r   t   ]   .   d   i   s   t   a   n   c   e   <   0
0047560        D   O  \r  \t  \t   s   t   r   t   _   s   t   r   t   +
0047600    1   ;   E   N   D   L   O   O   P   ;  \r  \t   l   e   _   r
0047620    e   _   s   t   r   t   ;  \r  \t   I   F       s   t   r   t
0047640    >   d   o   w   n   W   i   r   e   C   n   t       T   H   E
0047660    N       B   E   G   I   N       o   k   _   F   A   L   S   E
0047700    ;   R   E   T   U   R   N   ;   E   N   D   ;  \r  \t   U   N
0047720    T   I   L       s   t   r   t   >   d   o   w   n   W   i   r
0047740    e   C   n   t       O   R       h   l   A   r   [   s   t   r
0047760    t   ]   .   d   i   s   t   a   n   c   e   >   =   0       D
0050000    O  \r  \t  \t   s   t   r   t   _   s   t   r   t   +   1   ;
0050020    E   N   D   L   O   O   P   ;  \r  \t   r   e   _   s   t   r
0050040    t   -   1   ;  \r                   E   N   D   ;  \r  \r   w
0050060    i   r   e   O   n   e   :   P   R   O   C   E   D   U   R   E
0050100    [   l   e   ,   r   e   :   I 376 001  \0   7 333   N   T   E
0050120    G   E   R   ]       R   E   T   U   R   N   S   [   g   o   t
0050140    O   n   e   ,   a   l   l   D   o   n   e   :   B   O   O   L
0050160    E   A   N   ]       =  \r                   B   E   G   I   N
0050200   \r  \t   i   ,   f   a   v   ,   l   e   n   ,   t   ,   r   e
0050220    l   L   e   v   ,   r   r   :   I   N   T   E   G   E   R   ;
0050240   \r  \t   p   o   l   y   W   i   r   e   :   B   O   O   L   E
0050260    A   N   _   F   A   L   S   E   ;  \r  \t   f   a   v   P   o
0050300    l   y   ,   t   b   ,   w   r   b   l   :   B   O   O   L   E
0050320    A   N   ;  \r  \t   g   o   t   O   n   e   _   F   A   L   S
0050340    E   ;  \r  \t   a   l   l   D   o   n   e   _   T   R   U   E
0050360    ;  \r  \t   F   O   R       i       I   N       [   1   .   .
0050400    d   o   w   n   W   i   r   e   C   n   t   ]       D   O  \r
0050420   \t           I   F       N   O   T       (   d   w   A   r   [
0050440    i   ]   .   w   i   r   e   d   L   e   f   t       A   N   D
0050460        d   w   A   r   [   i   ]   .   w   i   r   e   d   R   i
0050500    g   h   t   )  \r  \t  \t   T   H   E   N       a 376 001  \0
0050520   \b   {   l   l   D   o   n   e   _   F   A   L   S   E   ;  \r
0050540   \t           [   w   r   b   l   ,   t   b   ,   t   ]   _   w
0050560    i   r   e   a   b   l   e   [   i   ,   l   e   ,   r   e   ]
0050600    ;  \r  \t           I   F       w   r   b   l       A   N   D
0050620        t   >   0       T   H   E   N  \r  \t                   B
0050640    E   G   I   N  \r  \t  \t   I   F       g   o   t   O   n   e
0050660        T   H   E   N  \r  \t  \t                   B   E   G   I
0050700    N  \r  \t  \t  \t   I   F       t   <   l   e   n       T   H
0050720    E   N       {   f   a   v   _   i   ;   l   e   n   _   t   ;
0050740    f   a   v   P   o   l   y   _   t   b   }   ;  \r  \t  \t    
0050760                E   N   D  \r  \t  \t       E   L   S   E  \r  \t
0051000   \t                   B   E   G   I   N  \r  \t  \t  \t   f   a
0051020    v   _   i   ;  \r  \t  \t  \t   l   e   n   _   t   ;  \r  \t
0051040   \t  \t   f   a   v   P   o   l   y   _   t   b   ;  \r  \t  \t
0051060   \t   g   o   t   O   n   e   _   T   R   U   E   ;  \r  \t  \t
0051100                    E   N   D   ;  \r  \t                   E   N
0051120    D   ; 376 001  \0 254 314  \r  \t   E   N   D   L   O   O   P
0051140    ;  \r  \t   I   F       N   O   T       g   o   t   O   n   e
0051160        T   H   E   N  \r  \t                   B   E   G   I   N
0051200   \r  \t  \t   I   F       l   e   <   =   1       A   N   D    
0051220    r   e   >   =   d   o   w   n   W   i   r   e   C   n   t    
0051240    T   H   E   N       a   l   l   D   o   n   e   _   T   R   U
0051260    E   ;  \r  \t  \t   R   E   T   U   R   N   ;  \r  \t        
0051300            E   N   D   ;  \r  \t   i   _   f   i   n   a   l   D
0051320    W   [   f   a   v   ]   ;  \r  \t   r   r   _   i   +   l   e
0051340    n   ;  \r  \t   p   o   l   y   W   i   r   e   _   f   a   v
0051360    P   o   l   y   ;  \r  \t   I   F       i   #   f   a   v    
0051400    T   H   E   N       d   o   S   w   i   t   c   h   [   i   ,
0051420    f   a   v   ]   ;  \r  \t   I   F       p   o   l   y   W   i
0051440    r   e       A   N   D       d   w   A   r   [   r   r   ]   .
0051460    t   o   p   W   i   r   e   a   b   l   e       T   H   E   N
0051500        -   -       a   s   s   u   m   e   s       i       i   s
0051520        o   u   t   p   u   t 376 001  \0 215 024  \r  \t        
0051540            B   E   G   I   N  \r  \t  \t   t   _   d   w   A   r
0051560    [   i   ]   .   d   w   R   i   g   h   t   ;  \r  \t  \t   d
0051600    o   T   o   p   W   i   r   e   s   [   i   ,   r   r   ]   ;
0051620   \r  \t  \t   d   w   A   r   [   r   r   ]   .   w   i   r   e
0051640    d   L   e   f   t   _   d   w   A   r   [   r   r   ]   .   w
0051660    i   r   e   d   R   i   g   h   t   _   d   w   A   r   [   r
0051700    r   ]   .   f   i   x   e   d   _   T   R   U   E   ;  \r  \t
0051720   \t   d   w   A   r   [   i   ]   .   w   i   r   e   d   L   e
0051740    f   t   _   d   w   A   r   [   i   ]   .   w   i   r   e   d
0051760    R   i   g   h   t   _   d   w   A   r   [   i   ]   .   f   i
0052000    x   e   d   _   T   R   U   E   ;  \r  \t  \t   I   F       d
0052020    w   A   r   [   i   ]   .   d   w   L   e   f   t   =   0    
0052040    A   N   D       d   w   A   r   [   r   r   ]   .   d   w   R
0052060    i   g   h   t   =   0       T   H   E   N       R   E   T   U
0052100    R   N   ;  \r  \t  \t   d   w   A   r   [   r   r   ]   .   w
0052120    i   r   e   d   L   e   f   t   _   d   w   A 376 001  \0 336
0052140  227   r   [   r   r   ]   .   w   i   r   e   d   R   i   g   h
0052160    t   _   F   A   L   S   E   ;  \r  \t  \t   t   _   d   w   A
0052200    r   [   i   ]   .   d   w   L   e   f   t   ;  \r  \t  \t   d
0052220    w   A   r   [   r   r   ]   .   d   w   L   e   f   t   _   t
0052240    ;  \r  \t  \t   I   F       t   #   0       T   H   E   N    
0052260    d   w   A   r   [   t   ]   .   d   w   R   i   g   h   t   _
0052300    r   r   ;  \r  \t  \t   R   E   T   U   R   N   ;  \r  \t    
0052320                E   N   D   ;  \r  \t   r   e   l   L   e   v   _
0052340    0   ;  \r  \t   F   O   R       t       I   N       [   i   .
0052360    .   r   r   ]       D   O  \r  \t           S   E   L   E   C
0052400    T       h   l   A   r   [   t   ]   .   b   t   y   p       F
0052420    R   O   M  \r  \t  \t   m   e   t       =   >       I   F    
0052440    p   o   l   y   W   i   r   e       T   H   E   N       r   e
0052460    l   L   e   v   _   M   A   X   [   r   e   l   L   e   v   ,
0052500    h   l   A   r   [   t   ]   .   d   i   s   t   a   n   c   e
0052520    +   2   ]  \r  \t  \t  \t   E   L   S   E       r   e   l   L
0052540    e 376 001  \0 034   s   v   _   M   A   X   [   r   e   l   L
0052560    e   v   ,   h   l   A   r   [   t   ]   .   d   i   s   t   a
0052600    n   c   e   +   3   ]   ;  \r  \t  \t   p   o   l   y       =
0052620    >       r   e   l   L   e   v   _   M   A   X   [   r   e   l
0052640    L   e   v   ,   h   l   A   r   [   t   ]   .   d   i   s   t
0052660    a   n   c   e   +   2   ]   ;  \r  \t  \t   c   e   l   l    
0052700    =   >       I   F       N   O   T       p   o   l   y   W   i
0052720    r   e       T   H   E   N  \r  \t  \t  \t   r   e   l   L   e
0052740    v   _   M   A   X   [   r   e   l   L   e   v   ,   h   l   A
0052760    r   [   t   ]   .   d   i   s   t   a   n   c   e   +   3   ]
0053000    ;  \r  \t           E   N   D   C   A   S   E   ;  \r  \t   E
0053020    N   D   L   O   O   P   ;  \r  \t   t   _   i   ;  \r  \t   U
0053040    N   T   I   L       t   =   0       D   O  \r  \t           r
0053060    r   _   f   i   n   a   l   D   W   [   t   ]   ;  \r  \t    
0053100        I   F       t   #   r   r       T   H   E   N       d   o
0053120    S   w   i   t   c   h   [   t   ,   r   r   ]   ;  \r  \t    
0053140        d   o   D   o   w 376 001  \0   t 312   n   W   i   r   e
0053160    [   r   r   ,   r   e   l   L   e   v   ,   (   N   O   T    
0053200    p   o   l   y   W   i   r   e   )   ]   ;  \r  \t           d
0053220    w   A   r   [   r   r   ]   .   w   i   r   e   d   L   e   f
0053240    t   _   d   w   A   r   [   r   r   ]   .   w   i   r   e   d
0053260    R   i   g   h   t   _   d   w   A   r   [   r   r   ]   .   f
0053300    i   x   e   d   _   T   R   U   E   ;  \r  \t           I   F
0053320        p   o   l   y   W   i   r   e       A   N   D       t   #
0053340    i       T   H   E   N       E   X   I   T   ;  \r  \t        
0053360    t   _   d   w   A   r   [   r   r   ]   .   d   w   R   i   g
0053400    h   t   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t   d
0053420    o   H   W   i   r   e   [   i   ,   r   r   ,   r   e   l   L
0053440    e   v   ,   p   o   l   y   W   i   r   e   ]   ;  \r  \t   I
0053460    F       p   o   l   y   W   i   r   e       T   H   E   N  \r
0053500   \t                   B   E   G   I   N  \r  \t  \t   I   F    
0053520    d   w   A   r   [   i   ]   .   d   w   L   e   f   t   =   0
0053540        A   N   D       d   w   A   r   [   r 376 001  \0   o 260
0053560    r   ]   .   d   w   R   i   g   h   t   =   0       T   H   E
0053600    N       R   E   T   U   R   N   ;  \r  \t  \t   I   F       d
0053620    w   A   r   [   r   r   ]   .   d   w   R   i   g   h   t   #
0053640    0       O   R       d   w   A   r   [   r   r   ]   .   l   e
0053660    f   t   E   n   d   #   0       T   H   E   N  \r  \t  \t    
0053700                B   E   G   I   N  \r  \t  \t  \t   d   w   A   r
0053720    [   r   r   ]   .   w   i   r   e   d   L   e   f   t   _   d
0053740    w   A   r   [   r   r   ]   .   w   i   r   e   d   R   i   g
0053760    h   t   _   F   A   L   S   E   ;  \r  \t  \t  \t   t   _   d
0054000    w   A   r   [   i   ]   .   d   w   L   e   f   t   ;  \r  \t
0054020   \t  \t   d   w   A   r   [   r   r   ]   .   d   w   L   e   f
0054040    t   _   t   ;  \r  \t  \t  \t   I   F       t   #   0       T
0054060    H   E   N       d   w   A   r   [   t   ]   .   d   w   R   i
0054100    g   h   t   _   r   r   ;  \r  \t  \t  \t   I   F       d   w
0054120    A   r   [   r   r   ]   .   l   e   f   t   E   n   d   #   0
0054140        T   H   E   N       d   w   A   r   [   r   r   ]   .   x
0054160  376 001  \0 326 213   _   d   w   A   r   [   r   r   ]   .   x
0054200    -   4   ;  \r  \t  \t                   E   N   D  \r  \t  \t
0054220        E   L   S   E  \r  \t  \t                   B   E   G   I
0054240    N  \r  \t  \t  \t   d   w   A   r   [   i   ]   .   w   i   r
0054260    e   d   L   e   f   t   _   d   w   A   r   [   i   ]   .   w
0054300    i   r   e   d   R   i   g   h   t   _   F   A   L   S   E   ;
0054320   \r  \t  \t  \t   d   w   A   r   [   i   ]   .   d   w   R   i
0054340    g   h   t   _   0   ;  \r  \t  \t                   E   N   D
0054360    ;  \r  \t                   E   N   D   ;  \r                
0054400    E   N   D   ;  \r   w   i   r   e   a   b   l   e   :   P   R
0054420    O   C   E   D   U   R   E   [   i   ,   l   e   ,   r   e   :
0054440    I   N   T   E   G   E   R   ]       R   E   T   U   R   N   S
0054460    [   B   O   O   L   E   A   N   ,   B   O   O   L   E   A   N
0054500    ,   I   N   T   E   G   E   R   ]       =  \r                
0054520    B   E   G   I   N  \r  \t   j   :   I   N   T   E   G   E   R
0054540    _   i   ;  \r  \t   I   F       d   w   A   r   [   i   ]   .
0054560    w   i   r   e   d 376 001  \0 023 360   R   i   g   h   t    
0054600    A   N   D       d   w   A   r   [   i   ]   .   w   i   r   e
0054620    d   L   e   f   t       T   H   E   N  \r  \t  \t   R   E   T
0054640    U   R   N   [   F   A   L   S   E   ,   F   A   L   S   E   ,
0054660    0   ]   ;  \r  \t   I   F       d   w   A   r   [   i   ]   .
0054700    d   w   R   i   g   h   t   =   i   +   1       T   H   E   N
0054720   \r  \t                   B   E   G   I   N  \r  \t  \t   I   F
0054740        i   +   1   >   r   e       O   R       i   <   l   e    
0054760    T   H   E   N       R   E   T   U   R   N   [   F   A   L   S
0055000    E   ,   F   A   L   S   E   ,   0   ]   ;  \r  \t  \t   R   E
0055020    T   U   R   N   [   T   R   U   E   ,   T   R   U   E   ,   1
0055040    ]   ;  \r  \t                   E   N   D   ;  \r  \t   I   F
0055060        d   w   A   r   [   i   ]   .   d   w   L   e   f   t   #
0055100    0       O   R       i   +   d   w   A   r   [   i   ]   .   r
0055120    i   g   h   t   E   n   d   <   l   e       T   H   E   N  \r
0055140   \t  \t   R   E   T   U   R   N   [   F   A   L   S   E   ,   F
0055160    A   L   S   E   ,   0   ]   ;  \r  \t 376 001  \0 362 210   I
0055200    F       i   -   d   w   A   r   [   i   ]   .   l   e   f   t
0055220    E   n   d   >   r   e       T   H   E   N       R   E   T   U
0055240    R   N   [   F   A   L   S   E   ,   F   A   L   S   E   ,   0
0055260    ]   ;  \r  \t   W   H   I   L   E       d   w   A   r   [   j
0055300    ]   .   d   w   R   i   g   h   t   #   0       D   O       j
0055320    _   d   w   A   r   [   j   ]   .   d   w   R   i   g   h   t
0055340    ;   E   N   D   L   O   O   P   ;  \r  \t   U   N   T   I   L
0055360        d   w   A   r   [   i   ]   .   f   i   x   e   d       O
0055400    R       d   w   A   r   [   i   ]   .   r   i   g   h   t   E
0055420    n   d   =   0       O   R       d   w   A   r   [   i   +   1
0055440    ]   .   f   i   x   e   d       D   O  \r  \t  \t   i   _   i
0055460    +   1   ;   E   N   D   L   O   O   P   ;  \r  \t   U   N   T
0055500    I   L       d   w   A   r   [   j   ]   .   f   i   x   e   d
0055520        O   R       d   w   A   r   [   j   ]   .   l   e   f   t
0055540    E   n   d   =   0       O   R       d   w   A   r   [   j   -
0055560    1   ]   .   f   i   x   e   d       D   O  \r  \t  \t   j 376
0055600  001  \0 035 273   _   j   -   1   ;   E   N   D   L   O   O   P
0055620    ;  \r  \t   I   F       i   <   l   e       O   R       j   >
0055640    r   e       T   H   E   N       R   E   T   U   R   N   [   F
0055660    A   L   S   E   ,   F   A   L   S   E   ,   0   ]   ;  \r  \t
0055700    R   E   T   U   R   N   [   T   R   U   E   ,   F   A   L   S
0055720    E   ,   r   u   n   L   e   n   g   t   h   [   i   ]   ]   ;
0055740   \r                   E   N   D   ;  \r   d   o   D   o   w   n
0055760    W   i   r   e   :   P   R   O   C   E   D   U   R   E   [   d
0056000    w   ,   l   e   v   :   I   N   T   E   G   E   R   ,   c   o
0056020    n   t   :   B   O   O   L   E   A   N   ]       =  \r        
0056040            B   E   G   I   N  \r  \t   c   o   f   f   :   I   N
0056060    T   E   G   E   R   _   2   ;  \r  \t   l   e   v   _   (   l
0056100    e   v   +   h   L   e   v   )   *   2   ;  \r  \t   l   l   _
0056120    m   a   k   e   L   i   s   t   [   m   a   k   e   W   i   r
0056140    e   [   l   e   v   -   d   w   A   r   [   d   w   ]   .   y
0056160    +   4   ,   4   ,   p   o   l   ]  \r  \t  \t   ,   d   w   A
0056200    r   [   d   w 376 001  \0 271   m   ]   .   x   -   2   ,   d
0056220    w   A   r   [   d   w   ]   .   y   ,   0   ,   0   ]   ;  \r
0056240   \t   m   i   n   e   _   i   n   s   e   r   t   L   i   s   t
0056260    [   m   i   n   e   ,   l   l   ]   ;  \r  \t   m   a   x   x
0056300    _   M   A   X   [   m   a   x   x   ,   d   w   A   r   [   d
0056320    w   ]   .   x   +   2   ]   ;  \r  \t   I   F       c   o   n
0056340    t       T   H   E   N  \r  \t                   B   E   G   I
0056360    N  \r  \t  \t   I   F       d   w   A   r   [   d   w   ]   .
0056400    d   w   R   i   g   h   t   =   0  \r  \t  \t       O   R    
0056420    (   d   w   A   r   [   d   w   ]   .   d   w   L   e   f   t
0056440    #   0       A   N   D       d   w   A   r   [   d   w   ]   .
0056460    r   i   g   h   t   E   n   d   >   0  \r  \t  \t  \t   A   N
0056500    D       N   O   T       d   w   A   r   [   d   w   +   1   ]
0056520    .   f   i   x   e   d   )  \r  \t  \t       O   R       (   d
0056540    w   A   r   [   d   w   ]   .   a   n   d   C   n   t   =   1
0056560        A   N   D       d   w   <   d   o   w   n   W   i   r   e
0056600    C   n   t       A   N   D  \r  \t 376 001  \0   | 362  \t  \t
0056620    d   w   A   r   [   d   w   +   1   ]   .   x   -   d   w   A
0056640    r   [   d   w   ]   .   x   <   1   2   )       T   H   E   N
0056660        c   o   f   f   _   6   ;  \r  \t  \t   I   F       d   w
0056700    A   r   [   d   w   ]   .   a   n   d   C   n   t   =   1    
0056720    A   N   D       d   w   >   1       A   N   D  \r  \t  \t  \t
0056740    d   w   A   r   [   d   w   ]   .   x   -   d   w   A   r   [
0056760    d   w   -   1   ]   .   x   <   1   2       T   H   E   N    
0057000    c   o   f   f   _   2   ;  \r  \t  \t   l   l   _   m   a   k
0057020    e   L   i   s   t   [   m   a   k   e   P   o   l   y   c   o
0057040    n   [   8   ]   ,   d   w   A   r   [   d   w   ]   .   x   -
0057060    c   o   f   f   ,   l   e   v   ,   0   ,   0   ]   ;  \r  \t
0057100   \t   m   i   n   e   _   i   n   s   e   r   t   L   i   s   t
0057120    [   m   i   n   e   ,   l   l   ]   ;  \r  \t                
0057140    E   N   D   ;  \r                   E   N   D   ;  \r   d   o
0057160    H   W   i   r   e   :   P   R   O   C   E   D   U   R   E   [
0057200    l   ,   r   ,   l   e   v   :   I   N   T   E   G   E 376 001
0057220   \0 307 343   R   ,   p   o   l   y   :   B   O   O   L   E   A
0057240    N   ]       =  \r                   B   E   G   I   N  \r  \t
0057260    l   v   :   I   N   T   E   G   E   R   _   (   l   e   v   +
0057300    h   L   e   v   )   *   2   ;  \r  \t   l   l   _   m   a   k
0057320    e   L   i   s   t   [   m   a   k   e   W   i   r   e   [   d
0057340    w   A   r   [   r   ]   .   x   -   d   w   A   r   [   l   ]
0057360    .   x   ,   I   F       p   o   l   y       T   H   E   N    
0057400    4       E   L   S   E       6   ,  \r  \t  \t   I   F       p
0057420    o   l   y       T   H   E   N       p   o   l       E   L   S
0057440    E       m   e   t   ]   ,   d   w   A   r   [   l   ]   .   x
0057460    ,   l   v   ,   2   ,   0   ]   ;  \r  \t   m   i   n   e   _
0057500    i   n   s   e   r   t   L   i   s   t   [   m   i   n   e   ,
0057520    l   l   ]   ;  \r  \t   F   O   R       i   :   I   N   T   E
0057540    G   E   R       I   N       [   l   .   .   r   ]       D   O
0057560   \r  \t           h   l   A   r   [   i   ]   _   I   F       p
0057600    o   l   y       T   H   E   N       [   p   o   l   y   ,   l
0057620    e   v   + 376 001  \0 214   k   2   ]       E   L   S   E    
0057640    [   m   e   t   ,   l   e   v   +   4   ]   ;  \r  \t   E   N
0057660    D   L   O   O   P   ;  \r  \t   m   a   x   y   s   _   M   A
0057700    X   [   m   a   x   y   s   ,   l   v   +   (   I   F       p
0057720    o   l   y       T   H   E   N       4       E   L   S   E    
0057740    8   )   ]   ;  \r                   E   N   D   ;  \r   d   o
0057760    T   o   p   W   i   r   e   s   :   P   R   O   C   E   D   U
0060000    R   E   [   l   ,   r   :   I   N   T   E   G   E   R   ]    
0060020    =  \r                   B   E   G   I   N  \r  \t   l   l   _
0060040    m   a   k   e   L   i   s   t   [   m   a   k   e   W   i   r
0060060    e   [   A   B   S   [   d   w   A   r   [   r   ]   .   t   y
0060100    -   d   w   A   r   [   l   ]   .   y   ]   ,   4   ,   p   o
0060120    l   ]   ,   d   w   A   r   [   l   ]   .   x   -   2   ,  \r
0060140   \t  \t   M   I   N   [   d   w   A   r   [   r   ]   .   t   y
0060160    ,   d   w   A   r   [   l   ]   .   y   ]   ,   0   ,   0   ]
0060200    ;  \r  \t   m   i   n   e   _   i   n   s   e   r   t   L   i
0060220    s   t   [   m   i   n   e   , 376 001  \0 244 215   l   l   ]
0060240    ;  \r  \t   l   l   _   m   a   k   e   L   i   s   t   [   m
0060260    a   k   e   W   i   r   e   [   d   w   A   r   [   r   ]   .
0060300    t   x   -   d   w   A   r   [   l   ]   .   x   +   2   ,   4
0060320    ,   p   o   l   ]  \r  \t  \t   ,   d   w   A   r   [   l   ]
0060340    .   x   ,   M   A   X   [   d   w   A   r   [   r   ]   .   t
0060360    y   ,   d   w   A   r   [   l   ]   .   y   ]   -   4   ,   2
0060400    ,   0   ]   ;  \r  \t   m   i   n   e   _   i   n   s   e   r
0060420    t   L   i   s   t   [   m   i   n   e   ,   l   l   ]   ;  \r
0060440                    E   N   D   ;  \r   f   i   n   a   l   D   W
0060460    :   P   R   O   C   E   D   U   R   E   [   i   :   I   N   T
0060500    E   G   E   R   ]       R   E   T   U   R   N   S   [   I   N
0060520    T   E   G   E   R   ]       =  \r                   B   E   G
0060540    I   N  \r  \t   I   F       d   w   A   r   [   i   ]   .   f
0060560    i   x   e   d       T   H   E   N       R   E   T   U   R   N
0060600    [   i   ]   ;  \r  \t   I   F       d   w   A   r   [   i   ]
0060620    .   d   w   L   e   f   t   =   0       T   H   E 376 001  \0
0060640    F   A   N       {   U   N   T   I   L       d   w   A   r   [
0060660    i   ]   .   f   i   x   e   d       O   R  \r  \t  \t   d   w
0060700    A   r   [   i   ]   .   r   i   g   h   t   E   n   d   =   0
0060720        O   R       d   w   A   r   [   i   +   1   ]   .   f   i
0060740    x   e   d       D   O       i   _   i   +   1   ;   E   N   D
0060760    L   O   O   P   ;   R   E   T   U   R   N   [   i   ]   ;   }
0061000    ;  \r  \t   U   N   T   I   L       d   w   A   r   [   i   ]
0061020    .   f   i   x   e   d       O   R       d   w   A   r   [   i
0061040    ]   .   l   e   f   t   E   n   d   =   0       O   R       d
0061060    w   A   r   [   i   -   1   ]   .   f   i   x   e   d       D
0061100    O       i   _   i   -   1   ;   E   N   D   L   O   O   P   ;
0061120   \r  \t   R   E   T   U   R   N   [   i   ]   ;  \r            
0061140        E   N   D   ;  \r  \r   c   o   n   v   :   P   R   O   C
0061160    E   D   U   R   E   [   s   :   S   T   R   I   N   G   ]    
0061200    R   E   T   U   R   N   S   [   i   :   I   N   T   E   G   E
0061220    R   ]       =  \r                   B   E   G   I   N  \r  \t
0061240    i   _ 376 001  \0 254 244   0   ;  \r  \t   F   O   R       j
0061260    :   C   A   R   D   I   N   A   L       I   N       [   0   .
0061300    .   s   .   l   e   n   g   t   h   )       D   O  \r  \t    
0061320        I   F       N   O   T       s   [   j   ]       I   N    
0061340    [   '   0   .   .   '   9   ]       T   H   E   N       {   I
0061360    F       s   [   j   ]   #   1   5   C       A   N   D       s
0061400    [   j   ]   #   3   3   C       T   H   E   N  \r  \t  \t   i
0061420    _   -   1   ;   E   X   I   T   ;   }   ;  \r  \t           i
0061440    _   i   *   1   0   +   (   s   [   j   ]   -   '   0   )   ;
0061460   \r  \t   E   N   D   L   O   O   P   ;  \r                   E
0061500    N   D   ;  \r  \r  \r   -   -       M       a       i       n
0061520                P       r       o       g       r       a       m
0061540   \r  \r           m   y   Z   o   n   e       _       Z   o   n
0061560    e   A   l   l   o   c   D   e   f   s   .   G   e   t   A   n
0061600    X   M   Z   o   n   e   [   ]   ;  \r  \r           B   E   G
0061620    I   N  \r           E   N   A   B   L   E       B   E   G   I
0061640    N       f   i   l   e   E 376 001  \0   I 302   r   r       =
0061660    >       G   O   T   O       f   l   e   r   ;   a   b   b   r
0061700    t       =   >       G   O   T   O       a   b   o   r   t   s
0061720    ;   E   N   D   ;           -   -       f   o   r       e   x
0061740    i   t   s  \r  \r           o   k   ,   a   l   l   D   o   n
0061760    e   ,   d   i   d   O   n   e   ,   t   w   :   B   O   O   L
0062000    E   A   N   ;  \r           i   ,   j   ,   k   ,   a   C   n
0062020    t   ,   a   i   :   I   N   T   E   G   E   R   ;  \r        
0062040    l   e   ,   r   e   :   I   N   T   E   G   E   R   ;  \r    
0062060        g   p   ,   t   g   p   :   L   O   N   G       P   O   I
0062100    N   T   E   R       T   O       G   a   t   e   L   i   s   t
0062120    ;  \r           x   x   ,   y   y   :   l   o   c   N   u   m
0062140    _   0   ;  \r  \r           m   i   n   e   _   N   I   L   ;
0062160   \r  \r           [   g   p   ,   d   o   w   n   W   i   r   e
0062200    C   n   t   ,   m   a   x   N   o   d   e   N   u   m   ]   _
0062220    i   n   p   u   t   C   i   r   c   u   i   t   [   ]   ;  \r
0062240            I   F       g   p   =   N   I   L     376 001  \0   |
0062260  204   T   H   E   N       G   O   T   O       n   o   F   i   l
0062300    e   ;  \r  \r           t   g   p   _   g   p   ;  \r        
0062320    W   H   I   L   E       t   g   p   #   N   I   L       D   O
0062340   \r  \t   t   g   p   .   x   _   x   x   ;  \r  \t   t   g   p
0062360    .   y   _   y   y   ;  \r  \t   m   a   x   x   _   M   A   X
0062400    [   m   a   x   x   ,   x   x   +   t   g   p   .   g   a   t
0062420    .   c   e   l   l   .   o   b   .   s   i   z   e   [   0   ]
0062440    ]   ;  \r  \t   x   x   _   x   x   +   t   g   p   .   g   a
0062460    t   .   o   u   t   .   x   +   2   ;  \r  \t   I   F       t
0062500    g   p   .   n   x   t   #   N   I   L       T   H   E   N    
0062520    x   x   _   x   x   +   t   g   p   .   n   x   t   .   g   a
0062540    t   .   l   S   p   a   c   *   2   ;  \r  \t   i   _   t   g
0062560    p   .   g   a   t   .   c   e   l   l   .   o   b   .   s   i
0062600    z   e   [   1   ]   ;  \r  \t   m   a   x   y   s   _   M   A
0062620    X   [   m   a   x   y   s   ,   i   ]   ;  \r  \t   m   i   n
0062640    y   s   _   I   F       m   i   n   y   s   =   0       T   H
0062660    E 376 001  \0 320   !   N       i       E   L   S   E       M
0062700    I   N   [   m   i   n   y   s   ,   i   ]   ;  \r  \t   t   g
0062720    p   _   t   g   p   .   n   x   t   ;  \r           E   N   D
0062740    L   O   O   P   ;  \r  \r           t   g   p   _   g   p   ;
0062760   \r           W   H   I   L   E       t   g   p   #   N   I   L
0063000        D   O  \r  \t   a   n   y   C   h   a   n   g   e   s   _
0063020    s   i   n   c   e   I   O   c   h   a   n   g   e   s   _   T
0063040    R   U   E   ;  \r  \t   l   l   _   m   a   k   e   L   i   s
0063060    t   [   t   g   p   .   g   a   t   .   c   e   l   l   .   o
0063100    b   .   p   .   a   n   o   t   h   e   r   m   e   [   t   g
0063120    p   .   g   a   t   .   c   e   l   l   .   o   b   ]  \r  \t
0063140   \t   ,   t   g   p   .   x   ,   t   g   p   .   y   ,   0   ,
0063160    0   ]   ;  \r  \t   m   i   n   e   _   i   n   s   e   r   t
0063200    L   i   s   t   [   m   i   n   e   ,   l   l   ]   ;  \r  \t
0063220    I   F       t   g   p   .   n   x   t   #   N   I   L       T
0063240    H   E   N  \r  \t                   B   E   G   I   N  \r  \t
0063260   \t   i   _   y   y   + 376 001  \0 217 241   M   I   N   [   t
0063300    g   p   .   g   a   t   .   c   e   l   l   .   o   b   .   s
0063320    i   z   e   [   1   ]   ,   t   g   p   .   n   x   t   .   g
0063340    a   t   .   c   e   l   l   .   o   b   .   s   i   z   e   [
0063360    1   ]   ]   ;  \r  \t  \t   j   _   t   g   p   .   x   +   t
0063400    g   p   .   g   a   t   .   g   n   d   .   x   ;  \r  \t  \t
0063420    l   l   _   m   a   k   e   L   i   s   t   [   m   a   k   e
0063440    W   i   r   e   [   t   g   p   .   n   x   t   .   x   +   4
0063460    -   j   ,   6   ,   m   e   t   ]   ,   j   ,   i   -   6   ,
0063500    2   ,   0   ]   ;  \r  \t  \t   m   i   n   e   _   i   n   s
0063520    e   r   t   L   i   s   t   [   m   i   n   e   ,   l   l   ]
0063540    ;  \r  \t                   E   N   D   ;  \r  \t   t   g   p
0063560    _   t   g   p   .   n   x   t   ;  \r           E   N   D   L
0063600    O   O   P   ;  \r  \r           d   w   A   r   _   m   y   Z
0063620    o   n   e   .   N   E   W   [   d   o   w   n   W   i   r   e
0063640    A   r   r   a   y   [   d   o   w   n   W   i   r   e   C   n
0063660    t   +   1   ]   ]   ;  \r           t   g 376 001  \0  \0 212
0063700    p   _   g   p   ;  \r           i   _   1   ;  \r           W
0063720    H   I   L   E       t   g   p   #   N   I   L       D   O  \r
0063740   \t   j   _   0   ;  \r  \t   F   O   R       k       I   N    
0063760    [   0   .   .   t   g   p   .   g   a   t   .   c   h   a   r
0064000    a   c   .   n   o   r   C   n   t   )       D   O  \r  \t    
0064020        a   C   n   t   _   t   g   p   .   g   a   t   .   c   h
0064040    a   r   a   c   .   a   n   d   s   [   k   ]   ;  \r  \t    
0064060        F   O   R       a   i       I   N       [   0   .   .   a
0064100    C   n   t   )       D   O  \r  \t                   d   w   A
0064120    r   [   i   ]   .   x       _       t   g   p   .   x   +   t
0064140    g   p   .   g   a   t   .   i   n   s   [   j   ]   .   x   ;
0064160   \r  \t                   d   w   A   r   [   i   ]   .   y    
0064200    _       t   g   p   .   y   +   t   g   p   .   g   a   t   .
0064220    i   n   s   [   j   ]   .   y   ;  \r  \t                   d
0064240    w   A   r   [   i   ]   .   n   o   d   e       _       t   g
0064260    p   .   n   o   d   e   s   [   j   ]   ;  \r  \t            
0064300  376 001  \0 354   }       d   w   A   r   [   i   ]   .   f   i
0064320    x   e   d       _       a   C   n   t   =   1   ;  \r  \t    
0064340                d   w   A   r   [   i   ]   .   a   n   d   C   n
0064360    t       _       a   C   n   t   ;  \r  \t                   d
0064400    w   A   r   [   i   ]   .   l   e   f   t   E   n   d       _
0064420        a   i   ;  \r  \t                   d   w   A   r   [   i
0064440    ]   .   r   i   g   h   t   E   n   d       _       a   C   n
0064460    t   -   a   i   -   1   ;  \r  \t                   d   w   A
0064500    r   [   i   ]   .   w   i   r   e   d   L   e   f   t   _   d
0064520    w   A   r   [   i   ]   .   w   i   r   e   d   R   i   g   h
0064540    t   _   F   A   L   S   E   ;  \r  \t                   t   w
0064560    _       j   =   0       A   N   D       t   g   p   .   g   a
0064600    t   .   f   i   r   s   t   I   n   T   o   p   A   v   a   i
0064620    l   ;  \r  \t                   d   w   A   r   [   i   ]   .
0064640    t   o   p   W   i   r   e   a   b   l   e   _   t   w   ;  \r
0064660   \t                   I   F       t   w       T   H   E   N  \r
0064700   \t                 376 001  \0 235 211           B   E   G   I
0064720    N  \r  \t  \t   d   w   A   r   [   i   ]   .   t   x       _
0064740        t   g   p   .   x   +   t   g   p   .   g   a   t   .   f
0064760    i   r   s   t   I   n   T   o   p   .   x   ;  \r  \t  \t   d
0065000    w   A   r   [   i   ]   .   t   y       _       t   g   p   .
0065020    y   +   t   g   p   .   g   a   t   .   f   i   r   s   t   I
0065040    n   T   o   p   .   y   ;  \r  \t                           E
0065060    N   D   ;  \r  \t                   i   _   i   +   1   ;  \r
0065100   \t                   j   _   j   +   1   ;  \r  \t           E
0065120    N   D   L   O   O   P   ;  \r  \t   E   N   D   L   O   O   P
0065140    ;  \r  \t   d   w   A   r   [   i   ]   .   x       _       t
0065160    g   p   .   x   +   t   g   p   .   g   a   t   .   o   u   t
0065200    .   x   ;  \r  \t   d   w   A   r   [   i   ]   .   y       _
0065220        t   g   p   .   y   +   t   g   p   .   g   a   t   .   o
0065240    u   t   .   y   ;  \r  \t   d   w   A   r   [   i   ]   .   n
0065260    o   d   e       _       t   g   p   .   o   u   t   N   o   d
0065300    e   ;  \r  \t   d   w   A   r   [   i 376 001  \0 274 331   ]
0065320    .   f   i   x   e   d       _       T   R   U   E   ;  \r  \t
0065340    d   w   A   r   [   i   ]   .   a   n   d   C   n   t       _
0065360        1   ;  \r  \t   d   w   A   r   [   i   ]   .   w   i   r
0065400    e   d   L   e   f   t   _   d   w   A   r   [   i   ]   .   w
0065420    i   r   e   d   R   i   g   h   t   _   F   A   L   S   E   ;
0065440   \r  \t   i   _   i   +   1   ;  \r  \t   t   g   p   _   t   g
0065460    p   .   n   x   t   ;  \r           E   N   D   L   O   O   P
0065500    ;  \r  \r           n   o   d   e   A   r   _   m   y   Z   o
0065520    n   e   .   N   E   W   [   n   o   d   e   A   r   r   a   y
0065540    [   m   a   x   N   o   d   e   N   u   m   +   1   ]   ]   ;
0065560   \r           F   O   R       i       I   N       [   0   .   .
0065600    m   a   x   N   o   d   e   N   u   m   ]       D   O       n
0065620    o   d   e   A   r   [   i   ]   _   0   ;   E   N   D   L   O
0065640    O   P   ;  \r           F   O   R       i       I   N       [
0065660    1   .   .   d   o   w   n   W   i   r   e   C   n   t   ]    
0065700    D   O  \r                   a   i   _   d   w   A   r   [ 376
0065720  001  \0   k 232   i   ]   .   n   o   d   e   ;  \r            
0065740        k   _   n   o   d   e   A   r   [   a   i   ]   ;  \r    
0065760                d   w   A   r   [   i   ]   .   d   w   L   e   f
0066000    t   _   k   ;  \r                   I   F       k   >   0    
0066020    T   H   E   N       d   w   A   r   [   k   ]   .   d   w   R
0066040    i   g   h   t   _   i   ;  \r                   n   o   d   e
0066060    A   r   [   a   i   ]   _   i   ;  \r           E   N   D   L
0066100    O   O   P   ;  \r           F   O   R       i       I   N    
0066120    [   0   .   .   m   a   x   N   o   d   e   N   u   m   ]    
0066140    D   O  \r                   k   _   n   o   d   e   A   r   [
0066160    i   ]   ;  \r                   I   F       k   >   0       T
0066200    H   E   N       d   w   A   r   [   k   ]   .   d   w   R   i
0066220    g   h   t   _   0   ;  \r           E   N   D   L   O   O   P
0066240    ;  \r  \r           h   l   A   r   _   m   y   Z   o   n   e
0066260    .   N   E   W   [   h   o   r   L   i   n   e   A   r   r   a
0066300    y   [   d   o   w   n   W   i   r   e   C   n   t   +   1   ]
0066320    ]   ;  \r     376 001  \0 366   }       t   g   p   _   g   p
0066340    ;  \r           i   _   1   ;  \r           W   H   I   L   E
0066360        t   g   p   #   N   I   L       D   O  \r  \t   j   _   (
0066400    t   g   p   .   y   +   t   g   p   .   g   a   t   .   c   e
0066420    l   l   .   o   b   .   s   i   z   e   [   1   ]   )   /   2
0066440    ;  \r  \t   F   O   R       k       I   N       [   0   .   .
0066460    t   g   p   .   g   a   t   .   c   h   a   r   a   c   .   n
0066500    o   r   C   n   t   )       D   O  \r  \t           a   C   n
0066520    t   _   t   g   p   .   g   a   t   .   c   h   a   r   a   c
0066540    .   a   n   d   s   [   k   ]   ;  \r  \t           F   O   R
0066560        a   i       I   N       [   0   .   .   a   C   n   t   )
0066600        D   O  \r  \t                   h   l   A   r   [   i   ]
0066620    .   d   i   s   t   a   n   c   e       _       j   ;  \r  \t
0066640                    h   l   A   r   [   i   ]   .   b   t   y   p
0066660        _       c   e   l   l   ;  \r  \t                   i   _
0066700    i   +   1   ;  \r  \t           E   N   D   L   O   O   P   ;
0066720   \r  \t   E   N   D   L   O   O   P 376 001  \0 356 303   ;  \r
0066740   \t   h   l   A   r   [   i   ]   .   d   i   s   t   a   n   c
0066760    e       _       -   3   ;  \r  \t   h   l   A   r   [   i   ]
0067000    .   b   t   y   p       _       n   o   n   e   ;  \r  \t   i
0067020    _   i   +   1   ;  \r  \t   t   g   p   _   t   g   p   .   n
0067040    x   t   ;  \r           E   N   D   L   O   O   P   ;  \r    
0067060        h   L   e   v   _   0   ;  \r  \r           F   O   R    
0067100    i       I   N       [   1   .   .   d   o   w   n   W   i   r
0067120    e   C   n   t   ]       D   O  \r                   I   F    
0067140    (   d   w   A   r   [   i   ]   .   d   w   L   e   f   t   =
0067160    i   -   1       A   N   D       i   >   1   )       O   R    
0067200    d   w   A   r   [   i   ]   .   d   w   R   i   g   h   t   =
0067220    i   +   1       T   H   E   N  \r  \t   d   w   A   r   [   i
0067240    ]   .   f   i   x   e   d   _   T   R   U   E   ;  \r        
0067260    E   N   D   L   O   O   P   ;  \r  \r           a   l   l   D
0067300    o   n   e   _   F   A   L   S   E   ;  \r           U   N   T
0067320    I   L       a   l   l   D   o   n   e       D   O  \r 376 001
0067340   \0 267 341  \t   h   L   e   v   _   m   o   v   e   D   o   w
0067360    n   [   h   L   e   v   ,   0   ]   ;  \r  \t   [   o   k   ,
0067400    l   e   ,   r   e   ]   _   f   i   n   d   G   a   p   [   1
0067420    ]   ;  \r  \t   W   H   I   L   E       o   k       D   O  \r
0067440   \t  \t   [   d   i   d   O   n   e   ,   a   l   l   D   o   n
0067460    e   ]   _   w   i   r   e   O   n   e   [   l   e   ,   r   e
0067500    ]   ;  \r  \t  \t   I   F       N   O   T       a   l   l   D
0067520    o   n   e       T   H   E   N  \r  \t  \t  \t   [   o   k   ,
0067540    l   e   ,   r   e   ]   _   f   i   n   d   G   a   p   [   I
0067560    F       d   i   d   O   n   e       T   H   E   N       l   e
0067600        E   L   S   E       r   e   +   1   ]  \r  \t  \t       E
0067620    L   S   E       E   X   I   T   ;  \r  \t   E   N   D   L   O
0067640    O   P  \r           E   N   D   L   O   O   P   ;  \r  \r    
0067660        l   l   _   m   a   k   e   L   i   s   t   [   m   a   k
0067700    e   W   i   r   e   [   m   a   x   x   ,   8   ,   m   e   t
0067720    ]   ,   0   ,   0   ,   2   ,   0   ]   ;  \r           m   i
0067740    n   e   _ 376 001  \0 203  \t   i   n   s   e   r   t   L   i
0067760    s   t   [   m   i   n   e   ,   l   l   ]   ;  \r  \r        
0070000    l   l   _   m   a   k   e   L   i   s   t   [   m   a   k   e
0070020    C   e   l   l   [   m   a   x   x   ,   m   a   x   y   s   ,
0070040    0   ,   m   i   n   e   ]   ,   m   a   r   k   P   n   t   .
0070060    x   ,   m   a   r   k   P   n   t   .   y   ,   0   ,   0   ]
0070100    ;  \r           m   a   s   t   e   r   L   i   s   t   _   i
0070120    n   s   e   r   t   L   i   s   t   [   m   a   s   t   e   r
0070140    L   i   s   t   ,   l   l   ]   ;  \r  \r           E   X   I
0070160    T   S       f   l   e   r       =   >       [   ]   _   t   y
0070200    p   e   I   n   C   [   "   S   y   n   t   a   x       e   r
0070220    r   o   r       i   n       f   i   l   e   "   L   ,   "   T
0070240    y   p   e       C   R       t   o       a   b   o   r   t   "
0070260    L   ,   "   "   L   ]   ;  \r          \t   n   o   F   i   l
0070300    e       =   >       [   ]   _   t   y   p   e   I   n   C   [
0070320    "   N   o       s   u   c   h       f   i   l   e   "   L   ,
0070340    "   T   y   p   e       C   R 376  \0 217 364 323       t   o
0070360        a   b   o   r   t   "   L   ,   "   "   L   ]   ;  \r    
0070400       \t   a   b   o   r   t   s       =   >       N   U   L   L
0070420    ;  \r           E   N   D   ;  \r  \r           d   C   h   a
0070440    n   g   e       _       T   R   U   E   ;  \r  \r           m
0070460    y   Z   o   n   e       _       Z   o   n   e   A   l   l   o
0070500    c   D   e   f   s   .   D   e   s   t   r   o   y   A   n   X
0070520    M   Z   o   n   e   [   m   y   Z   o   n   e   ]   ;  \r  \r
0070540   \r  \r   E   N   D   .       -   -       o   f       r   l   m
0070560    a   i   n  \r 032   (   1   7   9   2   )  \r 377  \0  \0   g
0070600    a   t   e   .   c   o   n   f   i   g  \0 373 233   i   Q 317
0070620   \0  \0 376 001  \0 325   (   -   -       g   a   t   e   .   c
0070640    o   n   f   i   g  \r   -   -       w   r   i   t   t   e   n
0070660        b   y       P   e   t   i   t   :           O   c   t   o
0070700    b   e   r       9   ,       1   9   8   1           6   :   4
0070720    2       P   M  \r  \r   g   a   t   e   :       C   O   N   F
0070740    I   G   U   R   A   T   I   O   N  \r   I   M   P   O   R   T
0070760    S  \r           p   p   d   e   f   s   ,   p   p   d   d   e
0071000    f   s   ,   p   p   d   d   d   e   f   s   ,   D   i   r   e
0071020    c   t   o   r   y   D   e   f   s   ,   S   y   s   t   e   m
0071040    D   e   f   s   ,   P   r   o   c   e   s   s   D   e   f   s
0071060    ,  \r           S   e   g   m   e   n   t   D   e   f   s   ,
0071100    S   t   r   e   a   m   D   e   f   s   ,   T   r   a   p   D
0071120    e   f   s   ,   -   -   A   l   t   o   F   i   l   e   D   e
0071140    f   s   ,  \r           S   t   r   i   n   g   D   e   f   s
0071160   \r   E   X   P   O   R   T   S  \r           r   l   d   e   f
0071200    s   ,   Z   o   n   e   A   l   l   o   c   D   e   f   s  \r
0071220    C   O   N   T   R   O   L 376  \0   B   O   .  \r           r
0071240    l   g   a   t   e   ,   r   l   i   n   ,   r   l   m   a   i
0071260    n       =  \r   B   E   G   I   N  \r   S   t   o   r   a   g
0071300    e   Z   o   n   e   ;   r   l   g   a   t   e   ;   r   l   i
0071320    n   ;   r   l   m   a   i   n  \r   E   N   D   .  \r 377  \0
0071340   \0   g   a   t   e   -   s   o   u   r   c   e   s   .   c   m
0071360   \0 373 227 366   - 221  \0  \0 376  \0   -   # 230   r   l   d
0071400    e   f   s   .   m   e   s   a       r   l   g   a   t   e   .
0071420    m   e   s   a       r   l   i   n   .   m   e   s   a       r
0071440    l   m   a   i   n   .   m   e   s   a 377  \0  \0   g   a   t
0071460    e   -   s   a   v   e   .   c   m  \0 373 234 224 337   ~  \0
0071500   \0 376  \0 250 336 260   f   t   p       i   n   d   i   g   o
0071520        c   o   n   n   /   c       c   h   i   p   m   o   n   k
0071540    >       d   i   r   /   c       >   x   g   a   t   e       s
0071560    t   /   c       g   a   t   e   .   c   h   i   p   b   c   d
0071600        g   a   t   e   .   s   y   m   b   o   l   s       d   u
0071620    m   p   /   c       g   a   t   e   -   s   o   u   r   c   e
0071640    s   .   d   m       @   g   a   t   e   -   s   o   u   r   c
0071660    e   s   .   c   m   @       g   a   t   e   .   c   o   n   f
0071700    i   g       g   a   t   e   -   s   o   u   r   c   e   s   .
0071720    c   m       g   a   t   e   -   s   a   v   e   .   c   m    
0071740    g   a   t   e   -   d   e   l   e   t   e   .   c   m 377  \0
0071760   \0   g   a   t   e   -   d   e   l   e   t   e   .   c   m  \0
0072000  373 227 366   /   a  \0  \0 376  \0   A   } 022   d   e   l   e
0072020    t   e       @   g   a   t   e   -   s   o   u   r   c   e   s
0072040    .   c   m   @       g   a   t   e   .   c   o   n   f   i   g
0072060        g   a   t   e   -   s   a   v   e   .   c   m       g   a
0072100    t   e   -   d   e   l   e   t   e   .   c   m  \r 374        
0072116