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