$ od -c -N 50000 [_CD6_]<tapeserver>SoftwareSources>MFTPSources.dm!3
0000000  377  \0  \0   M   F   T   P   .   b   c   p   l  \0 376 001  \0
0000020    !   ^  \r   /   /   M   F   T   P   .   b   c   p   l  \r   /
0000040    /               M   a   g       T   a   p   e       U   t   i
0000060    l   i   t   y  \r   /   /               f   o   r       e   t
0000100    h   e   r   n   e   t       u   s   e  \r   /   /            
0000120    A   p   r   i   l       2   8   ,       1   9   8   0        
0000140    1   2   :   5   8       P   M  \r   /   /       L   a   s   t
0000160        m   o   d   i   f   i   e   d       b   y       T   i   m
0000200        D   i   e   b   e   r   t   ,           J   u   n   e    
0000220    9   ,       1   9   8   0           1   0   :   4   6       A
0000240    M  \r  \r   g   e   t       "   P   u   p   .   d   e   c   l
0000260    "  \r   g   e   t       "   T   S   P   .   d   e   c   l   "
0000300   \r   g   e   t       "   T   a   p   e   s   .   d   "  \r  \r
0000320   \r   e   x   t   e   r   n   a   l  \r   [  \r   I   n   i   t
0000340    P   u   p   L   e   v   e   l   1   ;       O   p   e   n   L
0000360    e   v   e   l   1   S   o   c   k   e   t   ;       C   l   o
0000400    s   e   L   e   v   e   l   1   S   o   c   k   e   t   ;    
0000420    S   e 376 001  \0   - 017   t   A   l   l   o   c   a   t   i
0000440    o   n  \r   O   p   e   n   R   T   P   S   o   c   k   e   t
0000460    ;       C   r   e   a   t   e   B   S   P   S   t   r   e   a
0000500    m   ;       G   e   t   P   a   r   t   n   e   r  \r   B   S
0000520    P   F   o   r   c   e   O   u   t   p   u   t   ;       B   S
0000540    P   G   e   t   M   a   r   k   ;       B   S   P   P   u   t
0000560    M   a   r   k   ;       B   S   P   W   r   i   t   e   B   l
0000600    o   c   k  \r   I   n   i   t   i   a   l   i   z   e   C   o
0000620    n   t   e   x   t   ;       C   a   l   l   C   o   n   t   e
0000640    x   t   L   i   s   t   ;       B   l   o   c   k   ;       E
0000660    n   q   u   e   u   e   ;       U   n   q   u   e   u   e  \r
0000700    I   n   i   t   i   a   l   i   z   e   Z   o   n   e   ;    
0000720    C   r   e   a   t   e   D   i   s   p   l   a   y   S   t   r
0000740    e   a   m   ;       S   h   o   w   D   i   s   p   l   a   y
0000760    S   t   r   e   a   m  \r   G   e   t   s   ;       P   u   t
0001000    s   ;       C   l   o   s   e   s   ;       E   n   d   o   f
0001020    s   ;       W   s   ;     376 001  \0 273   s   W   s   s   ;
0001040        W   o   ;       W   o   s   ;       E   r   a   s   e   B
0001060    i   t   s   ;       C   h   a   r   W   i   d   t   h  \r   k
0001100    e   y   s   ;       d   s   p   ;       O   p   e   n   F   i
0001120    l   e   ;       W   r   i   t   e   B   l   o   c   k   ;    
0001140    R   e   a   d   B   l   o   c   k   ;       C   a   l   l   S
0001160    w   a   t  \r   ]  \r   s   t   a   t   i   c  \r   [  \r   m
0001200    y   D   s   p   ;       b   s   p   S   o   c   ;       b   s
0001220    p   S   t   r   ;       c   t   x   Q   ;       t   s   p   B
0001240    u   f   f   e   r   ;       f   i   l   e   ;       b   l   k
0001260    ;       s   t   a   t   u   s   ;       e   r   r   o   r  \r
0001300    ]  \r  \r   l   e   t       M   f   t   p   (   )       b   e
0001320        /   /       i   n   i   t   i   a   l   i   z   a   t   i
0001340    o   n  \r   [  \r   W   s   (   "   *   n       M   F   T   P
0001360    ,       M   a   g   t   a   p   e       F   i   l   e       T
0001400    r   a   n   s   f   e   r       P   r   o   g   r   a   m   ,
0001420        v   e   r   s   i   o   n       1   .   2 376 001  \0   d
0001440  346   ,       J   u   n   e       9   ,       1   9   8   0   "
0001460    )  \r   l   e   t       m   y   Z   o   n   e       =       v
0001500    e   c       1   0   0   0   0   ;       I   n   i   t   i   a
0001520    l   i   z   e   Z   o   n   e   (   m   y   Z   o   n   e   ,
0001540        1   0   0   0   0   )  \r   l   e   t       q       =    
0001560    v   e   c       1   ;       c   t   x   Q       =       q   ;
0001600        c   t   x   Q   !   0       =       0  \r   I   n   i   t
0001620    P   u   p   L   e   v   e   l   1   (   m   y   Z   o   n   e
0001640    ,   c   t   x   Q   ,   5   )  \r   l   e   t       v       =
0001660        v   e   c       3   0   0  \r   b   l   k       =       v
0001700   \r   l   e   t       v       =       v   e   c       1   0   4
0001720    0  \r   t   s   p   B   u   f   f   e   r       =       v  \r
0001740    l   e   t       v       =       v   e   c       9   0   0   0
0001760   \r   m   y   D   s   p       =       C   r   e   a   t   e   D
0002000    i   s   p   l   a   y   S   t   r   e   a   m   (   4   0   ,
0002020        v   ,       9   0   0   0   )  \r   S   h   o   w   D   i
0002040    s 376 001  \0   , 244   p   l   a   y   S   t   r   e   a   m
0002060    (   m   y   D   s   p   )  \r   l   e   t       v       =    
0002100    v   e   c       3   0   0   0  \r   E   n   q   u   e   u   e
0002120    (   c   t   x   Q   ,       I   n   i   t   i   a   l   i   z
0002140    e   C   o   n   t   e   x   t   (   v   ,       3   0   0   0
0002160    ,       T   o   p   L   e   v   e   l   )   )  \r   C   a   l
0002200    l   C   o   n   t   e   x   t   L   i   s   t   (   c   t   x
0002220    Q   !   0   )       r   e   p   e   a   t  \r   ]  \r  \r   a
0002240    n   d       T   o   p   L   e   v   e   l   (   )       b   e
0002260        /   /       t   o   p   -   l   e   v   e   l       p   r
0002300    o   c   e   s   s  \r   [  \r   W   s   s   (   m   y   D   s
0002320    p   ,   "   *   n   C   o   n   n   e   c   t       t   o    
0002340    (   C   R       t   o       e   x   i   t       p   r   o   g
0002360    r   a   m   )   :       "   )  \r   l   e   t       n   a   m
0002400    e       =       v   e   c       1   2   7   ;       G   e   t
0002420    S   t   r   i   n   g   (   n   a   m   e   )  \r   i   f    
0002440    n   a   m   e   >   > 376 001  \0 371   n   S   t   r   i   n
0002460    g   .   l   e   n   g   t   h       e   q       0       t   h
0002500    e   n       f   i   n   i   s   h  \r   l   e   t       f   r
0002520    n   P   o   r   t       =       v   e   c       l   e   n   P
0002540    o   r   t  \r   u   n   l   e   s   s       G   e   t   P   a
0002560    r   t   n   e   r   (   n   a   m   e   ,       d   s   p   ,
0002600        f   r   n   P   o   r   t   ,       0   ,       t   a   p
0002620    e   S   o   c   k   e   t   )       d   o       l   o   o   p
0002640   \r   l   e   t       v       =       v   e   c       l   e   n
0002660    B   S   P   S   o   c   ;       b   s   p   S   o   c       =
0002700        v  \r   O   p   e   n   L   e   v   e   l   1   S   o   c
0002720    k   e   t   (   b   s   p   S   o   c   ,       0   ,       f
0002740    r   n   P   o   r   t   )  \r   u   n   l   e   s   s       O
0002760    p   e   n   R   T   P   S   o   c   k   e   t   (   b   s   p
0003000    S   o   c   ,       c   t   x   Q   )       d   o  \r        
0003020        [  \r               W   s   s   (   m   y   D   s   p   ,
0003040    "   *   n   F   a   i   l   e   d       t 376 001  \0   N 257
0003060    o       c   o   n   n   e   c   t   "   )  \r               C
0003100    l   o   s   e   L   e   v   e   l   1   S   o   c   k   e   t
0003120    (   b   s   p   S   o   c   )  \r               l   o   o   p
0003140   \r               ]  \r   W   s   s   (   m   y   D   s   p   ,
0003160    "   *   n   O   p   e   n   !   "   )  \r   b   s   p   S   t
0003200    r       =       C   r   e   a   t   e   B   S   P   S   t   r
0003220    e   a   m   (   b   s   p   S   o   c   )  \r   l   e   t    
0003240    k   e   y   s   T   o   N   e   t   C   t   x       =       v
0003260    e   c       2   0   0   0  \r   E   n   q   u   e   u   e   (
0003300    c   t   x   Q   ,       I   n   i   t   i   a   l   i   z   e
0003320    C   o   n   t   e   x   t   (   k   e   y   s   T   o   N   e
0003340    t   C   t   x   ,       2   0   0   0   ,       K   e   y   s
0003360    T   o   N   e   t   )   )  \r   B   l   o   c   k       (   )
0003400        r   e   p   e   a   t   u   n   t   i   l       b   s   p
0003420    S   o   c   >   >   B   S   P   S   o   c   .   s   t   a   t
0003440    e       n   e       s   t   a   t   e   O   p   e   n       %
0003460  376 001  \0 002 334  \r               @   #   1   7   7   0   3
0003500    5       e   q       #   1   7   7   7   7   5       /   /   s
0003520    e   c   o   n   d       b   l   a   n   k       k   e   y    
0003540    p   r   e   s   s   e   d  \r   U   n   q   u   e   u   e   (
0003560    c   t   x   Q   ,       k   e   y   s   T   o   N   e   t   C
0003600    t   x   )  \r   C   l   o   s   e   s   (   b   s   p   S   t
0003620    r   )  \r   W   s   s   (   m   y   D   s   p   ,   "   *   n
0003640    C   o   n   n   e   c   t   i   o   n       C   l   o   s   e
0003660    d   !   "   )  \r   ]       r   e   p   e   a   t  \r  \r   a
0003700    n   d       K   e   y   s   T   o   N   e   t   (   )       b
0003720    e  \r   [  \r               /   /   E   s   t   a   b   l   i
0003740    s   h       c   o   n   n   e   c   t   i   o   n   ,       o
0003760    p   e   n       d   r   i   v   e   ,       t   h   e   n  \r
0004000                /   /       w   a   i   t       f   o   r       k
0004020    e   y   ,       r      \r               V   e   r   s   i   o
0004040    n   C   o   m   m   a   n   d   (   )   ;       G   e   t   R
0004060    e   p   l   y   ( 376 001  \0   n   (   )  \r               O
0004100    p   e   n   C   o   m   m   a   n   d   (   )   ;       G   e
0004120    t   R   e   p   l   y   (   )  \r               l   e   t    
0004140    f   n   a   m   e       =       v   e   c       1   2   7  \r
0004160                w   h   i   l   e       t   r   u   e       d   o
0004200   \r               [  \r                           e   r   r   o
0004220    r       =       f   a   l   s   e  \r                        
0004240    W   s   s   (   m   y   D   s   p   ,   "   *   n   C   o   m
0004260    m   a   n   d       (   ?       f   o   r       h   e   l   p
0004300    )   :       "   )   ;       l   e   t       c   h   a   r    
0004320    =       G   e   t   K   e   y   s   (   )  \r                
0004340            s   w   i   t   c   h   o   n       c   h   a   r    
0004360    i   n   t   o  \r                           [  \r            
0004400                c   a   s   e       $   c   :  \r                
0004420                        [  \r                                    
0004440    W   s   s   (   m   y   D   s   p   ,   "       C   l   o   s
0004460    e       C   o   n   n   e   c   t   i 376 001  \0   = 025   o
0004500    n   "   )  \r                                       C   l   o
0004520    s   e   C   o   n   n   e   c   t   i   o   n   (   )  \r    
0004540                                    e   n   d   c   a   s   e  \r
0004560                                        ]  \r                    
0004600        c   a   s   e       $   r   :  \r                        
0004620                [  \r                                       W   s
0004640    s   (   m   y   D   s   p   ,   "       R   e   a   d       f
0004660    i   l   e   ,       f   i   l   e   n   a   m   e   ?       "
0004700    )  \r                                       B   l   o   c   k
0004720    (   )  \r                                       G   e   t   S
0004740    t   r   i   n   g   (   f   n   a   m   e   )  \r            
0004760                            f   i   l   e       =       O   p   e
0005000    n   F   i   l   e   (   f   n   a   m   e   )  \r            
0005020                            u   n   l   e   s   s       f   i   l
0005040    e       d   o       [  \r                                    
0005060                W   s   s   (   m   y   D   s   p   ,   "     376
0005100  001  \0 331   F   f   i   l   e       s   y   s   t   e   m    
0005120    e   r   r   o   r       "   )  \r                            
0005140                        e   n   d   c   a   s   e  \r            
0005160                                        ]  \r                    
0005200                    l   e   t       d   o   n   e       =       f
0005220    a   l   s   e  \r                                       l   e
0005240    t       r   e   c   o   r   d   C   o   u   n   t       =    
0005260    0  \r                                       u   n   t   i   l
0005300        d   o   n   e       %       e   r   r   o   r       d   o
0005320   \r                                                   [        
0005340        /   /   g   e   t       a   n   d       p   r   i   n   t
0005360        b   l   o   c   k   s       u   n   t   i   l       e   o
0005400    f       o   r       e   r   r   o   r  \r                    
0005420                                R   e   a   d   R   e   c   o   r
0005440    d   C   o   m   m   a   n   d   (   )  \r                    
0005460                                d   o   n   e       =       R   e
0005500    a   d   R   e 376 001  \0 344 235   p   l   y   (   )  \r    
0005520                                                r   e   c   o   r
0005540    d   C   o   u   n   t       =       r   e   c   o   r   d   C
0005560    o   u   n   t       +       1  \r                            
0005600                        ]  \r                                    
0005620    t   e   s   t       e   r   r   o   r  \r                    
0005640                    i   f   s   o               W   s   s   (   m
0005660    y   D   s   p   ,   "   R   e   a   d       e   r   r   o   r
0005700    "   )  \r                                       i   f   n   o
0005720    t  \r                                                   [  \r
0005740                                                    W   s   s   (
0005760    m   y   D   s   p   ,   "       "   )  \r                    
0006000                                W   o   s   (   m   y   D   s   p
0006020    ,   r   e   c   o   r   d   C   o   u   n   t   -   1   )  \r
0006040                                                    W   s   s   (
0006060    m   y   D   s   p   ,       "       r   e   c   o   r   d   s
0006100        r   e   a   d   "   )  \r     376 001  \0 300 024        
0006120                                        ]  \r                    
0006140                    C   l   o   s   e   s   (   f   i   l   e   )
0006160    ;       e   n   d   c   a   s   e  \r                        
0006200                ]  \r                           c   a   s   e    
0006220    $   w   :  \r                                       [  \r    
0006240                                    W   s   s   (   m   y   D   s
0006260    p   ,   "       W   r   i   t   e       f   i   l   e   ,    
0006300    f   i   l   e   n   a   m   e   ?       "   )  \r            
0006320                            B   l   o   c   k   (   )  \r        
0006340                                G   e   t   S   t   r   i   n   g
0006360    (   f   n   a   m   e   )  \r                                
0006400        f   i   l   e       =       O   p   e   n   F   i   l   e
0006420    (   f   n   a   m   e   ,   k   s   T   y   p   e   R   e   a
0006440    d   O   n   l   y   ,   w   o   r   d   I   t   e   m   )  \r
0006460                                        u   n   l   e   s   s    
0006500    f   i   l   e       d   o  \r                         376 001
0006520   \0   a 334                           [  \r                    
0006540                                W   s   s   (   m   y   D   s   p
0006560    ,   "       f   i   l   e       d   o   e   s       n   o   t
0006600        e   x   i   s   t   "   )  \r                            
0006620                        e   n   d   c   a   s   e  \r            
0006640                                        ]  \r                    
0006660                    W   s   s   (   m   y   D   s   p   ,   "   *
0006700    n   R   e   c   o   r   d       s   i   z   e       i   n    
0006720    b   y   t   e   s       (   1   0   2   4   )       "   )  \r
0006740                                        l   e   t       r   s   i
0006760    z   e       =       G   e   t   N   u   m   b   e   r   (   )
0007000   \r                                       i   f       r   s   i
0007020    z   e       e   q       0       t   h   e   n  \r            
0007040                                        [  \r                    
0007060                                W   s   s   (   m   y   D   s   p
0007100    ,       "       u   s   e   d       1   0   2   4   "   )  \r
0007120              376 001  \0 024   j                                
0007140        r   s   i   z   e       =       1   0   2   4  \r        
0007160                                            ]  \r                
0007200                        i   f       r   s   i   z   e       g   r
0007220        2   0   4   8       t   h   e   n  \r                    
0007240                                [  \r                            
0007260                        W   s   s   (   m   y   D   s   p   ,    
0007300    "       u   s   e   d       2   0   4   8   "   )  \r        
0007320                                            r   s   i   z   e    
0007340    =       2   0   4   8  \r                                    
0007360                ]  \r                                       l   e
0007400    t       r   e   c   o   r   d   C   o   u   n   t       =    
0007420    0  \r                                       u   n   t   i   l
0007440        E   n   d   o   f   s   (   f   i   l   e   )       %    
0007460    e   r   r   o   r       d   o  \r                            
0007500                        [               /   /   g   e   t       a
0007520    n   d       p   r   i   n   t 376 001  \0 347   S       b   l
0007540    o   c   k   s       u   n   t   i   l       e   o   f       o
0007560    r       e   r   r   o   r  \r                                
0007600                    W   r   i   t   e   R   e   c   o   r   d   C
0007620    o   m   m   a   n   d   (   f   i   l   e   ,   r   s   i   z
0007640    e   )  \r                                                   W
0007660    r   i   t   e   R   e   p   l   y   (   )  \r                
0007700                                    r   e   c   o   r   d   C   o
0007720    u   n   t       =       r   e   c   o   r   d   C   o   u   n
0007740    t       +       1  \r                                        
0007760            ]  \r                                       t   e   s
0010000    t       e   r   r   o   r  \r                                
0010020                    i   f   s   o  \r                            
0010040                                    [  \r                        
0010060                                        W   s   s   (   m   y   D
0010100    s   p   ,   "   E   r   r   o   r       o   n       W   r   i
0010120    t   e   "   )  \r                                 376 001  \0
0010140  210   |                               ]  \r                    
0010160                                i   f   n   o   t  \r            
0010200                                                    [  \r        
0010220                                                        E   O   F
0010240    C   o   m   m   a   n   d   (   )   ;       W   r   i   t   e
0010260    R   e   p   l   y   (   )  \r                                
0010300                                W   o   s   (   m   y   D   s   p
0010320    ,   r   e   c   o   r   d   C   o   u   n   t   )  \r        
0010340                                                        W   s   s
0010360    (   m   y   D   s   p   ,       "       r   e   c   o   r   d
0010400    s       w   r   i   t   t   e   n   "   )  \r                
0010420                                                ]  \r            
0010440                            C   l   o   s   e   s   (   f   i   l
0010460    e   )   ;       e   n   d   c   a   s   e  \r                
0010500                        ]  \r                           c   a   s
0010520    e       $   f   :  \r                                       [
0010540   \r     376 001  \0 205 024                                   W
0010560    s   s   (   m   y   D   s   p   ,   "       F   w   d       s
0010600    k   i   p       f   i   l   e   ,       h   o   w       m   a
0010620    n   y   :       "   )  \r                                    
0010640    l   e   t       n       =       G   e   t   N   u   m   b   e
0010660    r   (   )   ;       i   f       n       e   q       0       t
0010700    h   e   n      \r                                            
0010720        [  \r                                                   W
0010740    s   s   (   m   y   D   s   p   ,       "   1   "   )  \r    
0010760                                                n       =       1
0011000   \r                                                   ]  \r    
0011020                                    s   t   a   t   u   s       =
0011040        0  \r                                       u   n   t   i
0011060    l       (   n       e   q       0   )       %       e   r   r
0011100    o   r       %       s   t   a   t   u   s   <   <   S   t   a
0011120    t   u   s   .   E   O   T           d   o  \r                
0011140                              376 001  \0   V 365       [  \r    
0011160                                                n       =       n
0011200    -   1  \r                                                   F
0011220    i   l   e   F   w   d   C   o   m   m   a   n   d   (   )  \r
0011240                                                    G   e   t   Y
0011260    e   s   N   o   (   )  \r                                    
0011300                i   f       e   r   r   o   r       t   h   e   n
0011320   \r                                                            
0011340    [  \r                                                        
0011360        t   e   s   t       s   t   a   t   u   s   <   <   S   t
0011400    a   t   u   s   .   E   O   T  \r                            
0011420                                    i   f   s   o       W   s   s
0011440    (   m   y   D   s   p   ,       "   c   a   n   '   t       s
0011460    k   i   p       p   a   s   t       E   O   T   "   )  \r    
0011500                                                            i   f
0011520    n   o   t       W   s   s   (   m   y   D   s   p   ,       "
0011540    e   r   r   o   r       i   n       s   k   i 376 001  \0   F
0011560    s   p   "   )  \r                                            
0011600                    ]      \r                                    
0011620                ]  \r                                       e   n
0011640    d   c   a   s   e  \r                                       ]
0011660   \r                           c   a   s   e       $   b   :  \r
0011700                                        [  \r                    
0011720                    W   s   s   (   m   y   D   s   p   ,   "    
0011740    B   a   c   k       s   k   i   p       f   i   l   e   ,    
0011760    h   o   w       m   a   n   y   :       "   )  \r            
0012000                            l   e   t       n       =       G   e
0012020    t   N   u   m   b   e   r   (   )   ;       i   f       n    
0012040    e   q       0       t   h   e   n      \r                    
0012060                                [  \r                            
0012100                        W   s   s   (   m   y   D   s   p   ,    
0012120    "   1   "   )  \r                                            
0012140        n       =       1  \r                                    
0012160      376 001  \0   B 336           ]  \r                        
0012200                s   t   a   t   u   s       =       0  \r        
0012220                                u   n   t   i   l       (   n    
0012240    e   q       0   )       %       e   r   r   o   r       %    
0012260    s   t   a   t   u   s   <   <   S   t   a   t   u   s   .   B
0012300    O   T           d   o  \r                                    
0012320                [  \r                                            
0012340        n       =       n   -   1  \r                            
0012360                        F   i   l   e   B   a   c   k   C   o   m
0012400    m   a   n   d   (   )  \r                                    
0012420                G   e   t   Y   e   s   N   o   (   )  \r        
0012440                                            i   f       e   r   r
0012460    o   r       t   h   e   n       W   s   s   (   m   y   D   s
0012500    p   ,       "   e   r   r   o   r       i   n       s   k   i
0012520    p   "   )  \r                                                
0012540    i   f       s   t   a   t   u   s   <   <   S   t   a   t   u
0012560    s   .   B   O   T     376 001  \0   n   P   t   h   e   n    
0012600    W   s   s   (   m   y   D   s   p   ,       "       A   t    
0012620    b   e   g   i   n   n   i   n   g       o   f       t   a   p
0012640    e   "   )  \r                                                
0012660    ]  \r                                       e   n   d   c   a
0012700    s   e  \r                                       ]  \r        
0012720                    c   a   s   e       $   u   :  \r            
0012740                            [  \r                                
0012760        W   s   s   (   m   y   D   s   p   ,   "       R   e   w
0013000    i   n   d   "   )  \r                                       R
0013020    e   w   i   n   d   C   o   m   m   a   n   d   (   )  \r    
0013040                                    G   e   t   R   e   p   l   y
0013060    (   )  \r                                       e   n   d   c
0013100    a   s   e  \r                                       ]  \r    
0013120                        c   a   s   e       $   ?   :  \r        
0013140                                [  \r                            
0013160            W   s   s   (   m   y   D   s   p 376 001  \0 026 351
0013200    ,   "   *   n   c   =   C   l   o   s   e   ,       r   =   R
0013220    e   a   d       f   i   l   e   ,       w   =   W   r   i   t
0013240    e       f   i   l   e   ,       f   =   F   w   d       s   k
0013260    i   p       f   i   l   e   ,       b   =   B   a   c   k    
0013300    s   k   i   p       f   i   l   e   ,       u   =   R   e   w
0013320    i   n   d   "   )  \r                                        
0013340    e   n   d   c   a   s   e  \r                                
0013360        ]  \r                           d   e   f   a   u   l   t
0013400    :  \r                                       [  \r            
0013420                            W   s   s   (   m   y   D   s   p   ,
0013440    "       B   a   d       c   o   m   m   a   n   d   "   )  \r
0013460                                        e   n   d   c   a   s   e
0013500   \r                                       ]  \r                
0013520            ]  \r               ]  \r   ]      \r  \r   a   n   d
0013540        G   e   t   R   e   p   l   y   (   )       b   e  \r   [
0013560                /   /   g   e   t       b   l   o   c   k  \r    
0013600  376 001  \0   )  \v           l   e   t       b       =       0
0013620    ;       l   e   t       h   i       =       G   e   t   F   r
0013640    o   m   B   s   p   (   )       l   s   h   i   f   t       8
0013660   \r               l   e   t       l   e   n       =       h   i
0013700        +       G   e   t   F   r   o   m   B   s   p   (   )  \r
0013720                t   s   p   B   u   f   f   e   r   !   0       =
0013740        l   e   n  \r               f   o   r       b       =    
0013760    1       t   o       l   e   n   -   1       d   o  \r        
0014000                    [  \r                           h   i       =
0014020        G   e   t   F   r   o   m   B   s   p   (   )       l   s
0014040    h   i   f   t       8  \r                           t   s   p
0014060    B   u   f   f   e   r   !   b       =       h   i       +    
0014100    G   e   t   F   r   o   m   B   s   p   (   )  \r            
0014120                ]  \r   ]  \r  \r   a   n   d       G   e   t   F
0014140    r   o   m   B   s   p   (   )       =       v   a   l   o   f
0014160   \r   [  \r               l   e   t       c       =       -   1
0014200   \r               u 376 001  \0 226   I   n   t   i   l       c
0014220        g   e       0       d   o  \r                            
0014240    [  \r                               B   l   o   c   k   (   )
0014260   \r                               c       =       G   e   t   s
0014300    (   b   s   p   S   t   r   )  \r                            
0014320    ]  \r               r   e   s   u   l   t   i   s       c  \r
0014340    ]  \r  \r   a   n   d       R   e   a   d   R   e   p   l   y
0014360    (   )       =       v   a   l   o   f  \r   [               /
0014400    /   g   e   t       b   l   o   c   k       a   n   d       i
0014420    f       n   o   t       e   r   r   o   r       o   r       e
0014440    o   f   ,       p   r   i   n   t       d   a   t   a  \r    
0014460            G   e   t   R   e   p   l   y   (   )               /
0014500    /   f   i   l   l       b   l   o   c   k  \r               s
0014520    t   a   t   u   s       =       t   s   p   B   u   f   f   e
0014540    r   >   >   H   e   r   e   I   s   R   e   c   o   r   d   .
0014560    e   n   d   i   n   g   S   t   a   t   u   s  \r            
0014600    l   e   t       i       =       s   t 376 001  \0   .  \r   a
0014620    t   u   s       &       #   3   7   4               /   /   e
0014640    r   r   o   r       b   i   t   s  \r               i   f    
0014660    i       t   h   e   n       e   r   r   o   r       =       t
0014700    r   u   e               /   /   e   r   r   o   r  \r        
0014720        i   f       s   t   a   t   u   s   <   <   S   t   a   t
0014740    u   s   .   E   O   F       t   h   e   n       r   e   s   u
0014760    l   t   i   s       t   r   u   e               /   /   E   O
0015000    F  \r               i   f       s   t   a   t   u   s   <   <
0015020    S   t   a   t   u   s   .   E   O   T       t   h   e   n    
0015040    e   r   r   o   r       =       t   r   u   e               /
0015060    /   E   O   T  \r               u   n   l   e   s   s       s
0015100    t   a   t   u   s   <   <   S   t   a   t   u   s   .   R   D
0015120    Y       t   h   e   n       e   r   r   o   r       =       t
0015140    r   u   e               /   /   n   o   t       r   e   a   d
0015160    y  \r               u   n   l   e   s   s       s   t   a   t
0015200    u   s   <   <   S   t   a   t   u   s   .   O   N   L     376
0015220  001  \0 314 310   t   h   e   n       e   r   r   o   r       =
0015240        t   r   u   e               /   /   n   o   t       o   n
0015260        l   i   n   e  \r               l   e   t       l   e   n
0015300        =       t   s   p   B   u   f   f   e   r   >   >   H   e
0015320    r   e   I   s   R   e   c   o   r   d   .   r   e   c   o   r
0015340    d   L   e   n   g   t   h  \r               W   r   i   t   e
0015360    B   l   o   c   k   (   f   i   l   e   ,   l   v       t   s
0015400    p   B   u   f   f   e   r   >   >   H   e   r   e   I   s   R
0015420    e   c   o   r   d   .   r   e   c   o   r   d   ,   (   l   e
0015440    n   +   1   )   /   2   )  \r               r   e   s   u   l
0015460    t   i   s       f   a   l   s   e                           /
0015500    /   n   o   t       d   o   n   e  \r   ]  \r  \r   a   n   d
0015520        W   r   i   t   e   R   e   p   l   y   (   )       =    
0015540    v   a   l   o   f  \r   [               /   /   g   e   t    
0015560    b   l   o   c   k       a   n   d       i   f       n   o   t
0015600        e   r   r   o   r       o   r       e   o   f   ,       r
0015620    e   t   u   r 376 001  \0   > 361   n       f   a   l   s   e
0015640   \r               /   /   r   e   s   u   l   t   =   d   o   n
0015660    e  \r               G   e   t   R   e   p   l   y   (   )    
0015700            /   /   f   i   l   l       b   l   o   c   k  \r    
0015720            s   t   a   t   u   s       =       t   s   p   B   u
0015740    f   f   e   r   >   >   Y   e   s   N   o   .   c   o   d   e
0015760   \r               l   e   t       i       =       s   t   a   t
0016000    u   s       &       #   3   7   4               /   /   e   r
0016020    r   o   r       b   i   t   s  \r               i   f       i
0016040        t   h   e   n       e   r   r   o   r       =       t   r
0016060    u   e               /   /   e   r   r   o   r  \r            
0016100    i   f       s   t   a   t   u   s   <   <   S   t   a   t   u
0016120    s   .   E   O   F       t   h   e   n       e   r   r   o   r
0016140        =       t   r   u   e               /   /   E   O   F  \r
0016160                i   f       s   t   a   t   u   s   <   <   S   t
0016200    a   t   u   s   .   E   O   T       t   h   e   n       e   r
0016220    r   o   r       =       t   r   u 376 001  \0 024 337   e    
0016240            /   /   E   O   T  \r               u   n   l   e   s
0016260    s       s   t   a   t   u   s   <   <   S   t   a   t   u   s
0016300    .   R   D   Y       t   h   e   n       e   r   r   o   r    
0016320    =       t   r   u   e               /   /   n   o   t       r
0016340    e   a   d   y  \r               u   n   l   e   s   s       s
0016360    t   a   t   u   s   <   <   S   t   a   t   u   s   .   O   N
0016400    L       t   h   e   n       e   r   r   o   r       =       t
0016420    r   u   e               /   /   n   o   t       o   n       l
0016440    i   n   e  \r               r   e   s   u   l   t   i   s    
0016460    f   a   l   s   e                           /   /   n   o   t
0016500        d   o   n   e  \r   ]  \r  \r   a   n   d       G   e   t
0016520    Y   e   s   N   o   (   )       b   e  \r   [  \r            
0016540    G   e   t   R   e   p   l   y   (   )               /   /   o
0016560    n   l   y       c   h   e   c   k       e   r   r   o   r   ,
0016600        n   o   t       E   O   F   ,       E   O   T   ,       o
0016620    r       B   O   T  \r               s   t   a   t   u 376 001
0016640   \0 255   s   s       =       t   s   p   B   u   f   f   e   r
0016660    >   >   Y   e   s   N   o   .   c   o   d   e  \r            
0016700    l   e   t       i       =       s   t   a   t   u   s       &
0016720        #   3   7   4               /   /   e   r   r   o   r    
0016740    b   i   t   s  \r               i   f       i       t   h   e
0016760    n       e   r   r   o   r       =       t   r   u   e        
0017000        /   /   e   r   r   o   r  \r               u   n   l   e
0017020    s   s       s   t   a   t   u   s   <   <   S   t   a   t   u
0017040    s   .   R   D   Y       t   h   e   n       e   r   r   o   r
0017060        =       t   r   u   e               /   /   n   o   t    
0017100    r   e   a   d   y  \r               u   n   l   e   s   s    
0017120    s   t   a   t   u   s   <   <   S   t   a   t   u   s   .   O
0017140    N   L       t   h   e   n       e   r   r   o   r       =    
0017160    t   r   u   e               /   /   n   o   t       o   n    
0017200    l   i   n   e  \r   ]  \r  \r   a   n   d       V   e   r   s
0017220    i   o   n   C   o   m   m   a   n   d   (   )       b   e  \r
0017240    [         376 001  \0   / 227       /   /   s   e   n   d    
0017260        [   V   e   r   s   i   o   n   ]       b   l   o   c   k
0017300   \r               b   l   k   >   >   V   e   r   s   i   o   n
0017320    .   t   y   p   e       =       c   m   d   V   e   r   s   i
0017340    o   n               /   /   t   y   p   e       f   i   e   l
0017360    d  \r               b   l   k   >   >   V   e   r   s   i   o
0017400    n   .   v   e   r   s   n   o       =       0                
0017420            /   /   v   e   r   s   i   o   n       n   u   m   e
0017440    r   i   c  \r               l   e   t       s   t   r       =
0017460        "   V   e   r   s   i   o   n       1   .   0       T   a
0017500    p   e       S   e   r   v   e   r       P   r   o   t   o   c
0017520    o   l   "  \r               l   e   t       l   e   n       =
0017540        3       +       (   (   s   t   r   >   >   S   t   r   i
0017560    n   g   .   l   e   n   g   t   h       +       2   )       /
0017600        2   )  \r               b   l   k   >   >   V   e   r   s
0017620    i   o   n   .   l   e   n   g   t   h       =       l   e   n
0017640   \r               l   e   t     376 001  \0 037 355   i       =
0017660        0  \r               f   o   r       i       =       0    
0017700    t   o       l   e   n   -   4       d   o  \r                
0017720            [  \r                           (   l   v       b   l
0017740    k   >   >   V   e   r   s   i   o   n   .   v   e   r   s   t
0017760    e   x   t   )   !   i       =       s   t   r   !   i        
0020000        /   /   a   d   d       t   e   x   t       i   n  \r    
0020020                        ]  \r               B   S   P   W   r   i
0020040    t   e   B   l   o   c   k   (   b   s   p   S   t   r   ,   b
0020060    l   k   ,   0   ,   2   *   l   e   n   )               /   /
0020100    s   e   n   d       t   h   i   s       b   l   o   c   k  \r
0020120                B   S   P   F   o   r   c   e   O   u   t   p   u
0020140    t   (   b   s   p   S   o   c   )               /   /   n   o
0020160    w  \r   ]  \r  \r   a   n   d       O   p   e   n   C   o   m
0020200    m   a   n   d   (   )       b   e  \r   [               /   /
0020220    s   e   n   d           [   O   p   e   n   D   r   i   v   e
0020240    ]       b   l   o   c   k  \r               b   l 376 001  \0
0020260  272 217   k   >   >   O   p   e   n   D   r   i   v   e   .   t
0020300    y   p   e       =       c   m   d   O   p   e   n   D   r   i
0020320    v   e               /   /   t   y   p   e       f   i   e   l
0020340    d  \r               b   l   k   >   >   O   p   e   n   D   r
0020360    i   v   e   .   d   r   i   v   e   N   u   m   b   e   r    
0020400    =       0               /   /   d   r   i   v   e       0  \r
0020420                l   e   t       s   t   r       =       "   G   l
0020440    e   n   n   "  \r               l   e   t       l   e   n    
0020460    =       3       +       (   (   s   t   r   >   >   S   t   r
0020500    i   n   g   .   l   e   n   g   t   h       +       2   )    
0020520    /       2   )  \r               b   l   k   >   >   O   p   e
0020540    n   D   r   i   v   e   .   l   e   n   g   t   h       =    
0020560    l   e   n  \r               l   e   t       i       =       0
0020600   \r               f   o   r       i       =       0       t   o
0020620        l   e   n   -   4       d   o  \r                        
0020640    [  \r                           (   l   v       b   l   k   >
0020660    >   O 376 001  \0 256   6   p   e   n   D   r   i   v   e   .
0020700    u   s   e   r   I   D   )   !   i       =       s   t   r   !
0020720    i               /   /   a   d   d       t   e   x   t       i
0020740    n  \r                           ]  \r               B   S   P
0020760    W   r   i   t   e   B   l   o   c   k   (   b   s   p   S   t
0021000    r   ,   b   l   k   ,   0   ,   2   *   l   e   n   )        
0021020        /   /   s   e   n   d       t   h   i   s       b   l   o
0021040    c   k  \r               B   S   P   F   o   r   c   e   O   u
0021060    t   p   u   t   (   b   s   p   S   o   c   )               /
0021100    /   n   o   w  \r   ]  \r  \r   a   n   d       C   l   o   s
0021120    e   C   o   m   m   a   n   d   (   )       b   e  \r   [    
0021140            /   /   s   e   n   d           [   C   l   o   s   e
0021160    D   r   i   v   e   ]       b   l   o   c   k  \r            
0021200    b   l   k   >   >   C   l   o   s   e   D   r   i   v   e   .
0021220    t   y   p   e       =       c   m   d   C   l   o   s   e   D
0021240    r   i   v   e               /   /   t   y   p   e       f   i
0021260    e   l   d  \r             376 001  \0 301   k   b   l   k   >
0021300    >   C   l   o   s   e   D   r   i   v   e   .   l   e   n   g
0021320    t   h       =       2               /   /   t   h   i   s    
0021340    i   s       w   h   o   l   e       m   e   s   s   a   g   e
0021360   \r               B   S   P   W   r   i   t   e   B   l   o   c
0021400    k   (   b   s   p   S   t   r   ,   b   l   k   ,   0   ,   4
0021420    )               /   /   s   e   n   d       t   h   i   s    
0021440    b   l   o   c   k  \r               B   S   P   F   o   r   c
0021460    e   O   u   t   p   u   t   (   b   s   p   S   o   c   )    
0021500            /   /   n   o   w  \r   ]  \r  \r   a   n   d       E
0021520    O   F   C   o   m   m   a   n   d   (   )       b   e  \r   [
0021540                /   /   s   e   n   d           [   W   r   i   t
0021560    e   E   O   F   ]       b   l   o   c   k  \r               b
0021600    l   k   >   >   W   r   i   t   e   E   n   d   O   f   F   i
0021620    l   e   .   t   y   p   e       =       c   m   d   W   r   i
0021640    t   e   E   O   F               /   /   t   y   p   e       f
0021660    i   e   l   d  \r               b   l   k   > 376 001  \0   1
0021700  325   >   W   r   i   t   e   E   n   d   O   f   F   i   l   e
0021720    .   l   e   n   g   t   h       =       2               /   /
0021740    t   h   i   s       i   s       w   h   o   l   e       m   e
0021760    s   s   a   g   e  \r               B   S   P   W   r   i   t
0022000    e   B   l   o   c   k   (   b   s   p   S   t   r   ,   b   l
0022020    k   ,   0   ,   4   )               /   /   s   e   n   d    
0022040    t   h   i   s       b   l   o   c   k  \r               B   S
0022060    P   F   o   r   c   e   O   u   t   p   u   t   (   b   s   p
0022100    S   o   c   )               /   /   n   o   w  \r   ]  \r  \r
0022120    a   n   d       R   e   w   i   n   d   C   o   m   m   a   n
0022140    d   (   )       b   e  \r   [               /   /   s   e   n
0022160    d           [   R   e   w   i   n   d   ]       b   l   o   c
0022200    k  \r               b   l   k   >   >   R   e   w   i   n   d
0022220    .   t   y   p   e       =       c   m   d   R   e   w   i   n
0022240    d               /   /   t   y   p   e       f   i   e   l   d
0022260   \r               b   l   k   >   >   R   e   w   i   n   d   .
0022300    l 376 001  \0 024 310   e   n   g   t   h       =       2    
0022320            /   /   t   h   i   s       i   s       w   h   o   l
0022340    e       m   e   s   s   a   g   e  \r               B   S   P
0022360    W   r   i   t   e   B   l   o   c   k   (   b   s   p   S   t
0022400    r   ,   b   l   k   ,   0   ,   4   )               /   /   s
0022420    e   n   d       t   h   i   s       b   l   o   c   k  \r    
0022440            B   S   P   F   o   r   c   e   O   u   t   p   u   t
0022460    (   b   s   p   S   o   c   )               /   /   n   o   w
0022500   \r   ]  \r  \r   a   n   d       R   e   a   d   R   e   c   o
0022520    r   d   C   o   m   m   a   n   d   (   )       b   e  \r   [
0022540                /   /   s   e   n   d           [   R   e   a   d
0022560    R   e   c   o   r   d   ]       b   l   o   c   k  \r        
0022600        W   s   s   (   m   y   D   s   p   ,       "   .   "   )
0022620   \r               b   l   k   >   >   R   e   a   d   R   e   c
0022640    o   r   d   .   t   y   p   e       =       c   m   d   R   e
0022660    a   d   R   e   c   o   r   d               /   /   t   y   p
0022700    e       f   i   e   l 376 001  \0 214   N   d  \r            
0022720    b   l   k   >   >   R   e   a   d   R   e   c   o   r   d   .
0022740    l   e   n   g   t   h       =       2               /   /   t
0022760    h   i   s       i   s       w   h   o   l   e       m   e   s
0023000    s   a   g   e  \r               B   S   P   W   r   i   t   e
0023020    B   l   o   c   k   (   b   s   p   S   t   r   ,   b   l   k
0023040    ,   0   ,   4   )               /   /   s   e   n   d       t
0023060    h   i   s       b   l   o   c   k  \r               B   S   P
0023100    F   o   r   c   e   O   u   t   p   u   t   (   b   s   p   S
0023120    o   c   )               /   /   n   o   w  \r   ]  \r  \r   a
0023140    n   d       W   r   i   t   e   R   e   c   o   r   d   C   o
0023160    m   m   a   n   d   (   f   i   l   e   ,   r   s   i   z   e
0023200    )       b   e  \r   [               /   /   s   e   n   d    
0023220        [   W   r   i   t   e   R   e   c   o   r   d   ]       b
0023240    l   o   c   k  \r               W   s   s   (   m   y   D   s
0023260    p   ,       "   .   "   )  \r               t   s   p   B   u
0023300    f   f   e   r   >   >   W   r   i   t   e 376 001  \0 340   e
0023320    R   e   c   o   r   d   .   t   y   p   e       =       c   m
0023340    d   W   r   i   t   e   R   e   c   o   r   d               /
0023360    /   t   y   p   e       f   i   e   l   d  \r               l
0023400    e   t       l   e   n       =       R   e   a   d   B   l   o
0023420    c   k   (   f   i   l   e   ,       l   v       t   s   p   B
0023440    u   f   f   e   r   >   >   W   r   i   t   e   R   e   c   o
0023460    r   d   .   r   e   c   o   r   d   ,   r   s   i   z   e   /
0023500    2   )  \r               t   s   p   B   u   f   f   e   r   >
0023520    >   W   r   i   t   e   R   e   c   o   r   d   .   l   e   n
0023540    g   t   h       =       l   e   n   +   3  \r               t
0023560    s   p   B   u   f   f   e   r   >   >   W   r   i   t   e   R
0023600    e   c   o   r   d   .   r   e   c   o   r   d   L   e   n   g
0023620    t   h       =       2   *   l   e   n  \r               B   S
0023640    P   W   r   i   t   e   B   l   o   c   k   (   b   s   p   S
0023660    t   r   ,   t   s   p   B   u   f   f   e   r   ,   0   ,   6
0023700    +   2   *   l   e   n   )               /   /   s   e   n   d
0023720  376 001  \0   j 355       t   h   i   s       b   l   o   c   k
0023740   \r               B   S   P   F   o   r   c   e   O   u   t   p
0023760    u   t   (   b   s   p   S   o   c   )               /   /   n
0024000    o   w  \r   ]  \r  \r   a   n   d       F   i   l   e   F   w
0024020    d   C   o   m   m   a   n   d   (   )       b   e  \r   [    
0024040            /   /   s   e   n   d           [   F   w   d   S   p
0024060    a   c   e   F   i   l   e   ]       b   l   o   c   k  \r    
0024100            b   l   k   >   >   F   w   d   S   p   a   c   e   F
0024120    i   l   e   .   t   y   p   e       =       c   m   d   F   w
0024140    d   S   p   a   c   e   F   i   l   e               /   /   t
0024160    y   p   e       f   i   e   l   d  \r               b   l   k
0024200    >   >   F   w   d   S   p   a   c   e   F   i   l   e   .   l
0024220    e   n   g   t   h       =       2               /   /   t   h
0024240    i   s       i   s       w   h   o   l   e       m   e   s   s
0024260    a   g   e  \r               B   S   P   W   r   i   t   e   B
0024300    l   o   c   k   (   b   s   p   S   t   r   ,   b   l   k   ,
0024320    0   ,   4   )     376 001  \0 226 365           /   /   s   e
0024340    n   d       t   h   i   s       b   l   o   c   k  \r        
0024360        B   S   P   F   o   r   c   e   O   u   t   p   u   t   (
0024400    b   s   p   S   o   c   )               /   /   n   o   w  \r
0024420    ]  \r  \r   a   n   d       F   i   l   e   B   a   c   k   C
0024440    o   m   m   a   n   d   (   )       b   e  \r   [            
0024460    /   /   s   e   n   d           [   B   a   c   k   S   p   a
0024500    c   e   F   i   l   e   ]       b   l   o   c   k  \r        
0024520        b   l   k   >   >   B   a   c   k   S   p   a   c   e   F
0024540    i   l   e   .   t   y   p   e       =       c   m   d   B   a
0024560    c   k   S   p   a   c   e   F   i   l   e               /   /
0024600    t   y   p   e       f   i   e   l   d  \r               b   l
0024620    k   >   >   B   a   c   k   S   p   a   c   e   F   i   l   e
0024640    .   l   e   n   g   t   h       =       2               /   /
0024660    t   h   i   s       i   s       w   h   o   l   e       m   e
0024700    s   s   a   g   e  \r               B   S   P   W   r   i   t
0024720    e   B   l   o   c   k   (   b   s   p 376 001  \0   O   #   S
0024740    t   r   ,   b   l   k   ,   0   ,   4   )               /   /
0024760    s   e   n   d       t   h   i   s       b   l   o   c   k  \r
0025000                B   S   P   F   o   r   c   e   O   u   t   p   u
0025020    t   (   b   s   p   S   o   c   )               /   /   n   o
0025040    w  \r   ]  \r  \r   a   n   d       C   l   o   s   e   C   o
0025060    n   n   e   c   t   i   o   n   (   )       b   e  \r   [    
0025100            C   l   o   s   e   s   (   b   s   p   S   t   r   )
0025120   \r   ]  \r  \r  \r   a   n   d       G   e   t   K   e   y   s
0025140    (   )       =       v   a   l   o   f  \r   [  \r   w   h   i
0025160    l   e       E   n   d   o   f   s   (   k   e   y   s   )    
0025200    d   o       B   l   o   c   k   (   )  \r   r   e   s   u   l
0025220    t   i   s       G   e   t   s   (   k   e   y   s   )  \r   ]
0025240   \r  \r   a   n   d       G   e   t   S   t   r   i   n   g   (
0025260    s   t   r   i   n   g   )       b   e  \r   [  \r   l   e   t
0025300        i       =       1  \r   w   h   i   l   e       i       l
0025320    e       2   5   5       d   o  \r               [  \r     376
0025340  001  \0 355 326           l   e   t       c   h   a   r       =
0025360        G   e   t   K   e   y   s   (   )  \r               s   w
0025400    i   t   c   h   o   n       c   h   a   r       i   n   t   o
0025420   \r                           [  \r                           c
0025440    a   s   e       1   2   7   :  \r                            
0025460            [  \r                                       i       =
0025500        1  \r                                       W   s   s   (
0025520    m   y   D   s   p   ,   "   X   X   X   *   n   "   )  \r    
0025540                                    e   n   d   c   a   s   e    
0025560    /   /   d   e   l  \r                                       ]
0025600   \r                           c   a   s   e       $   *   n   :
0025620   \r                                       [  \r                
0025640                        s   t   r   i   n   g   >   >   S   t   r
0025660    i   n   g   .   l   e   n   g   t   h       =       i   -   1
0025700   \r                                       r   e   t   u   r   n
0025720   \r                                       e   n   d   c   a   s
0025740    e       /   / 376 001  \0   4 236   c   r  \r                
0025760                        ]  \r                           c   a   s
0026000    e       8   :  \r                                           [
0026020   \r                                           i   f       i    
0026040    g   r       1       t   h   e   n               /   /   b   a
0026060    c   k   s   p   a   c   e  \r                                
0026100                        [  \r                                    
0026120                    i       =       i       -       1  \r        
0026140                                                E   r   a   s   e
0026160    B   i   t   s   (   m   y   D   s   p   ,       -   C   h   a
0026200    r   W   i   d   t   h   (   m   y   D   s   p   ,       s   t
0026220    r   i   n   g   >   >   S   t   r   i   n   g   .   c   h   a
0026240    r   ^   i   )   )  \r                                        
0026260                ]  \r                                           e
0026300    n   d   c   a   s   e  \r                                    
0026320        ]  \r                           d   e   f   a   u   l   t
0026340    :  \r                             376 001  \0 234   ]        
0026360    [  \r                                       s   t   r   i   n
0026400    g   >   >   S   t   r   i   n   g   .   c   h   a   r   ^   i
0026420        =       c   h   a   r  \r                                
0026440        P   u   t   s   (   m   y   D   s   p   ,       c   h   a
0026460    r   )  \r                                       i       =    
0026500    i       +       1  \r                                       e
0026520    n   d   c   a   s   e  \r                                    
0026540    ]  \r                           ]  \r               ]  \r   ]
0026560   \r  \r   a   n   d       G   e   t   N   u   m   b   e   r   (
0026600    )       =       v   a   l   o   f  \r   [  \r   l   e   t    
0026620    s       =       v   e   c       1   2   7                    
0026640        /   /   s   t   r   i   n   g  \r   l   e   t       d    
0026660    =       0                           /   /   d   i   g   i   t
0026700   \r   l   e   t       n       =       -   1  \r   w   h   i   l
0026720    e       n       l   s       0       d   o  \r               [
0026740   \r               n       =       0  \r               G 376 001
0026760   \0   R 255   e   t   S   t   r   i   n   g   (   s   )  \r    
0027000            l   e   t       i       =       0  \r               w
0027020    h   i   l   e       (   i       l   s       s   >   >   S   t
0027040    r   i   n   g   .   l   e   n   g   t   h   )       &       (
0027060    n       g   e       0   )       d   o  \r                    
0027100        [  \r                           i       =       i   +   1
0027120   \r                           n       =       n       *       1
0027140    0               /   /   n   e   w       d   i   g   i   t  \r
0027160                            d       =       (   s   >   >   S   t
0027200    r   i   n   g   .   c   h   a   r   ^   i   )       -       4
0027220    8  \r                           n       =       n       +    
0027240    d  \r                           i   f       (   d       l   s
0027260        0   )       %       (   d       g   r       9   )       t
0027300    h   e   n       n       =       -   1  \r                    
0027320        ]  \r               i   f       n       l   s       0    
0027340    t   h   e   n  \r                           [  \r            
0027360              376  \0   B 340   T   W   s   s   (   m   y   D   s
0027400    p   ,   "       B   a   d       n   u   m   b   e   r   *   n
0027420    "   )  \r                           n       =       0  \r    
0027440                        ]  \r               ]  \r   r   e   s   u
0027460    l   t   i   s       n  \r   ]  \r  \r 377  \0  \0   M   F   T
0027500    P   .   b   r  \0 376 001  \0   9   ( 002 002  \t 215  \0  \0
0027520   \0 017  \0  \0 001 321  \0  \0 001 374  \0  \0  \t   O  \0  \0
0027540   \t 214  \0  \0  \0  \0  \0  \0  \0   <  \0   !  \0  \0 005   m
0027560    y   D   s   p  \0   !  \0  \0 006   b   s   p   S   o   c  \0
0027600   \0   !  \0  \0 006   b   s   p   S   t   r  \0  \0   !  \0  \0
0027620  004   c   t   x   Q  \0  \0   !  \0  \0  \t   t   s   p   B   u
0027640    f   f   e   r  \0   !  \0  \0 004   f   i   l   e  \0  \0   !
0027660   \0  \0 003   b   l   k  \0   !  \0  \0 006   s   t   a   t   u
0027700    s  \0  \0   !  \0  \0 005   e   r   r   o   r  \0   A  \0 001
0027720  004   M   f   t   p  \0  \0   A  \0 002  \b   T   o   p   L   e
0027740    v   e   l  \0  \0   A  \0 003  \t   K   e   y   s   T   o   N
0027760    e   t  \0   A  \0 004  \b   G   e   t   R   e   p   l   y  \0
0030000   \0   A  \0 005  \n   G   e   t   F   r   o   m   B   s   p  \0
0030020   \0   A  \0 006  \t   R   e   a   d   R   e   p   l   y  \0   A
0030040   \0  \a  \n   W   r   i   t   e   R   e   p   l   y  \0  \0   A
0030060   \0  \b  \b   G   e   t   Y   e   s   N   o  \0  \0   A  \0  \t
0030100  016   V   e   r   s   i   o   n   C   o 376 001  \0 027 252   m
0030120    m   a   n   d  \0  \0   A  \0  \n  \v   O   p   e   n   C   o
0030140    m   m   a   n   d  \0   A  \0  \v  \f   C   l   o   s   e   C
0030160    o   m   m   a   n   d  \0  \0   A  \0  \f  \n   E   O   F   C
0030200    o   m   m   a   n   d  \0  \0   A  \0  \r  \r   R   e   w   i
0030220    n   d   C   o   m   m   a   n   d  \0   A  \0 016 021   R   e
0030240    a   d   R   e   c   o   r   d   C   o   m   m   a   n   d  \0
0030260    A  \0 017 022   W   r   i   t   e   R   e   c   o   r   d   C
0030300    o   m   m   a   n   d  \0  \0   A  \0 020 016   F   i   l   e
0030320    F   w   d   C   o   m   m   a   n   d  \0  \0   A  \0 021 017
0030340    F   i   l   e   B   a   c   k   C   o   m   m   a   n   d  \0
0030360    A  \0 022 017   C   l   o   s   e   C   o   n   n   e   c   t
0030400    i   o   n  \0   A  \0 023  \a   G   e   t   K   e   y   s  \0
0030420    A  \0 024  \t   G   e   t   S   t   r   i   n   g  \0   A  \0
0030440  025  \t   G   e   t   N   u   m   b   e   r  \0  \0  \0  \0 002
0030460    W   s  \0  \0  \0  \0  \0 016   I   n   i   t   i   a   l   i
0030500    z   e   Z   o   n   e  \0  \0  \0  \0  \0  \r   I   n   i 376
0030520  001  \0 250 311   t   P   u   p   L   e   v   e   l   1  \0  \0
0030540   \0  \0 023   C   r   e   a   t   e   D   i   s   p   l   a   y
0030560    S   t   r   e   a   m  \0  \0  \0  \0 021   S   h   o   w   D
0030600    i   s   p   l   a   y   S   t   r   e   a   m  \0  \0  \0  \0
0030620   \a   E   n   q   u   e   u   e  \0  \0  \0  \0 021   I   n   i
0030640    t   i   a   l   i   z   e   C   o   n   t   e   x   t  \0  \0
0030660   \0  \0 017   C   a   l   l   C   o   n   t   e   x   t   L   i
0030700    s   t  \0  \0  \0  \0 003   W   s   s  \0  \0  \0  \0  \n   G
0030720    e   t   P   a   r   t   n   e   r  \0  \0  \0  \0  \0 003   d
0030740    s   p  \0  \0  \0  \0 020   O   p   e   n   L   e   v   e   l
0030760    1   S   o   c   k   e   t  \0  \0  \0  \0  \0  \r   O   p   e
0031000    n   R   T   P   S   o   c   k   e   t  \0  \0  \0  \0 021   C
0031020    l   o   s   e   L   e   v   e   l   1   S   o   c   k   e   t
0031040   \0  \0  \0  \0 017   C   r   e   a   t   e   B   S   P   S   t
0031060    r   e   a   m  \0  \0  \0  \0 005   B   l   o   c   k  \0  \0
0031100   \0  \0  \a   U   n   q   u   e   u   e  \0  \0  \0  \0 006   C
0031120    l   o   s   e 376 001  \0 277 265   s  \0  \0  \0  \0  \0  \b
0031140    O   p   e   n   F   i   l   e  \0  \0  \0  \0  \0 003   W   o
0031160    s  \0  \0  \0  \0 006   E   n   d   o   f   s  \0  \0  \0  \0
0031200   \0 004   G   e   t   s  \0  \0  \0  \0  \0  \n   W   r   i   t
0031220    e   B   l   o   c   k  \0  \0  \0  \0  \0  \r   B   S   P   W
0031240    r   i   t   e   B   l   o   c   k  \0  \0  \0  \0 016   B   S
0031260    P   F   o   r   c   e   O   u   t   p   u   t  \0  \0  \0  \0
0031300   \0  \t   R   e   a   d   B   l   o   c   k  \0  \0  \0  \0 004
0031320    k   e   y   s  \0  \0  \0  \0  \0  \t   E   r   a   s   e   B
0031340    i   t   s  \0  \0  \0  \0  \t   C   h   a   r   W   i   d   t
0031360    h  \0  \0  \0  \0 004   P   u   t   s  \0  \0 025  \0  \n  \0
0031400  001  \0  \v  \0   p  \0  \f 001   9  \0  \r 004 003  \0 016 004
0031420    6  \0 017 004   K  \0 020 004 226  \0 021 004 322  \0 022 004
0031440  371  \0 023 005   P  \0 024 005 235  \0 025 005 266  \0 026 005
0031460  317  \0 027 005 347  \0 030 006  \b  \0 031 006   C  \0 032 006
0031500    ^  \0 033 006   w  \0 034 006 202  \0 035 006 227  \0 036 006
0031520  373  \a   R  \a   R   Z 001  \f 370 376 001  \0 374 251   [   D
0031540   \f 367  \t   "   @  \r       M   F   T   P   ,       M   a   g
0031560    t   a   p   e       F   i   l   e       T   r   a   n   s   f
0031600    e   r       P   r   o   g   r   a   m   ,       v   e   r   s
0031620    i   o   n       1   .   2   ,       J   u   n   e       9   ,
0031640        1   9   8   0  \0 342  \0   i   B  \0 001   !   A 306  \0
0031660    B 004   " 004   )   >   i   >  \0 002   !   = 306  \0   B 005
0031700    : 005   ]   [ 205  \0   =   Y   C  \0   9   X   Z 003   " 004
0031720    -   T   i   U  \0 003   !   T 306  \0   B 006   : 006   ]   Q
0031740    !   Q 306  \0   B  \a   :  \a   ]   N   !   N 306  \0   B  \b
0031760    9   L   Z 003   !   K   *  \b   i   J  \0 003   E   I   %   H
0032000    i   H  \0 001   !   G 306  \0   B  \t   =   7   Z  \v   =   M
0032020    Z 003   "  \t   )   K   i   K  \0 003 212  \0   "  \v   i   H
0032040   \0 002   =   +   #  \0   i   W  \0 001 001 374  \0  \0  \0 021
0032060    ' 020  \0  \0   '   "  \f 366   Z 001  \f 370  \b 254  \f 367
0032100   \t 023   "  \r   C   o   n   n   e   c   t       t   o       (
0032120    C   R       t   o       e   x   i   t       p   r   o 376 001
0032140   \0   v 273   g   r   a   m   )   :      \0 342  \0 212  \0   %
0032160  022   i   Z  \0 002   !   Y 306  \0   B 004 001 017  \0  \0  \0
0032200  005  \0  \0   '   $  \0  \0   (   Q  \0  \0   ,   b   #   (  \0
0032220    (  \0  \0  \0  \0  \0  \0   O 213   " 004   i   G  \0 001   :
0032240  004   #  \0   9   D 347 300 202  \f 001 006  \f 353  \0  \0  \v
0032260  270  \0  \0  \0  \0   !   ` 306  \0   B 005   : 005   Z  \t 375
0032300   \0   Z  \n   9   Z   Z  \v   9   Y   Z 003   " 004   -   W   i
0032320    W  \0 005 202  \f 001 003 001 267  \0  \0   !   R 306  \0   B
0032340  006   : 006   ]   O   : 005   Z 003   %   L 255  \0   i   K  \0
0032360  003   %   H   - 305   i   H  \0 002 202  \f 001 031  \t  \v 022
0032400   \r   F   a   i   l   e   d       t   o       c   o   n   n   e
0032420    c   t  \0 342  \0 212  \0   % 276   i 006  \0 002   %   2   i
0032440    S  \0 001 001 221  \0  \0  \0 017  \0  \0 377  \0  \t 005 006
0032460   \r   O   p   e   n   !  \0 342  \0 212  \0   % 254   i 364  \0
0032500  002   %       i   B  \0 001   E   A   !   A 306  \0   B  \a   =
0032520  227   Z  \t   =   N   Z 003   "  \a   )   L   i 253  \0 003 212
0032540   \0   "  \t 376 001  \0 374   $   i 250  \0 002   i   F  \0  \0
0032560    =  \v   # 016   9   C 347  \0 001  \n  \0 217  \0   $  \0 006
0032600   \0  \0  \0  \0  \0 223  \0  \0  \0  \0  \0  \0   9   P 345  \f
0032620  001 005   %   N   9   N 345  \f 001 352   %   L   *  \a   i   K
0032640   \0 002   % 026   i   I  \0 001  \t  \v 023  \r   C   o   n   n
0032660    e   c   t   i   o   n       C   l   o   s   e   d   ! 342  \0
0032700  212  \0   %   M   i 263  \0 002 001   K  \0  \0  \0  \0  \0  \0
0032720   \0 333  \f 366   Z 001  \f 370  \0 214  \f 367   i   C  \0  \0
0032740    i   B  \0  \0   i   `  \0  \0   i   >  \0  \0   !   ] 306  \0
0032760    B 004 001   [  \0  \0  \a 320  \0  \0  \0 377 375  \0   ]   W
0033000   \t  \r 027  \r   C   o   m   m   a   n   d       (   ?       f
0033020    o   r       h   e   l   p   )   :     342  \0 212  \0   % 037
0033040    i 205  \0 002   i   E  \0  \0   B 005 001   T  \0 003 376 035
0033060  377 375  \0 220  \0  \0  \0  \0  \t  \n 021       C   l   o   s
0033100    e       C   o   n   n   e   c   t   i   o   n 342  \0 212  \0
0033120    % 006   i   G  \0 002   i   d  \0  \0 001   c  \0 233  \f 355
0033140  376 365  \0  \0  \0  \0  \t  \r 376 001  \0   3 336 026       R
0033160    e   a   d       f   i   l   e   ,       f   i   l   e   n   a
0033200    m   e   ?      \0 342  \0 212  \0   % 354   i   -  \0 002   i
0033220  267  \0  \0   " 004   i   J  \0 001   " 004   i   H  \0 001   E
0033240    f   =   e 372  \f 001 033 001  \a  \0  \0  \0  \f  \f 355 002
0033260    ]  \0  \0  \0  \0  \t  \v 023       f   i   l   e       s   y
0033300    s   t   e   m       e   r   r   o   r     342  \0 212  \0   %
0033320  311   i  \n  \0 002 001   (  \f 355 002   . 375  \0   Z 006 375
0033340   \0   Z  \a 001  \n  \0 344   i   r  \0  \0   i   q  \0  \0   B
0033360  006   "  \a 203  \0   B  \a   : 006 372  \f 001 004   = 332 372
0033400   \r 001 363   = 327 372  \r 001 023  \t  \a  \n   R   e   a   d
0033420        e   r   r   o   r  \0 342  \0 212  \0   % 243   i 344  \0
0033440  002 001   !  \0  \0  \f 355 002   !  \0 346  \0  \0  \t 002 001
0033460      342  \0 212  \0   % 226   i 327  \0 002   "  \a 375   P 345
0033500   \0 212  \0   % 217   i   J  \0 002  \t  \b  \r       r   e   c
0033520    o   r   d   s       r   e   a   d 342  \0 212  \0   % 202   i
0033540  303  \0 002   % 004   i   i  \0 001 001 336  \0  \0 376 001  \0
0033560  350  \t  \t  \r 027       W   r   i   t   e       f   i   l   e
0033600    ,       f   i   l   e   n   a   m   e   ?     342  \0 212  \0
0033620    %   W   i 254  \0 002   i   U  \0  \0   " 004   i 311  \0 001
0033640    9   Q   Z 003   " 004 255   P   i 304  \0 003   E 342   = 341
0033660  372  \f 001 027  \t  \f 024       f   i   l   e       d   o   e
0033700    s       n   o   t       e   x   i   s   t  \0 342  \0 001 003
0033720   \0  \0  \0  \0 212  \0   %   4   i 211  \0 002 001 247  \0  \0
0033740   \t 020 035  \r   R   e   c   o   r   d       s   i   z   e    
0033760    i   n       b   y   t   e   s       (   1   0   2   4   )    
0034000  342  \0 212  \0   % 035   i   S  \0 002   i   R  \0  \0   B 006
0034020    " 006 202  \f 001 017  \t  \a  \n       u   s   e   d       1
0034040    0   2   4  \0 342  \0 212  \0   %  \v   i   A  \0 002   9   \
0034060    Z 006   " 006   9   Z 344   J 001 024 001 005 001   j 001   }
0034100  001   K  \0 002  \t  \a  \n       u   s   e   d       2   0   4
0034120    8  \0 342  \0 212  \0   % 364   i   *  \0 002   9   F   Z 006
0034140  375  \0   Z  \a 001  \n   % 205   * 006   i   f  \0 002   i   e
0034160   \0  \0 376 001  \0 322   9   "  \a 203  \0   B  \a   %   a   i
0034200    a  \0 001 202  \f 001 004   =   ^ 372  \r 001 360   =   [ 372
0034220   \r 001 022  \t  \t 016   E   r   r   o   r       o   n       W
0034240    r   i   t   e  \0 342  \0 212  \0   % 315   i 003  \0 002 001
0034260  032 001 277  \0  \0   i   f  \0  \0   i   B  \0  \0   % 303   *
0034300   \a   i 221  \0 002  \t  \n 020       r   e   c   o   r   d   s
0034320        w   r   i   t   t   e   n  \0 342  \0 212  \0   % 263   i
0034340  351  \0 002   %   .   i 256  \0 001 001   M 004  \0  \b  \0  \t
0034360  017 032       F   w   d       s   k   i   p       f   i   l   e
0034400    ,       h   o   w       m   a   n   y   :      \0 342  \0 212
0034420   \0   % 231   i 317  \0 002   i 316  \0  \0   B 006   " 006 202
0034440   \f 001  \n  \t 002 001   1 342  \0 212  \0   % 214   i 302  \0
0034460  002 375   P   Z 006 375  \0   ]   i 001   9  \0  \0  \0  \0 002
0034500  002  \0  \0 001 245   " 006 375   P 345  \0   B 006   i   _  \0
0034520   \0   i   ^  \0  \0   = 367 372  \r 001   )   %   W   9 307 347
0034540  004 205   P 202  \r 001 026  \t  \v 023   c   a   n   '   t    
0034560    s   k   i   p       p   a 376 001  \0   f   :   s   t       E
0034600    O   T 342  \0 001 004  \0  \0  \f 355  \0 367 212  \0   %   g
0034620    i 223  \0 002 001 016  \t  \b  \r   e   r   r   o   r       i
0034640    n       s   k   i   p 342  \0 212  \0   %   Y   i 205  \0 002
0034660    " 006 202  \r 001  \n   = 311 372  \f 001  \a   %   )   9 231
0034700  347 004 205   P 202  \r 001 302 001 340  \t 017 033       B   a
0034720    c   k       s   k   i   p       f   i   l   e   ,       h   o
0034740    w       m   a   n   y   :     342  \0 212  \0   %   8   i   V
0034760   \0 002   i   U  \0  \0   B 006   " 006 202  \f 001 016  \t 002
0035000  001   1 342  \0 212  \0   %   +   i   I  \0 002 001 004  \0  \0
0035020   \0  \0  \0  \0 375   P   Z 006 375  \0   ] 372 001   2   " 006
0035040  375   P 345  \0   B 006   i   K  \0  \0   i 364  \0  \0   = 215
0035060  372  \r 001 016  \t  \b  \r   e   r   r   o   r       i   n    
0035100    s   k   i   p 342  \0 212  \0   %  \n   i   (  \0 002   % 340
0035120    9   g 347 004 205   P 202  \r 001 024 001 002 002   i  \t  \f
0035140  025       A   t       b   e   g   i   n   n   i   n   g       o
0035160    f       t   a   p   e 342  \0 212  \0   % 361 376 001  \0   e
0035200  371   i 017  \0 002   " 006 202  \r 001  \n   =   M 372  \f 001
0035220   \a   % 301   9   H 347 004 205   P 202  \r 001 304 001   p 002
0035240  240 002 241  \t 005  \a       R   e   w   i   n   d 342  \0 212
0035260   \0   % 330   i 366  \0 002   i   K  \0  \0   i   J  \0  \0 001
0035300    _  \0  \0  \t   *   P  \r   c   =   C   l   o   s   e   ,    
0035320    r   =   R   e   a   d       f   i   l   e   ,       w   =   W
0035340    r   i   t   e       f   i   l   e   ,       f   =   F   w   d
0035360        s   k   i   p       f   i   l   e   ,       b   =   B   a
0035400    c   k       s   k   i   p       f   i   l   e   ,       u   =
0035420    R   e   w   i   n   d  \0 342  \0 212  \0   % 243   i 301  \0
0035440  002 001   .  \b  \0 002 351  \t  \b  \f       B   a   d       c
0035460    o   m   m   a   n   d  \0 342  \0 212  \0   % 223   i 261  \0
0035500  002 001 036  \f 355  \0 034 001 033   " 005 001 003  \0  \0 001
0035520  201  \f 350  \0   w  \0 006 376 025 377 347 377 244 377 345 377
0035540  344 375 217  \f 350  \0   f  \0 005 376 310 377 336 377 335 375
0035560    q 377   /  \f 351  \0 001  \0   ? 377 245 001 326 001   G  \f
0035600  366 376 001  \0 255   C   Z 001  \f 370  \0  \f  \f 367 375  \0
0035620    Z 004   i   \  \0  \0   9   [ 347 300   B 005   : 005   Z 006
0035640    i   U  \0  \0   * 006 216  \0   J 006   " 006   =   Q   C  \0
0035660  375   P   Z  \a   " 006 375   P 345  \0   B  \b 001 023   i   F
0035700   \0  \0   9   E 347 300   B 005   : 005   Z  \t   i   ?  \0  \0
0035720    *  \t 216  \0   "  \a   =   < 236  \0   K  \0   "  \a 203  \0
0035740    B  \a   "  \a   :  \b 344   J 001 353  \f 366   Z 001  \f 370
0035760   \0  \b  \f 367 374  \0   Z 004 001  \a   i   U  \0  \0   %   T
0036000    i   T  \0 001   B 004   " 004 202   J 001 370   " 004 001 003
0036020   \f 355 375 004  \f 366   Z 001  \f 370  \0  \v  \f 367   i 233
0036040   \0  \0   = 026   ; 002   ]   d   %   c   9   c 347  \0   B 004
0036060    : 004 372  \r 001 003 374  \0   ]   ]   %   Z   9   \ 347 004
0036100  205   P 202  \r 001 006 204  \0 001   1  \0  \0  \0 377  \0 226
0036120    %   O   9   R 347 004 205   P 202  \r 001 003 374  \0   ]   J
0036140    %   G 202   @ 205   p 202  \f 001 003 374  \0   ]   C   %   @
0036160    9   W 347 004 205   P 202  \f 001 003 374  \0   ]   ;   = 350
0036200    ; 003   Z 005   % 345 376 001  \0 002 374   9   M 346  \0   *
0036220  005 253  \0   B  \b 242  \0   )   k  \f 344   J 003   %   i   *
0036240   \b   i   h  \0 003 205  \0 001 004 002   j 001   6  \0  \0  \f
0036260  366   Z 001  \f 370  \0 006  \f 367   i   ]  \0  \0   = 313   ;
0036300  003   ] 031   % 030   9 030 347  \0   B 004   : 004 372  \r 001
0036320  003 374  \0   ] 022   % 017   9 021 347 004 205   P 202  \r 001
0036340  003 374  \0   ]  \n   %  \a   9  \n 347 004 205   P 202  \r 001
0036360   \t 001 006 003   L  \0 374 003 325 002  \0 004  \0 374  \0   ]
0036400  374   % 371 202   @ 205   p 202  \f 001 003 374  \0   ] 365   %
0036420  362   9  \t 347 004 205   P 202  \f 001 003 374  \0   ] 355 205
0036440   \0 001 003   @  \0  \0 004  \f 366   Z 001  \f 370  \0 006  \f
0036460  367   i   !  \0  \0   = 217   ; 003   ] 335   % 334   9 334 347
0036500   \0   B 004   : 004 372  \r 001 003 374  \0   ] 326   % 323 202
0036520    @ 205   p 202  \f 001 003 374  \0   ] 317   % 314   9 343 347
0036540  004 205   P 202  \f 001  \b 374  \0   ] 307 001 005  \0 002 002
0036560  347  \0  \0 003 352  \f 366   Z 001  \f 370  \0  \r  \f 367   !
0036600    Q   =   Q   C 001 205  \0   =   N   C 002 376 001  \0 370   s
0036620   \t 022       V   e   r   s   i   o   n       1   .   0       T
0036640    a   p   e       S   e   r   v   e   r       P   r   o   t   o
0036660    c   o   l  \0 342  \0   B 004   : 004   #  \0   9   ^ 347 300
0036700    9 331 346  \0   ) 327  \f 344   9   / 356  \0   J 005   " 005
0036720    =   ,   C  \0 375  \0   Z 006 375  \0   Z  \a   " 005   9 246
0036740  345  \0   B  \b 001 016   "  \a   : 004 236  \0   #  \0   - 035
0036760    9 033 356  \0   :  \a 276  \0   C  \0   "  \a 203  \0   B  \a
0037000    "  \a   :  \b 344   J 001 360 375  \0   Z  \n   " 005 202   P
0037020    B  \v   9   T   Z 003   %   S   -  \b   i   R  \0 004   %   Q
0037040    i   Q  \0 001  \f 366  \0 003  \0 224   Z 001  \f 370  \0  \r
0037060   \f 367   !   a   = 372   C 001 205  \0   = 367   C 002  \t 004
0037100  005   G   l   e   n   n 342  \0   B 004   : 004   #  \0   9 025
0037120  347 300   9 220 346  \0   ) 216  \f 344   9 346 356  \0   J 005
0037140    " 005   = 343   C  \0 375  \0   Z 006 375  \0   Z  \a   " 005
0037160    9   [ 345  \0   B  \b 001 017 377  \0   "  \a   : 004 236  \0
0037200    #  \0   - 323   9 321 356  \0   :  \a 276  \0   C  \0   "  \a
0037220  376 001  \0  \0   L 203  \0   B  \a   "  \a   :  \b 344   J 001
0037240  360 375  \0   Z  \n   " 005 202   P   B  \v   9  \n   Z 003   %
0037260   \t   - 276   i  \b  \0 004   %  \a   i  \a  \0 001  \f 366  \0
0037300   \a 004 223  \0  \0 001 022  \0  \0   Z 001  \f 370  \0  \n  \f
0037320  367   ! 367   = 255   C 001   !   b   = 252   C  \0 375  \0   Z
0037340   \a   9   %   Z  \b   9   #   Z 003   % 354   - 241   i 353  \0
0037360  004   % 352   i 352  \0 001  \f 366  \0 006   Z 001  \f 370  \0
0037400   \n  \f 367   !   M   = 224   C 001   !   I   = 221   C  \0 375
0037420   \0   Z  \a   9  \f   Z  \b   9  \n   Z 003   % 323   - 210   i
0037440  322  \0 004   % 321   i 321  \0 001  \f 366  \0 004   Z 001  \f
0037460  370  \0  \n  \f 367   !   g   =   g   C 001   !   0   =   d   C
0037500   \0 375  \0   Z  \a   9 363   Z  \b   9 361   Z 003   % 272   -
0037520    [   i 271  \0 004   % 270   i 270  \0 001  \f 366   Z 001  \f
0037540  370  \0  \n  \f 367  \t 002 001   . 342  \0 212  \0   %   M   i
0037560    M  \0 002   !   L   =   H   C 001   ! 021   =   E   C  \0 375
0037600   \0   Z  \a   9 324   Z  \b   9 322   Z 003   % 233   -   <   i
0037620  232  \0 004   % 231 376 001  \0 201 245   i 231  \0 001  \f 366
0037640   \0 002  \0 016   Z 001  \f 370  \0  \r  \f 367  \t 002 001   .
0037660  342  \0 212  \0   %   ,   i   ,  \0 002   !   H   =   H   C 001
0037700    %   F   9   F 346  \0   B  \b   " 005   ) 353  \f 344   J 003
0037720    " 004   *  \b   i   V  \0 003   B 006   " 006   9   9 346  \0
0037740    =   6   C  \0   " 006 202   P   =   2   C 002 375  \0   Z  \n
0037760    " 006 202   P   9 205 346  \0   B  \v   9   L   Z 003   %   K
0040000    -   &   i   J  \0 004 001 006  \0 020 005   O 003   s 003 222
0040020   \0  \b   %   H   i   H  \0 001  \f 366   Z 001  \f 370  \0  \n
0040040   \f 367   !   M   = 363   C 001   ! 274   = 360   C  \0 375  \0
0040060    Z  \a   9   F   Z  \b   9   D   Z 003   %   -   - 347   i   ,
0040100   \0 004   %   0   i   0  \0 001  \f 366  \0  \t 004   g  \0 003
0040120    Z 001  \f 370  \0  \n  \f 367   !   L   = 330   C 001   ! 241
0040140    = 325   C  \0 375  \0   Z  \a   9   +   Z  \b   9   )   Z 003
0040160    % 022   - 314   i 021  \0 004   % 025   i 025  \0 001  \f 366
0040200   \0  \0   Z 001  \f 370  \0  \a  \f 367   % 005   i   S  \0 001
0040220   \f 366  \0  \a 005 231 005 232   Z 001 376 001  \0 017 036  \f
0040240  370  \0  \a  \f 367 001 005 005 233 005 234   i   G  \0  \0   %
0040260    F   i   F  \0 001 202  \f 001 372   %   A   i   O  \0 001 001
0040300  003  \0  \f  \0 004  \f 366   Z 001  \f 370  \0  \r  \f 367 375
0040320    P   Z 005 001   Y   i   F  \0  \0   B 006 001   D 375   P   Z
0040340  005  \t 004 004   X   X   X  \r  \0 342  \0 212  \0   % 222   i
0040360  222  \0 002 001   I  \0  \r   " 005 375   P 345  \0   * 004 202
0040400  300  \f 360 377  \0  \f 366 001   ?   " 005 375   P 344   J 001
0040420  023   " 005 375   P 345  \0   B 005   =   )   Z  \b   " 004   *
0040440  005  \f 362 212  \0   %   #   i   #  \0 002 201  \0 212  \0   "
0040460   \b   i 037  \0 002 001   ( 002   h 004 222  \0  \0 002 350   :
0040500  006   Z 003   " 004   * 005  \f 364   % 021   * 006   i 022  \0
0040520  002   " 005 203  \0   B 005 001 027 004 224  \f 355  \0 024 001
0040540  023 001 246   " 006 001  \a  \f 355  \0 016 006   <  \0  \0  \0
0040560   \0  \0  \0  \f 351  \0 003  \0 177 377 262  \0  \r 377 275  \0
0040600   \b 377 304 001 336   " 005   9   S 344   J 001 245  \f 366   Z
0040620  001  \f 370  \0 214  \f 367   ! 225 306  \0   B 004 375  \0 376
0040640  001  \0   : 266   Z 005 374  \0   Z 006 001   ? 375  \0   Z 006
0040660    " 004   i   B  \0 001 375  \0   Z  \a 001 033   "  \a 203  \0
0040700    B  \a   " 006   )   :  \f 343   J 006   " 004   *  \a  \f 362
0040720    9   5 345  \0   B 005   " 006   : 005 346  \0   B 006   " 005
0040740  202   J 001 005   " 005   9   + 344   J 001 003 374  \0   Z 006
0040760    : 004   #  \0   9   % 347 300   *  \a 215   K 001 004   " 006
0041000  202   K 001 335   " 006 202   K 001 020  \t  \b  \f       B   a
0041020    d       n   u   m   b   e   r  \r  \0 342  \0 212  \0   % 251
0041040    i 020  \0 002 375  \0   Z 006   " 006 202   J 001 300   " 006
0041060  001 002  \0 377  \f 366 001 341  \0  \n  \0   0  \0  \t 377  \0
0041100  006   =  \0   < 006 351 006 207 006 200 001   h 006   \ 004 365
0041120  006   ; 004 267 004 271  \0  \0  \0 250 001   I 004 367 004   e
0041140  002   3 002 346 003   N 001 200 001 241  \0  \0 003  \b 003 351
0041160  002   2 002 345 003   M 003 243 001 336 006 344  \a   L 003 223
0041200   \0   j  \0   m  \0 222  \0 232  \0 234  \0 253  \0 252  \0 276
0041220   \a   Q 001 020 001 017 001 023 001 024 001   4 001   5 006 320
0041240  001   i 006 317 376  \0 032   E 356 001 342 002   9 006 322 006
0041260  340 004 366 006 201 006 210 006   v 006 321 006 353 006 352 006
0041300  354  \0  \0 377  \0  \0   L   i   n   k   M   F   T   P   .   c
0041320    m  \0 376 001  \0 316 255   b   l   d   r   /   f       M   F
0041340    T   P       P   u   p   1   b       P   u   p   1   I   n   i
0041360    t       P   u   p   1   O   p   e   n   C   l   o   s   e    
0041400    P   u   p   A   l   1   a       P   u   p   A   l   E   t   h
0041420    a       P   u   p   A   l   E   t   h   b       P   u   p   A
0041440    l   E   t   h   I   n   i   t       A   l   t   o   B   y   t
0041460    e   B   l   t       A   l   t   o   Q   u   e   u   e       A
0041500    l   t   o   T   i   m   e   r       P   u   p   B   S   P   a
0041520        P   u   p   B   S   P   B   l   o   c   k       P   u   p
0041540    B   S   P   O   p   e   n   C   l   o   s   e       P   u   p
0041560    B   S   P   P   r   o   t       P   u   p   B   S   P   S   t
0041600    r   e   a   m   s       C   o   n   t   e   x   t       C   o
0041620    n   t   e   x   t   I   n   i   t       P   u   p   D   u   m
0041640    m   y   G   a   t   e       I   n   t   e   r   r   u   p   t
0041660        I   n   t   e   r   r   u   p   t   I   n   i   t       P
0041700    u   p   N   a   m   e   L   o   o   k   u   p       P   u   p
0041720    R   o   u   t   e       P 376  \0 032   ' 037   u   p   R   T
0041740    P       P   u   p   R   T   P   O   p   e   n   C   l   o   s
0041760    e              \r  \r 377  \0  \0   D   u   m   p   M   F   T
0042000    P   S   o   u   r   c   e   s   .   c   m  \0 376  \0   y   b
0042020  375   f   t   p       i   v   y       c   o   n   n   /   c    
0042040    T   a   p   e   S   e   r   v   e   r       d   i   r   /   c
0042060        >   S   o   f   t   w   a   r   e   S   o   u   r   c   e
0042100    s   >       d   u   m   p   /   c       M   F   T   P   S   o
0042120    u   r   c   e   s   .   d   m       M   F   T   P   .   b   c
0042140    p   l       M   F   T   P   .   b   r       L   i   n   k   M
0042160    F   T   P   .   c   m       D   u   m   p   M   F   T   P   S
0042200    o   u   r   c   e   s   .   c   m  \r 374                    
0042213