$ od -c -N 50000 [Indigo]<AltoSource>TELENET.DM!2 0000000 377 \0 \0 T O T E L E N E T . B C P 0000020 L \0 376 001 \0 352 X ; < S T R O L L O 0000040 > T O T E L E N E T . B C P L ; 0000060 5 2 8 - M A R - 8 1 1 0000100 6 : 0 5 : 1 8 E D I T 0000120 B Y S T R O L L O \r / / < S 0000140 T R O L L O > T O T E L E N E T 0000160 . B C P L ; 4 3 0 - S E 0000200 P - 7 7 0 6 : 2 1 : 2 6 0000220 E D I T B Y S T R O L L O 0000240 \r / / T O T E L E N E T . B C 0000260 P L - - p r o g t o s e n 0000300 d t o \r / / < x - t e l e n 0000320 e t > [ - - t e l e n e t - m a 0000340 i l - - ] . x y @ x n e t \r \r \r 0000360 g e t " s y s d e f s . d " \r 0000400 g e t " a l t o f i l e s y s 0000420 . d " \r g e t 376 001 \0 234 266 " s t 0000440 r e a m s . d " \r \r m a n i f e 0000460 s t \r [ \r m a x n u m s 0000500 i t e s = 2 0 / / a t 0000520 m o s t 2 0 s i t e s - 0000540 s e p a r a t e d b y , \r 0000560 c t r l z = # 3 2 / 0000600 / c o n t r o l Z \r c t 0000620 r l v = # 2 6 / / c o 0000640 n t r o l V \r c r = # 0000660 1 5 / / c a r r i a g e 0000700 r e t u r n \r s p a c e = 0000720 # 4 0 \r w o r d m a x = 0000740 7 2 \r l f = # 1 2 / 0000760 / l i n e f e e d \r ] \r 0001000 \r e x t e r n a l \r [ \r 0001020 O p e n F i l e ; C l o 376 001 \0 > 0001040 371 s e s ; F i l e P o s ; d s p 0001060 ; P u t s ; A p p e n d C h a r 0001100 ; k e y s ; W s s \r s y s Z 0001120 o n e ; A l l o c a t e ; G e t 0001140 s ; F i l e L e n g t h ; S e t 0001160 F i l e P o s ; W s ; E n d o f 0001200 s \r C a l l S u b s y s ; f 0001220 p C o m C m \r ] \r \r s t 0001240 a t i c \r [ \r c h a r c 0001260 o u n t = 0 \r l a s t c 0001300 r = f a l s e \r ] \r \r s 0001320 t r u c t u r e [ S L b y 0001340 t e ; b l a n k b y t e ] 0001360 \r s t r u c t u r e C H ^ 0001400 0 , m a x S t r i n g I n d 0001420 e x b y t e \r \r \r l e t 0001440 m 376 001 \0 H ; a i n ( ) b e \r 0001460 [ \r / / o p e n f i l 0001500 e \r l e t r a w s t r 0001520 e a m = \r O p e 0001540 n F i l e ( " t o t e l e n e t 0001560 . r a w " , k s T y p e R e a d 0001600 O n l y , c h a r I t e m ) \r 0001620 i f r a w s t r e a m 0001640 e q 0 t h e n \r 0001660 [ \r W s ( " N o r 0001700 a w t e x t f i l e - f 0001720 a t a l e r r o r - g e t 0001740 S w i n e h a r t " ) \r 0001760 r e t u r n \r 0002000 ] \r / / s c a n o f f 0002020 d e s t i n a t i o n s i t e 0002040 s \r / / 376 001 \0 256 241 p o s i 0002060 t i o n t o f i r s t p r 0002100 i n t i n g c h a r p a s t 0002120 " : " \r l e t r a w 0002140 p o s = n i l \r l e 0002160 t r a w c h a r = n i l \r 0002200 [ r a w c h a r = 0002220 G e t s ( r a w s t r e a m ) 0002240 ] \r r e p e a t w h 0002260 i l e r a w c h a r n e $ 0002300 : \r [ r a w c h a r 0002320 = G e t s ( r a w s t r e a m 0002340 ) ] \r r e p e a t 0002360 w h i l e r a w c h a r e q 0002400 s p a c e \r S e t 0002420 F i l e P o s ( r a w s t r e a 0002440 m , 0 , F i l e P o s 376 001 \0 > 347 0002460 ( r a w s t r e a m ) - 1 ) \r 0002500 / / r e a d y t o g e t 0002520 s i t e s - 2 0 m a x , 0002540 1 m i n \r l e t s 0002560 i t e c h a r 1 , s i t e c h a 0002600 r 2 , n u m s i t e s = n i 0002620 l , n i l , 0 \r l e t 0002640 s i t e v e c = v e c m a 0002660 x n u m s i t e s \r l e 0002700 t w o r d v e c = v e c 0002720 w o r d m a x / / w o r d m 0002740 a x i s m a x w o r d s i 0002760 z e \r f o r i = 0 0003000 t o m a x n u m s i t e s - 0003020 1 d o \r [ \r 0003040 s i t e c h a r 1 = G 0003060 376 001 \0 363 305 e t s ( r a w s t r e 0003100 a m ) \r / / P u t s 0003120 ( d s p , s i t e c h a r 1 ) \r 0003140 s i t e c h a r 2 0003160 = G e t s ( r a w s t r e a m 0003200 ) \r / / P u t s ( d 0003220 s p , s i t e c h a r 2 ) \r 0003240 s i t e v e c ! i = 0003260 A l l o c a t e ( s y s Z o n e 0003300 , 5 ) \r l e t s i 0003320 t e s t r i n g = s i t e v 0003340 e c ! i \r s i t e s 0003360 t r i n g ! 0 = 0 \r 0003400 A p p e n d C h a r ( s i t 0003420 e c h a r 1 , s i t e s t r i n 0003440 g ) \r A p p e n d C 0003460 h a r ( s 376 001 \0 245 361 i t e c h a 0003500 r 2 , s i t e s t r i n g ) \r 0003520 n u m s i t e s = 0003540 i + 1 \r i f G 0003560 e t s ( r a w s t r e a m ) n 0003600 e $ , t h e n b r e a k \r 0003620 ] \r / / s a y 0003640 t h e s i t e s \r P 0003660 u t s ( d s p , $ * n ) \r 0003700 f o r i = 0 t o n u 0003720 m s i t e s - 1 d o \r 0003740 [ \r l e t s i 0003760 t e s t r = s i t e v e c ! 0004000 i \r W s ( s i t e s 0004020 t r ) \r P u t s ( d 0004040 s p , s p a c e ) \r 0004060 ] \r / / w e 376 001 \0 177 274 a 0004100 r e n o w a t t h e c h 0004120 a r a f t e r t h e C R 0004140 t e r m i n a t i n g s i t e 0004160 l i n e \r / / c r e a 0004200 t e t e x t f i l e i n t 0004220 o w h i c h t o p u t l 0004240 e f t a l l i g n e d t e x 0004260 t \r l e t t o t e l e 0004300 s t r e a m = \r O 0004320 p e n F i l e ( " t o t e l e n 0004340 e t . t e x t " , k s T y p e W 0004360 r i t e O n l y , c h a r I t e 0004400 m ) \r i f t o t e l e 0004420 s t r e a m e q 0 t h e n 0004440 \r [ \r W 0004460 s ( " C a n ' t o p e n f 376 0004500 001 \0 375 \0 i l e - g e t S w 0004520 i n e h a r t " ) \r 0004540 r e t u r n \r ] \r 0004560 / / w r i t e t e x t 0004600 i n t o f i l e - s k i p 0004620 p i n g o v e r t r a i l e 0004640 r s t u f f \r c h a r 0004660 c o u n t = 0 \r w o 0004700 r d v e c > > S L = 0 \r 0004720 l e t s k i p c h a r = 0004740 n i l \r l a s t c r 0004760 = f a l s e \r [ \r 0005000 r a w c h a r = G e t s 0005020 ( r a w s t r e a m ) \r 0005040 i f r a w c h a r e q c r 0005060 t h e n \r [ \r 0005100 376 001 \0 227 037 S t r i n g t 0005120 o F i l e ( w o r d v e c , t o 0005140 t e l e s t r e a m ) \r 0005160 P u t C R L F ( t o t e l e 0005200 s t r e a m ) \r l a 0005220 s t c r = t r u e / / p 0005240 e r m i t i n t e n t i o n a 0005260 l s p a c e s a f t e r c 0005300 r \r l o o p \r 0005320 ] \r \r t e s t r 0005340 a w c h a r e q c t r l z \r 0005360 i f s o \r 0005400 [ \r [ s 0005420 k i p c h a r = G e t s ( r 0005440 a w s t r e a m ) ] \r 0005460 r e p e a t w h i l 0005500 e ( ( s k i p c 376 001 \0 272 346 h a 0005520 r n e c r ) & \r 0005540 ( n o t E n d o 0005560 f s ( r a w s t r e a m ) ) ) \r 0005600 S e t F i l e P 0005620 o s ( r a w s t r e a m , 0 , F 0005640 i l e P o s ( r a w s t r e a m 0005660 ) - 1 ) / / t o s e e C R 0005700 a g a i n \r ] 0005720 \r i f n o t \r 0005740 [ \r i 0005760 f r a w c h a r n e s p a 0006000 c e t h e n l a s t c r = 0006020 f a l s e / / f i r s t 0006040 n o n - s p a c e r e s e t s 0006060 f l a g \r t e 0006100 s t B r e a k C h a r ( r 376 001 0006120 \0 350 214 a w c h a r ) \r 0006140 i f s o \r 0006160 [ \r 0006200 S t r i n g t o F i l e 0006220 ( w o r d v e c , t o t e l e s 0006240 t r e a m ) \r 0006260 P u t C h k E O L ( t o t 0006300 e l e s t r e a m , r a w c h a 0006320 r ) \r ] 0006340 \r i f n o t 0006360 \r [ \r 0006400 A p p e n 0006420 d C h a r ( r a w c h a r , w o 0006440 r d v e c ) \r 0006460 i f w o r d v e c > > S 0006500 L g e w o r d m a x t h e 0006520 n \r 376 001 \0 I A 0006540 [ \r 0006560 P u t C R L F ( t o t 0006600 e l e s t r e a m ) \r 0006620 S t r i n g t 0006640 o F i l e ( w o r d v e c , t o 0006660 t e l e s t r e a m ) \r 0006700 P u t C R L 0006720 F ( t o t e l e s t r e a m ) \r 0006740 ] \r 0006760 ] \r 0007000 ] \r ] \r 0007020 r e p e a t w h i l e n o 0007040 t E n d o f s ( r a w s t r e 0007060 a m ) \r S t r i n g t o 0007100 F i l e ( w o r d v e c , t o t 0007120 e l e s t r e a 376 001 \0 240 m ) \r 0007140 / / c l o s e f i l e 0007160 s \r C l o s e s ( r 0007200 a w s t r e a m ) \r 0007220 C l o s e s ( t o t e l e s t r 0007240 e a m ) \r / / c r e a t 0007260 e c o m m a n d s i n t e 0007300 m p c o m m a n d f i l e \r 0007320 l e t t m p s t r e a 0007340 m = \r O p e n F i 0007360 l e ( " C o m . c m " , 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 , 0 , f p C o m 0007440 C m ) \r i f t m p s t 0007460 r e a m e q 0 t h e n \r 0007500 [ \r W s ( 0007520 " C a n ' t o p e n C 376 001 \0 0007540 243 355 o m . C M - g e t S w 0007560 i n e h a r t " ) \r 0007600 r e t u r n \r ] \r 0007620 W s s ( t m p s t r e a m 0007640 , " F T P . R u n m a x c 2 0007660 " ) \r f o r i = 0 0007700 t o n u m s i t e s - 1 d 0007720 o \r [ \r 0007740 W s s ( t m p s t r e a m , " s 0007760 t o r e / s " ) \r 0010000 W s s ( t m p s t r e a m , " t 0010020 o t e l e n e t . t e x t " ) 0010040 \r W s s ( t m p s t 0010060 r e a m , " < X - T E L E N E T 0010100 > [ - - T E L E N E T - M A I L 0010120 - - ] . " ) \r W s s 0010140 ( t 376 001 \0 313 232 m p s t r e a m , 0010160 s i t e v e c ! i ) \r 0010200 P u t s ( t m p s t r e a m , 0010220 c t r l v ) \r P u t 0010240 s ( t m p s t r e a m , $ @ ) \r 0010260 W s s ( t m p s t r 0010300 e a m , " X N E T " ) \r 0010320 P u t s ( t m p s t r e a m 0010340 , s p a c e ) \r ] \r 0010360 P u t s ( t m p s t r e 0010400 a m , c r ) \r / / c l o s 0010420 e f i l e s \r C l o s 0010440 e s ( t m p s t r e a m ) \r 0010460 / / c a l l F T P \r 0010500 l e t F T P s t r e a m = 0010520 \r O p e n F i l e ( 0010540 " F T P . R U 376 001 \0 357 5 N " , k 0010560 s T y p e R e a d O n l y ) \r 0010600 i f F T P s t r e a m 0010620 e q 0 t h e n \r 0010640 [ \r W s ( " C a n ' 0010660 t o p e n F T P . R U N - 0010700 g e t S w i n e h a r t " ) 0010720 \r r e t u r n \r 0010740 ] \r C a l l S u 0010760 b s y s ( F T P s t r e a m ) \r 0011000 ] \r \r a n d P u t C R 0011020 L F ( s t r e a m ) b e \r 0011040 [ \r / / o u t p u t C R 0011060 L F , i n i t i a l i z e c 0011100 o u n t s \r P u t s ( s 0011120 t r e a m , c r ) \r P u 0011140 t s ( s t r e a m , l f 376 001 \0 211 0011160 365 ) \r c h a r c o u n t 0011200 = 0 \r ] \r \r a n d P u t C 0011220 h k E O L ( s t r e a m , c h r 0011240 ) b e \r [ \r i f 0011260 c h a r c o u n t g e 7 2 0011300 t h e n \r [ \r 0011320 P u t C R L F ( s t r e a 0011340 m ) \r i f ( ( c h 0011360 r e q s p a c e ) & n o t 0011400 l a s t c r ) t h e n r e 0011420 t u r n \r ] \r 0011440 i f ( ( c h a r c o u n t 0011460 e q 0 ) & ( c h r e q s p 0011500 a c e ) & ( n o t l a s t c r 0011520 ) ) t h e n r e t u r n \r 0011540 P u t s ( s t r e a m , c 0011560 h 376 001 \0 h 333 r ) \r i f 0011600 ( ( c h r n e $ * 1 7 7 ) & 0011620 ( c h r n e l f ) ) t h e 0011640 n c h a r c o u n t = c h 0011660 a r c o u n t + 1 \r 0011700 i f c h r e q c r t h e 0011720 n c h a r c o u n t = 0 \r 0011740 ] \r \r a n d S t r i n g t 0011760 o F i l e ( s t r , s t r e a m 0012000 ) b e \r [ \r / / t e 0012020 s t t o s e e i f i t 0012040 w i l l f i t o n c u r r 0012060 e n t l i n e \r i f 0012100 ( c h a r c o u n t + s t r 0012120 > > S L ) g r 7 2 t h e n 0012140 P u t C R L F ( s t r e a m ) 0012160 \r f 376 001 \0 G 265 o r i 0012200 = 1 t o s t r > > S L d 0012220 o P u t s ( s t r e a m , s t 0012240 r > > C H ^ i ) \r c h a 0012260 r c o u n t = c h a r c o u 0012300 n t + s t r > > S L \r 0012320 s t r > > S L = 0 \r ] 0012340 \r \r a n d B r e a k C h a r ( 0012360 c h r ) = v a l o f \r [ 0012400 \r i f c h r l e # 4 3 0012420 t h e n r e s u l t i s t 0012440 r u e / / a l l c o n t r 0012460 o l , s p a c e , ! , " , # b 0012500 u t n o t $ \r r e s u l 0012520 t i s s e l e c t o n c h r 0012540 i n t o \r [ \r 0012560 c a s e $ % : t r 376 001 \0 204 262 0012600 u e \r c a s e $ & : 0012620 t r u e \r c a s e $ ' 0012640 : f a l s e \r c a s e 0012660 $ * * : t r u e \r c 0012700 a s e $ + : t r u e \r 0012720 c a s e $ , : f a l s e \r 0012740 c a s e $ - : t r u 0012760 e \r c a s e $ . : f 0013000 a l s e \r c a s e $ / 0013020 : t r u e \r c a s e 0013040 $ = : t r u e \r c a s 0013060 e $ @ : t r u e \r c 0013100 a s e $ \ : t r u e \r 0013120 c a s e $ ^ : t r u e \r 0013140 c a s e $ _ : t r u e 0013160 \r c a s e $ * 1 4 0 : 0013200 376 \0 225 025 0 t r u e / / a c 0013220 c e n t g r a v e ( w o n ' 0013240 t p r i n t f o r s o m e 0013260 r e a s o n ) \r c a s 0013300 e $ | : t r u e \r c 0013320 a s e $ ~ : t r u e \r 0013340 c a s e $ * 1 7 7 : t r u 0013360 e \r d e f a u l t : f 0013400 a l s e \r ] \r ] \r \r 0013420 \r \0 377 \0 \0 U T I 0013440 L S T R . B C P L \0 376 001 \0 335 203 / 0013460 / U t i l S t r . b c p l 0013500 - - m i s c e l l a n e o u s 0013520 u t i l i t y a n d s t r 0013540 i n g p r o c e d u r e s \r \r 0013560 / / 1 9 O c t o b e r 1 0013600 9 7 6 b y B . L . P a r s 0013620 l e y \r / / 8 M a r c h 0013640 1 9 7 7 b y B . L . P a 0013660 r s l e y \r \t \t / / c o m m e 0013700 n t e d o u t ( / / F L O A 0013720 T ) a l l r e f e r e n c e 0013740 s t o F l o a t S t r p a 0013760 c k a g e \r \r g e t " U t i l 0014000 S t r . D " \r \r / / o u t g o 0014020 i n g p r o c e d u r e s \r e 0014040 x t e r n a l \r \t [ \r / / s 376 0014060 001 \0 5 A t r i n g p r o c e d 0014100 u t e s \r \t C o p y S t r i n g 0014120 \t \t / / ( s o u r c e S t r , 0014140 d e s t S t r ) \t \t \t \t \t \t \t 0014160 \t - > d e s t S t r \r \t A p p 0014200 e n d C h a r \t \t / / ( c h a 0014220 r , d e s t S t r ) \t \t \t \t \t 0014240 \t \t \t \t \t - > d e s t S t r \r 0014260 \t A p p e n d S t r i n g \t / / 0014300 ( s o u r c e S t r , d e s 0014320 t S t r ) \t \t \t \t \t \t \t \t - > 0014340 d e s t S t r \r \t A p p e n d N 0014360 u m \t \t / / ( n u m b e r , 0014400 d e s t S t r , [ r a d i x / 0014420 1 0 ] ) \t \t \t \t \t - > d e s t 0014440 S t r \r \t M a k e S t r i n g \t 0014460 \t / / 376 001 \0 352 ) ( d e s t S t 0014500 r , r a d i x , v a l u e , 0014520 [ r a d i x , v a l u e , . . 0014540 . ] ) \t - > d e s t S t r \r \t 0014560 I m b e d C h a r \t \t / / ( c 0014600 h a r , d e s t S t r , [ i 0014620 n d e x / d e s t S t r > > S L 0014640 + 1 ] ) \t \t - > d e s t S t r 0014660 \r \t E x t r a c t S t r i n g \t 0014700 \t / / ( s S t r , d S t r , 0014720 b I n d e x , [ e I n d e x 0014740 / s S t r > > S L + 1 ] ) \t - > 0014760 d e s t S t r \r \t S e a r c h 0015000 C h a r \t \t / / ( s t r , c 0015020 h a r , [ i n d e x / 0 ] ) \t 0015040 \t \t \t \t \t \t \t - > i n d e x / 0015060 0 \r \t S e a r c h 376 001 \0 253 k S t 0015100 r i n g \t \t / / ( s t r 1 , 0015120 s t r 2 , [ i n d e x / 0 , 0015140 [ s w / f a l s e ] ] ) \t \t \t - 0015160 > i n d e x / 0 \r \t S t r i n 0015200 g E q u a l \t \t / / ( s t r 1 0015220 , s t r 2 , [ s w / f a l s 0015240 e ] ) \t \t \t \t \t \t \t - > t r u 0015260 e / f a l s e \r \t S t r i n g T 0015300 o V a l u e \t / / ( s o u r c 0015320 e S t r , [ r a d i x / 1 0 , 0015340 [ p o i n t e r ] ] ) \t \t \t - 0015360 > v a l u e \r \t S t r T o V a 0015400 l E r r \t \t / / ( s t r , c 0015420 h a r , r a d i x ) \r \t V a l 0015440 u e T o S t r i n g \t / / ( v 0015460 a l u e , d e s t S t r , 376 001 0015500 \0 225 017 [ r a d i x / 1 0 ] ) \t 0015520 \t \t \t \t - > d e s t S t r \r \t 0015540 ] \r \r / / i n c o m i n g p 0015560 r o c e d u r e s \r e x t e r n 0015600 a l \r \t [ \r \t M o v e B l o c k 0015620 \r \t A l l o c a t e \r \t W s s \r 0015640 \t C a l l S w a t \r \t ] \r \r / / 0015660 P r o c e d u r e s \t \t \t \t \t 0015700 \t \f \r \r l e t C o p y S t r i 0015720 n g ( s o u r c e S t r , d 0015740 e s t S t r ) = v a l o f \r 0015760 \t [ \r \t M o v e B l o c k ( d 0016000 e s t S t r , s o u r c e S t 0016020 r , ( s o u r c e S t r > > S 0016040 L r s h i f t 1 ) + 1 ) 0016060 \r \t r e s u l t i s d e s t S 0016100 t r \r 376 001 \0 243 336 \t ] \r \r a n d 0016120 A p p e n d C h a r ( c h a r 0016140 , d e s t S t r ) = v a l 0016160 o f \r \t [ \r \t l e t s t r L 0016200 = d e s t S t r > > S L + 0016220 1 \r \t d e s t S t r > > C H ^ s 0016240 t r L = c h a r \r \t d e s t 0016260 S t r > > S L = s t r L \r \t 0016300 r e s u l t i s d e s t S t r 0016320 \r \t ] \r \r a n d A p p e n d S 0016340 t r i n g ( s o u r c e S t r 0016360 , d e s t S t r ) = v a l 0016400 o f \r \t [ \r \t l e t s t r L S 0016420 , s t r L D = s o u r c e 0016440 S t r > > S L , d e s t S t r 0016460 > > S L \r \t f o r i = 1 0016500 t o s t r L S 376 001 \0 035 327 d o 0016520 d e s t S t r > > C H ^ ( s t 0016540 r L D + i ) = s o u r c 0016560 e S t r > > C H ^ i \r \t d e s t 0016600 S t r > > S L = s t r L D 0016620 + s t r L S \r \t r e s u l t i 0016640 s d e s t S t r \r \t ] \r \r a n 0016660 d A p p e n d N u m ( n u m 0016700 b e r , d e s t S t r , r a 0016720 d i x ; n u m a r g s n a 0016740 ) = v a l o f \r \t [ \r \t l e 0016760 t s t r = v e c l S T R 0017000 I N G \r \t r e s u l t i s A p 0017020 p e n d S t r i n g ( V a l u 0017040 e T o S t r i n g ( n u m b e 0017060 r , s t r , ( n a e q 3 0017100 ? r a d i x , 1 0 ) 376 001 \0 0017120 251 002 ) , d e s t S t r ) \r \t ] 0017140 \r \r a n d M a k e S t r i n g 0017160 ( d e s t S t r , r a d i x 0017200 0 , v a l 0 , \r n i l , n i l 0017220 , n i l , n i l , n i l , n 0017240 i l , n i l , n i l , n i l 0017260 , n i l , n i l , n i l , n 0017300 i l , n i l , n i l , n i l , 0017320 n i l , n i l ; n u m a r 0017340 g s n a ) b e \r \t [ \r \t l e 0017360 t a r g = l v r a d i x 0017400 0 \r \t l e t s t r = v e c 0017420 l S T R I N G \r \t d e s t S t 0017440 r ! 0 = 0 \r \t f o r i = 0017460 0 t o n a - 2 b y 0017500 2 d o A p p e n d S t r i n 0017520 g 376 001 \0 U P ( V a l u e T o S 0017540 t r i n g ( a r g ! ( i + 1 ) 0017560 , s t r , a r g ! i ) , d 0017600 e s t S t r ) \r \t ] \r \r a n d 0017620 I m b e d C h a r ( c h a r , 0017640 d e s t S t r , i n d e x ; 0017660 n u m a r g s n a ) = 0017700 v a l o f \r \t [ \r \t l e t s t 0017720 r L = d e s t S t r > > S L 0017740 \r \t i f n a l s 3 d o 0017760 i n d e x = s t r L + 1 0020000 \r \t f o r i = s t r L t 0020020 o i n d e x b y - 1 d o 0020040 d e s t S t r > > C H ^ ( i 0020060 + 1 ) = d e s t S t r > > 0020100 C H ^ i \r \t d e s t S t r > > C 0020120 H ^ i n d e x 376 001 \0 J 205 = c 0020140 h a r \r \t d e s t S t r > > S L 0020160 = s t r L + 1 \r \t r e s 0020200 u l t i s d e s t S t r \r \t ] 0020220 \r \r a n d E x t r a c t S t r 0020240 i n g ( s o u r c e S t r , 0020260 d e s t S t r , b I n d e x , 0020300 e I n d e x ; n u m a r g 0020320 s n a ) = v a l o f \r \t [ 0020340 \r \t l e t l e n g t h = s 0020360 o u r c e S t r > > S L - b 0020400 I n d e x \r \t i f n a e q 0020420 4 d o [ l e t x = e 0020440 I n d e x - b I n d e x - 0020460 1 ; i f x l s l e n 0020500 g t h d o l e n g t h = 0020520 x ] \r \t f o r i = 376 001 \0 307 0020540 270 1 t o l e n g t h d o 0020560 d e s t S t r > > C H ^ i = 0020600 s o u r c e S t r > > C H ^ ( 0020620 b I n d e x + i ) \r \t d e s 0020640 t S t r > > S L = l e n g t 0020660 h g r 0 ? l e n g t h , 0020700 0 \r \t r e s u l t i s d e s 0020720 t S t r \r \t ] \r \r a n d S e a 0020740 r c h C h a r ( s t r , c h 0020760 a r , i n d e x ; n u m a 0021000 r g s n a ) = v a l o f \r 0021020 \t [ \r \t f o r i d x = ( n 0021040 a e q 3 ? i n d e x + 0021060 1 , 1 ) t o s t r > > S 0021100 L d o \r \t \t i f s t r > > C 0021120 H ^ i d x e q c h a r d o 0021140 376 001 \0 032 317 r e s u l t i s i 0021160 d x \r \t r e s u l t i s 0 \r \t 0021200 ] \r \r a n d S e a r c h S t r 0021220 i n g ( s t r 1 , s t r 2 , 0021240 i n d e x , s w ; n u m 0021260 a r g s n a ) = v a l o f 0021300 \r \t [ \r \t i f n a l s 4 0021320 d o s w = f a l s e \r \t l 0021340 e t s t r 1 L , s t r 2 L 0021360 = s t r 1 > > S L , s t r 2 0021400 > > S L \r \t f o r i d x = 0021420 ( n a g e 3 ? i n d e x 0021440 , 0 ) t o s t r 1 L - 0021460 s t r 2 L d o \r \t \t [ \r \t \t l 0021500 e t s t r E q = t r u e \r 0021520 \t \t f o r j = 1 t o s 0021540 t r 2 L d 376 001 \0 \a 017 o \r \t \t \t 0021560 [ \r \t \t \t l e t c 1 , c 2 0021600 = s t r 1 > > C H ^ ( i d x 0021620 + j ) , s t r 2 > > C H ^ j 0021640 \r \t \t \t u n l e s s s w d o 0021660 \r \t \t \t \t [ \r \t \t \t \t i f $ a 0021700 l e c 1 & c 1 l e $ 0021720 z d o c 1 = c 1 - # 0021740 4 0 \r \t \t \t \t i f $ a l e 0021760 c 2 & c 2 l e $ z d o 0022000 c 2 = c 2 - # 4 0 \r \t 0022020 \t \t \t ] \r \t \t \t i f c 1 n e 0022040 c 2 d o [ s t r E q = 0022060 f a l s e ; b r e a k ] 0022100 \r \t \t \t ] \r \t \t i f s t r E q 0022120 d o r e s u l t i s i d x 0022140 + s t r 2 L \r \t \t 376 001 \0 317 021 0022160 ] \r \t r e s u l t i s 0 \r \t ] 0022200 \r \r a n d S t r i n g E q u a 0022220 l ( s t r 1 , s t r 2 , s 0022240 w ; n u m a r g s n a ) 0022260 = v a l o f \r \t [ \r \t l e t 0022300 s l = s t r 1 > > S L \r \t i 0022320 f s l n e s t r 2 > > S L 0022340 d o r e s u l t i s f a l 0022360 s e \r \t i f n a l s 3 d 0022400 o s w = f a l s e \r \t f o 0022420 r i = 1 t o s l d o 0022440 \r \t \t [ \t l e t c 1 , c 2 0022460 = s t r 1 > > C H ^ i , s t 0022500 r 2 > > C H ^ i \r \t \t \t u n l e 0022520 s s s w d o \r \t \t \t \t [ \r \t 0022540 \t \t \t i f $ a l e c 1 & 0022560 376 001 \0 + h c 1 l e $ z d 0022600 o c 1 = c 1 - # 4 0 \r 0022620 \t \t \t \t i f $ a l e c 2 0022640 & c 2 l e $ z d o c 2 0022660 = c 2 - # 4 0 \r \t \t \t \t 0022700 ] \r \t \t \t i f c 1 n e c 2 0022720 d o r e s u l t i s f a l 0022740 s e \r \t \t ] \r \t r e s u l t i s 0022760 t r u e \r \t ] \r \r a n d S t 0023000 r i n g T o V a l u e ( s o u 0023020 r c e S t r , r a d i x , p 0023040 o i n t e r ; n u m a r g s 0023060 n a ) = v a l o f \r \t [ \r 0023100 \t i f n a l s 2 d o r 0023120 a d i x = 1 0 \r \t l e t s 0023140 t r L = s o u r c e S t r > 0023160 > S L \r \t 376 001 \0 275 003 l e t s t 0023200 r 1 c = ( s t r L e q 0 0023220 ? ( n a e q 3 ? p o 0023240 i n t e r , 0 ) , s o u r c 0023260 e S t r > > C H ^ 1 ) \r \t s w i 0023300 t c h o n r a d i x i n t o 0023320 \r \t \t [ \r \t \t c a s e r a d i 0023340 x F i l e N a m e : \r \t \t \t f o 0023360 r i = 1 t o s t r L 0023400 d o \r \t \t \t \t [ \r \t \t \t \t l e t 0023420 c = s o u r c e S t r > > 0023440 C H ^ i \r \t \t \t \t u n l e s s 0023460 ( $ a l e c & c l e 0023500 $ z ) % ( $ A l e c & 0023520 c l e $ Z ) % ( $ 0 0023540 l e c & c l e $ 9 ) 0023560 % \r \t \t \t \t c e 376 001 \0 B 333 q 0023600 $ . % c e q $ ! % 0023620 c e q $ $ % c e q $ 0023640 + % c e q $ - d o \r \t 0023660 \t \t \t \t S t r T o V a l E r r 0023700 ( s o u r c e S t r , c , r 0023720 a d i x ) \r \t \t \t \t ] \r \t \t \t / 0023740 / n o e n d c a s e \r \t \t c 0023760 a s e r a d i x S t r i n g : 0024000 \r \t \t \t [ M o v e B l o c k 0024020 ( p o i n t e r , s o u r c e 0024040 S t r , ( s o u r c e S t r > 0024060 > S L r s h i f t 1 ) + 0024100 1 ) ; r e s u l t i s p o i 0024120 n t e r ] \r \t \t c a s e r a 0024140 d i x S w i t c h : \t r e s u l 0024160 t i s s t r 1 c e q $ Y 376 0024200 001 \0 % 355 % s t r 1 c e q 0024220 $ y % s t r 1 c e q $ T 0024240 % s t r 1 c e q $ t \r \t 0024260 \t c a s e r a d i x C h a r S 0024300 t r : \t r e s u l t i s s t r 0024320 1 c \r \t \t c a s e r a d i x C 0024340 h a r C o d e : \r \t \t \t [ \r \t \t 0024360 \t i f s t r 1 c e q $ * * 0024400 d o [ s o u r c e S t r > 0024420 > C H ^ 1 = $ 0 ; r e s 0024440 u l t i s S t r i n g T o V a 0024460 l u e ( s o u r c e S t r , 0024500 8 ) ] \r \t \t \t r e s u l t i s 0024520 s t r 1 c \r \t \t \t ] \r / / F L 0024540 O A T \t \t c a s e r a d i x F 0024560 l o a t S : \r / / F L O A T \t \t 0024600 c a s e 376 001 \0 254 4 r a d i x F 0024620 l o a t : \r / / F L O A T \t \t \t 0024640 [ \r / / F L O A T \t \t \t i f S 0024660 t r T o F P N u m e q 0 d 0024700 o C a l l S w a t ( " S t r 0024720 T o F P N u m n o t l o a d 0024740 e d " ) \r / / F L O A T \t \t \t r 0024760 e s u l t i s S t r T o F P N 0025000 u m ( s o u r c e S t r , p 0025020 o i n t e r ) \r / / F L O A T \t 0025040 \t \t ] \r \t \t d e f a u l t : \r \t 0025060 \t \t [ \r \t \t \t l e t n = s 0025100 t r L e q 0 ? s t r 1 c 0025120 , 0 \r \t \t \t i f s t r 1 c 0025140 e q $ - d o s o u r c e S 0025160 t r > > C H ^ 1 = $ 0 \r \t \t 0025200 \t f o r i = 376 001 \0 316 317 1 0025220 t o s t r L d o \r \t \t \t \t [ 0025240 \r \t \t \t \t l e t x = s o u 0025260 r c e S t r > > C H ^ i - $ 0025300 0 \r \t \t \t \t u n l e s s ( 0 0025320 l e x & x l e r a d i 0025340 x - 1 ) d o S t r T o V 0025360 a l E r r ( s o u r c e S t r 0025400 , x + $ 0 , r a d i x ) 0025420 \r \t \t \t \t n = n * r a d i x 0025440 + x \r \t \t \t \t ] \r \t \t \t r e 0025460 s u l t i s s t r 1 c e q 0025500 $ - ? - n , n \r \t \t \t ] \r 0025520 \t \t ] \r \t ] \r \r a n d S t r T 0025540 o V a l E r r ( s t r , c h 0025560 a r , r a d i x ) b e C a 0025600 l l S w a t ( " S t r i n 376 001 0025620 \0 316 252 g T o V a l u e e r r o 0025640 r i n : " , s t r ) \r \r a 0025660 n d V a l u e T o S t r i n g 0025700 ( v a l u e , d e s t S t r 0025720 , r a d i x ; n u m a r g 0025740 s n a ) = v a l o f \r \t [ 0025760 \r \t i f n a l s 3 d o 0026000 r a d i x = 1 0 \r \t d e s t 0026020 S t r ! 0 = 0 \r \t s w i t c 0026040 h o n r a d i x i n t o \r \t 0026060 \t [ \r \t \t c a s e r a d i x F 0026100 l o a t S : \r \t \t c a s e r a 0026120 d i x F i l e N a m e : \r \t \t c 0026140 a s e r a d i x S t r i n g : 0026160 \t r e s u l t i s C o p y S t 0026200 r i n g ( v a l u e , d e s 0026220 t S t 376 001 \0 # & r ) \r \t \t c a s 0026240 e r a d i x S w i t c h : \t r 0026260 e s u l t i s A p p e n d C h 0026300 a r ( ( v a l u e ? $ Y , 0026320 $ N ) , d e s t S t r ) \r \t 0026340 \t c a s e r a d i x C h a r S 0026360 t r : \t r e s u l t i s A p p 0026400 e n d C h a r ( v a l u e , 0026420 d e s t S t r ) \r \t \t c a s e 0026440 r a d i x C h a r C o d e : \r \t 0026460 \t \t [ \r \t \t \t i f v a l u e 0026500 l e c n t r l Z d o [ A 0026520 p p e n d C h a r ( $ ^ , d 0026540 e s t S t r ) ; v a l u e 0026560 = v a l u e + # 1 0 0 ] 0026600 \r \t \t \t r e s u l t i s A p p 0026620 e n d C h a r 376 001 \0 - H ( v a 0026640 l u e , d e s t S t r ) \r \t \t 0026660 \t ] \r / / F L O A T \t \t c a s e 0026700 r a d i x F l o a t : \r / / F 0026720 L O A T \t \t \t [ \r / / F L O A T 0026740 \t \t \t i f F P N u m T o S t r 0026760 e q 0 d o C a l l S w a 0027000 t ( " F P N u m T o S t r n 0027020 o t l o a d e d " ) \r / / F L 0027040 O A T \t \t \t r e s u l t i s F 0027060 P N u m T o S t r ( v a l u e 0027100 , d e s t S t r ) \r / / F L O 0027120 A T \t \t \t ] \r \t \t c a s e 2 : 0027140 \r \t \t \t [ \r \t \t \t f o r c o l 0027160 = 1 t o 1 6 d o A p 0027200 p e n d C h a r ( $ 0 + ( 0027220 v a l u e r s h i f t 376 001 \0 0027240 344 354 ( 1 6 - c o l ) ) < < O 0027260 D D , d e s t S t r ) \r \t \t \t 0027300 e n d c a s e \r \t \t \t ] \r \t \t c 0027320 a s e 8 : \r \t \t \t [ \r \t \t \t l 0027340 e t z e r o = t r u e \r \t 0027360 \t \t f o r i = 0 t o 1 0027400 6 / 3 d o \r \t \t \t \t [ \r \t \t \t 0027420 \t l e t v = ( v a l u e 0027440 r s h i f t 3 * ( 1 6 / 3 - 0027460 i ) ) & # 7 \r \t \t \t \t i f 0027500 v e q 0 & z e r o l 0027520 o o p \r \t \t \t \t A p p e n d C h 0027540 a r ( $ 0 + v , d e s t 0027560 S t r ) \r \t \t \t \t z e r o = 0027600 f a l s e \r \t \t \t \t ] \r \t \t \t i 0027620 f z e r o d o d e s t S t 0027640 r ! 376 001 \0 u j 0 = 1 b 8 + 0027660 $ 0 \r \t \t \t e n d c a s e \r \t 0027700 \t \t ] \r \t \t c a s e 1 6 : \r \t 0027720 \t \t [ \r \t \t \t f o r c o l = 0027740 1 t o 4 d o \r \t \t \t \t [ 0027760 \t l e t v = ( v a l u e 0030000 r s h i f t 4 * ( 4 - c o 0030020 l ) ) & # 1 7 \r \t \t \t \t \t A 0030040 p p e n d C h a r ( ( v l e 0030060 9 ? ( $ 0 + v ) , ( 0030100 $ A + ( v - 1 0 ) ) ) , 0030120 d e s t S t r ) \r \t \t \t \t ] \r 0030140 \t \t \t e n d c a s e \r \t \t \t ] \r 0030160 \t \t d e f a u l t : \r \t \t \t [ \r 0030200 \t \t \t l e t m i n = v a l 0030220 u e l s 0 \r \t \t \t i f m i 0030240 n d o v a 376 \0 275 * 376 l u e 0030260 = - v a l u e \r \t \t \t [ \t I m 0030300 b e d C h a r ( ( v a l u e 0030320 r e m r a d i x ) + $ 0 , 0030340 d e s t S t r , 1 ) \r \t \t \t 0030360 \t v a l u e = v a l u e / r 0030400 a d i x \r \t \t \t ] r e p e a t 0030420 u n t i l v a l u e e q 0 0030440 \r \t \t \t i f m i n d o I m 0030460 b e d C h a r ( $ - , d e s 0030500 t S t r , 1 ) \r \t \t \t ] \r \t \t 0030520 ] \r \t r e s u l t i s d e s t 0030540 S t r \r \t ] \r \r \0 377 \0 \0 L O A D 0030560 T O T E L E . C M \0 376 \0 034 G B B 0030600 L D R / L / V T O T E L E N E 0030620 T U T I L S T R \r \r 374 0030634