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