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