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