$ od -c -N 50000 [Indigo]<Casaba>7.0>Saffron3.0>Derived>SaffronMakeType1Impl.Mesa!17
0000000    -   -       S   a   f   f   r   o   n   M   a   k   e   T   y
0000020    p   e   1   I   m   p   l   .   m   e   s   a  \r       -   -
0000040        C   o   p   y   r   i   g   h   t     323       1   9   8
0000060    7       b   y       X   e   r   o   x       C   o   r   p   o
0000100    r   a   t   i   o   n   .           A   l   l       r   i   g
0000120    h   t   s       r   e   s   e   r   v   e   d   .  \r       -
0000140    -       G   e   n   e   r   a   t   e   d       b   y       R
0000160    a   u   e   n   .   p   a       a   t       S   e   p   t   e
0000200    m   b   e   r       1   ,       1   9   8   8       2   :   5
0000220    1   :   2   3       p   m       P   D   T  \r       -   -    
0000240        u   s   i   n   g       T   h   r   e   e   C   a   s   a
0000260    b   a   F   o   u   r       [   1   .   2   ]       o   f    
0000300    J   u   n   e       1   ,       1   9   8   7       6   :   0
0000320    0   :   0   0       p   m       P   D   T  \r  \r   D   I   R
0000340    E   C   T   O   R   Y  \r  \t   S   a   f   f   r   o   n   A
0000360    G   1   a   D   e   f   ,  \r  \t   S   a   f   f   r   o   n
0000400    P   G   D   e   f   ,  \r  \t   S   a   f   f   r   o   n   A
0000420    G   9   D   e   f   ,  \r  \t   S   a   f   f   r   o   n   G
0000440    e   n   e   r   i   c   D   e   f   ,  \r  \t   R   o   p   e
0000460    ,  \r  \t   T   h   r   e   e   C   4   S   u   p   p   o   r
0000500    t   ,  \r  \t   S   a   f   f   r   o   n   B   a   s   e   D
0000520    e   f   ,  \r  \t   S   a   f   f   r   o   n   A   T   D   e
0000540    f   ;  \r  \r   S   a   f   f   r   o   n   M   a   k   e   T
0000560    y   p   e   1   I   m   p   l   :       C   E   D   A   R    
0000600    P   R   O   G   R   A   M       I   M   P   O   R   T   S    
0000620    S   a   f   f   r   o   n   P   G   D   e   f   ,       T   h
0000640    r   e   e   C   4   S   u   p   p   o   r   t   ,       S   a
0000660    f   f   r   o   n   B   a   s   e   D   e   f   ,       S   a
0000700    f   f   r   o   n   A   T   D   e   f       E   X   P   O   R
0000720    T   S       S   a   f   f   r   o   n   A   G   1   a   D   e
0000740    f   ,       S   a   f   f   r   o   n   A   G   9   D   e   f
0000760    =      \r   B   E   G   I   N  \r   O   P   E   N       S   a
0001000    f   f   r   o   n   A   G   1   a   D   e   f   ,       S   a
0001020    f   f   r   o   n   P   G   D   e   f   ,       S   a   f   f
0001040    r   o   n   A   G   9   D   e   f   ,       S   a   f   f   r
0001060    o   n   G   e   n   e   r   i   c   D   e   f   ,       R   o
0001100    p   e   ,       T   h   r   e   e   C   4   S   u   p   p   o
0001120    r   t   ,       S   a   f   f   r   o   n   B   a   s   e   D
0001140    e   f   ,       S   a   f   f   r   o   n   A   T   D   e   f
0001160    ;  \r   T   o   p   m   o   d   u   l   e   p   P   r   o   d
0001200    D   o   T   o   p   :  \t   P   U   B   L   I   C       P   R
0001220    O   C   [   r   e   f   :       R   E   F       A   N   Y   ,
0001240        f   i   l   e   N   a   m   e   :       R   O   P   E   ,
0001260        e   n   v   :       E   n   v   i   r   o   n   m   e   n
0001300    t   N   o   d   e   ,       c   s   :       C   o   m   p   i
0001320    l   e   r   S   t   a   t   e   N   o   d   e   ]       R   E
0001340    T   U   R   N   S   [   t   e   m   p   0   :       E   n   v
0001360    i   r   o   n   m   e   n   t   N   o   d   e   ]       =  \r
0001400    B   E   G   I   N  \r   t   r   e   e   :  \t   T   o   p   N
0001420    o   d   e   _       N   A   R   R   O   W   [   r   e   f   ]
0001440    ;  \r   B   E   G   I   N  \r   E   N   A   B   L   E       T
0001460    h   r   e   e   C   4   S   u   p   p   o   r   t   .   G   e
0001500    t   S   o   u   r   c   e   I   n   f   o       =   >       R
0001520    E   S   U   M   E   [   t   r   e   e   .   p   o   s   i   t
0001540    i   o   n   ,       t   r   e   e   .   l   e   n   g   t   h
0001560    ]   ;  \r   t   r   e   e   D   a   t   a   :  \t   T   o   p
0001600    m   o   d   u   l   e   p   P   r   o   d   D   a   t   a    
0001620    _       N   A   R   R   O   W   [   t   r   e   e   .   d   a
0001640    t   a   ]   ;  \r   t   e   m   p   0       _       t   r   e
0001660    e   D   a   t   a   .   M   o   d   u   l   e   P   .   p   r
0001700    o   c   s   .   M   a   k   e   E   n   v   i   r   o   n   m
0001720    e   n   t   [   t   r   e   e   D   a   t   a   .   M   o   d
0001740    u   l   e   P   ,       f   i   l   e   N   a   m   e   ,    
0001760    e   n   v   ,       c   s   ]   ;  \r   E   N   D  \r   E   N
0002000    D   ;  \r  \r   M   o   d   u   l   e   P   i   m   p   l   P
0002020    r   o   d   M   a   k   e   E   n   v   i   r   o   n   m   e
0002040    n   t   :  \t   P   U   B   L   I   C       P   R   O   C   [
0002060    r   e   f   :       R   E   F       A   N   Y   ,       f   i
0002100    l   e   N   a   m   e   :       R   O   P   E   ,       e   n
0002120    v   :       E   n   v   i   r   o   n   m   e   n   t   N   o
0002140    d   e   ,       c   s   :       C   o   m   p   i   l   e   r
0002160    S   t   a   t   e   N   o   d   e   ]       R   E   T   U   R
0002200    N   S   [   t   e   m   p   0   :       E   n   v   i   r   o
0002220    n   m   e   n   t   N   o   d   e   ]       =  \r   B   E   G
0002240    I   N  \r   t   r   e   e   :  \t   M   o   d   u   l   e   P
0002260    N   o   d   e   _       N   A   R   R   O   W   [   r   e   f
0002300    ]   ;  \r   B   E   G   I   N  \r   E   N   A   B   L   E    
0002320    T   h   r   e   e   C   4   S   u   p   p   o   r   t   .   G
0002340    e   t   S   o   u   r   c   e   I   n   f   o       =   >    
0002360    R   E   S   U   M   E   [   t   r   e   e   .   p   o   s   i
0002400    t   i   o   n   ,       t   r   e   e   .   l   e   n   g   t
0002420    h   ]   ;  \r   t   r   e   e   D   a   t   a   :  \t   M   o
0002440    d   u   l   e   P   i   m   p   l   P   r   o   d   D   a   t
0002460    a       _       N   A   R   R   O   W   [   t   r   e   e   .
0002500    d   a   t   a   ]   ;  \r   B   E   G   I   N  \r   e   n   v
0002520    2   :  \t   E   n   v   i   r   o   n   m   e   n   t   N   o
0002540    d   e   ;  \r   p   g   2   :  \t   P   r   o   g   r   a   m
0002560    G   r   a   p   h   N   o   d   e   ;  \r   p   r   o   c   G
0002600    r   a   p   h   :  \t   P   r   o   c   e   d   u   r   e   G
0002620    r   a   p   h   N   o   d   e   ;  \r   c   o   n   t   e   x
0002640    t   T   r   e   e   :  \t   C   o   n   t   e   x   t   T   r
0002660    e   e   N   o   d   e   ;  \r   p   r   o   g   r   a   m   F
0002700    r   a   g   m   e   n   t   :  \t   P   r   o   g   r   a   m
0002720    F   r   a   g   m   e   n   t   N   o   d   e   ;  \r   p   g
0002740    1   :  \t   P   r   o   g   r   a   m   G   r   a   p   h   N
0002760    o   d   e   ;  \r   p   g   :  \t   P   r   o   g   r   a   m
0003000    G   r   a   p   h   N   o   d   e   ;  \r   c   o   n   t   e
0003020    x   t   R   i   b   :  \t   C   o   n   t   e   x   t   R   i
0003040    b   N   o   d   e   ;  \r   l   c   4   :  \t   L   o   c   a
0003060    l   C   o   n   t   e   x   t   N   o   d   e   ;  \r   m   o
0003100    d   u   l   e   T   G   N   :  \t   T   y   p   e   G   r   a
0003120    p   h   N   o   d   e   N   o   d   e   ;  \r   f   f   l   :
0003140   \t   F   r   o   z   e   n   F   i   e   l   d   L   i   s   t
0003160    N   o   d   e   ;  \r   f   l   2   :  \t   F   i   e   l   d
0003200    L   i   s   t   N   o   d   e   ;  \r   l   c   3   :  \t   L
0003220    o   c   a   l   C   o   n   t   e   x   t   N   o   d   e   ;
0003240   \r   a   c   c   e   s   s   :  \t   A   c   c   e   s   s   V
0003260    a   l   N   o   d   e   ;  \r   l   c   2   :  \t   L   o   c
0003300    a   l   C   o   n   t   e   x   t   N   o   d   e   ;  \r   i
0003320    m   p   l   T   G   N   :  \t   T   y   p   e   G   r   a   p
0003340    h   N   o   d   e   N   o   d   e   ;  \r   c   e   d   a   r
0003360    :  \t   B   O   O   L   E   A   N   ;  \r   f   l   1   :  \t
0003400    F   i   e   l   d   L   i   s   t   N   o   d   e   ;  \r   l
0003420    c   1   :  \t   L   o   c   a   l   C   o   n   t   e   x   t
0003440    N   o   d   e   ;  \r   e   n   v   1   :  \t   E   n   v   i
0003460    r   o   n   m   e   n   t   N   o   d   e   ;  \r   f   l   :
0003500   \t   F   i   e   l   d   L   i   s   t   N   o   d   e   ;  \r
0003520    l   c   :  \t   L   o   c   a   l   C   o   n   t   e   x   t
0003540    N   o   d   e   ;  \r   l   c       _       C   r   e   a   t
0003560    e   E   m   p   t   y   C   o   n   t   e   x   t   [   G   e
0003600    t   R   o   o   t   C   o   n   t   e   x   t   R   i   b   [
0003620    c   s   ]   ,       T   r   u   e   [   ]   ]   ;  \r   f   l
0003640        _       C   r   e   a   t   e   E   m   p   t   y   F   i
0003660    e   l   d   L   i   s   t   [   ]   ;  \r   [   f   l   1   ,
0003700        l   c   1   ,       e   n   v   1   ]       _       t   r
0003720    e   e   D   a   t   a   .   D   i   r   e   c   t   o   r   y
0003740    .   p   r   o   c   s   .   P   r   o   c   e   s   s   D   i
0003760    r   e   c   t   o   r   y   C   l   a   u   s   e   [   t   r
0004000    e   e   D   a   t   a   .   D   i   r   e   c   t   o   r   y
0004020    ,       f   l   ,       l   c   ,       e   n   v   ,       c
0004040    s   ]   ;  \r   c   e   d   a   r       _       t   r   e   e
0004060    D   a   t   a   .   C   e   d   a   r   .   p   r   o   c   s
0004100    .   I   s   K   e   y   w   o   r   d   P   r   e   s   e   n
0004120    t   [   t   r   e   e   D   a   t   a   .   C   e   d   a   r
0004140    ]   ;  \r   [   l   c   2   ,       i   m   p   l   T   G   N
0004160    ]       _       t   r   e   e   D   a   t   a   .   P   r   o
0004200    g   H   e   a   d   .   p   r   o   c   s   .   B   u   i   l
0004220    d   I   m   p   l   e   m   e   n   t   a   t   i   o   n   T
0004240    G   N   [   t   r   e   e   D   a   t   a   .   P   r   o   g
0004260    H   e   a   d   ,       l   c   1   ,       c   e   d   a   r
0004300    ,       c   s   ]   ;  \r   a   c   c   e   s   s       _    
0004320    t   r   e   e   D   a   t   a   .   P   r   o   g   H   e   a
0004340    d   .   p   r   o   c   s   .   G   e   t   A   c   c   e   s
0004360    s   V   a   l   [   t   r   e   e   D   a   t   a   .   P   r
0004400    o   g   H   e   a   d   ,       A   c   c   e   s   s   V   a
0004420    l   C   o   n   s   t   [   "   p   r   i   v   a   t   e   "
0004440    ]   ]   ;  \r   [   f   l   2   ,       l   c   3   ]       _
0004460        t   r   e   e   D   a   t   a   .   I   d   e   n   t   L
0004500    i   s   t   .   p   r   o   c   s   .   A   d   d   T   y   p
0004520    e   D   e   c   l   a   r   a   t   i   o   n   T   o   F   i
0004540    e   l   d   L   i   s   t   [   t   r   e   e   D   a   t   a
0004560    .   I   d   e   n   t   L   i   s   t   ,       f   l   1   ,
0004600        l   c   2   ,       c   s   ,       a   c   c   e   s   s
0004620    ,       a   c   c   e   s   s   ,       i   m   p   l   T   G
0004640    N   ,       B   o   g   u   s   T   y   p   e   E   x   p   P
0004660    T   r   e   e   [   ]   ,       N   u   l   l   D   e   f   a
0004700    u   l   t   V   a   l   [   ]   ]   ;  \r   f   f   l       _
0004720        F   r   e   e   z   e   F   i   e   l   d   L   i   s   t
0004740    [   f   l   2   ]   ;  \r   [   l   c   4   ,       m   o   d
0004760    u   l   e   T   G   N   ]       _       C   r   e   a   t   e
0005000    M   o   d   u   l   e   T   G   N   [   l   c   3   ,       f
0005020    f   l   ]   ;  \r   c   o   n   t   e   x   t   R   i   b    
0005040    _       F   r   e   e   z   e   L   o   c   a   l   C   o   n
0005060    t   e   x   t   [   l   c   4   ,       m   o   d   u   l   e
0005100    T   G   N   ]   ;  \r   p   g       _       C   r   e   a   t
0005120    e   E   m   p   t   y   P   r   o   g   r   a   m   G   r   a
0005140    p   h   [   ]   ;  \r   [   c   o   n   t   e   x   t   T   r
0005160    e   e   ,       p   r   o   g   r   a   m   F   r   a   g   m
0005200    e   n   t   ,       p   g   1   ]       _       t   r   e   e
0005220    D   a   t   a   .   B   l   o   c   k   .   p   r   o   c   s
0005240    .   C   o   m   p   i   l   e   [   t   r   e   e   D   a   t
0005260    a   .   B   l   o   c   k   ,       E   m   p   t   y   C   o
0005300    n   t   e   x   t   T   r   e   e   [   c   o   n   t   e   x
0005320    t   R   i   b   ]   ,       p   g   ,       c   s   ]   ;  \r
0005340    p   r   o   c   G   r   a   p   h       _       M   a   k   e
0005360    P   r   o   c   e   d   u   r   e   G   r   a   p   h   [   p
0005400    r   o   g   r   a   m   F   r   a   g   m   e   n   t   ]   ;
0005420   \r   p   g   2       _       A   d   d   M   a   i   n   P   r
0005440    o   c   e   d   u   r   e   G   r   a   p   h   T   o   P   r
0005460    o   g   r   a   m   G   r   a   p   h   [   p   r   o   c   G
0005500    r   a   p   h   ,       p   g   1   ]   ;  \r   e   n   v   2
0005520        _       A   d   d   C   o   m   p   i   l   e   d   I   m
0005540    p   l   e   m   e   n   t   a   t   i   o   n   F   i   l   e
0005560    T   o   E   n   v   i   r   o   n   m   e   n   t   [   e   n
0005600    v   1   ,       f   i   l   e   N   a   m   e   ,       c   o
0005620    n   t   e   x   t   T   r   e   e   ,       p   g   2   ]   ;
0005640   \r   t   e   m   p   0       _       e   n   v   2   ;  \r   E
0005660    N   D   ;  \r   E   N   D  \r   E   N   D   ;  \r  \r   M   o
0005700    d   u   l   e   P   d   e   f   P   r   o   d   M   a   k   e
0005720    E   n   v   i   r   o   n   m   e   n   t   :  \t   P   U   B
0005740    L   I   C       P   R   O   C   [   r   e   f   :       R   E
0005760    F       A   N   Y   ,       f   i   l   e   N   a   m   e   :
0006000        R   O   P   E   ,       e   n   v   :       E   n   v   i
0006020    r   o   n   m   e   n   t   N   o   d   e   ,       c   s   :
0006040        C   o   m   p   i   l   e   r   S   t   a   t   e   N   o
0006060    d   e   ]       R   E   T   U   R   N   S   [   t   e   m   p
0006100    0   :       E   n   v   i   r   o   n   m   e   n   t   N   o
0006120    d   e   ]       =  \r   B   E   G   I   N  \r   t   r   e   e
0006140    :  \t   M   o   d   u   l   e   P   N   o   d   e   _       N
0006160    A   R   R   O   W   [   r   e   f   ]   ;  \r   B   E   G   I
0006200    N  \r   E   N   A   B   L   E       T   h   r   e   e   C   4
0006220    S   u   p   p   o   r   t   .   G   e   t   S   o   u   r   c
0006240    e   I   n   f   o       =   >       R   E   S   U   M   E   [
0006260    t   r   e   e   .   p   o   s   i   t   i   o   n   ,       t
0006300    r   e   e   .   l   e   n   g   t   h   ]   ;  \r   t   r   e
0006320    e   D   a   t   a   :  \t   M   o   d   u   l   e   P   d   e
0006340    f   P   r   o   d   D   a   t   a       _       N   A   R   R
0006360    O   W   [   t   r   e   e   .   d   a   t   a   ]   ;  \r   B
0006400    E   G   I   N  \r   e   n   v   2   :  \t   E   n   v   i   r
0006420    o   n   m   e   n   t   N   o   d   e   ;  \r   c   o   n   t
0006440    e   x   t   T   r   e   e   :  \t   C   o   n   t   e   x   t
0006460    T   r   e   e   N   o   d   e   ;  \r   c   h   i   l   d   C
0006500    o   n   t   e   x   t   T   r   e   e   :  \t   C   o   n   t
0006520    e   x   t   T   r   e   e   N   o   d   e   ;  \r   c   o   n
0006540    t   e   x   t   R   i   b   :  \t   C   o   n   t   e   x   t
0006560    R   i   b   N   o   d   e   ;  \r   l   c   4   :  \t   L   o
0006600    c   a   l   C   o   n   t   e   x   t   N   o   d   e   ;  \r
0006620    m   o   d   u   l   e   T   G   N   :  \t   T   y   p   e   G
0006640    r   a   p   h   N   o   d   e   N   o   d   e   ;  \r   f   f
0006660    l   :  \t   F   r   o   z   e   n   F   i   e   l   d   L   i
0006700    s   t   N   o   d   e   ;  \r   f   l   2   :  \t   F   i   e
0006720    l   d   L   i   s   t   N   o   d   e   ;  \r   l   c   3   :
0006740   \t   L   o   c   a   l   C   o   n   t   e   x   t   N   o   d
0006760    e   ;  \r   a   c   c   e   s   s   :  \t   A   c   c   e   s
0007000    s   V   a   l   N   o   d   e   ;  \r   l   c   2   :  \t   L
0007020    o   c   a   l   C   o   n   t   e   x   t   N   o   d   e   ;
0007040   \r   i   n   t   e   r   f   a   c   e   T   G   N   :  \t   T
0007060    y   p   e   G   r   a   p   h   N   o   d   e   N   o   d   e
0007100    ;  \r   c   e   d   a   r   :  \t   B   O   O   L   E   A   N
0007120    ;  \r   f   l   1   :  \t   F   i   e   l   d   L   i   s   t
0007140    N   o   d   e   ;  \r   l   c   1   :  \t   L   o   c   a   l
0007160    C   o   n   t   e   x   t   N   o   d   e   ;  \r   e   n   v
0007200    1   :  \t   E   n   v   i   r   o   n   m   e   n   t   N   o
0007220    d   e   ;  \r   f   l   :  \t   F   i   e   l   d   L   i   s
0007240    t   N   o   d   e   ;  \r   l   c   :  \t   L   o   c   a   l
0007260    C   o   n   t   e   x   t   N   o   d   e   ;  \r   l   c    
0007300    _       C   r   e   a   t   e   E   m   p   t   y   C   o   n
0007320    t   e   x   t   [   G   e   t   R   o   o   t   C   o   n   t
0007340    e   x   t   R   i   b   [   c   s   ]   ,       T   r   u   e
0007360    [   ]   ]   ;  \r   f   l       _       C   r   e   a   t   e
0007400    E   m   p   t   y   F   i   e   l   d   L   i   s   t   [   ]
0007420    ;  \r   [   f   l   1   ,       l   c   1   ,       e   n   v
0007440    1   ]       _       t   r   e   e   D   a   t   a   .   D   i
0007460    r   e   c   t   o   r   y   .   p   r   o   c   s   .   P   r
0007500    o   c   e   s   s   D   i   r   e   c   t   o   r   y   C   l
0007520    a   u   s   e   [   t   r   e   e   D   a   t   a   .   D   i
0007540    r   e   c   t   o   r   y   ,       f   l   ,       l   c   ,
0007560        e   n   v   ,       c   s   ]   ;  \r   c   e   d   a   r
0007600        _       t   r   e   e   D   a   t   a   .   C   e   d   a
0007620    r   .   p   r   o   c   s   .   I   s   K   e   y   w   o   r
0007640    d   P   r   e   s   e   n   t   [   t   r   e   e   D   a   t
0007660    a   .   C   e   d   a   r   ]   ;  \r   [   l   c   2   ,    
0007700    i   n   t   e   r   f   a   c   e   T   G   N   ]       _    
0007720    t   r   e   e   D   a   t   a   .   D   e   f   H   e   a   d
0007740    .   p   r   o   c   s   .   B   u   i   l   d   I   n   t   e
0007760    r   f   a   c   e   T   G   N   [   t   r   e   e   D   a   t
0010000    a   .   D   e   f   H   e   a   d   ,       l   c   1   ,    
0010020    c   e   d   a   r   ,       c   s   ]   ;  \r   a   c   c   e
0010040    s   s       _       t   r   e   e   D   a   t   a   .   D   e
0010060    f   H   e   a   d   .   p   r   o   c   s   .   G   e   t   A
0010100    c   c   e   s   s   V   a   l   [   t   r   e   e   D   a   t
0010120    a   .   D   e   f   H   e   a   d   ,       A   c   c   e   s
0010140    s   V   a   l   C   o   n   s   t   [   "   p   u   b   l   i
0010160    c   "   ]   ]   ;  \r   [   f   l   2   ,       l   c   3   ]
0010200        _       t   r   e   e   D   a   t   a   .   I   d   e   n
0010220    t   L   i   s   t   .   p   r   o   c   s   .   A   d   d   T
0010240    y   p   e   D   e   c   l   a   r   a   t   i   o   n   T   o
0010260    F   i   e   l   d   L   i   s   t   [   t   r   e   e   D   a
0010300    t   a   .   I   d   e   n   t   L   i   s   t   ,       f   l
0010320    1   ,       l   c   2   ,       c   s   ,       a   c   c   e
0010340    s   s   ,       a   c   c   e   s   s   ,       i   n   t   e
0010360    r   f   a   c   e   T   G   N   ,       B   o   g   u   s   T
0010400    y   p   e   E   x   p   P   T   r   e   e   [   ]   ,       N
0010420    u   l   l   D   e   f   a   u   l   t   V   a   l   [   ]   ]
0010440    ;  \r   f   f   l       _       F   r   e   e   z   e   F   i
0010460    e   l   d   L   i   s   t   [   f   l   2   ]   ;  \r   [   l
0010500    c   4   ,       m   o   d   u   l   e   T   G   N   ]       _
0010520        C   r   e   a   t   e   M   o   d   u   l   e   T   G   N
0010540    [   l   c   3   ,       f   f   l   ]   ;  \r   c   o   n   t
0010560    e   x   t   R   i   b       _       F   r   e   e   z   e   L
0010600    o   c   a   l   C   o   n   t   e   x   t   [   l   c   4   ,
0010620        m   o   d   u   l   e   T   G   N   ]   ;  \r   c   h   i
0010640    l   d   C   o   n   t   e   x   t   T   r   e   e       _    
0010660    t   r   e   e   D   a   t   a   .   D   e   f   B   o   d   y
0010700    .   p   r   o   c   s   .   M   a   k   e   C   o   n   t   e
0010720    x   t   T   r   e   e   [   t   r   e   e   D   a   t   a   .
0010740    D   e   f   B   o   d   y   ,       c   o   n   t   e   x   t
0010760    R   i   b   ,       T   r   u   e   [   ]   ,       c   s   ]
0011000    ;  \r   c   o   n   t   e   x   t   T   r   e   e       _    
0011020    A   d   d   S   u   b   C   o   n   t   e   x   t   T   r   e
0011040    e   [   E   m   p   t   y   C   o   n   t   e   x   t   T   r
0011060    e   e   [   c   o   n   t   e   x   t   R   i   b   ]   ,    
0011100    c   h   i   l   d   C   o   n   t   e   x   t   T   r   e   e
0011120    ]   ;  \r   e   n   v   2       _       A   d   d   C   o   m
0011140    p   i   l   e   d   D   e   f   i   n   i   t   i   o   n   s
0011160    F   i   l   e   T   o   E   n   v   i   r   o   n   m   e   n
0011200    t   [   e   n   v   1   ,       f   i   l   e   N   a   m   e
0011220    ,       c   o   n   t   e   x   t   T   r   e   e   ]   ;  \r
0011240    t   e   m   p   0       _       e   n   v   2   ;  \r   E   N
0011260    D   ;  \r   E   N   D  \r   E   N   D   ;  \r  \r   D   i   r
0011300    e   c   t   o   r   y   e   m   p   t   y   P   r   o   d   P
0011320    r   o   c   e   s   s   D   i   r   e   c   t   o   r   y   C
0011340    l   a   u   s   e   :  \t   P   U   B   L   I   C       P   R
0011360    O   C   [   r   e   f   :       R   E   F       A   N   Y   ,
0011400        f   l   :       F   i   e   l   d   L   i   s   t   N   o
0011420    d   e   ,       l   o   c   a   l   C   o   n   t   e   x   t
0011440    :       L   o   c   a   l   C   o   n   t   e   x   t   N   o
0011460    d   e   ,       e   n   v   :       E   n   v   i   r   o   n
0011500    m   e   n   t   N   o   d   e   ,       c   s   :       C   o
0011520    m   p   i   l   e   r   S   t   a   t   e   N   o   d   e   ]
0011540        R   E   T   U   R   N   S   [   t   e   m   p   0   :    
0011560    F   i   e   l   d   L   i   s   t   N   o   d   e   ,       t
0011600    e   m   p   1   :       L   o   c   a   l   C   o   n   t   e
0011620    x   t   N   o   d   e   ,       t   e   m   p   2   :       E
0011640    n   v   i   r   o   n   m   e   n   t   N   o   d   e   ]    
0011660    =  \r   B   E   G   I   N  \r   t   r   e   e   :  \t   D   i
0011700    r   e   c   t   o   r   y   N   o   d   e   _       N   A   R
0011720    R   O   W   [   r   e   f   ]   ;  \r   B   E   G   I   N  \r
0011740    E   N   A   B   L   E       T   h   r   e   e   C   4   S   u
0011760    p   p   o   r   t   .   G   e   t   S   o   u   r   c   e   I
0012000    n   f   o       =   >       R   E   S   U   M   E   [   t   r
0012020    e   e   .   p   o   s   i   t   i   o   n   ,       t   r   e
0012040    e   .   l   e   n   g   t   h   ]   ;  \r   t   e   m   p   2
0012060        _       F   a   k   e   D   a   m   a   g   e   E   n   v
0012100    i   r   o   n   m   e   n   t   [   e   n   v   ]   ;  \r   t
0012120    e   m   p   1       _       F   a   k   e   D   a   m   a   g
0012140    e   C   o   n   t   e   x   t   [   l   o   c   a   l   C   o
0012160    n   t   e   x   t   ]   ;  \r   t   e   m   p   0       _    
0012200    F   a   k   e   D   a   m   a   g   e   F   i   e   l   d   L
0012220    i   s   t   [   f   l   ]   ;  \r   E   N   D  \r   E   N   D
0012240    ;  \r  \r   D   i   r   e   c   t   o   r   y   m   o   r   e
0012260    P   r   o   d   P   r   o   c   e   s   s   D   i   r   e   c
0012300    t   o   r   y   C   l   a   u   s   e   :  \t   P   U   B   L
0012320    I   C       P   R   O   C   [   r   e   f   :       R   E   F
0012340        A   N   Y   ,       f   l   :       F   i   e   l   d   L
0012360    i   s   t   N   o   d   e   ,       l   o   c   a   l   C   o
0012400    n   t   e   x   t   :       L   o   c   a   l   C   o   n   t
0012420    e   x   t   N   o   d   e   ,       e   n   v   :       E   n
0012440    v   i   r   o   n   m   e   n   t   N   o   d   e   ,       c
0012460    s   :       C   o   m   p   i   l   e   r   S   t   a   t   e
0012500    N   o   d   e   ]       R   E   T   U   R   N   S   [   t   e
0012520    m   p   0   :       F   i   e   l   d   L   i   s   t   N   o
0012540    d   e   ,       t   e   m   p   1   :       L   o   c   a   l
0012560    C   o   n   t   e   x   t   N   o   d   e   ,       t   e   m
0012600    p   2   :       E   n   v   i   r   o   n   m   e   n   t   N
0012620    o   d   e   ]       =  \r   B   E   G   I   N  \r   t   r   e
0012640    e   :  \t   D   i   r   e   c   t   o   r   y   N   o   d   e
0012660    _       N   A   R   R   O   W   [   r   e   f   ]   ;  \r   B
0012700    E   G   I   N  \r   E   N   A   B   L   E       T   h   r   e
0012720    e   C   4   S   u   p   p   o   r   t   .   G   e   t   S   o
0012740    u   r   c   e   I   n   f   o       =   >       R   E   S   U
0012760    M   E   [   t   r   e   e   .   p   o   s   i   t   i   o   n
0013000    ,       t   r   e   e   .   l   e   n   g   t   h   ]   ;  \r
0013020    t   r   e   e   D   a   t   a   :  \t   D   i   r   e   c   t
0013040    o   r   y   m   o   r   e   P   r   o   d   D   a   t   a    
0013060    _       N   A   R   R   O   W   [   t   r   e   e   .   d   a
0013100    t   a   ]   ;  \r   B   E   G   I   N  \r   f   l   2   :  \t
0013120    F   i   e   l   d   L   i   s   t   N   o   d   e   ;  \r   f
0013140    i   e   l   d   :  \t   F   i   e   l   d   N   o   d   e   ;
0013160   \r   l   c   2   :  \t   L   o   c   a   l   C   o   n   t   e
0013200    x   t   N   o   d   e   ;  \r   e   n   v   2   :  \t   E   n
0013220    v   i   r   o   n   m   e   n   t   N   o   d   e   ;  \r   f
0013240    l   1   :  \t   F   i   e   l   d   L   i   s   t   N   o   d
0013260    e   ;  \r   l   c   1   :  \t   L   o   c   a   l   C   o   n
0013300    t   e   x   t   N   o   d   e   ;  \r   e   n   v   1   :  \t
0013320    E   n   v   i   r   o   n   m   e   n   t   N   o   d   e   ;
0013340   \r   [   f   l   1   ,       l   c   1   ,       e   n   v   1
0013360    ]       _       t   r   e   e   D   a   t   a   .   D   i   r
0013400    e   c   t   o   r   y   .   p   r   o   c   s   .   P   r   o
0013420    c   e   s   s   D   i   r   e   c   t   o   r   y   C   l   a
0013440    u   s   e   [   t   r   e   e   D   a   t   a   .   D   i   r
0013460    e   c   t   o   r   y   ,       f   l   ,       l   o   c   a
0013500    l   C   o   n   t   e   x   t   ,       e   n   v   ,       c
0013520    s   ]   ;  \r   [   f   i   e   l   d   ,       l   c   2   ,
0013540        e   n   v   2   ]       _       t   r   e   e   D   a   t
0013560    a   .   I   n   c   l   u   d   e   I   t   e   m   .   p   r
0013600    o   c   s   .   P   r   o   c   e   s   s   D   i   r   e   c
0013620    t   o   r   y   I   t   e   m   [   t   r   e   e   D   a   t
0013640    a   .   I   n   c   l   u   d   e   I   t   e   m   ,       l
0013660    c   1   ,       e   n   v   1   ,       c   s   ]   ;  \r   f
0013700    l   2       _       A   p   p   e   n   d   F   i   e   l   d
0013720    T   o   F   i   e   l   d   L   i   s   t   [   f   l   1   ,
0013740        f   i   e   l   d   ]   ;  \r   t   e   m   p   2       _
0013760        e   n   v   2   ;  \r   t   e   m   p   1       _       l
0014000    c   2   ;  \r   t   e   m   p   0       _       f   l   2   ;
0014020   \r   E   N   D   ;  \r   E   N   D  \r   E   N   D   ;  \r  \r
0014040    I   n   c   l   u   d   e   I   t   e   m   P   r   o   d   P
0014060    r   o   c   e   s   s   D   i   r   e   c   t   o   r   y   I
0014100    t   e   m   :  \t   P   U   B   L   I   C       P   R   O   C
0014120    [   r   e   f   :       R   E   F       A   N   Y   ,       l
0014140    c   :       L   o   c   a   l   C   o   n   t   e   x   t   N
0014160    o   d   e   ,       e   n   v   :       E   n   v   i   r   o
0014200    n   m   e   n   t   N   o   d   e   ,       c   s   :       C
0014220    o   m   p   i   l   e   r   S   t   a   t   e   N   o   d   e
0014240    ]       R   E   T   U   R   N   S   [   t   e   m   p   0   :
0014260        F   i   e   l   d   N   o   d   e   ,       t   e   m   p
0014300    1   :       L   o   c   a   l   C   o   n   t   e   x   t   N
0014320    o   d   e   ,       t   e   m   p   2   :       E   n   v   i
0014340    r   o   n   m   e   n   t   N   o   d   e   ]       =  \r   B
0014360    E   G   I   N  \r   t   r   e   e   :  \t   I   n   c   l   u
0014400    d   e   I   t   e   m   N   o   d   e   _       N   A   R   R
0014420    O   W   [   r   e   f   ]   ;  \r   B   E   G   I   N  \r   E
0014440    N   A   B   L   E       T   h   r   e   e   C   4   S   u   p
0014460    p   o   r   t   .   G   e   t   S   o   u   r   c   e   I   n
0014500    f   o       =   >       R   E   S   U   M   E   [   t   r   e
0014520    e   .   p   o   s   i   t   i   o   n   ,       t   r   e   e
0014540    .   l   e   n   g   t   h   ]   ;  \r   t   r   e   e   D   a
0014560    t   a   :  \t   I   n   c   l   u   d   e   I   t   e   m   P
0014600    r   o   d   D   a   t   a       _       N   A   R   R   O   W
0014620    [   t   r   e   e   .   d   a   t   a   ]   ;  \r   B   E   G
0014640    I   N  \r   f   i   e   l   d   :  \t   F   i   e   l   d   N
0014660    o   d   e   ;  \r   p   a   r   s   e   T   r   e   e   :  \t
0014700    T   y   p   e   E   x   p   P   T   r   e   e   N   o   d   e
0014720    ;  \r   t   g   n   1   :  \t   T   y   p   e   G   r   a   p
0014740    h   N   o   d   e   N   o   d   e   ;  \r   l   c   1   :  \t
0014760    L   o   c   a   l   C   o   n   t   e   x   t   N   o   d   e
0015000    ;  \r   t   g   n   :  \t   T   y   p   e   G   r   a   p   h
0015020    N   o   d   e   N   o   d   e   ;  \r   p   o   s   i   t   i
0015040    o   n   :  \t   P   o   s   i   t   i   o   n   V   a   l   N
0015060    o   d   e   ;  \r   a   c   c   e   s   s   :  \t   A   c   c
0015100    e   s   s   V   a   l   N   o   d   e   ;  \r   i   n   t   e
0015120    r   f   a   c   e   :  \t   T   y   p   e   G   r   a   p   h
0015140    N   o   d   e   N   o   d   e   ;  \r   d   e   f   a   u   l
0015160    t   :  \t   D   e   f   a   u   l   t   E   x   p   N   o   d
0015200    e   ;  \r   e   n   v   1   :  \t   E   n   v   i   r   o   n
0015220    m   e   n   t   N   o   d   e   ;  \r   f   i   l   e   N   a
0015240    m   e   :  \t   R   O   P   E   ;  \r   f   i   l   e   N   a
0015260    m   e       _       t   r   e   e   D   a   t   a   .   I   d
0015300    O   r   S   t   r   i   n   g   .   p   r   o   c   s   .   R
0015320    o   p   e   F   r   o   m   I   d   O   r   S   t   r   i   n
0015340    g   [   t   r   e   e   D   a   t   a   .   I   d   O   r   S
0015360    t   r   i   n   g   ]   ;  \r   I   F       I   s   C   o   m
0015400    p   i   l   e   d   F   i   l   e   I   n   E   n   v   [   e
0015420    n   v   ,       f   i   l   e   N   a   m   e   ]       T   H
0015440    E   N       {   e   n   v   1       _       F   a   k   e   D
0015460    a   m   a   g   e   E   n   v   i   r   o   n   m   e   n   t
0015500    [   e   n   v   ]   ;  \r   }       E   L   S   E       {   B
0015520    E   G   I   N  \r   d   e   f   F   i   l   e   :  \t   M   o
0015540    d   u   l   e   P   N   o   d   e   ;  \r   d   e   f   F   i
0015560    l   e       _       M   o   d   u   l   e   P   V   a   l   [
0015600    R   e   a   d   D   e   f   F   i   l   e   [   f   i   l   e
0015620    N   a   m   e   ]   ]   ;  \r   e   n   v   1       _       d
0015640    e   f   F   i   l   e   .   p   r   o   c   s   .   M   a   k
0015660    e   E   n   v   i   r   o   n   m   e   n   t   [   d   e   f
0015700    F   i   l   e   ,       f   i   l   e   N   a   m   e   ,    
0015720    e   n   v   ,       c   s   ]   ;  \r   E   N   D   ;  \r   }
0015740    ;  \r   d   e   f   a   u   l   t       _       N   u   l   l
0015760    D   e   f   a   u   l   t   V   a   l   [   ]   ;  \r   i   n
0016000    t   e   r   f   a   c   e       _       L   o   o   k   u   p
0016020    I   n   t   e   r   f   a   c   e   I   n   E   n   v   [   e
0016040    n   v   1   ,       f   i   l   e   N   a   m   e   ,       t
0016060    r   e   e   D   a   t   a   .   I   d   m   o   d   u   l   e
0016100    N   a   m   e   ]   ;  \r   a   c   c   e   s   s       _    
0016120    A   c   c   e   s   s   V   a   l   C   o   n   s   t   [   "
0016140    p   u   b   l   i   c   "   ]   ;  \r   p   o   s   i   t   i
0016160    o   n       _       N   u   l   l   P   o   s   i   t   i   o
0016200    n   [   ]   ;  \r   [   l   c   1   ,       t   g   n   ]    
0016220    _       C   r   e   a   t   e   N   a   m   e   d   T   G   N
0016240    [   l   c   ,       t   r   e   e   D   a   t   a   .   I   d
0016260    l   o   c   a   l   ,       p   o   s   i   t   i   o   n   ,
0016300        a   c   c   e   s   s   ,       i   n   t   e   r   f   a
0016320    c   e   ,       d   e   f   a   u   l   t   ]   ;  \r   t   g
0016340    n   1       _       t   r   e   e   D   a   t   a   .   U   s
0016360    i   n   g   .   p   r   o   c   s   .   R   e   s   t   r   i
0016400    c   t   N   a   m   e   d   T   G   N   [   t   r   e   e   D
0016420    a   t   a   .   U   s   i   n   g   ,       t   g   n   ]   ;
0016440   \r   p   a   r   s   e   T   r   e   e       _       B   o   g
0016460    u   s   T   y   p   e   E   x   p   P   T   r   e   e   [   ]
0016500    ;  \r   f   i   e   l   d       _       C   r   e   a   t   e
0016520    N   a   m   e   d   T   y   p   e   F   i   e   l   d   [   t
0016540    r   e   e   D   a   t   a   .   I   d   l   o   c   a   l   ,
0016560        p   o   s   i   t   i   o   n   ,       a   c   c   e   s
0016600    s   ,       t   g   n   1   ,       p   a   r   s   e   T   r
0016620    e   e   ]   ;  \r   t   e   m   p   2       _       e   n   v
0016640    1   ;  \r   t   e   m   p   1       _       l   c   1   ;  \r
0016660    t   e   m   p   0       _       f   i   e   l   d   ;  \r   E
0016700    N   D   ;  \r   E   N   D  \r   E   N   D   ;  \r  \r   U   s
0016720    i   n   g   r   e   s   t   r   i   c   t   e   d   P   r   o
0016740    d   R   e   s   t   r   i   c   t   N   a   m   e   d   T   G
0016760    N   :  \t   P   U   B   L   I   C       P   R   O   C   [   r
0017000    e   f   :       R   E   F       A   N   Y   ,       n   a   m
0017020    e   d   T   G   N   :       T   y   p   e   G   r   a   p   h
0017040    N   o   d   e   N   o   d   e   ]       R   E   T   U   R   N
0017060    S   [   t   e   m   p   0   :       T   y   p   e   G   r   a
0017100    p   h   N   o   d   e   N   o   d   e   ]       =  \r   B   E
0017120    G   I   N  \r   t   r   e   e   :  \t   U   s   i   n   g   N
0017140    o   d   e   _       N   A   R   R   O   W   [   r   e   f   ]
0017160    ;  \r   B   E   G   I   N  \r   E   N   A   B   L   E       T
0017200    h   r   e   e   C   4   S   u   p   p   o   r   t   .   G   e
0017220    t   S   o   u   r   c   e   I   n   f   o       =   >       R
0017240    E   S   U   M   E   [   t   r   e   e   .   p   o   s   i   t
0017260    i   o   n   ,       t   r   e   e   .   l   e   n   g   t   h
0017300    ]   ;  \r   t   r   e   e   D   a   t   a   :  \t   U   s   i
0017320    n   g   r   e   s   t   r   i   c   t   e   d   P   r   o   d
0017340    D   a   t   a       _       N   A   R   R   O   W   [   t   r
0017360    e   e   .   d   a   t   a   ]   ;  \r   t   e   m   p   0    
0017400    _       t   r   e   e   D   a   t   a   .   I   d   L   i   s
0017420    t   .   p   r   o   c   s   .   A   d   d   I   d   s   T   o
0017440    R   e   s   t   r   i   c   t   i   o   n   L   i   s   t   [
0017460    t   r   e   e   D   a   t   a   .   I   d   L   i   s   t   ,
0017500        n   a   m   e   d   T   G   N   ]   ;  \r   E   N   D  \r
0017520    E   N   D   ;  \r  \r   U   s   i   n   g   n   o   t   h   i
0017540    n   g   P   r   o   d   R   e   s   t   r   i   c   t   N   a
0017560    m   e   d   T   G   N   :  \t   P   U   B   L   I   C       P
0017600    R   O   C   [   r   e   f   :       R   E   F       A   N   Y
0017620    ,       n   a   m   e   d   T   G   N   :       T   y   p   e
0017640    G   r   a   p   h   N   o   d   e   N   o   d   e   ]       R
0017660    E   T   U   R   N   S   [   t   e   m   p   0   :       T   y
0017700    p   e   G   r   a   p   h   N   o   d   e   N   o   d   e   ]
0017720        =  \r   B   E   G   I   N  \r   t   r   e   e   :  \t   U
0017740    s   i   n   g   N   o   d   e   _       N   A   R   R   O   W
0017760    [   r   e   f   ]   ;  \r   B   E   G   I   N  \r   E   N   A
0020000    B   L   E       T   h   r   e   e   C   4   S   u   p   p   o
0020020    r   t   .   G   e   t   S   o   u   r   c   e   I   n   f   o
0020040        =   >       R   E   S   U   M   E   [   t   r   e   e   .
0020060    p   o   s   i   t   i   o   n   ,       t   r   e   e   .   l
0020100    e   n   g   t   h   ]   ;  \r   t   e   m   p   0       _    
0020120    F   a   k   e   D   a   m   a   g   e   T   y   p   e   G   r
0020140    a   p   h   N   o   d   e   [   n   a   m   e   d   T   G   N
0020160    ]   ;  \r   E   N   D  \r   E   N   D   ;  \r  \r   U   s   i
0020200    n   g   u   n   r   e   s   t   r   i   c   t   e   d   P   r
0020220    o   d   R   e   s   t   r   i   c   t   N   a   m   e   d   T
0020240    G   N   :  \t   P   U   B   L   I   C       P   R   O   C   [
0020260    r   e   f   :       R   E   F       A   N   Y   ,       n   a
0020300    m   e   d   T   G   N   :       T   y   p   e   G   r   a   p
0020320    h   N   o   d   e   N   o   d   e   ]       R   E   T   U   R
0020340    N   S   [   t   e   m   p   0   :       T   y   p   e   G   r
0020360    a   p   h   N   o   d   e   N   o   d   e   ]       =  \r   B
0020400    E   G   I   N  \r   t   r   e   e   :  \t   U   s   i   n   g
0020420    N   o   d   e   _       N   A   R   R   O   W   [   r   e   f
0020440    ]   ;  \r   B   E   G   I   N  \r   E   N   A   B   L   E    
0020460    T   h   r   e   e   C   4   S   u   p   p   o   r   t   .   G
0020500    e   t   S   o   u   r   c   e   I   n   f   o       =   >    
0020520    R   E   S   U   M   E   [   t   r   e   e   .   p   o   s   i
0020540    t   i   o   n   ,       t   r   e   e   .   l   e   n   g   t
0020560    h   ]   ;  \r   t   e   m   p   0       _       A   d   d   A
0020600    l   l   I   d   s   T   o   R   e   s   t   r   i   c   t   i
0020620    o   n   L   i   s   t   [   n   a   m   e   d   T   G   N   ]
0020640    ;  \r   E   N   D  \r   E   N   D   ;  \r  \r   D   e   f   H
0020660    e   a   d   P   r   o   d   B   u   i   l   d   I   n   t   e
0020700    r   f   a   c   e   T   G   N   :  \t   P   U   B   L   I   C
0020720        P   R   O   C   [   r   e   f   :       R   E   F       A
0020740    N   Y   ,       l   c   :       L   o   c   a   l   C   o   n
0020760    t   e   x   t   N   o   d   e   ,       c   e   d   a   r   :
0021000        B   O   O   L   E   A   N   ,       c   s   :       C   o
0021020    m   p   i   l   e   r   S   t   a   t   e   N   o   d   e   ]
0021040        R   E   T   U   R   N   S   [   t   e   m   p   0   :    
0021060    L   o   c   a   l   C   o   n   t   e   x   t   N   o   d   e
0021100    ,       t   e   m   p   1   :       T   y   p   e   G   r   a
0021120    p   h   N   o   d   e   N   o   d   e   ]       =  \r   B   E
0021140    G   I   N  \r   t   r   e   e   :  \t   D   e   f   H   e   a
0021160    d   N   o   d   e   _       N   A   R   R   O   W   [   r   e
0021200    f   ]   ;  \r   B   E   G   I   N  \r   E   N   A   B   L   E
0021220        T   h   r   e   e   C   4   S   u   p   p   o   r   t   .
0021240    G   e   t   S   o   u   r   c   e   I   n   f   o       =   >
0021260        R   E   S   U   M   E   [   t   r   e   e   .   p   o   s
0021300    i   t   i   o   n   ,       t   r   e   e   .   l   e   n   g
0021320    t   h   ]   ;  \r   t   r   e   e   D   a   t   a   :  \t   D
0021340    e   f   H   e   a   d   P   r   o   d   D   a   t   a       _
0021360        N   A   R   R   O   W   [   t   r   e   e   .   d   a   t
0021400    a   ]   ;  \r   B   E   G   I   N  \r   l   o   c   k   s   :
0021420   \t   R   O   P   E   ;  \r   i   m   p   o   r   t   s   :  \t
0021440    R   O   P   E   ;  \r   s   h   a   r   e   s   :  \t   R   O
0021460    P   E   ;  \r   s   h   a   r   e   s       _       "   I    
0021500    s   h   o   u   l   d       b   e       a       s   h   a   r
0021520    e   s       l   i   s   t   "   ;  \r   i   m   p   o   r   t
0021540    s       _       "   I       s   h   o   u   l   d       b   e
0021560        a   n       i   m   p   o   r   t   s       l   i   s   t
0021600    "   ;  \r   l   o   c   k   s       _       "   I       s   h
0021620    o   u   l   d       b   e       a       l   o   c   k   s    
0021640    f   o   o   b   a   r   "   ;  \r   [   t   e   m   p   0   ,
0021660        t   e   m   p   1   ]       _       C   r   e   a   t   e
0021700    I   n   t   e   r   f   a   c   e   T   G   N   [   l   c   ,
0021720        c   e   d   a   r   ,       l   o   c   k   s   ,       i
0021740    m   p   o   r   t   s   ,       s   h   a   r   e   s   ]   ;
0021760   \r   E   N   D   ;  \r   E   N   D  \r   E   N   D   ;  \r  \r
0022000    P   r   o   g   H   e   a   d   P   r   o   d   B   u   i   l
0022020    d   I   m   p   l   e   m   e   n   t   a   t   i   o   n   T
0022040    G   N   :  \t   P   U   B   L   I   C       P   R   O   C   [
0022060    r   e   f   :       R   E   F       A   N   Y   ,       l   c
0022100    :       L   o   c   a   l   C   o   n   t   e   x   t   N   o
0022120    d   e   ,       c   e   d   a   r   :       B   O   O   L   E
0022140    A   N   ,       c   s   :       C   o   m   p   i   l   e   r
0022160    S   t   a   t   e   N   o   d   e   ]       R   E   T   U   R
0022200    N   S   [   t   e   m   p   0   :       L   o   c   a   l   C
0022220    o   n   t   e   x   t   N   o   d   e   ,       t   e   m   p
0022240    1   :       T   y   p   e   G   r   a   p   h   N   o   d   e
0022260    N   o   d   e   ]       =  \r   B   E   G   I   N  \r   t   r
0022300    e   e   :  \t   P   r   o   g   H   e   a   d   N   o   d   e
0022320    _       N   A   R   R   O   W   [   r   e   f   ]   ;  \r   B
0022340    E   G   I   N  \r   E   N   A   B   L   E       T   h   r   e
0022360    e   C   4   S   u   p   p   o   r   t   .   G   e   t   S   o
0022400    u   r   c   e   I   n   f   o       =   >       R   E   S   U
0022420    M   E   [   t   r   e   e   .   p   o   s   i   t   i   o   n
0022440    ,       t   r   e   e   .   l   e   n   g   t   h   ]   ;  \r
0022460    t   r   e   e   D   a   t   a   :  \t   P   r   o   g   H   e
0022500    a   d   P   r   o   d   D   a   t   a       _       N   A   R
0022520    R   O   W   [   t   r   e   e   .   d   a   t   a   ]   ;  \r
0022540    B   E   G   I   N  \r   l   c   2   :  \t   L   o   c   a   l
0022560    C   o   n   t   e   x   t   N   o   d   e   ;  \r   t   r   a
0022600    n   s   f   e   r   T   y   p   e   :  \t   T   y   p   e   G
0022620    r   a   p   h   N   o   d   e   N   o   d   e   ;  \r   s   a
0022640    f   e   :  \t   B   O   O   L   E   A   N   ;  \r   l   c   1
0022660    :  \t   L   o   c   a   l   C   o   n   t   e   x   t   N   o
0022700    d   e   ;  \r   i   n   p   u   t   :  \t   F   r   o   z   e
0022720    n   F   i   e   l   d   L   i   s   t   N   o   d   e   ;  \r
0022740    o   u   t   p   u   t   :  \t   F   r   o   z   e   n   F   i
0022760    e   l   d   L   i   s   t   N   o   d   e   ;  \r   p   a   i
0023000    n   t   R   e   c   o   r   d   s   :  \t   B   O   O   L   E
0023020    A   N   ;  \r   l   o   c   k   s   :  \t   R   O   P   E   ;
0023040   \r   i   m   p   o   r   t   s   :  \t   R   O   P   E   ;  \r
0023060    e   x   p   o   r   t   s   :  \t   R   O   P   E   ;  \r   s
0023100    h   a   r   e   s   :  \t   R   O   P   E   ;  \r   s   h   a
0023120    r   e   s       _       "   I       s   h   o   u   l   d    
0023140    b   e       a       s   h   a   r   e   s       l   i   s   t
0023160    "   ;  \r   e   x   p   o   r   t   s       _       "   I    
0023200    s   h   o   u   l   d       b   e       a   n       e   x   p
0023220    o   r   t   s       l   i   s   t   "   ;  \r   i   m   p   o
0023240    r   t   s       _       "   I       s   h   o   u   l   d    
0023260    b   e       a   n       i   m   p   o   r   t   s       l   i
0023300    s   t   "   ;  \r   l   o   c   k   s       _       "   I    
0023320    s   h   o   u   l   d       b   e       a       l   o   c   k
0023340    s       f   o   o   b   a   r   "   ;  \r   p   a   i   n   t
0023360    R   e   c   o   r   d   s       _       T   r   u   e   [   ]
0023400    ;  \r   [   l   c   1   ,       i   n   p   u   t   ,       o
0023420    u   t   p   u   t   ]       _       t   r   e   e   D   a   t
0023440    a   .   A   r   g   u   m   e   n   t   s   .   p   r   o   c
0023460    s   .   M   a   k   e   A   r   g   u   m   e   n   t   L   i
0023500    s   t   s   [   t   r   e   e   D   a   t   a   .   A   r   g
0023520    u   m   e   n   t   s   ,       l   c   ,       p   a   i   n
0023540    t   R   e   c   o   r   d   s   ,       c   s   ]   ;  \r   s
0023560    a   f   e       _       t   r   e   e   D   a   t   a   .   S
0023600    a   f   e   .   p   r   o   c   s   .   I   s   K   e   y   w
0023620    o   r   d   P   r   e   s   e   n   t   [   t   r   e   e   D
0023640    a   t   a   .   S   a   f   e   ]   ;  \r   [   l   c   2   ,
0023660        t   r   a   n   s   f   e   r   T   y   p   e   ]       _
0023700        C   r   e   a   t   e   T   r   a   n   s   f   e   r   T
0023720    G   N   [   l   c   1   ,       s   a   f   e   ,       "   p
0023740    r   o   g   r   a   m   "   ,       i   n   p   u   t   ,    
0023760    o   u   t   p   u   t   ]   ;  \r   [   t   e   m   p   0   ,
0024000        t   e   m   p   1   ]       _       C   r   e   a   t   e
0024020    I   m   p   l   e   m   e   n   t   a   t   i   o   n   T   G
0024040    N   [   l   c   2   ,       c   e   d   a   r   ,       t   r
0024060    a   n   s   f   e   r   T   y   p   e   ,       l   o   c   k
0024100    s   ,       i   m   p   o   r   t   s   ,       e   x   p   o
0024120    r   t   s   ,       s   h   a   r   e   s   ]   ;  \r   E   N
0024140    D   ;  \r   E   N   D  \r   E   N   D   ;  \r  \r   E   N   D
0024160    .   .  \r                                                    
0024163