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