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