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