$ od -c -N 50000 [Indigo]<Spruce>12>sources>spruceprindover.sr!2
0000000    /   /      \t  \t  \t   P       R       I       N       T    
0000020            -               D   O   V   E   R              \r   /
0000040    /       e   r   r   o   r   s       1   0   0   0  \r   /   /
0000060   \r  \r   g   e   t       "   S   p   r   u   c   e   .   d   "
0000100   \r   g   e   t       "   S   p   r   u   c   e   F   i   l   e
0000120    s   .   d   "  \r   g   e   t       "   O   r   b   i   t   .
0000140    d   "  \r  \r   /   /       o   u   t   g   o   i   n   g    
0000160    p   r   o   c   e   d   u   r   e   s  \r   e   x   t   e   r
0000200    n   a   l  \r  \t   [  \r  \t   D   r   i   v   e   P   r   i
0000220    n   t   e   r  \r  \t   ]  \r   /   /       i   n   c   o   m
0000240    i   n   g       p   r   o   c   e   d   u   r   e   s  \r   e
0000260    x   t   e   r   n   a   l  \r  \t   [  \r  \t   S   p   r   u
0000300    c   e   E   r   r   o   r  \r  \t   M   a   x  \r  \t   M   i
0000320    n  \r  \t   I   n   i   t   R   a   m  \r   /   /   S   p   r
0000340    u   c   e   P   r   i   n   t  \r  \t   A   d   d   T   o   B
0000360    i   n  \r  \t   A   n   n   o   u   n   c   e  \r  \t   A   w
0000400    a   i   t   P   a   g   e   S   y   n   c  \r  \t   P   r   i
0000420    n   t   N   e   x   t  \r  \t   R   e   a   d   B   a   n   d
0000440    s  \r  \t   R   e   a   d   C   l   o   c   k  \r  \t   R   e
0000460    a   d   F   o   n   t  \r   /   /   C   U   R   S   O   R  \r
0000500   \t   C   u   r   s   o   r   C   h   a   r  \r  \t   C   u   r
0000520    s   o   r   D   i   g   i   t  \r   /   /       S   p   r   u
0000540    c   e   P   r   i   n   t   R   e   s  \r  \t   D   o   F   u
0000560    n   c  \r  \t   R   O   S   S   t   a   t   u   s  \r   /   /
0000600        T   i   m   e   r       (   d   e   b   u   g       o   n
0000620    l   y   )  \r  \t   S   e   t   T   i   m   e   r  \r  \t   T
0000640    i   m   e   r   H   a   s   E   x   p   i   r   e   d  \r   /
0000660    /   O   S  \r  \t   Z   e   r   o  \r  \t   D   i   s   a   b
0000700    l   e   I   n   t   e   r   r   u   p   t   s  \r  \t   E   n
0000720    a   b   l   e   I   n   t   e   r   r   u   p  \0  \a 020   @
0000740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0000760   \0  \0 001 334  \0  \0  \0  \0   R 272  \0 272 366 356 370 366
0001000    t   s  \r  \t   ]  \r   /   /       i   n   c   o   m   i   n
0001020    g       s   t   a   t   i   c   s  \r   e   x   t   e   r   n
0001040    a   l  \r  \t   [  \r  \t   s   c   a   n   T   i   c   k   s
0001060   \t  \t   /   /       #       o   f       3   8       u   s   e
0001100    c   .       t   i   c   k   s       i   n       4       p   r
0001120    i   n   t   e   r       s   c   a   n       l   i   n   e   s
0001140    .  \r  \t   l   o   g   B   a   n   d   R   e   c   o   r   d
0001160    S   i   z   e  \r  \t   b   a   n   d   R   e   c   o   r   d
0001200    S   i   z   e  \r  \t   n   P   a   g   e   s   P   r   i   n
0001220    t   e   d  \r  \t   D   e   b   u   g  \r  \t   D   e   b   u
0001240    g   S   y   s   t   e   m  \r  \t   s   i   g   n   a   l   B
0001260    a   n   d          \r  \t   F   u   n   c  \r  \t   d   e   b
0001300    u   g   T   r   a   i   l  \r  \t   k   n   o   c   k   R   e
0001320    s   u   l   t  \r  \t   n   u   m   P   r   i   n   t   e   d
0001340   \r  \t   n   u   m   M   u   s   t   P   r   i   n   t  \r  \t
0001360    I   n   i   t   M   e   a   s   u   r   e       /   /       D
0001400    o   v   e   r       e   n   g   i   n   e       c   o   n   t
0001420    r   o   l       m   o   n   i   t   o   r   i   n   g       s
0001440    t   u   f   f  \r  \t   C   l   o   s   e   M   e   a   s   u
0001460    r   e  \r  \t   T   i   c   k   M   e   a   s   u   r   e  \r
0001500   \t   M   e   a   s   u   r   e  \r  \t   m   e   a   s   u   r
0001520    e   T   a   b   l   e  \r  \t   x   m   F   o   n   t   s  \t
0001540    /   /       F   o   n   t       d   a   t   a       w   i   l
0001560    l       b   e       r   e   a   d       i   n   t   o       B
0001600    a   n   k       1       v   i   a       B   a   n   k       0
0001620    ,       i   f       s   e   t  \r  \t   n   R   e   c   s  \r
0001640   \t   L   o   w   A   d   r  \r  \t   F   A   v   a   l   u   e
0001660   \r  \t   n   B   a   n   d   s  \r  \t   s   t   o   p   s   P
0001700    r   i   n   t   i   n   g  \r  \t   ]  \r  \f  \r  \r   /   /
0001720        i   n   t   e   r   n   a   l       s   t  \0  \a 020   @
0001740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0001760   \0  \0 001 334 376  \0  \0  \0   P 272  \0 272 366 356 370 366
0002000    a   t   i   c   s              \r   s   t   a   t   i   c  \r
0002020   \t   [  \r  \t   t   i   m   e   O   u   t   =   1   5   *   2
0002040    7  \r  \t   p   r   i   n   t   H   y   s   t   e   r   e   s
0002060    i   s       =       1   5       /   /       p   r   i   n   t
0002100        t   h   i   s       m   a   n   y       b   e   f   o   r
0002120    e       a   l   l   o   w   i   n   g       s   u   s   p   e
0002140    n   s   i   o   n   ,       e   a   c   h       t   i   m   e
0002160        i   n  \r  \t           /   /       ~   ~       a   b   o
0002200    v   e       n   u   m   b   e   r       m   a   y       w   a
0002220    n   t       t   o       i   n   c   r   e   a   s   e       f
0002240    o   r       l   a   r   g   e       r   u   n   s   ,       o
0002260    r       s   o   m   e   t   h   i   n   g   ?  \r  \t   s   i
0002300    m   L   a   t   e   D   i   s   k              \r  \t   /   /
0002320        c   S   t   a   t       ~   ~       C   o   l   l   e   c
0002340    t       s   t   a   t   i   s   t   i   c   s       o   n    
0002360    t   h   e       a   p   p   e   a   r   a   n   c   e       o
0002400    f       C   o   u   n   t   -   H       (   D   o   v   e   r
0002420        o   n   l   y   )  \r  \t   /   /       c   S   t   a   t
0002440        ~   ~           R   e   c   o   r   d       m   i   n   i
0002460    m   u   m       a   n   d       m   a   x   i   m   u   m    
0002500    v   a   l   u   e       o   f       (   n   B   a   n   d   s
0002520    -   c   u   r   r   e   n   t       b   a   n   d   )       i
0002540    n  \r  \t   /   /       c   S   t   a   t       ~   ~        
0002560    c   o   u   n   t   -   H       s   i   g   n   a   l       L
0002600    A   S   T       a   p   p   e   a   r   s       d   u   r   i
0002620    n   g       i   m   a   g   i   n   g       o   f       a    
0002640    p   a   g   e   .  \r  \t   /   /       c   S   t   a   t    
0002660    ~   ~           R   e   -   I   n   i   t   i   a   l   i   z
0002700    e       S   p   r   i   n   t   ,       o   r       r   e   s
0002720    e   t       b   y       h   a   n   d   ,      \0  \a 020   @
0002740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0002760   \0  \0 001 334 374  \0  \0  \0   N 272  \0 272 366 356 370 366
0003000    t   o       r   e   i   n   i   t   i   a   l   i   z   e    
0003020    v   a   l   u   e   s  \r  \t   c   b   M   i   n       =    
0003040    3   2   7   6   7       /   /       c   S   t   a   t       ~
0003060    ~       m   i   n       v   a   l   u   e       o   f       (
0003100    n   B   a   n   d   s   -   c   u   r   r   e   n   t   B   a
0003120    n   d   )  \r  \t   c   b   M   a   x       =       0       /
0003140    /       c   S   t   a   t       ~   ~       m   a   x       v
0003160    a   l   u   e       -   -       n   o   m   i   n   a   l    
0003200    v   a   l   u   e       i   s       v   a   l   u   e       o
0003220    f       s   i   g   n   a   l   B   a   n   d  \r  \t   /   /
0003240        d   e   l   a   y       ~   ~   ~   ~       d   e   b   u
0003260    g   g   i   n   g   :       d   e   l   a   y       p   e   r
0003300        p   a   g   e       t   o       s   i   m   u   l   a   t
0003320    e       p   r   i   n   t   i   n   g  \r  \t   d   e   b   D
0003340    e   l   a   y       =       0       /   /       d   e   l   a
0003360    y       n   o       d   e   l   a   y       s   t   d   .    
0003400   \r  \t   /   /       d   e   l   a   y       ~   ~   ~   ~  \r
0003420   \t   ]  \r  \r   /   /       F   i   l   e   -   w   i   d   e
0003440        s   t   r   u   c   t   u   r   e       a   n   d       m
0003460    a   n   i   f   e   s   t       d   e   c   l   a   r   a   t
0003500    i   o   n   s   .  \r  \r   m   a   n   i   f   e   s   t    
0003520    [  \r  \t   R   T   C   =   #   4   3   0  \r  \t   d   e   b
0003540    u   g   T   r   a   i   l   S   i   z   e       =       1   0
0003560    *   3  \r  \r  \t   /   /       F   a   i   l   u   r   e    
0003600    C   o   d   e       r   a   n   g   e   s       -   -       s
0003620    e   e       R   O   S   C   h   e   c   k  \r  \t   m   a   x
0003640    N   o   t   R   e   a   d   y       =       9       /   /    
0003660    n   o   t       r   e   a   d   y   ,       b   u   t       p
0003700    r   o   b   a   b   l   y       w   i   l   l       b   e    
0003720    s   o   o   n  \r  \t   m   a   x   M   a   n  \0  \a 020   @
0003740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0003760   \0  \0 001 334 372  \0  \0  \0   L 272  \0 272 366 356 370 366
0004000    u   a   l       =       1   9       /   /       M   a   n   u
0004020    a   l       i   n   t   e   r   v   e   n   t   i   o   n    
0004040    r   e   q   u   i   r   e   d  \r  \t   m   a   x   J   a   m
0004060        =       9   9  \t   /   /       E   r   r   o   r       d
0004100    u   r   i   n   g       o   p   e   r   a   t   i   o   n  \r
0004120   \t   m   i   n   D   o   c   u   m   e   n   t   E   r   r   o
0004140    r       =       3   0   0       /   /       D   o   c   u   m
0004160    e   n   t       i   n   h   e   r   e   n   t   l   y       h
0004200    a   r   d       t   o       p   r   i   n   t  \r  \t  \t   ]
0004220   \r  \r   /   /       R   O   S   C   h   e   c   k       v   a
0004240    l   u   e   s  \r   s   t   r   u   c   t   u   r   e       C
0004260    T   :  \r      \t   [  \r      \t   i   n   v   e   r   t  \t
0004300   \t   b   i   t       1       /   /       b   i   t       i   s
0004320        o   n       w   h   e   n       t   h   i   n   g   s    
0004340    a   r   e       g   o   o   d  \r      \t   m   a   l   F   n
0004360    R   e   q  \t   b   i   t       1       /   /       D   o   v
0004400    e   r       m   a   l   f   u   n   c   t   i   o   n       b
0004420    i   t       m   u   s   t       a   l   s   o       b   e    
0004440    o   n       o   r       n   o       e   r   r   o   r  \r    
0004460   \t   f   a   i   l   u   r   e   C   o   d   e  \t   b   i   t
0004500        6  \r      \t   w   o   r   d   I   n   d   e   x  \t   b
0004520    i   t       4  \r      \t   b   i   t   I   n   d   e   x  \t
0004540    b   i   t       4  \r      \t   ]  \r  \r   m   a   n   i   f
0004560    e   s   t       /   /       f   a   c   t   o   r   s       f
0004600    o   r       c   r   e   a   t   i   n   g       t   a   b   l
0004620    e       e   n   t   r   i   e   s  \r  \t   [  \r  \t   I   n
0004640    v   e   r   t  \t  \t   =       #   1   0   0   0   0   0  \r
0004660   \t   M   a   l   F   n   R   e   q  \t   =       #   4   0   0
0004700    0   0  \r  \t   C   o   d   e  \t  \t   =       2   5   6  \r
0004720   \t   W   o   r   d  \t  \t   =       1   6  \r  \0  \a 020   @
0004740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0004760   \0  \0 001 334 370  \0  \0  \0   J 272  \0 272 366 356 370 366
0005000   \t   B   i   t  \t  \t   =       1  \r  \t   ]  \r  \f  \r   /
0005020    /       -   -   -   -   -   -   -   -   -   -   -   -   -   -
0005040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0005100    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   /   /
0005120        D   o   v   e   r   P   r   i   n   t  \t  \t   I   n   i
0005140    t   i   a   l   i   z   a   t   i   o   n  \r   /   /       -
0005160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0005240    -   -   -   -   -   -   -   -   -   -  \r  \r   /   /       R
0005260    e   t   u   r   n   s       -   1       i   f       p   r   i
0005300    n   t   i   n   g       i   s       s   u   c   c   e   s   s
0005320    f   u   l   l   y       c   o   m   p   l   e   t   e   d   ,
0005340        e   l   s   e  \r   /   /       n   P   a   g   e   s   P
0005360    r   i   n   t   e   d   ,       s   o       c   a   n       p
0005400    i   c   k       u   p       w   h   e   r   e       w   e    
0005420    l   e   f   t       o   f   f   .  \r  \r   l   e   t       D
0005440    r   i   v   e   P   r   i   n   t   e   r   (   p   D   o   c
0005460    ,       n   P   a   g   e   s   A   l   r   e   a   d   y   P
0005500    r   i   n   t   e   d   ,       l   v   F   a   i   l   u   r
0005520    e   C   o   d   e   )       =       v   a   l   o   f  \r   [
0005540   \r   /   /       *   *   *   *   *   *   *   *       S   e   e
0005560        S   p   r   u   c   e   M   e   a   s   u   r   e       -
0005600    -       d   o   n   '   t       m   o   v   e       d   e   c
0005620    l   a   r   a   t   i   o   n   s       o   f       n   e   x
0005640    t       f   i   v   e       l   o   c   a   l       v   a   r
0005660    i   a   b   l   e   s       *   *   *   *   *   *   *   *  \r
0005700   \t   l   e   t       m   a   l   f   u   n   c   t   i   o   n
0005720    ,       p   r   o   c   e   e   d   C   o   d  \0  \a 020   @
0005740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0005760   \0  \0 001 334 366  \0  \0  \0   H 272  \0 272 366 356 370 366
0006000    e   ,       n   o   n   F   ,       c   o   l   d   S   t   a
0006020    r   t   ,       c   o   n   s   e   c   u   t   i   v   e   E
0006040    r   r   o   r   s       =       n   i   l   ,       n   i   l
0006060    ,       n   i   l   ,       n   i   l   ,       n   i   l  \r
0006100    /   /       *   *   *   *   *   *   *   *  \r  \t   l   e   t
0006120        C   o   m   m   T   a   b   =   v   e   c       1   0  \r
0006140   \t   C   o   m   m   T   a   b   =   (   C   o   m   m   T   a
0006160    b   +   1   )   &   (   -   2   )  \r  \r  \t   /   /       I
0006200    f       m   o   n   i   t   o   r   i   n   g       d   o   v
0006220    e   r       p   e   r   f   o   r   m   a   n   c   e   ,    
0006240    t   h   e   s   e       a   r   e       r   e   a   l  \r  \t
0006260    I   n   i   t   i   a   l   i   z   e   H   a   r   d   w   a
0006300    r   e   (   f   a   l   s   e   )  \r  \t   I   n   i   t   M
0006320    e   a   s   u   r   e   (   m   e   a   s   u   r   e   T   a
0006340    b   l   e   ,       2   0   0   0   ,       (   l   v       m
0006360    a   l   f   u   n   c   t   i   o   n   )   -   1   )  \r  \r
0006400   \t   c   o   l   d   S   t   a   r   t   =   t   r   u   e  \r
0006420   \t   c   o   n   s   e   c   u   t   i   v   e   E   r   r   o
0006440    r   s   =   0  \r  \t   l   e   t       k   n   o   c   k   K
0006460    n   o   c   k       =       f   a   l   s   e  \t  \t   /   /
0006500        t   i   m   e       t   o       l   e   t       s   o   m
0006520    e   b   o   d   y       i   n       i   f       t   r   u   e
0006540   \r  \r  \f   /   /       P   r   i   n   t       (   c   o   n
0006560    t   .   )  \t  \t   S   l   o   w       L   o   o   p  \r  \r
0006600    /   /       L   o   o   p       o   u   t       t   o       h
0006620    e   r   e       w   h   e   n       a       n   e   w       f
0006640    o   n   t       s   e   t       i   s       r   e   q   u   i
0006660    r   e   d   ,       o   r       w   h   e   n  \r   /   /    
0006700    n   e   e   d   i   n   g       t   o       c   o   m   p   l
0006720    e   t   e   l   y       r   e   s   t   a   r  \0  \a 020   @
0006740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0006760   \0  \0 001 334 364  \0  \0  \0   F 272  \0 272 366 356 370 366
0007000    t       t   h   e       p   r   i   n   t   e   r   .  \r   [
0007020    S   l   o   w  \r   /   /       F   i   n   d       o   u   t
0007040        w   h   i   c   h       p   a   g   e       t   o       p
0007060    r   i   n   t       n   e   x   t   :  \r  \t   l   e   t    
0007100    c   o   p   y       =       n   i   l  \r  \t   l   e   t    
0007120    p   a   g   e   =   P   r   i   n   t   N   e   x   t   (   p
0007140    D   o   c   ,       l   v       c   o   p   y   ,       n   P
0007160    a   g   e   s   P   r   i   n   t   e   d   )  \r  \t   i   f
0007200        p   a   g   e       e   q       0       t   h   e   n    
0007220    [       k   n   o   c   k   K   n   o   c   k       =       f
0007240    a   l   s   e   ;       b   r   e   a   k       ]  \r  \t   i
0007260    f       k   n   o   c   k   K   n   o   c   k       t   h   e
0007300    n       b   r   e   a   k       /   /       g   o       l   e
0007320    t       s   o   m   e   b   o   d   y       i   n  \r  \r   /
0007340    /       R   e   a   d       i   n       f   o   n   t       a
0007360    n   d       r   e   l   o   c   a   t   e       t   h   e    
0007400    p   o   i   n   t   e   r   s       t   o       c   h   a   r
0007420    a   c   t   e   r   s   :  \r  \t   l   e   t       f   o   n
0007440    t   =   p   a   g   e   >   >   P   a   g   e   G   .   f   o
0007460    n   t   L   o   a   d   *   (   s   i   z   e       F   o   n
0007500    t   G   /   1   6   )   +   p   D   o   c   >   >   D   o   c
0007520    G   .   F   o   n   t   s  \r  \t   /   /       N   e   x   t
0007540        c   a   l   l       r   e   t   u   r   n   s       l   o
0007560    c   a   t   i   o   n       o   f       I   C   C       t   a
0007600    b   l   e   ,  \r  \t   l   e   t       F   o   n   t   T   a
0007620    b   l   e       =       R   e   a   d   F   o   n   t   (   f
0007640    o   n   t   ,       L   o   w   A   d   r   ,       n   R   e
0007660    c   s   )  \r  \t   u   n   l   e   s   s       x   m   F   o
0007700    n   t   s       d   o       f   o   r       i   =   0       t
0007720    o       p   D   o   c   >   >   D   o   c   G  \0  \a 020   @
0007740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0007760   \0  \0 001 334 362  \0  \0  \0   D 272  \0 272 366 356 370 366
0010000    .   I   C   C   t   o   t   a   l   -   1       d   o       /
0010020    /       i   f       r   a   s   t   e   r   s       a   r   e
0010040        i   n       b   a   n   k       1   ,       t   h   e   y
0010060        s   t   a   r   t       a   t       0  \r  \t  \t   F   o
0010100    n   t   T   a   b   l   e   !   i   =   F   o   n   t   T   a
0010120    b   l   e   !   i       +       L   o   w   A   d   r  \r  \t
0010140    F   o   n   t   T   a   b   l   e   =   F   o   n   t   T   a
0010160    b   l   e   -   1   0   0   0   0   0   b  \r  \r   /   /    
0010200    F   i   g   u   r   e       o   u   t       w   h   e   r   e
0010220        b   u   f   f   e   r   s       a   r   e   .  \r  \t   l
0010240    e   t       n   R   e   c   o   r   d   s   =       x   m   F
0010260    o   n   t   s   ?       (   p   D   o   c   >   >   D   o   c
0010300    G   .   I   C   C   t   o   t   a   l   +   b   a   n   d   R
0010320    e   c   o   r   d   S   i   z   e   -   1   )       r   s   h
0010340    i   f   t       l   o   g   B   a   n   d   R   e   c   o   r
0010360    d   S   i   z   e   ,  \r  \t  \t  \t  \t   f   o   n   t   >
0010400    >   F   o   n   t   G   .   n   R   e   c   o   r   d   s  \r
0010420   \t   l   e   t       n   f   R   e   c   s   =   (   n   R   e
0010440    c   s   -   n   R   e   c   o   r   d   s   )   /   2       /
0010460    /       m   a   x       a   l   l   o   w   a   b   l   e    
0010500    b   a   n   d       l   i   s   t       s   i   z   e       f
0010520    o   r       n   o   r   m   a   l       a   l   t   e   r   n
0010540    a   t   i   o   n  \r  \t   l   e   t       L   e   f   t   O
0010560    v   e   r       =       L   o   w   A   d   r   +   (   n   R
0010600    e   c   o   r   d   s       l   s   h   i   f   t       l   o
0010620    g   B   a   n   d   R   e   c   o   r   d   S   i   z   e   )
0010640   \r  \t   l   e   t       L   e   f   t   O   v   e   r   G   u
0010660    a   r   d       =       L   e   f   t   O   v   e   r   +   (
0010700    l   o   S   i   z   e   &   (   -   4   )   )   -   4  \r  \t
0010720    l   e   t       b   u   f   1       =       (  \0  \a 020   @
0010740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0010760   \0  \0 001 334 360  \0  \0  \0   B 272  \0 272 366 356 370 366
0011000    L   e   f   t   O   v   e   r   +   l   o   S   i   z   e   +
0011020    8   )   &   (   -   2   )       /   /       ~   ~       a   l
0011040    l       t   h   e       4   '   s   ,       8   '   s       a
0011060    n   d       1   0   '   s       i   n       h   e   r   e    
0011100    a   r   e       c   o   w   a   r   d   l   y       s   l   a
0011120    c   k  \r  \t   l   e   t       b   u   f   2   =   b   u   f
0011140    1   +   n   f   R   e   c   s       l   s   h   i   f   t    
0011160    l   o   g   B   a   n   d   R   e   c   o   r   d   S   i   z
0011200    e  \r  \t   l   e   t       c   u   r   b   u   f   =   c   o
0011220    l   d   S   t   a   r   t   ?       b   u   f   2   ,       b
0011240    u   f   1       /   /       f   i   r   s   t       r   e   a
0011260    l       d   a   t   a       i   m   a   g   e   d       f   r
0011300    o   m       b   u   f   1  \r  \r   /   /       N   o   w    
0011320    r   e   a   d       i   n       t   h   e       b   a   n   d
0011340    s       f   o   r       t   h   i   s       p   a   g   e  \r
0011360   \t   t   e   s   t       c   o   l   d   S   t   a   r   t    
0011400    t   h   e   n       Z   e   r   o   (   c   u   r   b   u   f
0011420    ,       n   B   a   n   d   s   *   2   )  \r  \t       o   r
0011440        R   e   a   d   B   a   n   d   s   (   p   a   g   e   ,
0011460        c   u   r   b   u   f   ,       n   f   R   e   c   s   *
0011500    2   )  \r   /   /       I   n   i   t   i   a   l   i   z   e
0011520        t   h   e       O   r   b   i   t   ,       D   o   v   e
0011540    r   ,       e   t   c   .  \r  \t   I   n   i   t   i   a   l
0011560    i   z   e   H   a   r   d   w   a   r   e   (   f   a   l   s
0011600    e   )  \r  \t   l   e   t       n   p       =       n   i   l
0011620   \r  \t   l   e   t       t   i   m       =       @   R   T   C
0011640   \r   /   /       C   h   e   c   k       f   o   r       p   r
0011660    o   b   l   e   m   s   ,       w   a   i   t       f   o   r
0011700        r   e   a   d   y       i   n   d   i   c   a   t   i   o
0011720    n  \r           /   /       w   a   i   t      \0  \a 020   @
0011740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0011760   \0  \0 001 334 356  \0  \0  \0   @ 272  \0 272 366 356 370 366
0012000    f   o   r       r   e   a   d   y       o   r       s   o   m
0012020    e       s   e   r   i   o   u   s       c   o   n   d   i   t
0012040    i   o   n       o   r       f   o   r       l   o   n   g    
0012060    e   n   o   u   g   h  \r               u   n   l   e   s   s
0012100        D   e   b   u   g       d   o  \r  \t   [  \r  \t   n   p
0012120        =       R   O   S   C   h   e   c   k   (   l   v   F   a
0012140    i   l   u   r   e   C   o   d   e   ,       n   P   a   g   e
0012160    s   A   l   r   e   a   d   y   P   r   i   n   t   e   d   ,
0012200        f   a   l   s   e   )  \r  \t   i   f       n   p       e
0012220    q       -   1       b   r   e   a   k       /   /       r   e
0012240    a   d   y  \r  \t   i   f       @   l   v   F   a   i   l   u
0012260    r   e   C   o   d   e       >       m   a   x   N   o   t   R
0012300    e   a   d   y       %       (   @   R   T   C   -   t   i   m
0012320    )       >       t   i   m   e   O   u   t       r   e   s   u
0012340    l   t   i   s       n   p  \r  \t   ]       r   e   p   e   a
0012360    t  \r  \r   /   /       T   r   y       t   o       e   m   p
0012400    t   y       O   r   b   i   t       b   u   f   f   e   r   s
0012420        t   o       c   l   e   a   r       t   h   e   m   .    
0012440        T   h   i   s       i   s       t   o       m   i   n   i
0012460    m   i   z   e  \r   /   /       t   o   n   e   r       d   u
0012500    m   p   i   n   g       o   n       f   i   r   s   t       (
0012520    b   l   a   n   k   )       p   a   g   e   .  \r  \t   c   o
0012540    m   p   i   l   e   i   f       l   o   S   i   z   e       l
0012560    s       2   5   6       t   h   e   n       [       f   o   o
0012600    =   n   i   l       ]  \r  \t   f   o   r       i   =   0    
0012620    t   o       3   1       d   o       D   o   F   u   n   c   (
0012640    f   R   e   a   d   B   l   o   c   k   ,       2   5   6   ,
0012660        L   e   f   t   O   v   e   r   )  \r  \r   /   /       N
0012700    o   w       f   e   e   d       f   i   r   s   t       s   h
0012720    e   e   t   :  \0  \a 020   @ 377   v 037  \0 002   { 035  \0
0012740   \0   ( 027 006      \0  \0   @       @  \0   @  \0  \0 004 206
0012760   \0 207 001 324 354  \0  \0  \0   > 272  \0 272 362 352 366 362
0013000   \r  \t   D   o   F   u   n   c   (   f   C   o   n   t   r   o
0013020    l   ,       2   1   b   )  \r   /   /       T   u   r   n    
0013040    o   f   f       a   d   C   o   m   m   a   n   d   B   e   a
0013060    m   O   n   ,       i   f       o   n   ,       r   e   v   e
0013100    r   t       t   o       n   o   r   m   a   l       m   o   d
0013120    u   l   a   t   i   o   n  \r   /   /       ~   ~       c   a
0013140    u   s   e   s       g   l   i   t   c   h  \t   A   d   C   o
0013160    m   m   a   n   d   (   A   d   a   p   t   e   r   S   c   a
0013200    l   e   s   )  \r  \t   D   o   F   u   n   c   (   f   R   O
0013220    S   C   o   m   m   a   n   d   ,       a   d   B   u   f   f
0013240    e   r   R   e   s   e   t   )  \r   /   /       I   f       D
0013260    o   v   e   r       i   s       a   l   r   e   a   d   y    
0013300    r   u   n   n   i   n   g   ,       t   h   i   s       S   t
0013320    a   r   t   P   r   i   n   t       m   a   y       n   o   t
0013340        d   o       t   h   e       r   i   g   h   t  \r   /   /
0013360        t   h   i   n   g   ,       b   e   c   a   u   s   e    
0013400    i   t       m   a   y       b   e       s   e   n   t       d
0013420    u   r   i   n   g       t   h   e       "   d   e   a   d   "
0013440        t   i   m   e       n   e   a   r  \r   /   /       C   S
0013460    -   5   .  \r  \t   F   e   e   d   A   S   h   e   e   t   (
0013500    )  \r  \t   A   w   a   i   t   P   a   g   e   S   y   n   c
0013520    (   0   )  \t   /   /   W   a   i   t       f   o   r       s
0013540    e   n   d   V   i   d   e   o       t   o       g   o       o
0013560    f   f   .  \r  \f   /   /       P   r   i   n   t       (   c
0013600    o   n   t   .   )  \t  \t   F   a   s   t       L   o   o   p
0013620   \r  \r   [   R   u   n   n   i   n   g   L   o   o   p  \r   /
0013640    /       C   a   l   c   u   l   a   t   e       a       R   O
0013660    S       c   o   m   m   a   n   d       t   a   b   l   e   :
0013700   \r  \t  \t   C   o   m   m   T   a   b   !   0   =   s   i   g
0013720    n   a   l   B   a   n   d   +   2  \r  \t  \t  \0  \a 020   @
0013740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0013760   \0  \0 001 334 352  \0  \0  \0   < 272  \0 272 366 356 370 366
0014000    C   o   m   m   T   a   b   !   1   =   a   d   E   x   t   e
0014020    r   n   a   l   C   o   m   m   a   n   d   1  \t   /   /   N
0014040    o       f   e   e   d       y   e   t  \r  \t  \t   C   o   m
0014060    m   T   a   b   !   2   =   s   i   g   n   a   l   B   a   n
0014100    d   +   1  \r  \t  \t   C   o   m   m   T   a   b   !   3   =
0014120    a   d   E   x   t   e   r   n   a   l   C   o   m   m   a   n
0014140    d   1  \r  \t  \t   C   o   m   m   T   a   b   !   4   =   1
0014160    0   0   0   0   b   +   s   i   g   n   a   l   B   a   n   d
0014200        /   /       l   a   s   t       e   n   t   r   y       n
0014220    e   a   r   i   n   g       o   b   s   o   l   e   s   c   e
0014240    n   c   e       3   -   2   6   -   7   8       D   C   S  \r
0014260   \t  \t   C   o   m   m   T   a   b   !   5   =   3   2  \t   *
0014300    2   5   6  \t  \t   /   /   S   t   a   t   u   s       b   i
0014320    t   s       0   -   3       o   f       w   o   r   d       8
0014340   \r  \t  \t   C   o   m   m   T   a   b   !   6   =   -   1  \r
0014360   \r   /   /       S   t   a   r   t       O   r   b   i   t    
0014400    w   o   r   k   i   n   g       o   n       t   h   e       p
0014420    r   e   s   e   n   t       p   a   g   e   .  \r  \t   D   o
0014440    F   u   n   c   (   f   C   o   n   t   r   o   l   ,       #
0014460    2   1   )  \t  \t   /   /   R   e   s   e   t   ,       c   l
0014500    e   a   r       b   e   h   i   n   d  \r  \t   D   o   F   u
0014520    n   c   (   f   R   O   S   C   o   m   m   a   n   d   ,    
0014540    a   d   B   u   f   f   e   r   R   e   s   e   t   )  \r  \t
0014560    L   e   f   t   O   v   e   r   !   0   =   0  \t  \t  \t   /
0014600    /   I   n   i   t   i   a   l   i   z   e       L   e   f   t
0014620    O   v   e   r       t   a   b   l   e  \r  \t   L   e   f   t
0014640    O   v   e   r   G   u   a   r   d   !   1   =   -   1  \r  \t
0014660    t   i   m   =   @   R   T   C  \r   /   /       S   t   a   r
0014700    t       t   h   e       m   i   c   r   o   c   o   d   e   !
0014720    !   !   !  \r  \t   D   o   F   u   n   c   (  \0  \a 020   @
0014740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0014760   \0  \0 001 334 350  \0  \0  \0   : 272  \0 272 366 356 370 366
0015000    f   S   l   o   t   ,       C   o   m   m   T   a   b   ,    
0015020    2   0   0   0   0   ,       n   B   a   n   d   s   -   1   ,
0015040        F   A   v   a   l   u   e   ,       L   e   f   t   O   v
0015060    e   r   ,  \r  \t  \t  \t   F   o   n   t   T   a   b   l   e
0015100    ,       c   u   r   b   u   f   -   1   ,       n   i   l   ,
0015120        n   i   l   ,       (   c   o   p   y       l   s   h   i
0015140    f   t       5   )   +   4   )  \r  \r   i   f       D   e   b
0015160    u   g       t   h   e   n       /   /       ~   ~   d   e   l
0015200    a   y  \r  \t   [       /   /       ~   ~   d   e   l   a   y
0015220   \r  \t   w   h   i   l   e       (   @   R   T   C   -   t   i
0015240    m   )       <       d   e   b   D   e   l   a   y       l   o
0015260    o   p  \t   /   /       ~   ~   d   e   l   a   y  \r  \t   t
0015300    i   m       =       @   R   T   C       /   /       ~   ~   d
0015320    e   l   a   y       d   o   n   '   t       i   n   v   o   k
0015340    e       t   i   m   e   o   u   t       c   o   d   e       b
0015360    e   l   o   w  \r  \t   ]       /   /       ~   ~   d   e   l
0015400    a   y  \r  \t  \r   /   /      \t   P   r   e   p   a   r   e
0015420        n   e   x   t       p   a   g   e       i   n       p   a
0015440    r   a   l   l   e   l       w   i   t   h       i   m   a   g
0015460    i   n   g  \r  \t   /   /       P   r   o   c   e   e   d    
0015500    c   o   d   e   :  \r  \t   /   /       0   :       C   h   a
0015520    r   g   e       o   n       a   h   e   a   d   ,       f   u
0015540    l   l       s   p   e   e   d  \r  \t   /   /       1   :    
0015560    P   a   u   s   e       b   e   c   a   u   s   e       c   a
0015600    n   n   o   t       f   i   t       b   a   n   d   s       o
0015620    r       f   o   n   t       f   o   r       n   e   x   t    
0015640    p   a   g   e   ,  \r  \t   /   /                       o   r
0015660        b   e   c   a   u   s   e       p   r   i   n   t   i   n
0015700    g       i   s       d   o   n   e   .  \r  \t   /   /       2
0015720    :       R   e   p   r   i   n   t       t   h  \0  \a 020   @
0015740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0015760   \0  \0 001 334 346  \0  \0  \0   8 272  \0 272 366 356 370 366
0016000    i   s       p   a   g   e   ,       d   u   e       t   o    
0016020    m   i   s   f   e   e   d       (   D   o   v   e   r       o
0016040    n   l   y   )   .  \r  \t   /   /       4   :       N   o    
0016060    s   h   e   e   t       i   n       p   i   p   e       (   D
0016100    o   v   e   r       o   n   l   y   )  \r  \r   /   /       A
0016120    s   s   u   m   e       t   h   e       p   a   g   e       w
0016140    e       a   r   e       p   r   i   n   t   i   n   g       w
0016160    i   l   l       b   e       O   K   :  \r  \t   u   n   l   e
0016200    s   s       c   o   l   d   S   t   a   r   t       t   h   e
0016220    n  \r  \t  \t   [  \r  \t  \t   n   P   a   g   e   s   P   r
0016240    i   n   t   e   d   =   n   P   a   g   e   s   P   r   i   n
0016260    t   e   d   +   1  \r  \t  \t   C   u   r   s   o   r   D   i
0016300    g   i   t   (   n   P   a   g   e   s   P   r   i   n   t   e
0016320    d   )  \r  \t  \t   ]  \r   /   /       S   e   e       w   h
0016340    o   '   s       (   m   a   y   b   e   )       k   n   o   c
0016360    k   i   n   g       a   t       m   y       d   o   o   r  \r
0016400    /   /       T   h   i   s       l   o   g   i   c       i   s
0016420        c   o   p   i   e   d       f   r   o   m       S   p   r
0016440    u   c   e   U   t   i   l   s   R   e   s   :       i   f    
0016460    w   e       a   r   e       n   o   t       p   l   a   n   n
0016500    i   n   g       t   o       d   e   f   e   r       t   o    
0016520    s   p   o   o   l   e   r   ,  \r   /   /           d   o   n
0016540    '   t       t   r   o   u   b   l   e       t   o       s   h
0016560    u   t       d   o   w   n       h   e   r   e   ,       j   u
0016600    s   t       t   o       f   i   n   d       t   h   a   t    
0016620    o   u   t       t   h   e   r   e   .       W   o   u   l   d
0016640        b   e       t   o   o       e   x   p   e   n   s   i   v
0016660    e  \r  \t   i   f       (   D   e   b   u   g   S   y   s   t
0016700    e   m   &   #   3   0   )       e   q       0       &       n
0016720    u   m   P   r   i   n   t   e   d       g   e  \0  \a 020   @
0016740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0016760   \0  \0 001 334 344  \0  \0  \0   6 272  \0 272 366 356 370 366
0017000        n   u   m   M   u   s   t   P   r   i   n   t       &    
0017020    k   n   o   c   k   R   e   s   u   l   t       &  \r  \t   (
0017040    n   P   a   g   e   s   P   r   i   n   t   e   d   -   n   P
0017060    a   g   e   s   A   l   r   e   a   d   y   P   r   i   n   t
0017100    e   d   )       >       p   r   i   n   t   H   y   s   t   e
0017120    r   e   s   i   s      \r  \t       t   h   e   n       k   n
0017140    o   c   k   K   n   o   c   k       =       t   r   u   e  \r
0017160   \r   /   /       F   i   n   d       n   e   x   t       p   a
0017200    g   e       t   o       w   o   r   k       o   n   :  \r  \t
0017220    p   r   o   c   e   e   d   C   o   d   e   =   1  \r  \t   l
0017240    e   t       n   e   x   t   b   u   f   =   c   u   r   b   u
0017260    f       x   o   r       b   u   f   1       x   o   r       b
0017300    u   f   2  \r  \t   l   e   t       n   e   x   t   P   a   g
0017320    e   =   P   r   i   n   t   N   e   x   t   (   p   D   o   c
0017340    ,   l   v       c   o   p   y   ,       n   P   a   g   e   s
0017360    P   r   i   n   t   e   d   )  \r  \r  \t   i   f       (   n
0017400    o   t       k   n   o   c   k   K   n   o   c   k   )       &
0017420        n   e   x   t   P   a   g   e       t   h   e   n  \r  \t
0017440   \t   [  \r  \t  \t   i   f       (   n   e   x   t   P   a   g
0017460    e   >   >   P   a   g   e   G   .   f   o   n   t   L   o   a
0017500    d       e   q       p   a   g   e   >   >   P   a   g   e   G
0017520    .   f   o   n   t   L   o   a   d   )       &  \r  \t  \t   (
0017540    n   e   x   t   P   a   g   e   >   >   P   a   g   e   G   .
0017560    n   R   e   c   o   r   d   s       l   e       n   f   R   e
0017600    c   s   )       t   h   e   n  \r  \t  \t  \t   [  \r  \t  \t
0017620   \t   p   r   o   c   e   e   d   C   o   d   e       =       0
0017640   \r   /   /       R   e   a   d       i   n       t   h   e    
0017660    b   a   n   d   s       f   o   r       t   h   e       n   e
0017700    x   t       p   a   g   e   :  \r  \t  \t  \t   R   e   a   d
0017720    B   a   n   d   s   (   n   e   x   t   P   a  \0  \a 020   @
0017740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0017760   \0  \0 001 334 342  \0  \0  \0   4 272  \0 272 366 356 370 366
0020000    g   e   ,       n   e   x   t   b   u   f   ,       c   o   l
0020020    d   S   t   a   r   t   ?       n   f   R   e   c   s   *   2
0020040    ,       n   f   R   e   c   s   )  \r  \t  \t  \t   i   f    
0020060    s   i   m   L   a   t   e   D   i   s   k       t   h   e   n
0020100   \r  \t  \t  \t  \t  \t   [  \r  \t  \t  \t  \t  \t   s   i   m
0020120    L   a   t   e   D   i   s   k   =   s   i   m   L   a   t   e
0020140    D   i   s   k       x   o   r       1  \r  \t  \t  \t  \t  \t
0020160    i   f       (   s   i   m   L   a   t   e   D   i   s   k   &
0020200    1   )       e   q       0       t   h   e   n       F   u   n
0020220    c   !   3   =   -   1  \r  \t  \t  \t  \t  \t   ]  \r  \t  \t
0020240   \t   D   i   s   a   b   l   e   I   n   t   e   r   r   u   p
0020260    t   s   (   )  \r  \t  \t  \t   t   e   s   t       F   u   n
0020300    c   !   3       g   r       s   i   g   n   a   l   B   a   n
0020320    d   +   3       t   h   e   n  \r  \t  \t  \t   C   o   m   m
0020340    T   a   b   !   1   =   a   d   E   x   t   e   r   n   a   l
0020360    C   o   m   m   a   n   d   1   +   1  \r  \t  \t  \t   o   r
0020400   \t   p   r   o   c   e   e   d   C   o   d   e   =   4  \r  \t
0020420   \t  \t   E   n   a   b   l   e   I   n   t   e   r   r   u   p
0020440    t   s   (   )  \r  \t  \t  \t   ]  \r  \t  \t   ]  \r  \f   /
0020460    /       P   r   i   n   t       (   c   o   n   t   .   )  \t
0020500   \t   W   a   i   t       f   o   r       c   o   m   p   l   e
0020520    t   i   o   n   ,       a   n   a   l   y   z   e       r   e
0020540    s   u   l   t   s  \r  \r   /   /       N   o   w       s   e
0020560    e       i   f       w   e       a   c   t   u   a   l   l   y
0020600        p   r   i   n   t   e   d       t   h   i   s       p   a
0020620    g   e       p   r   o   p   e   r   l   y   .           F   i
0020640    r   s   t   ,  \r   /   /       w   a   i   t       f   o   r
0020660        O   r   b   i   t       t   o       a   n   n   o   u   n
0020700    c   e       i   t       i   s       f   i   n   i   s   h   e
0020720    d   .  \r  \t   l   e   t       i   m   a   g  \0  \a 020   @
0020740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0020760   \0  \0 001 334 340  \0  \0  \0   2 272  \0 272 366 356 370 366
0021000    e   T   i   m   e   o   u   t       =       4   *   2   7  \r
0021020   \t   w   h   i   l   e       @   #   7   2   0       n   e    
0021040    0       d   o       i   f       (   @   R   T   C   -   t   i
0021060    m   )       g   r       i   m   a   g   e   T   i   m   e   o
0021100    u   t       t   h   e   n  \r  \t  \t   [  \r  \t  \t   B   l
0021120    a   s   t   (   )  \t  \t   /   /       c   l   e   a   r    
0021140    h   a   r   d   w   a   r   e   ,       #   7   2   0  \r  \t
0021160   \t       /   /       M   a   c   h   i   n   e       d   e   a
0021200    d       o   r       O   r   b   i   t       g   o   t       b
0021220    e   h   i   n   d       a   n   d       i   t       w   a   s
0021240    n   '   t       d   e   t   e   c   t   e   d  \r  \t  \t    
0021260    /   /       W   i   l   l       g   e   n   e   r   a   l   l
0021300    y       b   e       o   v   e   r   r   i   d   e   n       b
0021320    y       m   o   r   e       s   p   e   c   i   f   i   c    
0021340    a   n   a   l   y   s   i   s  \r  \t  \t   @   l   v   F   a
0021360    i   l   u   r   e   C   o   d   e       =       1   9       /
0021400    /       M   a   n   u   a   l       i   n   t   e   r   v   e
0021420    n   t   i   o   n       r   e   q   u   i   r   e   d  \r  \t
0021440   \t   b   r   e   a   k  \r  \t  \t   ]  \r   /   /       C   h
0021460    e   c   k       O   r   b   i   t       s   t   a   t   u   s
0021500   \r  \t   n   o   n   F       =       0  \r  \t   l   e   t    
0021520    s   t   a   t   =   F   u   n   c   !   9  \t  \t   /   /   O
0021540    r   b   i   t       p   r   i   n   t   i   n   g       s   t
0021560    a   t   u   s   .  \r  \t   l   e   t       c   o   u   n   t
0021600    B   a   n   d       =       F   u   n   c   !   8       /   /
0021620        B   a   n   d       i   n       w   h   i   c   h       c
0021640    o   u   n   t   -   H       l   a   s   t       o   c   c   u
0021660    r   r   e   d       (   D   o   v   e   r       o   n   l   y
0021700    )  \r  \t   /   /       ~   ~       c   S   t   a   t  \r  \t
0021720    c   b   M   i   n       =       M   i   n   (  \0  \a 020   @
0021740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0021760   \0  \0 001 334 336  \0  \0  \0   0 272  \0 272 366 356 370 366
0022000    c   b   M   i   n   ,       c   o   u   n   t   B   a   n   d
0022020    )       /   /   ~   ~       c   S   t   a   t  \r  \t   i   f
0022040        c   o   u   n   t   B   a   n   d   <   n   B   a   n   d
0022060    s       t   h   e   n       c   b   M   a   x       =       M
0022100    a   x   (   c   b   M   a   x   ,       c   o   u   n   t   B
0022120    a   n   d   )       /   /   ~   ~       c   S   T   a   t  \r
0022140   \t   /   /       ~   ~       c   S   T   a   t  \r  \t   /   /
0022160        F   a   t   a   l       e   r   r   o   r       d   e   t
0022200    e   c   t   e   d       b   y       m   i   c   r   o   c   o
0022220    d   e       -   -       i   n   v   a   l   i   d       B   a
0022240    n   d       e   n   t   r   y       -   -       p   o   s   s
0022260    i   b   l   y       b   r   o   k   e   n       p   r   o   c
0022300    e   s   s   o   r  \r  \t   i   f       s   t   a   t   <   <
0022320    S   T   A   T   U   S   .   i   n   v   a   l   i   d   B   a
0022340    n   d   E   n   t   r   y       t   h   e   n  \r  \t  \t   [
0022360        I   n   i   t   i   a   l   i   z   e   H   a   r   d   w
0022400    a   r   e   (   t   r   u   e   )   ;      \r  \t  \t        
0022420    i   f       L   e   f   t   O   v   e   r   G   u   a   r   d
0022440    !   1       e   q       -   1       t   h   e   n       S   p
0022460    r   u   c   e   E   r   r   o   r   (   1   0   1   0   ,    
0022500    @   1   ,       @   2   )           /   /   e   l   s   e   ,
0022520        a   s   s   u   m   e       t   h   a   t  \r  \t  \t  \t
0022540    /   /   b   a   d       b   a   n   d       e   n   t   r   y
0022560        i   s       s   i   m   p   l   y       r   e   s   u   l
0022600    t       o   f       l   e   f   t   o   v   e   r       o   v
0022620    e   r   f   l   o   w  \r  \t  \t   ]  \r  \t   t   e   s   t
0022640        s   t   a   t   <   <   S   T   A   T   U   S   .   p   r
0022660    e   m   a   t   u   r   e   P   a   g   e   A   b   o   r   t
0022700        t   h   e   n       [       A   n   n   o   u   n   c   e
0022720    (   1   6   )   ;       n   o   n   F       =  \0  \a 020   @
0022740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0022760   \0  \0 001 334 334  \0  \0  \0   . 272  \0 272 366 356 370 366
0023000        3   0   1       ]  \r  \t           o   r       i   f    
0023020    s   t   a   t   <   <   S   T   A   T   U   S   .   b   e   h
0023040    i   n   d       t   h   e   n       [       A   n   n   o   u
0023060    n   c   e   (   1   6   )   ;       n   o   n   F       =    
0023100    3   0   0       ]  \r  \t   i   f       s   t   a   t   <   <
0023120    S   T   A   T   U   S   .   t   i   m   e   o   u   t       t
0023140    h   e   n       [       A   n   n   o   u   n   c   e   (   1
0023160    7   )   ;       @   l   v   F   a   i   l   u   r   e   C   o
0023200    d   e       =       1   8       ]  \r  \t   i   f       L   e
0023220    f   t   O   v   e   r   G   u   a   r   d   !   1       n   e
0023240        -   1       t   h   e   n  \r  \t           [       A   n
0023260    n   o   u   n   c   e   (   1   8   )   ;       n   o   n   F
0023300        =       3   1   0       /   /       t   h   e   n       c
0023320    h   e   c   k       p   o   s   s   i   b   l   e       n   e
0023340    x   t       p   a   g   e       d   a   t   a       e   n   c
0023360    l   o   b   b   e   r   m   e   n   t  \r  \t               i
0023400    f       (   (   p   r   o   c   e   e   d   C   o   d   e   &
0023420    1   )       e   q       0   )       &       n   e   x   t   b
0023440    u   f       e   q       b   u   f   1       t   h   e   n    
0023460    p   r   o   c   e   e   d   C   o   d   e       =       1    
0023500    ]  \r  \t   i   f       n   o   n   F       t   h   e   n    
0023520    @   l   v   F   a   i   l   u   r   e   C   o   d   e       =
0023540        n   o   n   F  \r  \t   i   f       (   s   t   o   p   s
0023560    P   r   i   n   t   i   n   g       e   q       b   i   n   F
0023600    u   l   l   )       &       (   @   l   v   F   a   i   l   u
0023620    r   e   C   o   d   e       e   q       n   o   n   F   )    
0023640        t   h   e   n       @   l   v   F   a   i   l   u   r   e
0023660    C   o   d   e       =       1   3   0  \r  \t   A   d   d   T
0023700    o   B   i   n   (   5   0   0   )  \r   /   /       N   o   w
0023720        t   r   y       f   o   r       m   o   r  \0  \a 020   @
0023740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0023760   \0  \0 001 334 332  \0  \0  \0   , 272  \0 272 366 356 370 366
0024000    e       s   p   e   c   i   f   i   c       e   n   g   i   n
0024020    e       s   t   a   t   u   s       c   h   e   c   k  \r  \r
0024040   \t   n   p   =   R   O   S   C   h   e   c   k   (   l   v   F
0024060    a   i   l   u   r   e   C   o   d   e   ,       n   P   a   g
0024100    e   s   A   l   r   e   a   d   y   P   r   i   n   t   e   d
0024120    ,       t   r   u   e   )  \r  \t   /   /       C   h   e   c
0024140    k       C   O   U   N   T   -   H       s   i   g   n   a   l
0024160    ,       p   a   p   e   r       d   i   d       n   o   t    
0024200    a   r   r   i   v   e       -   -       e   l   s   e       r
0024220    e   -   p   r   i   n   t       p   a   g   e      \r  \t    
0024240    i   f       c   o   l   d   S   t   a   r   t       e   q    
0024260    0       &      \r  \t  \t   /   /       ~   ~       m   i   c
0024300    r   o   c   o   d   e       c   h   e   c   k   s       e   x
0024320    p   l   i   c   i   t   l   y       a   t       e   n   d    
0024340    o   f       e   a   c   h       b   a   n   d   ,       a   s
0024360        w   e   l   l       a   s       a   t       s   i   g   n
0024400    a   l   B   a   n   d  \r  \t  \t       (   (   (   C   o   m
0024420    m   T   a   b   !   5   )   &   1   )       e   q       0    
0024440    &       c   o   u   n   t   B   a   n   d       g   e   (   n
0024460    B   a   n   d   s       r   s   h   i   f   t       1   )   )
0024500    t   h   e   n       p   r   o   c   e   e   d   C   o   d   e
0024520    =   p   r   o   c   e   e   d   C   o   d   e   %  \r  \t  \t
0024540   \t   (   F   u   n   c   !   3       l   e       s   i   g   n
0024560    a   l   B   a   n   d   +   3   ?       2   ,       p   r   o
0024600    c   e   e   d   C   o   d   e       e   q       1   ?       0
0024620    ,       4   )  \r  \r   /   /       N   o   w       w   a   i
0024640    t       f   o   r       p   a   g   e       s   y   n   c    
0024660    t   o       g   o       o   f   f  \r  \t   u   n   l   e   s
0024700    s       A   w   a   i   t   P   a   g   e   S   y   n   c   (
0024720    0   )       t   h   e   n       @   l   v   F  \0  \a 020   @
0024740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0024760   \0  \0 001 334 330  \0  \0  \0   * 272  \0 272 366 356 370 366
0025000    a   i   l   u   r   e   C   o   d   e       =       1   6  \r
0025020   \r   /   /   N   o   w       d   e   c   i   d   e       w   h
0025040    a   t       t   o       d   o   :  \r  \t   i   f       p   r
0025060    o   c   e   e   d   C   o   d   e       t   h   e   n       A
0025100    n   n   o   u   n   c   e   (   p   r   o   c   e   e   d   C
0025120    o   d   e   )  \r  \t   m   a   l   f   u   n   c   t   i   o
0025140    n       =       @   l   v   F   a   i   l   u   r   e   C   o
0025160    d   e  \r  \t   i   f       m   a   l   f   u   n   c   t   i
0025200    o   n       g   e       m   i   n   D   o   c   u   m   e   n
0025220    t   E   r   r   o   r       t   h   e   n       m   a   l   f
0025240    u   n   c   t   i   o   n       =       0       /   /       w
0025260    i   l   l       n   o   t       s   t   o   p  \r  \r   /   /
0025300        F   i   r   s   t   ,       i   f       p   i   p   e    
0025320    i   s       e   m   p   t   y   ,       f   i   l   l       i
0025340    t   .           W   i   l   l       n   o   t       b   e    
0025360    i   n   v   o   k   e   d       i   f       p   a   u   s   i
0025400    n   g   .      \r  \t   i   f       (   p   r   o   c   e   e
0025420    d   C   o   d   e   &   4   )       n   e       0       t   h
0025440    e   n  \r  \t  \t   [  \r  \t  \t   A   w   a   i   t   P   a
0025460    g   e   S   y   n   c   (   1   )  \r  \t  \t   F   e   e   d
0025500    A   S   h   e   e   t   (   )  \r  \t  \t   A   w   a   i   t
0025520    P   a   g   e   S   y   n   c   (   0   )  \r  \t  \t   p   r
0025540    o   c   e   e   d   C   o   d   e   =   p   r   o   c   e   e
0025560    d   C   o   d   e   -   4  \r  \t  \t   ]  \r  \r   /   /    
0025600    N   o   w       r   e   a   c   t       t   o       t   h   e
0025620        a   n   a   l   y   s   i   s   :       i   f       a   t
0025640        t   h   i   s       p   o   i   n   t       n   o   t   h
0025660    i   n   g       i   s       w   r   o   n   g       a   n   d
0025700        s   h   e   e   t   s       a   r   e  \r   /   /       f
0025720    e   e   d   i   n   g   ,       s   t   e   a  \0  \a 020   @
0025740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0025760   \0  \0 001 334 326  \0  \0  \0   ( 272  \0 272 366 356 370 366
0026000    m       a   h   e   a   d   .       O   t   h   e   r   w   i
0026020    s   e   ,       r   e   t   u   r   n       t   o       t   h
0026040    e       s   l   o   w       l   o   o   p       i   f       d
0026060    a   t   a       i   s       n   o   t       a   v   a   i   l
0026100    a   b   l   e  \r   /   /       o   r       i   f       p   a
0026120    p   e   r       m   i   s   f   e   d   .       R   e   t   u
0026140    r   n       i   f       t   h   e   r   e       w   a   s    
0026160    a       s   e   r   i   o   u   s       m   a   l   f   u   n
0026200    c   t   i   o   n   ,       o   r       i   f       t   h   i
0026220    n   g   s       l   o   o   k  \r   /   /       o   d   d    
0026240    s   e   v   e   r   a   l       t   i   m   e   s       c   o
0026260    n   s   e   c   u   t   i   v   e   l   y       (   p   a   p
0026300    e   r       f   a   i   l   e   d       t   o       f   e   e
0026320    d       i   s       t   h   e       o   n   l   y       c   a
0026340    s   e   ,       f   o   r       n   o   w   )  \r  \r  \t   M
0026360    e   a   s   u   r   e   (   #   2   3   ,   (   @   (   #   1
0026400    2   3   )   )   +   1   )       /   /       f   o   r   c   e
0026420        r   a   n   d   o   m       e   v   e   n   t  \r  \t   u
0026440    n   l   e   s   s       m   a   l   f   u   n   c   t   i   o
0026460    n       d   o  \r  \t           [  \r  \t                   i
0026500    f       p   r   o   c   e   e   d   C   o   d   e       e   q
0026520        0       %       p   r   o   c   e   e   d   C   o   d   e
0026540        e   q       2       &       n   o   n   F       n   e    
0026560    0       t   h   e   n  \r  \t  \t           [  \r  \t  \t    
0026600        c   o   l   d   S   t   a   r   t   =   f   a   l   s   e
0026620   \r  \t  \t           c   u   r   b   u   f   =   n   e   x   t
0026640    b   u   f  \r  \t  \t           c   o   n   s   e   c   u   t
0026660    i   v   e   E   r   r   o   r   s   =   0  \r  \t  \t        
0026700    l   o   o   p  \r  \t  \t           ]  \r  \t                
0026720    i   f       p   r   o   c   e   e   d   C   o  \0  \a 020   @
0026740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0026760   \0  \0 001 334 324  \0  \0  \0   & 272  \0 272 366 356 370 366
0027000    d   e       e   q       1       t   h   e   n       [       c
0027020    o   l   d   S   t   a   r   t       =       f   a   l   s   e
0027040    ;       b   r   e   a   k       ]       /   /   O   u   t    
0027060    o   f       R   u   n   n   i   n   g   L   o   o   p  \r  \t
0027100                    c   o   n   s   e   c   u   t   i   v   e   E
0027120    r   r   o   r   s   =   c   o   n   s   e   c   u   t   i   v
0027140    e   E   r   r   o   r   s   +   1       /   /       m   i   s
0027160    f   e   e   d   s       o   n   l   y   ,       r   i   g   h
0027200    t       n   o   w  \r  \t                   i   f       c   o
0027220    n   s   e   c   u   t   i   v   e   E   r   r   o   r   s    
0027240    g   e       4       t   h   e   n  \r          \t  \t        
0027260            [  \r  \t  \t                   m   a   l   f   u   n
0027300    c   t   i   o   n   ,       @   l   v   F   a   i   l   u   r
0027320    e   C   o   d   e       =       1   7   ,       1   7  \r  \t
0027340   \t                   n   p       =       n   P   a   g   e   s
0027360    P   r   i   n   t   e   d  \r  \t  \t                   ]  \r
0027400   \t           ]  \r  \t          \r  \t   M   e   a   s   u   r
0027420    e   (   #   2   3   ,   (   @   (   #   1   2   3   )   )   +
0027440    1   )       /   /       f   o   r   c   e       r   a   n   d
0027460    o   m       e   v   e   n   t  \r  \t   i   f       m   a   l
0027500    f   u   n   c   t   i   o   n       t   h   e   n  \r  \t  \t
0027520    [  \r  \t  \t   I   n   i   t   i   a   l   i   z   e   H   a
0027540    r   d   w   a   r   e   (   t   r   u   e   )  \r  \t  \t   /
0027560    /       i   f       m   a   l   f   u   n   c   t   i   o   n
0027600        d   e   t   e   c   t   e   d       o   u   t   s   i   d
0027620    e       o   f       R   O   S   C   h   e   c   k   ,       s
0027640    e   t       n   p  \r      \r  \t  \t   l   e   t       b   a
0027660    c   k   u   p       =           2  \r  \r  \t  \t   i   f    
0027700    n   p       e   q       -   1       t   h   e   n       n   p
0027720        =       n   P   a   g   e   s   P   r   i  \0  \a 020   @
0027740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0027760   \0  \0 001 334 322  \0  \0  \0   $ 272  \0 272 366 356 370 366
0030000    n   t   e   d   -   b   a   c   k   u   p  \r  \t  \t   /   /
0030020        a   c   c   o   u   n   t       f   o   r       p   r   e
0030040    v   i   o   u   s       i   n   c   r   e   m   e   n   t  \r
0030060   \t  \t   n   p       =       M   a   x   (   n   p   -   1   ,
0030100        n   P   a   g   e   s   A   l   r   e   a   d   y   P   r
0030120    i   n   t   e   d   )  \r  \t  \t   C   l   o   s   e   M   e
0030140    a   s   u   r   e   (   )       /   /       i   f       m   e
0030160    a   s   u   r   e       c   o   d   e       l   o   a   d   e
0030200    d   ,       t   h   i   s       i   s       r   e   a   l   ,
0030220        e   l   s   e       d   u   m   m   y  \r  \t  \t   r   e
0030240    s   u   l   t   i   s       n   p  \r  \t  \t   ]  \r   /   /
0030260        I   f       w   e       g   e   t       h   e   r   e   ,
0030300        i   t       i   s       n   e   c   e   s   s   a   r   y
0030320        t   o       r   e   p   r   i   n   t       t   h   i   s
0030340        p   a   g   e   .       P   a   p   e   r       i   s  \r
0030360    /   /       p   r   o   b   a   b   l   y       f   l   o   w
0030400    i   n   g   .       P   r   o   b   a   b   l   y       a    
0030420    p   a   p   e   r       m   i   s   f   e   e   d  \r   /   /
0030440        E   x   c   e   p   t   i   o   n   :       n   o   n   -
0030460    f   a   t   a   l       m   a   l   f   u   n   c   t   i   o
0030500    n       (   m   f   =   0   ,       b   u   t       n   o   n
0030520    F       i   s   n   '   t   )       -   -       g   i   v   e
0030540        i   t       u   p       a   n   d       g   o       o   n
0030560   \r  \t  \t   u   n   l   e   s   s       n   o   n   F       d
0030600    o       n   P   a   g   e   s   P   r   i   n   t   e   d   =
0030620    n   P   a   g   e   s   P   r   i   n   t   e   d   -   1  \r
0030640   \t  \t   i   f       (   p   r   o   c   e   e   d   C   o   d
0030660    e   &   1   )       n   e       0       t   h   e   n       b
0030700    r   e   a   k  \t   /   /   U   s   e       p   a   u   s   e
0030720        c   o   d   e  \r  \t  \t   l   o   o   p  \0  \a 020   @
0030740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0030760   \0  \0 001 334 320  \0  \0  \0   " 272  \0 272 366 356 370 366
0031000   \t  \t  \t   /   /   R   e   p   r   i   n   t       t   h   e
0031020        p   a   g   e   ,       o   r       g   o       o   n  \r
0031040    ]   R   u   n   n   i   n   g   L   o   o   p       r   e   p
0031060    e   a   t  \r  \r   ]   S   l   o   w       r   e   p   e   a
0031100    t  \r  \r  \t   I   n   i   t   i   a   l   i   z   e   H   a
0031120    r   d   w   a   r   e   (   t   r   u   e   )  \r  \t   C   l
0031140    o   s   e   M   e   a   s   u   r   e   (   )  \r  \t   r   e
0031160    s   u   l   t   i   s       (   k   n   o   c   k   K   n   o
0031200    c   k       %       @   l   v   F   a   i   l   u   r   e   C
0031220    o   d   e   )   ?       n   P   a   g   e   s   P   r   i   n
0031240    t   e   d   ,       -   1  \r   ]  \r  \f  \r   /   /       -
0031260    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0031360    -   -   -   -   -   -   -   -   -  \r   /   /       n   P   a
0031400    g   e   s   P   r   i   n   t   e   d       =       R   O   S
0031420    C   h   e   c   k   (   l   v   F   a   i   l   u   r   e   C
0031440    o   d   e   ,       n   P   a   g   e   s   A   l   r   e   a
0031460    d   y   P   r   i   n   t   e   d   ,       r   u   n   n   i
0031500    n   g   ,   )                  \r   /   /       -   -   -   -
0031520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0031620    -   -   -   -   -   -  \r  \r   /   /       a   n   a   l   y
0031640    z   e       R   O   S       s   t   a   t   u   s  \r   /   /
0031660        n   P   a   g   e   s   P   r   i   n   t   e   d       =
0031700        -   1       i   f       t   h   e   r   e       a   r   e
0031720        n   o       m   a   l   f   u   n   c   t  \0  \a 020   @
0031740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0031760   \0  \0 001 334 316  \0  \0  \0     272  \0 272 366 356 370 366
0032000    i   o   n   s   ,       R   O   S       i   s       r   e   a
0032020    d   y       t   o       p   r   i   n   t  \r   /   /  \t  \t
0032040   \t   o   t   h   e   r   w   i   s   e   ,       t   h   e    
0032060    n   u   m   b   e   r       o   f       p   a   g   e   s    
0032100    t   o       r   e   p   o   r   t       a   s       h   a   v
0032120    i   n   g       b   e   e   n       p   r   i   n   t   e   d
0032140   \r   /   /       @   l   v   F   a   i   l   u   r   e   C   o
0032160    d   e       w   i   l   l       c   o   n   t   a   i   n    
0032200    a   n       a   n   a   l   y   s   i   s       o   f       t
0032220    h   e       c   u   r   r   e   n   t       s   t   a   t   e
0032240    .       T   h   e       c   o   d   e       v   a   l   u   e
0032260    s       a   r   e  \r   /   /  \t  \t  \t   d   e   s   c   r
0032300    i   b   e   d       b   e   l   o   w   .  \r   /   /       n
0032320    P   a   g   e   s   A   l   r   e   a   d   y   P   r   i   n
0032340    t   e   d       p   l   a   c   e   s       a       l   o   w
0032360    e   r       b   o   u   n   d       o   n       t   h   e    
0032400    n   P   a   g   e   s   P   r   i   n   t   e   d       r   e
0032420    s   u   l   t   .       T   h   i   s      \r   /   /  \t  \t
0032440   \t   p   r   e   v   e   n   t   s       l   o   o   p   s    
0032460    t   h   r   o   u   g   h       t   h   i   s       c   o   d
0032500    e       f   r   o   m       b   a   c   k   i   n   g       u
0032520    p       t   o   o       f   a   r   .  \r   /   /       r   u
0032540    n   n   i   n   g  \t  \t   t   r   u   e       i   f       c
0032560    a   l   l   e   r       t   h   i   n   k   s       m   a   i
0032600    n       d   r   i   v   e       i   s       a   l   l   o   w
0032620    e   d       t   o       b   e       o   n       f   o   r    
0032640    "   r   e   a   d   y   "  \r   /   /  \t  \t  \t   r   e   s
0032660    u   l   t   ,       f   a   l   s   e       o   t   h   e   r
0032700    w   i   s   e       (   w   a   i   t   i   n   g       f   o
0032720    r       r   e   a   d   y   )   .  \r  \r   /  \0  \a 020   @
0032740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0032760   \0  \0 001 334 314  \0  \0  \0 036 272  \0 272 366 356 370 366
0033000    /       R   O   S   C   h   e   c   k       f   i   r   s   t
0033020        s   c   r   e   e   n   s       t   h   e       c   u   r
0033040    r   e   n   t       s   t   a   t   u   s       f   o   r    
0033060    a   n   y       m   a   l   f   u   n   c   t   i   o   n    
0033100    i   n   d   i   c   a   t   i   o   n   s   ,       a   n   d
0033120   \r   /   /       r   e   t   u   r   n   s       r   i   g   h
0033140    t       a   w   a   y       i   f       t   h   e   r   e    
0033160    a   r   e       n   o   n   e   .       O   t   h   e   r   w
0033200    i   s   e   ,       i   t       a   p   p   l   i   e   s    
0033220    t   h   e       c   u   r   r   e   n   t       s   t   a   t
0033240    u   s  \r   /   /       a   g   a   i   n   s   t       a    
0033260        t   a   b   l   e       o   f       p   o   s   s   i   b
0033300    l   e       c   o   n   d   i   t   i   o   n   s   ,       y
0033320    i   e   l   d   i   n   g       a       f   a   i   l   u   r
0033340    e  \r   /   /       c   o   d   e       a   n   d       a    
0033360    n   e   w       p   a   g   e       v   a   l   u   e       -
0033400    -       t   h   e       l   a   s   t       p   a   g   e    
0033420    c   e   r   t   a   i   n       t   o       h   a   v   e    
0033440    b   e   e   n       r   e   l   i   a   b   l   y  \r   /   /
0033460        p   r   i   n   t   e   d   .       O   n   e       p   o
0033500    s   s   i   b   l   e       c   o   n   d   i   t   i   o   n
0033520        i   s       "   n   o       m   a   l   f   u   n   c   t
0033540    i   o   n       d   e   t   e   c   t   e   d   "   ,       w
0033560    h   i   c   h       w   i   l   l       o   n   l   y  \r   /
0033600    /       b   e       i   s   s   u   e   d       f   o   r    
0033620    p   r   i   n   t   e   r   s       t   h   a   t       g   i
0033640    v   e       n   o       p   o   s   i   t   i   v   e       i
0033660    n   d   i   c   a   t   i   o   n       w   h   e   n       t
0033700    h   e   y       a   r   e       m   e   r   e   l   y  \r   /
0033720    /       b   u   s   y       d   o   i   n   g  \0  \a 020   @
0033740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0033760   \0  \0 001 334 312  \0  \0  \0 034 272  \0 272 366 356 370 366
0034000        n   o   r   m   a   l       t   h   i   n   g   s   .  \r
0034020    /   /       N   .   B   .       @   l   v   F   a   i   l   u
0034040    r   e   C   o   d   e       i   s       n   o   t       c   h
0034060    a   n   g   e   d       w   h   e   n       n   o       c   o
0034100    n   d   i   t   i   o   n   s       a   r   e       f   o   u
0034120    n   d  \r  \r   /   /       T   h   e       f   a   i   l   u
0034140    r   e       c   o   d   e   s       d   i   v   i   d   e    
0034160    i   n   t   o       r   a   n   g   e   s   :  \r   /   /    
0034200    0   -   9  \t  \t   N   o   t       r   e   a   d   y   ,    
0034220    b   u   t       n   o       i   n   d   i   c   a   t   i   o
0034240    n       o   f       p   r   o   b   l   e   m   s       o   r
0034260        w   i   l   l       c   l   e   a   r       u   p       a
0034300    u   t   o   m   a   t   i   c   a   l   l   y  \r   /   /  \t
0034320   \t   (   i   n   c   l   u   d   e   s       f   u   s   e   r
0034340        c   o   l   d   ,       w   a   r   m   u   p       m   o
0034360    d   e   ,       c   l   e   a   r   i   n   g       r   e   v
0034400    o   l   u   t   i   o   n   s   ,       e   t   c   .   )  \r
0034420    /   /       1   0   -   1   9  \t   M   a   n   u   a   l    
0034440    i   n   t   e   r   v   e   n   t   i   o   n       r   e   q
0034460    u   i   r   e   d       b   e   f   o   r   e       m   a   c
0034500    h   i   n   e       c   a   n       b   e   c   o   m   e    
0034520    r   e   a   d   y  \r   /   /  \t  \t   (   p   a   p   e   r
0034540        l   o   w   ,       p   o   w   e   r       n   o   t    
0034560    t   h   e   r   e   ,       e   t   c   .   )  \r   /   /    
0034600    2   0   -   9   9  \t   J   a   m   s       a   n   d       o
0034620    t   h   e   r       o   p   e   r   a   t   i   o   n   a   l
0034640        m   a   l   f   u   n   c   t   i   o   n   s       (   m
0034660    a   n   y       c   o   d   e   s       p   r   o   v   i   d
0034700    e   d       s   o       t   h   a   t  \r   /   /  \t  \t   e
0034720    a   c   h       d   e   v   i   c   e       c  \0  \a 020   @
0034740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0034760   \0  \0 001 334 310  \0  \0  \0 032 272  \0 272 366 356 370 366
0035000    a   n       r   e   p   o   r   t       m   a   c   h   i   n
0035020    e   -   d   e   p   e   n   d   e   n   t       j   a   m    
0035040    e   x   p   l   a   n   a   t   i   o   n   s   )  \r   /   /
0035060        1   0   0   -   2   0   0  \t   I   n   h   e   r   e   n
0035100    t       p   r   o   b   l   e   m   s       (   e   .   g   .
0035120    ,       i   n   s   u   f   f   i   c   i   e   n   t       b
0035140    a   n   d   w   i   d   t   h       s   o   m   e   w   h   e
0035160    r   e   )       t   h   a   t       a   r   e  \r   /   /  \t
0035200   \t   n   o   t       c   u   r   a   b   l   e       b   y    
0035220    m   e   r   e       m   o   r   t   a   l   s   .       A   t
0035240    t   e   m   p   t   s       t   o       i   m   p   r   o   v
0035260    e       t   h   e       s   i   t   u   a   t   i   o   n    
0035300    s   h   o   u   l   d       b   e  \r   /   /  \t  \t   a   b
0035320    a   n   d   o   n   e   d   .  \r   /   /       2   0   0   -
0035340    3   0   0  \t   I   n   h   e   r   e   n   t       p   r   o
0035360    b   l   e   m   s       e   n   c   o   u   n   t   e   r   e
0035400    d   ,       b   u   t       t   h   e   y       d   i   d    
0035420    n   o   t       t   e   r   m   i   n   a   t   e       p   r
0035440    i   n   t   i   n   g   .       O   n   e  \r   /   /  \t  \t
0035460    s   h   o   u   l   d       e   x   p   e   c   t       t   h
0035500    a   t       o   n   e       o   r       m   o   r   e       p
0035520    a   g   e   s       w   e   r   e       i   m   p   r   o   p
0035540    e   r   l   y       i   m   a   g   e   d   .  \r  \r   /   /
0035560        T   h   e       m   a   c   h   i   n   e   -   d   e   p
0035600    e   n   d   e   n   t       c   o   n   t   r   o   l       t
0035620    a   b   l   e       i   s       c   o   n   s   t   r   u   c
0035640    t   e   d       u   s   i   n   g       t   h   i   s       p
0035660    a   t   t   e   r   n   :  \r  \r   /   /       s   t   r   u
0035700    c   t   u   r   e       C   T   :  \r   /   /      \t   [  \r
0035720    /   /      \t   i   n   v   e   r   t  \t  \t  \0  \a 020   @
0035740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0035760   \0  \0 001 334 306  \0  \0  \0 030 272  \0 272 366 356 370 366
0036000    b   i   t       1  \r   /   /      \t   f   a   i   l   u   r
0036020    e   C   o   d   e  \t   b   i   t       7  \r   /   /      \t
0036040    w   o   r   d   I   n   d   e   x  \t   b   i   t       4  \r
0036060    /   /      \t   b   i   t   I   n   d   e   x  \t   b   i   t
0036100        4  \r   /   /      \t   ]  \r  \r   /   /       i   n   v
0036120    e   r   t       m   e   a   n   s       t   h   a   t       t
0036140    h   e       b   i   t       i   s       o   n       w   h   e
0036160    n       t   h   e       c   o   n   d   i   t   i   o   n    
0036200    i   s       n   o   t       a       p   r   o   b   l   e   m
0036220        (   e   .   g   .   ,       "   R   e   a   d   y   "   )
0036240   \r   /   /       f   a   i   l   u   r   e   C   o   d   e    
0036260    s   h   o   u   l   d       b   e       r   e   p   o   r   t
0036300    e   d       w   h   e   n       t   h   e       c   o   n   d
0036320    i   t   i   o   n       s   p   e   c   i   f   i   e   d    
0036340    b   y       t   h   e       b   i   t   I   n   d   e   x   '
0036360    t   h  \r   /   /  \t  \t   b   i   t       i   n   R   O   S
0036400        s   t   a   t   u   s       w   o   r   d       w   o   r
0036420    d   I   n   d   e   x       i   s       a       p   r   o   b
0036440    l   e   m   .  \r   /   /       A       c   h   e   c   k   ,
0036460        d   e   s   i   g   n   e   d       c   h   i   e   f   l
0036500    y       f   o   r       D   o   v   e   r   ,       v   e   r
0036520    i   f   i   e   s       t   h   a   t       t   h   e       l
0036540    a   s   e   r       i   s       o   n       a   n   d       t
0036560    h   e       p   o   l   y   g   o   n       i   s  \r   /   /
0036600        s   c   a   n   n   i   n   g       (   S   O   S   /   E
0036620    O   S       a   r   e       s   e   e   i   n   g       t   h
0036640    i   n   g   s   )   ,       b   y       m   a   k   i   n   g
0036660        s   u   r   e       t   h   a   t       t   h   e       l
0036700    o   w       f   o   u   r       b   i   t   s       o   f    
0036720    t   h   e       l   i   n   e  \r   /   /      \0  \a 020   @
0036740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0036760   \0  \0 001 334 304  \0  \0  \0 026 272  \0 272 366 356 370 366
0037000    c   o   u   n   t       (   i   n   d   i   c   a   t   e   d
0037020        i   n       s   t   a   t   u   s       w   o   r   d   )
0037040        a   r   e           c   h   a   n   g   i   n   g   .    
0037060    T   h   e       c   o   d   e       r   e   a   d   s       t
0037100    h   e       l   i   n   e       c   o   u   n   t   ,       w
0037120    a   i   t   s  \r   /   /       a   p   p   r   o   x   i   m
0037140    a   t   e   l   y       t   h   e       t   i   m   e       n
0037160    e   e   d   e   d       f   o   r       f   o   u   r       s
0037200    c   a   n       l   i   n   e   s       (   g   e   n   e   r
0037220    o   u   s       m   a   r   g   i   n   )   ,       t   h   e
0037240    n       r   e   a   d   s       t   h   e  \r   /   /       c
0037260    o   u   n   t       a   g   a   i   n   ,       r   e   p   o
0037300    r   t   i   n   g       a       p   r   o   b   l   e   m    
0037320    i   f       t   h   e       v   a   l   u   e   s       a   r
0037340    e       e   q   u   a   l   .       T   h   i   s       t   e
0037360    s   t       h   a   p   p   e   n   s       o   n   l   y    
0037400    w   h   e   n  \r   /   /       t   h   e       r   u   n   n
0037420    i   n   g       p   a   r   a   m   e   t   e   r       i   s
0037440        f   a   l   s   e   .       T   h   e       w   a   i   t
0037460        t   i   m   e       (   s   c   a   n   T   i   c   k   s
0037500    )       i   s       c   o   m   p   u   t   e   d       i   n
0037520        P   r   i   n   t   I   n   i   t   ,       a   s   :  \r
0037540   \r   /   /       R   e   s   o   l   u   t   i   o   n   S    
0037560    i   s       s   c   a   l   e   d       b   y       1   0    
0037600    a   s       s   t   o   r   e   d   ,       P   a   p   e   r
0037620    S   p   e   e   d   I   n   c   h   e   s       b   y       1
0037640    0   0   .       T   h   e       (   f   a   s   t       1   0
0037660        b   i   t   s       o   f   )  \r   /   /       t   h   e
0037700        R   T   C       t   i   c   k   s       a   t       3   8
0037720        u   s   e   c   .       i   n   t   e   r  \0  \a 020   @
0037740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0037760   \0  \0 001 334 302  \0  \0  \0 024 272  \0 272 366 356 370 366
0040000    v   a   l   s   .       T   h   u   s       t   h   e       #
0040020        t   i   c   k   s       w   a   n   t   e   d       f   o
0040040    r       f   o   u   r       l   i   n   e   s       i   s   :
0040060   \r  \r   /   /               (       4       l   i   n   e   s
0040100        x       1   0   ^   6       u   s   e   c   /   s   e   c
0040120        x           1   /   3   8       t   i   c   k   /   u   s
0040140    e   c   .   )       /       (   (   P   a   p   e   r   S   p
0040160    e   e   d   I   n   c   h   e   s   /   1   0   0       x    
0040200    R   e   s   o   l   u   t   i   o   n   S   /   1   0   )    
0040220    l   i   n   e   s   /   s   e   c   )  \r  \r   /   /       o
0040240    r       a   b   o   u   t       (   1   0   6       x       1
0040260    0   ^   3   )       /       (   P   a   p   e   r   S   p   e
0040300    e   d   I   n   c   h   e   s   /   1   0   0       x       R
0040320    e   s   o   l   u   t   i   o   n   S   /   1   0   )        
0040340        t   i   c   k   s       -   -       a   b   o   u   t    
0040360    3   0       f   o   r       D   o   v   e   r   .  \r  \r   /
0040400    /       T   h   i   s       i   s       o   n   l   y       a
0040420    p   p   r   o   x   i   m   a   t   e       b   e   c   a   u
0040440    s   e       R   O   S   S   t   a   t   u   s       t   i   m
0040460    e   ,       a   b   o   u   t       1   0       t   i   c   k
0040500    s       f   o   r       D   o   v   e   r   ,       i   s    
0040520    n   o   t       i   n   c   l   u   d   e   d   .  \r   /   /
0040540        P   a   r   t       o   f       t   h   e       r   e   a
0040560    s   o   n       f   o   r       w   a   i   t   i   n   g    
0040600    f   o   u   r       l   i   n   e       t   i   m   e   s    
0040620    i   s       t   o       a   c   c   o   u   n   t       f   o
0040640    r       p   o   s   s   i   b   l   e       d   e   l   a   y
0040660    s       i   n       o   b   t   a   i   n   i   n   g  \r   /
0040700    /       t   h   e       c   o   r   r   e   c   t       l   i
0040720    n   e       c   o   u   n   t       s   t   a  \0  \a 020   @
0040740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0040760   \0  \0 001 334 300  \0  \0  \0 022 272  \0 272 366 356 370 366
0041000    t   u   s   .       L   a   t   e   r   ,       t   h   i   s
0041020        m   e   t   h   o   d       c   a   n       b   e       u
0041040    s   e   d       t   o       c   h   e   c   k       f   o   r
0041060        c   o   r   r   e   c   t       p   o   l   y   g   o   n
0041100        s   p   e   e   d   .  \r   /   /       T   h   e       s
0041120    c   a   n   T   i   c   k   s       s   t   a   t   i   c    
0041140    i   s       s   h   i   f   t   e   d       l   e   f   t    
0041160    b   y       6       t   o       m   a   t   c   h       t   h
0041200    e       c   l   o   c   k       r   e   a   d   i   n   g    
0041220    f   u   n   c   t   i   o   n   '   s       r   e   s   u   l
0041240    t   s  \r  \r  \f   /   /       R   O   S   C   h   e   c   k
0041260        (   c   o   n   t   )  \r  \r   a   n   d       R   O   S
0041300    C   h   e   c   k   (   l   v   F   a   i   l   u   r   e   C
0041320    o   d   e   ,       n   P   a   g   e   s   A   l   r   e   a
0041340    d   y   P   r   i   n   t   e   d   ,       r   u   n   n   i
0041360    n   g   )       =       v   a   l   o   f  \r   [  \r   l   e
0041400    t       r   o   s   8       =       R   O   S   S   t   a   t
0041420    u   s   (   8   )  \r   l   e   t       r   o   s   9       =
0041440        R   O   S   S   t   a   t   u   s   (   9   )  \r   l   e
0041460    t       l   o   c   a   l   M   o   d   e   ,       s   c   a
0041500    n   n   i   n   g       =       n   i   l   ,       t   r   u
0041520    e  \r   /   /       r   e   a   d   y       i   f       n   o
0041540    t       i   n       l   o   c   a   l       m   o   d   e    
0041560    a   n   d       i   f       p   r   i   n   t   e   r   -   s
0041600    p   e   c   i   f   i   c       t   e   s   t   s       i   n
0041620    d   i   c   a   t   e       r   e   a   d   y  \r   l   e   t
0041640        r   e   a   d   y       =      \t   /   /       P   o   w
0041660    e   r       o   n   ,       n   o       m   a   l   f   u   n
0041700    c   t   i   o   n   ,       p   a   p   e   r       t   r   a
0041720    y       O   K   ,       f   u   s   e   r      \0  \a 020   @
0041740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0041760   \0  \0 001 334 276  \0  \0  \0 020 272  \0 272 366 356 370 366
0042000    w   a   r   m      \r  \t       (   r   o   s   9   &   #   2
0042020    1   0   0   )       e   q       #   2   0   0   0           &
0042040            (   r   o   s   8   &   #   2   0   0   4   )       e
0042060    q       4  \r  \r   i   f       r   e   a   d   y       t   h
0042100    e   n  \r  \t   [  \r  \t   l   o   c   a   l   M   o   d   e
0042120        =       (   R   O   S   S   t   a   t   u   s   (   0   )
0042140    &   #   2   0   0   0   0   )       n   e       0  \r  \t   u
0042160    n   l   e   s   s       r   u   n   n   i   n   g       d   o
0042200   \r  \t           [  \r  \t           l   e   t       l   i   n
0042220    e   C   o   u   n   t       =       R   O   S   S   t   a   t
0042240    u   s   (   7   )       &       #   1   7   0   0   0   0  \r
0042260   \t           l   e   t       r   t   c       =       R   e   a
0042300    d   C   l   o   c   k   (   )  \r  \t           u   n   t   i
0042320    l       (   R   e   a   d   C   l   o   c   k   (   )   -   r
0042340    t   c   )       g   e       s   c   a   n   T   i   c   k   s
0042360        l   o   o   p  \r  \t           s   c   a   n   n   i   n
0042400    g       =       (   R   O   S   S   t   a   t   u   s   (   7
0042420    )   &   #   1   7   0   0   0   0   )       n   e       l   i
0042440    n   e   C   o   u   n   t  \r  \t           ]  \r  \t   i   f
0042460        l   o   c   a   l   M   o   d   e       %       n   o   t
0042500        s   c   a   n   n   i   n   g       t   h   e   n       r
0042520    e   a   d   y       =       f   a   l   s   e  \r  \t   ]  \r
0042540   \r   i   f       r   e   a   d   y       %       D   e   b   u
0042560    g       r   e   s   u   l   t   i   s       -   1  \r  \r   /
0042600    /       A   n   a   l   y   z   e       t   a   b   l   e   s
0042620        t   o       i   d   e   n   t   i   f   y       t   h   e
0042640        p   r   o   b   l   e   m       o   r       c   o   n   d
0042660    i   t   i   o   n       p   r   e   v   e   n   t   i   n   g
0042700        r   e   a   d   y  \r  \r   l   e   t       t   a   b    
0042720    =           t   a   b   l   e       [  \r  \t  \0  \a 020   @
0042740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0042760   \0  \0 001 334 274  \0  \0  \0 016 272  \0 272 366 356 370 366
0043000    1   0   *   C   o   d   e               +               8   *
0043020    W   o   r   d       +           5   *   B   i   t       /   /
0043040        P   T   D   i   s   o   r   d   e   r   -   H       C   h
0043060    e   c   k       p   a   p   e   r       t   r   a   y  \r  \t
0043100    2   0   *   C   o   d   e               +               8   *
0043120    W   o   r   d       +       1   0   *   B   i   t       /   /
0043140        2   7   L   S   -   H       J   a   m       -   -       p
0043160    a   p   e   r       f   e   e   d  \r  \t   2   1   *   C   o
0043200    d   e               +               8   *   W   o   r   d    
0043220    +       1   4   *   B   i   t       +       M   a   l   F   n
0043240    R   e   q       /   /       L   o   s   t   P   o   w   e   r
0043260    -   H       L   o   s   t       e   n   g   i   n   e       p
0043300    o   w   e   r  \r  \t   2   2   *   C   o   d   e            
0043320    +               9   *   W   o   r   d       +           1   *
0043340    B   i   t       /   /       P   h   o   t   o   C   e   l   l
0043360    O   u   t   -   H       J   a   m   -   -   p   a   p   e   r
0043400        o   n       d   r   u   m  \r  \t   2   3   *   C   o   d
0043420    e               +               9   *   W   o   r   d       +
0043440            2   *   B   i   t       /   /       P   r   e   S   e
0043460    q   -   H       J   a   m       -   -       s   t   a   r   t
0043500    u   p       s   e   q   u   e   n   c   e  \r  \t   2   4   *
0043520    C   o   d   e               +               9   *   W   o   r
0043540    d       +           6   *   B   i   t       /   /       3   8
0043560    L   S   -   H       J   a   m   -   -   p   a   p   e   r    
0043600    o   n       f   u   s   e   r       r   o   l   l  \r  \t   2
0043620    5   *   C   o   d   e               +               9   *   W
0043640    o   r   d       +       1   0   *   B   i   t       /   /    
0043660    3   L   S   -   H       J   a   m   -   -   p   a   p   e   r
0043700        o   n       d   r   u   m  \r  \t   1   4   *   C   o   d
0043720    e               +               8   *   W   o  \0  \a 020   @
0043740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0043760   \0  \0 001 334 272  \0  \0  \0  \f 272  \0 272 366 356 370 366
0044000    r   d       +       1   3   *   B   i   t       +       I   n
0044020    v   e   r   t       /   /       R   e   a   d   y   T   e   m
0044040    p   -   H       F   u   s   e   r       n   o   t       w   a
0044060    r   m  \r  \t   1   2   *   C   o   d   e               +    
0044100            9   *   W   o   r   d       +           5   *   B   i
0044120    t       +       I   n   v   e   r   t       /   /       A   C
0044140    M   o   n   i   t   o   r   -   H       E   n   g   i   n   e
0044160        n   o   t       p   o   w   e   r   e   d       u   p  \r
0044200   \t   2   6   *   C   o   d   e               +               9
0044220    *   W   o   r   d       +           9   *   B   i   t       /
0044240    /       M   a   l   f   u   n   c   t   i   o   n   -   H    
0044260    u   n   e   x   p   l   a   i   n   e   d       m   a   l   f
0044300    u   n   c   t   i   o   n  \r  \t   0           ]  \r   /   /
0044320        C   o   d   e   s       g   e   n   e   r   a   t   e   d
0044340        e   l   s   e   w   h   e   r   e   :  \r   /   /  \t   7
0044360        -   -       n   o       s   p   e   c   i   f   i   c    
0044400    m   a   l   f   u   n   c   t   i   o   n       d   e   t   e
0044420    c   t   e   d   ,       b   u   t       s   o   m   e   t   h
0044440    i   n   g       i   s       w   r   o   n   g  \r   /   /  \t
0044460    1   6       -   -       p   a   g   e       s   y   n   c    
0044500    n   e   v   e   r       t   u   r   n   e   d       o   f   f
0044520   \r   /   /  \t   1   7       -   -       s   e   v   e   r   a
0044540    l       c   o   n   s   e   c   u   t   i   v   e       u   n
0044560    i   d   e   n   t   i   f   i   e   d       e   r   r   o   r
0044600    s  \r   /   /  \t   1   8       -   -       O   r   b   i   t
0044620        t   i   m   e   d       o   u   t       -   -       p   a
0044640    g   e       s   y   n   c       n   e   v   e   r       a   r
0044660    r   i   v   e   d   ,       o   r       e   n   g   i   n   e
0044700        d   i   e   d       o   r       g   o   t       b   e   h
0044720    i   n   d  \r   /   /  \t   1   9       -   -  \0  \a 020   @
0044740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0044760   \0  \0 001 334 270  \0  \0  \0  \n 272  \0 272 366 356 370 366
0045000        A   l   t   o       c   o   d   e       t   i   m   e   d
0045020        o   u   t       -   -       s   a   m   e       s   y   m
0045040    p   t   o   m   s  \r   /   /  \t   3   0   0       -   -    
0045060    O   r   b   i   t       g   o   t       b   e   h   i   n   d
0045100    ,       b   u   t       p   a   g   e       t   e   r   m   i
0045120    n   a   t   e   d       n   o   r   m   a   l   l   y  \r   /
0045140    /  \t   3   0   1       -   -       O   r   b   i   t       g
0045160    o   t       b   e   h   i   n   d   ,       h   a   d       t
0045200    o       q   u   i   t       e   a   r   l   y  \r   /   /  \t
0045220    3   1   0       -   -       L   e   f   t       o   v   e   r
0045240        t   a   b   l   e       g   o   t       t   o   o       l
0045260    a   r   g   e   .       P   l   e   a   s   e       r   e   p
0045300    o   r   t       t   o       f   i   x   e   r   .  \r  \r   l
0045320    e   t       b   i   t   s       =       t   a   b   l   e    
0045340    [       #   1   0   0   0   0   0   ;  \r  \t           #   4
0045360    0   0   0   0   ;  \t           #   2   0   0   0   0   ;  \t
0045400            #   1   0   0   0   0  \r  \t               #   4   0
0045420    0   0   ;  \t               #   2   0   0   0   ;  \t        
0045440        #   1   0   0   0  \r  \t                   #   4   0   0
0045460    ;  \t                   #   2   0   0   ;  \t                
0045500    #   1   0   0  \r  \t                       #   4   0   ;  \t
0045520                        #   2   0   ;  \t                       #
0045540    1   0  \r  \t                           #   4   ;  \t        
0045560                    #   2   ;  \t                           #   1
0045600   \t   ]  \r  \r   /   /       C   o   n   d   i   t   i   o   n
0045620        i   n   t   e   r   p   r   e   t   e   r  \r  \r   l   e
0045640    t       c   o   d   e       =       0  \r  \t  \t   w   h   i
0045660    l   e       @   t   a   b       d   o  \r  \t  \t  \t   [  \r
0045700   \t  \t  \t   l   e   t       e   n   t   r   y       =       @
0045720    t   a   b  \r  \t  \t  \t   l   e   t       i  \0  \a 020   @
0045740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0045760   \0  \0 001 334 266  \0  \0  \0  \b 272  \0 272 366 356 370 366
0046000    s   B   i   t       =       (   R   O   S   S   t   a   t   u
0046020    s   (   e   n   t   r   y   <   <   C   T   .   w   o   r   d
0046040    I   n   d   e   x   )       &       b   i   t   s   !   (   e
0046060    n   t   r   y   <   <   C   T   .   b   i   t   I   n   d   e
0046100    x   )   )       n   e       0   ?       1   ,       0  \r  \t
0046120   \t               i   f       i   s   B   i   t       n   e    
0046140    e   n   t   r   y   <   <   C   T   .   i   n   v   e   r   t
0046160            &           (   e   n   t   r   y   <   <   C   T   .
0046200    m   a   l   F   n   R   e   q       e   q       0       %    
0046220    (   r   o   s   9   &   #   1   0   0   )       n   e       0
0046240    )       t   h   e   n  \r  \t  \t  \t  \t   [       c   o   d
0046260    e       =       e   n   t   r   y   <   <   C   T   .   f   a
0046300    i   l   u   r   e   C   o   d   e   ;       b   r   e   a   k
0046320        ]  \r  \t  \t  \t   t   a   b       =       t   a   b    
0046340    +       1  \r  \t  \t  \t   ]  \r   /   /       N   o       o
0046360    t   h   e   r       e   x   p   l   i   c   i   t       p   r
0046400    o   b   l   e   m   s   ,       r   e   p   o   r   t       l
0046420    o   c   a   l       m   o   d   e   ,       o   r       l   a
0046440    s   e   r       o   f   f   ,       o   r       u   n   k   n
0046460    o   w   n       p   r   o   b   l   e   m  \r   u   n   l   e
0046500    s   s       c   o   d   e       d   o       c   o   d   e    
0046520    =       l   o   c   a   l   M   o   d   e   ?       1   1   ,
0046540        s   c   a   n   n   i   n   g       e   q       0   ?    
0046560    1   3   ,       7  \r   @   l   v   F   a   i   l   u   r   e
0046600    C   o   d   e       =       c   o   d   e  \r       l   e   t
0046620        b   a   c   k   u   p       =       c   o   d   e       l
0046640    e       m   a   x   M   a   n   u   a   l   ?       0   ,    
0046660    c   o   d   e       <       3   0   ?       2   ,       1    
0046700       \r   r   e   s   u   l   t   i   s       M   a   x   (   n
0046720    P   a   g   e   s   A   l   r   e   a   d   y  \0  \a 020   @
0046740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0046760   \0  \0 001 334 264  \0  \0  \0 006 272  \0 272 366 356 370 366
0047000    P   r   i   n   t   e   d   ,       n   P   a   g   e   s   P
0047020    r   i   n   t   e   d   -   b   a   c   k   u   p   )  \r   ]
0047040   \r  \f   /   /       -   -   -   -   -   -   -   -   -   -   -
0047060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0047100    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   /
0047120    /       E   n   g   i   n   e       c   o   n   t   r   o   l
0047140    s       o   f       v   a   r   i   o   u   s       s   o   r
0047160    t   s   .  \r   /   /       -   -   -   -   -   -   -   -   -
0047200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0047240   \r  \r   a   n   d       F   e   e   d   A   S   h   e   e   t
0047260    (   )       b   e      \r   [  \r  \t  \t   M   e   a   s   u
0047300    r   e   (   #   2   0   ,   t   r   u   e   )  \r  \t  \t   D
0047320    o   F   u   n   c   (   f   R   O   S   C   o   m   m   a   n
0047340    d   ,       a   d   E   x   t   e   r   n   a   l   C   o   m
0047360    m   a   n   d   1   +   1   )  \r  \t  \t   D   o   F   u   n
0047400    c   (   f   R   O   S   C   o   m   m   a   n   d   ,       a
0047420    d   E   x   t   e   r   n   a   l   C   o   m   m   a   n   d
0047440    1   )  \r  \t  \t   M   e   a   s   u   r   e   (   #   2   0
0047460    ,   f   a   l   s   e   )  \r   ]  \r   /   /       -   -   -
0047500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0047540    -   -   -   -   -   -  \r   /   /       H   a   r   d   w   a
0047560    r   e       s   e   t   u   p       f   o   r       v   a   r
0047600    i   o   u   s       d   e   v   i   c   e   s   .  \r   /   /
0047620        -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0047640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0047660    -   -   -   -   -   -   -   -   -   -  \r  \r   a   n   d    
0047700    I   n   i   t   i   a   l   i   z   e   H   a   r   d   w   a
0047720    r   e   (   s   t   o   p   )       b   e  \r  \0  \a 020   @
0047740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0047760   \0  \0 001 334 262  \0  \0  \0 004 272  \0 272 366 356 370 366
0050000    [  \t   i   f       D   e   b   u   g       r   e   t   u   r
0050020    n  \r  \t   I   n   i   t   R   a   m   (   0   )  \t  \t  \t
0050040    /   /   R   e   s   e   t       a   l   l       R   A   M    
0050060    t   a   s   k   s   ,       r   e   s   t   a   r   t       T
0050100    r   i   d   e   n   t       i   f       n   e   c   e   s   s
0050120    a   r   y  \r  \r  \t   D   o   F   u   n   c   (   f   C   o
0050140    n   t   r   o   l   ,       1   )  \t  \t   /   /   R   e   s
0050160    e   t       O   r   b   i   t  \r  \r  \t       D   o   F   u
0050200    n   c   (   f   R   O   S   C   o   m   m   a   n   d   ,    
0050220    a   d   E   x   t   e   r   n   a   l   C   o   m   m   a   n
0050240    d   1   )  \r   ]  \r  \r   a   n   d       B   l   a   s   t
0050260    (   )       b   e       I   n   i   t   i   a   l   i   z   e
0050300    H   a   r   d   w   a   r   e   (   f   a   l   s   e   )  \r
0050320   \r   /   /   B   W   B   N   o   v   e   m   b   e   r       1
0050340    3   ,       1   9   7   8           1   2   :   0   3       P
0050360    M           d   e   r   i   v   e   d       f   r   o   m    
0050400    S   p   r   u   c   e   P   r   i   n   t  \r   /   /       D
0050420    e   c   e   m   b   e   r       7   ,       1   9   7   8    
0050440        3   :   3   0       P   M       c   l   e   a   n   u   p
0050460   \r   /   /       A   p   r   i   l       2   7   ,       1   9
0050500    7   9           1   1   :   4   5       A   M   ,       a   d
0050520    d       D   o   v   e   r       E   n   g   i   n   e       C
0050540    o   n   t   r   o   l       M   o   n   i   t   o   r   i   n
0050560    g       c   o   d   e   ,       s   e   e       S   p   r   u
0050600    c   e   M   e   a   s   u   r   e   ,       b   y       S   w
0050620    i   n   e   h   a   r   t  \r   /   /      \t       a   d   d
0050640        a   b   i   l   i   t   y       t   o       p   l   a   c
0050660    e       f   o   n   t   s       i   n       b   a   n   k    
0050700    1       -   -       s   e   e       a   l   l       u   s   e
0050720    s       o   f       x   m   F   o   n   t   s  \0  \a 020   @
0050740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0050760   \0  \0 001 334 260  \0  \0  \0 002 272  \0 272 366 356 370 366
0051000   \r   /   /      \t       r   e   p   a   i   r       b   u   g
0051020        i   n       B   a   n   k   B   l   t       i   n   t   e
0051040    r   f   a   c   e       f   o   r       x   m   F   o   n   t
0051060    s       s   t   u   f   f  \r   /   /       M   a   y       2
0051100    3   ,       1   9   7   9           2   :   0   5       P   M
0051120        c   l   e   a   n   u   p  \r   /   /       J   a   n   u
0051140    a   r   y       2   8   ,       1   9   8   1       1   2   :
0051160    4   0       P   M           d   o   n   '   t       s   w   a
0051200    t       i   f       b   a   d       b   a   n   d       e   n
0051220    t   r   y       p   r   o   b   a   b   l   y       d   u   e
0051240        t   o       l   e   f   t   o   v   e   r       o   v   e
0051260    r   f   l   o   w  \r   /   /  \r  \r  \0  \0  \0  \0  \0  \0
0051300   \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
*
0051720   \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \a 020   @
0051740  377   v 037  \0 002   { 035  \0  \0   ( 027 006      \0  \0   @
0051760   \0  \0  \0 272 256  \0  \0  \0  \0 272  \0 272 366 356 370 366
0052000