$ 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