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