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