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