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