$ od -c -N 50000 [Indigo]<AltoSource>NETEXEC.DM!3
0000000  377  \0  \0   N   e   t   E   x   e   c   .   b   c   p   l  \0
0000020  373 232   K 253   }  \0  \0 376 001  \0 257   K   /   /       N
0000040    e   t   E   x   e   c   .   b   c   p   l       -   -       A
0000060        o   n   e   -   d   a   y       h   a   c   k       t   h
0000100    a   t       w   o   r   k   e   d  \r   /   /       C   o   p
0000120    y   r   i   g   h   t       X   e   r   o   x       C   o   r
0000140    p   o   r   a   t   i   o   n       1   9   7   9   ,       1
0000160    9   8   0   ,       1   9   8   2   ,       1   9   8   3  \r
0000200    /   /       L   a   s   t       m   o   d   i   f   i   e   d
0000220        J   a   n   u   a   r   y       1   1   ,       1   9   8
0000240    3           8   :   2   2       P   M       b   y       B   o
0000260    g   g   s  \r  \r   g   e   t       "   A   l   t   o   D   e
0000300    f   s   .   d   "  \r   g   e   t       "   C   m   d   S   c
0000320    a   n   .   d   e   c   l   "  \r  \r   e   x   t   e   r   n
0000340    a   l  \r   [  \r   /   /       o   u   t   g   o   i   n   g
0000360        p   r   o   c   e   d   u   r   e   s  \r   L   o   a   d
0000400    K   T  \r  \r   /   /       i   n   c   o   m   i   n   g    
0000420    p   r   o   c   e   d   u   r   e   s  \r   P 376 001  \0 272
0000440  311   r   i   n   t   N   a   m   e   ;       L   o   a   d   M
0000460    i   c   r   o   c   o   d   e   ;       W   h   e   r   e  \r
0000500    G   e   t   T   i   m   e   ;       G   e   t   D   i   r   ;
0000520        G   e   t   N   a   m   e   ;       N   e   t   B   o   o
0000540    t  \r  \r   M   y   F   r   a   m   e   ;       U   s   c   ;
0000560        C   a   l   l   S   w   a   t   ;       S   y   s   E   r
0000600    r   ;       M   o   v   e   B   l   o   c   k   ;       Z   e
0000620    r   o  \r   E   n   q   u   e   u   e   ;       D   e   q   u
0000640    e   u   e   ;       D   o   u   b   l   e   D   i   f   f   e
0000660    r   e   n   c   e   ;       J   u   n   t   a  \r   I   n   i
0000700    t   i   a   l   i   z   e   Z   o   n   e   ;       A   l   l
0000720    o   c   a   t   e   ;       F   r   e   e  \r  \r   I   n   i
0000740    t   i   a   l   i   z   e   C   o   n   t   e   x   t   ;    
0000760    C   a   l   l   C   o   n   t   e   x   t   L   i   s   t   ;
0001000        B   l   o   c   k   ;       D   i   s   m   i   s   s  \r
0001020   \r   C   r   e   a   t   e   D   i   s   p   l   a   y   S   t
0001040    r 376 001  \0   d 333   e   a   m   ;       S   h   o   w   D
0001060    i   s   p   l   a   y   S   t   r   e   a   m   ;       E   r
0001100    a   s   e   B   i   t   s  \r   G   e   t   B   i   t   P   o
0001120    s   ;       S   e   t   B   i   t   P   o   s   ;       C   h
0001140    a   r   W   i   d   t   h   ;       G   e   t   L   m   a   r
0001160    g   ;       S   e   t   F   o   n   t  \r  \r   S   e   t   T
0001200    i   m   e   r   ;       T   i   m   e   r   H   a   s   E   x
0001220    p   i   r   e   d  \r   S   t   a   r   t   I   O   ;       F
0001240    a   l   s   e   P   r   e   d   i   c   a   t   e   ;       R
0001260    e   a   d   C   a   l   e   n   d   a   r  \r  \r   U   N   P
0001300    A   C   K   D   T   ;       W   E   E   K   D   A   Y   ;    
0001320    M   O   N   T   H   N   A   M   E   ;       W   R   I   T   E
0001340    U   D   T  \r   P   u   t   s   ;       R   e   s   e   t   s
0001360    ;       C   l   o   s   e   s   ;       P   u   t   b   a   c
0001400    k   s   ;       E   n   d   o   f   s  \r   P   u   t   T   e
0001420    m   p   l   a   t   e   ;       W   s   s  \r  \r   C   r   e
0001440    a   t   e   K   e   y 376 001  \0   j 372   w   o   r   d   T
0001460    a   b   l   e   ;       I   n   s   e   r   t   K   e   y   w
0001500    o   r   d   ;       L   o   o   k   u   p   K   e   y   w   o
0001520    r   d   ;       D   e   l   e   t   e   K   e   y   w   o   r
0001540    d  \r   I   n   i   t   C   m   d   ;       G   e   t   K   e
0001560    y   w   o   r   d   ;       G   e   t   N   u   m   b   e   r
0001600    ;       C   m   d   E   r   r   o   r   C   o   d   e   ;    
0001620    E   n   a   b   l   e   C   a   t   c   h   ;       E   n   d
0001640    C   a   t   c   h  \r   B   e   g   i   n   D   e   f   a   u
0001660    l   t   P   h   r   a   s   e   ;       E   n   d   D   e   f
0001700    a   u   l   t   P   h   r   a   s   e   ;       C   o   n   f
0001720    i   r   m  \r  \r   I   n   i   t   P   u   p   L   e   v   e
0001740    l   1   ;       E   t   h   e   r   B   o   o   t  \r  \r   /
0001760    /       i   n   c   o   m   i   n   g       s   t   a   t   i
0002000    c   s  \r   s   y   s   Z   o   n   e   ;       s   y   s   F
0002020    o   n   t   ;       d   s   p   ;       k   e   y   s  \r   t
0002040    i   m   e   R   e   q   u   e   s   t   ; 376 001  \0 207  \n
0002060        d   i   r   R   e   q   u   e   s   t  \r  \r   /   /    
0002100    o   u   t   g   o   i   n   g       s   t   a   t   i   c   s
0002120   \r   f   t   p   C   t   x   Q   ;       c   m   d   D   s   p
0002140    ;       c   m   d   K   T   ;       e   b   K   T   ;       k
0002160    b   d   C   S   ;       b   u   f   ;       e   n   g   ;    
0002200    O   p   e   n   F   i   l   e  \r   ]  \r  \r   s   t   a   t
0002220    i   c  \r   [  \r   f   t   p   C   t   x   Q   ;       c   m
0002240    d   D   s   p   ;       c   m   d   K   T   ;       e   b   K
0002260    T   ;       k   b   d   C   S   ;       b   u   f  \r   w   a
0002300    t   c   h   D   o   g   ;       n   u   m   K   T   E   s    
0002320    =       0   ;       e   n   g   ;       O   p   e   n   F   i
0002340    l   e  \r   c   u   r   s   o   r   O   n   ;       c   u   r
0002360    s   o   r   T   i   m   e   r  \r   ]  \r  \r   s   t   r   u
0002400    c   t   u   r   e       K   T   E   :  \r   [  \r   d   a   t
0002420    e       w   o   r   d       2  \r   h   o   s   t       w   o
0002440    r   d  \t   /   /   i   f       h   o   s   t       i   s    
0002460  376 001  \0 231 216   z   e   r   o       t   h   e   n  \r   b
0002500    f   n       w   o   r   d  \t   /   /   b   f   n       i   s
0002520        r   e   a   l   l   y       a       l   o   c   a   l    
0002540    p   r   o   c   e   d   u   r   e       (   e   .   g   .    
0002560    B   f   n   T   o   K   e   y   s   )  \r   ]  \r   m   a   n
0002600    i   f   e   s   t  \r   [  \r   l   e   n   K   T   E       =
0002620        s   i   z   e       K   T   E   /   1   6  \r   m   a   x
0002640    K   T   E   s       =       1   0   0  \r  \r   b   u   f   L
0002660    e   n       =       2   5   6       +       1   6   3   8   4
0002700        +       4   0   9   6       +       1   0   0           /
0002720    /       h   e   a   d   e   r       +       I   M       +    
0002740    I   F   U   M       +       s   l   o   p  \r   s   t   k   L
0002760    i   m       =       3   3   5   b  \r   ]  \r  \f  \r   /   /
0003000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0003060    -   -   -   -   - 376 001  \0 343 021   -   -   -   -   -   -
0003100    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0003120   \r   l   e   t       N   e   t   E   x   e   c   (   )       b
0003140    e       J   u   n   t   a   (   n   i   l   ,       A   f   t
0003160    e   r   J   u   n   t   a   )  \r   /   /   -   -   -   -   -
0003200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0003300    -   -   -   -   -   -  \r  \r   /   /   -   -   -   -   -   -
0003320    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0003420    -   -   -   -   -  \r   a   n   d       A   f   t   e   r   J
0003440    u   n   t   a   (   )       b   e  \r   /   /   -   -   -   -
0003460    -   -   -   -   -   -   -   -   -   - 376 001  \0   N 366   -
0003500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0003560    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   l
0003600    e   t       d       =       v   e   c       (   l   D   C   B
0003620    +   3   )   ;       d   s   p       =       (   d   +   1   )
0003640    &   -   2  \r   l   e   t       d   c   b       =       d   s
0003660    p   +   2   ;       d   s   p   !   0   ,       d   s   p   !
0003700    1       =       d   c   b   ,       d   c   b  \r   Z   e   r
0003720    o   (   d   c   b   ,       l   D   C   B   )   ;       d   c
0003740    b   >   >   D   C   B   .   h   e   i   g   h   t       =    
0003760    4   2  \r   S   h   o   w   D   i   s   p   l   a   y   S   t
0004000    r   e   a   m   (   d   s   p   ,       D   S   a   l   o   n
0004020    e   )  \r   e   n   g       =       (   t   a   b   l   e    
0004040    [       6   1   0   1   4   b   ;       1   4   0   1   b    
0004060    ]   )   (   )   <   <   V   E   R   S   .   e   n   g  \r 376
0004100  001  \0   t   M  \r   b   u   f       =       @   s   t   k   L
0004120    i   m   ;       @   s   t   k   L   i   m       =       b   u
0004140    f       +       b   u   f   L   e   n  \r   l   e   t       b
0004160    a   s   e       =       @   s   t   k   L   i   m   ;       @
0004200    s   t   k   L   i   m       =       M   y   F   r   a   m   e
0004220    (   )       -       2   0   0  \r   s   y   s   Z   o   n   e
0004240        =       I   n   i   t   i   a   l   i   z   e   Z   o   n
0004260    e   (   b   a   s   e   ,       @   s   t   k   L   i   m    
0004300    -       b   a   s   e   ,       S   y   s   E   r   r   ,    
0004320    S   y   s   E   r   r   )  \r  \r   l   e   t       v       =
0004340        v   e   c       1   ;       f   t   p   C   t   x   Q    
0004360    =       v   ;       f   t   p   C   t   x   Q   !   0       =
0004400        0  \r   I   n   i   t   P   u   p   L   e   v   e   l   1
0004420    (   s   y   s   Z   o   n   e   ,       f   t   p   C   t   x
0004440    Q   ,       1   0   )  \r   E   n   q   u   e   u   e   (   f
0004460    t   p   C   t   x   Q   ,       I   n   i   t   i   a   l   i
0004500    z   e   C   o 376 001  \0   @ 256   n   t   e   x   t   (   A
0004520    l   l   o   c   a   t   e   (   s   y   s   Z   o   n   e   ,
0004540        5   0   0   )   ,       5   0   0   ,       T   i   t   l
0004560    e   )   )  \r   E   n   q   u   e   u   e   (   f   t   p   C
0004600    t   x   Q   ,       I   n   i   t   i   a   l   i   z   e   C
0004620    o   n   t   e   x   t   (   A   l   l   o   c   a   t   e   (
0004640    s   y   s   Z   o   n   e   ,       5   0   0   )   ,       5
0004660    0   0   ,       C   o   m   m   a   n   d   )   )  \r   E   n
0004700    q   u   e   u   e   (   f   t   p   C   t   x   Q   ,       I
0004720    n   i   t   i   a   l   i   z   e   C   o   n   t   e   x   t
0004740    (   A   l   l   o   c   a   t   e   (   s   y   s   Z   o   n
0004760    e   ,       3   0   0   )   ,       3   0   0   ,       G   e
0005000    t   T   i   m   e   )   )  \r   E   n   q   u   e   u   e   (
0005020    f   t   p   C   t   x   Q   ,       I   n   i   t   i   a   l
0005040    i   z   e   C   o   n   t   e   x   t   (   A   l   l   o   c
0005060    a   t   e   (   s   y   s   Z   o   n   e   ,       3   0   0
0005100    )   ,       3   0   0   ,       G 376 001  \0 306 327   e   t
0005120    D   i   r   )   )  \r   E   n   q   u   e   u   e   (   f   t
0005140    p   C   t   x   Q   ,       I   n   i   t   i   a   l   i   z
0005160    e   C   o   n   t   e   x   t   (   A   l   l   o   c   a   t
0005200    e   (   s   y   s   Z   o   n   e   ,       3   0   0   )   ,
0005220        3   0   0   ,       G   e   t   N   a   m   e   )   )  \r
0005240    E   n   q   u   e   u   e   (   f   t   p   C   t   x   Q   ,
0005260        I   n   i   t   i   a   l   i   z   e   C   o   n   t   e
0005300    x   t   (   A   l   l   o   c   a   t   e   (   s   y   s   Z
0005320    o   n   e   ,       1   0   0   )   ,       1   0   0   ,    
0005340    W   a   t   c   h   D   o   g   )   )  \r  \r   c   m   d   K
0005360    T       =       C   r   e   a   t   e   K   e   y   w   o   r
0005400    d   T   a   b   l   e   (   m   a   x   K   T   E   s   ,    
0005420    l   e   n   K   T   E   )  \r   e   b   K   T       =       C
0005440    r   e   a   t   e   K   e   y   w   o   r   d   T   a   b   l
0005460    e   (   m   a   x   K   T   E   s   ,       l   e   n   K   T
0005500    E   )  \r  \r   C   a   l   l   C   o   n   t   e   x 376 001
0005520   \0   ~   =   t   L   i   s   t   (   f   t   p   C   t   x   Q
0005540    !   0   )       r   e   p   e   a   t  \r   ]  \r  \f  \r   /
0005560    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0005600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0005660    -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d
0005700        T   i   t   l   e   (   )       b   e  \r   /   /   -   -
0005720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0006020    -   -   -   -   -   -   -   -   -  \r   [  \r   B   l   o   c
0006040    k   (   )  \r   l   e   t       l   i   n   e   W   o   r   d
0006060    s       =       l   D   C   B   +   3   8   *   2   *   (   (
0006100    s   y   s   F   o   n   t   !   -   2   +   1   )       r   s
0006120    h   i   f 376 001  \0   O 036   t       1   )       +       1
0006140   \r   l   e   t       t   o   p       =       v   e   c       1
0006160   \r   t   o   p   !   0       =       C   r   e   a   t   e   D
0006200    i   s   p   l   a   y   S   t   r   e   a   m   (   1   ,    
0006220    A   l   l   o   c   a   t   e   (   s   y   s   Z   o   n   e
0006240    ,       l   i   n   e   W   o   r   d   s   )   ,       l   i
0006260    n   e   W   o   r   d   s   )  \r   t   o   p   !   1       =
0006300        C   r   e   a   t   e   D   i   s   p   l   a   y   S   t
0006320    r   e   a   m   (   1   ,       A   l   l   o   c   a   t   e
0006340    (   s   y   s   Z   o   n   e   ,       l   i   n   e   W   o
0006360    r   d   s   )   ,       l   i   n   e   W   o   r   d   s   )
0006400   \r   S   h   o   w   D   i   s   p   l   a   y   S   t   r   e
0006420    a   m   (   t   o   p   !   0   ,       D   S   b   e   l   o
0006440    w   ,       d   s   p   )  \r   l   e   t       b   o   t    
0006460    =       v   e   c       1  \r   b   o   t   !   0       =    
0006500    C   r   e   a   t   e   D   i   s   p   l   a   y   S   t   r
0006520    e   a   m   (   1   ,       A 376 001  \0 257 237   l   l   o
0006540    c   a   t   e   (   s   y   s   Z   o   n   e   ,       l   i
0006560    n   e   W   o   r   d   s   )   ,       l   i   n   e   W   o
0006600    r   d   s   )  \r   b   o   t   !   1       =       C   r   e
0006620    a   t   e   D   i   s   p   l   a   y   S   t   r   e   a   m
0006640    (   1   ,       A   l   l   o   c   a   t   e   (   s   y   s
0006660    Z   o   n   e   ,       l   i   n   e   W   o   r   d   s   )
0006700    ,       l   i   n   e   W   o   r   d   s   )  \r   S   h   o
0006720    w   D   i   s   p   l   a   y   S   t   r   e   a   m   (   b
0006740    o   t   !   0   ,       D   S   b   e   l   o   w   ,       t
0006760    o   p   !   0   )  \r   l   e   t       b   o   l   d   F   o
0007000    n   t       =       v   e   c       1   ;       b   o   l   d
0007020    F   o   n   t       =       b   o   l   d   F   o   n   t    
0007040    +   2  \r   b   o   l   d   F   o   n   t   !   -   2       =
0007060        -   1   ;       b   o   l   d   F   o   n   t   !   -   1
0007100        =       s   y   s   F   o   n   t  \r   l   e   t       m
0007120    a   c   h   i   n   e   T   y   p   e       =     376 001  \0
0007140  201 306   s   e   l   e   c   t   o   n       e   n   g       i
0007160    n   t   o  \r               [  \r               c   a   s   e
0007200        0   :       c   a   s   e       1   :       "   A   l   t
0007220    o       I   "  \r               c   a   s   e       2   :    
0007240    "   A   l   t   o       I   I   "  \r               c   a   s
0007260    e       3   :       "   A   l   t   o       I   I       X   M
0007300    "  \r               c   a   s   e       4   :       "   D   o
0007320    l   p   h   i   n   "  \r               c   a   s   e       5
0007340    :       "   D   o   r   a   d   o   "  \r               ]  \r
0007360   \r   l   e   t       l   a   s   t   T   i   m   e   ,       n
0007400    o   w       =       v   e   c       1   ,       v   e   c    
0007420    1  \r               [  \r               R   e   a   d   C   a
0007440    l   e   n   d   a   r   (   n   o   w   )  \r               i
0007460    f       D   o   u   b   l   e   D   i   f   f   e   r   e   n
0007500    c   e   (   n   o   w   ,       l   a   s   t   T   i   m   e
0007520    )       n   e       0       t   h   e   n  \r                
0007540          376 001  \0 365 234   [  \r                           l
0007560    e   t       l   i   n   e       =       t   o   p   !   1  \r
0007600                            R   e   s   e   t   s   (   l   i   n
0007620    e   )  \r                           P   u   t   T   e   m   p
0007640    l   a   t   e   (   l   i   n   e   ,       "   -   -       $
0007660    P   X   E   R   O   X   $   P       B   C   P   L       N   e
0007700    t       E   x   e   c   u   t   i   v   e   /   1   2   "   ,
0007720   \r                               S   e   t   F   o   n   t   ,
0007740        b   o   l   d   F   o   n   t   ,       S   e   t   F   o
0007760    n   t   ,       s   y   s   F   o   n   t   )  \r            
0010000                F   i   l   l   W   i   t   h   D   a   s   h   (
0010020    l   i   n   e   ,       3   3   0   )  \r                    
0010040        W   r   i   t   e   D   a   t   e   (   l   i   n   e   )
0010060   \r                           F   i   l   l   W   i   t   h   D
0010100    a   s   h   (   l   i   n   e   ,       6   0   5   )  \r    
0010120                        E   x   c   h   a   n   g   e   L   i   n
0010140    e   s   (   t   o   p   ) 376 001  \0 232 020  \r  \r        
0010160                    l   i   n   e       =       b   o   t   !   1
0010200   \r                           R   e   s   e   t   s   (   l   i
0010220    n   e   )  \r                           F   i   l   l   W   i
0010240    t   h   D   a   s   h   (   l   i   n   e   ,       1   2   5
0010260    )  \r                           W   s   s   (   l   i   n   e
0010300    ,       m   a   c   h   i   n   e   T   y   p   e   )  \r    
0010320                        F   i   l   l   W   i   t   h   D   a   s
0010340    h   (   l   i   n   e   ,       2   5   0   )  \r            
0010360                P   r   i   n   t   N   a   m   e   (   l   i   n
0010400    e   )  \r                           i   f       e   n   g    
0010420    g   r       3       t   h   e   n  \r                        
0010440                [  \r                                       F   i
0010460    l   l   W   i   t   h   D   a   s   h   (   l   i   n   e   ,
0010500        4   5   0   )  \r                                       P
0010520    u   t   T   e   m   p   l   a   t   e   (   l   i   n   e   ,
0010540        "   P   a   r   t   i   t   i   o   n     376 001  \0 217
0010560  320   $   D   "   ,       (   t   a   b   l   e       [       6
0010600    1   0   3   7   b   ;       1   4   0   1   b       ]   )   (
0010620    0   )   )  \r                                       ]  \r    
0010640                        F   i   l   l   W   i   t   h   D   a   s
0010660    h   (   l   i   n   e   ,       6   0   5   )  \r            
0010700                E   x   c   h   a   n   g   e   L   i   n   e   s
0010720    (   b   o   t   )  \r  \r                           M   o   v
0010740    e   B   l   o   c   k   (   l   a   s   t   T   i   m   e   ,
0010760        n   o   w   ,       2   )  \r                           ]
0011000   \r               D   i   s   m   i   s   s   (   2   0   )  \r
0011020                ]       r   e   p   e   a   t  \r   ]  \r  \r   /
0011040    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0011060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0011140    -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d
0011160      376 001  \0   F   G   E   x   c   h   a   n   g   e   L   i
0011200    n   e   s   (   l   i   n   e   V   e   c   )       b   e  \r
0011220    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0011240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0011320    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r
0011340    l   e   t       d   c   b       =       @   d   i   s   p   l
0011360    a   y   L   i   s   t   H   e   a   d  \r   w   h   i   l   e
0011400        d   c   b   >   >   D   C   B   .   n   e   x   t       n
0011420    e       l   i   n   e   V   e   c   !   0   >   >   D   S   .
0011440    c   d   c   b       d   o       d   c   b       =       d   c
0011460    b   >   >   D   C   B   .   n   e   x   t  \r   l   i   n   e
0011500    V   e   c   !   1   >   >   D   S   .   c   d   c   b   >   >
0011520    D   C   B   .   n   e   x   t       =       l   i   n   e   V
0011540    e   c   !   0   >   >   D   S   .   c   d   c   b   >   >   D
0011560    C   B   .   n   e   x 376 001  \0 032 207   t  \r   d   c   b
0011600    >   >   D   C   B   .   n   e   x   t       =       l   i   n
0011620    e   V   e   c   !   1   >   >   D   S   .   c   d   c   b  \r
0011640    l   e   t       t   e   m   p       =       l   i   n   e   V
0011660    e   c   !   1   ;       l   i   n   e   V   e   c   !   1    
0011700    =       l   i   n   e   V   e   c   !   0   ;       l   i   n
0011720    e   V   e   c   !   0       =       t   e   m   p  \r   ]  \r
0011740   \f  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0011760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0012040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0012060    a   n   d       F   i   l   l   W   i   t   h   D   a   s   h
0012100    (   s   t   r   e   a   m   ,       e   n   d   )       b   e
0012120   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0012140    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0012160    -   -   -   -   -   -   -   -   -   -   - 376 001  \0 027 205
0012200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0012240    -   -   -  \r   [  \r   i   f       (   e   n   d   -   G   e
0012260    t   B   i   t   P   o   s   (   s   t   r   e   a   m   )   )
0012300        g   r       C   h   a   r   W   i   d   t   h   (   s   t
0012320    r   e   a   m   ,       $   *   S   )       &  \r       G   e
0012340    t   B   i   t   P   o   s   (   s   t   r   e   a   m   )    
0012360    n   e       G   e   t   L   m   a   r   g   (   s   t   r   e
0012400    a   m   )       t   h   e   n       P   u   t   s   (   s   t
0012420    r   e   a   m   ,       $   *   S   )  \r   f   o   r       i
0012440        =       1       t   o       (   e   n   d   -   C   h   a
0012460    r   W   i   d   t   h   (   s   t   r   e   a   m   ,       $
0012500    *   S   )   -   G   e   t   B   i   t   P   o   s   (   s   t
0012520    r   e   a   m   )   )   /  \r       C   h   a   r   W   i   d
0012540    t   h   (   s   t   r   e   a   m   ,       $   -   )       d
0012560    o       P   u   t   s   (   s   t   r   e   a   m   ,       $
0012600  376 001  \0   (   b   -   )  \r   S   e   t   B   i   t   P   o
0012620    s   (   s   t   r   e   a   m   ,       e   n   d   )  \r   ]
0012640   \r  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0012660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0012740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0012760    a   n   d       W   r   i   t   e   D   a   t   e   (   s   t
0013000    r   e   a   m   )       =       v   a   l   o   f  \r   /   /
0013020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0013120    -   -   -   -   -   -   -   -   -   -   -  \r   /   /       "
0013140    W   e   e   k   d   a   y       M   o   n   t   h       D   a
0013160    y       -       h   o   u   r   :   m   i   n   u   t   e   :
0013200    s   e   c   o   n 376 001  \0   > 343   d       a   m   /   p
0013220    m   "  \r   [  \r   s   t   r   u   c   t   u   r   e       U
0013240    V   :  \r               [  \r               y   e   a   r    
0013260    w   o   r   d  \r               m   o   n   t   h       w   o
0013300    r   d  \r               d   a   y       w   o   r   d  \r    
0013320            h   o   u   r       w   o   r   d  \r               m
0013340    i   n   u   t   e       w   o   r   d  \r               s   e
0013360    c   o   n   d       w   o   r   d  \r               d   s   t
0013400        w   o   r   d  \r               ]  \r   m   a   n   i   f
0013420    e   s   t       l   e   n   U   V       =       s   i   z   e
0013440        U   V   /   1   6  \r   l   e   t       d   v       =    
0013460    v   e   c       1   ;       R   e   a   d   C   a   l   e   n
0013500    d   a   r   (   d   v   )  \r   l   e   t       u   v       =
0013520        v   e   c       l   e   n   U   V   ;       U   N   P   A
0013540    C   K   D   T   (   d   v   ,       u   v   )  \r   i   f    
0013560    u   v   >   >   U   V   .   y   e   a   r       l   e       1
0013600    9   8   2       %       u   v   >   > 376 001  \0  \b 002   U
0013620    V   .   y   e   a   r       g   r       2   0   0   0       t
0013640    h   e   n  \r               [  \r               W   s   s   (
0013660    s   t   r   e   a   m   ,       "   D   a   t   e       a   n
0013700    d       t   i   m   e       u   n   k   n   o   w   n   "   )
0013720   \r               r   e   s   u   l   t   i   s       f   a   l
0013740    s   e  \r               ]  \r   l   e   t       d   a   y    
0013760    =       s   e   l   e   c   t   o   n       W   E   E   K   D
0014000    A   Y   (   d   v   )       i   n   t   o  \r               [
0014020   \r               c   a   s   e       0   :       "   M   o   n
0014040    d   a   y   "  \r               c   a   s   e       1   :    
0014060    "   T   u   e   s   d   a   y   "  \r               c   a   s
0014100    e       2   :       "   W   e   d   n   e   s   d   a   y   "
0014120   \r               c   a   s   e       3   :       "   T   h   u
0014140    r   s   d   a   y   "  \r               c   a   s   e       4
0014160    :       "   F   r   i   d   a   y   "  \r               c   a
0014200    s   e       5   :       "   S   a   t   u   r   d   a   y 376
0014220  001  \0 003 377   "  \r               c   a   s   e       6   :
0014240        "   S   u   n   d   a   y   "  \r               ]  \r   l
0014260    e   t       m   o   n   t   h       =       s   e   l   e   c
0014300    t   o   n       u   v   >   >   U   V   .   m   o   n   t   h
0014320        i   n   t   o  \r               [  \r               c   a
0014340    s   e       0   :       "   J   a   n   "  \r               c
0014360    a   s   e       1   :       "   F   e   b   "  \r            
0014400    c   a   s   e       2   :       "   M   a   r   "  \r        
0014420        c   a   s   e       3   :       "   A   p   r   "  \r    
0014440            c   a   s   e       4   :       "   M   a   y   "  \r
0014460                c   a   s   e       5   :       "   J   u   n   "
0014500   \r               c   a   s   e       6   :       "   J   u   l
0014520    "  \r               c   a   s   e       7   :       "   A   u
0014540    g   "  \r               c   a   s   e       8   :       "   S
0014560    e   p   "  \r               c   a   s   e       9   :       "
0014600    O   c   t   "  \r               c   a   s   e       1   0   :
0014620        "   N   o 376 001  \0   > 026   v   "  \r               c
0014640    a   s   e       1   1   :       "   D   e   c   "  \r        
0014660        ]  \r   P   u   t   T   e   m   p   l   a   t   e   (   s
0014700    t   r   e   a   m   ,       "   $   S       $   S       $   U
0014720    D       -       "   ,       d   a   y   ,       m   o   n   t
0014740    h   ,       u   v   >   >   U   V   .   d   a   y   )  \r   l
0014760    e   t       a   m       =       u   v   >   >   U   V   .   h
0015000    o   u   r       l   e       1   1  \r   i   f       u   v   >
0015020    >   U   V   .   h   o   u   r       g   e       1   2       t
0015040    h   e   n       u   v   >   >   U   V   .   h   o   u   r    
0015060    =       u   v   >   >   U   V   .   h   o   u   r       -    
0015100    1   2  \r   i   f       u   v   >   >   U   V   .   h   o   u
0015120    r       l   s       1       t   h   e   n       u   v   >   >
0015140    U   V   .   h   o   u   r       =       1   2  \r   P   u   t
0015160    T   e   m   p   l   a   t   e   (   s   t   r   e   a   m   ,
0015200        "   $   U   D   :   $   U   2   F   0   D   :   $   U   2
0015220    F   0   D       $   S   "   ,     376 001  \0   z   L   u   v
0015240    >   >   U   V   .   h   o   u   r   ,  \r       u   v   >   >
0015260    U   V   .   m   i   n   u   t   e   ,       u   v   >   >   U
0015300    V   .   s   e   c   o   n   d   ,       (   a   m   ?       "
0015320    a   m   "   ,       "   p   m   "   )   )  \r   r   e   s   u
0015340    l   t   i   s       t   r   u   e  \r   ]  \r  \f  \r   /   /
0015360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0015460    -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d    
0015500    C   o   m   m   a   n   d   (   )       b   e           /   /
0015520    a       c   o   n   t   e   x   t  \r   /   /   -   -   -   -
0015540    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0015620    -   -   -   -   -   -   -   -   -   -   -   -   -   - 376 001
0015640   \0 225 355   -   -   -   -   -   -   -   -   -  \r   [  \r   m
0015660    a   n   i   f   e   s   t       n   u   m   L   i   n   e   s
0015700        =       2   0  \r   c   m   d   D   s   p       =       C
0015720    r   e   a   t   e   D   i   s   p   l   a   y   S   t   r   e
0015740    a   m   (   n   u   m   L   i   n   e   s   ,       b   u   f
0015760    ,       b   u   f   L   e   n   )  \r   f   o   r       i    
0016000    =       1       t   o       n   u   m   L   i   n   e   s   -
0016020    1       d   o       P   u   t   s   (   c   m   d   D   s   p
0016040    ,       $   *   N   )  \r   S   h   o   w   D   i   s   p   l
0016060    a   y   S   t   r   e   a   m   (   c   m   d   D   s   p   ,
0016100        D   S   b   e   l   o   w   ,       d   s   p   )  \r   S
0016120    e   t   T   i   m   e   r   (   l   v       c   u   r   s   o
0016140    r   T   i   m   e   r   ,       0   )  \r   c   m   d   D   s
0016160    p   >   >   S   T   .   p   u   t   b   a   c   k       =    
0016200    c   m   d   D   s   p   >   >   S   T   .   p   u   t   s   ;
0016220        c   m   d   D   s   p   >   >   S   T   .   p   u   t   s
0016240        =     376 001  \0   | 236   P   u   t   s   W   i   t   h
0016260    C   u   r   s   o   r  \r   k   e   y   s   >   >   S   T   .
0016300    p   a   r   1       =       k   e   y   s   >   >   S   T   .
0016320    g   e   t   s   ;       k   e   y   s   >   >   S   T   .   g
0016340    e   t   s       =       G   e   t   s   W   i   t   h   C   u
0016360    r   s   o   r  \r   k   e   y   s   >   >   S   T   .   p   a
0016400    r   2       =       k   e   y   s   >   >   S   T   .   e   n
0016420    d   o   f   ;       k   e   y   s   >   >   S   T   .   e   n
0016440    d   o   f       =       E   n   d   o   f   W   i   t   h   C
0016460    u   r   s   o   r  \r  \r   l   e   t       d   u   m   m   y
0016500    D   a   t   e       =       v   e   c       1   ;       Z   e
0016520    r   o   (   d   u   m   m   y   D   a   t   e   ,       2   )
0016540   \r   L   o   a   d   K   T   (   c   m   d   K   T   ,       "
0016560    B   o   o   t   D   P   0   "   ,       0   ,       d   u   m
0016600    m   y   D   a   t   e   ,       D   i   s   k   B   o   o   t
0016620    )  \r   L   o   a   d   K   T   (   c   m   d   K   T   ,    
0016640    "   E   t   h   e   r   B   o 376 001  \0 345 352   o   t   "
0016660    ,       0   ,       d   u   m   m   y   D   a   t   e   ,    
0016700    N   e   t   B   o   o   t   )  \r   L   o   a   d   K   T   (
0016720    c   m   d   K   T   ,       "   F   i   l   e   S   t   a   t
0016740    "   ,       0   ,       d   u   m   m   y   D   a   t   e   ,
0016760        F   i   l   e   S   t   a   t   )  \r   i   f       e   n
0017000    g       g   r       3       t   h   e   n  \r               [
0017020   \r               L   o   a   d   K   T   (   c   m   d   K   T
0017040    ,       "   L   o   a   d   M   i   c   r   o   c   o   d   e
0017060    "   ,       0   ,       d   u   m   m   y   D   a   t   e   ,
0017100        L   o   a   d   M   i   c   r   o   c   o   d   e   )  \r
0017120                L   o   a   d   K   T   (   c   m   d   K   T   ,
0017140        "   P   a   r   t   i   t   i   o   n   "   ,       0   ,
0017160        d   u   m   m   y   D   a   t   e   ,       P   a   r   t
0017200    i   t   i   o   n   )  \r               L   o   a   d   K   T
0017220    (   c   m   d   K   T   ,       "   P   o   w   e   r   O   f
0017240    f   "   ,       0   ,       d   u   m   m   y   D 376 001  \0
0017260    *   o   a   t   e   ,       P   o   w   e   r   O   f   f   )
0017300   \r               ]  \r   L   o   a   d   K   T   (   c   m   d
0017320    K   T   ,       "   P   r   o   b   e   "   ,       0   ,    
0017340    d   u   m   m   y   D   a   t   e   ,       P   r   o   b   e
0017360    )  \r   L   o   a   d   K   T   (   c   m   d   K   T   ,    
0017400    "   Q   u   i   t   "   ,       0   ,       d   u   m   m   y
0017420    D   a   t   e   ,       Q   u   i   t   )  \r   L   o   a   d
0017440    K   T   (   c   m   d   K   T   ,       "   S   e   t   T   i
0017460    m   e   "   ,       0   ,       d   u   m   m   y   D   a   t
0017500    e   ,       S   e   t   T   i   m   e   )  \r   L   o   a   d
0017520    K   T   (   c   m   d   K   T   ,       "   W   h   e   r   e
0017540    "   ,       0   ,       d   u   m   m   y   D   a   t   e   ,
0017560        W   h   e   r   e   )  \r  \r               [  \r        
0017600        k   b   d   C   S       =       I   n   i   t   C   m   d
0017620    (   2   5   6   ,       5   ,       0   ,       0   ,       0
0017640    ,       k   e   y   s   ,       c   m   d   D   s   p   )    
0017660    r   e 376 001  \0 370 250   p   e   a   t   u   n   t   i   l
0017700        k   b   d   C   S       n   e       0  \r               W
0017720    s   s   (   k   b   d   C   S   ,   "   *   N   >   "   )  \r
0017740                i   f       E   n   a   b   l   e   C   a   t   c
0017760    h   (   k   b   d   C   S   )       t   h   e   n  \r        
0020000                    [  \r                           i   f       C
0020020    m   d   E   r   r   o   r   C   o   d   e   (   k   b   d   C
0020040    S   )       e   q       e   c   K   e   y   N   o   t   F   o
0020060    u   n   d       t   h   e   n       P   r   o   b   e   (   )
0020100   \r                           E   n   d   C   a   t   c   h   (
0020120    k   b   d   C   S   )  \r                           ]  \r    
0020140            S   e   t   T   i   m   e   r   (   l   v       w   a
0020160    t   c   h   D   o   g   ,       3   0   0   0   0   )        
0020200    /   /   5       m   i   n  \r               l   e   t       k
0020220    t   e       =       G   e   t   K   e   y   w   o   r   d   (
0020240    k   b   d   C   S   ,       c   m   d   K   T   )  \r        
0020260        t   e   s   t       k 376 001  \0   i  \n   t   e   >   >
0020300    K   T   E   .   h   o   s   t       n   e       0  \r        
0020320                    i   f   s   o       E   t   h   e   r   B   o
0020340    o   t   (   k   t   e   >   >   K   T   E   .   b   f   n   ,
0020360        f   a   l   s   e   ,       k   t   e   >   >   K   T   E
0020400    .   h   o   s   t   )  \r                           i   f   n
0020420    o   t       (   k   t   e   >   >   K   T   E   .   b   f   n
0020440    )   (   )  \r               C   l   o   s   e   s   (   k   b
0020460    d   C   S   )  \r               ]       r   e   p   e   a   t
0020500   \r   ]  \r  \f  \r   /   /   -   -   -   -   -   -   -   -   -
0020520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0020620    -   -  \r   a   n   d       L   o   a   d   K   T   (   k   t
0020640    ,       n   a   m   e   ,       h   o   s   t   ,       d   a
0020660    t   e   ,       b   f   n   )       b   e  \r 376 001  \0   *
0020700  335   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0020720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0021000    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [
0021020   \r   l   e   t       k   t   e       =       L   o   o   k   u
0021040    p   K   e   y   w   o   r   d   (   k   t   ,       n   a   m
0021060    e   )  \r   i   f       k   t   e       n   e       0       &
0021100        D   o   u   b   l   e   U   s   c   (   d   a   t   e   ,
0021120        l   v       k   t   e   >   >   K   T   E   .   d   a   t
0021140    e   )       g   r       0       t   h   e   n  \r            
0021160    [       D   e   l   e   t   e   K   e   y   w   o   r   d   (
0021200    k   t   ,       n   a   m   e   )   ;       k   t   e       =
0021220        0       ]  \r   i   f       k   t   e       e   q       0
0021240        &       n   u   m   K   T   E   s       n   e       m   a
0021260    x   K   T   E   s       t   h   e   n  \r               [  \r
0021300      376 001  \0 320 347           k   t   e       =       I   n
0021320    s   e   r   t   K   e   y   w   o   r   d   (   k   t   ,    
0021340    n   a   m   e   )  \r               k   t   e   >   >   K   T
0021360    E   .   h   o   s   t       =       h   o   s   t  \r        
0021400        k   t   e   >   >   K   T   E   .   b   f   n       =    
0021420    b   f   n  \r               M   o   v   e   B   l   o   c   k
0021440    (   l   v       k   t   e   >   >   K   T   E   .   d   a   t
0021460    e   ,       d   a   t   e   ,       2   )  \r               ]
0021500   \r   ]  \r  \r   /   /   -   -   -   -   -   -   -   -   -   -
0021520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0021620    -   -  \r   a   n   d       D   o   u   b   l   e   U   s   c
0021640    (   l   v   A   ,       l   v   B   )       =  \r   /   /   -
0021660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0021700    -   -   -   -   -   - 376 001  \0   6 374   -   -   -   -   -
0021720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0022000   \r   /   /       l   v   A       a   n   d       l   v   B    
0022020    a   r   e       t   h   e       a   d   d   r   e   s   s   e
0022040    s       o   f       t   w   o       3   2   -   b   i   t    
0022060    o   p   e   r   a   n   d   s       R   e   t   u   r   n   s
0022100    :  \r   /   /  \t   -   1       i   f       A       <       B
0022120   \r   /   /  \t       0       i   f       A       =       B  \r
0022140    /   /  \t       1       i   f       A       >       B  \r   (
0022160    t   a   b   l   e  \r               [  \r                   4
0022200    1   0   0   3   b  \t   /   /  \t   s   t   a       0       3
0022220        2  \t   ;       l   v   A  \r                   4   5   0
0022240    0   2   b  \t   /   /  \t   s   t   a       1       2       2
0022260   \t   ;       l   v   B  \r                   2   3   0   0   3
0022300    b  \t   /   /  \t   l   d   a       0     376 001  \0   v 177
0022320    @   3       2  \t   ;       A       h   i   g   h       p   a
0022340    r   t  \r                   2   7   0   0   2   b  \t   /   /
0022360   \t   l   d   a       1       @   2       2  \t   ;       B    
0022400    h   i   g   h       p   a   r   t  \r               1   0   6
0022420    4   1   4   b  \t   /   /  \t   s   e       0       1  \t  \t
0022440    ;       A   ,       B  \r                           4   0   5
0022460    b  \t   /   /  \t       j   m   p       d   u   s   c   1  \r
0022500                    1   1   0   0   3   b  \t   /   /  \t   i   s
0022520    z       3       2  \t  \t   ;       l   v   A  \r            
0022540        1   1   0   0   2   b  \t   /   /  \t   i   s   z       2
0022560        2  \t  \t   ;       l   v   B  \r                   2   3
0022600    0   0   3   b  \t   /   /  \t   l   d   a       0       @   3
0022620        2  \t   ;       A       l   o   w       p   a   r   t  \r
0022640                    2   7   0   0   2   b  \t   /   /  \t   l   d
0022660    a       1       @   2       2  \t   ;       B       l   o   w
0022700        p   a   r   t  \r               1   0   6   4   3   3   b
0022720  376 001  \0 361   O  \t   /   /       d   u   s   c   1   :    
0022740    s   l   e   u       0       1  \t   ;       A   ,       B  \r
0022760                            4   0   5   b  \t   /   /  \t       j
0023000    m   p       g   r  \t  \t   ;       A       >       B  \r    
0023020            1   0   6   4   1   4   b  \t   /   /  \t   s   e    
0023040    0       1  \t  \t   ;       A   ,       B  \r               1
0023060    0   2   0   0   1   b  \t   /   /  \t       m   k   m   i   n
0023100    u   s   o   n   e       0       0       s   k   p  \t   ;    
0023120    A       <       B  \r               1   0   2   4   6   0   b
0023140   \t   /   /  \t   m   k   z   e   r   o       0       0  \t   ;
0023160        A       =       B  \r                       1   4   0   1
0023200    b  \t   /   /  \t   j   m   p       1       3  \r            
0023220    1   0   2   5   2   0   b  \t   /   /       g   r   :  \t   m
0023240    k   o   n   e       0       0  \r                       1   4
0023260    0   1   b  \t   /   /  \t   j   m   p       1       3  \r    
0023300            ]   )   (   l   v   A   ,       l   v   B   )  \r  \f
0023320   \r   /   /   -   - 376 001  \0   q 370   -   -   -   -   -   -
0023340    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0023440    -   -   -  \r   a   n   d       Q   u   i   t   (   )       b
0023460    e       E   t   h   e   r   B   o   o   t   (   0   )  \r   /
0023500    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0023520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0023600    -   -   -   -   -   -   -   -   -   -   -   -  \r  \r   /   /
0023620    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0023720    -   -   -   -   -   -   -   -   -   - 376 001  \0 350 374   -
0023740   \r   a   n   d       S   e   t   T   i   m   e   (   )       b
0023760    e       t   i   m   e   R   e   q   u   e   s   t       =    
0024000    t   r   u   e  \r   /   /   -   -   -   -   -   -   -   -   -
0024020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0024120    -   -  \r  \r   /   /   -   -   -   -   -   -   -   -   -   -
0024140    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0024240    -  \r   a   n   d       P   r   o   b   e   (   )       b   e
0024260        d   i   r   R   e   q   u   e   s   t       =       t   r
0024300    u   e  \r   /   /   -   -   -   -   -   -   -   -   -   -   -
0024320    -   -   -   -   -   -   -   -   -   -   -   -   -   -   - 376
0024340  001  \0 346   y   -   -   -   -   -   -   -   -   -   -   -   -
0024360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0024420    -   -   -   -   -  \r  \r   /   /   -   -   -   -   -   -   -
0024440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0024540    -   -   -   -  \r   a   n   d       P   a   r   t   i   t   i
0024560    o   n   (   )       b   e  \r   /   /   -   -   -   -   -   -
0024600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0024700    -   -   -   -   -  \r   [  \r   W   s   s   (   k   b   d   C
0024720    S   ,       "       n   u   m   b   e   r       "   )  \r   B
0024740    e   g   i   n 376 001  \0   5   A   D   e   f   a   u   l   t
0024760    P   h   r   a   s   e   (   k   b   d   C   S   )  \r   P   u
0025000    t   T   e   m   p   l   a   t   e   (   k   b   d   C   S   ,
0025020        "   $   D   "   ,       (   t   a   b   l   e       [    
0025040    6   1   0   3   7   b   ;       1   4   0   1   b       ]   )
0025060    (   0   )   )  \r   E   n   d   D   e   f   a   u   l   t   P
0025100    h   r   a   s   e   (   k   b   d   C   S   )  \r   (   t   a
0025120    b   l   e       [       6   1   0   3   7   b   ;       1   4
0025140    0   1   b       ]   )   (   G   e   t   N   u   m   b   e   r
0025160    (   k   b   d   C   S   )   )  \r   ]  \r  \r   /   /   -   -
0025200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0025300    -   -   -   -   -   -   -   -   -  \r   a   n   d       P   o
0025320    w   e   r   O   f   f   (   )       b   e       i   f       C
0025340    o   n   f   i   r   m   (   k   b 376 001  \0 350   O   d   C
0025360    S   )       t   h   e   n       (   t   a   b   l   e       [
0025400        6   1   0   3   4   b   ;       1   4   0   1   b       ]
0025420    )   (   )  \r   /   /   -   -   -   -   -   -   -   -   -   -
0025440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0025540    -  \r  \r   /   /   -   -   -   -   -   -   -   -   -   -   -
0025560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0025660   \r   a   n   d       W   a   t   c   h   D   o   g   (   )    
0025700    b   e           /   /   a       c   o   n   t   e   x   t  \r
0025720    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0025740    -   -   -   -   -   -   -   -   -   -   -   -   -   - 376 001
0025760   \0 230 035   -   -   -   -   -   -   -   -   -   -   -   -   -
0026000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0026040    -   -  \r   [  \r   S   e   t   T   i   m   e   r   (   l   v
0026060        w   a   t   c   h   D   o   g   ,       3   0   0   0   0
0026100    )           /   /   5       m   i   n   u   t   e   s  \r   B
0026120    l   o   c   k   (   )       r   e   p   e   a   t   u   n   t
0026140    i   l       T   i   m   e   r   H   a   s   E   x   p   i   r
0026160    e   d   (   l   v       w   a   t   c   h   D   o   g   )  \r
0026200    Q   u   i   t   (   )  \r   ]  \r  \f  \r   /   /   -   -   -
0026220    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0026320    -   -   -   -   -   -   -   -  \r   a   n   d       D   i   s
0026340    k   B   o   o   t   (   )       b   e  \r   /   /   -   -   -
0026360    -   -   - 376 001  \0 226   "   -   -   -   -   -   -   -   -
0026400    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0026460    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   /   /
0026500        D   0   s       d   o   n   '   t       b   o   o   t    
0026520    w   h   e   n       S   I   O       1   0   0   0   0   0    
0026540    i   s       e   x   e   c   u   t   e   d   ,       s   o    
0026560    t   h   i   s       B   c   p   l       p   r   o   c   e   d
0026600    u   r   e  \r   /   /           d   o   e   s       w   h   a
0026620    t       t   h   e       m   i   c   r   o   c   o   d   e    
0026640    s   h   o   u   l   d       d   o   .  \r   [  \r   s   t   r
0026660    u   c   t   u   r   e       K   C   B   :  \r               [
0026700   \r               l   i   n   k       w   o   r   d  \r        
0026720        s   t   a   t   u   s       w   o   r   d  \r            
0026740    c   o   m   m   a   n   d       w   o   r   d  \r            
0026760    h   e   a   d   e   r   A   d 376 001  \0   1 272   d   r   e
0027000    s   s       w   o   r   d  \r               l   a   b   e   l
0027020    A   d   d   r   e   s   s       w   o   r   d  \r            
0027040    d   a   t   a   A   d   d   r   e   s   s       w   o   r   d
0027060   \r               n   o   r   m   a   l   W   a   k   e   u   p
0027100    s       w   o   r   d  \r               e   r   r   o   r   W
0027120    a   k   e   u   p   s       w   o   r   d  \r               h
0027140    e   a   d   e   r       w   o   r   d  \r               d   i
0027160    s   k   A   d   d   r   e   s   s       w   o   r   d  \r    
0027200            ]  \r   m   a   n   i   f   e   s   t       l   e   n
0027220    K   C   B       =       s   i   z   e       K   C   B   /   1
0027240    6  \r  \r   @   d   i   s   p   l   a   y   L   i   s   t   H
0027260    e   a   d       =       0           /   /   t   u   r   n    
0027300    o   f   f       d   i   s   p   l   a   y  \r   (   t   a   b
0027320    l   e       [       6   1   0   0   0   b   ;       1   4   0
0027340    1   b       ]   )   (   )           /   /   d   i   s   a   b
0027360    l   e       i   n   t   e   r   r   u   p   t   s 376 001  \0
0027400  210 271  \r   S   t   a   r   t   I   O   (   3   )           /
0027420    /   r   e   s   e   t       E   t   h   e   r   n   e   t  \r
0027440   \r   l   e   t       k   c   b   ,       d   a   t   a   ,    
0027460    l   a   b   e   l       =       v   e   c       l   e   n   K
0027500    C   B   ,       v   e   c       2   5   6   ,       v   e   c
0027520        8  \r   f   o   r       t   r   i   e   s       =       1
0027540        t   o       1   0       d   o  \r               [  \r    
0027560            Z   e   r   o   (   k   c   b   ,       l   e   n   K
0027600    C   B   )  \r               k   c   b   >   >   K   C   B   .
0027620    c   o   m   m   a   n   d       =       4   4   1   0   0   b
0027640            /   /   c   h   e   c   k       h   e   a   d   e   r
0027660    ,       r   e   a   d       l   a   b   e   l   ,       r   e
0027700    a   d       d   a   t   a  \r               k   c   b   >   >
0027720    K   C   B   .   h   e   a   d   e   r   A   d   d   r   e   s
0027740    s       =       l   v       k   c   b   >   >   K   C   B   .
0027760    h   e   a   d   e   r  \r               k   c   b   >   >   K
0030000    C   B 376 001  \0   l   )   .   l   a   b   e   l   A   d   d
0030020    r   e   s   s       =       l   a   b   e   l  \r            
0030040    k   c   b   >   >   K   C   B   .   d   a   t   a   A   d   d
0030060    r   e   s   s       =       d   a   t   a  \r               k
0030100    c   b   >   >   K   C   B   .   d   i   s   k   A   d   d   r
0030120    e   s   s       =       k   b   d   A   d   !   0       x   o
0030140    r       -   1  \r               @   d   i   s   k   C   o   m
0030160    m   a   n   d       =       k   c   b           /   /   s   p
0030200    i   n       t   h   e       d   i   s   k  \r               w
0030220    h   i   l   e       (   k   c   b   >   >   K   C   B   .   s
0030240    t   a   t   u   s       &       7   4   0   0   b   )       e
0030260    q       0       l   o   o   p           /   /   w   a   i   t
0030300        f   o   r       i   t       t   o       s   t   o   p  \r
0030320                i   f       (   k   c   b   >   >   K   C   B   .
0030340    s   t   a   t   u   s       &       7   6   6   7   b   )    
0030360    e   q       7   4   0   0   b       b   r   e   a   k        
0030400    /   /   g   o   o   d     376 001  \0   ?   F   s   t   a   t
0030420    u   s  \r               i   f       t   r   i   e   s       e
0030440    q       1   0       t   h   e   n       C   a   l   l   S   w
0030460    a   t   (   "   1   0       c   o   n   s   e   c   u   t   i
0030500    v   e       e   r   r   o   r   s       r   e   a   d   i   n
0030520    g       v   d   a       0   "   )  \r               ]  \r  \r
0030540    M   o   v   e   B   l   o   c   k   (   4   0   2   b   ,    
0030560    l   a   b   e   l   ,       8   )           /   /   4   0   2
0030600    -   4   1   1       _       l   a   b   e   l  \r   M   o   v
0030620    e   B   l   o   c   k   (   1   ,       d   a   t   a   ,    
0030640    2   5   6   )           /   /       1   -   4   0   0       _
0030660        d   a   t   a  \r   @   2       =       k   c   b   >   >
0030700    K   C   B   .   s   t   a   t   u   s           /   /   2    
0030720    _       s   t   a   t   u   s  \r   g   o   t   o       1    
0030740        /   /   j   u   m   p       t   o       b   o   o   t   l
0030760    o   a   d   e   r       s   t   a   r   t       a   d   d   r
0031000    e   s   s  \r   ]  \r  \f  \r   /   /   -   - 376 001  \0 274
0031020  352   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0031040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0031120    -   -   -   -   -   -   -   -   -   -  \r   a   n   d       F
0031140    i   l   e   S   t   a   t   (   )       b   e  \r   /   /   -
0031160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0031260    -   -   -   -   -   -   -   -   -   -  \r   [  \r   W   s   s
0031300    (   k   b   d   C   S   ,       "       f   o   r       b   o
0031320    o   t       f   i   l   e       "   )  \r   l   e   t       k
0031340    t   e       =       G   e   t   K   e   y   w   o   r   d   (
0031360    k   b   d   C   S   ,       c   m   d   K   T   )  \r   i   f
0031400        k   t   e   >   >   K   T   E   .   h   o   s   t       e
0031420    q 376 001  \0 364  \a       0       t   h   e   n  \r        
0031440        [  \r               W   s   s   (   k   b   d   C   S   ,
0031460        "   *   N   N   e   t   E   x   e   c       c   o   m   m
0031500    a   n   d       -       n   o   t       a       b   o   o   t
0031520        f   i   l   e   "   )  \r               r   e   t   u   r
0031540    n  \r               ]  \r   P   u   t   T   e   m   p   l   a
0031560    t   e   (   k   b   d   C   S   ,       "   *   N   B   o   o
0031600    t       f   i   l   e       n   u   m   b   e   r       $   U
0031620    O   b   ,       f   r   o   m       h   o   s   t       $   U
0031640    O   #   ,       c   r   e   a   t   e   d       "   ,  \r    
0031660    k   t   e   >   >   K   T   E   .   b   f   n   ,       k   t
0031700    e   >   >   K   T   E   .   h   o   s   t   )  \r   l   e   t
0031720        u   t   v       =       v   e   c       7   ;       U   N
0031740    P   A   C   K   D   T   (   l   v       k   t   e   >   >   K
0031760    T   E   .   d   a   t   e   ,       u   t   v   )   ;       W
0032000    R   I   T   E   U   D   T   (   k   b   d   C   S   ,       u
0032020    t   v   )  \r   l   e 376 001  \0 271 020   t       a   l   t
0032040    o   I       =       e   n   g       l   e       1  \r   W   s
0032060    s   (   k   b   d   C   S   ,       "   *   N   k   e   y   s
0032100        <   B   S   >   "   )  \r   f   o   r       i       =    
0032120    0       t   o       1   5       d   o       i   f       (   (
0032140    k   t   e   >   >   K   T   E   .   b   f   n   )       &    
0032160    (   1   b   1   5       r   s   h   i   f   t       i   )   )
0032200        n   e       0       t   h   e   n  \r               W   s
0032220    s   (   k   b   d   C   S   ,       s   e   l   e   c   t   o
0032240    n       i       i   n   t   o  \r                           [
0032260   \r                           c   a   s   e       0   :       "
0032300        3   "  \r                           c   a   s   e       1
0032320    :       "       2   "  \r                           c   a   s
0032340    e       2   :       "       W   "  \r                        
0032360    c   a   s   e       3   :       "       Q   "  \r            
0032400                c   a   s   e       4   :       "       S   "  \r
0032420                            c   a   s   e     376 001  \0 266   |
0032440    5   :       "       A   "  \r                           c   a
0032460    s   e       6   :       "       9   "  \r                    
0032500        c   a   s   e       7   :       "       I   "  \r        
0032520                    c   a   s   e       8   :       "       X   "
0032540   \r                           c   a   s   e       9   :       "
0032560        O   "  \r                           c   a   s   e       1
0032600    0   :       "       L   "  \r                           c   a
0032620    s   e       1   1   :       "       <   c   o   m   m   a   >
0032640    "  \r                           c   a   s   e       1   2   :
0032660        "       <   q   u   o   t   e   >   "  \r                
0032700            c   a   s   e       1   3   :       "       ]   "  \r
0032720                            c   a   s   e       1   4   :       a
0032740    l   t   o   I   ?       "       <   b   l   a   n   k   -   m
0032760    i   d   d   l   e   >   "   ,       "       <   F   R   4   >
0033000    "  \r                           c   a   s   e       1   5   :
0033020        a   l   t   o   I   ?       "       <   b   l   a   n   k
0033040  376 001  \0 205 230   -   t   o   p   >   "   ,       "       <
0033060    B   W   >   "  \r                           ]   )  \r   ]  \r
0033100   \f  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0033120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0033220   \r   a   n   d       G   e   t   s   W   i   t   h   C   u   r
0033240    s   o   r   (   s   t   )       =       v   a   l   o   f  \r
0033260    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0033300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0033360    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [
0033400   \r   B   l   o   c   k   (   )       r   e   p   e   a   t   w
0033420    h   i   l   e       E   n   d   o   f   s   (   s   t   )  \r
0033440    E   r   a   s   e 376 001  \0 364 223   C   u   r   s   o   r
0033460    (   )  \r   r   e   s   u   l   t   i   s       s   t   >   >
0033500    S   T   .   p   a   r   1   (   s   t   )  \r   ]  \r  \r   /
0033520    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0033540    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0033620    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n
0033640    d       P   u   t   s   W   i   t   h   C   u   r   s   o   r
0033660    (   s   t   ,       c   h   a   r   )       b   e  \r   /   /
0033700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0034000    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   E
0034020    r   a   s   e   C   u   r   s   o   r   (   )  \r   P   u   t
0034040    b   a   c   k   s   (   s   t   ,     376 001  \0 222 216   c
0034060    h   a   r   )  \r   ]  \r  \r   /   /   -   -   -   -   -   -
0034100    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0034200    -   -   -   -   -   -  \r   a   n   d       E   n   d   o   f
0034220    W   i   t   h   C   u   r   s   o   r   (   s   t   )       =
0034240        v   a   l   o   f  \r   /   /   -   -   -   -   -   -   -
0034260    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0034360    -   -   -   -   -  \r   [  \r   i   f       T   i   m   e   r
0034400    H   a   s   E   x   p   i   r   e   d   (   l   v       c   u
0034420    r   s   o   r   T   i   m   e   r   )       t   h   e   n  \r
0034440                [  \r               S   e   t   T   i   m   e 376
0034460  001  \0   u   L   r   (   l   v       c   u   r   s   o   r   T
0034500    i   m   e   r   ,       5   0   )  \r               t   e   s
0034520    t       c   u   r   s   o   r   O   n  \r                    
0034540        i   f   s   o       E   r   a   s   e   C   u   r   s   o
0034560    r   (   )  \r                           i   f   n   o   t    
0034600    [       P   u   t   s   (   c   m   d   D   s   p   ,       $
0034620    |   )   ;       c   u   r   s   o   r   O   n       =       t
0034640    r   u   e       ]  \r               ]  \r   r   e   s   u   l
0034660    t   i   s       s   t   >   >   S   T   .   p   a   r   2   (
0034700    s   t   )  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -
0034720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0035020    -   -   -   -   -  \r   a   n   d       E   r   a   s   e   C
0035040    u   r   s   o   r   (   )       b   e       i   f       c   u
0035060    r   s   o   r 376  \0 225 331 216   O   n       t   h   e   n
0035100   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0035120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0035200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0035220    [  \r   E   r   a   s   e   B   i   t   s   (   c   m   d   D
0035240    s   p   ,       -   C   h   a   r   W   i   d   t   h   (   c
0035260    m   d   D   s   p   ,   $   |   )   )  \r   c   u   r   s   o
0035300    r   O   n       =       f   a   l   s   e  \r   ]  \r 377  \0
0035320   \0   N   e   t   E   x   e   c   1   .   b   c   p   l  \0 373
0035340  230 340 270 366  \0  \0 376 001  \0 320  \f   /   /       N   e
0035360    t   E   x   e   c   1   .   b   c   p   l  \r   /   /       C
0035400    o   p   y   r   i   g   h   t       X   e   r   o   x       C
0035420    o   r   p   o   r   a   t   i   o   n       1   9   7   9   ,
0035440        1   9   8   0   ,       1   9   8   2  \r   /   /       L
0035460    a   s   t       m   o   d   i   f   i   e   d       A   p   r
0035500    i   l       1   1   ,       1   9   8   2           2   :   0
0035520    0       P   M       b   y       B   o   g   g   s  \r  \r   g
0035540    e   t       "   P   u   p   E   f   t   p   .   d   e   c   l
0035560    "  \r   g   e   t       "   A   l   t   o   D   e   f   s   .
0035600    d   "  \r  \r   e   x   t   e   r   n   a   l  \r   [  \r   /
0035620    /       o   u   t   g   o   i   n   g       p   r   o   c   e
0035640    d   u   r   e   s  \r   P   r   i   n   t   N   a   m   e   ;
0035660        L   o   a   d   M   i   c   r   o   c   o   d   e   ;    
0035700    W   h   e   r   e  \r   G   e   t   T   i   m   e   ;       G
0035720    e   t   D   i   r   ;       G   e   t   N   a   m   e   ;    
0035740    N   e   t   B   o   o   t  \r  \r   /   / 376 001  \0 362   i
0035760        i   n   c   o   m   i   n   g       p   r   o   c   e   d
0036000    u   r   e   s  \r   L   o   a   d   K   T  \r  \r   Z   e   r
0036020    o   ;       D   e   q   u   e   u   e   ;       A   l   l   o
0036040    c   a   t   e   ;       F   r   e   e   ;       B   l   o   c
0036060    k  \r   S   e   t   T   i   m   e   r   ;       T   i   m   e
0036100    r   H   a   s   E   x   p   i   r   e   d   ;       S   e   t
0036120    C   a   l   e   n   d   a   r  \r   P   u   t   T   e   m   p
0036140    l   a   t   e   ;       W   s   s   ;       C   l   o   s   e
0036160    s  \r   S   t   r   i   n   g   C   o   m   p   a   r   e   ;
0036200        G   e   t   K   e   y   w   o   r   d   ;       G   e   t
0036220    S   t   r   i   n   g  \r   U   N   P   A   C   K   D   T   ;
0036240        W   R   I   T   E   U   D   T   ;       E   n   u   m   e
0036260    r   a   t   e   K   e   y   w   o   r   d   T   a   b   l   e
0036300   \r  \r   G   e   t   P   a   r   t   n   e   r   ;       O   p
0036320    e   n   L   e   v   e   l   1   S   o   c   k   e   t   ;    
0036340    C   l   o   s   e   L   e   v   e   l   1   S   o   c   k   e
0036360  376 001  \0 032 360   t  \r   G   e   t   P   B   I   ;       R
0036400    e   l   e   a   s   e   P   B   I   ;       C   o   m   p   l
0036420    e   t   e   P   u   p   ;       E   t   h   e   r   B   o   o
0036440    t  \r   O   p   e   n   E   F   T   P   S   o   c   ;       R
0036460    e   c   e   i   v   e   E   F   T   P   B   l   o   c   k   ;
0036500        C   l   o   s   e   E   F   T   P   S   o   c  \r  \r   /
0036520    /       i   n   c   o   m   i   n   g       s   t   a   t   i
0036540    c   s  \r   s   y   s   Z   o   n   e  \r   k   b   d   C   S
0036560    ;       c   m   d   D   s   p   ;       c   m   d   K   T   ;
0036600        e   b   K   T   ;       b   u   f   ;       e   n   g  \r
0036620    l   e   n   P   B   I   ;       n   d   b   Q  \r  \r   /   /
0036640        o   u   t   g   o   i   n   g       s   t   a   t   i   c
0036660    s  \r   t   i   m   e   R   e   q   u   e   s   t   ;       d
0036700    i   r   R   e   q   u   e   s   t  \r   ]  \r  \r   s   t   a
0036720    t   i   c  \r   [  \r   t   i   m   e   R   e   q   u   e   s
0036740    t       =       t   r   u   e  \r   d   i   r   R   e   q   u
0036760    e   s   t       = 376 001  \0   @   &       t   r   u   e  \r
0037000    o   u   r   N   a   m   e       =       0  \r   ]  \r  \r   m
0037020    a   n   i   f   e   s   t  \r   [  \r   p   s   M   i   s   c
0037040    S   e   r   v       =       4  \r   p   t   A   l   t   o   T
0037060    i   m   e   R   e   q       =       2   0   6   b  \r   p   t
0037100    A   l   t   o   T   i   m   e   R   e   p   l   y       =    
0037120    2   0   7   b  \r   p   t   B   o   o   t   F   i   l   e   R
0037140    e   q       =       2   4   4   b  \r   p   t   B   o   o   t
0037160    D   i   r   R   e   q       =       2   5   7   b  \r   p   t
0037200    B   o   o   t   D   i   r   R   e   p   l   y       =       2
0037220    6   0   b  \r   p   t   A   d   d   r   e   s   s   L   o   o
0037240    k   u   p       =       2   2   3   b  \r   p   t   A   d   d
0037260    r   e   s   s   R   e   p   l   y       =       2   2   4   b
0037300   \r   p   t   A   d   d   r   e   s   s   E   r   r   o   r    
0037320    =       2   2   2   b  \r   ]  \r  \r   s   t   r   u   c   t
0037340    u   r   e       K   T   E   :  \r   [  \r   d   a   t   e    
0037360    w   o   r   d       2  \r   h   o   s 376 001  \0 324 375   t
0037400        w   o   r   d  \t   /   /   i   f       h   o   s   t    
0037420    i   s       z   e   r   o       t   h   e   n  \r   b   f   n
0037440        w   o   r   d  \t   /   /   b   f   n       i   s       r
0037460    e   a   l   l   y       a       l   o   c   a   l       p   r
0037500    o   c   e   d   u   r   e       (   e   .   g   .       B   f
0037520    n   T   o   K   e   y   s   )  \r   ]  \r  \r   s   t   r   u
0037540    c   t   u   r   e       B   F   D   :       [       b   f   n
0037560        w   o   r   d   ;       d   a   t   e       w   o   r   d
0037600        2   ;       n   a   m   e       @   S   t   r   i   n   g
0037620        ]  \r  \f  \r   /   /   -   -   -   -   -   -   -   -   -
0037640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0037740    -   -  \r   l   e   t       G   e   t   T   i   m   e   (   )
0037760        b   e           /   /   a       c   o   n   t   e   x 376
0040000  001  \0 361 212   t  \r   /   /   -   -   -   -   -   -   -   -
0040020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0040120    -   -   -  \r   [  \r   B   l   o   c   k   (   )       r   e
0040140    p   e   a   t   u   n   t   i   l       t   i   m   e   R   e
0040160    q   u   e   s   t  \r   l   e   t       p   b   i       =    
0040200    A   l   l   o   c   a   t   e   (   s   y   s   Z   o   n   e
0040220    ,       l   e   n   P   B   I   )   ;       Z   e   r   o   (
0040240    p   b   i   ,       l   e   n   P   B   I   )  \r   p   b   i
0040260    >   >   P   B   I   .   p   u   p   .   t   y   p   e       =
0040300        p   t   A   l   t   o   T   i   m   e   R   e   q  \r   p
0040320    b   i   >   >   P   B   I   .   p   u   p   .   l   e   n   g
0040340    t   h       =       p   u   p   O   v   B   y   t   e   s  \r
0040360    p   b   i   >   >   P   B   I   .   p   u   p   .   d   P   o
0040400    r   t   .   s 376 001  \0 374 363   o   c   k   e   t   ^   2
0040420        =       p   s   M   i   s   c   S   e   r   v  \r   S   i
0040440    m   p   l   e   P   u   p   (   p   b   i   ,       5   0   ,
0040460        1   0   0   0   ,       I   n   s   t   a   l   l   T   i
0040500    m   e   )  \r   F   r   e   e   (   s   y   s   Z   o   n   e
0040520    ,       p   b   i   )  \r   t   i   m   e   R   e   q   u   e
0040540    s   t       =       0  \r   ]       r   e   p   e   a   t  \r
0040560   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0040600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0040660    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0040700    n   d       I   n   s   t   a   l   l   T   i   m   e   (   p
0040720    b   i   ,       n   i   l   )       =       v   a   l   o   f
0040740   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0040760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0041000    -   -   -   -   -   -   -   -   - 376 001  \0   ' 002   -   -
0041020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0041060    -   -   -  \r   [  \r   s   t   r   u   c   t   u   r   e    
0041100    N   T   i   m   e   :  \r               [  \r               t
0041120    i   m   e       w   o   r   d       2  \r               z   o
0041140    n   e   :  \r                           [  \r                
0041160            s   i   g   n       b   i   t       1  \r            
0041200                h   o   u   r       b   i   t       7  \r        
0041220                    m   i   n   u   t   e       b   i   t       8
0041240   \r                           ]  \r               b   e   g   i
0041260    n   D   S   T       w   o   r   d  \r               e   n   d
0041300    D   S   T       w   o   r   d  \r               ]  \r  \r   i
0041320    f       p   b   i   >   >   P   B   I   .   p   u   p   .   t
0041340    y   p   e       n   e       p   t   A   l   t   o   T   i   m
0041360    e   R   e   p   l   y       r   e   s   u   l   t   i   s    
0041400    t   r   u   e           /   /       k   e   e   p     376 001
0041420   \0 333   T   t   r   y   i   n   g  \r   l   e   t       n   T
0041440    i   m   e       =       l   v       p   b   i   >   >   P   B
0041460    I   .   p   u   p   .   w   o   r   d   s  \r   S   e   t   C
0041500    a   l   e   n   d   a   r   (   l   v       n   T   i   m   e
0041520    >   >   N   T   i   m   e   .   t   i   m   e   )  \r   t   i
0041540    m   e   P   a   r   a   m   s   >   >   L   T   P   .   s   i
0041560    g   n       =       n   T   i   m   e   >   >   N   T   i   m
0041600    e   .   z   o   n   e   .   s   i   g   n  \r   t   i   m   e
0041620    P   a   r   a   m   s   >   >   L   T   P   .   z   o   n   e
0041640    H       =       n   T   i   m   e   >   >   N   T   i   m   e
0041660    .   z   o   n   e   .   h   o   u   r  \r   t   i   m   e   P
0041700    a   r   a   m   s   >   >   L   T   P   .   z   o   n   e   M
0041720        =       n   T   i   m   e   >   >   N   T   i   m   e   .
0041740    z   o   n   e   .   m   i   n   u   t   e  \r   t   i   m   e
0041760    P   a   r   a   m   s   >   >   L   T   P   .   b   e   g   i
0042000    n   D   S   T       =       n   T   i   m   e   >   >   N   T
0042020    i   m   e 376 001  \0   j 334   .   b   e   g   i   n   D   S
0042040    T  \r   t   i   m   e   P   a   r   a   m   s   >   >   L   T
0042060    P   .   e   n   d   D   S   T       =       n   T   i   m   e
0042100    >   >   N   T   i   m   e   .   e   n   d   D   S   T  \r   r
0042120    e   s   u   l   t   i   s       f   a   l   s   e  \r   ]  \r
0042140   \f  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0042160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0042240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0042260    a   n   d       G   e   t   D   i   r   (   )       b   e    
0042300        /   /   a       c   o   n   t   e   x   t  \r   /   /   -
0042320    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0042420    -   -   -   -   -   -   -   - 376 001  \0 203 355   -   -  \r
0042440    [  \r   B   l   o   c   k   (   )       r   e   p   e   a   t
0042460    u   n   t   i   l       d   i   r   R   e   q   u   e   s   t
0042500   \r   l   e   t       p   b   i       =       A   l   l   o   c
0042520    a   t   e   (   s   y   s   Z   o   n   e   ,       l   e   n
0042540    P   B   I   )   ;       Z   e   r   o   (   p   b   i   ,    
0042560    l   e   n   P   B   I   )  \r   p   b   i   >   >   P   B   I
0042600    .   p   u   p   .   t   y   p   e       =       p   t   B   o
0042620    o   t   D   i   r   R   e   q  \r   p   b   i   >   >   P   B
0042640    I   .   p   u   p   .   l   e   n   g   t   h       =       p
0042660    u   p   O   v   B   y   t   e   s  \r   p   b   i   >   >   P
0042700    B   I   .   p   u   p   .   d   P   o   r   t   .   s   o   c
0042720    k   e   t   ^   2       =       p   s   M   i   s   c   S   e
0042740    r   v  \r   S   i   m   p   l   e   P   u   p   (   p   b   i
0042760    ,       1   0   0   ,       3   0   0   ,       I   n   s   t
0043000    a   l   l   D   i   r   )  \r   d   i   r   R   e   q   u   e
0043020    s   t       =       0  \r   ]       r   e   p   e 376 001  \0
0043040    L 034   a   t  \r  \r   /   /   -   -   -   -   -   -   -   -
0043060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0043160    -   -   -  \r   a   n   d       I   n   s   t   a   l   l   D
0043200    i   r   (   p   b   i   ,       n   i   l   )       =       v
0043220    a   l   o   f  \r   /   /   -   -   -   -   -   -   -   -   -
0043240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0043340    -   -  \r   [  \r   i   f       p   b   i   >   >   P   B   I
0043360    .   p   u   p   .   t   y   p   e       e   q       p   t   B
0043400    o   o   t   D   i   r   R   e   p   l   y       t   h   e   n
0043420   \r               [  \r               l   e   t       p   t   r
0043440    ,     376 001  \0 237   ;   m   a   x   P   t   r       =    
0043460    1   ,       (   p   b   i   >   >   P   B   I   .   p   u   p
0043500    .   l   e   n   g   t   h       -       p   u   p   O   v   B
0043520    y   t   e   s   )   /   2  \r               l   e   t       h
0043540    o   s   t       =       p   b   i   >   >   P   B   I   .   p
0043560    u   p   .   s   P   o   r   t   .   h   o   s   t  \r        
0043600        w   h   i   l   e       p   t   r       l   s       m   a
0043620    x   P   t   r       d   o  \r                           [  \r
0043640                            l   e   t       b   f   d       =    
0043660    l   v       p   b   i   >   >   P   B   I   .   p   u   p   .
0043700    w   o   r   d   s   ^   p   t   r  \r                        
0043720    l   e   t       n   a   m   e       =       l   v       b   f
0043740    d   >   >   B   F   D   .   n   a   m   e  \r                
0043760            l   e   t       l   e   n   g   t   h       =       n
0044000    a   m   e   >   >   S   t   r   i   n   g   .   l   e   n   g
0044020    t   h  \r                           i   f       S   t   r   i
0044040    n   g   C   o   m   p   a 376 001  \0 212   D   r   e   (   n
0044060    a   m   e   ,       "   .   b   o   o   t   "   ,       l   e
0044100    n   g   t   h   -   4   )       e   q       0       t   h   e
0044120    n  \r                                       L   o   a   d   K
0044140    T   (   c   m   d   K   T   ,       n   a   m   e   ,       h
0044160    o   s   t   ,       l   v       b   f   d   >   >   B   F   D
0044200    .   d   a   t   e   ,       b   f   d   >   >   B   F   D   .
0044220    b   f   n   )  \r                           i   f       S   t
0044240    r   i   n   g   C   o   m   p   a   r   e   (   n   a   m   e
0044260    ,       "   .   e   b   "   ,       l   e   n   g   t   h   -
0044300    2   )       e   q       0       t   h   e   n  \r            
0044320                            L   o   a   d   K   T   (   e   b   K
0044340    T   ,       n   a   m   e   ,       h   o   s   t   ,       l
0044360    v       b   f   d   >   >   B   F   D   .   d   a   t   e   ,
0044400        b   f   d   >   >   B   F   D   .   b   f   n   )  \r    
0044420                        p   t   r       =       p   t   r       +
0044440        4       +       l   e   n   g   t   h   / 376 001  \0 317
0044460  322   2  \r                           ]  \r               ]  \r
0044500    r   e   s   u   l   t   i   s       t   r   u   e  \r   ]  \r
0044520   \f  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0044540    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0044620    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0044640    a   n   d       G   e   t   N   a   m   e   (   )       b   e
0044660            /   /   a       c   o   n   t   e   x   t  \r   /   /
0044700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0045000    -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   l   e
0045020    t       n   d   b       =       n   d   b   Q   !   0   ;    
0045040    B   l   o   c   k   (   )       r   e   p   e   a   t   w   h
0045060    i 376 001  \0   : 314   l   e       o   u   r   N   a   m   e
0045100        n   e       0       %       n   d   b   >   >   N   D   B
0045120    .   l   o   c   a   l   N   e   t       e   q       0  \r   l
0045140    e   t       p   b   i       =       A   l   l   o   c   a   t
0045160    e   (   s   y   s   Z   o   n   e   ,       l   e   n   P   B
0045200    I   )   ;       Z   e   r   o   (   p   b   i   ,       l   e
0045220    n   P   B   I   )  \r   p   b   i   >   >   P   B   I   .   p
0045240    u   p   .   t   y   p   e       =       p   t   A   d   d   r
0045260    e   s   s   L   o   o   k   u   p  \r   p   b   i   >   >   P
0045300    B   I   .   p   u   p   .   l   e   n   g   t   h       =    
0045320    p   u   p   O   v   B   y   t   e   s   +   6  \r   p   b   i
0045340    >   >   P   B   I   .   p   u   p   .   d   P   o   r   t   .
0045360    s   o   c   k   e   t   ^   2       =       p   s   M   i   s
0045400    c   S   e   r   v  \r   l   e   t       p   o   r   t       =
0045420        l   v       p   b   i   >   >   P   B   I   .   p   u   p
0045440    .   b   y   t   e   s   ^   1  \r   p   o   r   t   >   >   P
0045460    o   r   t   .   n   e 376 001  \0   P 257   t       =       n
0045500    d   b   >   >   N   D   B   .   l   o   c   a   l   N   e   t
0045520   \r   p   o   r   t   >   >   P   o   r   t   .   h   o   s   t
0045540        =       n   d   b   >   >   N   D   B   .   l   o   c   a
0045560    l   H   o   s   t  \r   S   i   m   p   l   e   P   u   p   (
0045600    p   b   i   ,       1   0   0   ,       5   0   0   ,       I
0045620    n   s   t   a   l   l   N   a   m   e   )  \r   F   r   e   e
0045640    (   s   y   s   Z   o   n   e   ,       p   b   i   )  \r   ]
0045660        r   e   p   e   a   t  \r  \r   /   /   -   -   -   -   -
0045700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0046000    -   -   -   -   -   -  \r   a   n   d       I   n   s   t   a
0046020    l   l   N   a   m   e   (   p   b   i   ,       n   i   l   )
0046040        =       v   a   l   o   f  \r   /   /   -   -   -   -   -
0046060    -   -   -   -   -   -   -   -   -   -   - 376 001  \0 274 323
0046100    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0046160    -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   s   w
0046200    i   t   c   h   o   n       p   b   i   >   >   P   B   I   .
0046220    p   u   p   .   t   y   p   e       i   n   t   o  \r        
0046240        [  \r               c   a   s   e       p   t   A   d   d
0046260    r   e   s   s   R   e   p   l   y   :  \r                    
0046300        [  \r                           l   e   t       n   u   m
0046320    C   h   a   r   s       =       p   b   i   >   >   P   B   I
0046340    .   p   u   p   .   l   e   n   g   t   h       -       p   u
0046360    p   O   v   B   y   t   e   s  \r                           o
0046400    u   r   N   a   m   e       =       A   l   l   o   c   a   t
0046420    e   (   s   y   s   Z   o   n   e   ,       n   u   m   C   h
0046440    a   r   s   /   2   +   1   )  \r                           f
0046460    o   r       i       =       1       t   o       n   u   m   C
0046500  376 001  \0   ] 271   h   a   r   s       d   o  \r            
0046520                            o   u   r   N   a   m   e   >   >   S
0046540    t   r   i   n   g   .   c   h   a   r   ^   i       =       p
0046560    b   i   >   >   P   B   I   .   p   u   p   .   b   y   t   e
0046600    s   ^   i  \r                           o   u   r   N   a   m
0046620    e   >   >   S   t   r   i   n   g   .   l   e   n   g   t   h
0046640        =       n   u   m   C   h   a   r   s  \r                
0046660            r   e   s   u   l   t   i   s       f   a   l   s   e
0046700   \r                           ]  \r               c   a   s   e
0046720        p   t   A   d   d   r   e   s   s   E   r   r   o   r   :
0046740   \r                           [  \r                           o
0046760    u   r   N   a   m   e       =       -   1  \r                
0047000            r   e   s   u   l   t   i   s       f   a   l   s   e
0047020   \r                           ]  \r               d   e   f   a
0047040    u   l   t   :       r   e   s   u   l   t   i   s       t   r
0047060    u   e  \r               ]  \r   ]  \r  \r   /   /   -   -   -
0047100    -   -   -   -   - 376 001  \0  \f   2   -   -   -   -   -   -
0047120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0047200    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0047220    n   d       P   r   i   n   t   N   a   m   e   (   s   t   r
0047240    e   a   m   )       b   e  \r   /   /   -   -   -   -   -   -
0047260    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0047360    -   -   -   -   -   -  \r   [  \r   t   e   s   t       o   u
0047400    r   N   a   m   e       e   q       0       %       o   u   r
0047420    N   a   m   e       e   q       -   1  \r               i   f
0047440    s   o  \r                           [  \r                    
0047460        l   e   t       n   d   b       =       n   d   b   Q   !
0047500    0  \r                           P   u 376 001  \0   z 342   t
0047520    T   e   m   p   l   a   t   e   (   s   t   r   e   a   m   ,
0047540        "   [   $   O   #   $   O   #   ]   "   ,  \r            
0047560                    n   d   b   >   >   N   D   B   .   l   o   c
0047600    a   l   N   e   t   ,       n   d   b   >   >   N   D   B   .
0047620    l   o   c   a   l   H   o   s   t   )  \r                    
0047640        ]  \r               i   f   n   o   t       P   u   t   T
0047660    e   m   p   l   a   t   e   (   s   t   r   e   a   m   ,    
0047700    "   [   $   S   ]   "   ,       o   u   r   N   a   m   e   )
0047720   \r   ]  \r  \f  \r   /   /   -   -   -   -   -   -   -   -   -
0047740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0050040    -   -  \r   a   n   d       L   o   a   d   M   i   c   r   o
0050060    c   o   d   e   (   )       b   e  \r   /   /   -   -   -   -
0050100    -   -   -   -   -   -   -   -   -   -   -   -   -   -   - 376
0050120  001  \0 324 346   -   -   -   -   -   -   -   -   -   -   -   -
0050140    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0050200    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   W
0050220    s   s   (   k   b   d   C   S   ,       "       f   r   o   m
0050240        f   i   l   e       "   )  \r   l   e   t       k   t   e
0050260        =       G   e   t   K   e   y   w   o   r   d   (   k   b
0050300    d   C   S   ,       e   b   K   T   )  \r   C   l   o   s   e
0050320    s   (   c   m   d   D   s   p   )  \r  \r   l   e   t       s
0050340    o   c   ,       p   o   r   t       =       v   e   c       l
0050360    e   n   E   F   T   P   S   o   c   ,       v   e   c       l
0050400    e   n   P   o   r   t  \r   p   o   r   t   >   >   P   o   r
0050420    t   .   n   e   t       =       (   n   d   b   Q   !   0   )
0050440    >   >   N   D   B   .   l   o   c   a   l   N   e   t  \r   p
0050460    o   r   t   >   >   P   o   r   t   .   h   o   s   t       =
0050500        k   t   e   >   >   K   T   E   .   h   o   s   t  \r   p
0050520    o   r   t   > 376 001  \0 374 371   >   P   o   r   t   .   s
0050540    o   c   k   e   t   ^   1       =       0  \r   p   o   r   t
0050560    >   >   P   o   r   t   .   s   o   c   k   e   t   ^   2    
0050600    =       p   s   M   i   s   c   S   e   r   v  \r   O   p   e
0050620    n   E   F   T   P   S   o   c   (   s   o   c   ,       0   ,
0050640        p   o   r   t   )  \r  \r   /   /       o   u   g   h   t
0050660        t   o       d   o       s   o   m   e       b   u   f   f
0050700    e   r       b   o   u   n   d   s       c   h   e   c   k   i
0050720    n   g   ,       a   n   d       c   h   e   c   k       f   i
0050740    l   e       c   h   e   c   k   s   u   m  \r   l   e   t    
0050760    b   y   t   e   P   t   r       =       n   i   l  \r        
0051000        [  \r               l   e   t       p   b   i       =    
0051020    G   e   t   P   B   I   (   s   o   c   )  \r               p
0051040    b   i   >   >   P   B   I   .   p   u   p   .   i   d   ^   2
0051060        =       k   t   e   >   >   K   T   E   .   b   f   n  \r
0051100                C   o   m   p   l   e   t   e   P   u   p   (   p
0051120    b   i   ,       p   t   B   o   o 376 001  \0 302   !   t   F
0051140    i   l   e   R   e   q   ,       p   u   p   O   v   B   y   t
0051160    e   s   )  \r               b   y   t   e   P   t   r       =
0051200        R   e   c   e   i   v   e   E   F   T   P   B   l   o   c
0051220    k   (   s   o   c   ,       b   u   f   ,       1   0   0   )
0051240        /   /       1       s   e   c  \r               ]       r
0051260    e   p   e   a   t   u   n   t   i   l       b   y   t   e   P
0051300    t   r       g   r       0  \r  \r   l   e   t       b   y   t
0051320    e   s       =       n   i   l  \r               [  \r        
0051340        b   y   t   e   s       =       R   e   c   e   i   v   e
0051360    E   F   T   P   B   l   o   c   k   (   s   o   c   ,       b
0051400    u   f   +   b   y   t   e   P   t   r       r   s   h   i   f
0051420    t       1   ,       1   0   0   0   )           /   /       1
0051440    0       s   e   c  \r               b   y   t   e   P   t   r
0051460        =       b   y   t   e   P   t   r       +       b   y   t
0051500    e   s  \r               ]       r   e   p   e   a   t   u   n
0051520    t   i   l       b   y   t   e   s       l   e       0 376 001
0051540   \0 302 352  \r  \r   C   l   o   s   e   E   F   T   P   S   o
0051560    c   (   s   o   c   )  \r  \r   l   e   t       p   t   r    
0051600    =       b   u   f       +       2   5   6  \r   i   f       e
0051620    n   g       e   q       4       t   h   e   n  \r            
0051640    [           /   /       m   a   g   i   c       i   n   c   a
0051660    n   t   a   t   i   o   n       f   r   o   m       H   G   M
0051700   \r               p   t   r       =       p   t   r       -   1
0051720   \r               p   t   r   !   0       =       0  \r        
0051740        ]  \r   (   t   a   b   l   e       [       6   1   0   3
0051760    6   b   ;       1   4   0   1   b       ]   )   (   p   t   r
0052000    ,       t   r   u   e   )           /   /       l   o   a   d
0052020        r   a   m       a   n   d       b   o   o   t  \r   ]  \r
0052040   \f  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0052060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0052140    -   -   - 376 001  \0 204 352   -   -   -   -   -   -   -   -
0052160    -   -   -   -  \r   a   n   d       W   h   e   r   e   (   )
0052200        b   e  \r   /   /   -   -   -   -   -   -   -   -   -   -
0052220    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0052320    -  \r   [  \r   W   s   s   (   k   b   d   C   S   ,       "
0052340        (   i   s       b   o   o   t       f   i   l   e   )    
0052360    "   )  \r   l   e   t       k   t   e       =       G   e   t
0052400    K   e   y   w   o   r   d   (   k   b   d   C   S   ,       c
0052420    m   d   K   T   )  \r   l   e   t       p   b   i       =    
0052440    A   l   l   o   c   a   t   e   (   s   y   s   Z   o   n   e
0052460    ,       l   e   n   P   B   I   )   ;       Z   e   r   o   (
0052500    p   b   i   ,       l   e   n   P   B   I   )  \r   p   b   i
0052520    >   >   P   B   I   .   p   u   p   .   t   y   p   e       =
0052540        p   t   B   o   o   t   D 376 001  \0 245   0   i   r   R
0052560    e   q  \r   p   b   i   >   >   P   B   I   .   p   u   p   .
0052600    l   e   n   g   t   h       =       p   u   p   O   v   B   y
0052620    t   e   s  \r   p   b   i   >   >   P   B   I   .   p   u   p
0052640    .   d   P   o   r   t   .   s   o   c   k   e   t   ^   2    
0052660    =       p   s   M   i   s   c   S   e   r   v  \r   S   i   m
0052700    p   l   e   P   u   p   (   p   b   i   ,       1   0   0   0
0052720    ,       2   5   0   ,       W   h   e   r   e   M   a   t   c
0052740    h   ,       k   t   e   !   -   1   )  \r   F   r   e   e   (
0052760    s   y   s   Z   o   n   e   ,       p   b   i   )  \r   ]  \r
0053000   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0053020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053100    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0053120    n   d       W   h   e   r   e   M   a   t   c   h   (   p   b
0053140    i   ,       s   t   r   i   n   g   )       =     376 001  \0
0053160    *   a   v   a   l   o   f  \r   /   /   -   -   -   -   -   -
0053200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053300    -   -   -   -   -  \r   [  \r   i   f       p   b   i   >   >
0053320    P   B   I   .   p   u   p   .   t   y   p   e       e   q    
0053340    p   t   B   o   o   t   D   i   r   R   e   p   l   y       t
0053360    h   e   n  \r               [  \r               l   e   t    
0053400    p   t   r   ,       m   a   x   P   t   r       =       1   ,
0053420        (   p   b   i   >   >   P   B   I   .   p   u   p   .   l
0053440    e   n   g   t   h   -   p   u   p   O   v   B   y   t   e   s
0053460    )   /   2  \r               w   h   i   l   e       p   t   r
0053500        l   s       m   a   x   P   t   r       d   o  \r        
0053520                    [  \r                           l   e   t    
0053540    b   f   d       =       l   v       p   b   i   >   >   P   B
0053560    I   . 376 001  \0   = 336   p   u   p   .   w   o   r   d   s
0053600    ^   p   t   r  \r                           l   e   t       n
0053620    a   m   e       =       l   v       b   f   d   >   >   B   F
0053640    D   .   n   a   m   e  \r                           l   e   t
0053660        l   e   n   g   t   h       =       n   a   m   e   >   >
0053700    S   t   r   i   n   g   .   l   e   n   g   t   h  \r        
0053720                    i   f       S   t   r   i   n   g   C   o   m
0053740    p   a   r   e   (   s   t   r   i   n   g   ,       n   a   m
0053760    e   )       e   q       0       t   h   e   n  \r            
0054000                            [  \r                                
0054020        l   e   t       u   t   v       =       v   e   c       7
0054040    ;       U   N   P   A   C   K   D   T   (   l   v       b   f
0054060    d   >   >   B   F   D   .   d   a   t   e   ,       u   t   v
0054100    )  \r                                       P   u   t   T   e
0054120    m   p   l   a   t   e   (   c   m   d   D   s   p   ,       "
0054140    *   N   [   $   O   #   ]       b   o   o   t       f   i   l
0054160    e       n   u   m   b   e 376 001  \0   < 222   r       $   U
0054200    O   ,       c   r   e   a   t   e   d       $   P   "   ,  \r
0054220                                            p   b   i   >   >   P
0054240    B   I   .   p   u   p   .   s   P   o   r   t   .   h   o   s
0054260    t   ,       b   f   d   >   >   B   F   D   .   b   f   n   ,
0054300        W   R   I   T   E   U   D   T   ,       u   t   v   )  \r
0054320                                        ]  \r                    
0054340        p   t   r       =       p   t   r       +       4       +
0054360        l   e   n   g   t   h   /   2  \r                        
0054400    ]  \r               ]  \r   r   e   s   u   l   t   i   s    
0054420    t   r   u   e  \r   ]  \r  \f  \r   /   /   -   -   -   -   -
0054440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0054540    -   -   -   -   -   -  \r   a   n   d       N   e   t   B   o
0054560    o   t   (   )       b   e  \r   /   /   -   - 376 001  \0   G
0054600    w   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0054620    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0054700    -   -   -   -   -   -   -   -   -   -  \r   [  \r   W   s   s
0054720    (   k   b   d   C   S   ,       "       (   f   i   l   e    
0054740    n   a   m   e   d   )       "   )  \r   l   e   t       k   t
0054760    e       =       G   e   t   K   e   y   w   o   r   d   (   k
0055000    b   d   C   S   ,       c   m   d   K   T   )  \r   i   f    
0055020    k   t   e   >   >   K   T   E   .   h   o   s   t       e   q
0055040        0       t   h   e   n  \r               [       W   s   s
0055060    (   k   b   d   C   S   ,       "       -       N   e   t   E
0055100    x   e   c       c   o   m   m   a   n   d   ;       n   o   t
0055120        a       b   o   o   t       f   i   l   e   "   )   ;    
0055140    r   e   t   u   r   n       ]  \r   W   s   s   (   k   b   d
0055160    C   S   ,       "       (   f   r   o   m       s   e   r   v
0055200    e 376 001  \0   ) 277   r   )       "   )  \r   l   e   t    
0055220    s   e   r   v   e   r       =       G   e   t   S   t   r   i
0055240    n   g   (   k   b   d   C   S   )  \r   i   f       s   e   r
0055260    v   e   r   >   >   S   t   r   i   n   g   .   c   h   a   r
0055300    ^   1       e   q       $   [       t   h   e   n  \r        
0055320        [  \r               f   o   r       i       =       2    
0055340    t   o       s   e   r   v   e   r   >   >   S   t   r   i   n
0055360    g   .   l   e   n   g   t   h   -   1       d   o  \r        
0055400                    s   e   r   v   e   r   >   >   S   t   r   i
0055420    n   g   .   c   h   a   r   ^   (   i   -   1   )       =    
0055440    s   e   r   v   e   r   >   >   S   t   r   i   n   g   .   c
0055460    h   a   r   ^   i  \r               s   e   r   v   e   r   >
0055500    >   S   t   r   i   n   g   .   l   e   n   g   t   h       =
0055520        s   e   r   v   e   r   >   >   S   t   r   i   n   g   .
0055540    l   e   n   g   t   h       -   2  \r               ]  \r   l
0055560    e   t       p   o   r   t       =       v   e   c       l   e
0055600    n   P   o   r   t  \r 376 001  \0 272 365   i   f       G   e
0055620    t   P   a   r   t   n   e   r   (   s   e   r   v   e   r   ,
0055640        k   b   d   C   S   ,       p   o   r   t   )       t   h
0055660    e   n  \r               E   t   h   e   r   B   o   o   t   (
0055700    k   t   e   >   >   K   T   E   .   b   f   n   ,       f   a
0055720    l   s   e   ,       p   o   r   t   >   >   P   o   r   t   .
0055740    h   o   s   t   )  \r   F   r   e   e   (   s   y   s   Z   o
0055760    n   e   ,       s   e   r   v   e   r   )  \r   ]  \r  \f  \r
0056000    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0056020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0056100    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0056120    n   d       S   i   m   p   l   e   P   u   p   (   o   u   t
0056140    P   b   i   ,       r   e   t   r   a   n   s   T   O   ,    
0056160    t   o   t   a   l   T   O   ,       p   r   o   c   ,       a
0056200    r   g   )       b   e  \r   /   /   -   - 376 001  \0 310   v
0056220    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0056320    -   -   -   -   -   -   -   -   -   -  \r   [  \r   l   e   t
0056340        s   o   c       =       v   e   c       l   e   n   P   u
0056360    p   S   o   c   ;       O   p   e   n   L   e   v   e   l   1
0056400    S   o   c   k   e   t   (   s   o   c   )  \r   l   e   t    
0056420    q       =       v   e   c       1   ;       q   !   0       =
0056440        0   ;       o   u   t   P   b   i   >   >   P   B   I   .
0056460    q   u   e   u   e       =       q  \r   l   e   t       r   T
0056500    i   m   e   r       =       n   i   l   ;       S   e   t   T
0056520    i   m   e   r   (   l   v       r   T   i   m   e   r   ,    
0056540    0   )  \r   l   e   t       t   T   i   m   e   r       =    
0056560    n   i   l   ;       S   e   t   T   i   m   e   r   (   l   v
0056600        t   T   i   m   e   r   ,       t   o   t   a   l   T   O
0056620  376 001  \0 277 235   )  \r   l   e   t       c   o   n   t   i
0056640    n   u   e       =       t   r   u   e  \r               [  \r
0056660                i   f       T   i   m   e   r   H   a   s   E   x
0056700    p   i   r   e   d   (   l   v       r   T   i   m   e   r   )
0056720        t   h   e   n  \r                           [  \r        
0056740                    o   u   t   P   b   i   >   >   P   B   I   .
0056760    s   o   c   k   e   t       =       s   o   c  \r            
0057000                C   o   m   p   l   e   t   e   P   u   p   (   o
0057020    u   t   P   b   i   )  \r                           S   e   t
0057040    T   i   m   e   r   (   l   v       r   T   i   m   e   r   ,
0057060        r   e   t   r   a   n   s   T   O   )  \r                
0057100            ]  \r               B   l   o   c   k   (   )       r
0057120    e   p   e   a   t   u   n   t   i   l       s   o   c   >   >
0057140    P   u   p   S   o   c   .   i   Q   .   h   e   a   d       n
0057160    e       0       %  \r                   T   i   m   e   r   H
0057200    a   s   E   x   p   i   r   e   d   (   l   v       r   T   i
0057220    m   e   r   )     376  \0 377 365 337   %       T   i   m   e
0057240    r   H   a   s   E   x   p   i   r   e   d   (   l   v       t
0057260    T   i   m   e   r   )  \r               i   f       T   i   m
0057300    e   r   H   a   s   E   x   p   i   r   e   d   (   l   v    
0057320    t   T   i   m   e   r   )       b   r   e   a   k  \r        
0057340        l   e   t       i   n   P   b   i       =       D   e   q
0057360    u   e   u   e   (   l   v       s   o   c   >   >   P   u   p
0057400    S   o   c   .   i   Q   )   ;       i   f       i   n   P   b
0057420    i       n   e       0       t   h   e   n  \r                
0057440            [  \r                           c   o   n   t   i   n
0057460    u   e       =       p   r   o   c   (   i   n   P   b   i   ,
0057500        a   r   g   )  \r                           R   e   l   e
0057520    a   s   e   P   B   I   (   i   n   P   b   i   )  \r        
0057540                    ]  \r               ]       r   e   p   e   a
0057560    t   w   h   i   l   e       c   o   n   t   i   n   u   e  \r
0057600    C   l   o   s   e   L   e   v   e   l   1   S   o   c   k   e
0057620    t   (   s   o   c   )  \r   ]  \r 377  \0  \0   B   u   i   l
0057640    d   N   e   t   E   x   e   c   .   c   m  \0 373 232   K 255
0057660  004  \0  \0 376 001  \0 354   (   /   /       B   u   i   l   d
0057700    N   e   t   E   x   e   c   .   c   m       -   -       B   u
0057720    i   l   d   s       t   h   e       B   C   P   L       N   e
0057740    t   E   x   e   c  \r   /   /       L   a   s   t       m   o
0057760    d   i   f   i   e   d       J   a   n   u   a   r   y       1
0060000    1   ,       1   9   8   3           9   :   3   9       P   M
0060020        b   y       B   o   g   g   s  \r   /   /       C   o   p
0060040    y   r   i   g   h   t       X   e   r   o   x       C   o   r
0060060    p   o   r   a   t   i   o   n       1   9   8   2   ,       1
0060100    9   8   3  \r  \r   B   l   d   r   /   L   V   K       N   e
0060120    t   E   x   e   c   B   o   o   t   /   S       6   0   0   /
0060140    W       1   6   6   5   0   /   V       F   u   l   l   B   o
0060160    o   t   B   a   s   e   /   J       ^  \r   N   e   t   E   x
0060200    e   c       N   e   t   E   x   e   c   1       ^  \r   ^  \r
0060220    P   u   p   E   f   t   p   C   o   m   m   o   n       P   u
0060240    p   E   f   t   p   R   e   c   e   i   v   e       P   u   p
0060260    N   a   m   e   L   o   o   k 376 001  \0   9 035   u   p    
0060300    ^  \r   P   u   p   1   O   p   e   n   C   l   o   s   e    
0060320    P   u   p   R   o   u   t   e       P   u   p   D   u   m   m
0060340    y   G   a   t   e       P   u   p   1   B       P   u   p   A
0060360    l   1   A       ^  \r   P   u   p   A   l   E   t   h   B    
0060400    P   u   p   A   l   E   t   h   A       ^  \r   ^  \r   T   i
0060420    m   e   C   o   n   v   A       T   i   m   e   C   o   n   v
0060440    B       T   i   m   e   I   O       T   e   m   p   l   a   t
0060460    e       ^  \r   S   t   r   i   n   g   U   t   i   l       K
0060500    e   y   w   o   r   d       K   e   y   w   o   r   d   I   n
0060520    i   t       ^  \r   C   m   d   S   c   a   n       C   m   d
0060540    S   c   a   n   E   d   i   t       C   m   d   S   c   a   n
0060560    D   i   s   p   l   a   y       C   m   d   S   c   a   n   A
0060600    u   x       ^  \r   I   n   t   e   r   r   u   p   t       C
0060620    o   n   t   e   x   t       C   o   n   t   e   x   t   I   n
0060640    i   t       ^  \r   A   l   t   o   Q   u   e   u   e       A
0060660    l   t   o   T   i   m   e   r       A   l   t   o 376  \0 364
0060700    s 332   B   y   t   e   B   l   t       ^  \r   ^  \r   P   u
0060720    p   1   I   n   i   t       P   u   p   A   l   E   t   h   I
0060740    n   i   t       I   n   t   e   r   r   u   p   t   I   n   i
0060760    t  \r   /   /       n   o   r   m   a   l       n   u   m   b
0061000    e   r       o   f       e   r   r   o   r   s       =       2
0061020   \r  \r   B   u   i   l   d   B   o   o   t       N   e   t   E
0061040    x   e   c   .   m   a   p   /   L       N   e   t   E   x   e
0061060    c   .   B   o   o   t   /   O       1   3   1   1   /   G    
0061100    3   /   D       D   i   s   k   B   o   o   t   .   R   u   n
0061120    /   B       3   0   0   /   N       F   u   l   l   B   o   o
0061140    t   B   a   s   e   .   x   c   /   S       1   4   1   1   /
0061160    V       F   u   l   l   B   o   o   t   B   a   s   e   .   R
0061200    u   n   /   E       1   3   5   1   /   V       N   e   t   E
0061220    x   e   c   B   o   o   t   .   r   u   n   /   E  \r  \r   D
0061240    e   l   e   t   e       N   e   t   E   x   e   c   B   o   o
0061260    t   .   r   u   n  \r 377  \0  \0   N   e   t   E   x   e   c
0061300    .   c   m  \0 373 232   K 256   x  \0  \0 376  \0   5  \b 224
0061320    N   e   t   E   x   e   c   .   b   c   p   l       N   e   t
0061340    E   x   e   c   1   .   b   c   p   l       B   u   i   l   d
0061360    N   e   t   E   x   e   c   .   c   m       N   e   t   E   x
0061400    e   c   .   c   m 374                                        
0061406