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