$ od -c -N 50000 [eris]<LispCore>Morgue>Lyric>FASL!3 0000000 ( D E F I N E - F I L E - I N F 0000020 O 247 R E A D T A B L E " X C 0000040 L " 247 P A C K A G E " F A S 0000060 L " ) \r 006 001 ( i l : f i l e c r 0000100 e a t e d " 2 1 - N o v - 8 6 0000120 1 6 : 1 9 : 4 3 " 006 004 i l : 0000140 { e r i s } < l i s p c o r e > 0000160 s o u r c e s > f a s l . \ ; 1 0000200 9 006 001 5 8 4 2 0 \r \r 0000220 i l : | c h a n g e s | 0000240 i l : | t o : | ( f a s l - 0000260 o p s f a s l - s y m b o l - 0000300 i n - p a c k a g e ) \r 0000320 0000340 ( i l : v a r 0000360 s i l : f a s l c o m s ) \r 0000400 0000420 ( i l : 0000440 f u n c t i o n s d u m p - s 0000460 y m b o l ) \r \r i l 0000500 : | p r e v i o u s | i l : | 0000520 d a t e : | " 1 5 - N o v - 8 0000540 6 1 9 : 5 7 : 2 6 " i l : { 0000560 e r i s } < l i s p c o r e > s 0000600 o u r c e s > f a s l . \ ; 1 8 0000620 ) \r \r \r ; C o p y r i g h t 0000640 ( c ) 1 9 8 6 b y X e r o 0000660 x C o r p o r a t i o n . 0000700 A l l r i g h t s r e s e r 0000720 v e d . \r \r ( i l : p r e t t y 0000740 c o m p r i n t i l : f a s l 0000760 c o m s ) \r \r ( i l : r p a q q 0001000 006 002 i l : f a s l c o m s 006 001 0001020 \r ( ( i l 0001040 : c o m s ( i l : * i l : | 0001060 ; ; ; | " C o m m o n d e f 0001100 i n i t i o n s . " ) \r 0001120 ( i 0001140 l : d e c l a r e \ : i l : e 0001160 v a l @ c o m p i l e i l : e 0001200 v a l @ l o a d i l : d o n t 0001220 c o p y ( i l : f i l e s ( 0001240 i l : l o a d c o m p ) \r 0001260 * 0001360 i l : 0001400 l l c h a r ) ) \r 0001420 ( i l : s 0001440 t r u c t u r e s f a s l - e 0001460 r r o r u n i m p l e m e n t 0001500 e d - o p c o d e o b j e c t 0001520 - n o t - d u m p a b l e \r 0001540 0001560 u n e x p e c t 0001600 e d - e n d - o f - b l o c k 0001620 i n c o n s i s t e n t - t a b 0001640 l e ) \r 0001660 ( i l : v a r i a b 0001700 l e s s i g n a t u r e ) \r 0001720 0001740 ( i l : v a r i a b l e s c 0001760 h e c k - t a b l e - s i z e 0002000 f a s l - e x t e n d e d e n 0002020 d - m a r k v e r s i o n - r 0002040 a n g e c u r r e n t - v e r 0002060 s i o n \r 0002100 ) \r 0002120 0002140 ( i l : f u n c t i o n s 0002160 t a b l e - s t a t s ) ) \r 0002200 ( i l : c o m 0002220 s ( i l : * i l : | ; ; ; | 0002240 " D u m p e r . " ) \r 0002260 ( i 0002300 l : s t r u c t u r e s h a n 0002320 d l e ) \r 0002340 ( i l : v a r i a 0002360 b l e s d u m m y - h a n d l 0002400 e ) \r 0002420 ( i l : v a r i a b l 0002440 e s + s m a l l e s t - f o u 0002460 r - b y t e - i n t e g e r + 0002500 + l a r g e s t - f o u r - b y 0002520 t e - i n t e g e r + ) \r 0002540 ( 0002560 i l : v a r i a b l e s * g a 0002600 t h e r - d u m p e r - s t a t 0002620 s * * t a b l e - a t t e m p 0002640 t s * * t a b l e - h i t s * 0002660 ) \r 0002700 ( i l : f u n c t i o n 0002720 s r e s e t - d u m p e r - s 0002740 t a t s ) \r 0002760 ( i l : f u n c 0003000 t i o n s d o t t e d - l i s 0003020 t - l e n g t h s t a t e - c 0003040 a s e f a t - s t r i n g - p 0003060 r e m e m b e r \r 0003100 0003120 e l e m e n t s - i d e 0003140 n t i c a l - p e n d - b l o 0003160 c k e n d - t e x t w r i t 0003200 e - o p l o o k u p - v a l u 0003220 e s a v e - v a l u e ) \r 0003240 0003260 ( i l : f u n c t i o n s d u 0003300 m p - v a l u e - f e t c h d 0003320 u m p - c h a r a c t e r d u 0003340 m p - s y m b o l d u m p - l 0003360 i s t \r 0003400 d u 0003420 m p - s i m p l e - v e c t o r 0003440 d u m p - a r r a y - d e s c 0003460 r i p t o r d u m p - b i t - 0003500 a r r a y d u m p - g e n e r 0003520 a l - a r r a y \r 0003540 0003560 d u m p - a r r a y w r 0003600 i t e - i n t e g e r - b y t e 0003620 s i n t e g e r - b y t e - l 0003640 i s t d u m p - r a t i o n a 0003660 l d u m p - c o m p l e x \r 0003700 0003720 d u m p - i n 0003740 t e g e r d u m p - p a c k a 0003760 g e d u m p - d c o d e d u 0004000 m p - s t r i n g d u m p - f 0004020 l o a t 3 2 ) \r 0004040 ( i l : f u 0004060 n c t i o n s o p e n - f a s 0004100 l - h a n d l e w i t h - o p 0004120 e n - h a n d l e b e g i n - 0004140 t e x t b e g i n - b l o c k 0004160 \r 0004200 v a l u e 0004220 - d u m p a b l e - p d u m p 0004240 - v a l u e d u m p - f u n c 0004260 t i o n - d e f d u m p - f u 0004300 n c a l l d u m p - e v a l 0004320 \r 0004340 c l o s e - 0004360 f a s l - h a n d l e ) ) \r 0004400 ( i l : c o m 0004420 s ( i l : * i l : | ; ; ; | 0004440 " R e a d e r . " ) \r 0004460 ( i 0004500 l : d e f i n e - t y p e s f 0004520 a s l - o p s ) \r 0004540 ( i l : s 0004560 t r u c t u r e s o p t a b l 0004600 e ) \r 0004620 ( i l : f u n c t i o 0004640 n s m a k e - o p t a b l e 0004660 f a s l - e n d - o f - b l o c 0004700 k d e f o p d e f r a n g e 0004720 a d d - o p - t r a n s l a t 0004740 i o n \r 0004760 o p 0005000 c o d e - s e q u e n c e f a 0005020 s l - e x t e n d e d s e t e 0005040 s c a p e u n i m p l e m e n 0005060 t e d - o p c o d e ) \r 0005100 ( i 0005120 l : v a r i a b l e s * d e f 0005140 a u l t - o p t a b l e * * c 0005160 u r r e n t - o p t a b l e * 0005200 i n i t i a l - v a l u e - t a 0005220 b l e - s i z e \r 0005240 0005260 v a l u e - t a b l e - i 0005300 n c r e m e n t * v a l u e - 0005320 t a b l e * * b l o c k - l e 0005340 v e l * d e b u g - r e a d e 0005360 r d e b u g - s t r e a m ) \r 0005400 0005420 ( i l : f u n c t i o n s 0005440 w i t h - o p t a b l e p r o 0005460 c e s s - f i l e c h e c k - 0005500 v e r s i o n p r o c e s s - 0005520 s e g m e n t r e a d - t e x 0005540 t \r 0005560 p r o c 0005600 e s s - b l o c k s k i p - t 0005620 e x t n e x t - v a l u e d 0005640 o - o p n e w - v a l u e - t 0005660 a b l e c l e a r - t a b l e 0005700 \r 0005720 s t o r e 0005740 - v a l u e f e t c h - v a l 0005760 u e c o l l e c t - l i s t ) 0006000 \r 0006020 ( f a s l - o p s f a s 0006040 l - s h o r t - i n t e g e r 0006060 f a s l - n i l f a s l - t 0006100 f a s l - i n t e g e r f a s 0006120 l - l a r g e - i n t e g e r 0006140 \r 0006160 f a s l - r 0006200 a t i o f a s l - c o m p l e 0006220 x f a s l - v e c t o r f a 0006240 s l - c r e a t e - a r r a y 0006260 f a s l - i n i t i a l i z e - 0006300 a r r a y \r 0006320 0006340 f a s l - i n i t i a l i z e - 0006360 b i t - a r r a y f a s l - t 0006400 h i n - s t r i n g f a s l - 0006420 f a t - s t r i n g f a s l - 0006440 c h a r a c t e r \r 0006460 0006500 f a s l - l i s p - s y 0006520 m b o l f a s l - k e y w o r 0006540 d - s y m b o l f a s l - f i 0006560 n d - p a c k a g e \r 0006600 0006620 f a s l - s y m b o l 0006640 - i n - p a c k a g e f a s l 0006660 - l i s t f a s l - l i s t * 0006700 f a s l - i n t e r l i s p - 0006720 s y m b o l f a s l - d c o d 0006740 e \r 0006760 f a s l 0007000 - t a b l e - s t o r e f a s 0007020 l - t a b l e - f e t c h f a 0007040 s l - v e r i f y - t a b l e - 0007060 s i z e f a s l - e v a l \r 0007100 0007120 f a s l - f l 0007140 o a t 3 2 f a s l - s e t f - 0007160 s y m b o l - f u n c t i o n 0007200 f a s l - f u n c a l l ) ) \r 0007220 ( i l : * 0007240 i l : | ; ; | " A r r a n g e 0007260 f o r t h e c o r r e c t 0007300 c o m p i l e r t o b e 0007320 u s e d " ) \r 0007340 ( i l : p r o p i l : f i 0007360 l e t y p e i l : f a s l ) \r 0007400 ( i l : * 0007420 i l : | ; ; | " A r r a n g 0007440 e f o r t h e p r o p e r 0007460 m a k e f i l e e n v i r o 0007500 n m e n t " ) \r 0007520 ( i l : p r o p i l : m 0007540 a k e f i l e - e n v i r o n m 0007560 e n t i l : f a s l ) ) ) \r \r 0007600 \r \r 006 004 ( i l : * i l : | ; ; 0007620 ; | " C o m m o n d e f i n 0007640 i t i o n s . " ) 006 001 \r \r ( i l 0007660 : d e c l a r e \ : i l : e v 0007700 a l @ c o m p i l e i l : e v 0007720 a l @ l o a d i l : d o n t c 0007740 o p y \r ( i l : f i l e s l o 0007760 a d ( i l : l o a d c o m p ) 0010000 \r i l : l l c h a 0010020 r ) \r ) \r \r ( x c l : d e f i n 0010040 e - c o n d i t i o n 006 002 f a 0010060 s l - e r r o r 006 001 e r r o r 0010100 ) \r \r \r ( x c l : d e f i n e - 0010120 c o n d i t i o n 006 002 u n i m 0010140 p l e m e n t e d - o p c o d e 0010160 006 001 f a s l - e r r o r : r 0010200 e p o r t ( f o r m a t t 0010220 " U n i m p l e m e n t e d F 0010240 A S L o p : ~ S " \r 0010260 * 0010360 o p n a m e ) \r 0010400 * 0010440 o p n a m 0010460 e ) \r \r \r ( x c l : d e f i n e 0010500 - c o n d i t i o n 006 002 o b j 0010520 e c t - n o t - d u m p a b l e 0010540 006 001 f a s l - e r r o r : r 0010560 e p o r t ( f o r m a t t 0010600 " O b j e c t n o t d u m p 0010620 a b l e : ~ & ~ S " \r 0010640 * 0010740 o b j e c t ) \r 0010760 * 0011020 o b j e c t ) \r 0011040 \r \r ( x c l : d e f i n e - c o 0011060 n d i t i o n 006 002 u n e x p e 0011100 c t e d - e n d - o f - b l o c 0011120 k 006 001 f a s l - e r r o r : 0011140 r e p o r t ( f o r m a t t 0011160 \r 0011200 * 0011260 " U n e x p e c t e d F A 0011300 S L - E N D - O F - B L O C K 0011320 a t ~ D . " \r 0011340 * 0011440 ( i l : g e t f i l e p t r s 0011460 t r e a m ) ) \r 0011500 * 0011540 s t r e 0011560 a m ) \r \r \r ( x c l : d e f i n 0011600 e - c o n d i t i o n 006 002 i n 0011620 c o n s i s t e n t - t a b l e 0011640 006 001 f a s l - e r r o r : r 0011660 e p o r t ( f o r m a t t 0011700 \r 0011720 0011740 " I n c 0011760 o n s i s t e n t F A S L t 0012000 a b l e s i z e . ~ & E x p e 0012020 c t e d ~ D b u t f o u n 0012040 d ~ D . " \r 0012060 * 0012140 e x p e c 0012160 t e d ( l e n g t h ( o p t 0012200 a b l e - v e c t o r \r 0012220 * 0012340 t a b l e ) ) ) \r 0012360 * 0012420 t a b l e e 0012440 x p e c t e d ) \r \r \r ( d e f c 0012460 o n s t a n t 006 002 s i g n a t 0012500 u r e 006 001 1 4 5 " F i r s t 0012520 b y t e o f a F A S L 0012540 f i l e . " ) \r \r \r ( d e f v a 0012560 r 006 002 c h e c k - t a b l e - 0012600 s i z e 006 001 t ) \r \r \r ( d e f 0012620 c o n s t a n t 006 002 f a s l - 0012640 e x t e n d e d 006 001 2 5 4 ) \r 0012660 \r \r ( d e f c o n s t a n t 006 0012700 002 e n d - m a r k 006 001 2 5 5 ) 0012720 \r \r \r ( d e f c o n s t a n t 0012740 006 002 v e r s i o n - r a n g e 006 0012760 001 ' ( 2 . 3 ) " H a n d 0013000 l e s ( c a r v e r s i o n 0013020 - r a n g e ) < = v e r s i 0013040 o n < = ( c d r v e r s i 0013060 o n - r a n g e ) " \r ) \r 0013100 \r \r ( d e f c o n s t a n t 006 0013120 002 c u r r e n t - v e r s i o n 0013140 006 001 3 ) \r \r \r ( d e f u n 006 0013160 002 t a b l e - s t a t s 006 001 ( 0013200 t a b l e ) ( l e t ( ( i t 0013220 e m s ( l i s t ( c o n s 0013240 ' - - t o t a l - - ( l e n g 0013260 t h t a b l e ) ) ) ) ) \r 0013300 0013320 ( d 0013340 o t i m e s ( i ( l e n g t 0013360 h t a b l e ) \r 0013400 * 0013440 i t e m s ) \r 0013460 * 0013520 ( l e t * ( ( t y p e 0013540 ( t y p e - o f ( a r e f t 0013560 a b l e i ) ) ) \r 0013600 * 0013640 ( p a i r ( o 0013660 r ( f i n d t y p e i t e 0013700 m s : t e s t ' e q u a l 0013720 : k e y \r 0013740 * 0014020 ' c a r ) \r 0014040 * 0014120 ( c a r ( p u s h ( c o n 0014140 s t y p e 0 ) \r 0014160 * 0014240 i t e 0014260 m s ) ) ) ) ) \r 0014300 * 0014340 ( i n c f ( c d r 0014360 p a i r ) ) ) ) ) ) \r \r \r \r \r 006 0014400 004 ( i l : * i l : | ; ; ; | 0014420 " D u m p e r . " ) 006 001 \r \r \r ( 0014440 d e f s t r u c t ( 006 002 h a n 0014460 d l e 006 001 ( : c o n s t r u c 0014500 t o r m a k e - h a n d l e ) 0014520 ) s t r e a m ( s t a t e 0014540 : b l o c k - e n d ) \r 0014560 * 0014640 ( l a s t - i n d e x 0 ) \r 0014660 * 0014740 ( h a s h ( m a k e 0014760 - h a s h - t a b l e : t e s 0015000 t # ' e q ) ) ) \r \r \r ( d e f 0015020 c o n s t a n t 006 002 d u m m y 0015040 - h a n d l e 006 001 ( m a k e - 0015060 h a n d l e : s t r e a m ( 0015100 o p e n " { n u l l } " : d 0015120 i r e c t i o n : o u t p u t 0015140 ) \r 0015160 0015200 : s t a t e : b l o c k 0015220 : h a s h n i l ) ) \r \r \r 0015240 ( d e f c o n s t a n t 006 002 + 0015260 s m a l l e s t - f o u r - b y 0015300 t e - i n t e g e r + 006 001 ( - 0015320 ( e x p t 2 3 1 ) ) ) \r 0015340 \r \r ( d e f c o n s t a n t 006 0015360 002 + l a r g e s t - f o u r - b 0015400 y t e - i n t e g e r + 006 001 ( 0015420 1 - ( e x p t 2 3 1 ) ) 0015440 ) \r \r \r ( d e f v a r 006 002 * g 0015460 a t h e r - d u m p e r - s t a 0015500 t s * 006 001 n i l ) \r \r \r ( d e 0015520 f v a r 006 002 * t a b l e - a t 0015540 t e m p t s * 006 001 0 " N u m 0015560 b e r o f t a b l e l o o 0015600 k u p s b y t h e F A S L 0015620 d u m p e r . " ) \r \r \r ( d e 0015640 f v a r 006 002 * t a b l e - h i 0015660 t s * 006 001 0 " N u m b e r 0015700 o f s u c c e s s f u l t a 0015720 b l e l o o k u p s b y t 0015740 h e F A S L d u m p e r . " 0015760 ) \r \r \r ( d e f u n 006 002 r e s 0016000 e t - d u m p e r - s t a t s 006 0016020 001 n i l ( s e t q * t a b 0016040 l e - a t t e m p t s * 0 * 0016060 t a b l e - h i t s * 0 ) ) \r 0016100 \r \r ( d e f u n 006 002 d o t t e 0016120 d - l i s t - l e n g t h 006 001 0016140 ( x ) ( d o ( ( n 0 ( + 0016160 n 2 ) ) \r 0016200 0016220 ( f a s t 0016240 x ( c d d r f a s t ) ) \r 0016260 * 0016320 ( s l o w x ( c d r s 0016340 l o w ) ) ) \r 0016360 0016400 ( n i l ) \r 0016420 * 0016460 ( c o n d \r 0016500 0016520 ( ( n u 0016540 l l f a s t ) \r 0016560 0016600 ( 0016620 r e t u r n n ) ) \r 0016640 * 0016700 ( ( a t o m f a s t ) \r 0016720 * 0016760 ( r e t u r n ( v a l u 0017000 e s n t ) ) ) \r 0017020 0017040 ( 0017060 ( n u l l ( c d r f a s t ) 0017100 ) \r 0017120 0017140 ( r e t u r n 0017160 ( 1 + n ) ) ) \r 0017200 0017220 ( ( 0017240 a t o m ( c d r f a s t ) ) 0017260 \r 0017300 0017320 ( r e t u r n ( 0017340 v a l u e s ( 1 + n ) \r 0017360 * 0017440 t ) ) ) \r 0017460 0017500 ( ( a 0017520 n d ( e q f a s t s l o w 0017540 ) \r 0017560 0017600 ( > 0017620 n 0 ) ) \r 0017640 0017660 ( r e t 0017700 u r n n i l ) ) ) ) ) \r \r \r ( 0017720 d e f m a c r o 006 002 s t a t e 0017740 - c a s e 006 001 ( & r e s t c 0017760 l a u s e s ) ` ( e c a s e 0020000 ( h a n d l e - s t a t e h a 0020020 n d l e ) \r 0020040 * 0020100 , @ c l a u s e s ) ) \r \r 0020120 \r ( d e f u n 006 002 f a t - s t 0020140 r i n g - p 006 001 ( s t r i n g 0020160 ) ( c o n d \r 0020200 0020220 ( ( i l : s t r 0020240 i n g p s t r i n g ) \r 0020260 0020300 ( e 0020320 q ( 006 002 i l : f e t c h 006 001 0020340 ( i l : s t r i n g p i l : t 0020360 y p ) 006 002 i l : o f 006 001 s t 0020400 r i n g ) \r 0020420 0020440 i l : \ \ 0020460 s t . p o s 1 6 ) ) \r 0020500 0020520 ( t ( i 0020540 l : % f a t - s t r i n g - a r 0020560 r a y - p s t r i n g ) ) ) ) 0020600 \r \r \r ( d e f m a c r o 006 002 r 0020620 e m e m b e r 006 001 ( v a l u e 0020640 & b o d y b o d y ) ( l e 0020660 t ( ( r e m e m b e r - v a l 0020700 ( i l : g e n s y m ) ) ) \r 0020720 * 0020760 ` ( l e t 0021000 ( ( , r e m e m b e r - v a l 0021020 , v a l u e ) ) \r 0021040 * 0021100 ( w h e n 0021120 r e m e m b e r ( w r i t e - 0021140 o p h a n d l e ' f a s l - 0021160 t a b l e - s t o r e ) ) \r 0021200 * 0021240 , 0021260 @ b o d y \r 0021300 * 0021340 ( w h e n r e m 0021360 e m b e r ( s a v e - v a l u 0021400 e h a n d l e , r e m e m b 0021420 e r - v a l ) ) ) ) ) \r \r \r ( d 0021440 e f u n 006 002 e l e m e n t s - 0021460 i d e n t i c a l - p 006 001 ( a 0021500 r r a y ) ( l e t * ( ( s e 0021520 q ( i l : % f l a t t e n - a 0021540 r r a y a r r a y ) ) \r 0021560 * 0021620 ( t e s t e l t 0021640 ( a r e f s e q 0 ) ) ) \r 0021660 * 0021720 ( e v e r y 0021740 # ' ( l a m b d a ( x ) \r 0021760 * 0022040 ( e q l x 0022060 t e s t e l t ) ) s e q ) ) ) 0022100 \r \r \r ( d e f u n 006 002 e n d - 0022120 b l o c k 006 001 ( h a n d l e ) 0022140 ( s t a t e - c a s e ( : b 0022160 l o c k ( w h e n c h e c k 0022200 - t a b l e - s i z e ( w r i 0022220 t e - o p h a n d l e ' \r 0022240 * 0022340 f a s l - 0022360 v e r i f y - t a b l e - s i z 0022400 e ) \r 0022420 * 0022460 ( d u m p - v a l 0022500 u e h a n d l e ( h a n d l 0022520 e - l a s t - i n d e x h a n 0022540 d l e ) \r 0022560 * 0022640 n i l ) ) \r 0022660 * 0022720 ( i l : b o u t ( h a n 0022740 d l e - s t r e a m h a n d l 0022760 e ) \r 0023000 * 0023040 e n d - m a r k ) 0023060 \r 0023100 0023120 ( s 0023140 e t f ( h a n d l e - l a s t 0023160 - i n d e x h a n d l e ) \r 0023200 * 0023260 0 ) \r 0023300 * 0023340 ( s e t f ( h a n d l e - 0023360 h a s h h a n d l e ) \r 0023400 * 0023460 ( m a k e - h a s h - t a b l e 0023500 : t e s t # ' e q ) ) \r 0023520 * 0023560 ( s e t f 0023600 ( h a n d l e - s t a t e h 0023620 a n d l e ) \r 0023640 * 0023700 : b l o c k 0023720 - e n d ) ) ) ) \r \r \r ( d e f u 0023740 n 006 002 e n d - t e x t 006 001 ( 0023760 h a n d l e ) ( s t a t e - c 0024000 a s e ( : t e x t ( i l : b 0024020 o u t ( h a n d l e - s t r e 0024040 a m h a n d l e ) \r 0024060 * 0024120 e n 0024140 d - m a r k ) \r 0024160 * 0024220 ( s e t f ( h a n d l 0024240 e - s t a t e h a n d l e ) \r 0024260 * 0024340 : b l o c k ) ) ) ) \r \r \r ( 0024360 d e f u n 006 002 w r i t e - o p 0024400 006 001 ( h a n d l e o p n a m 0024420 e ) ( s t a t e - c a s e ( 0024440 : b l o c k ( l e t ( ( s t 0024460 r e a m ( h a n d l e - s t r 0024500 e a m h a n d l e ) ) \r 0024520 * 0024600 ( o p s e q ( o 0024620 p c o d e - s e q u e n c e o 0024640 p n a m e ) ) ) \r 0024660 * 0024740 ( i f ( n u l l o p s e 0024760 q ) \r 0025000 * 0025060 ( e r r o r ' u n i m p l e m 0025100 e n t e d - o p c o d e : o p 0025120 n a m e \r 0025140 * 0025220 o p n a m e 0025240 ) \r 0025260 * 0025320 ( 0025340 d o l i s t ( o p o p s e q 0025360 ) \r 0025400 * 0025460 ( i l : b o u t s 0025500 t r e a m o p ) ) ) ) ) ) ) \r 0025520 \r \r ( d e f u n 006 002 l o o k u 0025540 p - v a l u e 006 001 ( h a n d l 0025560 e v a l u e ) ( l e t ( ( 0025600 h a s h - t a b l e ( h a n d 0025620 l e - h a s h h a n d l e ) ) 0025640 ) \r 0025660 0025700 ( a n d h 0025720 a s h - t a b l e ( i l : g e 0025740 t h a s h v a l u e h a s h 0025760 - t a b l e ) ) ) ) \r \r \r ( d e 0026000 f u n 006 002 s a v e - v a l u e 0026020 006 001 ( h a n d l e v a l u e 0026040 ) ( l e t ( ( h a s h - t a 0026060 b l e ( h a n d l e - h a s h 0026100 h a n d l e ) ) ) \r 0026120 * 0026160 ( u n l e s s ( n u l l h 0026200 a s h - t a b l e ) \r 0026220 * 0026260 ( s e t f ( i 0026300 l : g e t h a s h v a l u e 0026320 h a s h - t a b l e ) \r 0026340 * 0026400 ( 0026420 h a n d l e - l a s t - i n d e 0026440 x h a n d l e ) ) \r 0026460 * 0026520 ( i n c f ( h 0026540 a n d l e - l a s t - i n d e x 0026560 h a n d l e ) ) ) ) ) \r \r \r ( 0026600 d e f u n 006 002 d u m p - v a l 0026620 u e - f e t c h 006 001 ( h a n d 0026640 l e i n d e x ) ( w r i t e 0026660 - o p h a n d l e ' f a s l 0026700 - t a b l e - f e t c h ) \r 0026720 * 0026760 ( d u m p - v a l u e 0027000 h a n d l e i n d e x n i 0027020 l ) ) \r \r \r ( d e f u n 006 002 d 0027040 u m p - c h a r a c t e r 006 001 0027060 ( h a n d l e c h a r r e m 0027100 e m b e r ) ( 006 002 d e c l a r 0027120 e 006 001 ( i g n o r e r e m e 0027140 m b e r ) ) \r 0027160 * 0027240 006 003 ( i l : * i l : | 0027260 ; ; | \r 006 001 0027300 * 0027360 006 003 " C h a r a c t e r 0027400 s d o n ' t g e t r e m e 0027420 m b e r e d . " ) 006 001 \r 0027440 * 0027500 ( l e t ( ( 0027520 c o d e ( c h a r - c o d e 0027540 c h a r ) ) \r 0027560 * 0027620 ( s t r e a 0027640 m ( h a n d l e - s t r e a m 0027660 h a n d l e ) ) ) \r 0027700 * 0027740 ( w r 0027760 i t e - o p h a n d l e ' f 0030000 a s l - c h a r a c t e r ) \r 0030020 * 0030100 ( i f ( < c o d e 2 5 6 0030120 ) \r 0030140 * 0030200 ( i l : b o u t 0030220 s t r e a m c o d e ) \r 0030240 * 0030320 ( p r o g n ( i l : b 0030340 o u t s t r e a m 2 5 5 ) \r 0030360 * 0030440 ( i l 0030460 : b o u t 1 6 s t r e a m c 0030500 o d e ) ) ) ) ) \r \r \r ( d e f u 0030520 n 006 002 d u m p - s y m b o l 006 0030540 001 ( h a n d l e s y m b o l 0030560 r e m e m b e r ) 0030600 006 003 ( i 0030620 l : * i l : | ; ; | \r 006 001 0030640 0030660 006 003 " N o p o i n t i n 0030700 r e m e m b e r i n g t h e 0030720 p n a m e b e c a u s e S Y 0030740 M B O L - N A M E a l w a y s 0030760 g i v e s y o u a n e w 0031000 o n e . " ) 006 001 \r ( l e 0031020 t * ( ( p n a m e ( s y m b 0031040 o l - n a m e s y m b o l ) ) 0031060 \r ( p a c k 0031100 a g e ( s y m b o l - p a c k 0031120 a g e s y m b o l ) ) \r 0031140 ( p k g - n a m e 0031160 ( a n d p a c k a g e ( p 0031200 a c k a g e - n a m e p a c k 0031220 a g e ) ) ) ) \r 0031240 ( r e m e m b e r s y m b o 0031260 l ( c o n d \r 0031300 0031320 ( ( k e y w o r d p 0031340 s y m b o l ) \r 0031360 0031400 ( w r i t e - o p 0031420 h a n d l e ' f a s l - k e y 0031440 w o r d - s y m b o l ) \r 0031460 0031500 ( d u m p 0031520 - v a l u e h a n d l e p n 0031540 a m e n i l ) ) \r 0031560 0031600 ( ( e q u a l p 0031620 k g - n a m e " L I S P " ) \r 0031640 0031660 ( w 0031700 r i t e - o p h a n d l e ' 0031720 f a s l - l i s p - s y m b o l 0031740 ) \r 0031760 0032000 ( d u m p - v a l u e h a n d 0032020 l e p n a m e n i l ) ) \r 0032040 0032060 ( ( e q 0032100 u a l p k g - n a m e " I N 0032120 T E R L I S P " ) \r 0032140 0032160 ( w r i t e - o 0032200 p h a n d l e ' f a s l - i 0032220 n t e r l i s p - s y m b o l ) 0032240 \r 0032260 ( 0032300 d u m p - v a l u e h a n d l 0032320 e p n a m e n i l ) ) \r 0032340 0032360 ( t ( w 0032400 r i t e - o p h a n d l e ' 0032420 f a s l - s y m b o l - i n - p 0032440 a c k a g e ) \r 0032460 0032500 ( d u m p - v a 0032520 l u e h a n d l e p n a m e 0032540 n i l ) \r 0032560 0032600 ( d u m p - v a l u 0032620 e h a n d l e p a c k a g e 0032640 r e m e m b e r ) ) ) ) ) ) \r 0032660 \r \r ( d e f u n 006 002 d u m p - 0032700 l i s t 006 001 ( h a n d l e l 0032720 i s t r e m e m b e r ) ( m 0032740 u l t i p l e - v a l u e - b i 0032760 n d ( l e n g t h d o t t e 0033000 d ) \r 0033020 * 0033060 ( d o t t e d - l i s t - l 0033100 e n g t h l i s t ) \r 0033120 * 0033160 ( u n l e 0033200 s s l e n g t h ( e r r o r 0033220 ' o b j e c t - n o t - d u m 0033240 p a b l e : o b j e c t \r 0033260 * 0033360 l i s t ) ) \r 0033400 * 0033440 ( r e m e m 0033460 b e r l i s t ( w r i t e - 0033500 o p h a n d l e ( i f d o 0033520 t t e d \r 0033540 * 0033640 ' f a s l - l i 0033660 s t * \r 0033700 * 0034000 ' f a s l - l i s 0034020 t ) ) \r 0034040 * 0034100 ( d u m p - 0034120 v a l u e h a n d l e ( i f 0034140 d o t t e d ( 1 + l e n g 0034160 t h ) \r 0034200 * 0034300 l e n g t h ) \r 0034320 * 0034400 n i l ) \r 0034420 * 0034500 ( d o t i m e s ( i l e n 0034520 g t h ) \r 0034540 * 0034620 ( d u m p - v a l u e h a 0034640 n d l e ( c a r l i s t ) ) 0034660 \r 0034700 * 0034740 ( p 0034760 o p l i s t ) ) \r 0035000 * 0035060 ( w h e n d o t t e d ( d u 0035100 m p - v a l u e h a n d l e 0035120 l i s t n i l ) ) ) ) ) \r \r \r 0035140 ( d e f u n 006 002 d u m p - s i 0035160 m p l e - v e c t o r 006 001 ( h 0035200 a n d l e v e c t o r r e m 0035220 e m b e r ) ( l e t ( ( l e 0035240 n g t h ( l e n g t h v e c 0035260 t o r ) ) ) \r 0035300 * 0035340 ( 0035360 r e m e m b e r v e c t o r 0035400 ( w r i t e - o p h a n d l e 0035420 \r 0035440 * 0035540 ' f a s l - v e c t o r ) \r 0035560 * 0035640 ( d 0035660 u m p - v a l u e h a n d l e 0035700 l e n g t h r e m e m b e r 0035720 ) \r 0035740 * 0036020 ( d o t i m e s ( i l e n 0036040 g t h ) \r 0036060 * 0036140 ( d u m p 0036160 - v a l u e h a n d l e \r 0036200 * 0036300 ( s v r e 0036320 f v e c t o r i ) \r 0036340 * 0036440 r e m e m b e 0036460 r ) ) ) ) ) \r \r \r ( d e f u n 0036500 006 002 d u m p - a r r a y - d e s 0036520 c r i p t o r 006 001 ( h a n d l 0036540 e a r r a y r e m e m b e r 0036560 & k e y ( i n i t i a l - e 0036600 l e m e n t n i l u s e - s 0036620 i n g l e - e l t ) ) \r ( 0036640 r e m e m b e r a r r a y ( 0036660 w r i t e - o p h a n d l e 0036700 ' f a s l - c r e a t e - a r r 0036720 a y ) \r ( d 0036740 u m p - v a l u e h a n d l e 0036760 ( i f ( e q l ( a r r a y 0037000 - r a n k a r r a y ) \r 0037020 * 0037060 1 ) \r 0037100 0037120 ( c a r ( a r r 0037140 a y - d i m e n s i o n s a r 0037160 r a y ) ) \r 0037200 0037220 ( a r r a y - d i 0037240 m e n s i o n s a r r a y ) ) 0037260 \r 0037300 r e m e m b e r ) \r 0037320 ( d u m p - v a l u 0037340 e h a n d l e ` ( : e l e m 0037360 e n t - t y p e , ( a r r a y 0037400 - e l e m e n t - t y p e a r 0037420 r a y ) : a d j u s t a b l e 0037440 \r 0037460 0037500 , ( a d j u s t a b 0037520 l e - a r r a y - p a r r a y 0037540 ) \r 0037560 0037600 , @ ( w h e n ( 0037620 a r r a y - h a s - f i l l - p 0037640 o i n t e r - p a r r a y ) \r 0037660 * 0037720 ` ( : 0037740 f i l l - p o i n t e r , ( f 0037760 i l l - p o i n t e r a r r a 0040000 y ) ) ) \r 0040020 0040040 , @ ( w h e 0040060 n u s e - s i n g l e - e l t 0040100 ` ( : i n i t i a l - e l e m 0040120 e n t , i n i t i a l - e l e 0040140 m e n t ) ) ) \r 0040160 r e m e m b 0040200 e r ) ) ) \r \r \r ( d e f u n 006 0040220 002 d u m p - b i t - a r r a y 006 0040240 001 ( h a n d l e a r r a y 0040260 r e m e m b e r ) ( l e t ( 0040300 ( n b i t s ( a r r a y - t o 0040320 t a l - s i z e a r r a y ) ) 0040340 ) \r 0040360 * 0040420 ( u n l e s s ( z e 0040440 r o p ( i l : % a r r a y - o 0040460 f f s e t a r r a y ) ) \r 0040500 * 0040560 ( e r r o r ' 0040600 o b j e c t - n o t - d u m p a 0040620 b l e : o b j e c t a r r a 0040640 y ) ) \r 0040660 * 0040720 ( r e m e m b e r 0040740 a r r a y ( w r i t e - o p 0040760 h a n d l e ' \r 0041000 * 0041100 f a s l - i n i t i a l 0041120 i z e - b i t - a r r a y ) \r 0041140 * 0041220 ( d u m p - v 0041240 a l u e h a n d l e n b i t 0041260 s r e m e m b e r ) \r 0041300 * 0041360 ( d u m p - a r r a 0041400 y - d e s c r i p t o r h a n 0041420 d l e a r r a y \r 0041440 * 0041520 r e m e 0041540 m b e r ) \r 0041560 * 0041640 ( i l : \ \ b o u t s ( h a n 0041660 d l e - s t r e a m h a n d l 0041700 e ) \r 0041720 * 0042000 ( i l : % a r r a y - b 0042020 a s e a r r a y ) \r 0042040 * 0042120 0 \r 0042140 * 0042220 ( 0042240 c e i l i n g n b i t s 8 ) 0042260 ) ) ) ) \r \r \r ( d e f u n 006 002 0042300 d u m p - g e n e r a l - a r r 0042320 a y 006 001 ( h a n d l e a r r 0042340 a y r e m e m b e r ) 0042360 006 003 ( i l : * 0042400 i l : | ; ; | \r 006 001 0042420 * 0042460 006 003 " A r r a y s d o n ' t 0042500 g e t r e m e m b e r e d . 0042520 D i s p l a c e m e n t i n f 0042540 o r m a t i o n i s l o s t 0042560 . " ) 006 001 \r ( l e t * ( 0042600 ( n e l t s ( a r r a y - t o 0042620 t a l - s i z e a r r a y ) ) 0042640 \r ( e l t - 0042660 t y p e ( a r r a y - e l e m 0042700 e n t - t y p e a r r a y ) ) 0042720 ) \r ( w r i t 0042740 e - o p h a n d l e ' f a s 0042760 l - i n i t i a l i z e - a r r 0043000 a y ) \r ( d u 0043020 m p - a r r a y - d e s c r i p 0043040 t o r h a n d l e a r r a y 0043060 n i l ) \r ( 0043100 d u m p - v a l u e h a n d l 0043120 e n e l t s n i l ) \r 0043140 ( l e t ( ( i n d 0043160 i r e c t ( m a k e - a r r a 0043200 y n e l t s : d i s p l a c 0043220 e d - t o a r r a y : e l e 0043240 m e n t - t y p e e l t - t y 0043260 p e ) ) ) \r 0043300 ( d o t i m e s ( i 0043320 n e l t s ) \r 0043340 ( d u m 0043360 p - v a l u e h a n d l e ( 0043400 a r e f i n d i r e c t i ) 0043420 \r 0043440 n i l 0043460 ) ) ) ) ) \r \r \r ( d e f u n 006 0043500 002 d u m p - a r r a y 006 001 ( h 0043520 a n d l e a r r a y r e m e 0043540 m b e r ) ( c o n d \r 0043560 * 0043620 ( ( x c l : d 0043640 i s p l a c e d - a r r a y - p 0043660 a r r a y ) \r 0043700 * 0043740 ( e r r o r ' o b 0043760 j e c t - n o t - d u m p a b l 0044000 e : o b j e c t a r r a y ) 0044020 ) \r 0044040 0044060 ( 0044100 ( a d j u s t a b l e - a r r a 0044120 y - p a r r a y ) \r 0044140 * 0044200 ( d u m p - g 0044220 e n e r a l - a r r a y h a n 0044240 d l e a r r a y r e m e m b 0044260 e r ) ) \r 0044300 * 0044340 ( ( t y p e p a r r a y 0044360 ' ( a r r a y b i t ) ) \r 0044400 * 0044440 ( d u m 0044460 p - b i t - a r r a y h a n d 0044500 l e a r r a y r e m e m b e 0044520 r ) ) \r 0044540 * 0044600 ( ( t y p e p a r r a y ' 0044620 v e c t o r ) \r 0044640 * 0044700 ( d u m p - s i m p 0044720 l e - v e c t o r h a n d l e 0044740 a r r a y r e m e m b e r ) 0044760 ) \r 0045000 0045020 ( 0045040 t ( d u m p - g e n e r a l - 0045060 a r r a y h a n d l e a r r 0045100 a y r e m e m b e r ) ) ) ) \r 0045120 \r \r ( d e f u n 006 002 w r i t e 0045140 - i n t e g e r - b y t e s 006 001 0045160 ( h a n d l e n b y t e s 0045200 v a l u e ) ( l e t ( ( s t 0045220 r e a m ( h a n d l e - s t r 0045240 e a m h a n d l e ) ) ) \r 0045260 * 0045340 ( d o l i s t ( b y t 0045360 e ( i n t e g e r - b y t e - 0045400 l i s t v a l u e n b y t e 0045420 s ) ) \r 0045440 * 0045520 ( i l : b o u t s t r e a m 0045540 b y t e ) ) ) ) \r \r \r ( d e f 0045560 u n 006 002 i n t e g e r - b y t 0045600 e - l i s t 006 001 ( v a l u e 0045620 n b y t e s ) ( d o ( ( c o 0045640 u n t 0 ( 1 + c o u n t ) 0045660 ) \r 0045700 0045720 ( 0045740 r e s u l t n i l ) \r 0045760 * 0046020 ( n v a l u 0046040 e ) \r 0046060 * 0046120 b y t e ) \r 0046140 * 0046200 ( ( > = c o u n t n b y 0046220 t e s ) \r 0046240 * 0046300 r e s u l t ) \r 0046320 * 0046360 ( m u l t i p l e - 0046400 v a l u e - s e t q ( n b y 0046420 t e ) \r 0046440 * 0046500 ( f l o o r n 0046520 2 5 6 ) ) \r 0046540 * 0046600 ( p u s h b y t e r e s 0046620 u l t ) ) ) \r \r \r ( d e f u n 0046640 006 002 d u m p - r a t i o n a l 006 0046660 001 ( h a n d l e v a l u e 0046700 r e m e m b e r ) ( 006 002 d e c 0046720 l a r e 006 001 ( i g n o r e r 0046740 e m e m b e r ) ) \r 0046760 * 0047020 ( w r i t e - o p 0047040 h a n d l e ' f a s l - r a 0047060 t i o ) \r 0047100 * 0047140 ( d u m p - v a l u e h a 0047160 n d l e ( n u m e r a t o r 0047200 v a l u e ) \r 0047220 * 0047260 n i l ) \r 0047300 * 0047340 ( d u 0047360 m p - v a l u e h a n d l e 0047400 ( d e n o m i n a t o r v a l 0047420 u e ) \r 0047440 * 0047500 n i l ) ) \r \r \r 0047520 ( d e f u n 006 002 d u m p - c o 0047540 m p l e x 006 001 ( h a n d l e 0047560 v a l u e r e m e m b e r ) 0047600 ( 006 002 d e c l a r e 006 001 ( i g 0047620 n o r e r e m e m b e r ) ) \r 0047640 * 0047700 ( w r i 0047720 t e - o p h a n d l e ' f a 0047740 s l - c o m p l e x ) \r 0047760 * 0050020 ( d u m p - v a 0050040 l u e h a n d l e ( r e a l 0050060 p a r t v a l u e ) \r 0050100 * 0050140 n 0050160 i l ) \r 0050200 * 0050240 ( d u m p - v a l u e h a n d 0050260 l e ( i m a g p a r t v a l 0050300 u e ) \r 0050320 * 0050360 n i l ) ) \r \r \r ( 0050400 d e f u n 006 002 d u m p - i n t 0050420 e g e r 006 001 ( h a n d l e v 0050440 a l u e r e m e m b e r ) ( 0050460 006 002 d e c l a r e 006 001 ( i g n 0050500 o r e r e m e m b e r ) ) \r 0050520 * 0050560 ( c o n d 0050600 \r 0050620 * 0050660 ( ( a n d ( < = 0 v a l u 0050700 e ) \r 0050720 * 0050760 ( < v a l u e 0051000 1 2 8 ) ) \r 0051020 * 0051060 ( i l : b o u t 0051100 ( h a n d l e - s t r e a m h 0051120 a n d l e ) \r 0051140 * 0051200 v a 0051220 l u e ) ) \r 0051240 * 0051300 ( ( a n d ( < = + 0051320 s m a l l e s t - f o u r - b y 0051340 t e - i n t e g e r + v a l u 0051360 e \r 0051400 * 0051440 + l a r g e s 0051460 t - f o u r - b y t e - i n t e 0051500 g e r + ) ) \r 0051520 * 0051560 ( w r i t e - o p 0051600 h a n d l e ' f a s l - i n 0051620 t e g e r ) \r 0051640 * 0051700 ( w r i t e - i n 0051720 t e g e r - b y t e s h a n d 0051740 l e 4 v a l u e ) ) \r 0051760 * 0052020 ( t ( 0052040 w r i t e - o p h a n d l e 0052060 ' f a s l - l a r g e - i n t e 0052100 g e r ) \r 0052120 * 0052160 ( l e t * ( ( m 0052200 i n b i t s ( 1 + ( i n t e 0052220 g e r - l e n g t h v a l u e 0052240 ) ) ) \r 0052260 * 0052320 ( n b 0052340 y t e s ( c e i l i n g ( i 0052360 n t e g e r - l e n g t h v a 0052400 l u e ) \r 0052420 * 0052500 8 ) ) 0052520 ) \r 0052540 * 0052600 006 0052620 003 ( i l : * i l : | ; ; | " 0052640 A c c o r d i n g t o t h e 0052660 b o o k , M I N B I T S g 0052700 i v e s t h e m i n i m u m 0052720 f i e l d w i d t h f o r 0052740 t h i s n u m b e r i n 0052760 2 ' s c o m p l e m e n t r 0053000 e p r e s e n t a t i o n . " ) 0053020 006 001 \r 0053040 * 0053100 ( d u m p 0053120 - v a l u e h a n d l e n b 0053140 y t e s n i l ) \r 0053160 * 0053240 ( w r i t e - i n t e g e r 0053260 - b y t e s h a n d l e n b 0053300 y t e s v a l u e ) ) ) ) ) \r 0053320 \r \r ( d e f u n 006 002 d u m p - 0053340 p a c k a g e 006 001 ( h a n d l 0053360 e p a c k a g e r e m e m b 0053400 e r ) ( r e m e m b e r p a 0053420 c k a g e ( w r i t e - o p 0053440 h a n d l e ' f a s l - f i n 0053460 d - p a c k a g e ) \r 0053500 * 0053560 ( d u m p - v a l u e h a n d 0053600 l e ( p a c k a g e - n a m e 0053620 p a c k a g e ) \r 0053640 * 0053720 r e m e m b e r ) ) 0053740 ) \r \r \r ( d e f u n 006 002 d u m 0053760 p - d c o d e 006 001 ( h a n d l 0054000 e d c o d e r e m e m b e r 0054020 ) 0054040 006 003 ( i l : * i l : 0054060 | ; ; | \r 006 001 0054100 * 0054140 006 003 " D C O D E s d 0054160 o n ' t g e t r e m e m b e 0054200 r e d b e c a u s e t h e y 0054220 a r e n e v e r E Q . " ) 0054240 006 001 \r ( l e t ( ( s t r 0054260 e a m ( h a n d l e - s t r e 0054300 a m h a n d l e ) ) ) \r 0054320 ( m a c r o l e t ( 0054340 ( d u m p - s e q ( s e q d 0054360 u m p - l e n g t h & r e s t 0054400 s t u f f ) \r 0054420 0054440 ` ( l e t ( ( s e q , s 0054460 e q ) ) \r 0054500 0054520 , @ ( a n d d u m p 0054540 - l e n g t h ' ( ( d u m p - 0054560 v a l u e h a n d l e ( l e 0054600 n g t h s e q ) \r 0054620 * 0054700 r e m e m b e r ) ) 0054720 ) \r 0054740 0054760 ( i f ( l i s t p s e q 0055000 ) \r 0055020 0055040 ( d o l i s t ( e 0055060 l t s e q ) \r 0055100 * 0055140 , @ s t u f f ) \r 0055160 * 0055220 ( d o t i m e s ( i n d e x 0055240 ( l e n g t h s e q ) ) \r 0055260 * 0055320 ( l e t ( ( 0055340 e l t ( a r e f s e q i n 0055360 d e x ) ) ) \r 0055400 * 0055440 , @ s t u f f ) ) 0055460 ) ) ) ) \r 0055500 ( w r i t e - o p h a 0055520 n d l e ' f a s l - d c o d e 0055540 ) \r 0055560 ( d u m p - v a l u e h a n 0055600 d l e ( l e n g t h ( d - a 0055620 s s e m : : d c o d e - n a m e 0055640 - t a b l e d c o d e ) ) \r 0055660 0055700 r e m e m b e r ) \r 0055720 ( l 0055740 e t * ( ( c o d e - a r r a y 0055760 ( d - a s s e m : : d c o d e 0056000 - c o d e - a r r a y d c o d 0056020 e ) ) \r 0056040 ( n b y t e 0056060 s ( l e n g t h c o d e - a 0056100 r r a y ) ) ) \r 0056120 ( d u 0056140 m p - v a l u e h a n d l e 0056160 n b y t e s r e m e m b e r ) 0056200 \r 0056220 ( d o t i m e s ( 0056240 i n b y t e s ) \r 0056260 0056300 ( i l : b o u t s 0056320 t r e a m ( a r e f c o d e 0056340 - a r r a y i ) ) ) ) \r 0056360 ( d u m 0056400 p - s e q ( d - a s s e m : : 0056420 d c o d e - n a m e - t a b l e 0056440 d c o d e ) \r 0056460 n i 0056500 l \r 0056520 ( i l : b o u t 0056540 s t r e a m ( f i r s t e 0056560 l t ) ) \r 0056600 ( d u m p 0056620 - v a l u e h a n d l e ( s 0056640 e c o n d e l t ) \r 0056660 0056700 r e m e m b e r 0056720 ) \r 0056740 ( d u m p - v a 0056760 l u e h a n d l e ( t h i r 0057000 d e l t ) \r 0057020 0057040 r e m e m b e r ) ) \r 0057060 ( d 0057100 u m p - v a l u e h a n d l e 0057120 ( d - a s s e m : : d c o d e 0057140 - f r a m e - n a m e d c o d 0057160 e ) \r 0057200 r e m e m b e 0057220 r ) \r 0057240 ( i l : b o u t s t r e a 0057260 m ( d - a s s e m : : d c o d 0057300 e - n l o c a l s d c o d e ) 0057320 ) \r 0057340 ( i l : b o u t s t r e a m 0057360 ( d - a s s e m : : d c o d e 0057400 - n f r e e v a r s d c o d e 0057420 ) ) \r 0057440 ( i l : b o u t s t r e a 0057460 m ( d - a s s e m : : d c o d 0057500 e - a r g - t y p e d c o d e 0057520 ) ) \r 0057540 ( d u m p - v a l u e h a 0057560 n d l e ( d - a s s e m : : d 0057600 c o d e - n u m - a r g s d c 0057620 o d e ) \r 0057640 r e m e m 0057660 b e r ) \r 0057700 ( d u m p - v a l u e 0057720 h a n d l e ( d - a s s e m : 0057740 : d c o d e - c l o s u r e - p 0057760 d c o d e ) \r 0060000 r e 0060020 m e m b e r ) \r 0060040 ( d u m p - v a l 0060060 u e h a n d l e ( d - a s s 0060100 e m : : d c o d e - d e b u g g 0060120 i n g - i n f o d c o d e ) \r 0060140 0060160 r e m e m b e r ) \r 0060200 ( 0060220 m a c r o l e t ( ( d u m p - 0060240 f i x u p s ( l i s t ) \r 0060260 0060300 ` 0060320 ( d u m p - s e q , l i s t 0060340 t ( d u m p - v a l u e h a 0060360 n d l e ( f i r s t e l t ) 0060400 ) \r 0060420 0060440 ( d u m p 0060460 - v a l u e h a n d l e ( s 0060500 e c o n d e l t ) ) ) ) ) \r 0060520 0060540 ( d u m p - f i x u p 0060560 s ( d - a s s e m : : d c o d 0060600 e - f n - f i x u p s d c o d 0060620 e ) ) \r 0060640 ( d u m p - 0060660 f i x u p s ( d - a s s e m : 0060700 : d c o d e - s y m - f i x u p 0060720 s d c o d e ) ) \r 0060740 0060760 ( d u m p - f i x u p s ( d - 0061000 a s s e m : : d c o d e - l i t 0061020 - f i x u p s d c o d e ) ) \r 0061040 0061060 ( d u m p - f i x u 0061100 p s ( d - a s s e m : : d c o 0061120 d e - t y p e - f i x u p s d 0061140 c o d e ) ) ) ) \r 0061160 n i l ) ) \r \r \r ( d e f u n 0061200 006 002 d u m p - s t r i n g 006 001 0061220 ( h a n d l e s t r i n g r 0061240 e m e m b e r ) \r ( r e m 0061260 e m b e r s t r i n g ( l e 0061300 t ( ( s t r e a m ( h a n d 0061320 l e - s t r e a m h a n d l e 0061340 ) ) \r 0061360 ( n c 0061400 h a r s ( l e n g t h s t r 0061420 i n g ) ) ) \r 0061440 0061460 ( c o n d \r 0061500 0061520 ( ( f a t - s t r i n g - p 0061540 s t r i n g ) \r 0061560 0061600 ( w r i t e - o p 0061620 h a n d l e ' f a s l - f a t 0061640 - s t r i n g ) \r 0061660 0061700 ( d u m p - v a l u 0061720 e h a n d l e n c h a r s 0061740 r e m e m b e r ) \r 0061760 0062000 ( d o ( ( i 0 0062020 ( 1 + i ) ) \r 0062040 0062060 ( c s e t 0062100 0 ) ) \r 0062120 0062140 ( ( > = i n c h 0062160 a r s ) ) 0062200 006 003 ( i l : * i l : \ ; 0062220 " A l w a y s r u n - e n c o 0062240 d e " ) 006 001 \r 0062260 0062300 ( l e t * ( ( 0062320 c h a r ( c h a r - c o d e 0062340 ( c h a r s t r i n g i ) ) 0062360 ) \r 0062400 0062420 ( n e w - c 0062440 s e t ( i l : l r s h c h a 0062460 r 8 ) ) ) \r 0062500 0062520 ( u 0062540 n l e s s ( e q l n e w - c 0062560 s e t c s e t ) \r 0062600 * 0062640 ( s e t q c s 0062660 e t n e w - c s e t ) \r 0062700 * 0062740 ( i l : b 0062760 o u t s t r e a m 2 5 5 ) \r 0063000 * 0063040 ( i 0063060 l : b o u t s t r e a m c s 0063100 e t ) ) \r 0063120 0063140 ( i l : 0063160 b o u t s t r e a m ( l o g 0063200 a n d c h a r 2 5 5 ) ) ) ) 0063220 ) \r 0063240 ( t 0063260 ( w r i t e - o p h a n d l 0063300 e ' f a s l - t h i n - s t r 0063320 i n g ) \r 0063340 0063360 ( d u m p - v a l u e 0063400 h a n d l e n c h a r s r e 0063420 m e m b e r ) \r 0063440 * 0063520 006 003 ( i l : * i l : 0063540 | ; ; | " s h o u l d u s e 0063560 \ \ b o u t s " ) 006 001 \r 0063600 0063620 ( d o t 0063640 i m e s ( i n c h a r s ) \r 0063660 * 0063720 ( i l : b o u t s 0063740 t r e a m ( c h a r - c o d e 0063760 ( c h a r s t r i n g i ) 0064000 ) ) ) ) ) ) ) ) \r \r \r ( d e f u 0064020 n 006 002 d u m p - f l o a t 3 2 0064040 006 001 ( h a n d l e n u m b e 0064060 r r e m e m b e r ) 0064100 006 003 ( i 0064120 l : * i l : \ ; \r 006 001 0064140 * 0064220 006 003 " F l o 0064240 a t s d o n ' t g e t r e 0064260 m e m b e r e d " ) 006 001 \r 0064300 ( w r i t e - o p h a n d l e 0064320 ' f a s l - f l o a t 3 2 ) \r 0064340 ( i l : \ \ b o u t s ( 0064360 h a n d l e - s t r e a m h a 0064400 n d l e ) \r 0064420 n u m b e r 0 4 ) ) \r \r \r ( 0064440 d e f u n 006 002 o p e n - f a s 0064460 l - h a n d l e 006 001 ( n a m e 0064500 & r e s t o p e n - o p t i 0064520 o n s ) ( l e t ( ( s t r e 0064540 a m ( a p p l y # ' o p e n 0064560 n a m e : d i r e c t i o n 0064600 : o u t p u t \r 0064620 * 0064720 o p e n - o p t i o n s ) ) ) 0064740 \r 0064760 * 0065020 ( i l : s e t f 0065040 i l e p t r s t r e a m 0 ) 0065060 \r 0065100 * 0065140 ( i l : b o u t 0065160 s t r e a m s i g n a t u r 0065200 e ) \r 0065220 * 0065260 ( i l : b o 0065300 u t 1 6 s t r e a m c u r r 0065320 e n t - v e r s i o n ) \r 0065340 * 0065420 ( m a k e - h a n d l e 0065440 : s t r e a m s t r e a m ) 0065460 ) ) \r \r \r ( d e f m a c r o 006 0065500 002 w i t h - o p e n - h a n d l 0065520 e 006 001 ( ( h a n d l e f i l 0065540 e n a m e & r e s t o p e n 0065560 - o p t i o n s ) \r 0065600 0065620 & b o d y \r 0065640 0065660 ( b o d y d e 0065700 c l s ) ) ( l e t ( ( a b o 0065720 r t ( i l : g e n s y m " F 0065740 A S L : W I T H - O P E N - F A 0065760 S L - H A N D L E " ) ) ) \r 0066000 * 0066040 ` ( l 0066060 e t ( ( , h a n d l e ( o p 0066100 e n - f a s l - h a n d l e , 0066120 f i l e n a m e \r 0066140 * 0066220 , 0066240 @ o p e n - o p t i o n s ) ) \r 0066260 * 0066340 ( , a b o r t t ) 0066360 ) \r 0066400 * 0066440 , @ d e c l s \r 0066460 * 0066540 ( u n w i n d - p r o t 0066560 e c t ( m u l t i p l e - v a 0066600 l u e - p r o g 1 \r 0066620 * 0066720 ( p r o g n , @ b o d y ) \r 0066740 * 0067040 ( s e t q , a b o r 0067060 t n i l ) ) \r 0067100 * 0067160 ( w h e n , h a n d l 0067200 e ( c l o s e - f a s l - h a 0067220 n d l e \r 0067240 * 0067340 , h a n d l e : a b o r t \r 0067360 * 0067460 , a b o r t 0067500 ) ) ) ) ) ) \r \r \r ( d e f u n 0067520 006 002 b e g i n - t e x t 006 001 ( 0067540 h a n d l e ) ( s t a t e - c 0067560 a s e ( ( : t e x t : b l o 0067600 c k - e n d ) ) \r 0067620 0067640 ( : b l o 0067660 c k ( e n d - b l o c k h a 0067700 n d l e ) ) ) \r 0067720 0067740 ( s e t f ( h a n d l e 0067760 - s t a t e h a n d l e ) \r 0070000 * 0070040 : t e x t ) \r 0070060 0070100 ( h a n d l e - s t r e a m 0070120 h a n d l e ) ) \r \r \r ( d e f 0070140 u n 006 002 b e g i n - b l o c k 0070160 006 001 ( h a n d l e ) ( s t a 0070200 t e - c a s e ( : b l o c k - 0070220 e n d ( b e g i n - t e x t 0070240 h a n d l e ) \r 0070260 * 0070320 ( e n d - t e x t 0070340 h a n d l e ) ) \r 0070360 0070400 ( : t 0070420 e x t ( e n d - t e x t h a 0070440 n d l e ) ) \r 0070460 0070500 ( : b l o c 0070520 k ) ) ) \r \r \r ( d e f u n 006 002 0070540 v a l u e - d u m p a b l e - p 0070560 006 001 ( o b j ) ( x c l : c o 0070600 n d i t i o n - c a s e ( p r 0070620 o g n ( d u m p - v a l u e 0070640 d u m m y - h a n d l e o b j 0070660 n i l ) \r 0070700 * 0070740 t 0070760 ) \r 0071000 0071020 ( o b j e c t - n 0071040 o t - d u m p a b l e n i l 0071060 n i l ) ) ) \r \r \r ( d e f u n 0071100 006 002 d u m p - v a l u e 006 001 ( 0071120 h a n d l e v a l u e & o p 0071140 t i o n a l ( r e m e m b e r 0071160 t ) \r 0071200 & a u 0071220 x i n d e x ) ( s t a t e - 0071240 c a s e ( : b l o c k ( c o 0071260 n d \r 0071300 * 0071340 ( 0071360 ( e q v a l u e n i l ) \r 0071400 * 0071460 ( w r i 0071500 t e - o p h a n d l e ' f a 0071520 s l - n i l ) ) \r 0071540 * 0071620 ( ( e q v a l u e 0071640 t ) \r 0071660 * 0071740 ( w r i t e - o p h a n d l e 0071760 ' f a s l - t ) ) \r 0072000 * 0072060 ( ( p r o g 1 ( 0072100 s e t q i n d e x ( l o o k 0072120 u p - v a l u e h a n d l e 0072140 \r 0072160 * 0072260 v a l u e ) ) \r 0072300 * 0072400 ( w h e n * g a t h e 0072420 r - d u m p e r - s t a t s * \r 0072440 * 0072540 ( i n c f 0072560 * t a b l e - a t t e m p t s * 0072600 ) ) ) \r 0072620 * 0072700 ( w h e n * g a t h e r - d 0072720 u m p e r - s t a t s * ( i n 0072740 c f \r 0072760 * 0073060 * t a 0073100 b l e - h i t s * \r 0073120 * 0073240 ) ) \r 0073260 * 0073340 ( d u m p - v 0073360 a l u e - f e t c h h a n d l 0073400 e i n d e x ) ) \r 0073420 * 0073500 ( t ( t y p e c a 0073520 s e v a l u e \r 0073540 * 0073620 ( 0073640 i n t e g e r ( d u m p - i n 0073660 t e g e r h a n d l e \r 0073700 * 0074020 v a l u e r e m e m b 0074040 e r ) \r 0074060 * 0074160 ) \r 0074200 * 0074260 ( r a t i o n 0074300 a l ( d u m p - r a t i o n a 0074320 l h a n d l e \r 0074340 * 0074460 v a l u e r e m e m b e r \r 0074500 * 0074620 ) ) \r 0074640 * 0074740 ( s i n g l e - f l o a t ( d 0074760 u m p - f l o a t 3 2 \r 0075000 * 0075120 h a n d l e v a l u e \r 0075140 * 0075260 r e m e m b e r ) ) \r 0075300 * 0075400 ( c o m p l e x ( d 0075420 u m p - c o m p l e x h a n d 0075440 l e \r 0075460 * 0075560 v a l u e 0075600 r e m e m b e r ) \r 0075620 * 0075720 ) \r 0075740 * 0076020 ( 0076040 c h a r a c t e r ( d u m p - 0076060 c h a r a c t e r \r 0076100 * 0076200 h a n d 0076220 l e v a l u e \r 0076240 * 0076340 r e m e 0076360 m b e r ) ) \r 0076400 * 0076460 ( s y 0076500 m b o l ( d u m p - s y m b o 0076520 l h a n d l e \r 0076540 * 0076640 v 0076660 a l u e r e m e m b e r ) ) \r 0076700 * 0077000 ( p a c k a g e ( 0077020 d u m p - p a c k a g e h a n 0077040 d l e \r 0077060 * 0077160 v a l u e 0077200 r e m e m b e r ) \r 0077220 * 0077320 ) \r 0077340 * 0077440 ( c o n s ( d u m p - l i s t 0077460 h a n d l e v a l u e \r 0077500 * 0077620 r e m e m b e r ) ) \r 0077640 * 0077740 ( d - a s s e m : d c o d 0077760 e ( d u m p - d c o d e \r 0100000 * 0100120 h a n d l e v a l u e 0100140 \r 0100160 * 0100260 r e m e m b e r 0100300 ) ) \r 0100320 * 0100400 ( s t r i n g 0100420 ( d u m p - s t r i n g h a 0100440 n d l e \r 0100460 * 0100560 v a l u e 0100600 r e m e m b e r ) ) \r 0100620 * 0100720 ( a r r a y ( d u m p - a 0100740 r r a y h a n d l e v a l u 0100760 e \r 0101000 * 0101100 r e m e m b e r ) 0101120 ) \r 0101140 * 0101220 ( c o m p i l e 0101240 r : : e v a l - w h e n - l o a 0101260 d \r 0101300 * 0101360 ( d u m p - e 0101400 v a l h a n d l e ( \r 0101420 * 0101520 c o m p i l e r : : e 0101540 v a l - w h e n - l o a d - f o 0101560 r m \r 0101600 * 0101700 v a l 0101720 u e ) ) ) \r 0101740 * 0102020 ( o t h 0102040 e r w i s e ( e r r o r ' \r 0102060 * 0102200 o b j e c t - n o t - d u m 0102220 p a b l e \r 0102240 * 0102340 : 0102360 o b j e c t v a l u e \r 0102400 * 0102520 ) ) ) ) ) ) ) ) \r \r \r 0102540 ( d e f u n 006 002 d u m p - f u 0102560 n c t i o n - d e f 006 001 ( h a 0102600 n d l e d c o d e n a m e ) 0102620 ( s t a t e - c a s e ( : b 0102640 l o c k ( w r i t e - o p h 0102660 a n d l e ' \r 0102700 * 0103000 f a s l - s e t f - s y m b o l 0103020 - f u n c t i o n ) \r 0103040 * 0103120 ( d u m p 0103140 - v a l u e h a n d l e n a 0103160 m e ) \r 0103200 * 0103260 ( d u m p - v a l u e 0103300 h a n d l e d c o d e ) ) ) ) 0103320 \r \r \r ( d e f u n 006 002 d u m p 0103340 - f u n c a l l 006 001 ( h a n d 0103360 l e f u n c t i o n ) ( s t 0103400 a t e - c a s e ( : b l o c k 0103420 ( w r i t e - o p h a n d l 0103440 e ' f a s l - f u n c a l l ) 0103460 \r 0103500 * 0103540 ( d u m p - 0103560 v a l u e h a n d l e f u n 0103600 c t i o n ) ) ) ) \r \r \r ( d e f 0103620 u n 006 002 d u m p - e v a l 006 001 0103640 ( h a n d l e f o r m ) ( 0103660 s t a t e - c a s e ( : b l o 0103700 c k ( w r i t e - o p h a n 0103720 d l e ' f a s l - e v a l ) \r 0103740 * 0104020 ( d u m p - v a l u e h a 0104040 n d l e f o r m ) ) ) ) \r \r \r 0104060 ( d e f u n 006 002 c l o s e - f 0104100 a s l - h a n d l e 006 001 ( h a 0104120 n d l e & r e s t c l o s e 0104140 - o p t i o n s & k e y a b 0104160 o r t & a l l o w - o t h e r 0104200 - k e y s ) \r ( s t a t e 0104220 - c a s e ( : t e x t ( e n 0104240 d - t e x t h a n d l e ) \r 0104260 0104300 ( e n d - b l o c k 0104320 h a n d l e ) ) \r 0104340 ( : b l o c k ( e n d - 0104360 b l o c k h a n d l e ) ) \r 0104400 ( : b l o c k 0104420 - e n d ) ) \r ( s e t f 0104440 ( h a n d l e - s t a t e h a 0104460 n d l e ) \r : 0104500 c l o s e d ) \r ( a p p l 0104520 y # ' c l o s e ( h a n d l 0104540 e - s t r e a m h a n d l e ) 0104560 \r c l o s e 0104600 - o p t i o n s ) ) \r \r \r \r \r 006 0104620 004 ( i l : * i l : | ; ; ; | 0104640 " R e a d e r . " ) 006 001 \r \r \r ( 0104660 x c l : d e f - d e f i n e - t 0104700 y p e 006 002 f a s l - o p s 006 001 0104720 " F A S L f i l e o p c o 0104740 d e s " ) \r \r \r ( d e f s t r 0104760 u c t ( 006 002 o p t a b l e 006 001 0105000 ( : c o n s t r u c t o r n 0105020 e w - o p t a b l e ) ) v e c 0105040 t o r o p n a m e s n e x t 0105060 ) \r \r \r ( d e f u n 006 002 m a k 0105100 e - o p t a b l e 006 001 n i l 0105120 ( l e t ( ( t a b l e ( n e 0105140 w - o p t a b l e ) ) \r 0105160 0105200 ( v e c t o 0105220 r ( m a k e - a r r a y 2 5 0105240 6 : i n i t i a l - e l e m e 0105260 n t ' u n i m p l e m e n t e 0105300 d - o p c o d e ) ) ) \r 0105320 0105340 ( s e t f ( 0105360 o p t a b l e - v e c t o r t 0105400 a b l e ) \r 0105420 0105440 v e c t o r ) 0105460 \r 0105500 ( s 0105520 e t f ( s v r e f v e c t o 0105540 r e n d - m a r k ) \r 0105560 0105600 ' 0105620 f a s l - e n d - o f - b l o c 0105640 k ) \r 0105660 0105700 t a b l e ) ) \r \r \r ( d e f u n 0105720 006 002 f a s l - e n d - o f - b 0105740 l o c k 006 001 ( s t r e a m o 0105760 p ) ( i f ( z e r o p * b 0106000 l o c k - l e v e l * ) \r 0106020 * 0106060 ( t h r o w ' f a 0106100 s l - b l o c k - f i n i s h e 0106120 d n i l ) \r 0106140 * 0106200 ( e r r o r ' u n e x p e c t 0106220 e d - e n d - o f - b l o c k 0106240 : s t r e a m s t r e a m ) ) 0106260 ) \r \r \r ( x c l : d e f d e f i 0106300 n e r 006 002 d e f o p 006 001 f a 0106320 s l - o p s ( i l : n a m e 0106340 ( o p c o d e & k e y ( i n 0106360 d i r e c t 0 ) \r 0106400 * 0106440 ( t a b l e 0106460 ' * d e f a u l t - o p t a b l 0106500 e * ) ) \r 0106520 0106540 & b o d y 0106560 \r 0106600 0106620 ( b o d y d e c 0106640 l s d o c ) ) \r 0106660 0106700 ( i f ( z e r o p 0106720 i n d i r e c t ) \r 0106740 0106760 ` ( p r o g 0107000 n ( d e f u n ( 006 002 i l : \ 0107020 \ \ , 006 001 i l : n a m e ) ( 0107040 s t r e a m o p c o d e ) , 0107060 ( o r d o c \r 0107100 * 0107200 " F A S L o p c o d e i 0107220 m p l e m e n t a t i o n " \r 0107240 * 0107360 ) , @ d e c l s \r 0107400 * 0107520 , @ b o d y ) \r \r 0107540 * 0107600 ( s e t f ( e l 0107620 t ( o p t a b l e - v e c t o 0107640 r , t a b l e ) \r 0107660 * 0107720 , o p 0107740 c o d e ) \r 0107760 * 0110020 ' , i l : n a m e ) \r 0110040 * 0110100 ( a d d - o p - t 0110120 r a n s l a t i o n ' , i l : 0110140 n a m e , o p c o d e , t a 0110160 b l e ) ) \r 0110200 0110220 ` ( p r o g n ( u 0110240 n l e s s ( o p t a b l e - n 0110260 e x t , t a b l e ) \r 0110300 * 0110340 ( s e t f 0110360 ( o p t a b l e - n e x t , 0110400 t a b l e ) \r 0110420 * 0110460 ( m a k 0110500 e - o p t a b l e ) ) \r 0110520 * 0110560 ( s e t e 0110600 s c a p e , t a b l e ) ) \r 0110620 * 0110660 ( d e f o p ( 006 0110700 002 i l : \ \ \ , 006 001 i l : n a 0110720 m e ) ( , o p c o d e : i n 0110740 d i r e c t \r 0110760 * 0111040 , 0111060 ( 1 - i n d i r e c t ) : t 0111100 a b l e \r 0111120 * 0111200 ( o p 0111220 t a b l e - n e x t , t a b l 0111240 e ) ) \r 0111260 0111300 , 0111320 ( o r d o c " F A S L o p 0111340 c o d e i m p l e m e n t a t 0111360 i o n " ) , @ d e c l s \r 0111400 * 0111440 , 0111460 @ b o d y ) \r ) ) ) \r \r \r ( x c 0111500 l : d e f d e f i n e r 006 002 d 0111520 e f r a n g e 006 001 \r f a s 0111540 l - o p s ( i l : n a m e ( 0111560 f i r s t - o p c o d e & k e 0111600 y ( i n d i r e c t 0 ) \r 0111620 0111640 ( t a b l 0111660 e ' * d e f a u l t - o p t a 0111700 b l e * ) ) \r 0111720 r a n g e 0111740 o f f s e t & b o d y ( b o 0111760 d y d e c l s d o c ) ) \r 0112000 ( i f ( z e r 0112020 o p i n d i r e c t ) \r 0112040 ` ( p r o g 0112060 n ( d e f u n ( 006 002 i l : \ 0112100 \ \ , 006 001 i l : n a m e ) ( 0112120 s t r e a m o p c o d e ) , 0112140 ( o r d o c " F A S L o p 0112160 c o d e i m p l e m e n t a t 0112200 i o n " ) \r 0112220 * 0112300 , @ d e c l s \r 0112320 * 0112400 , @ b o d y 0112420 ) \r \r 0112440 ( l e t ( ( p 0112460 a c k a g e ( s y m b o l - p 0112500 a c k a g e ' , i l : n a m e 0112520 ) ) \r 0112540 ( p 0112560 n a m e ( s y m b o l - n a m 0112600 e ' , i l : n a m e ) ) ) \r 0112620 0112640 ( d o t i m e 0112660 s ( i , r a n g e ) \r 0112700 0112720 ( l 0112740 e t ( ( o p c o d e ( + i 0112760 , f i r s t - o p c o d e ) ) 0113000 ) \r 0113020 0113040 ( s e t f ( e 0113060 l t ( o p t a b l e - v e c t 0113100 o r , t a b l e ) \r 0113120 * 0113160 o p c o 0113200 d e ) \r 0113220 * 0113260 ' , i l : n a m e ) \r 0113300 * 0113340 ( a d d - o p - t r a n s l a 0113360 t i o n ( i n t e r n ( c o 0113400 n c a t e n a t e \r 0113420 * 0113500 ' s t 0113520 r i n g p n a m e \r 0113540 * 0113620 ( w 0113640 r i t e - t o - s t r i n g \r 0113660 * 0113760 ( + i , o f f s e t ) 0114000 ) ) \r 0114020 * 0114100 p a c k a g e ) \r 0114120 * 0114160 o p c o d e 0114200 \r 0114220 0114240 , t 0114260 a b l e ) ) ) ) ) \r 0114300 ` ( p r o g n ( 0114320 u n l e s s ( o p t a b l e - 0114340 n e x t , t a b l e ) \r 0114360 0114400 ( s e t f ( 0114420 o p t a b l e - n e x t , t a 0114440 b l e ) \r 0114460 0114500 ( m a k e - o p t 0114520 a b l e ) ) \r 0114540 0114560 ( s e t e s c a p e , t 0114600 a b l e ) ) \r 0114620 ( d e f 0114640 r a n g e ( 006 002 i l : \ \ \ , 0114660 006 001 i l : n a m e ) ( , f i 0114700 r s t - o p c o d e : i n d i 0114720 r e c t , ( 1 - i n d i r e 0114740 c t ) : t a b l e \r 0114760 * 0115040 ( o p t a b l e - n e x t 0115060 , t a b l e ) ) , ( o r d 0115100 o c \r 0115120 * 0115200 " F A 0115220 S L o p c o d e i m p l e m 0115240 e n t a t i o n " \r 0115260 * 0115360 ) 0115400 , @ d e c l s \r 0115420 * 0115520 , @ b 0115540 o d y ) \r ) ) ) \r \r \r ( d e f u 0115560 n 006 002 a d d - o p - t r a n s 0115600 l a t i o n 006 001 ( n a m e o 0115620 p c o d e t a b l e ) ( l e 0115640 t ( ( p a i r ( a s s o c 0115660 n a m e ( o p t a b l e - o p 0115700 n a m e s t a b l e ) ) ) ) \r 0115720 * 0116000 ( i f p a i r ( s e t 0116020 f ( c d r p a i r ) \r 0116040 * 0116120 o 0116140 p c o d e ) \r 0116160 * 0116220 ( p 0116240 u s h ( c o n s n a m e o 0116260 p c o d e ) \r 0116300 * 0116360 ( o p t a b l e - o p n 0116400 a m e s t a b l e ) ) ) ) ) \r 0116420 \r \r ( d e f u n 006 002 o p c o d 0116440 e - s e q u e n c e 006 001 ( o p 0116460 n a m e & o p t i o n a l ( 0116500 t a b l e * d e f a u l t - o 0116520 p t a b l e * ) \r 0116540 0116560 & a u x e n t r 0116600 y ) ( c o n d \r 0116620 * 0116660 ( ( n u l l t a b 0116700 l e ) \r 0116720 * 0116760 n i l ) \r 0117000 * 0117040 ( ( s e t q e n t r y 0117060 ( a s s o c o p n a m e ( 0117100 o p t a b l e - o p n a m e s 0117120 t a b l e ) ) ) \r 0117140 * 0117200 ( l i s t ( c d 0117220 r e n t r y ) ) ) \r 0117240 * 0117300 ( ( s e t q e 0117320 n t r y ( o p c o d e - s e q 0117340 u e n c e o p n a m e ( o p 0117360 t a b l e - n e x t \r 0117400 * 0117500 t a 0117520 b l e ) ) ) \r 0117540 * 0117600 ( c o n s f a s l - 0117620 e x t e n d e d e n t r y ) ) 0117640 \r 0117660 0117700 ( t 0117720 n i l ) ) ) \r \r \r ( d e f u n 0117740 006 002 f a s l - e x t e n d e d 0117760 006 001 ( s t r e a m o p ) ( 0120000 w i t h - o p t a b l e ( o p 0120020 t a b l e - n e x t * c u r r 0120040 e n t - o p t a b l e * ) \r 0120060 * 0120120 ( d o - o p s t r 0120140 e a m ) ) ) \r \r \r ( d e f u n 0120160 006 002 s e t e s c a p e 006 001 ( t 0120200 a b l e ) ( s e t f ( s v r 0120220 e f ( o p t a b l e - v e c t 0120240 o r t a b l e ) \r 0120260 * 0120320 f a s l - e x t e n d e d ) \r 0120340 0120360 # ' 0120400 f a s l - e x t e n d e d ) ) \r 0120420 \r \r ( d e f u n 006 002 u n i m p 0120440 l e m e n t e d - o p c o d e 006 0120460 001 ( s t r e a m o p c o d e 0120500 ) ( e r r o r ' u n i m p l 0120520 e m e n t e d - o p c o d e : 0120540 o p n a m e o p c o d e ) ) \r 0120560 \r \r ( d e f v a r 006 002 * d e f 0120600 a u l t - o p t a b l e * 006 001 0120620 ( m a k e - o p t a b l e ) ) 0120640 \r \r \r ( d e f v a r 006 002 * c u 0120660 r r e n t - o p t a b l e * 006 001 0120700 n i l ) \r \r \r ( d e f p a r a 0120720 m e t e r 006 002 i n i t i a l - 0120740 v a l u e - t a b l e - s i z e 0120760 006 001 2 0 4 8 ) \r \r \r ( d e f c 0121000 o n s t a n t 006 002 v a l u e - 0121020 t a b l e - i n c r e m e n t 006 0121040 001 1 0 2 4 ) \r \r \r ( d e f v a 0121060 r 006 002 * v a l u e - t a b l e 0121100 * 006 001 n i l ) \r \r \r ( d e f v 0121120 a r 006 002 * b l o c k - l e v e 0121140 l * 006 001 0 ) \r \r \r ( d e f v a 0121160 r 006 002 d e b u g - r e a d e r 0121200 006 001 n i l ) \r \r \r ( d e f v a 0121220 r 006 002 d e b u g - s t r e a m 0121240 006 001 n i l ) \r \r \r ( d e f m a 0121260 c r o 006 002 w i t h - o p t a b 0121300 l e 006 001 ( t a b l e & b o d 0121320 y b o d y ) ` ( l e t ( ( 0121340 * c u r r e n t - o p t a b l e 0121360 * , t a b l e ) ) \r 0121400 * 0121440 , @ b o d 0121460 y ) ) \r \r \r ( d e f u n 006 002 p 0121500 r o c e s s - f i l e 006 001 ( s 0121520 t r e a m & k e y ( t e x t 0121540 - f n # ' ( l a m b d a ( t 0121560 e x t ) \r 0121600 * 0121640 ( p r i n c t 0121660 e x t ) \r 0121700 * 0121740 ( t e r p r i ) 0121760 ) ) \r 0122000 ( i 0122020 t e m - f n n i l ) ) " C a 0122040 l l s F A S L : P R O C E S S 0122060 - S E G M E N T w i t h t h 0122100 e a p p r o r i a t e a r g 0122120 u m e n t s f o r e a c h 0122140 s e g m e n t i n t h e f 0122160 i l e . T h e s t r e a m 0122200 s h o u l d b e p o s i t i 0122220 o n e d a t t h e b e g i 0122240 n n i n g . " \r ( u n l e 0122260 s s ( e q l ( i l : b i n 0122300 s t r e a m ) \r 0122320 s i g n a t u r 0122340 e ) \r ( e r 0122360 r o r " N o t a F A S L 0122400 f i l e . " ) ) \r ( c h e 0122420 c k - v e r s i o n s t r e a 0122440 m ) \r ( d o n i l ( ( 0122460 i l : e o f p s t r e a m ) \r 0122500 ( v a l 0122520 u e s ) ) \r ( p r 0122540 o c e s s - s e g m e n t s t 0122560 r e a m t e x t - f n i t e 0122600 m - f n ) ) ) \r \r \r ( d e f u n 0122620 006 002 c h e c k - v e r s i o n 0122640 006 001 ( s t r e a m ) ( l e t 0122660 ( ( v e r s i o n ( i l : b 0122700 i n 1 6 s t r e a m ) ) ) \r 0122720 * 0122760 ( o r ( a n d ( < = ( 0123000 c a r v e r s i o n - r a n g 0123020 e ) \r 0123040 * 0123100 v e r s i o n ) \r 0123120 * 0123160 ( < = v e r s i o n 0123200 ( c d r v e r s i o n - r a 0123220 n g e ) ) ) \r 0123240 0123260 ( e 0123300 r r o r " V e r s i o n n o 0123320 t s u p p o r t e d : ~ D . 0123340 " v e r s i o n ) ) ) ) \r \r \r 0123360 ( d e f u n 006 002 p r o c e s s 0123400 - s e g m e n t 006 001 ( s t r e 0123420 a m & o p t i o n a l t e x 0123440 t - f n i t e m - f n ( o p 0123460 t a b l e * d e f a u l t - o 0123500 p t a b l e * ) ) \r ( i f 0123520 t e x t - f n ( f u n c a l 0123540 l t e x t - f n ( r e a d - 0123560 t e x t s t r e a m ) ) \r 0123600 ( s k i p - t e x t 0123620 s t r e a m ) ) \r ( p r o 0123640 c e s s - b l o c k s t r e a 0123660 m i t e m - f n o p t a b l 0123700 e ) ) \r \r \r ( d e f u n 006 002 r 0123720 e a d - t e x t 006 001 ( s t r e 0123740 a m ) ( d o ( ( r e s u l t 0123760 ( m a k e - a r r a y 5 1 2 0124000 : e l e m e n t - t y p e ' 0124020 c h a r a c t e r : a d j u s 0124040 t a b l e t \r 0124060 * 0124120 : f i l l - p o i 0124140 n t e r 0 ) ) \r 0124160 0124200 ( b y t e ( i 0124220 l : b i n s t r e a m ) \r 0124240 * 0124300 ( i l : b i n s t r e a 0124320 m ) ) ) \r 0124340 0124360 ( ( e q l b y t e e n 0124400 d - m a r k ) \r 0124420 0124440 ( c o e r c e r 0124460 e s u l t ' s t r i n g ) ) \r 0124500 0124520 ( v 0124540 e c t o r - p u s h - e x t e n 0124560 d ( c o d e - c h a r b y t 0124600 e ) \r 0124620 0124640 r e s u l t ) ) 0124660 ) \r \r \r ( d e f u n 006 002 p r o 0124700 c e s s - b l o c k 006 001 ( s t 0124720 r e a m & o p t i o n a l i 0124740 t e m - f n ( o p t a b l e 0124760 * d e f a u l t - o p t a b l e 0125000 * ) ) \r ( c a t c h ' f 0125020 a s l - b l o c k - f i n i s h 0125040 e d ( w i t h - o p t a b l e 0125060 o p t a b l e ( d o ( ( * 0125100 v a l u e - t a b l e * ( n e 0125120 w - v a l u e - t a b l e ) ) \r 0125140 * 0125220 v a l ) \r 0125240 * 0125320 n i l \r 0125340 * 0125420 ( s e t f v a l ( 0125440 d o - o p s t r e a m 0 ) ) 0125460 \r 0125500 * 0125540 ( w h e n 0125560 i t e m - f n ( f u n c a l l 0125600 i t e m - f n v a l ) ) ) ) 0125620 ) ) \r \r \r ( d e f u n 006 002 s k 0125640 i p - t e x t 006 001 ( s t r e a 0125660 m ) ( d o ( ( b y t e ( i 0125700 l : b i n s t r e a m ) ) ) \r 0125720 0125740 ( ( 0125760 e q l b y t e e n d - m a r 0126000 k ) \r 0126020 0126040 ( v a l u e s ) ) ) ) \r \r \r 0126060 ( d e f m a c r o 006 002 n e x t 0126100 - v a l u e 006 001 n i l ' ( d 0126120 o - o p s t r e a m ) ) \r \r \r 0126140 ( d e f u n 006 002 d o - o p 006 001 0126160 ( s t r e a m & o p t i o n 0126200 a l ( * b l o c k - l e v e l 0126220 * ( 1 + * b l o c k - l e v 0126240 e l * ) ) ) \r ( l e t ( 0126260 ( o p ( i l : b i n s t r e 0126300 a m ) ) \r v a 0126320 l ) \r ( w h e n 0126340 d e b u g - r e a d e r ( f 0126360 o r m a t d e b u g - s t r e 0126400 a m " ~ V T ~ A ( ~ 3 O ) ~ 0126420 % " ( * * b l o c k - l e v 0126440 e l * 4 ) \r 0126460 0126500 ( c a r ( r 0126520 a s s o c o p ( o p t a b l 0126540 e - o p n a m e s * c u r r e 0126560 n t - o p t a b l e * ) ) ) \r 0126600 * 0126640 o p ) ) \r ( s 0126660 e t q v a l ( f u n c a l l 0126700 ( s v r e f ( o p t a b l e 0126720 - v e c t o r * c u r r e n t 0126740 - o p t a b l e * ) \r 0126760 0127000 o p ) 0127020 \r 0127040 s t r e a m 0127060 o p ) ) \r ( w 0127100 h e n d e b u g - r e a d e r 0127120 ( f o r m a t d e b u g - s 0127140 t r e a m " ~ V T V a l u e : 0127160 ~ S ~ % " ( * * b l o c k 0127200 - l e v e l * 4 ) \r 0127220 0127240 v a l 0127260 ) ) \r ( r e t u 0127300 r n - f r o m d o - o p v a 0127320 l ) ) ) \r \r \r ( d e f u n 006 002 0127340 n e w - v a l u e - t a b l e 006 0127360 001 n i l ( m a k e - a r r a 0127400 y i n i t i a l - v a l u e - 0127420 t a b l e - s i z e : f i l l 0127440 - p o i n t e r 0 : e x t e 0127460 n d a b l e t ) ) \r \r \r ( d e 0127500 f u n 006 002 c l e a r - t a b l 0127520 e 006 001 ( & o p t i o n a l ( 0127540 t a b l e * v a l u e - t a b 0127560 l e * ) ) ( s e t f ( f i l 0127600 l - p o i n t e r t a b l e ) 0127620 \r 0127640 * 0127700 0 ) ) \r 0127720 \r \r ( d e f u n 006 002 s t o r e 0127740 - v a l u e 006 001 ( o b j & o 0127760 p t i o n a l ( t a b l e * 0130000 v a l u e - t a b l e * ) ) 0130020 006 003 ( i l : * i l : | ; 0130040 ; | \r 006 001 006 003 " T h i s m 0130060 a y w a n t t o c h a n g 0130100 e t o a n o t h e r r e p 0130120 r e s e n t a t i o n i f w 0130140 e c a n ' t m a k e V E C 0130160 T O R - P U S H - E X T E N D 0130200 f a s t e n o u g h . " ) 006 001 0130220 \r ( v e c t o r - p u s h 0130240 - e x t e n d o b j t a b l 0130260 e v a l u e - t a b l e - i n 0130300 c r e m e n t ) \r o b j ) 0130320 \r \r \r ( d e f u n 006 002 f e t c 0130340 h - v a l u e 006 001 ( i n d e x 0130360 & o p t i o n a l ( t a b l 0130400 e * v a l u e - t a b l e * ) 0130420 ) ( a r e f t a b l e i n 0130440 d e x ) ) \r \r \r ( d e f u n 006 0130460 002 c o l l e c t - l i s t 006 001 0130500 ( s t r e a m n e l t s d o 0130520 t t e d ) ( i f ( a n d d 0130540 o t t e d ( e q l n e l t s 0130560 2 ) ) \r 0130600 * 0130640 ( r e t u r n - f r o m 0130660 c o l l e c t - l i s t ( c o 0130700 n s ( d o - o p s t r e a m 0130720 ) \r 0130740 * 0131040 ( d o - o p s t r e a m ) ) ) 0131060 ) \r 0131100 0131120 ( w h e 0131140 n d o t t e d ( d e c f n 0131160 e l t s ) ) \r 0131200 * 0131240 ( l e t ( ( r e s u l t ( 0131260 006 002 i l : | t o | 006 001 n e l t 0131300 s 006 002 i l : | c o l l e c t | 0131320 006 001 ( d o - o p s t r e a m 0131340 ) ) ) ) \r 0131360 * 0131440 006 003 ( i l : * i l : | ; ; 0131460 | \r 006 001 0131500 * 0131540 006 003 " A s s u m e d 0131560 o t t e d a n d o t h e r 0131600 t h a n a s i m p l e c o 0131620 n s i s r a r e . " ) 006 001 \r 0131640 * 0131700 ( 0131720 w h e n d o t t e d ( s e t 0131740 f ( c d r ( l a s t r e s 0131760 u l t ) ) \r 0132000 * 0132060 ( d o - o p s 0132100 t r e a m ) ) ) \r 0132120 * 0132160 ( r e t u r n - 0132200 f r o m c o l l e c t - l i s 0132220 t r e s u l t ) ) ) \r \r \r ( d 0132240 e f r a n g e 006 002 f a s l - s 0132260 h o r t - i n t e g e r 006 001 ( 0132300 0 ) 1 2 8 0 o p c o d e ) 0132320 \r \r \r ( d e f o p 006 002 f a s l 0132340 - n i l 006 001 ( 1 2 8 ) n i l 0132360 ) \r \r \r ( d e f o p 006 002 f a s 0132400 l - t 006 001 ( 1 2 9 ) t ) \r \r 0132420 \r ( d e f o p 006 002 f a s l - i 0132440 n t e g e r 006 001 ( 1 3 0 ) ( 0132460 + ( i l : l l s h ( i l : b 0132500 i n s t r e a m ) \r 0132520 0132540 2 0132560 4 ) \r 0132600 0132620 ( i l : l l s h ( i l : b i n 0132640 s t r e a m ) \r 0132660 0132700 1 6 ) 0132720 \r 0132740 ( i 0132760 l : l l s h ( i l : b i n s 0133000 t r e a m ) \r 0133020 0133040 8 ) \r 0133060 0133100 ( i l : b 0133120 i n s t r e a m ) ) ) \r \r \r ( 0133140 d e f o p 006 002 f a s l - l a r 0133160 g e - i n t e g e r 006 001 ( 1 3 0133200 1 ) ( l e t ( ( n b y t e s 0133220 ( n e x t - v a l u e ) ) \r 0133240 * 0133300 ( f i r s t - t i m e 0133320 t ) \r 0133340 0133360 ( m a s k 0133400 0 ) ) \r 0133420 0133440 ( d o ( ( o 0133460 f f s e t ( * ( 1 - n b y 0133500 t e s ) \r 0133520 * 0133560 8 ) \r 0133600 * 0133640 ( - 0133660 o f f s e t 8 ) ) \r 0133700 * 0133740 ( r e s u l t 0 ) 0133760 \r 0134000 0134020 b y t e ) 0134040 \r 0134060 0134100 ( ( < o f 0134120 f s e t 0 ) \r 0134140 * 0134200 ( i f ( z e r o p m a s 0134220 k ) \r 0134240 * 0134300 r e s u l t \r 0134320 * 0134360 ( - ( 1 + r e s 0134400 u l t ) ) ) ) \r 0134420 * 0134460 ( s e t f b y t e ( i l : 0134500 b i n s t r e a m ) ) \r 0134520 * 0134560 ( w h e n f i r s 0134600 t - t i m e ( s e t f f i r 0134620 s t - t i m e n i l ) \r 0134640 * 0134700 ( w h e 0134720 n ( > b y t e 1 2 7 ) \r 0134740 * 0135020 ( s e t q m a s k 2 0135040 5 5 ) ) ) \r 0135060 0135100 ( 0135120 s e t f ( l d b ( b y t e 0135140 8 o f f s e t ) \r 0135160 * 0135220 r e 0135240 s u l t ) \r 0135260 * 0135320 ( l o g x o r b y t 0135340 e m a s k ) ) ) ) ) \r \r \r ( d 0135360 e f o p 006 002 f a s l - r a t i 0135400 o 006 001 ( 1 3 4 ) ( / ( n e 0135420 x t - v a l u e ) \r 0135440 0135460 ( n e x t - v a l u e 0135500 ) ) ) \r \r \r ( d e f o p 006 002 f 0135520 a s l - c o m p l e x 006 001 ( 1 0135540 3 5 ) ( c o m p l e x ( n e 0135560 x t - v a l u e ) \r 0135600 0135620 ( n e x t 0135640 - v a l u e ) ) ) \r \r \r ( d e f 0135660 o p 006 002 f a s l - v e c t o r 0135700 006 001 ( 1 3 6 ) ( l e t * ( 0135720 ( n e l t s ( n e x t - v a l 0135740 u e ) ) \r 0135760 0136000 ( v e c t o r ( m a 0136020 k e - a r r a y n e l t s : 0136040 i n i t i a l - e l e m e n t 0136060 n i l ) ) ) \r 0136100 0136120 ( d o t i m e s ( 0136140 i n e l t s v e c t o r ) \r 0136160 * 0136220 ( s e t f ( a r e 0136240 f v e c t o r i ) \r 0136260 * 0136320 ( n e x t - v a 0136340 l u e ) ) ) ) ) \r \r \r ( d e f o 0136360 p 006 002 f a s l - c r e a t e - 0136400 a r r a y 006 001 ( 1 3 7 ) ( a 0136420 p p l y # ' m a k e - a r r a 0136440 y ( n e x t - v a l u e ) \r 0136460 * 0136520 ( n e x t - v a l u e 0136540 ) ) ) \r \r \r ( d e f o p 006 002 f 0136560 a s l - i n i t i a l i z e - a 0136600 r r a y 006 001 ( 1 3 8 ) ( l e 0136620 t * ( ( a r r a y ( n e x t 0136640 - v a l u e ) ) \r 0136660 * 0136720 ( i n d i r e c t ( i l 0136740 : % f l a t t e n - a r r a y 0136760 a r r a y ) ) \r 0137000 * 0137040 ( n e l t s ( n e x t - v 0137060 a l u e ) ) ) \r 0137100 * 0137140 ( d o t i m e s ( i n e l 0137160 t s a r r a y ) \r 0137200 * 0137240 ( s e t f 0137260 ( a r e f i n d i r e c t i 0137300 ) \r 0137320 * 0137360 ( n e x t - v a 0137400 l u e ) ) ) ) ) \r \r \r ( d e f o 0137420 p 006 002 f a s l - i n i t i a l 0137440 i z e - b i t - a r r a y 006 001 0137460 ( 1 3 9 ) \r ( l e t * ( 0137500 ( a r r a y ( d o - o p s t 0137520 r e a m ) ) \r 0137540 ( b a s e ( i l : % a r r a 0137560 y - b a s e a r r a y ) ) \r 0137600 ( n b i t s 0137620 ( d o - o p s t r e a m ) ) ) 0137640 \r ( m u l t i 0137660 p l e - v a l u e - b i n d ( 0137700 n b y t e s l e f t o v e r ) 0137720 \r 0137740 ( f l o o r n b i t s 8 ) 0137760 \r 0140000 ( u n l e s s ( z e r o p 0140020 l e f t o v e r ) \r 0140040 0140060 ( d o * ( ( i n i t i a l 0140100 ( * n b y t e s 8 ) ) \r 0140120 0140140 ( i n d i 0140160 r e c t ( i l : % f l a t t e 0140200 n - a r r a y a r r a y ) ) \r 0140220 0140240 ( l a 0140260 s t - b y t e ( i l : b i n 0140300 s t r e a m ) ) \r 0140320 0140340 ( i 0 ( 1 + i 0140360 ) ) ) \r 0140400 0140420 ( ( = i l e f t o v e r ) ) 0140440 \r 0140460 ( s e 0140500 t f ( b i t i n d i r e c t 0140520 ( + i n i t i a l i ) ) \r 0140540 * 0140600 ( l e t ( ( b s ( b y t 0140620 e 1 ( - 7 i ) ) ) ) \r 0140640 * 0140700 ( l d b b s l a 0140720 s t - b y t e ) ) ) ) ) \r 0140740 a r r 0140760 a y ) ) ) \r \r \r ( d e f o p 006 0141000 002 f a s l - t h i n - s t r i n 0141020 g 006 001 ( 1 4 0 ) ( l e t * 0141040 ( ( n c h a r s ( n e x t - v 0141060 a l u e ) ) \r 0141100 0141120 ( s t r 0141140 i n g ( i l : a l l o c s t r 0141160 i n g n c h a r s ) ) ) \r 0141200 * 0141240 ( i l : \ \ b i n s s t r 0141260 e a m ( 006 002 i l : f e t c h 006 0141300 001 ( i l : s t r i n g p i l 0141320 : b a s e ) 006 002 i l : o f 006 001 0141340 s t r i n g ) \r 0141360 * 0141420 0 n c h a r s ) \r 0141440 * 0141500 s t r i n g ) ) \r \r \r ( d e 0141520