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