$ od -c -N 50000 [Indigo]<KRL>code>cryptfns.krl1!1 0000000 S e p t e m b e r 2 4 , 1 9 0000020 7 6 1 : 3 9 P M \t f i l e 0000040 : < w i n o g r a d > C R Y P 0000060 T A R I T H M E T I C . K R L 1 0000100 032 z 1 8 8 7 3 e 8 \r | | [ B l a 0000120 n k ^ [ a U n i t ] \r | | [ 0000140 B o t h A d d e n d s K n o w n 0000160 ^ { [ a U n i t ] [ W h e n 0000200 I d e n t i f i e d ( L I S P 0000220 ( T r y S t r a t e g y ) ) ] 0000240 } \r | | [ C o l u m n ^ { [ 0000260 a U n i t ] \r | | [ C o l u m 0000300 n D e s c r i p t i o n \r | | [ 0000320 E v e n N u m b e r ^ [ a U 0000340 n i t ] [ T o M a t c h . . . 0000360 ? ? \r | | [ H y p o t h e s i s 0000400 ^ [ a U n i t ] \r | | [ L e 0000420 t t e r ^ [ a U n i t ] \r | 0000440 | [ M a g n i t u d e O r d e r 0000460 ^ { [ a U n i t ] \r | | [ N 0000500 e i t h e r A d d e n d K n o w 0000520 n ^ { [ a U n i t ] [ W h e 0000540 n I d e n t i f i e d ( L I S 0000560 P ( T r y S t r a t e g y ) ) 0000600 ] } \r | | [ O d d N u m b e r 0000620 ^ [ a U n i t ] [ T o M a t 0000640 c h . . . ? ? \r | | [ O n e A 0000660 d d e n d K n o w n ^ { [ a 0000700 U n i t ] [ W h e n I d e n t i 0000720 f i e d ( L I S P ( T r y S 0000740 t r a t e g y ) ) ] } \r | | [ 0000760 N o B l a n k s ^ { [ a U n 0001000 i t ] \r | | [ O n e B l a n k 0001020 ^ { [ a U n i t ] \r | | [ T w 0001040 o B l a n k s ^ { [ a U n i 0001060 t ] \r | | [ P r o b l e m ^ { 0001100 [ a U n i t ] \r | [ S u m E q 0001120 u a l s A d d e n d ^ { [ a U 0001140 n i t ] [ F u r t h e r S p e c 0001160 i f i e d C o l u m n ] \r | [ 0001200 S u m m a t i o n ^ [ a U n i 0001220 t ] 032 z 1 8 8 7 3 e 8 \ 3 b 5 B 0001240 2 i 8 I 4 b 1 6 B 2 i 4 7 I 5 b 0001260 6 B 2 i 1 0 I 3 b 1 7 B 4 b 1 0 0001300 B 2 i 2 2 I 4 b 1 0 B 2 i 8 I 4 0001320 b 6 B 2 i 8 I 4 b 1 4 B 2 i 1 0 0001340 I 3 b 1 8 B 2 i 4 7 I 5 b 9 B 2 0001360 i 2 2 I 4 b 1 4 B 2 i 4 7 I 5 b 0001400 8 B 2 i 1 0 I 3 b 8 B 2 i 1 0 I 0001420 3 b 9 B 2 i 1 0 I 3 b 7 B 2 i 1 0001440 0 I 2 b 1 5 B 1 i 3 5 I 2 b 9 B 0001460 1 i \r ! ! ! ! ! ! ! ! ! ! ! ! ! 0001500 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0001640 ! ! 032 z 1 8 8 7 3 e 1 c \r ( C a 0001660 l l I f N e e d e d \r ( C h e c 0001700 k A p p e a r a n c e s \r ( C h 0001720 e c k I f D o n e \r ( C l a s s 0001740 i f y C o l u m n \r ( D O P 1 \r 0001760 ( G e t L e t t e r s \r ( G e t 0002000 P a r i t y \r ( G i v e A n s w 0002020 e r \r ( M a k e C h a r a c t e 0002040 r U n i t \r ( P r o c e s s C o 0002060 l u m n \r ( P r o c e s s O n e 0002100 B l a n k \r ( P r o c e s s S u 0002120 m E q \r ( P r o c e s s S u m m 0002140 a t i o n \r ( P r o c e s s F o 0002160 r B o u n d s \r ( P r o c e s s 0002200 L i n e a r \r ( P r o c e s s S 0002220 u m m a t i o n F o r P a r i t 0002240 y \r ( P r o c e s s T w i n \r ( 0002260 R e p o r t I m p o s s i b l e 0002300 P r o b l e m \r ( S e t U p P r 0002320 o b l e m \r ( T e s t C a s e s 0002340 \r ( T e s t M a g n i t u d e M 0002360 a p p i n g \r ( T r y C a s e s 0002400 F o r L e t t e r \r ( T r y S t 0002420 r a t e g y 032 z 1 8 8 7 3 e 1 \r 0002440 \t \r 032 z 1 8 8 7 3 e 1 \r ! ! ! ! 0002460 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0002620 ! ! ! ! ! ! ! ! ! ! ! 032 z 1 8 8 0002640 7 3 e 1 c \r ( D E F I N E Q \r ( 0002660 C a l l I f N e e d e d \r [ 0002700 L A M B D A ( p r i o r i t y 0002720 L e v e l p r o c e s s N a m 0002740 e p r o c e s s A r g s ) 0002760 ( * I s s u e s a 0003000 c a l l i f o n e \r \t \t \t 0003020 \t \t \t i s n o t 0003040 a l r e a d y o n t h e 0003060 \r \t \t \t \t \t \t a g 0003100 e n d a . ) \r ( i f ( 0003120 f o r c a l l i n ( A g e 0003140 n d a L e v e l p r i o r i t 0003160 y L e v e l ) \r \t n e v e 0003200 r ( A N D ( E Q U A L c a 0003220 l l : l i s p F u n c t i o n 0003240 p r o c e s s N a m e ) \r \t \t 0003260 ( E Q U A L c a l l 0003300 : l i s p A r g u m e n t s p 0003320 r o c e s s A r g s ) ) ) \r \t t 0003340 h e n ( C a l l p r i o r i 0003360 t y L e v e l p r o c e s s N 0003400 a m e p r o c e s s A r g s ] 0003420 ) 032 z 1 8 8 7 3 \ 1 0 b 1 2 B \r 0003440 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0003600 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 032 0003620 z 1 8 8 7 3 e 1 c \r ( C h e c k 0003640 A p p e a r a n c e s \r [ L 0003660 A M B D A N I L \r \r 0003700 ( * c a l l e d w 0003720 h e n a v a l u e i s f 0003740 i l l e d i n f o r a l 0003760 e t t e r . \r \t g o e s t 0004000 h r o u g h a l l c o l u m 0004020 n s , l o o k i n g a t e 0004040 a c h l e t t e r t o s e 0004060 e i f \r \t i t e q u a 0004100 l s t h e o n e j u s t 0004120 a s s i g n e d a v a l u e 0004140 , a n d i f s o t r i g 0004160 g e r s p r o c e s s i n g . 0004200 ) \r \r ( D e p l e t e 0004220 \ ( t h e f r e e D i g i t s 0004240 f r o m ( a P r o b l e m 0004260 w h i c h I s @ c u r r e n 0004300 t P r o b l e m ) ) \r \t \t ( I t 0004320 e m ( t h i s n e w D e s c 0004340 r i p t o r ) ) \r \t \t \ ( a C 0004360 o m p l a i n I f N o t T h e r 0004400 e ) ) \r \r ( b i n d ( 0004420 ( l e t t e r ( I t e m ( t 0004440 h i s i n s t a n c e ) ) ) ) 0004460 \r \t f o r c o l u m n \r \t i 0004500 n ( I t e m S e q u e n c e 0004520 ( t h e c o l u m n s f r o 0004540 m ( a P r o b l e m w h i 0004560 c h I s @ c u r r e n t P r o 0004600 b l e m ) ) ) \r \t d o ( i f 0004620 ( e x i s t s l e t t e r N a 0004640 m e \r \t \t i n ' ( t o p L e 0004660 t t e r b o t t o m L e t t e 0004700 r s u m L e t t e r ) \r \t \t 0004720 w h e n l e t t e r = ( I 0004740 t e m ( t h e @ l e t t e r 0004760 N a m e f r o m ( a C o l 0005000 u m n w h i c h I s @ c o l 0005020 u m n ) ) ) ) \r \t t h 0005040 e n ( P r o c e s s C o l u m 0005060 n c o l u m n ] ) \r 032 z 1 8 8 0005100 7 3 \ 1 b 1 6 B \r ! ! ! ! ! ! ! 0005120 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0005260 ! ! ! ! ! ! ! ! 032 z 1 8 8 7 3 e 0005300 1 c \r ( C h e c k I f D o n e \r 0005320 [ L A M B D A ( o l d U n 0005340 k n o w n s ) 0005360 0005400 ( * s c h e d u 0005420 l e d a t l o w \r \t \t \t \t 0005440 \t \t p r i o r i t 0005460 y t o t r y t o f i n i 0005500 s h \r \t \t \t \t \t \t 0005520 u p . I t w i l l a s s i 0005540 g n \r \t \t \t \t \t \t 0005560 d a n g l i n g l e t t e r 0005600 s i n \r \t \t \t \t \t \t 0005620 s i m p l e s t c a s e 0005640 s . ) \r ( P R O G ( u 0005660 n k n o w n s u n u s e d D i 0005700 g i t s ) \r 0005720 ( U p d a t e \ ( t h e f r 0005740 e e L e t t e r s f r o m ( 0005760 a P r o b l e m w h i c h I 0006000 s @ c u r r e n t P r o b l e 0006020 m ) ) ) \r ( 0006040 u n k n o w n s _ ( I t e m S e 0006060 q u e n c e ( t h e f r e e 0006100 L e t t e r s f r o m \r \t \t \t 0006120 \t \t \t ( a P r o b l e m w h 0006140 i c h I s @ c u r r e n t P r 0006160 o b l e m ) ) ) \r 0006200 ( S E L E C T Q ( L E N 0006220 G T H u n k n o w n s ) \r \t \t 0006240 ( 0 ( G i v e A n s w e 0006260 r ) ( R E T U R N ) ) \r \t \t 0006300 ( 1 ( u n u s e d D i g i 0006320 t s _ \r \t \t \t ( I t e m S e 0006340 q u e n c e ( t h e f r e e 0006360 D i g i t s f r o m \r \t \t \t \t 0006400 \t \t ( a P r o b l e m w h i 0006420 c h I s @ c u r r e n t P r o 0006440 b l e m ) ) ) ) \r \t \t 0006460 ( i f 1 = ( L E N G T H u 0006500 n u s e d D i g i t s ) \r \t \t \t 0006520 t h e n ( C a l l 2 ' G i 0006540 v e A n s w e r ) \r \t \t \t 0006560 ( D e s c r i b e \ ( 0006600 t h e v a l u e f r o m ( 0006620 a L e t t e r w h i c h I s 0006640 @ u n k n o w n s : 1 ) ) \r \t 0006660 \t \t \t \t u n u s e d D i g 0006700 i t s : 1 ) ) \r \t \t \t e l s e 0006720 ( H E L P " n u m b e r o f 0006740 d i g i t s a n d l e t t 0006760 e r s d o e s n t m a t c h 0007000 " ) ) ) \r ( 0007020 i f ( E Q U A L o l d U n k 0007040 n o w n s u n k n o w n s ) \r 0007060 \t t h e n ( H E L 0007100 P " N o t M a k i n g a n 0007120 y p r o g r e s s " ) \r \t 0007140 e l s e ( C a l l 6 ' 0007160 C h e c k I f D o n e < u n k 0007200 n o w n s > ] ) \r 032 z 1 8 8 7 3 0007220 \ 1 b 1 1 B \r ! ! ! ! ! ! ! ! ! 0007240 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0007400 ! ! ! ! ! ! 032 z 1 8 8 7 3 e 1 c 0007420 \r ( C h e c k P o s s i b l e V 0007440 a l u e s \r [ L A M B D A 0007460 ( ) 0007500 0007520 ( * t r i g g e r e d i 0007540 n a W h e n D e s c r i b e 0007560 d ) \r ( P R O G ( v a 0007600 r i a b l e D e s c p o s s i 0007620 b i l i t i e s n e w D e s c 0007640 r i p t o r n e w P o s s i b 0007660 i l i t i e s ) \r \t ( i f ( v 0007700 a r i a b l e D e s c _ ( S 0007720 e e k \ ( t h i s o l d D e 0007740 s c r i p t i o n ) \ ( a V 0007760 a r i a b l e D e s c r i p t i 0010000 o n ) ) ) \r \t \t t h e n ( p o 0010020 s s i b i l i t i e s _ ( I 0010040 t e m S e q u e n c e ( t h e 0010060 p o s s i b l e V a l u e s 0010100 f r o m \r \t \t \t \t \t \t \t 0010120 ( a V a r i a b l e w h i 0010140 c h I s @ v a r i a b l e D e 0010160 s c ) ) ) ) ) \r \t ( i f ( N O 0010200 T p o s s i b i l i t i e s ) 0010220 \r \t \t t h e n ( S i g n a l 0010240 ' C a n t F i n d P o s s i b l 0010260 e V a l u e s ) \r \t e l 0010300 s e i f ( N O T p o s s i b 0010320 i l i t i e s : : 1 ) \r \t \t t h 0010340 e n ( R E T U R N N I L ) ) 0010360 \r \r \t ( n e w D e s c r i p t o 0010400 r _ ( I t e m ( t h i s n 0010420 e w D e s c r i p t o r ) ) ) \r 0010440 \t ( n e w P o s s i b i l i t i 0010460 e s _ ( c o l l e c t x 0010500 i n p o s s i b i l i t i e s 0010520 \r \t \t \t \t w h e n ( M a t c h 0010540 n e w D e s c r i p t o r 0010560 x ) ) ) \r \r \t ( i f ( N U L L 0010600 n e w P o s s i b i l i t i e 0010620 s ) \r \t \t t h e n ( S i g n 0010640 a l ' E l i m i n a t e d A l 0010660 l P o s s i b i l i t i e s ) \r 0010700 \t e l s e i f ( N O T ( 0010720 E Q U A L n e w P o s s i b i 0010740 l i t i e s p o s s i b i l i 0010760 t i e s ) ) \r \t \t t h e n ( R 0011000 e D e s c r i b e \ ( t h e 0011020 p o s s i b l e V a l u e s f 0011040 r o m \r \t \t \t \t \t \t ( a V a r 0011060 i a b l e w h i c h I s @ v 0011100 a r i a b l e D e s c ) ) \r \t \t 0011120 \t \t ( M a k e K r l S 0011140 e q u e n c e n e w P o s s i 0011160 b i l i t i e s ) ) \r \t \t 0011200 ( i f ( N O T n e w P 0011220 o s s i b i l i t i e s : : 1 ) 0011240 \r \t \t \t t h e n ( D e s c r 0011260 i b e \ ( t h e @ ( I t e m 0011300 ( t h i s s l o t N a m e ) 0011320 ) f r o m \r \t \t \t \t \t \t ( a 0011340 @ ( I t e m ( t h i s t e m 0011360 p l a t e ) ) \r \t \t \t \t \t \t \t w 0011400 h i c h I s @ ( I t e m ( t 0011420 h i s i n s t a n c e ) ) ) ) 0011440 \r \t \t \t \t \t n e w P o s 0011460 s i b i l i t i e s : 1 ) \r \r 032 0011500 z 1 8 8 7 3 \ 1 b 1 9 B 4 5 i 3 0011520 2 I \r ! ! ! ! ! ! ! ! ! ! ! ! ! 0011540 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0011700 ! ! 032 z 1 8 8 7 3 e 1 c \r ( C l 0011720 a s s i f y C o l u m n \r [ 0011740 L A M B D A N I L 0011760 * 0012020 ( * d i f f e r e n t 0012040 i a l d i a g n o s e r \r \t \t 0012060 \t \t \t \t f o r p 0012100 a t t e r n o f a d d e n d 0012120 a n d s u m \r \t \t \t \t \t \t 0012140 l e t t e r s ) 032 0012160 z 1 8 8 7 3 \ 1 b 1 4 B 5 6 i \r 0012200 * * * t h e r e a r e t w o 0012220 i s s u e s h e r e - - 0012240 o n e i n v o l v e s h o w 0012260 t o p u t t h i s i n 0012300 d e c l a r a t i v e s t r u 0012320 c t u r e s a s a " s e l 0012340 e c t i o n " m e c h a n i s 0012360 m . T h e o t h e r h a 0012400 s t o d o w i t h h o w 0012420 t o h a n d l e t h e m 0012440 e t a - d e s c r i p t o r s 0012460 ( a V a l u e D e s c ) w 0012500 h i c h b e l o n g t o t 0012520 h e r e s u l t i n g d e s 0012540 c r i p t o r s a d d e d t 0012560 o t h e i n s t a n c e , 0012600 n o t t o t h e d e s c r 0012620 i p t o r i n t h e t e m 0012640 p l a t e . N o t e t h a 0012660 t t h i s i s a v o i d e 0012700 d h e r e b e c a u s e t 0012720 h e y a r e i n a n a r 0012740 g u m e n t t o M a k e K R 0012760 L . 032 z 1 8 8 7 3 e 6 j \ b i \r 0013000 \r ( P R O G ( ( c o 0013020 l u m n ( I t e m ( t h i s 0013040 i n s t a n c e ) ) \r \t 0013060 ( t o p ( I t e m ( t h a t 0013100 t o p L e t t e r ) \r \t 0013120 ( b o t t o m ( I t e m ( t 0013140 h a t b o t t o m L e t t e r 0013160 ) ) \r \t ( s u m ( I t e 0013200 m ( t h a t s u m L e t t e 0013220 r ) ) \r \t ( b l a n k ( 0013240 I t e m B l a n k ) ) ) \r 0013260 ( D e s c r i b e c o l 0013300 u m n \ ( a S u m m a t i o 0013320 n w i t h s u m = \r \t \t \t 0013340 \t ( # ( t h e s u m f r o 0013360 m ( a C o l u m n w h i c 0013400 h I s @ c o l u m n ) ) \r \t \t 0013420 \t \t \t ^ ( a V a l u e D e s 0013440 c ) ) \r ( D e s c r i 0013460 b e \ ( t h e s u m f r o 0013500 m ( a C o l u m n w h i c 0013520 h I s @ c o l u m n ) ) \r \t \t 0013540 \ ( a S u m m a t i o n w 0013560 i t h \r \t \t \t s u m = ( # 0013600 ( t h e s u m f r o m ( a 0013620 C o l u m n w h i c h I s 0013640 @ c o l u m n ) ) \r \t \t \t \t \t ^ 0013660 ( a V a l u e D e s c ) ) \r 0013700 \t \t \t a d d e n d s = \r \t \t \t 0013720 \t ( S e q ( # ( t h e v a 0013740 l u e f r o m ( a L e t t 0013760 e r w h i c h I s @ s u m ) 0014000 ) \r \t \t \t \t \t ^ ( a V a l u 0014020 e D e s c ) ) \r \t \t \t \t 0014040 ( # ( t h e c a r r y O 0014060 u t f r o m ( a C o l u m 0014100 n w h i c h I s @ c o l u m 0014120 n ) ) \r \t \t \t \t \t ^ ( a V a 0014140 l u e D e s c ) ) ) ) ) ) \r 0014160 ( i f ( A N D t o p = 0014200 b l a n k b o t t o m = b l a 0014220 n k ) \r \t t h e n 0014240 ( D e s c r i b e c o l u m n 0014260 \r \t \t \t \t \ ( # ( a T w o B l 0014300 a n k s ) \r \t \t \t \t ( a 0014320 C o l u m n w i t h s u m 0014340 = 1 c a r r y I n = 1 0014360 c a r r y O u t = 0 ) ) ) 0014400 \r \t e l s e i f t o p = b l a 0014420 n k \r \t t h e n ( D 0014440 e s c r i b e c o l u m n \r \t 0014460 \t \t \ ( # ( a O n e B 0014500 l a n k ) \r \t \t \t ( a 0014520 S u m m a t i o n w i t h 0014540 a d d e n d s = \r \t \t \t \t ( S 0014560 e q ( # ( t h e v a l u e 0014600 f r o m ( a L e t t e r 0014620 w h i c h I s @ b o t t o m ) 0014640 ) \r \t \t \t \t \t ^ ( a V a l u 0014660 e D e s c ) ) \r \t \t \t \t 0014700 ( # ( t h e c a r r y I 0014720 n f r o m ( a C o l u m n 0014740 w h i c h I s @ c o l u m n 0014760 ) ) \r \t \t \t \t \t ^ ( a V a l 0015000 u e D e s c ) ) ) ) ) ) \r \t e l 0015020 s e i f b o t t o m = b l a n 0015040 k \r \t t h e n ( D e 0015060 s c r i b e c o l u m n \r \t \t 0015100 \t \ ( # ( a O n e B l a n k 0015120 ) \r \t \t \t ( a S u m m 0015140 a t i o n w i t h a d d e n 0015160 d s = \r \t \t \t \t ( S e q ( # 0015200 ( t h e v a l u e f r o m 0015220 ( a L e t t e r w h i c h 0015240 I s @ t o p ) ) \r \t \t \t \t \t ^ 0015260 ( a V a l u e D e s c ) ) \r 0015300 \t \t \t \t ( # ( t h 0015320 e c a r r y I n f r o m ( 0015340 a C o l u m n w h i c h I s 0015360 @ c o l u m n ) ) \r \t \t \t \t \t 0015400 ^ ( a V a l u e D e s c ) ) 0015420 ) ) ) ) \r \t w i t h b o 0015440 t t o m D i g i t = B l a n 0015460 k D i g i t ) ) \r \t e l s e 0015500 ( D e s c r i b e c o l u m n 0015520 \r \t \t \t \ ( # ( a N o B l a 0015540 n k s ) \r \t \t \t ( a S 0015560 u m m a t i o n w i t h a d 0015600 d e n d s = \r \t \t \t \t ( S e q 0015620 ( # ( t h e v a l u e f 0015640 r o m ( a L e t t e r w h 0015660 i c h I s @ t o p ) ) \r \t \t \t 0015700 \t \t ^ ( a V a l u e D e s c 0015720 ) ) \r \t \t \t \t ( # 0015740 ( t h e v a l u e f r o m 0015760 ( a L e t t e r w h i c h I 0016000 s @ b o t t o m ) ) \r \t \t \t \t 0016020 \t ^ ( a V a l u e D e s c ) 0016040 ) \r \t \t \t \t ( # ( 0016060 t h e c a r r y I n f r o m 0016100 ( a C o l u m n w h i c h 0016120 I s @ c o l u m n ) ) \r \t \t \t 0016140 \t \t ^ ( a V a l u e D e s c 0016160 ) ) ) ) ) ) ) \r ( i f 0016200 t o p = b o t t o m \r \t 0016220 t h e n ( D e s c r i b e 0016240 c o l u m n \ ( a T w i n 0016260 A d d e n d ) ) \r ( i f 0016300 t o p = s u m \r \t t h e n 0016320 ( D e s c r i b e c o l u m n 0016340 \ ( a S u m E q u a l s A d 0016360 d e n d w i t h l o n e L e 0016400 t t e r = ( m y t o p L e 0016420 t t e r ) ) ) \r ( i f 0016440 b o t t o m = s u m \r \t t h e 0016460 n ( D e s c r i b e c o l u 0016500 m n \ ( a S u m E q u a l s 0016520 A d d e n d w i t h l o n e 0016540 L e t t e r = ( m y b o t 0016560 t o m L e t t e r ] ) \r 032 z 1 8 0016600 8 7 3 \ b i 2 B I \r ! ! ! ! ! ! 0016620 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0016760 ! ! ! ! ! ! ! ! ! \r 032 z 1 8 8 7 0017000 3 e 1 c \r ( D O P 1 \r [ L A 0017020 M B D A ( D ) \r ( * 0017040 t h e l a m b d a b i n d i 0017060 n g i s t o f a k e o u 0017100 t C l i s p ) \r ( D e 0017120 s c r i b e ( N e w U n i t 0017140 ' P r o b l e m 1 ) \r \t 0017160 \ \r \t ( a P r 0017200 o b l e m w i t h t o p W o 0017220 r d " D O N A L D " \r \t \t 0017240 b o t t o m W o r d " G E R 0017260 A L D " \r \t \t s u m W o r d 0017300 " R O B E R T " ) ) \r ( 0017320 D e s c r i b e \ D \ ( a 0017340 L e t t e r w i t h v a l 0017360 u e = 5 ] ) \r 032 z 1 8 8 7 3 0017400 \ 1 b 4 B \r ! ! ! ! ! ! ! ! ! ! 0017420 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0017560 ! ! ! ! ! \r 032 z 1 8 8 7 3 e 1 c 0017600 \r ( G e t L e t t e r s \r [ 0017620 L A M B D A ( s t r i n g p 0017640 a d ) \r \r ( 0017660 * u s e d i n s e t t i n 0017700 g u p t h e p r o b l e m 0017720 , t o g e t a s e q u e 0017740 n c e o f \r \t l e t t e 0017760 r u n i t s c o r r e s p o 0020000 n d i n g t o t h e w o r 0020020 d s i n t h e p r o b l e 0020040 m \r \t s t a t e m e n t . 0020060 R e t u r n s l i s t i n 0020100 r i g h t t o l e f t o 0020120 r d e r . \r \t T h e e x t 0020140 r a b l a n k s a r e i n 0020160 c a s e t h e s u m i s 0020200 l o n g e r t h a n o n e 0020220 o r \r \t b o t h o f 0020240 t h e a d d e n d s ) \r \r 0020260 ( P R O G ( c h a r L i s 0020300 t ) \r [ c h 0020320 a r L i s t _ ( f o r c h a r 0020340 a c t e r i n s t r i n g \r 0020360 \t \t c o l l e c t 0020400 ( O R ( G U c h a r a c t 0020420 e r ) \r \t \t \t \t ( M a k e 0020440 C h a r a c t e r U n i t c h 0020460 a r a c t e r ] \r 0020500 ( R E T U R N ( R E V E 0020520 R S E ( i f p a d t h e n 0020540 c h a r L i s t \r \t \t \t 0020560 \t \t e l s e < ( G U ' B 0020600 l a n k ) ! c h a r L i s t 0020620 > ] ) \r 032 z 1 8 8 7 3 \ 1 b 1 0 0020640 B \r ! ! ! ! ! ! ! ! ! ! ! ! ! ! 0020660 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0021020 ! \r 032 z 1 8 8 7 3 e 1 c \r ( G e 0021040 t P a r i t y \r [ L A M B D 0021060 A ( d e s c r ) \r ( P 0021100 R O G ( n u m b e r ) \r \t ( R 0021120 E T U R N \r \t ( i f n u m b 0021140 e r _ ( G e t I t e m d e 0021160 s c r ) \r \t t h e n ( 0021200 I R E M A I N D E R n u m b 0021220 e r 2 ) ) \r \t e l s e i f 0021240 ( M a t c h \ ( a n O d d 0021260 D i g i t ) d e s c r ) \r \t 0021300 t h e n 1 \r \t e l s 0021320 e i f ( M a t c h \ ( a n 0021340 E v e n D i g i t ) d e s c r 0021360 ) \r \t t h e n 0 \r \t 0021400 e l s e N I L ] ) \r 032 z 1 8 0021420 8 7 3 \ 1 b 9 B \r ! ! ! ! ! ! ! 0021440 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0021600 ! ! ! ! ! ! ! ! \r 032 z 1 8 8 7 3 0021620 e 1 c \r ( G i v e A n s w e r \r 0021640 [ L A M B D A ( ) 0021660 0021700 ( * p 0021720 r i n t s a n d s t o p s 0021740 w i t h \r \t \t \t \t \t \t 0021760 a g e n d a i n t a c t 0022000 ) \r ( f o r l e t t e 0022020 r i n ( I t e m S e q u e n 0022040 c e ( t h e l e t t e r s A 0022060 p p e a r i n g f r o m \r \t \t 0022100 \t \t \t ( a P r o b l e m w h 0022120 i c h I s @ c u r r e n t P r 0022140 o b l e m ) ) ) \r 0022160 d o ( p r i n t o u t N I L 0022200 T l e t t e r : u n i t N a 0022220 m e " = " \r \t \t ( 0022240 I t e m ( t h e v a l u e 0022260 f r o m ( a L e t t e r w 0022300 h i c h I s @ l e t t e r ) ) 0022320 ) \r ( p r i n t o u t 0022340 N I L T " P r o b l e m d 0022360 o n e " T " L i s t e n i n 0022400 g " ] ) \r 032 z 1 8 8 7 3 \ 1 b 1 0022420 0 B \r ! ! ! ! ! ! ! ! ! ! ! ! ! 0022440 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0022600 ! ! \r 032 z 1 8 8 7 3 e 1 c \r ( M 0022620 a k e C h a r a c t e r U n i t 0022640 \r [ L A M B D A ( c h a r 0022660 a c t e r ) 0022700 0022720 ( * t a k e s 0022740 a c h a r a c t e r a t o 0022760 m \r \t \t \t \t \t \t a 0023000 n d c r e a t e s a U n i 0023020 t w i t h \r \t \t \t \t \t \t 0023040 n a m e e q u a l l 0023060 i n g t h e \r \t \t \t \t \t \t 0023100 c h a r a c t e r ) 0023120 \r ( P R O G ( u n i t 0023140 ) \r ( u n i 0023160 t _ ( N e w U n i t c h a r a 0023200 c t e r ) ) \r 0023220 ( D e s c r i b e u n i t 0023240 \ ( a L e t t e r w i t h 0023260 p r o b l e m = @ c u r r e 0023300 n t P r o b l e m ) ) ) \r 0023320 ( R E T U R N u 0023340 n i t ] ) \r 032 z 1 8 8 7 3 \ 1 b 0023360 1 7 B \r 032 z 1 8 8 7 3 e 1 c \r ! 0023400 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0023540 ! ! ! ! ! ! ! ! ! ! ! ! ! ! 032 z 0023560 1 8 8 7 3 e 1 c \r ( P r o c e s 0023600 s C o l u m n \r [ L A M B D 0023620 A ( c o l u m n ) \r \t ( C a l 0023640 l I f N e e d e d 2 ' P r o 0023660 c e s s S u m m a t i o n < \ 0023700 ( t h e s u m f r o m ( a 0023720 C o l u m n w h i c h I s 0023740 @ c o l u m n ) ) > ) \r \t ( C a 0023760 l l I f N e e d e d 2 ' P r 0024000 o c e s s S u m m a t i o n c 0024020 o l u m n ) \r \t ( T r y R e p e 0024040 a t a b l e S t r a t e g i e s 0024060 c o l u m n ] ) \r 032 z 1 8 8 7 0024100 3 \ 1 b 1 3 B \r ! ! ! ! ! ! ! ! 0024120 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0024260 ! ! ! ! ! ! ! 032 z 1 8 8 7 3 e 1 0024300 c \r ( P r o c e s s O n e B l a 0024320 n k \r [ L A M B D A ( c o 0024340 l u m n ) \r ( P R O G 0024360 ( l o n e L e t t e r s u m L 0024400 e t t e r l o n e V a l u e 0024420 s u m V a l u e ) ( * 0024440 F i g u r e s o u t t h e 0024460 \r \t \t \t \t \t \t c a 0024500 r r y I n a n d f i l l s 0024520 i n t h e \r \t \t \t \t \t \t 0024540 v a l u e s o f t 0024560 h e t w o l e t t e r s \r \t 0024600 \t \t \t \t \t i f o 0024620 n e i s k n o w n . ) \r 0024640 ( l o n e L e t 0024660 t e r _ ( I t e m ( t h e l 0024700 o n e L e t t e r f r o m ( 0024720 a O n e B l a n k w h i c h 0024740 I s @ c o l u m n ) ) ) ) \r 0024760 ( D e s c r i 0025000 b e \ ( t h e v a l u e f 0025020 r o m ( a L e t t e r w h 0025040 i c h I s @ l o n e L e t t e 0025060 r ) ) \r \t \t \ ( N o 0025100 t 0 ) ) \r 0025120 ( s u m L e t t e r _ ( I t e m 0025140 ( t h e s u m L e t t e r 0025160 f r o m ( a C o l u m n w 0025200 h i c h I s @ c o l u m n ) ) 0025220 ) ) \r ( i f 0025240 l o n e L e t t e r = s u m L 0025260 e t t e r t h e n ( D e s c 0025300 r i b e C o l u m n c o l u m 0025320 n ' c a r r y I n 0 ) \r \t 0025340 e l s e ( D e s c r i b 0025360 e @ c o l u m n \ ( a C o 0025400 l u m n w i t h c a r r y I 0025420 n = 1 ] ) \r 032 z 1 8 8 7 3 \ 0025440 1 b 1 5 B \r ! ! ! ! ! ! ! ! ! ! 0025460 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0025620 ! ! ! ! ! 032 z 1 8 8 7 3 e 1 c \r 0025640 ( P r o c e s s S u m E q \r 0025660 [ L A M B D A ( c o l u m n ) 0025700 \r ( P R O G ( l o n e 0025720 L e t t e r l o n e V a l u e 0025740 c a r r y I n c a r r y O u 0025760 t ) \r \r \t ( l o n e L e t t e r 0026000 _ ( I t e m ( t h e l o 0026020 n e L e t t e r f r o m \r \t \t 0026040 \t \t ( a S u m E q u a l s A d 0026060 d e n d w h i c h I s @ c o 0026100 l u m n ) ) ) ) \r \t ( l o n e V 0026120 a l u e _ ( I t e m ( t h 0026140 e v a l u e f r o m ( a 0026160 L e t t e r w h i c h I s @ 0026200 l o n e L e t t e r ) ) ) ) \r \t 0026220 ( c a r r y I n _ ( I t e m 0026240 ( t h e c a r r y I n f r 0026260 o m ( a C o l u m n w h i 0026300 c h I s @ c o l u m n ) ) ) ) 0026320 \r \t ( c a r r y O u t _ ( I 0026340 t e m ( t h e c a r r y O u 0026360 t f r o m ( a C o l u m n 0026400 w h i c h I s @ c o l u m n 0026420 ) ) ) ) \r \r \t ( i f ( A N D 0026440 c a r r y I n c a r r y O u t 0026460 l o n e V a l u e ) t h e n 0026500 N I L \r \t e l s e i f ( O 0026520 R ( E Q c a r r y I n 1 ) 0026540 ( E Q c a r r y O u t 1 0 0026560 ) ( E Q l o n e V a l u e 0026600 9 ) ) \r \t t h e n ( D e 0026620 s c r i b e c o l u m n \ ( 0026640 a C o l u m n w i t h c a 0026660 r r y I n = 1 c a r r y O 0026700 u t = 1 0 ) ) \r \t \t ( D e 0026720 s c r i b e l o n e L e t t e 0026740 r \ ( a L e t t e r w i t 0026760 h v a l u e = 9 ) ) \r \t 0027000 e l s e i f ( O R ( E Q c 0027020 a r r y I n 0 ) ( E Q c a 0027040 r r y O u t 0 ) ( E Q l o 0027060 n e V a l u e 0 ) ) \r \t 0027100 t h e n ( D e s c r i b e c 0027120 o l u m n \ ( a C o l u m n 0027140 w i t h c a r r y I n = 0027160 0 c a r r y O u t = 0 ) ) 0027200 \r \t \t ( D e s c r i b e l o 0027220 n e L e t t e r \ ( a L e t 0027240 t e r w i t h v a l u e = 0027260 0 ] ) \r 032 z 1 8 8 7 3 \ 1 b 1 0027300 2 B \r ! ! ! ! ! ! ! ! ! ! ! ! ! 0027320 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0027460 ! ! 032 z 1 8 8 7 3 e 1 c \r ( P r 0027500 o c e s s S u m m a t i o n \r 0027520 [ L A M B D A ( s u m m a t 0027540 i o n D e s c c h e c k L i m 0027560 i t s ) \r ( P R O G ( 0027600 ( k n o w n S u m 0 ) s u m 0027620 I t e m u n k n o w n s n u 0027640 m b e r ) \r \r ( s 0027660 u m I t e m _ ( I t e m ( 0027700 t h e s u m f r o m ( a 0027720 S u m m a t i o n w h i c h I 0027740 s @ s u m m a t i o n D e s c 0027760 ) ) ) ) \r \r ( f o 0030000 r d e s c r i n ( G e t D 0030020 e s c r i p t i o n S e q u e n 0030040 c e \ ( t h e s u m m a n d 0030060 s f r o m ( a S u m m a t 0030100 i o n \r \t \t \t \t \t \t \t w h i c h 0030120 I s @ s u m m a t i o n D e s 0030140 c ) ) ) \r \t d o ( i f n 0030160 u m b e r _ ( G e t I t e m 0030200 d e s c r ) \r \t \t t h e n ( 0030220 k n o w n S u m _ k n o w n 0030240 S u m + n u m b e r ) \r \t \t e l 0030260 s e ( p u s h u n k n o w n 0030300 s ( S e e k d e s c r \ ( 0030320 a V a l u e D e s c r ) ) ) ) 0030340 \r \r \t ( i f ( N O T u n k n 0030360 o w n s ) \r \t t h e n 0030400 ( i f ( N O T s u m I t e m 0030420 ) \r \t \t \t t h e n ( D e s c r 0030440 i b e ( S e e k \ ( t h e 0030460 s u m f r o m ( a S u m m 0030500 a t i o n \r \t \t \t \t \t \t \t w h i 0030520 c h I s @ s u m m a t i o n D 0030540 e s c ) ) ) \r \t \t \t \t \t \t \ 0030560 ( a V a l u e D e s c r ) ) \r 0030600 \t \t \t \t \t k n o w n S u m ) 0030620 \r \t \t e l s e i f ( N 0030640 O T ( s u m I t e m = k n 0030660 o w n S u m ) ) \r \t \t \t t h e n 0030700 ( C o m p l a i n ) ) \r \t 0030720 e l s e i f ( A N D s u m 0030740 I t e m ( N O T u n k n o w 0030760 n s : 2 ) ) ) \r \t t h e 0031000 n ( D e s c r i b e u n k n 0031020 o w n s : 1 ( s u m I t e m 0031040 - k n o w n S u m ) ) \r \t 0031060 e l s e i f c h e c k L i m i 0031100 t s \r \t t h e n ( P r 0031120 o c e s s F o r B o u n d s s 0031140 u m m a t i o n D e s c s u m 0031160 u n k n o w n s k n o w n S 0031200 u m ) \r \t \t ( i f ( A N 0031220 D s u m I t e m ( N O T u 0031240 n k n o w n s : 3 ) ) \r \t \t \t t 0031260 h e n ( P r o c e s s L i n e 0031300 a r u n k n o w n s : 1 \r \t \t 0031320 \t \t \t \t u n k n o w n s : 2 \r \t 0031340 \t \t \t \t \t < ' L A M B D A ' ( 0031360 x ) < ' D I F F E R E N C E 0031400 \r \t \t \t \t \t \t \t \t ( s u m I t 0031420 e m - k n o w n S u m ) ' 0031440 x > > ) ) \r \t \t \t ( 0031460 P r o c e s s L i n e a r u n 0031500 k n o w n s : 2 \r \t \t \t \t \t \t u 0031520 n k n o w n s : 1 \r \t \t \t \t \t \t 0031540 < ' L A M B D A ' ( x ) < ' 0031560 D I F F E R E N C E \r \t \t \t \t \t 0031600 \t \t \t ( s u m I t e m - k 0031620 n o w n S u m ) ' x > > ) ) \r 0031640 \t \t e l s e i f ( A N 0031660 D ( N O T s u m I t e m ) ( 0031700 N O T u n k n o w n s : 2 ) ) 0031720 \r \t \t \t t h e n s u m D e s c 0031740 r _ ( S e e k \ ( t h e 0031760 s u m f r o m \r \t \t \t \t \t \t \t 0032000 ( a S u m m a t i o n w h i 0032020 c h I s @ s u m m a t i o n D 0032040 e s c ) ) ) \r \t \t \t \t \t \t \t 0032060 \ ( a V a l u e D e s c r 0032100 ) ) \r \t \t \t ( P r o 0032120 c e s s L i n e a r u n k n o 0032140 w n s : 1 \r \t \t \t \t \t \t s u m D 0032160 e s c r \r \t \t \t \t \t \t < ' L A M 0032200 B D A ' ( x ) < ' P L U S 0032220 k n o w n S u m ' x > > ) ) \r 0032240 \t \t \t ( P r o c e s 0032260 s L i n e a r s u m D e s c r 0032300 \r \t \t \t \t \t \t u n k n o w n s : 0032320 1 \r \t \t \t \t \t \t < ' L A M B D A 0032340 ' ( x ) < ' D I F F E R E N 0032360 C E k n o w n S u m ' x > > 0032400 ) ) \r \t e l s e ( C a l l I 0032420 f N e e d e d 4 ' P r o c e 0032440 s s S u m m a t i o n < s u m 0032460 m a t i o n D e s c T > ] ) 032 0032500 z 1 8 8 7 3 \ 1 b 1 6 B \r ! ! ! 0032520 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0032660 ! ! ! ! ! ! ! ! ! ! ! ! 032 z 1 8 0032700 8 7 3 e 1 c \r \r \r ( P r o c e s 0032720 s F o r B o u n d s \r [ L A 0032740 M B D A ( s u m m a t i o n D 0032760 e s c s u m I t e m u n k n 0033000 o w n s k n o w n S u m ) \r 0033020 ( P R O G ( m i n S u 0033040 m m a x S u m n e w M i n 0033060 n e w M a x s u m D e s c l 0033100 i m i t s ) \r \r \t ( l i m i 0033120 t s _ ( f o r d e s c r 0033140 i n u n k n o w n s \r \t \t \t \t 0033160 c o l l e c t < d e s c r \r \t 0033200 \t \t \t \t ( G e t M i n i m u m 0033220 V a l u e d e s c r ) \r \t \t \t 0033240 \t \t ( G e t M a x i m u m V a 0033260 l u e d e s c r ) > ) ) \r \t 0033300 ( i f s u m I t e m t h e 0033320 n m i n S u m _ m a x S u 0033340 m _ s u m I t e m \r \t \t 0033360 e l s e s u m D e s c _ 0033400 ( S e e k \ ( t h e s u m 0033420 f r o m \r \t \t \t \t \t \t \t ( a S 0033440 u m m a t i o n w h i c h I s 0033460 @ s u m m a t i o n D e s c ) 0033500 ) ) \r \t \t \t \t \t \t \t \ ( 0033520 a V a l u e D e s c r ) ) \r \t 0033540 \t \t ( m a x S u m _ ( G e 0033560 t M a x i m u m V a l u e s u 0033600 m D e s c T ) ) \r \t \t \t ( n e 0033620 w M a x _ ( k n o w n S u m 0033640 + ( f o r x i n l i m 0033660 i t s s u m x : 3 ) ) \r \t \t 0033700 \t ( i f n e w M a x L T m 0033720 a x S u m \r \t \t \t \t t h e n 0033740 m a x S u m _ n e w M a x \r 0033760 \t \t \t \t \t ( D e s c r i b e s 0034000 u m D e s c \ ( A t M o s t 0034020 @ n e w M a x ) ) ) \r \t \t \t ( m 0034040 i n S u m _ ( G e t M i n i 0034060 m u m V a l u e s u m D e s c 0034100 T ) ) \r \t \t \t ( n e w M i n 0034120 _ ( k n o w n S u m + ( f 0034140 o r x i n l i m i t s s 0034160 u m x : 2 ) ) \r \t \t \t ( i f 0034200 n e w M i n G T m i n S u m 0034220 \r \t \t \t \t t h e n m i n S u 0034240 m _ n e w M i n \r \t \t \t \t \t 0034260 ( D e s c r i b e s u m D e s 0034300 c \ ( A t L e a s t @ n e w 0034320 M i n ) ) ) ) \r \t \t ( f o r t 0034340 r i p l e i n l i m i t s \r 0034360 \t \t d o ( n e w M i n 0034400 _ ( m i n S u m - ( k n 0034420 o w n S u m + ( f o r x 0034440 i n l i m i t s \r \t \t \t \t \t \t 0034460 \t \t w h e n ( N O T ( x 0034500 : 1 = t r i p l e : 1 ) ) \r \t \t 0034520 \t \t \t \t \t \t s u m x : 3 ) 0034540 ) ) ) \r \t \t \t ( i f n e w M i 0034560 n L T t r i p l e : 2 \r \t 0034600 \t \t t h e n t r i p l e : 0034620 2 _ n e w M i n \r \t \t \t \t ( 0034640 D e s c r i b e t r i p l e : 0034660 1 \ ( A t L e a s t @ n e w 0034700 M i n ) ) ) \r \t \t \t ( n e w M a 0034720 x _ ( m a x S u m - ( k 0034740 n o w n S u m + ( f o r x 0034760 i n l i m i t s \r \t \t \t \t \t 0035000 \t \t \t w h e n ( N O T ( 0035020 x : 1 = t r i p l e : 1 ) ) \r \t 0035040 \t \t \t \t \t \t \t s u m x : 2 0035060 ) ) ) ) \r \t \t \t ( i f n e w M 0035100 a x G T t r i p l e : 3 \r 0035120 \t \t \t t h e n t r i p l e 0035140 : 3 _ n e w M a x \r \t \t \t \t 0035160 ( D e s c r i b e t r i p l e 0035200 : 1 \ ( A t M o s t @ n e w 0035220 M a x ) ) ) ] ) \r 032 z 1 8 8 7 3 0035240 \ 3 b 1 6 B \r ! ! ! ! ! ! ! ! ! 0035260 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0035420 ! ! ! ! ! ! 032 z 1 8 8 7 3 e 1 c 0035440 \r \r \r ( P r o c e s s L i n e a 0035460 r \r [ L A M B D A ( f i r 0035500 s t s e c o n d f o r m u l 0035520 a ) \r ( P R O G ( f i 0035540 r s t P o s s i b i l i t i e s 0035560 s e c o n d P o s s i b i l i 0035600 t i e s ) \r \t ( f i r s t P o s 0035620 s i b i l i t i e s _ ( G e 0035640 t P o s s i b i l i t i e s f 0035660 i r s t ) ) \r \t ( s e c o n d P 0035700 o s s i b i l i t i e s _ ( 0035720 G e t P o s s i b i l i t i e s 0035740 s e c o n d ) ) \r \t n e w P o 0035760 s s i b i l i t i e s _ ( c 0036000 o l l e c t x i n f i r s 0036020 t P o s s i b i l i t i e s \r \t 0036040 \t \t \t w h e n ( F M E M B 0036060 ( A p p l y f o r m u l a 0036100 x ) s e c o n d P o s s i b i 0036120 l i t i e s ) ) \r \t ( i f ( N 0036140 O T ( E Q U A L f i r s t P 0036160 o s s i b i l i t i e s n e w 0036200 P o s s i b i l i t i e s ) ) \r 0036220 \t \t t h e n ( D e s c r i b e 0036240 f i r s t \ ( I n @ ( M a 0036260 k e K r l S e q u e n c e n e 0036300 w P o s s i b i l i t i e s ) ) 0036320 ) ) ] ) \r 032 z 1 8 8 7 3 \ 3 b 1 0036340 3 B \r ! ! ! ! ! ! ! ! ! ! ! ! ! 0036360 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0036520 ! ! 032 z 1 8 8 7 3 e 1 c \r ( P r 0036540 o c e s s S u m m a t i o n F o 0036560 r P a r i t y \r [ L A M B D 0036600 A ( s u m D e s c r ) \r 0036620 ( P R O G ( s u m P a r i t 0036640 y ( k n o w n S u m 0 ) u 0036660 n k n o w n s p a r i t y ) \r 0036700 \r \t ( s u m P a r i t y _ ( 0036720 G e t P a r i t y ( t h e s 0036740 u m f r o m ( a S u m m a 0036760 t i o n w h i c h I s @ s u 0037000 m D e s c r ) ) ) ) \r \r \t ( f o 0037020 r d e s c r i n ( G e t D 0037040 e s c r i p t i o n S e q u e n 0037060 c e \ ( t h e s u m m a n d 0037100 s f r o m \r \t \t \t \t \t \t \t 0037120 ( a S u m m a t i o n w h i 0037140 c h I s @ s u m D e s c r ) ) 0037160 ) \r \t d o ( i f p a r i 0037200 t y _ ( G e t P a r i t y 0037220 d e s c r ) \r \t \t t h e n ( k 0037240 n o w n S u m _ k n o w n S 0037260 u m + p a r i t y ) \r \t \t e l s 0037300 e ( p u s h u n k n o w n s 0037320 ( S e e k d e s c r \ ( a 0037340 V a l u e D e s c r ) ) ) ) \r 0037360 \r \t ( i f ( N O T u n k n o 0037400 w n s ) \r \t t h e n ( 0037420 i f ( N O T s u m P a r i t 0037440 y ) \r \t \t \t t h e n ( D e s c 0037460 r i b e ( S e e k \ ( t h e 0037500 s u m f r o m \r \t \t \t \t \t \t 0037520 \t ( a S u m m a t i o n w h 0037540 i c h I s @ s u m D e s c r ) 0037560 ) ) \r \t \t \t \t \t \t \ ( a V 0037600 a l u e D e s c r ) ) \r \t \t \t \t 0037620 \t ( S E L E C T Q ( I R E M 0037640 A I N D E R k n o w n S u m 0037660 2 ) \r \t \t \t \t \t \t ( 0 \ ( a 0037700 n E v e n N u m b e r ) ) \r \t 0037720 \t \t \t \t \t ( 1 \ ( a n O d d 0037740 N u m b e r ) ) \r \t \t \t \t \t \t ( 0037760 H E L P ) ) ) \r \t \t e 0040000 l s e i f ( N O T ( s u m P 0040020 a r i t y = ( I R E M A I N 0040040 D E R k n o w n S u m 2 ) ) 0040060 ) \r \t \t \t t h e n ( C o m p l 0040100 a i n ) ) \r \t e l s e i f 0040120 ( A N D s u m P a r i t y ( 0040140 N O T u n k n o w n s : 2 ) ) 0040160 \r \t t h e n ( D e s c 0040200 r i b e u n k n o w n s : 1 0040220 ( S E L E C T Q s u m P a r i 0040240 t y \r \t \t \t \t \t \t ( 0 \ ( a 0040260 n E v e n N u m b e r ) ) \r \t 0040300 \t \t \t \t \t ( 1 \ ( a n O d d 0040320 N u m b e r ) ) \r \t \t \t \t \t \t ( 0040340 H E L P ) ) ] ) \r 032 z 1 8 8 7 3 0040360 \ 1 b 2 5 B \r ! ! ! ! ! ! ! ! ! 0040400 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0040540 ! ! ! ! ! ! \r 032 z 1 8 8 7 3 e 1 0040560 c \r ( P r o c e s s T w i n \r 0040600 [ L A M B D A ( c o l u m n 0040620 ) 0040640 0040660 ( * c o l u m n 0040700 h a s s a m e d i g i t \r 0040720 \t \t \t \t \t \t o n 0040740 t o p a n d b o t t o m . ) 0040760 \r ( P R O G ( l e t t 0041000 e r v a r i a b l e i t e m 0041020 ) \r \t ( l e t t e r _ ( I t 0041040 e m ( t h e t o p L e t t e 0041060 r f r o m ( a C o l u m n 0041100 w h i c h I s @ c o l u m n 0041120 ) ) ) ) \r \t ( i f ( I t e m 0041140 ( t h e v a l u e f r o m 0041160 ( a L e t t e r w h i c h I 0041200 s @ l e t t e r ) ) ) t h e 0041220 n ( R E T U R N N I L ) ) \r 0041240 \t ( v a r i a b l e _ ( N e 0041260 w U n i t ( G E N S Y M ' V 0041300 ) ) ) \r \t ( D e s c r i b e v 0041320 a r i a b l e \ ( a V a r i 0041340 a b l e ) ) ) \r \t ( C u r r e n 0041360 t D e s c r i b e v a r i a b 0041400 l e \r \t \t \ ( a V a r i a b l 0041420 e w i t h \r \t \t p o s s 0041440 i b i l e V a l u e s = @ ( 0041460 f o r x i n ( G e t P o s 0041500 s i b i l i t i e s \ ( t h e 0041520 v a l u e f r o m \r \t \t \t \t 0041540 \t \t \t \t \t ( a L e t t e 0041560 r w h i c h I s @ l e t t e 0041600 r ) ) ) \r \t \t \t \t \t \t c o l l e 0041620 c t ( T I M E S x 2 ) ) ) 0041640 \r \t ( D e s c r i b e \ ( t h 0041660 e v a l u e o f ( a V a 0041700 r i a b l e w h i c h I s @ 0041720 v a r i a b l e ) ) \ ( a n 0041740 E v e n N u m b e r ) ) \r \t ( 0041760 t h i s S u m m a t i o n _ 0042000 \ ( a S u m m a t i o n w i 0042020 t h \r \t \t \t \t \t s u m = ( 0042040 t h e s u m f r o m ( a 0042060 C o l u m n w h i c h I s @ 0042100 c o l u m n ) ) \r \t \t \t \t \t s u 0042120 m m a n d s = \r \t \t \t \t \t 0042140 ( S e q ( # ( t h e v a 0042160 l u e f r o m ( a V a r i 0042200 a b l e w h i c h I s @ v a 0042220 r i a b l e ) ) \r \t \t \t \t \t \t 0042240 ^ ( a V a l u e D e s c 0042260 ) ) \r \t \t \t \t \t ( # 0042300 ( t h e c a r r y I n f r o 0042320 m ( a C o l u m n w h i c 0042340 h I s @ c o l u m n ) ) \r \t \t 0042360 \t \t \t \t ^ ( a V a l u 0042400 e D e s c ) ) ) ) ) \r \t ( P r 0042420 o c e s s S u m m a t i o n t 0042440 h i s S u m m a t i o n T ) \r 0042460 \t ( P r o c e s s F o r P a r i 0042500 t y t h i s S u m m a t i o n 0042520 ) \r \t ( R e s c h e d u l e M e 0042540 3 ) \r \t ( i f i t e m _ 0042560 ( I t e m ( t h e v a l u e 0042600 f r o m ( a V a r i a b l 0042620 e w h i c h I s @ v a r i a 0042640 b l e ) ) ) \r \t \t t h e n ( D 0042660 e s c r i b e \ ( t h e v a 0042700 l u e f r o m ( a L e t t 0042720 e r w h i c h I s @ l e t t 0042740 e r ) ) i t e m ) \r \t e l 0042760 s e ( P r o c e s s L i n e a 0043000 r \ ( t h e v a l u e f r 0043020 o m ( a L e t t e r w h i 0043040 c h I s @ l e t t e r ) ) \r \t 0043060 \t \t \t \ ( t h e v a l u e 0043100 f r o m ( a V a r i a b l e 0043120 w h i c h I s @ v a r i a b 0043140 l e ) \r \t \t \t \t ' ( L A M B D A 0043160 ( x ) ( T I M E S 2 x ] 0043200 ) \r 032 z 1 8 8 7 3 \ 1 0043220 b 1 1 B \r ! ! ! ! ! ! ! ! ! ! ! 0043240 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0043400 ! ! ! ! \r 032 z 1 8 8 7 3 e 1 c \r 0043420 ( R e p o r t I m p o s s i b l 0043440 e P r o b l e m \r [ L A M B 0043460 D A N I L 0043500 * 0043540 ( * C a l l e d w h e n e v 0043560 e r \r \t \t \t \t \t \t 0043600 c o n f l i c t i n g a s s 0043620 i g n m e n t s \r \t \t \t \t \t \t 0043640 a r e m a d e 0043660 i n t h e r e a l \r \t \t \t 0043700 \t \t \t w o r l d 0043720 a s o p p o s e d t o i n 0043740 \r \t \t \t \t \t \t h 0043760 y p o t h e t i c a l w o r l 0044000 d s . ) \r ( p r i n t o 0044020 u t N I L ( P P U c u r r 0044040 e n t P r o b l e m ) \r \t 0044060 T " T h i s p r o b l 0044100 e m i s n o t w e l l - f 0044120 o r m e d . " T ) \r \t ( H E L 0044140 P ] ) \r 032 z 1 8 8 7 3 \ 1 b 2 3 0044160 B \r ! ! ! ! ! ! ! ! ! ! ! ! ! ! 0044200 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0044340 ! \r 032 z 1 8 8 7 3 e 1 c \r ( S e 0044360 t U p P r o b l e m \r [ L A 0044400 M B D A N I L \r \r 0044420 ( * s e t s u p a 0044440 l l t h e n e c e s s a r y 0044460 d a t a s t r u c t u r e s 0044500 . \r \t C a l l e d b y d 0044520 e s c r i b i n g s o m e t h 0044540 i n g a s a p r o b l e m 0044560 . \r \t G e t L e t t e r s 0044600 i s a s p e c i a l f u n 0044620 c t i o n ( s e e b e l o w 0044640 ) f o r p r o d u c i n g 0044660 \r \t l i s t s o f u n i 0044700 t s ) \r \r \r ( P R O G 0044720 ( c o l u m n s l e t t e r s 0044740 ) \r [ f o r 0044760 t o t a l i n ( G e t L e 0045000 t t e r s ( I t e m ( t h e 0045020 s u m W o r d f r o m \r \t \t 0045040 \t \t \t \t ( a P r o b l e m w 0045060 h i c h I s @ c u r r e n t P 0045100 r o b l e m ) ) ) ) \r \t 0045120 a s t o p i n ( G e t 0045140 L e t t e r s ( I t e m ( t 0045160 h e t o p W o r d f r o m \r 0045200 \t \t \t \t \t \t ( a P r o b l e m 0045220 w h i c h I s @ c u r r e n 0045240 t P r o b l e m ) ) ) T ) \r 0045260 \t a s b o t t o m 0045300 i n ( G e t L e t t e r s ( 0045320 I t e m ( t h e b o t t o m 0045340 W o r d f r o m \r \t \t \t \t \t \t 0045360 ( a P r o b l e m w h i c h 0045400 I s @ c u r r e n t P r o b l 0045420 e m ) ) ) T ) \r \t 0045440 d o ( p u s h c o l u m n s 0045460 ( N e w U n i t ( G E N S Y 0045500 M " C " ) ) ) \r \t \t ( D e s c 0045520 r i b e c o l u m n s : 1 \ 0045540 ( a C o l u m n w i t h t 0045560 o p L e t t e r = @ t o p \r 0045600 \t \t \t \t \t \t \t b o t 0045620 t o m L e t t e r = @ b o t 0045640 t o m \r \t \t \t \t \t \t \t 0045660 s u m L e t t e r = @ t o t 0045700 a l ) ) \r \t \t ( i f c o l u m 0045720 n s : : 1 \r \t \t t h e n 0045740 ( D e s c r i b e c o l u m 0045760 n s : 1 \ ( a C o l u m n 0046000 w i t h \r \t \t \t \t \t \t \t r i g h 0046020 t N e i g h b o r = @ c o l 0046040 u m n s : 2 ) \r \t \t \t ( D e s 0046060 c r i b e c o l u m n s : 2 0046100 \ ( a C o l u m n w i t h \r 0046120 \t \t \t \t \t \t \t l e f t N e i g h 0046140 b o r = @ c o l u m n s : 1 0046160 ) \r \t \t e l s e ( D e s c 0046200 r i b e c o l u m n s : 1 \ 0046220 ( a C o l u m n w i t h c 0046240 a r r y I n = 0 ) ) \r \t \t ( 0046260 i f ~ ( M E M B t o p l e 0046300 t t e r s ) \r \t \t t h e 0046320 n ( p u s h l e t t e r s 0046340 t o p ) ) \r \t \t ( i f ~ ( M E 0046360 M B b o t t o m l e t t e r 0046400 s ) \r \t \t t h e n ( p 0046420 u s h l e t t e r s b o t t 0046440 o m ) ) \r \t \t ( i f ~ ( M E M 0046460 B t o t a l l e t t e r s ) 0046500 \r \t \t t h e n ( p u s 0046520 h l e t t e r s t o t a l ) 0046540 ) \r \t f i n a l l y 0046560 ( D e s c r i b e c o l u m n 0046600 s : 1 \ ( a C o l u m n w 0046620 i t h c a r r y O u t = 0 0046640 ) \r \t \t ( D e s c r i 0046660 b e c u r r e n t P r o b l e 0046700 m \r \t \t \t \ ( a 0046720 P r o b l e m w i t h \r \t \t \t 0046740 \t \t l e t t e r s A p p e a r i 0046760 n g = @ ( M a k e K r l S e 0047000 q u e n c e l e t t e r s ) \r 0047020 \t \t \t \t \t c o l u m n s = @ ( 0047040 M a k e K r l S e q u e n c e 0047060 c o l u m n s ] \r 0047100 ( C a l l 6 ' C h e c 0047120 k I f D o n e ] ) 032 z 1 8 8 7 3 0047140 \ 1 b 1 2 B \r ! ! ! ! ! ! ! ! ! 0047160 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0047320 ! ! ! ! ! ! \r 032 z 1 8 8 7 3 e 1 0047340 c \r ( T e s t C a s e s \r [ 0047360 L A M B D A ( u n i t d e s 0047400 c r i p t i o n L i s t ) \r \r 0047420 ( * f o r 0047440 e a c h d e s c r i p t i o n 0047460 i n d e s c r i p t i o n L 0047500 i s t , a h y p o t h e t i 0047520 c a l \r \t w o r l d i s 0047540 c r e a t e d , a n d t h 0047560 e d e s c r i p t i o n i s 0047600 a d d e d t o u n i t a 0047620 s a \r \t c o n t i n g e 0047640 n c y . T h i s i s d o n 0047660 e w i t h a l i m i t o 0047700 n t h e p r i o r i t y l 0047720 e v e l \r \t o f c a l l s 0047740 w h i c h p r o p a g a t e 0047760 f r o m i t , s o i t 0050000 g o e s o n f o r a s h 0050020 o r t \r \t t i m e f i n 0050040 d i n g i m p l i c a t i o n 0050060 s . I t i s a l s o d o 0050100 n e w i t h a s i g n a l 0050120 \r \t c a t c h e r w h i 0050140 c h c o n v e r t s a l l 0050160 c o n t r a d i c t i o n s i 0050200 n t o a t o p l e v e l 0050220 \r \t r e j e c t i o n o f 0050240 t h e h y p o t h e s i s . 0050260 I f a l l b u t t h e 0050300 l a s t o n e a r e \r \t 0050320 r e j e c t e d , i t i s 0050340 r e t u r n e d a s t h e 0050360 v a l u e . \r \t I f m o 0050400 r e t h a n o n e i s a 0050420 s s e r t e d w i t h o u t 0050440 c o n t r a d i c t i o n , \r 0050460 \t T e s t C a s e s r e t 0050500 u r n s N I L . ) \r \r \r 0050520 ( b i n d ( w o r l d p o 0050540 s s i b i l i t i e s ) \r \t f o 0050560 r d e s c i n d e s c r i 0050600 p t i o n L i s t \r \t d o ( i 0050620 f ( A N D ( N O T p o s s 0050640 i b i l i t i e s ) ( E Q d e 0050660 s c d e s c r i p t i o n L i 0050700 s t : - 1 ) ) \r \t \t t h e n ( 0050720 R E T U R N d e s c ) ) \r \t 0050740 ( w o r l d _ ( N e w U n 0050760 i t ( G E N S Y M " H " ) ) 0051000 ) \r \t ( D e s c r i b e 0051020 w o r l d \ ( a H y p o t 0051040 h e s i s w i t h b a s e 0051060 = @ u n i t a s s u m p t i 0051100 o n = @ d e s c ) ) ) \r \t 0051120 ( S e t W o r l d w o r 0051140 l d ( C a l l 2 ' D e s c 0051160 r i b e < u n i t d e s c 0051200 \ ( C o n t i n g e n t @ w o 0051220 r l d ) > ) ) \r \t ( R e 0051240 s c h e d u l e M e 3 ) \r \r 0051260 ( * t h i 0051300 s c a u s e s t h e C u r 0051320 r e n t c a l l t o b e 0051340 s u s p e n d e d a n d i t 0051360 s \r \t c o n t i n u a t i 0051400 o n p u t a t L e v e l 0051420 3 o n t h e a g e n d a , 0051440 s o i t w i l l n o t 0051460 b e \r \t c a l l e d u n t 0051500 i l a l l o f t h e l e 0051520 v e l 1 a n d 2 p r o p 0051540 a g a t i o n i s \r \t c 0051560 o m p l e t e d ) \r \r \r \t 0051600 ( i f ( N O T ( E Q U A L 0051620 " I m p o s s i b l e " \r \t \t 0051640 \t \t ( I t e m ( t h e 0051660 s t a t u s f r o m ( a H 0051700 y p o t h e s i s w h i c h I 0051720 s @ w o r l d ) ) ) ) ) \r \t 0051740 t h e n p o s s i b 0051760 i l i t i e s _ < d e s c ! 0052000 p o s s i b i l i t i e s > ) 0052020 \r \t ( i f p o s s i b 0052040 i l i t i e s : 2 t h e n ( 0052060 R E T U R N N I L ) ) ) \r \r \t 0052100 f i n a l l y ( R E T U R N 0052120 p o s s i b i l i t i e s : 1 ] 0052140 ) 032 z 1 8 8 7 3 \ 1 b 9 B 3 5 i 0052160 5 7 2 I 3 5 7 i 2 0 2 I \r \r \r ! 0052200 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0052340 ! ! ! ! ! ! ! ! ! ! ! ! ! ! 032 z 0052360 1 8 8 7 3 e 1 c \r ( T e s t M a 0052400 g n i t u d e M a p p i n g \r 0052420 [ L A M B D A ( ) 0052440 0052460 ( * U s 0052500 e d b y m a t c h e r t o 0052520 \r \t \t \t \t \t \t d 0052540 e t e r m i n e w h e t h e r 0052560 a v i e w \r \t \t \t \t \t \t 0052600 o f s o m e t h i 0052620 n g a s a \r \t \t \t \t \t \t 0052640 m a g n i t u d e 0052660 r e l a t i o n i s \r \t \t \t 0052700 \t \t \t c o r r e c 0052720 t . ) \r ( P R O G ( g 0052740 r e a t e r O n e l e s s e r 0052760 O n e ) \r ( 0053000 R E T U R N ( A N D ( g r e 0053020 a t e r O n e _ ( I t e m ( t 0053040 h i s h i g h e r ) ) \r \t \t \t 0053060 ( l e s s e r O n e 0053100 _ ( I t e m ( t h i s l o w 0053120 e r ) ) \r \t \t \t ( i 0053140 f g r e a t e r O n e L T 0053160 l e s s e r O n e \r \t \t \t 0053200 t h e n ' E X 0053220 I S T S \r \t \t \t \t e l s e ' D 0053240 O E S N O T E X I S T ] ) \r 032 z 0053260 1 8 8 7 3 \ 1 b 2 0 B \r \r ! ! ! 0053300 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0053440 ! ! ! ! ! ! ! ! ! ! ! ! 032 z 1 8 0053460 8 7 3 e 1 c \r ( T r y C a s e s 0053500 F o r L e t t e r s \r [ L A 0053520 M B D A ( n u m b e r ) \r \r 0053540 ( * u s e d 0053560 w h e n t h e r e a r e 0053600 o n l y t w o o r t h r e 0053620 e a l t e r n a t i v e s f 0053640 o r a l e t t e r . \r \t 0053660 s e t s u p a l t e r n a t 0053700 i v e w o r l d s i n w h 0053720 i c h t h e l e t t e r s 0053740 h a v e t h e \r \t g i v 0053760 e n v a l u e s a n d l o 0054000 o k s f o r c o n t r a d i 0054020 c t i o n s . ) \r ( P R 0054040 O G ( l e t t e r c a s e s 0054060 g o o d G u y ) \r \t ( i f l 0054100 e t t e r _ ( e x i s t s 0054120 l e t t e r \r \t \t \t i n ( I t 0054140 e m S e q u e n c e ( t h e 0054160 f r e e L e t t e r s f r o m 0054200 \r \t \t \t \t \t \t ( a P r o b l e 0054220 m w h i c h I s @ c u r r e 0054240 n t P r o b l e m ) ) ) \r \t \t \t 0054260 w h e n ( A N D ( c a s e s 0054300 _ ( G e t P o s s i b i l i 0054320 t i e s \ ( t h e v a l u e 0054340 f r o m \r \t \t \t \t \t \t \t \t \t ( 0054360 a L e t t e r w h i c h I s 0054400 @ l e t t e r ) ) ) ) \r 0054420 \t \t \t \t ( N O T 0054440 ( L E S S P n u m b e r ( 0054460 L E N G T H c a s e s ) ) ) \r 0054500 \t \t \t \t ( 0054520 g o o d G u y _ ( T e s t C a 0054540 s e s l e t t e r \r \t \t \t \t 0054560 \t \t \t ( f o r c a s e i 0054600 n c a s e s \r \t \t \t \t \t \t \t 0054620 c o l l e c t \ ( a L e t 0054640 t e r w i t h v a l u e = 0054660 @ c a s e ) ) ) \r \t \t t h e n 0054700 ( D e s c r i b e l e t t e 0054720 r g o o d G u y ] ) \r 032 z 1 8 0054740 8 7 3 \ 1 b 1 8 B \r ! ! ! ! ! ! 0054760 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! * 0055120 ! ! ! ! ! ! ! ! ! 032 z 1 8 8 7 3 0055140 e 1 c \r ( T r y S t r a t e g y 0055160 \r [ L A M B D A N I L \r 0055200 ( P R O G ( ( c o l u m 0055220 n ( I t e m ( t h i s i n 0055240 s t a n c e ) ) \r \t ( c o 0055260 l u m n T y p e ( I t e m ( 0055300 t h i s t e m p l a t e ) ) \r 0055320 \t ( m a t c h D e s c r i 0055340 p t i o n ( I t e m ( t h e 0055360 m a t c h D e s c f r o m \r 0055400 \t \t \t \t \t ( a C o l u m n D e 0055420 s c r i p t i o n w h i c h I 0055440 s ( t h i s t e m p l a t e 0055460 ) ) ) ) ) \r \t ( s t r a t 0055500 e g y ( I t e m ( t h e s 0055520 t r a t e g y f r o m \r \t \t \t 0055540 \t \t ( a C o l u m n D e s c r 0055560 i p t i o n w h i c h I s ( 0055600 t h i s t e m p l a t e ) ) ) 0055620 ) ) ) \r ( i f m a t 0055640 c h D e s c r i p t i o n \r \t 0055660 t h e n ( M a t c h m a t c 0055700 h D e s c r i p t i o n c o l 0055720 u m n \ ( a n A d d B i n d 0055740 i n g s ) ) ) \r ( i f 0055760 s t r a t e g y \r \t t h e n 0056000 ( C a l l 4 s t r a t e g 0056020 y < c o l u m n > ) ] ) \r 032 z 0056040 1 8 8 7 3 \ 1 b 1 1 B \r 032 z 1 8 0056060 8 7 3 e 1 c \r 032 z 1 8 8 7 3 \r N 0056100 e w U n i t t a k e s o n l 0056120 y o n e a r g w h i c h 0056140 i s t h e n a m e 032 z 1 8 8 0056160 7 3 \ b \r N e e d M a k e K r 0056200 l S e q u e n c e - - t a k 0056220 e s L I S P l i s t o f 0056240 i n d i v i d u a l s , p r o 0056260 d u c e s s e q u e n c e d 0056300 e s c r i p t i o n 032 z 1 8 8 7 0056320 3 \r I t S e q u e n c e i s 0056340 l i k e I t , b u t r e t 0056360 u r n s l i s t o f i n d 0056400 i v i d u a l s 032 z 1 8 8 7 3 \r 0056420 A d d B i n d i n g s i s a 0056440 d e s c r i p t i o n o f 0056460 a m a t c h \r E l i m i n a t 0056500 i o n s e t - - i n n i t 0056520 i a l , f i l t e r 032 z 1 8 8 7 0056540 3 \r E n u m e r a t e A n d T e 0056560 s t \ \ a s e e k w h i 0056600 c h e x p e c t s a n I N 0056620 i n i t s d e s c r i p t 0056640 i o n - - r e t u r n s a 0056660 s e q u e n c e 032 z 1 8 8 7 3 0056700 \r 032 z 1 8 8 7 3 \r 032 z 1 8 8 7 3 0056720 \r \r u s e v a r i a b l e t 0056740 o p r o c e s s p o s s i b 0056760 l e v a l u e s f o r s u 0057000 m ? / ? \r \r ( P r o c e s s B o 0057020 t h K n o w n \r [ L A M B D 0057040 A ( c o l u m n ) \r \r 0057060 ( * i f b o t h 0057100 a d d e n d s a r e k n o 0057120 w n b u t t h e n e i t h 0057140 e r t h e s u m n o r t 0057160 h e \r \t c a r r y i n i s 0057200 k n o w n . F i r s t c h 0057220 e c k s w h e t h e r t h e 0057240 n e e d f o r t h i s \r 0057260 \t s t i l l e x i s t s 0057300 s i n c e i t i s s c h e 0057320 d u l e d v e r y l o w p 0057340 r i o r i t y . \r \t T h e n 0057360 m a k e s a f e w v a g 0057400 u e s a s s e r t i o n s a 0057420 b o u t t h e s u m l e t t 0057440 e r a n d \r \t h o p e s 0057460 t h a t T r y E l i m i n a 0057500 t i o n h a s s o m e l u 0057520 c k . ) \r \r ( P R O G 0057540 ( c o l u m n c a r r y I n 0057560 t o p D i g i t b o t t o m D 0057600 i g i t c a r r y O u t s u 0057620 m D i g i t m i n i m u m S u 0057640 m s u m ) \r \t ( 0057660 t o p D i g i t _ ( I t e m ( 0057700 t h e t o p D i g i t f r o 0057720 m ( a C o l u m n w h i c 0057740 h I s @ c o l u m n ) ) ) ) ) 0057760 \r \t ( b o t t o m 0060000 D i g i t _ ( I t e m ( t h e 0060020 b o t t o m D i g i t f r o 0060040 m ( a C o l u m n w h i c 0060060 h I s @ c o l u m n ) ) ) ) ) 0060100 \r \t ( m i n i m u 0060120 m S u m _ ( K P l u s t o p D 0060140 i g i t b o t t o m D i g i t 0060160 ) \r \t ( i f c a 0060200 r r y I n \r \t \t t h e n ( 0060220 D e s c r i b e C o l u m n c 0060240 o l u m n ' s u m ( K P l u 0060260 s m i n i m u m S u m c a r 0060300 r y I n ) ) \r 0060320 * 0060360 ( 0060400 * T h i s s h o u l d f i 0060420 r e o f f \r \t \t \t \t \t \t 0060440 P r o c e s s C o l u 0060460 m n t o s p r e a d \r \t \t 0060500 \t \t \t \t t h e g 0060520 o o d i e s ) \r \t \t e l s e i 0060540 f ( A N D c a r r y O u t 0060560 ( K E q u a l m i n i m u m S 0060600 u m 9 ) ) \r \t \t t h e n 0060620 ( i f c a r r y O u t = 0 \r 0060640 \t \t \t t h e n ( D e s 0060660 c r i b e C o l u m n c o l u 0060700 m n ' s u m 9 ) \r \t \t \t 0060720 e l s e ( D e s c r i b e C o 0060740 l u m n c o l u m n ' s u m 0060760 1 0 ) ) \r \t \t e l s e \r \t \t 0061000 ( D e s c r i b e \r \t \t 0061020 ( I t e m ( t h e s u m 0061040 L e t t e r f r o m ( a C 0061060 o l u m n w h i c h I s @ c 0061100 o l u m n ) ) ) \r \t \t \ 0061120 ( a L e t t e r w i t h v 0061140 a l u e = \r \t \t \t ( O r 0061160 \ @ ( G e t D i g i t ( K T e 0061200 n s D i g i t m i n i m u m S 0061220 u m ) ) \r \t \t \t \ 0061240 @ ( G e t D i g i t ( K T e n 0061260 s D i g i t ( K P l u s m i 0061300 n i m u m S u m 1 ) ] ) \r \r w 0061320 h e n d e s c r i b e d , i 0061340 f l e t t e r n o t k n o 0061360 w n , t h e n d o t h i s 0061400 p r o c e s s i n g 032 z 1 8 8 0061420 7 3 \ 1 b 5 0 B 1 2 2 7 b \r 032 z 0061440 1 8 8 7 3 \r . . . t h i s i s 0061460 s t u f f f r o m b e f o 0061500 r e w h i c h I h a v e n 0061520 ' t w o r k e d i n y e t 0061540 . . . 032 z 1 8 8 7 3 \ b i \r \r ( 0061560 D E F I N E V \r H y p o t h e t 0061600 i c a l s \t \t \t ( N e w S i 0061620 g n a l P a t h \r \t \t \t 0061640 < ' A C T I O N T A B L E \r \t \t 0061660 \t ' S I G N A L S 0061700 < ' A d d i n g C o n f l i c t 0061720 i n g I n d i v i d u a l \r \t \t 0061740 \t \t \t < ' M a r k I m p o s s 0061760 i b l e w o r l d > > \r \t \t \t 0062000 ' ( A d d i n g I n 0062020 d i v i d u a l O K ) \r \t \t \t 0062040 ' ( A d d i n g D e 0062060 s c r i p t o r N O T O K ) \r 0062100 \t \t \t ' ( A d d i n 0062120 g N e w P e r s p e c t i v e 0062140 N O T O K ) \r \t \t \t 0062160 ' ( A d d i n g N e w N o r m a 0062200 l P e r s p e c t i v e N O T 0062220 O K ) \r \t \t \t ' ( A 0062240 d d i n g N e w P e r s p e c t 0062260 i v e F o r F e a t u r e s N 0062300 O T O K ) \r \t \t \t ' 0062320 [ A d d i n g C a l l T o A g e 0062340 n d a ( C O N D \r \t \t \t \t \t \t 0062360 ( ( G R E A T E R P 0062400 ( f e t c h p r i o r i t y \r 0062420 \t \t \t \t \t \t \t \t o f c a 0062440 l l ) \r \t \t \t \t \t \t \t \t 2 ) \r \t 0062460 \t \t \t \t \t ( Q U O 0062500 T E N O T O K ) ) \r \t \t \t \t \t 0062520 \t ( T ( Q U O T E 0062540 O K ] > ) ) ) \r \r ( C r y p t S 0062560 i g n a l T a b l e ( A C T I 0062600 O N T A B L E S I G N A L S 0062620 ( G o F i l l N o t F o u n d 0062640 N O T O K ) \r \t \t \t 0062660 ( T r a p A l r e a d y E x i 0062700 s t s O K ) \r \t \t \t 0062720 ( T r i g g e r A l r e a d 0062740 y E x i s t s O K ) \r \t \t \t 0062760 ( C a n t R e m o v 0063000 e T r a p O K ) \r \t \t \t 0063020 ( C a n t R e m o v e T 0063040 r i g g e r O K ) \r \t \t \t 0063060 ( A d d i n g C o n f 0063100 l i c t i n g I n d i v i d u a 0063120 l \r \t \t \t \t ( R e p o r t I m 0063140 p o s s i b l e P r o b l e m ) 0063160 ) \r \t \t \t ( C o n 0063200 t r a d i c t i o n ( R e p o 0063220 r t I m p o s s i b l e P r o b 0063240 l e m ) ) \r \t \t \t 0063260 ( T r y i n g E l i m i n a t i 0063300 o n O K ) \r \t \t \t 0063320 ( F o l l o w i n g S p e c i 0063340 f i c a t i o n I n t o P r o t 0063360 o t y p e O K ) \r \t \t \t 0063400 ( F o l l o w i n g S p 0063420 e c i f i c a t i o n D e e p e 0063440 r O K ) ) ) \r ( Q U I C K F I 0063460 N D ( A C T I O N T A B L E 0063500 S I G N A L S ( S e a r c h i 0063520 n g F o r I n d i v i d u a l 0063540 N O T O K ) \r \t \t \t ( C a n n o 0063560 t F i n d I n d i v i d u a l 0063600 O K ) ) ) \r ( R e p l a c e O l 0063620 d U n i t s S i g n a l T a b l 0063640 e ( A C T I O N T A B L E S 0063660 I G N A L S ( U n i t N a m e 0063700 C o n f l i c t O K ) ) ) \r ( 0063720 I n h i b i t C r y p t E l i m 0063740 i n a t i o n T a b l e ( A C 0063760 T I O N T A B L E S I G N A L 0064000 S ( T r y i n g E l i m i n a 0064020 t i o n N O T O K ) ) ) \r ) \r 0064040 ( S E T P R O P L I S T ( Q U 0064060 O T E s u m ) ) \r ( S E T P R 0064100 O P L I S T ( Q U O T E S U 0064120 M ) ) \r ( P u s h S i g n a l P 0064140 a t h C r y p t S i g n a l T 0064160 a b l e T ) \r ( D E C L A R E 0064200 : D O N T E V A L @ L O A D 0064220 D O E V A L @ C O M P I L E D 0064240 O N T C O P Y C O M P I L E R 0064260 V A R S \r \r ( A D D T O V A R 0064300 N L A M A ) \r \r ( A D D T O 0064320 V A R N L A M L M a r k I m 0064340 p o s s i b l e D o W h e n K 0064360 n o w n C o m p u t e ) \r ) \r 0064400 032 z 1 8 8 7 3 \ 1 0 b 1 3 B \r \0 0064420