$ od -c -N 50000 [eris]<LispCore>SOURCES>CL-ERROR!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       "   2   4   -   O   c   t   -
0000120    8   6       2   0   :   1   4   :   2   5   "     006 004   {
0000140    e   r   i   s   }   <   l   i   s   p   c   o   r   e   >   s
0000160    o   u   r   c   e   s   >   c   l   -   e   r   r   o   r   .
0000200    \   ;   1   1 006 001       3   5   3   7   1          \r  \r
0000220                            |   c   h   a   n   g   e   s   |    
0000240    |   t   o   :   |           (   f   u   n   c   t   i   o   n
0000260    s       d   e   f   i   n   e   -   c   o   n   d   i   t   i
0000300    o   n       n   o   r   m   a   l   i   z   e   -   s   l   o
0000320    t   -   d   e   s   c   r   i   p   t   i   o   n   s       s
0000340    p   l   i   t   -   p   r   o   c   e   e   d   -   c   l   a
0000360    u   s   e   s      \r                                        
0000400                                                                 
0000420                    p   r   o   c   e   e   d   -   c   a   s   e
0000440    -   f   r   o   m   -   c   l   a   u   s   e       p   r   o
0000460    c   e   s   s   -   p   r   o   c   e   e   d   -   k   e   y
0000500    w   o   r   d   s       c   h   e   c   k   -   *   c   a   s
0000520    e   -   s   e   l   e   c   t   o   r      \r                
0000540                                                                 
0000560                                            c   o   l   l   e   c
0000600    t   -   c   a   s   e   -   s   e   l   e   c   t   o   r   s
0000620        c   l   :   c   t   y   p   e   c   a   s   e       c   l
0000640    :   e   c   a   s   e   )  \r                                
0000660                                                                (
0000700    v   a   r   s       c   l   -   e   r   r   o   r   c   o   m
0000720    s   )  \r  \r                           |   p   r   e   v   i
0000740    o   u   s   |       |   d   a   t   e   :   |       "   2   4
0000760    -   O   c   t   -   8   6       1   9   :   1   1   :   2   7
0001000    "       {   e   r   i   s   }   <   l   i   s   p   c   o   r
0001020    e   >   s   o   u   r   c   e   s   >   c   l   -   e   r   r
0001040    o   r   .   \   ;   1   0   )  \r  \r  \r   ;       C   o   p
0001060    y   r   i   g   h   t       (   c   )       1   9   8   6    
0001100    b   y       X   e   r   o   x       C   o   r   p   o   r   a
0001120    t   i   o   n   .           A   l   l       r   i   g   h   t
0001140    s       r   e   s   e   r   v   e   d   .  \r  \r   (   p   r
0001160    e   t   t   y   c   o   m   p   r   i   n   t       c   l   -
0001200    e   r   r   o   r   c   o   m   s   )  \r  \r   (   r   p   a
0001220    q   q     006 002   c   l   -   e   r   r   o   r   c   o   m
0001240    s 006 001      \r                               (   (   c   o
0001260    m   s       (   *       |   ;   ;   |      \r                
0001300                                                "   T   e   m   p
0001320    o   r   a   r   y       b   o   o   t   s   t   r   a   p   p
0001340    i   n   g       s   t   u   f   f   .       A   n   y   t   h
0001360    i   n   g       i   n       h   e   r   e       g   e   t   s
0001400        c   h   a   n   g   e   d       o   n   c   e       C   L
0001420        s   t   a   r   t   s       w   o   r   k   i   n   g   .
0001440    "  \r                                                        
0001460                )  \r                                            
0001500                (   f   u   n   c   t   i   o   n   s       c   o
0001520    n   d   i   t   i   o   n   -   t   y   p   e   c   a   s   e
0001540        c   o   n   d   i   t   i   o   n   -   b   l   o   c   k
0001560        c   o   n   d   i   t   i   o   n   -   r   e   t   u   r
0001600    n   )   )  \r                                   (   c   o   m
0001620    s       (   *       |   ;   ;   |       "   I   n   t   e   r
0001640    n   a   l       s   t   u   f   f   .   "   )  \r            
0001660                                                (   e   x   p   o
0001700    r   t       (   v   a   r   i   a   b   l   e   s       %   c
0001720    o   n   d   i   t   i   o   n   -   t   y   p   e   s   -   r
0001740    e   a   l   )   )  \r                                        
0001760                    (   f   u   n   c   t   i   o   n   s       d
0002000    e   f   a   u   l   t   -   p   r   o   c   e   e   d   -   r
0002020    e   p   o   r   t   )  \r                                    
0002040                        (   f   u   n   c   t   i   o   n   s    
0002060    w   i   t   h   -   g   e   n   s   y   m   s       w   i   t
0002100    h   -   e   r   r   -   l   o   o   p   -   v   a   r   s    
0002120    s   t   r   i   p   -   k   e   y   w   o   r   d   s       m
0002140    a   k   e   -   f   a   k   e   -   r   e   p   o   r   t   -
0002160    f   u   n   c   t   i   o   n      \r                        
0002200                                                                m
0002220    a   k   e   -   r   e   p   o   r   t   -   f   u   n   c   t
0002240    i   o   n       m   a   k   e   -   e   n   c   a   p   s   u
0002260    l   a   t   i   o   n       n   o   r   m   a   l   i   z   e
0002300    -   s   l   o   t   -   d   e   s   c   r   i   p   t   i   o
0002320    n   s      \r                                                
0002340                                        e   x   t   r   a   c   t
0002360    -   c   o   n   d   i   t   i   o   n   -   b   i   n   d   i
0002400    n   g   s       n   o   r   m   a   l   i   z   e   -   c   o
0002420    n   d   i   t   i   o   n   -   c   l   a   u   s   e   s    
0002440   \r                                                            
0002460                            m   a   s   s   a   g   e   -   c   a
0002500    t   c   h   -   c   o   n   d   i   t   i   o   n   -   c   l
0002520    a   u   s   e   s       s   p   l   i   t   -   p   r   o   c
0002540    e   e   d   -   c   l   a   u   s   e   s       p   r   o   c
0002560    e   e   d   -   c   a   s   e   -   f   r   o   m   -   c   l
0002600    a   u   s   e      \r                                        
0002620                                                p   r   o   c   e
0002640    s   s   -   p   r   o   c   e   e   d   -   k   e   y   w   o
0002660    r   d   s       c   h   e   c   k   -   *   c   a   s   e   -
0002700    s   e   l   e   c   t   o   r       c   o   l   l   e   c   t
0002720    -   c   a   s   e   -   s   e   l   e   c   t   o   r   s    
0002740   \r                                                            
0002760                            n   o   -   p   r   o   c   e   e   d
0003000    -   t   e   s   t       %   p   r   e   f   i   x   -   s   y
0003020    m   b   o   l       %   s   u   f   f   i   x   -   s   y   m
0003040    b   o   l       p   r   o   c   e   e   d   -   a   r   g   -
0003060    c   o   l   l   e   c   t   o   r   )   )  \r                
0003100                    (   c   o   m   s       (   *       |   ;   ;
0003120    |      \r                                               "   U
0003140    s   e   r   -   v   i   s   i   b   l   e       f   o   r   m
0003160    s   .       T   h   e   s   e       s   h   o   u   l   d    
0003200    a   l   l       b   e       e   x   t   e   r   n   a   l    
0003220    s   y   m   b   o   l   s   .       A   n   y       o   t   h
0003240    e   r   s       s   h   o   u   l   d       b   e       i   n
0003260    t   e   r   n   a   l   .   "  \r                            
0003300                                            )  \r                
0003320                                            (   f   u   n   c   t
0003340    i   o   n   s       d   e   f   i   n   e   -   c   o   n   d
0003360    i   t   i   o   n       c   l   :   c   h   e   c   k   -   t
0003400    y   p   e       c   l   :   e   t   y   p   e   c   a   s   e
0003420        c   l   :   c   t   y   p   e   c   a   s   e       c   l
0003440    :   e   c   a   s   e       c   l   :   c   c   a   s   e    
0003460   \r                                                            
0003500                            c   l   :   a   s   s   e   r   t    
0003520    h   a   n   d   l   e   r   -   b   i   n   d       c   o   n
0003540    d   i   t   i   o   n   -   b   i   n   d       c   o   n   d
0003560    i   t   i   o   n   -   c   a   s   e       r   e   a   l   -
0003600    c   o   n   d   i   t   i   o   n   -   c   a   s   e      \r
0003620                                                                 
0003640                        i   g   n   o   r   e   -   e   r   r   o
0003660    r   s       p   r   o   c   e   e   d   -   c   a   s   e    
0003700    r   e   a   l   -   p   r   o   c   e   e   d   -   c   a   s
0003720    e       d   e   f   i   n   e   -   p   r   o   c   e   e   d
0003740    -   f   u   n   c   t   i   o   n       c   a   t   c   h   -
0003760    a   b   o   r   t  \r                                        
0004000                                                )   )  \r        
0004020                            (   p   r   o   p       f   i   l   e
0004040    t   y   p   e       c   l   -   e   r   r   o   r   )  \r    
0004060                                (   d   e   c   l   a   r   e   \
0004100    :       d   o   n   t   e   v   a   l   @   l   o   a   d    
0004120    d   o   e   v   a   l   @   c   o   m   p   i   l   e       d
0004140    o   n   t   c   o   p   y       c   o   m   p   i   l   e   r
0004160    v   a   r   s       (   a   d   d   v   a   r   s       (   n
0004200    l   a   m   a   )  \r                                        
0004220                                                                 
*
0004320                (   n   l   a   m   l   )  \r                    
0004340                                                                 
*
0004440                                    (   l   a   m   a   )   )   )
0004460    )   )  \r  \r  \r  \r 006 004   (   *       |   ;   ;   |    
0004500    "   T   e   m   p   o   r   a   r   y       b   o   o   t   s
0004520    t   r   a   p   p   i   n   g       s   t   u   f   f   .    
0004540    A   n   y   t   h   i   n   g       i   n       h   e   r   e
0004560        g   e   t   s       c   h   a   n   g   e   d       o   n
0004600    c   e       C   L       s   t   a   r   t   s       w   o   r
0004620    k   i   n   g   .   "   ) 006 001  \r  \r   (   d   e   f   m
0004640    a   c   r   o     006 002   c   o   n   d   i   t   i   o   n
0004660    -   t   y   p   e   c   a   s   e 006 001       (   o   b   j
0004700    e   c   t       &   r   e   s   t       c   l   a   u   s   e
0004720    s   )  \r               (   l   e   t  \r                   (
0004740    (   v   a   l       (   c   l   :   g   e   n   s   y   m   )
0004760    )   )  \r                   (   c   l   :   i   f       %   c
0005000    o   n   d   i   t   i   o   n   -   t   y   p   e   s   -   r
0005020    e   a   l       `   (   c   l   :   t   y   p   e   c   a   s
0005040    e       ,   o   b   j   e   c   t       ,   @   c   l   a   u
0005060    s   e   s   )  \r                                            
0005100    `   (   l   e   t       (   (   ,   v   a   l       ,   o   b
0005120    j   e   c   t   )   )  \r                                    
0005140                                    (   c   o   n   d  \r        
0005160                                                                 
0005200            ,   @   (   c   l   :   m   a   p   c   a   r       (
0005220    f   u   n   c   t   i   o   n       (   c   l   :   l   a   m
0005240    b   d   a  \r                                                
0005260                                                                 
*
0005320    (   c   l   a   u   s   e   )  \r                            
0005340                                                                 
*
0005400                        (   d   e   s   t   r   u   c   t   u   r
0005420    i   n   g   -   b   i   n   d  \r                            
0005440                                                                 
*
0005500                            (   s   e   l   e   c   t   o   r    
0005520    .       b   o   d   y   )  \r                                
0005540                                                                 
*
0005600                        c   l   a   u   s   e  \r                
0005620                                                                 
*
0005660                                        (   c   l   :   i   f    
0005700    (   e   q       s   e   l   e   c   t   o   r       t   )  \r
0005720                                                                 
*
0006000                    c   l   a   u   s   e  \r                    
0006020                                                                 
*
0006060                                                                `
0006100    (   (   c   o   n   d   i   t   i   o   n   -   t   y   p   e
0006120    p       ,   v   a   l       '   ,   s   e   l   e   c   t   o
0006140    r   )  \r                                                    
0006160                                                                 
*
0006220                                        ,   @   b   o   d   y   )
0006240    )   )   )   )  \r                                            
0006260                                                                 
0006300            c   l   a   u   s   e   s   )   )   )   )   )   )  \r
0006320   \r   (   d   e   f   m   a   c   r   o     006 002   c   o   n
0006340    d   i   t   i   o   n   -   b   l   o   c   k 006 001       (
0006360    t   a   g       &   b   o   d   y       f   o   r   m   s   )
0006400        `   (   c   l   :   c   a   t   c   h       '   ,   t   a
0006420    g       ,   @   f   o   r   m   s   )   )  \r  \r   (   d   e
0006440    f   m   a   c   r   o     006 002   c   o   n   d   i   t   i
0006460    o   n   -   r   e   t   u   r   n 006 001       (   t   a   g
0006500        &   o   p   t   i   o   n   a   l       r   e   s   u   l
0006520    t   )       `   (   c   l   :   t   h   r   o   w       '   ,
0006540    t   a   g       ,   r   e   s   u   l   t   )   )  \r  \r  \r
0006560   \r  \r 006 004   (   *       |   ;   ;   |       "   I   n   t
0006600    e   r   n   a   l       s   t   u   f   f   .   "   ) 006 001
0006620   \r  \r   (   *       F   O   L   L   O   W   I   N   G       D
0006640    E   F   I   N   I   T   I   O   N   S       E   X   P   O   R
0006660    T   E   D   )  \r  \r  \r   (   c   l   :   d   e   f   c   o
0006700    n   s   t   a   n   t     006 002   %   c   o   n   d   i   t
0006720    i   o   n   -   t   y   p   e   s   -   r   e   a   l 006 001
0006740        n   i   l   )  \r  \r  \r  \r   (   *       E   N   D    
0006760    E   X   P   O   R   T   E   D       D   E   F   I   N   I   T
0007000    I   O   N   S   )  \r  \r   (   d   e   f   m   a   c   r   o
0007020      006 002   d   e   f   a   u   l   t   -   p   r   o   c   e
0007040    e   d   -   r   e   p   o   r   t 006 001       (   p   r   o
0007060    c   e   e   d   -   t   y   p   e   )       `   (   g   e   t
0007100        ,   p   r   o   c   e   e   d   -   t   y   p   e       '
0007120    %   d   e   f   a   u   l   t   -   p   r   o   c   e   e   d
0007140    -   r   e   p   o   r   t  \r                                
0007160                                                                 
*
0007220                                                            '   d
0007240    e   f   a   u   l   t   -   p   r   o   c   e   e   d   -   r
0007260    e   p   o   r   t   e   r   )   )  \r  \r   (   d   e   f   m
0007300    a   c   r   o     006 002   w   i   t   h   -   g   e   n   s
0007320    y   m   s 006 001       (   v   a   r   s       p   r   e   f
0007340    i   x       &   b   o   d   y       b   o   d   y   )  \r    
0007360            `   (   l   e   t       ,   (   m   a   p   c   a   r
0007400        v   a   r   s       (   f   u   n   c   t   i   o   n    
0007420    (   c   l   :   l   a   m   b   d   a       (   v   a   r   )
0007440   \r                                                            
0007460                                                                 
0007500                                        `   (   ,   v   a   r    
0007520    (   g   e   n   s   y   m       ,   p   r   e   f   i   x   )
0007540    )   )   )   )       ,   @   b   o   d   y   )   )  \r  \r   (
0007560    d   e   f   m   a   c   r   o     006 002   w   i   t   h   -
0007600    e   r   r   -   l   o   o   p   -   v   a   r   s 006 001    
0007620    (   p   r   e   f   i   x       &   b   o   d   y       b   o
0007640    d   y   )       `   (   w   i   t   h   -   g   e   n   s   y
0007660    m   s       (   v   a   l       b   l   o   c   k   -   n   a
0007700    m   e       a   g   a   i   n   )  \r                        
0007720                                                                 
*
0010000                ,   p   r   e   f   i   x  \r                    
0010020                                                                 
*
0010100                    ,   @   b   o   d   y   )   )  \r  \r   (   c
0010120    l   :   d   e   f   u   n     006 002   s   t   r   i   p   -
0010140    k   e   y   w   o   r   d   s 006 001       (   a   r   g   s
0010160    )       (   c   l   :   v   a   l   u   e   s       ( 006 002
0010200    f   o   r 006 001     006 002   o   l   d 006 001       a   r
0010220    g   s     006 002   o   n 006 001       a   r   g   s     006
0010240  002   b   y 006 001       c   d   d   r  \r                    
0010260                                                                 
*
0010320                                      006 002   w   h   i   l   e
0010340  006 001       (   c   l   :   k   e   y   w   o   r   d   p    
0010360    (   c   l   :   f   i   r   s   t       a   r   g   s   )   )
0010400   \r                                                            
0010420                                                                 
0010440                                                              006
0010460  002   c   o   l   l   e   c   t 006 001       (   l   i   s   t
0010500        (   c   l   :   f   i   r   s   t       a   r   g   s   )
0010520   \r                                                            
0010540                                                                 
*
0010600                                                        (   c   l
0010620    :   s   e   c   o   n   d       a   r   g   s   )   )   )  \r
0010640                                                                 
*
0010700                                a   r   g   s   )   )  \r  \r   (
0010720    c   l   :   d   e   f   u   n     006 002   m   a   k   e   -
0010740    f   a   k   e   -   r   e   p   o   r   t   -   f   u   n   c
0010760    t   i   o   n 006 001       (   d   a   t   u   m       b   o
0011000    u   n   d   -   v   a   r       &   o   p   t   i   o   n   a
0011020    l       e   n   c   a   p   s   u   l   a   t   i   o   n   )
0011040   \r               (   c   l   :   e   t   y   p   e   c   a   s
0011060    e       d   a   t   u   m       (   s   t   r   i   n   g    
0011100    `   (   l   a   m   b   d   a       (   d   a   t   u   m    
0011120    s   t   r   e   a   m   )  \r                                
0011140                                                                 
0011160                                            ( 006 002   d   e   c
0011200    l   a   r   e 006 001       (   i   g   n   o   r   e       d
0011220    a   t   u   m   )   )  \r                                    
0011240                                                                 
0011260                                        (   c   l   :   w   r   i
0011300    t   e   -   s   t   r   i   n   g       ,   d   a   t   u   m
0011320        s   t   r   e   a   m   )   )   )  \r                    
0011340                        (   l   i   s   t       `   (   l   a   m
0011360    b   d   a       (   ,   b   o   u   n   d   -   v   a   r    
0011400    *   s   t   a   n   d   a   r   d   -   o   u   t   p   u   t
0011420    *   )  \r                                                    
0011440                            ,   (   c   l   :   i   f       (   n
0011460    u   l   l       e   n   c   a   p   s   u   l   a   t   i   o
0011500    n   )  \r                                                    
0011520                                                            d   a
0011540    t   u   m  \r                                                
0011560                                                                `
0011600    (   l   e   t       ,   e   n   c   a   p   s   u   l   a   t
0011620    i   o   n       ,   d   a   t   u   m   )   )   )   )   )   )
0011640   \r  \r   (   c   l   :   d   e   f   u   n     006 002   m   a
0011660    k   e   -   r   e   p   o   r   t   -   f   u   n   c   t   i
0011700    o   n 006 001       (   d   a   t   u   m       b   o   u   n
0011720    d   -   v   a   r       &   o   p   t   i   o   n   a   l    
0011740    t   y   p   e   -   n   a   m   e   )  \r               (   c
0011760    l   :   e   t   y   p   e   c   a   s   e       d   a   t   u
0012000    m       (   s   t   r   i   n   g       `   (   l   a   m   b
0012020    d   a       (   d   a   t   u   m       s   t   r   e   a   m
0012040    )  \r                                                        
0012060                                                                 
0012100                    ( 006 002   d   e   c   l   a   r   e 006 001
0012120        (   i   g   n   o   r   e       d   a   t   u   m   )   )
0012140   \r                                                            
0012160                                                                 
0012200                (   c   l   :   w   r   i   t   e   -   s   t   r
0012220    i   n   g       ,   d   a   t   u   m       s   t   r   e   a
0012240    m   )   )   )  \r                                           (
0012260    l   i   s   t       `   (   l   a   m   b   d   a       (   ,
0012300    b   o   u   n   d   -   v   a   r       *   s   t   a   n   d
0012320    a   r   d   -   o   u   t   p   u   t   *   )  \r            
0012340                                                                 
0012360    ,   (   c   l   :   i   f       t   y   p   e   -   n   a   m
0012400    e       `   ( 006 002   w   i   t   h 006 001       ,   t   y
0012420    p   e   -   n   a   m   e       ,   b   o   u   n   d   -   v
0012440    a   r       ,   d   a   t   u   m   )       d   a   t   u   m
0012460    )   )   )   )   )  \r  \r   (   c   l   :   d   e   f   u   n
0012500      006 002   m   a   k   e   -   e   n   c   a   p   s   u   l
0012520    a   t   i   o   n 006 001       (   c   o   n   d   i   t   i
0012540    o   n   -   t   y   p   e       s   l   o   t   -   n   a   m
0012560    e   s   )  \r               (   m   a   p   c   a   r       (
0012600    c   l   :   r   e   m   o   v   e       '   -   -   d   u   m
0012620    m   y   -   s   l   o   t   -   -       s   l   o   t   -   n
0012640    a   m   e   s   )  \r                                        
0012660    (   f   u   n   c   t   i   o   n       (   l   a   m   b   d
0012700    a       (   s   l   o   t   )  \r                            
0012720                                                                `
0012740    (   ,   s   l   o   t       (   ,   (   %   s   u   f   f   i
0012760    x   -   s   y   m   b   o   l       c   o   n   d   i   t   i
0013000    o   n   -   t   y   p   e       (   c   l   :   c   o   n   c
0013020    a   t   e   n   a   t   e       '   s   t   r   i   n   g    
0013040    "   -   "  \r                                                
0013060                                                                 
*
0013140                                            (   c   l   :   s   y
0013160    m   b   o   l   -   n   a   m   e       s   l   o   t   )   )
0013200    )      \r                                                    
0013220                                                                 
0013240                                    c   o   n   d   i   t   i   o
0013260    n   )   )   )   )   )   )  \r  \r   (   c   l   :   d   e   f
0013300    u   n     006 002   n   o   r   m   a   l   i   z   e   -   s
0013320    l   o   t   -   d   e   s   c   r   i   p   t   i   o   n   s
0013340  006 001       (   s   l   o   t   s   )  \r               (   m
0013360    a   p   c   a   r       s   l   o   t   s       (   f   u   n
0013400    c   t   i   o   n       (   c   l   :   l   a   m   b   d   a
0013420        (   s   l   o   t   )  \r                                
0013440                                                                 
0013460                                            ( 006 002   i   f 006
0013500  001       (   l   i   s   t   p       s   l   o   t   )  \r    
0013520                                                                 
*
0013560                      006 002   t   h   e   n 006 001       ( 006
0013600  002   i   f 006 001       (   e   q   u   a   l       (   l   e
0013620    n   g   t   h       s   l   o   t   )  \r                    
0013640                                                                 
*
0013720        1   )  \r                                                
0013740                                                                 
*
0014000              006 002   t   h   e   n 006 001       (   a   p   p
0014020    e   n   d       s   l   o   t       '   (   n   i   l       :
0014040    r   e   a   d   o   n   l   y       t   )   )  \r            
0014060                                                                 
*
0014120                                          006 002   e   l   s   e
0014140  006 001       `   (   ,   (   c   a   r       s   l   o   t   )
0014160        ,   (   c   a   d   r       s   l   o   t   )       :   r
0014200    e   a   d   -   o   n   l   y       t  \r                    
0014220                                                                 
*
0014300                        ,   @   (   c   d   d   r       s   l   o
0014320    t   )   )   )  \r                                            
0014340                                                                 
0014360                                      006 002   e   l   s   e 006
0014400  001       `   (   ,   s   l   o   t       n   i   l       :   r
0014420    e   a   d   -   o   n   l   y       t   )   )   )   )   )   )
0014440   \r  \r   (   c   l   :   d   e   f   u   n     006 002   e   x
0014460    t   r   a   c   t   -   c   o   n   d   i   t   i   o   n   -
0014500    b   i   n   d   i   n   g   s 006 001       (   c   l   a   u
0014520    s   e   s   )  \r               (   m   a   p   c   a   r    
0014540    c   l   a   u   s   e   s       (   f   u   n   c   t   i   o
0014560    n       (   c   l   :   l   a   m   b   d   a       (   c   l
0014600    a   u   s   e   )  \r                                        
0014620                                                                 
0014640                                            `   (   c   o   n   s
0014660        '   ,   (   c   l   :   f   i   r   s   t       c   l   a
0014700    u   s   e   )       ,   (   c   l   :   s   e   c   o   n   d
0014720        c   l   a   u   s   e   )   )   )   )   )   )  \r  \r   (
0014740    c   l   :   d   e   f   u   n     006 002   n   o   r   m   a
0014760    l   i   z   e   -   c   o   n   d   i   t   i   o   n   -   c
0015000    l   a   u   s   e   s 006 001       (   c   l   a   u   s   e
0015020    s   )  \r               (   m   a   p   c   o   n   c       c
0015040    l   a   u   s   e   s       (   f   u   n   c   t   i   o   n
0015060        (   c   l   :   l   a   m   b   d   a  \r                
0015100                                                                 
0015120                                                (   c   l   a   u
0015140    s   e   )  \r                                                
0015160                                                                 
0015200                (   l   e   t       (   (   c   o   n   d   i   t
0015220    i   o   n   s       (   c   l   :   f   i   r   s   t       c
0015240    l   a   u   s   e   )   )   )  \r                            
0015260                                                                 
0015300                                                        (   c   l
0015320    :   t   y   p   e   c   a   s   e  \r                        
0015340                                                                 
0015360                                                                c
0015400    o   n   d   i   t   i   o   n   s  \r                        
0015420                                                                 
0015440                                                                (
0015460    l   i   s   t       (   c   l   :   i   f       (   e   q    
0015500    (   c   l   :   f   i   r   s   t       c   o   n   d   i   t
0015520    i   o   n   s   )  \r                                        
0015540                                                                 
*
0015600                                                    '   q   u   o
0015620    t   e   )  \r                                                
0015640                                                                 
*
0015700                            (   c   l   :   e   r   r   o   r    
0015720   \r                                                            
0015740                                                                 
*
0016000                                            "   B   a   d       c
0016020    o   n   d   i   t   i   o   n       s   p   e   c       ~   s
0016040    .       S   h   o   u   l   d       b   e       u   n   q   u
0016060    o   t   e   d   .   "      \r                                
0016100                                                                 
*
0016160        c   o   n   d   i   t   i   o   n   s   )  \r            
0016200                                                                 
*
0016240                                                                (
0016260    m   a   p   c   a   r       c   o   n   d   i   t   i   o   n
0016300    s  \r                                                        
0016320                                                                 
*
0016360                                                (   f   u   n   c
0016400    t   i   o   n       (   c   l   :   l   a   m   b   d   a  \r
0016420                                                                 
*
0016520                    (   c   )  \r                                
0016540                                                                 
*
0016620                                                    (   c   l   :
0016640    i   f       (   c   l   :   s   y   m   b   o   l   p       c
0016660    )  \r                                                        
0016700                                                                 
*
0016760                                                        (   c   o
0017000    n   s       c       (   c   d   r       c   l   a   u   s   e
0017020    )   )  \r                                                    
0017040                                                                 
*
0017120                                                            (   c
0017140    l   :   e   r   r   o   r      \r                            
0017160                                                                 
*
0017220            "   B   a   d       c   o   n   d   i   t   i   o   n
0017240        s   p   e   c       ~   s   .       S   h   o   u   l   d
0017260        b   e       l   i   s   t       o   f       u   n   q   u
0017300    o   t   e   d       s   y   m   b   o   l   s   .   "      \r
0017320                                                                 
*
0017440            c   o   n   d   i   t   i   o   n   s   )   )   )   )
0017460    )   )   )  \r                                                
0017500                                                                 
0017520                                        (   c   l   :   s   y   m
0017540    b   o   l       (   l   i   s   t       c   l   a   u   s   e
0017560    )   )  \r                                                    
0017600                                                                 
0017620                                    (   t       (   c   l   :   e
0017640    r   r   o   r      \r                                        
0017660                                                                 
0017700                                                            "   B
0017720    a   d       c   o   n   d   i   t   i   o   n       s   p   e
0017740    c       ~   s   .       S   h   o   u   l   d       b   e    
0017760    s   y   m   b   o   l       o   r       l   i   s   t       o
0020000    f       s   y   m   b   o   l   s   .   "      \r            
0020020                                                                 
*
0020060                                                    c   o   n   d
0020100    i   t   i   o   n   s   )   )   )   )   )   )   )   )  \r  \r
0020120    (   c   l   :   d   e   f   u   n     006 002   m   a   s   s
0020140    a   g   e   -   c   a   t   c   h   -   c   o   n   d   i   t
0020160    i   o   n   -   c   l   a   u   s   e   s 006 001       (   c
0020200    l   a   u   s   e   s       i   n   i   t   -   v   a   l   u
0020220    e   )  \r               (   m   a   p   c   a   r       c   l
0020240    a   u   s   e   s       (   f   u   n   c   t   i   o   n    
0020260    (   c   l   :   l   a   m   b   d   a  \r                    
0020300                                                                 
0020320                                        (   c   l   a   u   s   e
0020340    )  \r                                                        
0020360                                                                 
0020400    (   d   e   s   t   r   u   c   t   u   r   i   n   g   -   b
0020420    i   n   d  \r                                                
0020440                                                                 
0020460                (   s   e   l   e   c   t   o   r       b   v   l
0020500        .       f   o   r   m   s   )  \r                        
0020520                                                                 
0020540                                        c   l   a   u   s   e  \r
0020560                                                                 
0020600                                                                (
0020620    c   l   :   i   f       (   n   u   l   l       b   v   l   )
0020640   \r                                                            
0020660                                                                 
0020700                                (   c   o   n   s       s   e   l
0020720    e   c   t   o   r       f   o   r   m   s   )  \r            
0020740                                                                 
*
0021000                (   l   i   s   t       s   e   l   e   c   t   o
0021020    r       `   (   l   e   t       (   ,   (   l   i   s   t    
0021040    (   c   a   r       b   v   l   )  \r                        
0021060                                                                 
*
0021140                                                        i   n   i
0021160    t   -   v   a   l   u   e   )       ,   @   (   c   d   r    
0021200    b   v   l   )   )  \r                                        
0021220                                                                 
*
0021300        ,   @   f   o   r   m   s   )   )   )   )   )   )   )   )
0021320   \r  \r   (   c   l   :   d   e   f   u   n     006 002   s   p
0021340    l   i   t   -   p   r   o   c   e   e   d   -   c   l   a   u
0021360    s   e   s 006 001       (   c   l   a   u   s   e   s       t
0021400    a   g   )  \r               (   l   e   t  \r                
0021420    (   c   a   s   e   s       b   o   d   i   e   s   )  \r    
0021440                ( 006 002   f   o   r 006 001       c   l   a   u
0021460    s   e     006 002   i   n 006 001       c   l   a   u   s   e
0021500    s     006 002   a   s 006 001       s   e   l   e   c   t   o
0021520    r     006 002   f   r   o   m 006 001       0  \r            
0021540                  006 002   d   o 006 001       (   d   e   s   t
0021560    r   u   c   t   u   r   i   n   g   -   b   i   n   d  \r    
0021600                                            (   n   a   m   e    
0021620    v   a   r   s   )  \r                                        
0021640        c   l   a   u   s   e  \r                                
0021660                (   c   l   :   m   u   l   t   i   p   l   e   -
0021700    v   a   l   u   e   -   b   i   n   d  \r                    
0021720                                (   t   e   s   t       r   e   p
0021740    o   r   t       t   a   i   l   )  \r                        
0021760                            (   p   r   o   c   e   s   s   -   p
0022000    r   o   c   e   e   d   -   k   e   y   w   o   r   d   s    
0022020    n   a   m   e       (   c   d   d   r       c   l   a   u   s
0022040    e   )   )  \r                                                
0022060    ( 006 002   i   f 006 001       (   n   u   l   l       n   a
0022100    m   e   )  \r                                                
0022120                  006 002   t   h   e   n 006 001       (   c   l
0022140    :   u   n   l   e   s   s       t   e   s   t       (   c   l
0022160    :   s   e   t   f       t   e   s   t       '   t   r   u   e
0022200    )   )  \r                                                    
0022220                                    (   c   l   :   u   n   l   e
0022240    s   s       r   e   p   o   r   t       (   c   l   :   e   r
0022260    r   o   r      \r                                            
0022300                                                                 
*
0022340                "   U   n   n   a   m   e   d       p   r   o   c
0022360    e   e   d       c   a   s   e   s       m   u   s   t       h
0022400    a   v   e       a       r   e   p   o   r   t       m   e   t
0022420    h   o   d   :       ~   S   "      \r                        
0022440                                                                 
*
0022500                                    c   l   a   u   s   e   )   )
0022520   \r                                                         006
0022540  002   e   l   s   e 006 001       (   c   l   :   u   n   l   e
0022560    s   s       t   e   s   t       ( 006 002   i   f 006 001    
0022600    (   n   o   t       (   g   e   t       n   a   m   e       '
0022620    %   d   e   f   a   u   l   t   -   p   r   o   c   e   e   d
0022640    -   t   e   s   t   )   )  \r                                
0022660                                                                 
0022700                                                              006
0022720  002   t   h   e   n 006 001       (   c   l   :   w   a   r   n
0022740       \r                                                        
0022760                                                                 
0023000                                                        "   N   o
0023020        t   e   s   t       s   p   e   c   i   f   i   e   d    
0023040    f   o   r       p   r   o   c   e   e   d       t   y   p   e
0023060        ~   A   :       m   a   y       b   e       u   n   d   e
0023100    f   i   n   e   d   .   "      \r                            
0023120                                                                 
*
0023160                                                    n   a   m   e
0023200    )   )   )  \r                                                
0023220                                (   c   l   :   u   n   l   e   s
0023240    s       r   e   p   o   r   t       (   c   l   :   s   e   t
0023260    f       r   e   p   o   r   t       `   (   c   l   :   l   a
0023300    m   b   d   a       (   p   c       s   t   r   e   a   m   )
0023320   \r                                                            
0023340                                                                 
*
0023400                                                            (   c
0023420    l   :   f   u   n   c   a   l   l       (   d   e   f   a   u
0023440    l   t   -   p   r   o   c   e   e   d   -   r   e   p   o   r
0023460    t  \r                                                        
0023500                                                                 
*
0023560                                                    '   ,   n   a
0023600    m   e   )  \r                                                
0023620                                                                 
*
0023700                                    p   c       s   t   r   e   a
0023720    m   )   )   )   )   )  \r                                    
0023740                (   c   l   :   p   u   s   h       `   (   m   a
0023760    k   e   -   p   r   o   c   e   e   d   -   c   a   s   e    
0024000    :   n   a   m   e       '   ,   n   a   m   e       :   t   a
0024020    g       ,   t   a   g       :   s   e   l   e   c   t   o   r
0024040        ,   s   e   l   e   c   t   o   r       :   t   e   s   t
0024060   \r                                                            
0024100                                                            ,   (
0024120    a   n   d       t   e   s   t       `   (   f   u   n   c   t
0024140    i   o   n       ,   t   e   s   t   )   )       :   r   e   p
0024160    o   r   t       (   f   u   n   c   t   i   o   n       ,   r
0024200    e   p   o   r   t   )   )       c   a   s   e   s   )  \r    
0024220                                                (   c   l   :   p
0024240    u   s   h       `   (   ,   s   e   l   e   c   t   o   r    
0024260    (   f   u   n   c   t   i   o   n       (   c   l   :   l   a
0024300    m   b   d   a       ,   v   a   r   s       ,   @   t   a   i
0024320    l   )   )   )       b   o   d   i   e   s   )   )   )   )  \r
0024340                    (   c   l   :   v   a   l   u   e   s       (
0024360    r   e   v   e   r   s   e       c   a   s   e   s   )  \r    
0024400                                            (   r   e   v   e   r
0024420    s   e       b   o   d   i   e   s   )   )   )   )  \r  \r   (
0024440    c   l   :   d   e   f   u   n     006 002   p   r   o   c   e
0024460    e   d   -   c   a   s   e   -   f   r   o   m   -   c   l   a
0024500    u   s   e 006 001       (   c   l   a   u   s   e       t   a
0024520    g       d   u   m   m   y   )  \r               (   d   e   s
0024540    t   r   u   c   t   u   r   i   n   g   -   b   i   n   d  \r
0024560                    (   n   a   m   e       v   a   r   s       .
0024600        t   a   i   l   )  \r                   c   l   a   u   s
0024620    e  \r                   (   c   l   :   m   u   l   t   i   p
0024640    l   e   -   v   a   l   u   e   -   b   i   n   d  \r        
0024660                (   t   e   s   t       r   e   p   o   r   t    
0024700    b   o   d   y   )  \r                       (   p   r   o   c
0024720    e   s   s   -   p   r   o   c   e   e   d   -   k   e   y   w
0024740    o   r   d   s       n   a   m   e       t   a   i   l   )  \r
0024760                        ( 006 002   i   f 006 001       (   n   u
0025000    l   l       n   a   m   e   )  \r                            
0025020          006 002   t   h   e   n 006 001       (   c   l   :   u
0025040    n   l   e   s   s       t   e   s   t       (   c   l   :   s
0025060    e   t   f       t   e   s   t       '   t   r   u   e   )   )
0025100   \r                                                           (
0025120    c   l   :   u   n   l   e   s   s       r   e   p   o   r   t
0025140        (   c   l   :   e   r   r   o   r       "   U   n   n   a
0025160    m   e   d       p   r   o   c   e   e   d       c   a   s   e
0025200    s       m   u   s   t       h   a   v   e       a       r   e
0025220    p   o   r   t       m   e   t   h   o   d   :       ~   S   "
0025240       \r                                                        
0025260                                                                 
0025300                                        c   l   a   u   s   e   )
0025320    )  \r                             006 002   e   l   s   e 006
0025340  001       (   c   l   :   u   n   l   e   s   s       t   e   s
0025360    t       ( 006 002   i   f 006 001       (   n   o   t       (
0025400    g   e   t       n   a   m   e       '   %   d   e   f   a   u
0025420    l   t   -   p   r   o   c   e   e   d   -   t   e   s   t   )
0025440    )  \r                                                        
0025460                                                                 
0025500          006 002   t   h   e   n 006 001       (   c   l   :   w
0025520    a   r   n      \r                                            
0025540                                                                 
*
0025600    "   N   o       t   e   s   t       s   p   e   c   i   f   i
0025620    e   d       f   o   r       p   r   o   c   e   e   d       t
0025640    y   p   e       ~   A   :       m   a   y       b   e       u
0025660    n   d   e   f   i   n   e   d   .   "      \r                
0025700                                                                 
*
0025740                                    n   a   m   e   )   )   )  \r
0025760                                                    (   c   l   :
0026000    u   n   l   e   s   s       r   e   p   o   r   t       (   c
0026020    l   :   s   e   t   f       r   e   p   o   r   t       `   (
0026040    c   l   :   l   a   m   b   d   a       (   p   c       s   t
0026060    r   e   a   m   )  \r                                        
0026100                                                                 
*
0026140                                                    (   c   l   :
0026160    f   u   n   c   a   l   l       (   d   e   f   a   u   l   t
0026200    -   p   r   o   c   e   e   d   -   r   e   p   o   r   t  \r
0026220                                                                 
*
0026320                '   ,   n   a   m   e   )  \r                    
0026340                                                                 
*
0026420                                    p   c       s   t   r   e   a
0026440    m   )   )   )   )   )  \r                       `   (   m   a
0026460    k   e   -   r   e   a   l   -   p   r   o   c   e   e   d   -
0026500    c   a   s   e       :   n   a   m   e       '   ,   n   a   m
0026520    e       :   t   a   g       ,   t   a   g       :   c   o   n
0026540    t   i   n   u   a   t   i   o   n  \r                        
0026560                                (   f   u   n   c   t   i   o   n
0026600        (   c   l   :   l   a   m   b   d   a       (   &   o   p
0026620    t   i   o   n   a   l       ,   @   (   o   r       v   a   r
0026640    s       (   l   i   s   t       d   u   m   m   y   )   )   )
0026660   \r                                                            
0026700                                                                ,
0026720    @   b   o   d   y   )   )  \r                                
0026740                        :   t   e   s   t  \r                    
0026760                                    ,   (   a   n   d       t   e
0027000    s   t       `   (   f   u   n   c   t   i   o   n       ,   t
0027020    e   s   t   )   )       :   r   e   p   o   r   t       (   f
0027040    u   n   c   t   i   o   n       ,   r   e   p   o   r   t   )
0027060    )   )   )   )  \r  \r   (   c   l   :   d   e   f   u   n    
0027100  006 002   p   r   o   c   e   s   s   -   p   r   o   c   e   e
0027120    d   -   k   e   y   w   o   r   d   s 006 001       (   n   a
0027140    m   e       a   r   g   )  \r               (   l   e   t    
0027160    (   t   e   s   t       r   e   p   o   r   t   )  \r        
0027200                            (   c   l   :   m   u   l   t   i   p
0027220    l   e   -   v   a   l   u   e   -   b   i   n   d  \r        
0027240                                (   k   e   y   s       t   a   i
0027260    l   )  \r                                       (   s   t   r
0027300    i   p   -   k   e   y   w   o   r   d   s       a   r   g   )
0027320   \r                                       ( 006 002   |   f   o
0027340    r   | 006 001       p   a   i   r     006 002   |   i   n   |
0027360  006 001       k   e   y   s  \r                                
0027400                  006 002   |   d   o   | 006 001       (   d   e
0027420    s   t   r   u   c   t   u   r   i   n   g   -   b   i   n   d
0027440        (   k   e   y       v   a   l   u   e   )  \r            
0027460                                                                 
0027500                        p   a   i   r  \r                        
0027520                                                                 
0027540            (   c   a   s   e       k   e   y       (   :   t   e
0027560    s   t       (   c   l   :   i   f       t   e   s   t       (
0027600    c   l   :   e   r   r   o   r      \r                        
0027620                                                                 
*
0027660                                                "   D   u   p   l
0027700    i   c   a   t   e       t   e   s   t       f   o   r   m    
0027720    s   p   e   c   i   f   i   e   d       f   o   r       p   r
0027740    o   c   e   e   d       t   y   p   e       ~   S   .   "    
0027760   \r                                                            
0030000                                                                 
*
0030040                                                        n   a   m
0030060    e   )   )  \r                                                
0030100                                                                 
0030120                                                        (   c   l
0030140    :   s   e   t   f       t   e   s   t       v   a   l   u   e
0030160    )   )  \r                                                    
0030200                                                                 
0030220        (   :   c   o   n   d   i   t   i   o   n       (   c   l
0030240    :   i   f       t   e   s   t       (   c   l   :   e   r   r
0030260    o   r      \r                                                
0030300                                                                 
*
0030340                        "   D   u   p   l   i   c   a   t   e    
0030360    t   e   s   t       f   o   r   m       s   p   e   c   i   f
0030400    i   e   d       f   o   r       p   r   o   c   e   e   d    
0030420    t   y   p   e       ~   S   .   "      \r                    
0030440                                                                 
*
0030520                                    n   a   m   e   )   )  \r    
0030540                                                                 
*
0030600                    (   c   l   :   s   e   t   f       t   e   s
0030620    t       `   (   c   l   :   l   a   m   b   d   a       (   c
0030640    )  \r                                                        
0030660                                                                 
*
0030720                                                        (   c   o
0030740    n   d   i   t   i   o   n   -   t   y   p   e   p       c    
0030760    '   ,   v   a   l   u   e   )   )   )   )  \r                
0031000                                                                 
0031020                                            (   :   r   e   p   o
0031040    r   t   -   f   u   n   c   t   i   o   n       (   c   l   :
0031060    i   f       r   e   p   o   r   t       (   c   l   :   e   r
0031100    r   o   r      \r                                            
0031120                                                                 
*
0031160                    "   D   u   p   l   i   c   a   t   e       r
0031200    e   p   o   r   t       f   o   r   m       s   p   e   c   i
0031220    f   i   e   d       f   o   r       p   r   o   c   e   e   d
0031240        t   y   p   e       ~   S   .   "      \r                
0031260                                                                 
*
0031360        n   a   m   e   )   )  \r                                
0031400                                                                 
0031420                                                        (   c   l
0031440    :   s   e   t   f       r   e   p   o   r   t       v   a   l
0031460    u   e   )   )  \r                                            
0031500                                                                 
0031520                (   :   r   e   p   o   r   t       (   c   l   :
0031540    i   f       r   e   p   o   r   t       (   c   l   :   e   r
0031560    r   o   r      \r                                            
0031600                                                                 
*
0031640                    "   D   u   p   l   i   c   a   t   e       r
0031660    e   p   o   r   t       f   o   r   m       s   p   e   c   i
0031700    f   i   e   d       f   o   r       p   r   o   c   e   e   d
0031720        t   y   p   e       ~   S   .   "      \r                
0031740                                                                 
*
0032020                                    n   a   m   e   )   )  \r    
0032040                                                                 
*
0032100                    (   c   l   :   s   e   t   f       r   e   p
0032120    o   r   t       (   m   a   k   e   -   r   e   p   o   r   t
0032140    -   f   u   n   c   t   i   o   n       v   a   l   u   e    
0032160    '   p   r   o   c   e   e   d   -   c   a   s   e   )   )   )
0032200   \r                                                            
0032220                                                                (
0032240    c   l   :   o   t   h   e   r   w   i   s   e       (   c   l
0032260    :   c   e   r   r   o   r       "   I   g   n   o   r   e    
0032300    k   e   y   /   v   a   l   u   e       p   a   i   r   "    
0032320   \r                                                            
0032340                                                                 
*
0032400                    "   I   l   l   e   g   a   l       k   e   y
0032420    w   o   r   d       ~   S       i   n       p   r   o   c   e
0032440    e   d       c   a   s   e       ~   S   .   "       k   e   y
0032460        n   a   m   e   )  \r                                    
0032500                                                                 
0032520                                                    )   )   )   )
0032540   \r                                       (   c   l   :   v   a
0032560    l   u   e   s       t   e   s   t       r   e   p   o   r   t
0032600        t   a   i   l   )   )   )   )  \r  \r   (   c   l   :   d
0032620    e   f   u   n     006 002   c   h   e   c   k   -   *   c   a
0032640    s   e   -   s   e   l   e   c   t   o   r 006 001       (   s
0032660    e   l   e   c   t   o   r       n   a   m   e   )       (   c
0032700    l   :   i   f       (   o   r       (   e   q       s   e   l
0032720    e   c   t   o   r       '   t   )  \r                        
0032740                                                                 
*
0033020                    (   e   q       s   e   l   e   c   t   o   r
0033040        '   c   l   :   o   t   h   e   r   w   i   s   e   )   )
0033060   \r                                                            
0033100                                                                 
*
0033140                                (   c   l   :   e   r   r   o   r
0033160        "   ~   A       n   o   t       a   l   l   o   w   e   d
0033200        i   n       t   h   e       ~   A       f   o   r   m   .
0033220    "      \r                                                    
0033240                                                                 
*
0033320    s   e   l   e   c   t   o   r       n   a   m   e   )  \r    
0033340                                                                 
*
0033420                        s   e   l   e   c   t   o   r   )   )  \r
0033440   \r   (   c   l   :   d   e   f   u   n     006 002   c   o   l
0033460    l   e   c   t   -   c   a   s   e   -   s   e   l   e   c   t
0033500    o   r   s 006 001       (   c   l   a   u   s   e   s       n
0033520    a   m   e   )  \r               (   m   a   p   c   o   n   c
0033540        c   l   a   u   s   e   s       (   f   u   n   c   t   i
0033560    o   n       (   c   l   :   l   a   m   b   d   a       (   c
0033600    l   a   u   s   e   )  \r                                    
0033620                                                                 
0033640                                                    ( 006 002   i
0033660    f 006 001       (   a   n   d       (   c   l   :   c   o   n
0033700    s   p       (   c   a   r       c   l   a   u   s   e   )   )
0033720   \r                                                            
0033740                                                                 
0033760                                                                (
0034000    f   m   e   m   b       n   a   m   e       '   (   c   l   :
0034020    e   c   a   s   e       c   l   :   c   c   a   s   e   )   )
0034040    )  \r                                                        
0034060                                                                 
0034100                                              006 002   t   h   e
0034120    n 006 001       (   c   l   :   c   o   p   y   -   l   i   s
0034140    t       (   c   a   r       c   l   a   u   s   e   )   )  \r
0034160                                                                 
*
0034220                              006 002   e   l   s   e 006 001    
0034240    (   l   i   s   t       (   c   h   e   c   k   -   *   c   a
0034260    s   e   -   s   e   l   e   c   t   o   r       (   c   a   r
0034300        c   l   a   u   s   e   )  \r                            
0034320                                                                 
*
0034400            n   a   m   e   )   )   )   )   )   )   )  \r  \r   (
0034420    c   l   :   d   e   f   u   n     006 002   n   o   -   p   r
0034440    o   c   e   e   d   -   t   e   s   t 006 001       (   n   a
0034460    m   e       &   a   u   x       o   n   c   e   )  \r        
0034500        (   p   r   o   c   e   e   d   -   c   a   s   e       (
0034520    h   a   n   d   l   e   r   -   b   i   n   d       (   (   n
0034540    o   -   p   r   o   c   e   e   d   -   t   e   s   t       (
0034560    f   u   n   c   t   i   o   n       (   c   l   :   l   a   m
0034600    b   d   a  \r                                                
0034620                                                                 
*
0034700    (   c   )  \r                                                
0034720                                                                 
*
0035000    (   c   l   :   w   h   e   n       (   e   q       (   n   o
0035020    -   p   r   o   c   e   e   d   -   t   e   s   t   -   n   a
0035040    m   e       c   )  \r                                        
0035060                                                                 
*
0035140                                                                n
0035160    a   m   e   )  \r                                            
0035200                                                                 
*
0035260                                    (   c   l   :   i   f       o
0035300    n   c   e       (   c   l   :   t   h   r   o   w       '  \r
0035320                                                                 
*
0035440                    s   k   i   p   -   p   r   o   c   e   e   d
0035460    -   c   a   s   e      \r                                    
0035500                                                                 
*
0035600                                                        n   i   l
0035620    )  \r                                                        
0035640                                                                 
*
0035720                                                    (   c   l   :
0035740    s   e   t   f       o   n   c   e       t   )   )   )   )   )
0035760    )   )  \r                                                    
0036000                                                (   c   l   :   e
0036020    r   r   o   r       '   n   o   -   p   r   o   c   e   e   d
0036040    -   t   e   s   t       :   n   a   m   e       n   a   m   e
0036060    )   )  \r                                           (   n   i
0036100    l       n   i   l       :   r   e   p   o   r   t       "   U
0036120    s   e       F   A   L   S   E       f   o   r       t   h   e
0036140        t   e   s   t   "       :   c   o   n   d   i   t   i   o
0036160    n       n   o   -   p   r   o   c   e   e   d   -   t   e   s
0036200    t       (   f   u   n   c   t   i   o   n       f   a   l   s
0036220    e   )   )  \r                                           (   p
0036240    r   o   c   e   e   d       n   i   l       :   r   e   p   o
0036260    r   t       "   M   a   k   e       T   R   U   E       t   h
0036300    e       d   e   f   a   u   l   t       t   e   s   t   "    
0036320    :   c   o   n   d   i   t   i   o   n       n   o   -   p   r
0036340    o   c   e   e   d   -   t   e   s   t  \r                    
0036360                                                    (   c   l   :
0036400    s   e   t   f       (   d   e   f   a   u   l   t   -   p   r
0036420    o   c   e   e   d   -   t   e   s   t       n   a   m   e   )
0036440   \r                                                            
0036460                                        (   f   u   n   c   t   i
0036500    o   n       t   r   u   e   )   )   )   )   )  \r  \r   (   c
0036520    l   :   d   e   f   u   n     006 002   %   p   r   e   f   i
0036540    x   -   s   y   m   b   o   l 006 001       (   p   r   e   f
0036560    i   x       c   l   :   s   y   m   b   o   l   )       (   c
0036600    l   :   i   n   t   e   r   n       (   c   l   :   c   o   n
0036620    c   a   t   e   n   a   t   e       '   s   t   r   i   n   g
0036640        p   r   e   f   i   x       (   c   l   :   s   y   m   b
0036660    o   l   -   n   a   m   e  \r                                
0036700                                                                 
*
0037000                                                                c
0037020    l   :   s   y   m   b   o   l   )   )  \r                    
0037040                                                                 
*
0037100                                                            (   c
0037120    l   :   s   y   m   b   o   l   -   p   a   c   k   a   g   e
0037140        c   l   :   s   y   m   b   o   l   )   )   )  \r  \r   (
0037160    c   l   :   d   e   f   u   n     006 002   %   s   u   f   f
0037200    i   x   -   s   y   m   b   o   l 006 001       (   c   l   :
0037220    s   y   m   b   o   l       s   u   f   f   i   x   )       (
0037240    c   l   :   i   n   t   e   r   n       (   c   l   :   c   o
0037260    n   c   a   t   e   n   a   t   e       '   s   t   r   i   n
0037300    g       (   c   l   :   s   y   m   b   o   l   -   n   a   m
0037320    e      \r                                                    
0037340                                                                 
*
0037440                                        c   l   :   s   y   m   b
0037460    o   l   )  \r                                                
0037500                                                                 
*
0037560            s   u   f   f   i   x   )  \r                        
0037600                                                                 
*
0037640                                                        (   c   l
0037660    :   s   y   m   b   o   l   -   p   a   c   k   a   g   e    
0037700    c   l   :   s   y   m   b   o   l   )   )   )  \r  \r   (   d
0037720    e   f   m   a   c   r   o     006 002   p   r   o   c   e   e
0037740    d   -   a   r   g   -   c   o   l   l   e   c   t   o   r 006
0037760  001       (   n   a   m   e   )       "   F   u   n   c   t   i
0040000    o   n       t   h   a   t       c   o   l   l   e   c   t   s
0040020        u   s   e   r   -   s   p   e   c   i   f   i   e   d    
0040040    o   p   t   i   o   n   a   l       a   r   g   s       (   e
0040060    x   c   l   u   d   i   n   g       t   h   e       c   o   n
0040100    d   i   t   i   o   n   )       f   o   r       a       n   a
0040120    m   e   d       p   r   o   c   e   e   d       c   a   s   e
0040140    .   "  \r               `   (   g   e   t       ,   n   a   m
0040160    e       '   %   p   r   o   c   e   e   d   -   a   r   g   -
0040200    c   o   l   l   e   c   t   o   r   )   )  \r  \r  \r  \r  \r
0040220  006 004   (   *       |   ;   ;   |       "   U   s   e   r   -
0040240    v   i   s   i   b   l   e       f   o   r   m   s   .       T
0040260    h   e   s   e       s   h   o   u   l   d       a   l   l    
0040300    b   e       e   x   t   e   r   n   a   l       s   y   m   b
0040320    o   l   s   .       A   n   y       o   t   h   e   r   s    
0040340    s   h   o   u   l   d       b   e       i   n   t   e   r   n
0040360    a   l   .   "   ) 006 001  \r  \r   (   d   e   f   d   e   f
0040400    i   n   e   r     006 002   d   e   f   i   n   e   -   c   o
0040420    n   d   i   t   i   o   n 006 001  \r               s   t   r
0040440    u   c   t   u   r   e   s  \r               (   n   a   m   e
0040460        p   a   r   e   n   t   -   t   y   p   e       &   r   e
0040500    s   t       a   r   g   s   )  \r               "   D   e   f
0040520    i   n   e   s       a       n   e   w       c   o   n   d   i
0040540    t   i   o   n       t   y   p   e   "  \r               (   c
0040560    l   :   f   l   e   t  \r                   (   (   e   x   t
0040600    r   a   c   t   -   s   l   o   t   -   n   a   m   e       (
0040620    s   l   o   t   )  \r                                        
0040640            ( 006 002   i   f 006 001       (   c   l   :   c   o
0040660    n   s   p       s   l   o   t   )  \r                        
0040700                                          006 002   t   h   e   n
0040720  006 001       (   c   a   r       s   l   o   t   )  \r        
0040740                                                  006 002   e   l
0040760    s   e 006 001       s   l   o   t   )   )   )  \r            
0041000        (   l   e   t  \r                       (   (   c   l   a
0041020    s   s   -   o   p   t   i   o   n   s       `   (   ,   @   (
0041040    c   l   :   i   f       %   c   o   n   d   i   t   i   o   n
0041060    -   t   y   p   e   s   -   r   e   a   l       '   (   (   :
0041100    p   r   i   n   t   -   f   u   n   c   t   i   o   n       %
0041120    p   r   i   n   t   -   c   o   n   d   i   t   i   o   n   )
0041140    )  \r                                                        
0041160                                                                 
0041200            '   (   (   :   t   y   p   e       l   i   s   t   )
0041220   \r                                                            
0041240                                                                 
0041260                :   n   a   m   e   d   )   )       (   :   c   o
0041300    n   s   t   r   u   c   t   o   r       ,   (   %   p   r   e
0041320    f   i   x   -   s   y   m   b   o   l       "   %   M   A   K
0041340    E   -   "       n   a   m   e   )   )  \r                    
0041360                                                                 
0041400                                    (   :   c   o   p   i   e   r
0041420        n   i   l   )  \r                                        
0041440                                                                 
0041460                (   :   p   r   e   d   i   c   a   t   e       n
0041500    i   l   )   )   )  \r                           r   e   p   o
0041520    r   t   e   r       h   a   n   d   l   e   r       e   n   c
0041540    a   p   s   u   l   a   t   i   o   n   )  \r                
0041560        (   c   l   :   m   u   l   t   i   p   l   e   -   v   a
0041600    l   u   e   -   b   i   n   d  \r                           (
0041620    k   e   y   s       s   l   o   t   -   d   e   s   c   r   i
0041640    p   t   i   o   n   s   )  \r                           (   s
0041660    t   r   i   p   -   k   e   y   w   o   r   d   s       a   r
0041700    g   s   )  \r                           (   c   l   :   s   e
0041720    t   f       s   l   o   t   -   d   e   s   c   r   i   p   t
0041740    i   o   n   s       (   n   o   r   m   a   l   i   z   e   -
0041760    s   l   o   t   -   d   e   s   c   r   i   p   t   i   o   n
0042000    s       s   l   o   t   -   d   e   s   c   r   i   p   t   i
0042020    o   n   s   )   )  \r                           (   a   n   d
0042040        (   n   e   q       p   a   r   e   n   t   -   t   y   p
0042060    e       n   a   m   e   )  \r                                
0042100                (   l   e   t   *       (   (   a   l   l   -   s
0042120    u   p   e   r   -   s   l   o   t   s       (   s   l   o   t
0042140    -   l   i   s   t       p   a   r   e   n   t   -   t   y   p
0042160    e   )   )  \r                                                
0042200                            (   r   e   d   e   f   i   n   e   d
0042220    -   s   l   o   t   s       ( 006 002   f   o   r 006 001    
0042240    s   l   o   t     006 002   i   n 006 001       s   l   o   t
0042260    -   d   e   s   c   r   i   p   t   i   o   n   s     006 002
0042300    w   h   e   n 006 001       (   c   l   :   m   e   m   b   e
0042320    r       (   c   a   r       s   l   o   t   )  \r            
0042340                                                                 
*
0042440                                                a   l   l   -   s
0042460    u   p   e   r   -   s   l   o   t   s   )  \r                
0042500                                                                 
*
0042540          006 002   c   o   l   l   e   c   t 006 001       s   l
0042560    o   t   )   )   )  \r                                        
0042600                                (   c   l   :   p   u   s   h    
0042620    (   l   i   s   t   *       :   i   n   c   l   u   d   e    
0042640    p   a   r   e   n   t   -   t   y   p   e       r   e   d   e
0042660    f   i   n   e   d   -   s   l   o   t   s   )  \r            
0042700                                                                 
0042720                        c   l   a   s   s   -   o   p   t   i   o
0042740    n   s   )  \r                                                
0042760                        (   c   l   :   s   e   t   f       s   l
0043000    o   t   -   d   e   s   c   r   i   p   t   i   o   n   s    
0043020    ( 006 002   f   o   r 006 001       s   l   o   t     006 002
0043040    i   n 006 001       s   l   o   t   -   d   e   s   c   r   i
0043060    p   t   i   o   n   s  \r                                    
0043100                                                                 
*
0043140                          006 002   u   n   l   e   s   s 006 001
0043160        (   c   l   :   m   e   m   b   e   r       s   l   o   t
0043200        r   e   d   e   f   i   n   e   d   -   s   l   o   t   s
0043220    )     006 002   c   o   l   l   e   c   t 006 001       s   l
0043240    o   t   )   )  \r                                            
0043260                            )   )  \r                           (
0043300    c   l   :   u   n   l   e   s   s       (   a   n   d       n
0043320    i   l       %   c   o   n   d   i   t   i   o   n   -   t   y
0043340    p   e   s   -   r   e   a   l   )  \r                        
0043360                                (   c   l   :   s   e   t   f    
0043400    e   n   c   a   p   s   u   l   a   t   i   o   n       (   m
0043420    a   k   e   -   e   n   c   a   p   s   u   l   a   t   i   o
0043440    n       n   a   m   e       (   a   p   p   e   n   d       (
0043460    m   a   p   c   a   r       (   s   l   o   t   -   l   i   s
0043500    t       p   a   r   e   n   t   -   t   y   p   e   )  \r    
0043520                                                                 
*
0043620                                                (   f   u   n   c
0043640    t   i   o   n      \r                                        
0043660                                                                 
*
0043760                e   x   t   r   a   c   t   -   s   l   o   t   -
0044000    n   a   m   e   )   )  \r                                    
0044020                                                                 
*
0044100                                                (   m   a   p   c
0044120    a   r       s   l   o   t   -   d   e   s   c   r   i   p   t
0044140    i   o   n   s  \r                                            
0044160                                                                 
*
0044260    (   f   u   n   c   t   i   o   n      \r                    
0044300                                                                 
*
0044400                                e   x   t   r   a   c   t   -   s
0044420    l   o   t   -   n   a   m   e   )   )   )   )   )   )  \r    
0044440                        ( 006 002   f   o   r 006 001       p   a
0044460    i   r     006 002   i   n 006 001       k   e   y   s  \r    
0044500                                  006 002   d   o 006 001  \r    
0044520                                    (   d   e   s   t   r   u   c
0044540    t   u   r   i   n   g   -   b   i   n   d  \r                
0044560                            (   k   e   y       v   a   l   u   e
0044600    )  \r                                           p   a   i   r
0044620   \r                                           (   c   a   s   e
0044640        k   e   y       (   :   c   o   n   c   -   n   a   m   e
0044660        (   c   l   :   p   u   s   h       p   a   i   r       c
0044700    l   a   s   s   -   o   p   t   i   o   n   s   )   )  \r    
0044720                                                                (
0044740    :   r   e   p   o   r   t   -   f   u   n   c   t   i   o   n
0044760        ( 006 002   i   f 006 001       r   e   p   o   r   t   e
0045000    r  \r                                                        
0045020                                                                 
0045040                                  006 002   t   h   e   n 006 001
0045060        (   c   l   :   e   r   r   o   r       "   R   e   p   o
0045100    r   t       f   u   n   c   t   i   o   n       a   l   r   e
0045120    a   d   y       s   p   e   c   i   f   i   e   d       f   o
0045140    r       ~   S   .   "       n   a   m   e  \r                
0045160                                                                 
*
0045220                                                            )  \r
0045240                                                                 
*
0045300                  006 002   e   l   s   e 006 001       (   c   l
0045320    :   s   e   t   f       r   e   p   o   r   t   e   r       v
0045340    a   l   u   e   )   )   )  \r                                
0045360                                    (   :   r   e   p   o   r   t
0045400        ( 006 002   i   f 006 001       r   e   p   o   r   t   e
0045420    r  \r                                                        
0045440                                                              006
0045460  002   t   h   e   n 006 001       (   c   l   :   e   r   r   o
0045500    r       "   R   e   p   o   r   t       f   u   n   c   t   i
0045520    o   n       a   l   r   e   a   d   y       s   p   e   c   i
0045540    f   i   e   d       f   o   r       ~   S   .   "       n   a
0045560    m   e   )  \r                                                
0045600                                                              006
0045620  002   e   l   s   e 006 001       (   c   l   :   s   e   t   f
0045640        r   e   p   o   r   t   e   r       (   c   l   :   i   f
0045660        (   a   n   d       n   i   l       %   c   o   n   d   i
0045700    t   i   o   n   -   t   y   p   e   s   -   r   e   a   l   )
0045720   \r                                                            
0045740                                                                 
*
0046000                                            (   m   a   k   e   -
0046020    r   e   p   o   r   t   -   f   u   n   c   t   i   o   n    
0046040    v   a   l   u   e       '   c   o   n   d   i   t   i   o   n
0046060        n   a   m   e   )  \r                                    
0046100                                                                 
*
0046160    (   m   a   k   e   -   f   a   k   e   -   r   e   p   o   r
0046200    t   -   f   u   n   c   t   i   o   n       v   a   l   u   e
0046220   \r                                                            
0046240                                                                 
*
0046320        '   c   o   n   d   i   t   i   o   n       e   n   c   a
0046340    p   s   u   l   a   t   i   o   n   )   )   )   )   )  \r    
0046360                                                                (
0046400    :   h   a   n   d   l   e   r   -   f   u   n   c   t   i   o
0046420    n       ( 006 002   i   f 006 001       h   a   n   d   l   e
0046440    r  \r                                                        
0046460                                                                 
0046500                                      006 002   t   h   e   n 006
0046520  001       (   c   l   :   e   r   r   o   r       "   H   a   n
0046540    d   l   e   r       a   l   r   e   a   d   y       s   p   e
0046560    c   i   f   i   e   d       f   o   r       ~   S   .   "    
0046600    n   a   m   e   )  \r                                        
0046620                                                                 
0046640                                              006 002   e   l   s
0046660    e 006 001       (   c   l   :   s   e   t   f       h   a   n
0046700    d   l   e   r       v   a   l   u   e   )   )   )  \r        
0046720                                                            (   :
0046740    h   a   n   d   l   e       ( 006 002   i   f 006 001       h
0046760    a   n   d   l   e   r  \r                                    
0047000                                                                 
0047020                  006 002   t   h   e   n 006 001       (   c   l
0047040    :   e   r   r   o   r       "   H   a   n   d   l   e   r    
0047060    a   l   r   e   a   d   y       s   p   e   c   i   f   i   e
0047100    d       f   o   r       ~   S   .   "       n   a   m   e   )
0047120   \r                                                            
0047140                                                  006 002   e   l
0047160    s   e 006 001       (   c   l   :   s   e   t   f       h   a
0047200    n   d   l   e   r       `   (   l   a   m   b   d   a       (
0047220    c   o   n   d   i   t   i   o   n   )  \r                    
0047240                                                                 
*
0047300                                                                ,
0047320    (   c   l   :   i   f       (   n   u   l   l       e   n   c
0047340    a   p   s   u   l   a   t   i   o   n   )  \r                
0047360                                                                 
*
0047440                                    v   a   l   u   e  \r        
0047460                                                                 
*
0047540                                            `   (   l   e   t    
0047560    ,   e   n   c   a   p   s   u   l   a   t   i   o   n       ,
0047600    v   a   l   u   e   )   )   )   )   )   )  \r                
0047620                                                    (   c   l   :
0047640    o   t   h   e   r   w   i   s   e       (   c   l   :   c   e
0047660    r   r   o   r       "   S   k   i   p       k   e   y   -   v
0047700    a   l   u   e       p   a   i   r   "       "   I   l   l   e
0047720    g   a   l       k   e   y   w   o   r   d       ~   S       i
0047740    n       ~   S   .   "       k   e   y  \r                    
0047760                                                                 
*
0050020    '   d   e   f   i   n   e   -   c   o   n   d   i   t   i   o
0050040    n   )   )   )   )   )  \r                           `   (   p
0050060    r   o   g   n       (   c   l   :   d   e   f   s   t   r   u
0050100    c   t       ( 006 002   (   \   \   \   ,       n   a   m   e
0050120    ) 006 001       ,   @   c   l   a   s   s   -   o   p   t   i
0050140    o   n   s   )       ,   @   s   l   o   t   -   d   e   s   c
0050160    r   i   p   t   i   o   n   s       )  \r  \r                
0050200                                            ,   @   (   c   l   :
0050220    i   f       (   n   e   q       n   a   m   e       p   a   r
0050240    e   n   t   -   t   y   p   e   )  \r                        
0050260                                                                 
0050300        `   (   (   f   i   x   -   i   n   h   e   r   i   t   a
0050320    n   c   e   -   l   i   n   k   s       '   ,   n   a   m   e
0050340        '   ,   p   a   r   e   n   t   -   t   y   p   e   )   )
0050360    )  \r                                                        
0050400    ,   @   (   c   l   :   i   f       (   c   l   :   c   o   n
0050420    s   p       h   a   n   d   l   e   r   )  \r                
0050440                                                                 
0050460                (   l   e   t       (   (   h   a   n   d   l   e
0050500    r   -   n   a   m   e       (   %   s   u   f   f   i   x   -
0050520    s   y   m   b   o   l       n   a   m   e       "       d   e
0050540    f   a   u   l   t       h   a   n   d   l   e   r   "   )   )
0050560    )  \r                                                        
0050600                                                            (   p
0050620    r   o   g   1       `   (   (   c   l   :   s   e   t   f    
0050640    (   c   l   :   s   y   m   b   o   l   -   f   u   n   c   t
0050660    i   o   n       '   ,   h   a   n   d   l   e   r   -   n   a
0050700    m   e   )  \r                                                
0050720                                                                 
*
0050760    (   f   u   n   c   t   i   o   n       ,   h   a   n   d   l
0051000    e   r   )   )   )       (   s   e   t   q       h   a   n   d
0051020    l   e   r       h   a   n   d   l   e   r   -   n   a   m   e
0051040    )   )   )   )  \r                                            
0051060                (   c   l   :   s   e   t   f       (   c   o   n
0051100    d   i   t   i   o   n   -   h   a   n   d   l   e   r       '
0051120    ,   n   a   m   e   )  \r                                    
0051140                                                    ,   (   a   n
0051160    d       h   a   n   d   l   e   r       `   (   f   u   n   c
0051200    t   i   o   n       ,   h   a   n   d   l   e   r   )   )   )
0051220   \r                                                           ,
0051240    @   (   c   l   :   i   f       (   c   l   :   c   o   n   s
0051260    p       r   e   p   o   r   t   e   r   )  \r                
0051300                                                                 
0051320                (   l   e   t       (   (   r   e   p   o   r   t
0051340    e   r   -   n   a   m   e       (   %   s   u   f   f   i   x
0051360    -   s   y   m   b   o   l       n   a   m   e       "       r
0051400    e   p   o   r   t       m   e   t   h   o   d   "   )   )   )
0051420   \r                                                            
0051440                                                        (   p   r
0051460    o   g   1       `   (   (   c   l   :   s   e   t   f       (
0051500    c   l   :   s   y   m   b   o   l   -   f   u   n   c   t   i
0051520    o   n       '   ,   r   e   p   o   r   t   e   r   -   n   a
0051540    m   e   )  \r                                                
0051560                                                                 
*
0051620    (   f   u   n   c   t   i   o   n       ,   r   e   p   o   r
0051640    t   e   r   )   )   )       (   s   e   t   q       r   e   p
0051660    o   r   t   e   r       r   e   p   o   r   t   e   r   -   n
0051700    a   m   e   )   )   )   )  \r                                
0051720                            (   c   l   :   s   e   t   f       (
0051740    c   o   n   d   i   t   i   o   n   -   r   e   p   o   r   t
0051760    e   r       '   ,   n   a   m   e   )  \r                    
0052000                                                                 
0052020    ,   (   a   n   d       r   e   p   o   r   t   e   r       `
0052040    (   f   u   n   c   t   i   o   n       ,   r   e   p   o   r
0052060    t   e   r   )   )   )  \r                                    
0052100                        '   ,   n   a   m   e   )   )   )   )   )
0052120   \r  \r   (   d   e   f   m   a   c   r   o     006 002   c   l
0052140    :   c   h   e   c   k   -   t   y   p   e 006 001       (   p
0052160    l   a   c   e       t   y   p   e   s   p   e   c       &   o
0052200    p   t   i   o   n   a   l       s   t   r   i   n   g   )  \r
0052220                (   w   i   t   h   -   e   r   r   -   l   o   o
0052240    p   -   v   a   r   s       "   C   H   E   C   K   -   T   Y
0052260    P   E   "       `   (   c   l   :   b   l   o   c   k       ,
0052300    b   l   o   c   k   -   n   a   m   e  \r                    
0052320                                                                 
*
0052360                                (   c   l   :   t   a   g   b   o
0052400    d   y       ,   a   g   a   i   n  \r                        
0052420                                                                 
*
0052460                                                        (   l   e
0052500    t       (   (   ,   v   a   l       ,   p   l   a   c   e   )
0052520    )  \r                                                        
0052540                                                                 
*
0052600                                            (   c   l   :   w   h
0052620    e   n       (   t   y   p   e   p       ,   v   a   l       '
0052640    ,   t   y   p   e   s   p   e   c   )  \r                    
0052660                                                                 
*
0052740                                            (   c   l   :   r   e
0052760    t   u   r   n   -   f   r   o   m       ,   b   l   o   c   k
0053000    -   n   a   m   e   )   )  \r                                
0053020                                                                 
*
0053100    (   c   l   :   s   e   t   f       ,   p   l   a   c   e    
0053120    (   c   h   e   c   k   -   t   y   p   e   -   f   a   i   l
0053140   \r                                                            
0053160                                                                 
*
0053240                                            t  \r                
0053260                                                                 
*
0053360                        '   ,   p   l   a   c   e  \r            
0053400                                                                 
*
0053500                            ,   v   a   l  \r                    
0053520                                                                 
*
0053620                    '   ,   t   y   p   e   s   p   e   c  \r    
0053640                                                                 
*
0053740                                    ,   s   t   r   i   n   g   )
0053760    )  \r                                                        
0054000                                                                 
*
0054040                                            (   g   o       ,   a
0054060    g   a   i   n   )   )   )   )   )   )  \r  \r   (   d   e   f
0054100    m   a   c   r   o     006 002   c   l   :   e   t   y   p   e
0054120    c   a   s   e 006 001       (   k   e   y   f   o   r   m    
0054140    &   b   o   d   y       c   l   a   u   s   e   s   )  \r    
0054160            (   w   i   t   h   -   g   e   n   s   y   m   s    
0054200    (   v   a   l   u   e   )  \r                                
0054220            "   E   T   Y   P   E   C   A   S   E   "  \r        
0054240                                    (   l   e   t       (   (   c
0054260    a   s   e   -   s   e   l   e   c   t   o   r   s       (   c
0054300    o   n   s       '   o   r       (   c   o   l   l   e   c   t
0054320    -   c   a   s   e   -   s   e   l   e   c   t   o   r   s    
0054340    c   l   a   u   s   e   s       '   c   l   :   e   t   y   p
0054360    e   c   a   s   e   )   )   )   )  \r                        
0054400                                        `   (   l   e   t       (
0054420    (   ,   v   a   l   u   e       ,   k   e   y   f   o   r   m
0054440    )   )  \r                                                    
0054460                                    (   c   l   :   t   y   p   e
0054500    c   a   s   e       ,   v   a   l   u   e       ,   @   c   l
0054520    a   u   s   e   s       (   t       (   c   h   e   c   k   -
0054540    t   y   p   e   -   f   a   i   l       n   i   l       '   ,
0054560    k   e   y   f   o   r   m       ,   v   a   l   u   e  \r    
0054600                                                                 
*
0054660                                                    '   ,   c   a
0054700    s   e   -   s   e   l   e   c   t   o   r   s       n   i   l
0054720    )   )   )   )   )   )   )  \r  \r   (   d   e   f   m   a   c
0054740    r   o     006 002   c   l   :   c   t   y   p   e   c   a   s
0054760    e 006 001       (   k   e   y   p   l   a   c   e       &   b
0055000    o   d   y       c   l   a   u   s   e   s   )  \r            
0055020    (   l   e   t       (   (   c   a   s   e   -   s   e   l   e
0055040    c   t   o   r   s       (   c   o   n   s       '   o   r    
0055060    (   c   o   l   l   e   c   t   -   c   a   s   e   -   s   e
0055100    l   e   c   t   o   r   s       c   l   a   u   s   e   s    
0055120    '   c   l   :   c   t   y   p   e   c   a   s   e   )   )   )
0055140    )  \r                                   (   w   i   t   h   -
0055160    e   r   r   -   l   o   o   p   -   v   a   r   s  \r        
0055200                                "   C   T   Y   P   E   C   A   S
0055220    E   "  \r                                       `   (   c   l
0055240    :   b   l   o   c   k       ,   b   l   o   c   k   -   n   a
0055260    m   e       (   c   l   :   t   a   g   b   o   d   y  \r    
0055300                                                                 
*
0055340    ,   a   g   a   i   n  \r                                    
0055360                                                                 
0055400                                    (   l   e   t       (   (   ,
0055420    v   a   l       ,   k   e   y   p   l   a   c   e   )   )  \r
0055440                                                                 
*
0055500                            (   c   l   :   r   e   t   u   r   n
0055520    -   f   r   o   m       ,   b   l   o   c   k   -   n   a   m
0055540    e  \r                                                        
0055560                                                                 
0055600                                                                (
0055620    c   l   :   t   y   p   e   c   a   s   e       ,   v   a   l
0055640        ,   @   c   l   a   u   s   e   s  \r                    
0055660                                                                 
*
0055720                                                                (
0055740    t       (   c   l   :   s   e   t   f       ,   k   e   y   p
0055760    l   a   c   e       (   c   h   e   c   k   -   t   y   p   e
0056000    -   f   a   i   l  \r                                        
0056020                                                                 
*
0056120        t  \r                                                    
0056140                                                                 
*
0056220                                                            '   ,
0056240    k   e   y   p   l   a   c   e  \r                            
0056260                                                                 
*
0056360                    ,   v   a   l  \r                            
0056400                                                                 
*
0056500                    '   ,   c   a   s   e   -   s   e   l   e   c
0056520    t   o   r   s       n   i   l   )   )  \r                    
0056540                                                                 
*
0056620            (   g   o       ,   a   g   a   i   n   )   )   )   )
0056640    )   )   )   )   )   )  \r  \r   (   d   e   f   m   a   c   r
0056660    o     006 002   c   l   :   e   c   a   s   e 006 001       (
0056700    k   e   y   f   o   r   m       &   r   e   s   t       c   l
0056720    a   u   s   e   s   )  \r               (   w   i   t   h   -
0056740    g   e   n   s   y   m   s       (   v   a   l   u   e   )  \r
0056760                                            "   E   C   A   S   E
0057000    "  \r                                           (   l   e   t
0057020        (   (   c   a   s   e   -   s   e   l   e   c   t   o   r
0057040    s       (   c   o   l   l   e   c   t   -   c   a   s   e   -
0057060    s   e   l   e   c   t   o   r   s       c   l   a   u   s   e
0057100    s       '   c   l   :   e   c   a   s   e   )   )   )  \r    
0057120                                                            (   c
0057140    l   :   i   f       c   a   s   e   -   s   e   l   e   c   t
0057160    o   r   s       `   (   l   e   t       (   (   ,   v   a   l
0057200    u   e       ,   k   e   y   f   o   r   m   )   )  \r        
0057220                                                                 
*
0057260                                        (   c   a   s   e       ,
0057300    v   a   l   u   e       ,   @   c   l   a   u   s   e   s    
0057320    (   t       (   e   c   a   s   e   -   f   a   i   l       n
0057340    i   l  \r                                                    
0057360                                                                 
*
0057440                                                                '
0057460    ,   k   e   y   f   o   r   m  \r                            
0057500                                                                 
*
0057600                        ,   v   a   l   u   e  \r                
0057620                                                                 
*
0057720                                    '   ,   c   a   s   e   -   s
0057740    e   l   e   c   t   o   r   s   )   )   )   )  \r            
0057760                                                                 
0060000                (   c   l   :   e   r   r   o   r       "   E   m
0060020    p   t   y       c   a   s   e       s   t   a   t   e   m   e
0060040    n   t   .   "   )   )   )   )   )  \r  \r   (   d   e   f   m
0060060    a   c   r   o     006 002   c   l   :   c   c   a   s   e 006
0060100  001       (   k   e   y   f   o   r   m       &   b   o   d   y
0060120        c   l   a   u   s   e   s   )  \r               (   l   e
0060140    t       (   (   c   a   s   e   -   s   e   l   e   c   t   o
0060160    r   s       (   c   o   l   l   e   c   t   -   c   a   s   e
0060200    -   s   e   l   e   c   t   o   r   s       c   l   a   u   s
0060220    e   s       '   c   l   :   c   c   a   s   e   )   )   )  \r
0060240                                    (   c   l   :   u   n   l   e
0060260    s   s       c   a   s   e   -   s   e   l   e   c   t   o   r
0060300    s       (   c   l   :   e   r   r   o   r       "   E   m   p
0060320    t   y       C   C   A   S   E   .   "   )   )  \r            
0060340                        (   w   i   t   h   -   e   r   r   -   l
0060360    o   o   p   -   v   a   r   s  \r                            
0060400            "   C   C   A   S   E   "  \r                        
0060420                `   (   c   l   :   b   l   o   c   k       ,   b
0060440    l   o   c   k   -   n   a   m   e       (   c   l   :   t   a
0060460    g   b   o   d   y  \r                                        
0060500                                                                 
0060520                                ,   a   g   a   i   n  \r        
0060540                                                                 
0060560                                                                (
0060600    l   e   t       (   (   ,   v   a   l       ,   k   e   y   f
0060620    o   r   m   )   )  \r                                        
0060640                                                                 
0060660                                                    (   c   l   :
0060700    r   e   t   u   r   n   -   f   r   o   m       ,   b   l   o
0060720    c   k   -   n   a   m   e  \r                                
0060740                                                                 
*
0061000                        (   c   a   s   e       ,   v   a   l    
0061020    ,   @   c   l   a   u   s   e   s  \r                        
0061040                                                                 
*
0061100                                                        (   t    
0061120    (   c   l   :   s   e   t   f       ,   k   e   y   f   o   r
0061140    m       (   e   c   a   s   e   -   f   a   i   l  \r        
0061160                                                                 
*
0061260                                t  \r                            
0061300                                                                 
*
0061400            '   ,   k   e   y   f   o   r   m  \r                
0061420                                                                 
*
0061520                        ,   v   a   l  \r                        
0061540                                                                 
*
0061640                '   ,   c   a   s   e   -   s   e   l   e   c   t
0061660    o   r   s   )   )  \r                                        
0061700                                                                 
*
0061740                                                    (   g   o    
0061760    ,   a   g   a   i   n   )   )   )   )   )   )   )   )   )   )
0062000   \r  \r   (   d   e   f   m   a   c   r   o     006 002   c   l
0062020    :   a   s   s   e   r   t 006 001       (   t   e   s   t   -
0062040    f   o   r   m       &   o   p   t   i   o   n   a   l       p
0062060    l   a   c   e   s       s   t   r   i   n   g       &   r   e
0062100    s   t       a   r   g   s   )  \r               (   c   l   :
0062120    u   n   l   e   s   s       (   c   l   :   l   i   s   t   p
0062140        p   l   a   c   e   s   )  \r                            
0062160                (   c   l   :   e   r   r   o   r       "   ~   S
0062200        s   h   o   u   l   d       b   e       a       l   i   s
0062220    t       o   f       p   l   a   c   e   s   .   "       p   l
0062240    a   c   e   s   )   )  \r               (   w   i   t   h   -
0062260    e   r   r   -   l   o   o   p   -   v   a   r   s       "   A
0062300    S   S   E   R   T   "       `   (   c   l   :   b   l   o   c
0062320    k       ,   b   l   o   c   k   -   n   a   m   e       (   c
0062340    l   :   t   a   g   b   o   d   y       ,   a   g   a   i   n
0062360        (   c   l   :   w   h   e   n  \r                        
0062400                                                                 
*
0062500                        ,   t   e   s   t   -   f   o   r   m  \r
0062520                                                                 
*
0062620                                                (   c   l   :   r
0062640    e   t   u   r   n   -   f   r   o   m  \r                    
0062660                                                                 
*
0062760                                ,   b   l   o   c   k   -   n   a
0063000    m   e  \r                                                    
0063020                                                                 
*
0063100                                                                (
0063120    c   l   :   v   a   l   u   e   s   )   )   )  \r            
0063140                                                                 
*
0063220                                                (   a   s   s   e
0063240    r   t   -   f   a   i   l       ,   s   t   r   i   n   g    
0063260    ,   @   a   r   g   s   )  \r                                
0063300                                                                 
*
0063360                            (   g   o       ,   a   g   a   i   n
0063400    )   )   )   )   )  \r  \r   (   d   e   f   m   a   c   r   o
0063420      006 002   h   a   n   d   l   e   r   -   b   i   n   d 006
0063440  001       (   b   i   n   d   i   n   g   s       &   r   e   s
0063460    t       f   o   r   m   s   )       "   E   v   a   l       f
0063500    o   r   m   s       u   n   d   e   r       t   e   m   p   o
0063520    r   a   r   y       n   e   w       c   o   n   d   i   t   i
0063540    o   n       h   a   n   d   l   e   r   s   .   "  \r        
0063560        `   (   l   e   t       (   (   *   c   o   n   d   i   t
0063600    i   o   n   -   h   a   n   d   l   e   r   -   b   i   n   d
0063620    i   n   g   s   *       (   l   i   s   t   *       ,   @   (
0063640    e   x   t   r   a   c   t   -   c   o   n   d   i   t   i   o
0063660    n   -   b   i   n   d   i   n   g   s       (  \r            
0063700                                                                 
*
0064000                                n   o   r   m   a   l   i   z   e
0064020    -   c   o   n   d   i   t   i   o   n   -   c   l   a   u   s
0064040    e   s  \r                                                    
0064060                                                                 
*
0064160        b   i   n   d   i   n   g   s   )   )      \r            
0064200                                                                 
*
0064240                                                    *   c   o   n
0064260    d   i   t   i   o   n   -   h   a   n   d   l   e   r   -   b
0064300    i   n   d   i   n   g   s   *   )   )   )  \r                
0064320                        ,   @   f   o   r   m   s   )   )  \r  \r
0064340    (   d   e   f   m   a   c   r   o     006 002   c   o   n   d
0064360    i   t   i   o   n   -   b   i   n   d 006 001       (   b   i
0064400    n   d   i   n   g   s       &   r   e   s   t       f   o   r
0064420    m   s   )      \r                                            
0064440                                                        "   E   v
0064460    a   l       f   o   r   m   s       u   n   d   e   r       t
0064500    e   m   p   o   r   a   r   y       n   e   w       c   o   n
0064520    d   i   t   i   o   n       h   a   n   d   l   e   r   s   ;
0064540        s   y   n   o   n   y   m       f   o   r       H   A   N
0064560    D   L   E   R   -   B   I   N   D   "  \r               `   (
0064600    h   a   n   d   l   e   r   -   b   i   n   d       ,   b   i
0064620    n   d   i   n   g   s       ,   @   f   o   r   m   s   )   )
0064640   \r  \r   (   d   e   f   m   a   c   r   o     006 002   c   o
0064660    n   d   i   t   i   o   n   -   c   a   s   e 006 001       (
0064700    f   o   r   m       &   r   e   s   t       b   i   n   d   i
0064720    n   g   s   )      \r                                        
0064740                                                                 
0064760        "   E   v   a   l       f   o   r   m       u   n   d   e
0065000    r       c   o   n   d   i   t   i   o   n       h   a   n   d
0065020    l   e   r   s       t   h   a   t       p   r   o   v   i   d
0065040    e       a   l   t   e   r   n   a   t   e       c   o   n   t
0065060    i   n   u   a   t   i   o   n   s   .   "  \r               (
0065100    w   i   t   h   -   g   e   n   s   y   m   s  \r            
0065120        (   c   o   n   d   i   t   i   o   n       c   l   :   v
0065140    a   l   u   e   s       b   n   a   m   e       h   a   n   d
0065160    l   e   r   )  \r                   "   C   O   N   D   I   T
0065200    I   O   N   -   C   A   S   E   "  \r                   (   l
0065220    e   t  \r                       (   (   c   l   a   u   s   e
0065240    s       (   n   o   r   m   a   l   i   z   e   -   c   o   n
0065260    d   i   t   i   o   n   -   c   l   a   u   s   e   s       b
0065300    i   n   d   i   n   g   s   )   )   )  \r                    
0065320    ( 006 002   |   i   f   | 006 001       (   n   u   l   l    
0065340    c   l   a   u   s   e   s   )  \r                            
0065360          006 002   |   t   h   e   n   | 006 001       f   o   r
0065400    m  \r                             006 002   |   e   l   s   e
0065420    | 006 001       `   (   l   e   t   *       (   (   ,   c   o
0065440    n   d   i   t   i   o   n       n   i   l   )  \r            
0065460                                                                 
0065500                (   ,   c   l   :   v   a   l   u   e   s       (
0065520    c   o   n   d   i   t   i   o   n   -   b   l   o   c   k  \r
0065540                                                                 
*
0065600                ,   b   n   a   m   e  \r                        
0065620                                                                 
0065640                                                        (   l   e
0065660    t       (   (   ,   h   a   n   d   l   e   r       (   f   u
0065700    n   c   t   i   o   n       (   c   l   :   l   a   m   b   d
0065720    a       (   c   )  \r                                        
0065740                                                                 
*
0066020                                            (   c   l   :   s   e
0066040    t   f       ,   c   o   n   d   i   t   i   o   n       c   )
0066060   \r                                                            
0066100                                                                 
*
0066160                        (   c   o   n   d   i   t   i   o   n   -
0066200    r   e   t   u   r   n       ,   b   n   a   m   e   )   )   )
0066220    )   )  \r                                                    
0066240                                                                 
0066260                                                (   h   a   n   d
0066300    l   e   r   -   b   i   n   d       (   (   ,   (   c   l   :
0066320    m   a   p   c   a   r       (   f   u   n   c   t   i   o   n
0066340        c   a   r   )  \r                                        
0066360                                                                 
*
0066440                            c   l   a   u   s   e   s   )       ,
0066460    h   a   n   d   l   e   r   )   )  \r                        
0066500                                                                 
*
0066540                                        (   c   l   :   m   u   l
0066560    t   i   p   l   e   -   v   a   l   u   e   -   l   i   s   t
0066600        ,   f   o   r   m   )   )   )   )   )   )  \r            
0066620                                                                 
0066640            (   c   l   :   i   f       ,   c   o   n   d   i   t
0066660    i   o   n       ,   ( 006 002   |   i   f   | 006 001       (
0066700    e   q   l       (   l   e   n   g   t   h       c   l   a   u
0066720    s   e   s   )  \r                                            
0066740                                                                 
*
0067000                                    1   )  \r                    
0067020                                                                 
*
0067060                              006 002   |   t   h   e   n   | 006
0067100  001       (   c   a   d   r       (   c   a   r       (   m   a
0067120    s   s   a   g   e   -   c   a   t   c   h   -   c   o   n   d
0067140    i   t   i   o   n   -   c   l   a   u   s   e   s      \r    
0067160                                                                 
*
0067260                    c   l   a   u   s   e   s       c   o   n   d
0067300    i   t   i   o   n   )   )   )  \r                            
0067320                                                                 
*
0067360              006 002   |   e   l   s   e   | 006 001       `   (
0067400    c   o   n   d   i   t   i   o   n   -   t   y   p   e   c   a
0067420    s   e       ,   c   o   n   d   i   t   i   o   n  \r        
0067440                                                                 
*
0067520                                ,   @   (   m   a   s   s   a   g
0067540    e   -   c   a   t   c   h   -   c   o   n   d   i   t   i   o
0067560    n   -   c   l   a   u   s   e   s       c   l   a   u   s   e
0067600    s      \r                                                    
0067620                                                                 
*
0067700                        c   o   n   d   i   t   i   o   n   )  \r
0067720                                                                 
*
0070000                                        (   t       (   c   l   :
0070020    e   r   r   o   r      \r                                    
0070040                                                                 
*
0070100                                        "   B   u   g       i   n
0070120        c   o   n   d   i   t   i   o   n   -   c   a   s   e   !
0070140    ~   &   U   n   e   x   p   e   c   t   e   d       c   o   n
0070160    d   i   t   i   o   n   :       ~   S   .   "  \r            
0070200                                                                 
*
0070300    ,   c   o   n   d   i   t   i   o   n   )   )   )   )       (
0070320    c   l   :   v   a   l   u   e   s   -   l   i   s   t  \r    
0070340                                                                 
*
0070460            ,   c   l   :   v   a   l   u   e   s   )   )   )   )
0070500    )   )   )  \r  \r   (   d   e   f   m   a   c   r   o     006
0070520  002   r   e   a   l   -   c   o   n   d   i   t   i   o   n   -
0070540    c   a   s   e 006 001       (   f   o   r   m       &   r   e
0070560    s   t       c   a   s   e   s   )      \r                    
0070600                                                                 
0070620                            "   E   v   a   l       f   o   r   m
0070640        u   n   d   e   r       c   o   n   d   i   t   i   o   n
0070660        h   a   n   d   l   e   r   s       t   h   a   t       p
0070700    r   o   v   i   d   e       a   l   t   e   r   n   a   t   e
0070720        c   o   n   t   i   n   u   a   t   i   o   n   s   .   "
0070740   \r               (   w   i   t   h   -   g   e   n   s   y   m
0070760    s  \r                   (   o   u   t   e   r       i   n   n
0071000    e   r       c   o   n   d   i   t   i   o   n       d   u   m
0071020    m   y   )  \r                   "   C   O   N   D   I   T   I
0071040    O   N   -   C   A   S   E   "  \r                   `   (   c
0071060    l   :   b   l   o   c   k  \r                           ,   o
0071100    u   t   e   r  \r                           (   c   l   :   m
0071120    u   l   t   i   p   l   e   -   v   a   l   u   e   -   c   a
0071140    l   l  \r                               '   c   l   :   f   u
0071160    n   c   a   l   l  \r                               (   c   l
0071200    :   b   l   o   c   k  \r                                   ,
0071220    i   n   n   e   r  \r                                   (   h
0071240    a   n   d   l   e   r   -   b   i   n   d  \r                
0071260                        ,   ( 006 002   f   o   r 006 001       c
0071300    a   s   e     006 002   i   n 006 001       c   a   s   e   s
0071320   \r                                                     006 002
0071340    c   o   l   l   e   c   t 006 001  \r                        
0071360                                (   d   e   s   t   r   u   c   t
0071400    u   r   i   n   g   -   b   i   n   d  \r                    
0071420                                        (   t   y   p   e   s    
0071440    b   v   l       .       b   o   d   y   )  \r                
0071460                                            c   a   s   e  \r    
0071500                                                        `   (   ,
0071520    t   y   p   e   s  \r                                        
0071540                            (   f   u   n   c   t   i   o   n    
0071560    (   c   l   :   l   a   m   b   d   a  \r                    
0071600                                                                 
0071620                            (   ,   c   o   n   d   i   t   i   o
0071640    n   )  \r                                                    
0071660                                                            (   c
0071700    l   :   r   e   t   u   r   n   -   f   r   o   m  \r        
0071720                                                                 
0071740                                            ,   i   n   n   e   r
0071760   \r                                                            
0072000                                                        (   c   l
0072020    :   v   a   l   u   e   s  \r                                
0072040                                                                 
0072060                        (   f   u   n   c   t   i   o   n       (
0072100    c   l   :   l   a   m   b   d   a  \r                        
0072120                                                                 
*
0072160            ,   @   (   c   l   :   i   f       b   v   l       (
0072200    l   i   s   t       b   v   l   )  \r                        
0072220                                                                 
*
0072260                                                `   (   (   ,   d
0072300    u   m   m   y   )  \r                                        
0072320                                                                 
*
0072360                                        ( 006 002   d   e   c   l
0072400    a   r   e 006 001       (   i   g   n   o   r   e       ,   d
0072420    u   m   m   y   )   )   )   )  \r                            
0072440                                                                 
*
0072500        ,   @   b   o   d   y   )   )  \r                        
0072520                                                                 
0072540                                ,   c   o   n   d   i   t   i   o
0072560    n   )   )   )   )   )   )   )  \r                            
0072600            (   c   l   :   r   e   t   u   r   n   -   f   r   o
0072620    m       ,   o   u   t   e   r       ,   f   o   r   m   )   )
0072640    )   )   )   )   )  \r  \r   (   d   e   f   m   a   c   r   o
0072660      006 002   i   g   n   o   r   e   -   e   r   r   o   r   s
0072700  006 001       (   &   b   o   d   y       f   o   r   m   s   )
0072720        "   E   v   a   l       f   o   r   m   s       w   i   t
0072740    h       h   a   n   d   l   e   r       f   o   r       a   n
0072760    y       c   o   n   d   i   t   i   o   n       o   f       t
0073000    y   p   e       E   R   R   O   R   .   "  \r               `
0073020    (   c   o   n   d   i   t   i   o   n   -   c   a   s   e    
0073040    (   p   r   o   g   n       ,   @   f   o   r   m   s   )  \r
0073060                                                (   e   r   r   o
0073100    r       (   c   o   n   d   i   t   i   o   n   )  \r        
0073120                                                                 
0073140    n   i   l   )   )   )  \r  \r   (   d   e   f   m   a   c   r
0073160    o     006 002   p   r   o   c   e   e   d   -   c   a   s   e
0073200  006 001       (   f   o   r   m       &   r   e   s   t       c
0073220    l   a   u   s   e   s   )      \r                            
0073240                                                                 
*
0073300                    "   E   v   a   l       f   o   r   m   s   ,
0073320        e   s   t   a   b   l   i   s   h   i   n   g       a    
0073340    p   l   a   c   e       t   o       p   r   o   c   e   e   d
0073360        f   r   o   m       e   r   r   o   r   s   .   "  \r    
0073400            (   w   i   t   h   -   g   e   n   s   y   m   s  \r
0073420                    (   s   e   l   e   c   t   o   r       c   l
0073440    :   v   a   l   u   e   s       t   a   g   )  \r            
0073460        "   P   R   O   C   E   E   D   -   C   A   S   E   "  \r
0073500                    (   c   l   :   m   u   l   t   i   p   l   e
0073520    -   v   a   l   u   e   -   b   i   n   d  \r                
0073540        (   c   a   s   e   s       b   o   d   i   e   s   )  \r
0073560                        (   s   p   l   i   t   -   p   r   o   c
0073600    e   e   d   -   c   l   a   u   s   e   s       c   l   a   u
0073620    s   e   s       t   a   g   )  \r                       ( 006
0073640  002   |   i   f   | 006 001       (   n   u   l   l       c   a
0073660    s   e   s   )  \r                                     006 002
0073700    |   t   h   e   n   | 006 001       f   o   r   m  \r        
0073720                      006 002   |   e   l   s   e   | 006 001    
0073740    `   (   d   e   s   t   r   u   c   t   u   r   i   n   g   -
0073760    b   i   n   d       (   ,   s   e   l   e   c   t   o   r    
0074000    \   \   \   ,       c   l   :   v   a   l   u   e   s   )  \r
0074020                                                                 
0074040                            (   l   e   t       (   (   ,   t   a
0074060    g       (   l   i   s   t       n   i   l   )   )   )  \r    
0074100                                                                 
0074120                                            (   c   l   :   c   a
0074140    t   c   h       ,   t   a   g       (   c   o   n   s       :
0074160    n   o   r   m   a   l       (   l   e   t       (   (   *   p
0074200    r   o   c   e   e   d   -   c   a   s   e   s   *       (   l
0074220    i   s   t   *       ,   @   c   a   s   e   s      \r        
0074240                                                                 
*
0074360                    *   p   r   o   c   e   e   d   -   c   a   s
0074400    e   s   *  \r                                                
0074420                                                                 
*
0074520                                            )   )   )  \r        
0074540                                                                 
*
0074620                                                (   c   l   :   m
0074640    u   l   t   i   p   l   e   -   v   a   l   u   e   -   l   i
0074660    s   t       ,   f   o   r   m   )   )   )   )   )  \r        
0074700                                                                 
0074720                    (   c   l   :   i   f       (   e   q       ,
0074740    s   e   l   e   c   t   o   r       :   n   o   r   m   a   l
0074760    )  \r                                                        
0075000                                                                (
0075020    c   l   :   v   a   l   u   e   s   -   l   i   s   t       ,
0075040    c   l   :   v   a   l   u   e   s   )  \r                    
0075060                                                                 
0075100                                    (   c   l   :   a   p   p   l
0075120    y       ,   ( 006 002   |   i   f   | 006 001       (   e   q
0075140    l       (   l   e   n   g   t   h       b   o   d   i   e   s
0075160    )  \r                                                        
0075200                                                                 
*
0075240                        1   )  \r                                
0075260                                                                 
*
0075320                  006 002   |   t   h   e   n   | 006 001       (
0075340    c   a   d   r       (   c   a   r       b   o   d   i   e   s
0075360    )   )  \r                                                    
0075400                                                                 
0075420                                                      006 002   |
0075440    e   l   s   e   | 006 001       `   (   c   a   s   e       ,
0075460    s   e   l   e   c   t   o   r       ,   @   b   o   d   i   e
0075500    s   )   )       ,   c   l   :   v   a   l   u   e   s   )   )
0075520    )   )   )   )   )  \r  \r   (   d   e   f   m   a   c   r   o
0075540      006 002   r   e   a   l   -   p   r   o   c   e   e   d   -
0075560    c   a   s   e 006 001       (   f   o   r   m       &   r   e
0075600    s   t       c   l   a   u   s   e   s   )      \r            
0075620                                                                 
*
0075660                                    "   E   v   a   l       f   o
0075700    r   m   s   ,       e   s   t   a   b   l   i   s   h   i   n
0075720    g       a       p   l   a   c   e       t   o       p   r   o
0075740    c   e   e   d       f   r   o   m       e   r   r   o   r   s
0075760    .   "  \r               (   w   i   t   h   -   g   e   n   s
0076000    y   m   s       (   o   u   t   e   r       t   a   g       d
0076020    u   m   m   y   )  \r                                        
0076040    "   P   R   O   C   E   E   D   -   C   A   S   E   "  \r    
0076060                                        `   (   c   l   :   b   l
0076100    o   c   k       ,   o   u   t   e   r       (   l   e   t   *
0076120        (   (   ,   t   a   g       (   l   i   s   t       n   i
0076140    l   )   )  \r                                                
0076160                                                                 
0076200                                (   *   p   r   o   c   e   e   d
0076220    -   c   a   s   e   s   *       (   l   i   s   t   *       ,
0076240    @   (   m   a   p   c   a   r       c   l   a   u   s   e   s
0076260   \r                                                            
0076300                                                                 
*
0076360                        (   f   u   n   c   t   i   o   n       (
0076400    c   l   :   l   a   m   b   d   a       (   c   l   a   u   s
0076420    e   )  \r                                                    
0076440                                                                 
*
0076540                                    (  \r                        
0076560                                                                 
*
0076660                                p   r   o   c   e   e   d   -   c
0076700    a   s   e   -   f   r   o   m   -   c   l   a   u   s   e  \r
0076720                                                                 
*
0077040                            c   l   a   u   s   e       t   a   g
0077060       \r                                                        
0077100                                                                 
*
0077200                                    d   u   m   m   y   )   )   )
0077220    )      \r                                                    
0077240                                                                 
*
0077300                                                            *   p
0077320    r   o   c   e   e   d   -   c   a   s   e   s   *   )   )   )
0077340   \r                                                            
0077360                                                                 
0077400                (   c   l   :   m   u   l   t   i   p   l   e   -
0077420    v   a   l   u   e   -   c   a   l   l       '   c   l   :   f
0077440    u   n   c   a   l   l       (   c   l   :   c   a   t   c   h
0077460        ,   t   a   g  \r                                        
0077500                                                                 
*
0077600                (   c   l   :   r   e   t   u   r   n   -   f   r
0077620    o   m  \r                                                    
0077640                                                                 
*
0077740        ,   o   u   t   e   r  \r                                
0077760                                                                 
*
0100060                            ,   f   o   r   m   )   )   )   )   )
0100100    )   )  \r  \r   (   d   e   f   d   e   f   i   n   e   r    
0100120  006 002   d   e   f   i   n   e   -   p   r   o   c   e   e   d
0100140    -   f   u   n   c   t   i   o   n 006 001  \r               f
0100160    u   n   c   t   i   o   n   s  \r               (   n   a   m
0100200    e       &   r   e   s   t       t   a   i   l       &   a   u
0100220    x       v   a   r   s   )  \r               (   c   l   :   m
0100240    u   l   t   i   p   l   e   -   v   a   l   u   e   -   b   i
0100260    n   d  \r                   (   t   e   s   t       r   e   p
0100300    o   r   t       a   r   g   l   i   s   t   )  \r            
0100320        (   p   r   o   c   e   s   s   -   p   r   o   c   e   e
0100340    d   -   k   e   y   w   o   r   d   s       n   a   m   e    
0100360    t   a   i   l   )  \r                   (   c   l   :   s   e
0100400    t   f       v   a   r   s       (   m   a   p   c   a   r    
0100420    a   r   g   l   i   s   t       (   f   u   n   c   t   i   o
0100440    n       (   l   a   m   b   d   a       (   x   )  \r        
0100460                                                                 
*
0100520                                                    (   c   l   :
0100540    i   f       (   c   l   :   s   y   m   b   o   l   p       x
0100560    )  \r                                                        
0100600                                                                 
*
0100640                                x  \r                            
0100660                                                                 
*
0100720                                                            (   c
0100740    a   r       x   )   )   )   )   )   )  \r                   (
0100760    c   l   :   u   n   l   e   s   s       t   e   s   t       (
0101000    c   l   :   s   e   t   f       t   e   s   t       '   t   r
0101020    u   e   )   )  \r                   (   c   l   :   u   n   l
0101040    e   s   s       r   e   p   o   r   t       (   c   l   :   s
0101060    e   t   f       r   e   p   o   r   t       '   d   e   f   a
0101100    u   l   t   -   p   r   o   c   e   e   d   -   r   e   p   o
0101120    r   t   e   r   )   )  \r                   `   (   p   r   o
0101140    g   n       ,   @   (   c   l   :   i   f       (   c   l   :
0101160    c   o   n   s   p       t   e   s   t   )  \r                
0101200                                                                 
0101220        (   l   e   t       (   (   t   e   s   t   e   r       (
0101240    %   s   u   f   f   i   x   -   s   y   m   b   o   l       n
0101260    a   m   e       "   -   p   r   o   c   e   e   d   -   t   e
0101300    s   t   "   )   )   )  \r                                    
0101320                                                                 
0101340        (   p   r   o   g   1       `   (   (   c   l   :   s   e
0101360    t   f       (   c   l   :   s   y   m   b   o   l   -   f   u
0101400    n   c   t   i   o   n       '   ,   t   e   s   t   e   r   )
0101420   \r                                                            
0101440                                                                 
0101460                                                (   f   u   n   c
0101500    t   i   o   n       ,   t   e   s   t   )   )   )       (   s
0101520    e   t   q       t   e   s   t       t   e   s   t   e   r   )
0101540    )   )   )  \r                                                
0101560    (   c   l   :   s   e   t   f       (   d   e   f   a   u   l
0101600    t   -   p   r   o   c   e   e   d   -   t   e   s   t       '
0101620    ,   n   a   m   e   )  \r                                    
0101640                                            '   ,   t   e   s   t
0101660    )  \r                                                   ,   @
0101700    (   c   l   :   i   f       (   c   l   :   c   o   n   s   p
0101720        r   e   p   o   r   t   )  \r                            
0101740                                                            (   l
0101760    e   t       (   (   r   e   p   o   r   t   e   r       (   %
0102000    s   u   f   f   i   x   -   s   y   m   b   o   l       n   a
0102020    m   e       "   -   p   r   o   c   e   e   d   -   r   e   p
0102040    o   r   t   e   r   "   )   )   )  \r                        
0102060                                                                 
0102100                    (   p   r   o   g   1       `   (   (   c   l
0102120    :   s   e   t   f       (   c   l   :   s   y   m   b   o   l
0102140    -   f   u   n   c   t   i   o   n       '   ,   r   e   p   o
0102160    r   t   e   r   )  \r                                        
0102200                                                                 
*
0102240    (   f   u   n   c   t   i   o   n       ,   r   e   p   o   r
0102260    t   )   )   )       (   s   e   t   q       r   e   p   o   r
0102300    t       r   e   p   o   r   t   e   r   )   )   )   )  \r    
0102320                                                (   c   l   :   s
0102340    e   t   f       (   d   e   f   a   u   l   t   -   p   r   o
0102360    c   e   e   d   -   r   e   p   o   r   t       '   ,   n   a
0102400    m   e   )  \r                                                
0102420                                '   ,   r   e   p   o   r   t   )
0102440   \r                                                   (   c   l
0102460    :   s   e   t   f       (   p   r   o   c   e   e   d   -   a
0102500    r   g   -   c   o   l   l   e   c   t   o   r       '   ,   n
0102520    a   m   e   )  \r                                            
0102540                                    (   f   u   n   c   t   i   o
0102560    n       (   c   l   :   l   a   m   b   d   a       (   &   o
0102600    p   t   i   o   n   a   l       c   o   n   d   i   t   i   o
0102620    n       ,   @   a   r   g   l   i   s   t   )  \r            
0102640                                                                 
*
0102700        (   l   i   s   t       ,   @   v   a   r   s   )   )   )
0102720    )  \r                                                   (   c
0102740    l   :   d   e   f   u   n       ( 006 002   \   \   \   , 006
0102760  001       n   a   m   e   )       (   &   o   p   t   i   o   n
0103000    a   l       c   o   n   d   i   t   i   o   n       ,   @   a
0103020    r   g   l   i   s   t   )       (   c   o   n   d   i   t   i
0103040    o   n   -   c   a   s   e  \r                                
0103060                                                                 
*
0103140                                                (   i   n   v   o
0103160    k   e   -   p   r   o   c   e   e   d   -   c   a   s   e  \r
0103200                                                                 
*
0103300                    '   ,   n   a   m   e       c   o   n   d   i
0103320    t   i   o   n       ,   @   v   a   r   s   )  \r            
0103340                                                                 
*
0103440    (   b   a   d   -   p   r   o   c   e   e   d   -   c   a   s
0103460    e       n   i   l       n   i   l   )   )   )  \r   )   )   )
0103500   \r  \r   (   d   e   f   m   a   c   r   o     006 002   c   a
0103520    t   c   h   -   a   b   o   r   t 006 001       (   p   r   i
0103540    n   t   -   f   o   r   m       &   b   o   d   y       f   o
0103560    r   m   s   )       `   (   p   r   o   c   e   e   d   -   c
0103600    a   s   e       (   p   r   o   g   n       ,   @   f   o   r
0103620    m   s   )  \r                                                
0103640                                                                 
*
0103700                                                (   a   b   o   r
0103720    t       (   c   o   n   d   i   t   i   o   n   )  \r        
0103740                                                                 
*
0104020                                                    :   r   e   p
0104040    o   r   t  \r                                                
0104060                                                                 
*
0104140            ,   p   r   i   n   t   -   f   o   r   m       :   t
0104160    e   s   t       t   r   u   e       (   c   l   :   v   a   l
0104200    u   e   s  \r                                                
0104220                                                                 
*
0104320                                            n   i   l       c   o
0104340    n   d   i   t   i   o   n   )   )  \r                        
0104360                                                                 
*
0104440        )   )  \r  \r  \r   (   p   u   t   p   r   o   p   s    
0104460  006 002   c   l   -   e   r   r   o   r       f   i   l   e   t
0104500    y   p   e 006 001       c   l   :   c   o   m   p   i   l   e
0104520    -   f   i   l   e   )  \r   (   d   e   c   l   a   r   e   \
0104540    :       d   o   n   t   e   v   a   l   @   l   o   a   d    
0104560    d   o   e   v   a   l   @   c   o   m   p   i   l   e       d
0104600    o   n   t   c   o   p   y       c   o   m   p   i   l   e   r
0104620    v   a   r   s      \r  \r   (   a   d   d   t   o   v   a   r
0104640      006 002   n   l   a   m   a 006 001       )  \r  \r   (   a
0104660    d   d   t   o   v   a   r     006 002   n   l   a   m   l 006
0104700  001       )  \r  \r   (   a   d   d   t   o   v   a   r     006
0104720  002   l   a   m   a 006 001       )  \r   )  \r   (   p   u   t
0104740    p   r   o   p   s       c   l   -   e   r   r   o   r       c
0104760    o   p   y   r   i   g   h   t       (   "   X   e   r   o   x
0105000        C   o   r   p   o   r   a   t   i   o   n   "       1   9
0105020    8   6   )   )  \r   (   d   e   c   l   a   r   e   \   :    
0105040    d   o   n   t   c   o   p   y  \r           (   f   i   l   e
0105060    m   a   p       (   n   i   l   )   )   )  \r   s   t   o   p
0105100   \r                                                            
0105101