Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Pygments / examplefiles / output / example.moon
Size: Mime:
€]q(cpygments.token
_TokenType
qXCommentqXSingleq†q…qq}q(Xsubtypesqcbuiltins
set
q	]q
…qRqXparentq
hh…q…qq}q(hh	]q(hhXPreprocq†q…qq}q(hh	]q…qRqh
hubhhXMultiq†q…qq}q(hh	]q …q!Rq"h
hubhhXHashbangq#†q$…q%q&}q'(hh	]q(…q)Rq*h
hubhhhX
SingleLineq+†q,…q-q.}q/(hh	]q0…q1Rq2h
hubhhXDocq3†q4…q5q6}q7(hh	]q8…q9Rq:h
hubhhX	Directiveq;†q<…q=q>}q?(hh	]q@…qARqBh
hubhhX	MultilineqC†qD…qEqF}qG(hh	]qH…qIRqJh
hubhhX
SinglelineqK†qL…qMqN}qO(hh	]qP…qQRqRh
hubhhXPreprocFileqS†qT…qUqV}qW(hh	]qX…qYRqZh
hubhhXSpecialq[†q\…q]q^}q_(hh	]q`…qaRqbh
hube…qcRqdh
h)…qeqf}qg(hh	]qh(hXEscapeqi…qj…qkql}qm(hh	]qn…qoRqph
hfubhXOperatorqq…qr…qsqt}qu(hh	]qv(hhqXDBSqw†qx…qyqz}q{(hh	]q|…q}Rq~h
htubhhqXWordq†q€…qq‚}qƒ(hh	]q„…q…Rq†h
htube…q‡Rqˆh
hfhh‚hwhzubhXNameq‰…qŠ…q‹qŒ}q(hh	]qŽ(hh‰XTagq†q…q‘q’}q“(hh	]q”…q•Rq–h
hŒubhh‰XEntityq—†q˜…q™qš}q›(hh	]qœhh‰h—hw‡q…qžqŸ}q (hh	]q¡…q¢Rq£h
hšuba…q¤Rq¥h
hŒhwhŸubhh‰X	Exceptionq¦†q§…q¨q©}qª(hh	]q«…q¬Rq­h
hŒubhh‰X	Decoratorq®†q¯…q°q±}q²(hh	]q³…q´Rqµh
hŒubhh‰XClassq¶†q·…q¸q¹}qº(hh	]q»(hh‰h¶hw‡q¼…q½q¾}q¿(hh	]qqÁRqÂh
h¹ubhh‰h¶XStartqÇqąqŁqÆ}qÇ(hh	]qȅqÉRqÊh
h¹ube…qËRqÌh
hŒhÃhÆhwh¾ubhh‰XVariableq͆q΅qρqÐ}qÑ(hh	]qÒ(hh‰hÍX	AnonymousqӇqԅqՁqÖ}q×(hh	]q؅qÙRqÚh
hÐubhh‰hÍh¶‡qۅq܁qÝ}qÞ(hh	]q߅qàRqáh
hÐubhh‰hÍXMagicqâ‡qã…qäqå}qæ(hh	]qç…qèRqéh
hÐubhh‰hÍXGlobalqê‡që…qìqí}qî(hh	]qï…qðRqñh
hÐubhh‰hÍXInstanceqò‡qó…qôqõ}qö(hh	]q÷…qøRqùh
hÐube…qúRqûh
hŒh¶hÝhêhíhòhõhâhåhÓhÖubhh‰X	Attributeqü†qý…qþqÿ}r(hh	]rhh‰hüh͇r…rr}r(hh	]r…rRrh
hÿuba…r	Rr
h
hŒhÍjubhh‰X	Namespacer†r…r
r}r(hh	]r…rRrh
hŒubhh‰XPropertyr†r…rr}r(hh	]r…rRrh
hŒubhh‰XSymbolr†r…rr}r(hh	]r …r!Rr"h
hŒubhh‰XClassesr#†r$…r%r&}r'(hh	]r(…r)Rr*h
hŒubhh‰XPseudor+†r,…r-r.}r/(hh	]r0…r1Rr2h
hŒubhh‰XLabelr3†r4…r5r6}r7(hh	]r8…r9Rr:h
hŒubhh‰hq†r;…r<r=}r>(hh	]r?…r@RrAh
hŒubhh‰XBuiltinrB†rC…rDrE}rF(hh	]rG(hh‰jBj+‡rH…rIrJ}rK(hh	]rL…rMRrNh
jEubhh‰jBXTyperO‡rP…rQrR}rS(hh	]rT…rURrVh
jEube…rWRrXh
hŒj+jJjOjRubhh‰XFieldrY†rZ…r[r\}r](hh	]r^…r_Rr`h
hŒubhh‰XOtherra†rb…rcrd}re(hh	]rfhh‰jaXMemberrg‡rh…rirj}rk(hh	]rl…rmRrnh
jduba…roRrph
hŒjgjjubhh‰XFunctionrq†rr…rsrt}ru(hh	]rvhh‰jqhâ‡rw…rxry}rz(hh	]r{…r|Rr}h
jtuba…r~Rrh
hŒhâjyubhh‰jO†r€…rr‚}rƒ(hh	]r„…r…Rr†h
hŒubhh‰XConstantr‡†rˆ…r‰rŠ}r‹(hh	]rŒ…rRrŽh
hŒube…rRrh
hfhühÿjBjEh¶h¹j‡jŠh®h±h—hšh¦h©jqjtjjj3j6jjjajdhh’hÍhÐjYj\jjj+j.hqj=j#j&jOj‚ubhXLiteralr‘…r’…r“r”}r•(hh	]r–(hj‘ja†r—…r˜r™}rš(hh	]r›…rœRrh
j”ubhj‘XCharrž†rŸ…r r¡}r¢(hh	]r£…r¤Rr¥h
j”ubhj‘XDater¦†r§…r¨r©}rª(hh	]r«…r¬Rr­h
j”ubhj‘XScalarr®†r¯…r°r±}r²(hh	]r³hj‘j®XPlainr´‡rµ…r¶r·}r¸(hh	]r¹…rºRr»h
j±uba…r¼Rr½h
j”j´j·ubhj‘XStringr¾†r¿…rÀrÁ}rÂ(hh	]rÃ(hj‘j¾XInterpolrćrÅ…rƁrÇ}rÈ(hh	]rÉ…rÊRrËh
jÁubhj‘j¾X	DelimeterṙrÍ…r΁rÏ}rÐ(hh	]rÑ…rÒRrÓh
jÁubhj‘j¾jž‡rÔ…rՁrÖ}r×(hh	]rØ…rÙRrÚh
jÁubhj‘j¾j‡rÛ…r܁rÝ}rÞ(hh	]rß…ràRráh
jÁubhj‘j¾h‡râ…rãrä}rå(hh	]ræ…rçRrèh
jÁubhj‘j¾ja‡ré…rêrë}rì(hh	]rí…rîRrïh
jÁubhj‘j¾XBacktickrð‡rñ…ròró}rô(hh	]rõ…röRr÷h
jÁubhj‘j¾hi‡rø…rùrú}rû(hh	]rü…rýRrþh
jÁubhj‘j¾XRegexrÿ‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾XMomentr‡r…r	r
}r(hh	]r…r
Rrh
jÁubhj‘j¾XBooleanr‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾X	Characterr‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾X	Delimiterr‡r …r!r"}r#(hh	]r$…r%Rr&h
jÁubhj‘j¾h3‡r'…r(r)}r*(hh	]r+…r,Rr-h
jÁubhj‘j¾h‰‡r.…r/r0}r1(hh	]r2…r3Rr4h
jÁubhj‘j¾XAffixr5‡r6…r7r8}r9(hh	]r:…r;Rr<h
jÁubhj‘j¾XHeredocr=‡r>…r?r@}rA(hh	]rB…rCRrDh
jÁubhj‘j¾XDoublerE‡rF…rGrH}rI(hh	]rJ…rKRrLh
jÁubhj‘j¾XInterprM‡rN…rOrP}rQ(hh	]rR…rSRrTh
jÁubhj‘j¾XAtomrU‡rV…rWrX}rY(hh	]rZ…r[Rr\h
jÁube…r]Rr^h
j”j5j8jðjójžjÖjj"h3j)jEjHhijúj=j@jÄjÇjajëjÿjhjäjjÝjjjj
jMjPjjjÌjÏjUjXh‰j0ubhj‘XNumberr_†r`…rarb}rc(hh	]rd(hj‘j_XFloatre‡rf…rgrh}ri(hh	]rj…rkRrlh
jbubhj‘j_XDecrm‡rn…rorp}rq(hh	]rr…rsRrth
jbubhj‘j_XRadixru‡rv…rwrx}ry(hh	]rz…r{Rr|h
jbubhj‘j_XOctr}‡r~…rr€}r(hh	]r‚…rƒRr„h
jbubhj‘j_XBinr…‡r†…r‡rˆ}r‰(hh	]rŠ…r‹RrŒh
jbubhj‘j_hü‡r…rށr}r(hh	]r‘…r’Rr“h
jbubhj‘j_XHexr”‡r•…r–r—}r˜(hh	]r™…ršRr›h
jbubhj‘j_XIntegerrœ‡r…ržrŸ}r (hh	]r¡h(j‘j_jœXLongr¢tr£…r¤r¥}r¦(hh	]r§…r¨Rr©h
jŸuba…rªRr«h
jbj¢j¥ubhj‘j_XDecimalr¬‡r­…r®r¯}r°(hh	]r±…r²Rr³h
jbube…r´Rrµh
j”j…jˆjejhj”j—jœjŸj}j€jujxhüjj¬j¯jmjpube…r¶Rr·h
hfj¾jÁj_jbj¦j©j®j±jaj™jžj¡ubhXGenericr¸…r¹…rºr»}r¼(hh	]r½(hj¸XErrorr¾†r¿…rÀrÁ}rÂ(hh	]rÃ…rÄRrÅh
j»ubhj¸X
SubheadingrƆrÇ…rȁrÉ}rÊ(hh	]rË…rÌRrÍh
j»ubhj¸X	TracebackrΆrÏ…rЁrÑ}rÒ(hh	]rÓ…rÔRrÕh
j»ubhj¸XOutputrÖ†r×…r؁rÙ}rÚ(hh	]rÛ…rÜRrÝh
j»ubhj¸XPromptrÞ†rß…ràrá}râ(hh	]rã…räRråh
j»ubhj¸XDeletedræ†rç…rèré}rê(hh	]rë…rìRríh
j»ubhj¸XInsertedrî†rï…rðrñ}rò(hh	]ró…rôRrõh
j»ubhj¸XHeadingrö†r÷…rørù}rú(hh	]rû…rüRrýh
j»ubhj¸XStrongrþ†rÿ…rr}r(hh	]r…rRrh
j»ubhj¸XEmphr†r…rr	}r
(hh	]r…rRr
h
j»ube…rRrh
hfjæjéjj	j¾jÁjöjùjîjñjÖjÙjÞjájþjjÆjÉjÎjÑubhj¾…r…rr}r(hh	]r…rRrh
hfubhXKeywordr…r…rr}r(hh	]r(hjh†r…rr}r (hh	]r!…r"Rr#h
jubhjj†r$…r%r&}r'(hh	]r(…r)Rr*h
jubhjjO†r+…r,r-}r.(hh	]r/…r0Rr1h
jubhjXPreProcr2†r3…r4r5}r6(hh	]r7…r8Rr9h
jubhjXControlr:†r;…r<r=}r>(hh	]r?…r@RrAh
jubhjj‡†rB…rCrD}rE(hh	]rF…rGRrHh
jubhjj†rI…rJrK}rL(hh	]rM…rNRrOh
jubhjj+†rP…rQrR}rS(hh	]rT…rURrVh
jubhjXDeclarationrW†rX…rYrZ}r[(hh	]r\…r]Rr^h
jubhjXReservedr_†r`…rarb}rc(hh	]rd…reRrfh
jube…rgRrhh
hfj‡jDjWjZjjKj+jRj_jbjOj-j:j=jj&j2j5hjubhja…ri…rjrk}rl(hh	]rm…rnRroh
hfubhXTextrp…rq…rrrs}rt(hh	]ru(hjpXRootrv†rw…rxry}rz(hh	]r{…r|Rr}h
jsubhjpj†r~…rr€}r(hh	]r‚…rƒRr„h
jsubhjpXRagr…†r†…r‡rˆ}r‰(hh	]rŠ…r‹RrŒh
jsubhjpX
Whitespacer†rŽ…rr}r‘(hh	]r’…r“Rr”h
jsubhjpXBeerr•†r–…r—r˜}r™(hh	]rš…r›Rrœh
jsubhjpXPunctuationr†rž…rŸr }r¡(hh	]r¢…r£Rr¤h
jsube…r¥Rr¦h
hfjjjj€jj jvjyj•j˜j…jˆubhhj…r§…r¨r©}rª(hh	]r«hjX	Indicatorr¬†r­…r®r¯}r°(hh	]r±…r²Rr³h
j©uba…r´Rrµh
hfj¬j¯ube…r¶Rr·jpjshihlj¾jjajkjjh‰hŒj‘j”jj©hqhthhj¸j»XTokenr¸hfj¾jÁj_jbubh#h&hChFhhhShVhhh[h^h;h>h+h.h3h6hhhKhNububX-- transform.moonr¹†rºjsX
r»†r¼hX(-- Leaf Corcoran (leafot@gmail.com) 2011r½†r¾jsj»†r¿hX--rÀ†rÁjsj»†rÂhXG-- This is part of the MoonScript compiler. See <http://moonscript.org>rÆrÄjsj»†rÅhX/-- MoonScript is licensed under the MIT LicenserƆrÇjsj»†rÈhX--rɆrÊjsj»†rËjsj»†rÌhŒXmoduler͆rÎjsX rφrÐjHX"rцrÒjÁXmrÓ†rÔjÁXorÕ†rÖjÁjÕ†r×jÁXnr؆rÙjÁXsrÚ†rÛjÁXcr܆rÝjÁXrrÞ†rßjÁXirà†rájÁXprâ†rãjÁXträ†råjÁX.ræ†rçjÁjä†rèjÁjÞ†réjÁXarê†rëjÁj؆rìjÁjÚ†ríjÁXfrî†rïjÁjÕ†rðjÁjÞ†rñjÁjÓ†ròjHjцrój©X,rô†rõjsjφröhŒXpackager÷†røhtjæ†rùhŒXseeallrú†rûjsj»†rüjsj»†rýhŒXtypesrþ†rÿjsjφrhtX=r†rjsjφrjEXrequirer†rjsjφrjHjцrjÁjÓ†rjÁjÕ†r	jÁjÕ†r
jÁj؆rjÁjÚ†rjÁj܆r
jÁjÞ†rjÁjà†rjÁjâ†rjÁjä†rjÁjæ†rjÁjä†rjÁXyr†rjÁjâ†rjÁXer†rjÁjÚ†rjHjцrjsj»†rhŒXutilr†rjsjφrhtj†rjsjφr jEXrequirer!†r"jsjφr#jHjцr$jÁjÓ†r%jÁjÕ†r&jÁjÕ†r'jÁj؆r(jÁjÚ†r)jÁj܆r*jÁjÞ†r+jÁjà†r,jÁjâ†r-jÁjä†r.jÁjæ†r/jÁXur0†r1jÁjä†r2jÁjà†r3jÁXlr4†r5jHjцr6jsj»†r7hŒXdatar8†r9jsjφr:htj†r;jsjφr<jEXrequirer=†r>jsjφr?jHjцr@jÁjÓ†rAjÁjÕ†rBjÁjÕ†rCjÁj؆rDjÁjÚ†rEjÁj܆rFjÁjÞ†rGjÁjà†rHjÁjâ†rIjÁjä†rJjÁjæ†rKjÁXdrL†rMjÁjê†rNjÁjä†rOjÁjê†rPjHjцrQjsj»†rRjsj»†rSjXimportrT†rUjsjφrVhŒXreversedrW†rXjsjφrYjXfromrZ†r[jsjφr\hŒXutilr]†r^jsj»†r_jXimportr`†rajsjφrbhŒXntyperc†rdj©jô†rejsjφrfhŒXbuildrg†rhj©jô†rijsjφrjhŒX
smart_noderk†rlj©jô†rmjsjφrnhŒXis_slicero†rpjsjφrqjXfromrr†rsjsjφrthŒXtypesru†rvjsj»†rwjXimportrx†ryjsjφrzhŒXinsertr{†r|jsjφr}jXfromr~†rjsjφr€hŒXtabler†r‚jsj»†rƒjsj»†r„jXexportr…†r†jsjφr‡h¹X	Statementrˆ†r‰j©jô†rŠjsjφr‹h¹XValuerŒ†rj©jô†rŽjsjφrh¹X	NameProxyr†r‘j©jô†r’jsjφr“h¹X	LocalNamer”†r•j©jô†r–jsjφr—h¹XRunr˜†r™jsj»†ršjsj»†r›hX-- always declares as localrœ†rjsj»†ržjXclassrŸ†r jsjφr¡h¹X	LocalNamer¢†r£jsj»†r¤jsX  r¥†r¦hÐXnew:r§†r¨jsjφr©j-X(rª†r«hÝX@namer¬†r­j-X)r®†r¯jsjφr°jtX=>r±†r²jsjφr³jJXselfr´†rµj-X[r¶†r·jŸX1r¸†r¹j-X]rº†r»jsjφr¼htj†r½jsjφr¾jHjцr¿jÁjä†rÀjÁj†rÁjÁjÓ†rÂjÁjâ†rÃjÁX_rĆrÅjÁj؆rÆjÁjê†rÇjÁjÓ†rÈjÁj†rÉjHjцrÊjsj»†rËjsX  r̆rÍhÐX	get_name:rΆrÏjsjφrÐjtX=>rцrÒjsjφrÓhÝX@namerÔ†rÕjsj»†rÖjsj»†r×jXclassr؆rÙjsjφrÚh¹X	NameProxyrÛ†rÜjsj»†rÝjsX  rÞ†rßhÐXnew:rà†rájsjφrâj-jª†rãhÝX@prefixrä†råj-j®†ræjsjφrçjtX=>rè†réjsj»†rêjsX    rë†rìjJXselfrí†rîj-j¶†rïjŸj¸†rðj-jº†rñjsjφròhtj†rójsjφrôjHjцrõjÁjä†röjÁj†r÷jÁjÓ†røjÁjâ†rùjÁjĆrújÁj؆rûjÁjê†rüjÁjÓ†rýjÁj†rþjHjцrÿjsj»†rjsj»†rjsX  r†rhÐX	get_name:r†rjsjφrj-jª†rhŒXscoper†r	j-j®†r
jsjφrjtX=>r†r
jsj»†rjsX    r†rjXifr†rjsjφrjXnotr†rjsjφrhÝX@namer†rjsj»†rjsX      r†rhÝX@namer†rjsjφrhtj†rjsjφr hŒXscoper!†r"htX\r#†r$hŒX	free_namer%†r&jsjφr'hÝX@prefixr(†r)j©jô†r*jsjφr+jDXtruer,†r-jsj»†r.jsX    r/†r0hÝX@namer1†r2jsj»†r3jsj»†r4jsX  r5†r6hÐXchain:r7†r8jsjφr9j-jª†r:htX...r;†r<j-j®†r=jsjφr>jtX=>r?†r@jsj»†rAjsX    rB†rChŒXitemsrD†rEjsjφrFhtj†rGjsjφrHj-X{rI†rJhtX...rK†rLj-X}rM†rNjsjφrOhX-- todo: fix ... propagationrP†rQjsj»†rRjsX    rS†rThŒXitemsrU†rVjsjφrWhtj†rXjsjφrYjXforrZ†r[jsjφr\hŒjà†r]jsjφr^jXinr_†r`jsjφrahtX*rb†rchŒXitemsrd†rejsj»†rfjsX      rg†rhjXifri†rjjsjφrkjEXtyperl†rmj-jª†rnhŒjà†roj-j®†rpjsjφrqhtX==rr†rsjsjφrtjHjцrujÁjÚ†rvjÁjä†rwjÁjÞ†rxjÁjà†ryjÁj؆rzjÁXgr{†r|jHjцr}jsj»†r~jsX        r†r€j-jI†rjHjцr‚jÁjL†rƒjÁjÕ†r„jÁjä†r…jHjцr†j©jô†r‡jsjφrˆhŒjà†r‰j-jM†rŠjsj»†r‹jsX      rŒ†rjXelserކrjsj»†rjsX        r‘†r’hŒjà†r“jsj»†r”jsj»†r•jsX    r–†r—hŒXbuildr˜†r™htjæ†ršhŒXchainr›†rœjsjφrj-jI†ržjsj»†rŸjsX      r †r¡hÐXbase:r¢†r£jsjφr¤jJXselfr¥†r¦jsj»†r§jsX      r¨†r©hŒXunpackrª†r«jsjφr¬hŒXitemsr­†r®jsj»†r¯jsX    r°†r±j-jM†r²jsj»†r³jsj»†r´jsX  rµ†r¶hÐXindex:r·†r¸jsjφr¹j-jª†rºhŒXkeyr»†r¼j-j®†r½jsjφr¾jtX=>r¿†rÀjsj»†rÁjsX    r†rÃhŒXbuildrĆrÅhtjæ†rÆhŒXchainrdžrÈjsjφrÉj-jI†rÊjsj»†rËjsX      r̆rÍhÐXbase:rΆrÏjsjφrÐjJXselfrцrÒj©jô†rÓjsjφrÔj-jI†rÕjHjцrÖjÁjà†r×jÁj؆rØjÁjL†rÙjÁj†rÚjÁXxrÛ†rÜjHjцrÝj©jô†rÞjsjφrßhŒXkeyrà†ráj-jM†râjsj»†rãjsX    rä†råj-jM†ræjsj»†rçjsj»†rèjsX  ré†rêhÐX__tostring:rë†rìjsjφríjtX=>rî†rïjsj»†rðjsX    rñ†ròjXifró†rôjsjφrõhÝX@namerö†r÷jsj»†røjsX      rù†rúj-jª†rûjHjцrüjÁj؆rýjÁjê†rþjÁjÓ†rÿjÁj†rjÁX<r†rjÁX%r†rjÁjÚ†rjÁX>r†rjHjцrj-j®†r	htj#†r
hŒXformatr†rjsjφr
hÝX@namer†rjsj»†rjsX    r†rjXelser†rjsj»†rjsX      r†rj-jª†rjHjцrjÁj؆rjÁjê†rjÁjÓ†rjÁj†rjÁj†rjÁjâ†rjÁjÞ†r jÁj†r!jÁjî†r"jÁjà†r#jÁjÛ†r$jÁjª†r%jÁj†r&jÁjÚ†r'jÁj®†r(jÁj†r)jHjцr*j-j®†r+htj#†r,hŒXformatr-†r.jsjφr/hÝX@prefixr0†r1jsj»†r2jsj»†r3jXclassr4†r5jsjφr6h¹XRunr7†r8jsj»†r9jsX  r:†r;hÐXnew:r<†r=jsjφr>j-jª†r?hÝX@fnr@†rAj-j®†rBjsjφrCjtX=>rD†rEjsj»†rFjsX    rG†rHjJXselfrI†rJj-j¶†rKjŸj¸†rLj-jº†rMjsjφrNhtj†rOjsjφrPjHjцrQjÁjÞ†rRjÁj0†rSjÁj؆rTjHjцrUjsj»†rVjsj»†rWjsX  rX†rYhÐXcall:rZ†r[jsjφr\j-jª†r]hŒXstater^†r_j-j®†r`jsjφrajtX=>rb†rcjsj»†rdjsX    re†rfjJXselfrg†rhhtjæ†rihŒXfnrj†rkjsjφrlhŒXstaterm†rnjsj»†rojsj»†rphX+-- transform the last stm is a list of stmsrq†rrjsj»†rshX-- will puke on grouprt†rujsj»†rvhŒX
apply_to_lastrw†rxjsjφryhtj†rzjsjφr{j-jª†r|hŒXstmsr}†r~j©jô†rjsjφr€hŒXfnr†r‚j-j®†rƒjsjφr„jtX->r…†r†jsj»†r‡jsX  rˆ†r‰hX-- find last (real) exprІr‹jsj»†rŒjsX  r†rŽhŒXlast_exp_idr†rjsjφr‘htj†r’jsjφr“jŸX0r”†r•jsj»†r–jsX  r—†r˜jXforr™†ršjsjφr›hŒjà†rœjsjφrhtj†ržjsjφrŸhtX#r †r¡hŒXstmsr¢†r£j©jô†r¤jsjφr¥jŸj¸†r¦j©jô†r§jsjφr¨htX-r©†rªjŸj¸†r«jsj»†r¬jsX    r­†r®hŒXstmr¯†r°jsjφr±htj†r²jsjφr³hŒXstmsr´†rµj-j¶†r¶hŒjà†r·j-jº†r¸jsj»†r¹jsX    rº†r»jXifr¼†r½jsjφr¾hŒXstmr¿†rÀjsjφrÁjXandr†rÃjsjφrÄhŒXutilrņrÆhtjæ†rÇhŒXmoonrȆrÉhtjæ†rÊjEXtyperˆrÌj-jª†rÍhŒXstmrΆrÏj-j®†rÐjsjφrÑhtX!=rÒ†rÓjsjφrÔh¹XRunrÕ†rÖjsj»†r×jsX      r؆rÙhŒXlast_exp_idrÚ†rÛjsjφrÜhtj†rÝjsjφrÞhŒjà†rßjsj»†ràjsX      rá†râjXbreakrã†räjsj»†råjsj»†ræjsX  rç†rèjXreturnré†rêjsjφrëjXforrì†ríjsjφrîhŒjà†rïj©jô†rðjsjφrñhŒXstmrò†rójsjφrôjXinrõ†röjsjφr÷jEXipairsrø†rùjsjφrúhŒXstmsrû†rüjsj»†rýjsX    rþ†rÿjXifr†rjsjφrhŒjà†rjsjφrhtX==r†rjsjφrhŒXlast_exp_idr†r	jsj»†r
jsX      r†rhŒXfnr
†rjsjφrhŒXstmr†rjsj»†rjsX    r†rjXelser†rjsj»†rjsX      r†rhŒXstmr†rjsj»†rjsj»†rhX*-- is a body a sindle expression/statementr†rjsj»†r hŒXis_singularr!†r"jsjφr#htj†r$jsjφr%j-jª†r&hŒXbodyr'†r(j-j®†r)jsjφr*jtX->r+†r,jsj»†r-jsX  r.†r/jXreturnr0†r1jsjφr2jDXfalser3†r4jsjφr5jXifr6†r7jsjφr8htj †r9hŒXbodyr:†r;jsjφr<htX!=r=†r>jsjφr?jŸj¸†r@jsj»†rAjsX  rB†rCjXifrD†rEjsjφrFjHjцrGjÁj{†rHjÁjÞ†rIjÁjÕ†rJjÁj0†rKjÁjâ†rLjHjцrMjsjφrNhtX==rO†rPjsjφrQhŒXntyperR†rSjsjφrThŒXbodyrU†rVjsj»†rWjsX    rX†rYhŒXis_singularrZ†r[jsjφr\hŒXbodyr]†r^j-j¶†r_jŸX2r`†raj-jº†rbjsj»†rcjsX  rd†rejXelserf†rgjsj»†rhjsX    ri†rjjDXtruerk†rljsj»†rmjsj»†rnhŒXconstructor_namero†rpjsjφrqhtj†rrjsjφrsjHjцrtjÁj؆rujÁj†rvjÁXwrw†rxjHjцryjsj»†rzjsj»†r{jXclassr|†r}jsjφr~h¹XTransformerr†r€jsj»†rjsX  r‚†rƒhÐXnew:r„†r…jsjφr†j-jª†r‡hÝX
@transformersrˆ†r‰j©jô†rŠjsjφr‹hÝX@scoperŒ†rj-j®†rŽjsjφrjtX=>r†r‘jsj»†r’jsX    r“†r”hÝX@seen_nodesr•†r–jsjφr—htj†r˜jsjφr™j-jI†ršj-jM†r›jsj»†rœjsj»†rjsX  rž†rŸhÐX
transform:r †r¡jsjφr¢j-jª†r£hŒXscoper¤†r¥j©jô†r¦jsjφr§hŒXnoder¨†r©j©jô†rªjsjφr«htX...r¬†r­j-j®†r®jsjφr¯jtX=>r°†r±jsj»†r²jsX    r³†r´hX-- print scope, node, ...rµ†r¶jsj»†r·jsX    r¸†r¹jXreturnrº†r»jsjφr¼hŒXnoder½†r¾jsjφr¿jXifrÀ†rÁjsjφrÂhÝX@seen_nodesrÆrÄj-j¶†rÅhŒXnoderƆrÇj-jº†rÈjsj»†rÉjsX    rʆrËhÝX@seen_nodesr̆rÍj-j¶†rÎhŒXnoderφrÐj-jº†rÑjsjφrÒhtj†rÓjsjφrÔjDXtruerÕ†rÖjsj»†r×jsX    r؆rÙjXwhilerÚ†rÛjsjφrÜjDXtruer݆rÞjsj»†rßjsX      rà†ráhŒXtransformerrâ†rãjsjφrähtj†råjsjφræhÝX
@transformersrç†rèj-j¶†réhŒXntyperê†rëjsjφrìhŒXnoderí†rîj-jº†rïjsj»†rðjsX      rñ†ròhŒXresró†rôjsjφrõhtj†röjsjφr÷jXifrø†rùjsjφrúhŒXtransformerrû†rüjsj»†rýjsX        rþ†rÿhŒXtransformerr†rj-jª†rhŒXscoper†rj©jô†rjsjφrhŒXnoder†rj©jô†r	jsjφr
htX...r†rj-j®†r
jsjφrjXorr†rjsjφrhŒXnoder†rjsj»†rjsX      r†rjXelser†rjsj»†rjsX        r†rhŒXnoder†rjsj»†rjsX      r†r jXreturnr!†r"jsjφr#hŒXnoder$†r%jsjφr&jXifr'†r(jsjφr)hŒXresr*†r+jsjφr,htX==r-†r.jsjφr/hŒXnoder0†r1jsj»†r2jsX      r3†r4hŒXnoder5†r6jsjφr7htj†r8jsjφr9hŒXresr:†r;jsj»†r<jsj»†r=jsX  r>†r?hÐX__call:r@†rAjsjφrBj-jª†rChŒXnoderD†rEj©jô†rFjsjφrGhtX...rH†rIj-j®†rJjsjφrKjtX=>rL†rMjsj»†rNjsX    rO†rPhÝX
@transformrQ†rRjsjφrShÝX@scoperT†rUj©jô†rVjsjφrWhŒXnoderX†rYj©jô†rZjsjφr[htX...r\†r]jsj»†r^jsj»†r_jsX  r`†rahÐX	instance:rb†rcjsjφrdj-jª†rehŒXscoperf†rgj-j®†rhjsjφrijtX=>rj†rkjsj»†rljsX    rm†rnh¹XTransformerro†rpjsjφrqhÝX
@transformersrr†rsj©jô†rtjsjφruhŒXscoperv†rwjsj»†rxjsj»†ryjsX  rz†r{hÐXcan_transform:r|†r}jsjφr~j-jª†rhŒXnoder€†rj-j®†r‚jsjφrƒjtX=>r„†r…jsj»†r†jsX    r‡†rˆhÝX
@transformersr‰†rŠj-j¶†r‹hŒXntyperŒ†rjsjφrŽhŒXnoder†rj-jº†r‘jsjφr’htX!=r“†r”jsjφr•jDXnilr–†r—jsj»†r˜jsj»†r™hŒXconstruct_comprehensionrš†r›jsjφrœhtj†rjsjφržj-jª†rŸhŒXinnerr †r¡j©jô†r¢jsjφr£hŒXclausesr¤†r¥j-j®†r¦jsjφr§jtX->r¨†r©jsj»†rªjsX  r«†r¬hŒXcurrent_stmsr­†r®jsjφr¯htj†r°jsjφr±hŒXinnerr²†r³jsj»†r´jsX  rµ†r¶jXforr·†r¸jsjφr¹hŒjĆrºj©jô†r»jsjφr¼hŒXclauser½†r¾jsjφr¿jXinrÀ†rÁjsjφrÂhŒXreversedrÆrÄjsjφrÅhŒXclausesrƆrÇjsj»†rÈjsX    rɆrÊhŒjä†rËjsjφrÌhtj†rÍjsjφrÎhŒXclauserφrÐj-j¶†rÑjŸj¸†rÒj-jº†rÓjsj»†rÔjsX    rÕ†rÖhŒXcurrent_stmsr׆rØjsjφrÙhtj†rÚjsjφrÛjXifr܆rÝjsjφrÞhŒjä†rßjsjφràhtX==rá†râjsjφrãjHjцräjÁjî†råjÁjÕ†ræjÁjÞ†rçjHjцrèjsj»†réjsX      rê†rëhŒjĆrìj©jô†ríjsjφrîhŒXnamesrï†rðj©jô†rñjsjφròhŒXiterró†rôjsjφrõhtj†röjsjφr÷hŒXunpackrø†rùjsjφrúhŒXclauserû†rüjsj»†rýjsX      rþ†rÿj-jI†r	jHjцr	jÁjî†r	jÁjÕ†r	jÁjÞ†r	jÁj†r	jÁjê†r	jÁj܆r	jÁXhr	†r		jHjцr
	j©jô†r	jsjφr	hŒXnamesr
	†r	j©jô†r	jsjφr	hŒXiterr	†r	j©jô†r	jsjφr	hŒXcurrent_stmsr	†r	j-jM†r	e(jsj»†r	jsX    r	†r	jXelseifr	†r	jsjφr	hŒjä†r	jsjφr	htX==r 	†r!	jsjφr"	jHjцr#	jÁjw†r$	jÁj	†r%	jÁj†r&	jÁj؆r'	jHjцr(	jsj»†r)	jsX      r*	†r+	hŒjĆr,	j©jô†r-	jsjφr.	hŒXcondr/	†r0	jsjφr1	htj†r2	jsjφr3	hŒXunpackr4	†r5	jsjφr6	hŒXclauser7	†r8	jsj»†r9	jsX      r:	†r;	j-jI†r<	jHjцr=	jÁjà†r>	jÁjî†r?	jHjцr@	j©jô†rA	jsjφrB	hŒXcondrC	†rD	j©jô†rE	jsjφrF	hŒXcurrent_stmsrG	†rH	j-jM†rI	jsj»†rJ	jsX    rK	†rL	jXelserM	†rN	jsj»†rO	jsX      rP	†rQ	jEXerrorrR	†rS	jsjφrT	jHjцrU	jÁXUrV	†rW	jÁj؆rX	jÁXkrY	†rZ	jÁj؆r[	jÁjÕ†r\	jÁjw†r]	jÁj؆r^	jÁjφr_	jÁj܆r`	jÁjÕ†ra	jÁjÓ†rb	jÁjâ†rc	jÁjÞ†rd	jÁj†re	jÁj	†rf	jÁj†rg	jÁj؆rh	jÁjÚ†ri	jÁjà†rj	jÁjÕ†rk	jÁj؆rl	jÁjφrm	jÁj܆rn	jÁj4†ro	jÁjê†rp	jÁj0†rq	jÁjÚ†rr	jÁj†rs	jÁX:rt	†ru	jÁjφrv	jHjцrw	htX..rx	†ry	hŒjä†rz	jsj»†r{	jsX    r|	†r}	hŒXcurrent_stmsr~	†r	jsjφr€	htj†r	jsjφr‚	j-jI†rƒ	hŒXcurrent_stmsr„	†r…	j-jM†r†	jsj»†r‡	jsj»†rˆ	jsX  r‰	†rŠ	hŒXcurrent_stmsr‹	†rŒ	j-j¶†r	jŸj¸†rŽ	j-jº†r	jsj»†r	jsj»†r‘	h¹X	Statementr’	†r“	jsjφr”	htj†r•	jsjφr–	h¹XTransformerr—	†r˜	jsjφr™	j-jI†rš	jsj»†r›	jsX  rœ	†r	hÐXassign:rž	†rŸ	jsjφr 	j-jª†r¡	hŒXnoder¢	†r£	j-j®†r¤	jsjφr¥	jtX=>r¦	†r§	jsj»†r¨	jsX    r©	†rª	hŒjĆr«	j©jô†r¬	jsjφr­	hŒXnamesr®	†r¯	j©jô†r°	jsjφr±	hŒXvaluesr²	†r³	jsjφr´	htj†rµ	jsjφr¶	hŒXunpackr·	†r¸	jsjφr¹	hŒXnoderº	†r»	jsj»†r¼	jsX    r½	†r¾	hX-- bubble cascading assignsr¿	†rÀ	jsj»†rÁ	jsX    rÂ	†rÃ	jXifrÄ	†rÅ	jsjφrÆ	htj †rÇ	hŒXvaluesrÈ	†rÉ	jsjφrÊ	htX==rË	†rÌ	jsjφrÍ	jŸj¸†rÎ	jsjφrÏ	jXandrÐ	†rÑ	jsjφrÒ	hŒXtypesrÓ	†rÔ	htjæ†rÕ	hŒX	cascadingrÖ	†r×	j-j¶†rØ	hŒXntyperÙ	†rÚ	jsjφrÛ	hŒXvaluesrÜ	†rÝ	j-j¶†rÞ	jŸj¸†rß	j-jº†rà	j-jº†rá	jsj»†râ	jsX      rã	†rä	hŒXvaluesrå	†ræ	j-j¶†rç	jŸj¸†rè	j-jº†ré	jsjφrê	htj†rë	jsjφrì	hÝX
@transformrí	†rî	htjæ†rï	hŒX	statementrð	†rñ	jsjφrò	hŒXvaluesró	†rô	j-j¶†rõ	jŸj¸†rö	j-jº†r÷	j©jô†rø	jsjφrù	j-jª†rú	hŒXstmrû	†rü	j-j®†rý	jsjφrþ	jtX->rÿ	†r
jsjȠr
jsX        r
†r
hŒjä†r
jsjφr
htj†r
jsjφr
hŒXntyper
†r	
jsjφr

hŒXstmr
†r
jsjȠr
jsX        r
†r
jXifr
†r
jsjφr
hŒXtypesr
†r
htjæ†r
hŒXis_valuer
†r
jsjφr
hŒXstmr
†r
jsjȠr
jsX
          r
†r
j-jI†r
jHjцr
jÁjê†r 
jÁjÚ†r!
jÁjÚ†r"
jÁjà†r#
jÁj{†r$
jÁj؆r%
jHjцr&
j©jô†r'
jsjφr(
hŒXnamesr)
†r*
j©jô†r+
jsjφr,
j-jI†r-
hŒXstmr.
†r/
j-jM†r0
j-jM†r1
jsjȠr2
jsX        r3
†r4
jXelser5
†r6
jsjȠr7
jsX
          r8
†r9
hŒXstmr:
†r;
jsjȠr<
jsjȠr=
jsX      r>
†r?
hŒXbuildr@
†rA
htjæ†rB
hŒXgrouprC
†rD
jsjφrE
j-jI†rF
jsjȠrG
jsX        rH
†rI
j-jI†rJ
jHjцrK
jÁjL†rL
jÁj†rM
jÁj܆rN
jÁj4†rO
jÁjê†rP
jÁjÞ†rQ
jÁj†rR
jHjцrS
j©jô†rT
jsjφrU
hŒXnamesrV
†rW
j-jM†rX
jsjȠrY
jsX        rZ
†r[
hŒXvaluesr\
†r]
j-j¶†r^
jŸj¸†r_
j-jº†r`
jsjȠra
jsX      rb
†rc
j-jM†rd
jsjȠre
jsX    rf
†rg
jXelserh
†ri
jsjȠrj
jsX      rk
†rl
hŒXnoderm
†rn
jsjȠro
jsjȠrp
jsX  rq
†rr
hÐXexport:rs
†rt
jsjφru
j-jª†rv
hŒXnoderw
†rx
j-j®†ry
jsjφrz
jtX=>r{
†r|
jsjȠr}
jsX    r~
†r
hX%-- assign values if they are includedr€
†r
jsj»†r‚
jsX    rƒ
†r„
jXifr…
†r†
jsjφr‡
htj †rˆ
hŒXnoder‰
†rŠ
jsjφr‹
htj†rŒ
jsjφr
jŸj`†rŽ
jsj»†r
jsX      r
†r‘
jXifr’
†r“
jsjφr”
hŒXnoder•
†r–
j-j¶†r—
jŸj`†r˜
j-jº†r™
jsjφrš
htX==r›
†rœ
jsjφr
jHjцrž
jÁj܆rŸ
jÁj4†r 
jÁjê†r¡
jÁjÚ†r¢
jÁjÚ†r£
jHjцr¤
jsj»†r¥
jsX        r¦
†r§
hŒXclsr¨
†r©
jsjφrª
htj†r«
jsjφr¬
hŒX
smart_noder­
†r®
jsjφr¯
hŒXnoder°
†r±
j-j¶†r²
jŸX3r³
†r´
j-jº†rµ
jsj»†r¶
jsX        r·
†r¸
hŒXbuildr¹
†rº
htjæ†r»
hŒXgroupr¼
†r½
jsjφr¾
j-jI†r¿
jsj»†rÀ
jsX
          rÁ
†rÂ
j-jI†rÃ
jHjцrÄ
jÁj†rÅ
jÁjÛ†rÆ
jÁjâ†rÇ
jÁjÕ†rÈ
jÁjÞ†rÉ
jÁjä†rÊ
jHjцrË
j©jô†rÌ
jsjφrÍ
j-jI†rÎ
hŒXclsrÏ
†rÐ
htjæ†rÑ
hŒXnamerÒ
†rÓ
j-jM†rÔ
j-jM†rÕ
jsj»†rÖ
jsX
          r×
†rØ
hŒXclsrÙ
†rÚ
jsj»†rÛ
jsX        rÜ
†rÝ
j-jM†rÞ
jsj»†rß
jsX      rà
†rá
jXelserâ
†rã
jsj»†rä
jsX        rå
†ræ
hŒXbuildrç
†rè
htjæ†ré
hŒXgrouprê
†rë
jsjφrì
j-jI†rí
jsj»†rî
jsX
          rï
†rð
hŒXnoderñ
†rò
jsj»†ró
jsX
          rô
†rõ
hŒXbuildrö
†r÷
htjæ†rø
hŒXassignrù
†rú
jsjφrû
j-jI†rü
jsj»†rý
jsX            rþ
†rÿ
hÐXnames:r†rjsjφrhŒXnoder†rj-j¶†rjŸj`†rj-jº†rjsj»†rjsX            r	†r
hÐXvalues:r†rjsjφr
hŒXnoder†rj-j¶†rjŸj³
†rj-jº†rjsj»†rjsX
          r†rj-jM†rjsj»†rjsX        r†rj-jM†rjsj»†rjsX    r†rjXelser†rjsj»†r jsX      r!†r"jDXnilr#†r$jsj»†r%jsj»†r&jsX  r'†r(hÐXupdate:r)†r*jsjφr+j-jª†r,hŒXnoder-†r.j-j®†r/jsjφr0jtX=>r1†r2jsj»†r3jsX    r4†r5hŒjĆr6j©jô†r7jsjφr8hŒXnamer9†r:j©jô†r;jsjφr<hŒXopr=†r>j©jô†r?jsjφr@hŒXexprA†rBjsjφrChtj†rDjsjφrEhŒXunpackrF†rGjsjφrHhŒXnoderI†rJjsj»†rKjsX    rL†rMhŒXop_finalrN†rOjsjφrPhtj†rQjsjφrRhŒXoprS†rThtj#†rUhŒXmatchrV†rWjsjφrXjHjцrYjÁX^rZ†r[jÁjª†r\jÁjæ†r]jÁX+r^†r_jÁj®†r`jÁj†rajÁX$rb†rcjHjцrdjsj»†rejsX    rf†rgjEXerrorrh†rijsjφrjjHjцrkjÁjV	†rljÁj؆rmjÁjY	†rnjÁj؆rojÁjÕ†rpjÁjw†rqjÁj؆rrjÁjφrsjÁjÕ†rtjÁjâ†rujÁjt	†rvjÁjφrwjHjцrxhtX..ry†rzhŒXopr{†r|jsjφr}jXifr~†rjsjφr€jXnotr†r‚jsjφrƒhŒXop_finalr„†r…jsj»†r†jsX    r‡†rˆhŒXbuildr‰†rŠhtjæ†r‹hŒX
assign_onerŒ†rjsjφrŽhŒXnamer†rj©jô†r‘jsjφr’j-jI†r“jHjцr”jÁj†r•jÁjÛ†r–jÁjâ†r—jHjцr˜j©jô†r™jsjφršhŒXnamer›†rœj©jô†rjsjφržhŒXop_finalrŸ†r j©jô†r¡jsjφr¢hŒXexpr£†r¤j-jM†r¥jsj»†r¦jsj»†r§jsX  r¨†r©hÐXimport:rª†r«jsjφr¬j-jª†r­hŒXnoder®†r¯j-j®†r°jsjφr±jtX=>r²†r³jsj»†r´jsX    rµ†r¶hŒjĆr·j©jô†r¸jsjφr¹hŒXnamesrº†r»j©jô†r¼jsjφr½hŒXsourcer¾†r¿jsjφrÀhtj†rÁjsjφrÂhŒXunpackrÆrÄjsjφrÅhŒXnoderƆrÇjsj»†rÈjsj»†rÉjsX    rʆrËhŒXstubsr̆rÍjsjφrÎhtj†rÏjsjφrÐjXforrцrÒjsjφrÓhŒXnamerÔ†rÕjsjφrÖjXinr׆rØjsjφrÙhtjb†rÚhŒXnamesrÛ†rÜjsj»†rÝjsX      rÞ†rßjXifrà†rájsjφrâjEXtyperã†räj-jª†råhŒXnameræ†rçj-j®†rèjsjφréhtX==rê†rëjsjφrìjHjцríjÁjä†rîjÁjê†rïjÁXbrð†rñjÁj4†ròjÁj†rójHjцrôjsj»†rõjsX        rö†r÷hŒXnamerø†rùjsj»†rújsX      rû†rüjXelserý†rþjsj»†rÿjsX        r†rj-jI†rjHjцrjÁjL†rjÁjÕ†rjÁjä†rjHjцrj©jô†rjsjφr	hŒXnamer
†rj-jM†rjsj»†r
jsj»†rjsX    r†rhŒX
real_namesr†rjsjφrhtj†rjsjφrjXforr†rjsjφrhŒXnamer†rjsjφrjXinr†rjsjφrhtjb†rhŒXnamesr †r!jsj»†r"jsX      r#†r$jEXtyper%†r&j-jª†r'hŒXnamer(†r)j-j®†r*jsjφr+htX==r,†r-jsjφr.jHjцr/jÁjä†r0jÁjê†r1jÁjð†r2jÁj4†r3jÁj†r4jHjцr5jsjφr6jXandr7†r8jsjφr9hŒXnamer:†r;j-j¶†r<jŸj`†r=j-jº†r>jsjφr?jXorr@†rAjsjφrBhŒXnamerC†rDjsj»†rEjsj»†rFjsX    rG†rHjXifrI†rJjsjφrKjEXtyperL†rMj-jª†rNhŒXsourcerO†rPj-j®†rQjsjφrRhtX==rS†rTjsjφrUjHjцrVjÁjÚ†rWjÁjä†rXjÁjÞ†rYjÁjà†rZjÁj؆r[jÁj{†r\jHjцr]jsj»†r^jsX      r_†r`hŒXbuildra†rbhtjæ†rchŒXassignrd†rejsjφrfj-jI†rgjsj»†rhjsX        ri†rjhÐXnames:rk†rljsjφrmhŒX
real_namesrn†rojsj»†rpjsX        rq†rrhÐXvalues:rs†rtjsjφruj-j¶†rvhŒXbuildrw†rxhtjæ†ryhŒXchainrz†r{jsjφr|j-jI†r}jsjφr~hÐXbase:r†r€jsjφrhŒXsourcer‚†rƒj©jô†r„jsjφr…hŒXstubr††r‡j-jM†rˆjsjφr‰jXforrŠ†r‹jsjφrŒhŒXstubr†rŽjsjφrjXinr†r‘jsjφr’htjb†r“hŒXstubsr”†r•j-jº†r–jsj»†r—jsX      r˜†r™j-jM†ršjsj»†r›jsX    rœ†rjXelserž†rŸjsj»†r jsX      r¡†r¢hŒXsource_namer£†r¤jsjφr¥htj†r¦jsjφr§h¹X	NameProxyr¨†r©jsjφrªjHjцr«jÁjä†r¬jÁjê†r­jÁjð†r®jÁj4†r¯jÁj†r°jHjцr±jsj»†r²jsX      r³†r´hŒXbuildrµ†r¶htjæ†r·hŒXgroupr¸†r¹jsjφrºj-jI†r»jsj»†r¼jsX        r½†r¾j-jI†r¿jHjцrÀjÁjL†rÁjÁj†rÂjÁj܆rÃjÁj4†rÄjÁjê†rÅjÁjÞ†rÆjÁj†rÇjHjцrÈj©jô†rÉjsjφrÊhŒX
real_namesrË†rÌj-jM†rÍjsj»†rÎjsX        rÏ†rÐhŒXbuildrÑ†rÒj-j¶†rÓjHjцrÔjÁjL†rÕjÁjÕ†rÖjHjцr×j-jº†rØjsjφrÙj-jI†rÚjsj»†rÛjsX
          rÜ†rÝhŒXbuildrÞ†rßhtjæ†ràhŒX
assign_onerá†râjsjφrãhŒXsource_namerä†råj©jô†ræjsjφrçhŒXsourcerè†réjsj»†rêjsX
          rë†rìhŒXbuildrí†rîhtjæ†rïhŒXassignrð†rñjsjφròj-jI†rójsj»†rôjsX            rõ†röhÐXnames:r÷†røjsjφrùhŒX
real_namesrú†rûjsj»†rüjsX            rý†rþhÐXvalues:rÿ†r
jsjφr
j-j¶†r
hŒXbuildr
†r
htjæ†r
hŒXchainr
†r
jsjφr
j-jI†r	
jsjφr

hÐXbase:r
†r
jsjφr

hŒXsource_namer
†r
j©jô†r
jsjφr
hŒXstubr
†r
j-jM†r
jsjφr
jXforr
†r
jsjφr
hŒXstubr
†r
jsjφr
jXinr
†r
jsjφr
htjb†r
hŒXstubsr 
†r!
j-jº†r"
jsjȠr#
jsX
          r$
†r%
j-jM†r&
jsjȠr'
jsX        r(
†r)
j-jM†r*
jsjȠr+
jsX      r,
†r-
j-jM†r.
jsjȠr/
jsjȠr0
jsX  r1
†r2
hÐXcomprehension:r3
†r4
jsjφr5
j-jª†r6
hŒXnoder7
†r8
j©jô†r9
jsjφr:
hŒXactionr;
†r<
j-j®†r=
jsjφr>
jtX=>r?
†r@
jsjȠrA
jsX    rB
†rC
hŒjĆrD
j©jô†rE
jsjφrF
hŒXexprG
†rH
j©jô†rI
jsjφrJ
hŒXclausesrK
†rL
jsjφrM
htj†rN
jsjφrO
hŒXunpackrP
†rQ
jsjφrR
hŒXnoderS
†rT
jsjȠrU
jsjȠrV
jsX    rW
†rX
hŒXactionrY
†rZ
jsjφr[
htj†r\
jsjφr]
hŒXactionr^
†r_
jsjφr`
jXorra
†rb
jsjφrc
j-jª†rd
hŒXexpre
†rf
j-j®†rg
jsjφrh
jtX->ri
†rj
jsjφrk
j-jI†rl
hŒXexprm
†rn
j-jM†ro
jsjȠrp
jsX    rq
†rr
hŒXconstruct_comprehensionrs
†rt
jsjφru
hŒXactionrv
†rw
j-jª†rx
hŒXexpry
†rz
j-j®†r{
j©jô†r|
jsjφr}
hŒXclausesr~
†r
jsj»†r€
jsj»†r
jsX  r‚
†rƒ
hX$-- handle cascading return decoratorr„
†r…
jsj»†r†
jsX  r‡
†rˆ
hÐXif:r‰
†rŠ
jsjφr‹
j-jª†rŒ
hŒXnoder
†rŽ
j©jô†r
jsjφr
hŒXretr‘
†r’
j-j®†r“
jsjφr”
jtX=>r•
†r–
jsj»†r—
jsX    r˜
†r™
jXifrš
†r›
jsjφrœ
hŒXretr
†rž
jsj»†rŸ
jsX      r 
†r¡
hŒX
smart_noder¢
†r£
jsjφr¤
hŒXnoder¥
†r¦
jsj»†r§
jsX      r¨
†r©
hX-- mutate all the bodiesrª
†r«
jsj»†r¬
jsX      r­
†r®
hŒXnoder¯
†r°
j-j¶†r±
jäX'r²
†r³
jÁjä†r´
jÁj	†rµ
jÁj†r¶
jÁj؆r·
jäj²
†r¸
j-jº†r¹
jsjφrº
htj†r»
jsjφr¼
hŒX
apply_to_lastr½
†r¾
jsjφr¿
hŒXnoderÀ
†rÁ
j-j¶†rÂ
jäj²
†rÃ
jÁjä†rÄ
jÁj	†rÅ
jÁj†rÆ
jÁj؆rÇ
jäj²
†rÈ
j-jº†rÉ
j©jô†rÊ
jsjφrË
hŒXretrÌ
†rÍ
jsj»†rÎ
jsX      rÏ
†rÐ
jXforrÑ
†rÒ
jsjφrÓ
hŒjà†rÔ
jsjφrÕ
htj†rÖ
jsjφr×
jŸX4rØ
†rÙ
j©jô†rÚ
jsjφrÛ
htj †rÜ
hŒXnoderÝ
†rÞ
jsj»†rß
jsX        rà
†rá
hŒXcaserâ
†rã
jsjφrä
htj†rå
jsjφræ
hŒXnoderç
†rè
j-j¶†ré
hŒjà†rê
j-jº†rë
jsj»†rì
jsX        rí
†rî
hŒXbody_idxrï
†rð
jsjφrñ
htj†rò
jsjφró
htj †rô
hŒXnoderõ
†rö
j-j¶†r÷
hŒjà†rø
j-jº†rù
jsj»†rú
jsX        rû
†rü
hŒXcaserý
†rþ
j-j¶†rÿ
hŒXbody_idxr†rj-jº†rjsjφrhtj†rjsjφrhŒX
apply_to_lastr†rjsjφrhŒXcaser	†r
j-j¶†rhŒXbody_idxr†r
j-jº†rj©jô†rjsjφrhŒXretr†rjsj»†rjsX    r†rhŒXnoder†rjsj»†rjsj»†rjsX  r†rhÐXwith:r†rjsjφrj-jª†rhŒXnoder †r!j©jô†r"jsjφr#hŒXretr$†r%j-j®†r&jsjφr'jtX=>r(†r)jsj»†r*jsX    r+†r,hŒjĆr-j©jô†r.jsjφr/hŒXexpr0†r1j©jô†r2jsjφr3hŒXblockr4†r5jsjφr6htj†r7jsjφr8hŒXunpackr9†r:jsjφr;hŒXnoder<†r=jsj»†r>jsX    r?†r@hŒX
scope_namerA†rBjsjφrChtj†rDjsjφrEh¹X	NameProxyrF†rGjsjφrHjHjцrIjÁjw†rJjÁjà†rKjÁjä†rLjÁj	†rMjHjцrNe(jsj»†rOjsX    rP†rQhŒXbuildrR†rSj-j¶†rTjHjцrUjÁjL†rVjÁjÕ†rWjHjцrXj-jº†rYjsjφrZj-jI†r[jsj»†r\jsX      r]†r^hŒXbuildr_†r`htjæ†rahŒX
assign_onerb†rcjsjφrdhŒX
scope_namere†rfj©jô†rgjsjφrhhŒXexpri†rjjsj»†rkjsX      rl†rmh¹XRunrn†rojsjφrpjtX=>rq†rrjsjφrshÝX@setrt†rujsjφrvjHjцrwjÁjÚ†rxjÁj܆ryjÁjÕ†rzjÁjâ†r{jÁj†r|jÁjĆr}jÁXvr~†rjÁjê†r€jÁjÞ†rjHjцr‚j©jô†rƒjsjφr„hŒX
scope_namer…†r†jsj»†r‡jsX      rˆ†r‰hŒXbuildrІr‹htjæ†rŒhŒXgroupr†rŽjsjφrhŒXblockr†r‘jsj»†r’jsX      r“†r”jXifr•†r–jsjφr—hŒXretr˜†r™jsj»†ršjsX        r›†rœhŒXretr†ržjsjφrŸhŒX
scope_namer †r¡jsj»†r¢jsX    r£†r¤j-jM†r¥jsj»†r¦jsj»†r§jsX  r¨†r©hÐXforeach:rª†r«jsjφr¬j-jª†r­hŒXnoder®†r¯j-j®†r°jsjφr±jtX=>r²†r³jsj»†r´jsX    rµ†r¶hŒX
smart_noder·†r¸jsjφr¹hŒXnoderº†r»jsj»†r¼jsX    r½†r¾jXifr¿†rÀjsjφrÁhŒXntyper†rÃj-jª†rÄhŒXnoderņrÆhtjæ†rÇhŒXiterrȆrÉj-j®†rÊjsjφrËhtX==r̆rÍjsjφrÎjHjцrÏjÁj0†rÐjÁj؆rÑjÁjâ†rÒjÁjê†rÓjÁj܆rÔjÁjY	†rÕjHjцrÖjsj»†r×jsX      r؆rÙhŒXlistrÚ†rÛjsjφrÜhtj†rÝjsjφrÞhŒXnoder߆ràhtjæ†ráhŒXiterrâ†rãj-j¶†räjŸj`†råj-jº†ræjsj»†rçjsj»†rèjsX      ré†rêhŒX
index_namerë†rìjsjφríhtj†rîjsjφrïh¹X	NameProxyrð†rñjsjφròjHjцrójÁjà†rôjÁj؆rõjÁjL†röjÁj†r÷jÁjÛ†røjHjцrùjsj»†rújsX      rû†rühŒX	list_namerý†rþjsjφrÿhtj†rjsjφrh¹X	NameProxyr†rjsjφrjHjцrjÁj4†rjÁjà†rjÁjÚ†rjÁjä†r	jHjцr
jsjȠrjsjȠrjsX      r
†rhŒX	slice_varr†rjsjφrhtj†rjsjφrjDXnilr†rjsj»†rjsX      r†rhŒXboundsr†rjsjφrhtj†rjsjφrjXifr†rjsjφr hŒXis_slicer!†r"jsjφr#hŒXlistr$†r%jsj»†r&jsX        r'†r(hŒXslicer)†r*jsjφr+htj†r,jsjφr-hŒXlistr.†r/j-j¶†r0htj †r1hŒXlistr2†r3j-jº†r4jsj»†r5jsX        r6†r7jEXtable.remover8†r9jsjφr:hŒXlistr;†r<jsj»†r=jsX        r>†r?jEXtable.remover@†rAjsjφrBhŒXslicerC†rDj©jô†rEjsjφrFjŸj¸†rGjsj»†rHjsj»†rIjsX        rJ†rKhŒXslicerL†rMj-j¶†rNjŸj`†rOj-jº†rPjsjφrQhtj†rRjsjφrSjXifrT†rUjsjφrVhŒXslicerW†rXj-j¶†rYjŸj`†rZj-jº†r[jsjφr\jXandr]†r^jsjφr_hŒXslicer`†raj-j¶†rbjŸj`†rcj-jº†rdjsjφrehtX!=rf†rgjsjφrhjHjцrijHjцrjjsj»†rkjsX
          rl†rmhŒXmax_tmp_namern†rojsjφrphtj†rqjsjφrrh¹X	NameProxyrs†rtjsjφrujHjцrvjÁjÓ†rwjÁjê†rxjÁjÛ†ryjHjцrzjsj»†r{jsX
          r|†r}hŒX	slice_varr~†rjsjφr€htj†rjsjφr‚hŒXbuildrƒ†r„htjæ†r…hŒX
assign_oner††r‡jsjφrˆhŒXmax_tmp_namer‰†rŠj©jô†r‹jsjφrŒhŒXslicer†rŽj-j¶†rjŸj`†rj-jº†r‘jsj»†r’jsX
          r“†r”j-jI†r•jHjцr–jÁj†r—jÁjÛ†r˜jÁjâ†r™jHjцršj©jô†r›jsjφrœhŒXmax_tmp_namer†ržj©jô†rŸjsjφr jHjцr¡jÁj†r¢jHjцr£j©jô†r¤jsjφr¥jŸj”†r¦jsj»†r§jsX            r¨†r©jHjцrªjÁjê†r«jÁj؆r¬jÁjL†r­jHjцr®j©jô†r¯jsjφr°j-jI†r±jHjцr²jÁj4†r³jÁj†r´jÁj؆rµjÁj{†r¶jÁjä†r·jÁj	†r¸jHjцr¹j©jô†rºjsjφr»hŒX	list_namer¼†r½j-jM†r¾j©jô†r¿jsjφrÀjHjцrÁjÁj^†rÂjHjцrÃj©jô†rÄjsjφrÅhŒXmax_tmp_namerƆrÇjsj»†rÈjsX            rɆrÊjHjцrËjÁjÕ†rÌjÁjÞ†rÍjHjцrÎj©jô†rÏjsjφrÐhŒXmax_tmp_namerцrÒjsjφrÓj-jM†rÔjsj»†rÕjsX        rÖ†r×jXelser؆rÙjsj»†rÚjsX
          rÛ†rÜj-jI†rÝjHjцrÞjÁj4†rßjÁj†ràjÁj؆rájÁj{†râjÁjä†rãjÁj	†räjHjцråj©jô†ræjsjφrçhŒX	list_namerè†réj-jM†rêjsj»†rëjsj»†rìjsX        rí†rîhŒXslicerï†rðjsj»†rñjsX      rò†rójXelserô†rõjsj»†röjsX        r÷†røj-jI†rùjŸj¸†rúj©jô†rûjsjφrüj-jI†rýjHjцrþjÁj4†rÿjÁj†rjÁj؆rjÁj{†rjÁjä†rjÁj	†rjHjцrj©jô†rjsjφrhŒX	list_namer†r	j-jM†r
j-jM†rjsj»†rjsj»†r
jsX      r†rhŒXbuildr†rhtjæ†rhŒXgroupr†rjsjφrj-jI†rjsj»†rjsX        r†rhŒXbuildr†rhtjæ†rhŒX
assign_oner†rjsjφrhŒX	list_namer †r!j©jô†r"jsjφr#hŒXlistr$†r%jsj»†r&jsX        r'†r(hŒX	slice_varr)†r*jsj»†r+jsX        r,†r-hŒXbuildr.†r/j-j¶†r0jHjцr1jÁjî†r2jÁjÕ†r3jÁjÞ†r4jHjцr5j-jº†r6jsjφr7j-jI†r8jsj»†r9jsX
          r:†r;hÐXname:r<†r=jsjφr>hŒX
index_namer?†r@jsj»†rAjsX
          rB†rChÐXbounds:rD†rEjsjφrFhŒXboundsrG†rHjsj»†rIjsX
          rJ†rKhÐXbody:rL†rMjsjφrNj-jI†rOjsj»†rPjsX            rQ†rRj-jI†rSjHjцrTjÁjê†rUjÁjÚ†rVjÁjÚ†rWjÁjà†rXjÁj{†rYjÁj؆rZjHjцr[j©jô†r\jsjφr]hŒXnoder^†r_htjæ†r`hŒXnamesra†rbj©jô†rcjsjφrdj-jI†rehŒX	list_namerf†rghtj#†rhhŒXindexri†rjjsjφrkhŒX
index_namerl†rmj-jM†rnj-jM†rojsj»†rpjsX            rq†rrhŒXbuildrs†rthtjæ†ruhŒXgrouprv†rwjsjφrxhŒXnodery†rzhtjæ†r{hŒXbodyr|†r}jsj»†r~jsX
          r†r€j-jM†rjsj»†r‚jsX        rƒ†r„j-jM†r…jsj»†r†jsX      r‡†rˆj-jM†r‰jsj»†rŠjsj»†r‹jsX  rŒ†rhÐXswitch:rކrjsjφrj-jª†r‘hŒXnoder’†r“j©jô†r”jsjφr•hŒXretr–†r—j-j®†r˜jsjφr™jtX=>rš†r›jsj»†rœjsX    r†ržhŒjĆrŸj©jô†r jsjφr¡hŒXexpr¢†r£j©jô†r¤jsjφr¥hŒXcondsr¦†r§jsjφr¨htj†r©jsjφrªhŒXunpackr«†r¬jsjφr­hŒXnoder®†r¯jsj»†r°jsX    r±†r²hŒXexp_namer³†r´jsjφrµhtj†r¶jsjφr·h¹X	NameProxyr¸†r¹jsjφrºjHjцr»jÁj†r¼jÁjÛ†r½jÁjâ†r¾jHjцr¿jsj»†rÀjsj»†rÁjsX    r†rÃhX.-- convert switch conds into if statment condsrĆrÅjsj»†rÆjsX    rdžrÈhŒXconvert_condrɆrÊjsjφrËhtj†rÌjsjφrÍj-jª†rÎhŒXcondrφrÐj-j®†rÑjsjφrÒjtX->rÓ†rÔjsj»†rÕjsX      rÖ†r×hŒjä†rØj©jô†rÙjsjφrÚhŒXcase_exprÛ†rÜj©jô†rÝjsjφrÞhŒXbodyr߆ràjsjφráhtj†râjsjφrãhŒXunpackrä†råjsjφræhŒXcondrç†rèjsj»†réjsX      rê†rëhŒXoutrì†ríjsjφrîhtj†rïjsjφrðj-jI†rñj-jM†ròjsj»†rójsX      rô†rõhŒXinsertrö†r÷jsjφrøhŒXoutrù†rúj©jô†rûjsjφrühŒjä†rýjsjφrþhtX==rÿ†rjsjφrjHjцrjÁj܆rjÁjê†rjÁjÚ†rjÁj†rjHjцrjsjφrjXandr	†r
jsjφrjHjцrjÁj†r
jÁj4†rjÁjÚ†rjÁj†rjÁjà†rjÁjî†rjHjцrjsjφrjXorr†rjsjφrjHjцrjÁj†rjÁj4†rjÁjÚ†rjÁj†rjHjцrjsj»†rjsX      r†r jXifr!†r"jsX  r#†r$hŒjä†r%jsjφr&htX!=r'†r(jsjφr)jHjцr*jÁj†r+jÁj4†r,jÁjÚ†r-jÁj†r.jHjцr/jsj»†r0jsX        r1†r2hŒXinsertr3†r4jsjφr5hŒXoutr6†r7j©jô†r8jsjφr9j-jI†r:jHjцr;jÁj†r<jÁjÛ†r=jÁjâ†r>jHjцr?j©jô†r@jsjφrAhŒXcase_exprB†rCj©jô†rDjsjφrEjHjцrFjÁj†rGjÁj†rHjHjцrIj©jô†rJjsjφrKhŒXexp_namerL†rMj-jM†rNjsjφrOjXifrP†rQjsjφrRhŒjä†rSjsjφrThtX!=rU†rVjsjφrWjHjцrXjÁj†rYjÁj4†rZjÁjÚ†r[jÁj†r\jHjцr]jsj»†r^jsX      r_†r`jXelsera†rbjsj»†rcjsX        rd†rehŒXbodyrf†rgjsjφrhhtj†rijsjφrjhŒXcase_exprk†rljsj»†rmjsj»†rnjsX      ro†rpjXifrq†rrjsjφrshŒXretrt†rujsj»†rvjsX        rw†rxhŒXbodyry†rzjsjφr{htj†r|jsjφr}hŒX
apply_to_lastr~†rjsjφr€hŒXbodyr†r‚j©jô†rƒjsjφr„hŒXretr…†r†jsj»†r‡jsj»†rˆjsX      r‰†rŠhŒXinsertr‹†rŒjsjφrhŒXoutrކrj©jô†rjsjφr‘hŒXbodyr’†r“jsj»†r”jsj»†r•jsX      r–†r—hŒXoutr˜†r™jsj»†ršjsj»†r›jsX    rœ†rhŒXfirstrž†rŸjsjφr htj†r¡jsjφr¢jDXtruer£†r¤jsj»†r¥jsX    r¦†r§hŒXif_stmr¨†r©jsjφrªhtj†r«jsjφr¬j-jI†r­jHjцr®jÁjà†r¯jÁjî†r°jHjцr±j-jM†r²jsj»†r³jsX    r´†rµjXforr¶†r·jsjφr¸hŒXcondr¹†rºjsjφr»jXinr¼†r½jsjφr¾htjb†r¿hŒXcondsrÀ†rÁjsj»†rÂjsX      rÆrÄhŒXif_condrņrÆjsjφrÇhtj†rÈjsjφrÉhŒXconvert_condrʆrËjsjφrÌhŒXcondr͆rÎjsj»†rÏjsX      rІrÑjXifrÒ†rÓjsjφrÔhŒXfirstrÕ†rÖjsj»†r×jsX        r؆rÙhŒXfirstrÚ†rÛjsjφrÜhtj†rÝjsjφrÞjDXfalser߆ràjsj»†rájsX        râ†rãhŒXinserträ†råjsjφræhŒXif_stmrç†rèj©jô†réjsjφrêhŒXif_condrë†rìj-j¶†ríjŸj`†rîj-jº†rïjsj»†rðjsX        rñ†ròhŒXinsertró†rôjsjφrõhŒXif_stmrö†r÷j©jô†røjsjφrùhŒXif_condrú†rûj-j¶†rüjŸj³
†rýj-jº†rþjsj»†rÿjsX      r†rjXelser†rjsj»†rjsX        r†rhŒXinsertr†rjsjφr	hŒXif_stmr
†rj©jô†rjsjφr
hŒXif_condr†rjsj»†rjsj»†rjsX    r†rhŒXbuildr†rhtjæ†rhŒXgroupr†rjsjφrj-jI†rjsj»†rjsX      r†rhŒXbuildr†rhtjæ†r hŒX
assign_oner!†r"jsjφr#hŒXexp_namer$†r%j©jô†r&jsjφr'hŒXexpr(†r)jsj»†r*jsX      r+†r,hŒXif_stmr-†r.jsj»†r/jsX    r0†r1j-jM†r2jsj»†r3jsj»†r4jsX  r5†r6hÐXclass:r7†r8jsjφr9j-jª†r:hŒXnoder;†r<j-j®†r=jsjφr>jtX=>r?†r@jsj»†rAjsX    rB†rChŒjĆrDj©jô†rEjsjφrFhŒXnamerG†rHj©jô†rIjsjφrJhŒX
parent_valrK†rLj©jô†rMjsjφrNhŒXbodyrO†rPjsjφrQhtj†rRjsjφrShŒXunpackrT†rUjsjφrVhŒXnoderW†rXjsj»†rYjsj»†rZjsX    r[†r\hX(-- split apart properties and statementsr]†r^jsj»†r_jsX    r`†rahŒX
statementsrb†rcjsjφrdhtj†rejsjφrfj-jI†rgj-jM†rhjsj»†rijsX    rj†rkhŒX
propertiesrl†rmjsjφrnhtj†rojsjφrpj-jI†rqj-jM†rrjsj»†rsjsX    rt†rujXforrv†rwjsjφrxhŒXitemry†rzjsjφr{jXinr|†r}jsjφr~htjb†rhŒXbodyr€†rjsj»†r‚jsX      rƒ†r„jXswitchr…†r†jsjφr‡hŒXitemrˆ†r‰j-j¶†rŠjŸj¸†r‹j-jº†rŒjsj»†rjsX        rކrjXwhenr†r‘jsjφr’jHjцr“jÁjÚ†r”jÁjä†r•jÁjÓ†r–jHjцr—jsj»†r˜jsX
          r™†ršhŒXinsertr›†rœjsjφrhŒX
statementsrž†rŸj©jô†r jsjφr¡hŒXitemr¢†r£j-j¶†r¤jŸj`†r¥j-jº†r¦jsj»†r§jsX        r¨†r©jXwhenrª†r«jsjφr¬jHjцr­jÁjâ†r®jÁjÞ†r¯jÁjÕ†r°jÁjâ†r±jÁjÚ†r²jHjцr³jsj»†r´jsX
          rµ†r¶jXforr·†r¸jsjφr¹hŒXtuplerº†r»jsjφr¼jXinr½†r¾jsjφr¿htjb†rÀhŒXitemrÁ†rÂj-j¶†rÃjŸj`†rÄj©jô†rÅj-jº†rÆjsj»†rÇjsX            rȆrÉhŒXinsertrʆrËjsjφrÌhŒX
propertiesr͆rÎj©jô†rÏjsjφrÐhŒXtuplerцrÒjsj»†rÓjsj»†rÔjsX    rÕ†rÖhX-- find constructorr׆rØjsj»†rÙjsX    rÚ†rÛhŒXconstructorr܆rÝjsjφrÞhtj†rßjsjφràjDXnilrá†râjsj»†rãjsX    rä†råhŒX
propertiesræ†rçjsjφrèhtj†réjsjφrêjXforrë†rìjsjφríhŒXtuplerî†rïjsjφrðjXinrñ†ròjsjφróhtjb†rôhŒX
propertiesrõ†röjsj»†r÷jsX      rø†rùjXifrú†rûjsjφrühŒXtuplerý†rþj-j¶†rÿjŸj¸†rj-jº†rjsjφrhtX==r†rjsjφrhŒXconstructor_namer†rjsj»†rjsX        r	†r
hŒXconstructorr†rjsjφr
htj†rjsjφrhŒXtupler†rj-j¶†rjŸj`†rj-jº†rjsj»†rjsX        r†rjDXnilr†rjsj»†rjsX      r†rjXelser†rjsj»†rjsX        r †r!hŒXtupler"†r#jsj»†r$jsj»†r%jsX    r&†r'hŒXparent_cls_namer(†r)jsjφr*htj†r+jsjφr,h¹X	NameProxyr-†r.jsjφr/jHjцr0jÁjâ†r1jÁjê†r2jÁjÞ†r3jÁj†r4jÁj؆r5jÁjä†r6jHjцr7jsj»†r8jsX    r9†r:hŒX	base_namer;†r<jsjφr=htj†r>jsjφr?h¹X	NameProxyr@†rAjsjφrBjHjцrCjÁjð†rDjÁjê†rEjÁjÚ†rFjÁj†rGjHjцrHjsj»†rIjsX    rJ†rKhŒX	self_namerL†rMjsjφrNhtj†rOjsjφrPh¹X	NameProxyrQ†rRjsjφrSjHjцrTjÁjÚ†rUjÁj†rVjÁj4†rWjÁjî†rXjHjцrYjsj»†rZjsX    r[†r\hŒXcls_namer]†r^jsjφr_htj†r`jsjφrah¹X	NameProxyrb†rcjsjφrdjHjцrejÁj܆rfjÁj4†rgjÁjê†rhjÁjÚ†rijÁjÚ†rjjHjцrkjsj»†rljsj»†rmjsX    rn†rojXifrp†rqjsjφrrjXnotrs†rtjsjφruhŒXconstructorrv†rwe(jsj»†rxjsX      ry†rzhŒXconstructorr{†r|jsjφr}htj†r~jsjφrhŒXbuildr€†rhtjæ†r‚hŒXfndefrƒ†r„jsjφr…j-jI†r†jsj»†r‡jsX        rˆ†r‰hÐXargs:rІr‹jsjφrŒj-jI†rj-jI†rŽjHjцrjÁjæ†rjÁjæ†r‘jÁjæ†r’jHjцr“j-jM†r”j-jM†r•jsj»†r–jsX        r—†r˜hÐXarrow:r™†ršjsjφr›jHjцrœjÁjî†rjÁjê†ržjÁjä†rŸjHjцr jsj»†r¡jsX        r¢†r£hÐXbody:r¤†r¥jsjφr¦j-jI†r§jsj»†r¨jsX
          r©†rªhŒXbuildr«†r¬j-j¶†r­jHjцr®jÁjà†r¯jÁjî†r°jHjцr±j-jº†r²jsjφr³j-jI†r´jsj»†rµjsX            r¶†r·hÐXcond:r¸†r¹jsjφrºhŒXparent_cls_namer»†r¼jsj»†r½jsX            r¾†r¿hÐXthen:rÀ†rÁjsjφrÂj-jI†rÃjsj»†rÄjsX              rņrÆhŒXbuildrdžrÈhtjæ†rÉhŒXchainrʆrËjsjφrÌj-jI†rÍjsjφrÎhÐXbase:rφrÐjsjφrÑjHjцrÒjÁjÚ†rÓjÁj0†rÔjÁjâ†rÕjÁj†rÖjÁjÞ†r×jHjцrØj©jô†rÙjsjφrÚj-jI†rÛjHjцrÜjÁj܆rÝjÁjê†rÞjÁj4†rßjÁj4†ràjHjцráj©jô†râjsjφrãj-jI†räjHjцråjÁjæ†ræjÁjæ†rçjÁjæ†rèjHjцréj-jM†rêj-jM†rëjsjφrìj-jM†ríjsj»†rîjsX            rï†rðj-jM†rñjsj»†ròjsX
          ró†rôj-jM†rõjsj»†röjsX        r÷†røj-jM†rùjsj»†rújsX      rû†rüj-jM†rýjsj»†rþjsX    rÿ†rjXelser†rjsj»†rjsX      r†rhŒX
smart_noder†rjsjφrhŒXconstructorr	†r
jsj»†rjsX      r†r
hŒXconstructorr†rhtjæ†rhŒXarrowr†rjsjφrhtj†rjsjφrjHjцrjÁjî†rjÁjê†rjÁjä†rjHjцrjsj»†rjsj»†rjsX    r†rhŒXclsr†r jsjφr!htj†r"jsjφr#hŒXbuildr$†r%htjæ†r&hŒXtabler'†r(jsjφr)j-jI†r*jsj»†r+jsX      r,†r-j-jI†r.jHjцr/jÁjĆr0jÁjĆr1jÁjà†r2jÁj؆r3jÁjà†r4jÁjä†r5jHjцr6j©jô†r7jsjφr8hŒXconstructorr9†r:j-jM†r;jsj»†r<jsX      r=†r>j-jI†r?jHjцr@jÁjĆrAjÁjĆrBjÁjð†rCjÁjê†rDjÁjÚ†rEjÁj†rFjHjцrGj©jô†rHjsjφrIhŒX	base_namerJ†rKj-jM†rLjsj»†rMjsX      rN†rOj-jI†rPjHjцrQjÁjĆrRjÁjĆrSjÁj؆rTjÁjê†rUjÁjÓ†rVjÁj†rWjHjцrXj©jô†rYjsjφrZj-jI†r[jHjцr\jÁjÚ†r]jÁjä†r^jÁjÞ†r_jÁjà†r`jÁj؆rajÁj{†rbjHjцrcj©jô†rdjsjφrejäj²
†rfjÁjцrgjäj²
†rhj©jô†rijsjφrjhŒXnamerk†rlj-jM†rmj-jM†rnjsjφrohX-- "quote the string"rp†rqjsj»†rrjsX      rs†rtj-jI†rujHjцrvjÁjĆrwjÁjĆrxjÁjâ†ryjÁjê†rzjÁjÞ†r{jÁj†r|jÁj؆r}jÁjä†r~jHjцrj©jô†r€jsjφrhŒXparent_cls_namer‚†rƒj-jM†r„jsj»†r…jsX    r††r‡j-jM†rˆjsj»†r‰jsj»†rŠjsX    r‹†rŒhX%-- look up a name in the class objectr†rŽjsj»†rjsX    r†r‘hŒXclass_lookupr’†r“jsjφr”htj†r•jsjφr–hŒXbuildr—†r˜j-j¶†r™jHjцršjÁjà†r›jÁjî†rœjHjцrj-jº†ržjsjφrŸj-jI†r jsj»†r¡jsX      r¢†r£hÐXcond:r¤†r¥jsjφr¦j-jI†r§jHjцr¨jÁj†r©jÁjÛ†rªjÁjâ†r«jHjцr¬j©jô†r­jsjφr®jHjцr¯jÁj~†r°jÁjê†r±jÁj4†r²jHjцr³j©jô†r´jsjφrµjHjцr¶jÁj†r·jÁj†r¸jHjцr¹j©jô†rºjsjφr»jHjцr¼jÁj؆r½jÁjà†r¾jÁj4†r¿jHjцrÀj©jô†rÁjsjφrÂjHjцrÃjÁjê†rÄjÁj؆rÅjÁjL†rÆjHjцrÇj©jô†rÈjsjφrÉhŒXparent_cls_namerʆrËj-jM†rÌjsj»†rÍjsX      rΆrÏhÐXthen:rІrÑjsjφrÒj-jI†rÓjsj»†rÔjsX        rÕ†rÖhŒXparent_cls_namer׆rØhtj#†rÙhŒXindexrÚ†rÛjHjцrÜjÁj؆rÝjÁjê†rÞjÁjÓ†rßjÁj†ràjHjцrájsj»†râjsX      rã†räj-jM†råjsj»†ræjsX    rç†rèj-jM†réjsj»†rêjsX    rë†rìhŒXinsertrí†rîjsjφrïhŒXclass_lookuprð†rñj©jô†ròjsjφrój-jI†rôjHjцrõjÁj†röjÁj4†r÷jÁjÚ†røjÁj†rùjHjцrúj©jô†rûjsjφrüj-jI†rýjHjцrþjÁj~†rÿjÁjê†rjÁj4†rjHjцrj-jM†rj-jM†rjsj»†rjsj»†rjsX    r†rhŒXcls_mtr	†r
jsjφrhtj†rjsjφr
hŒXbuildr†rhtjæ†rhŒXtabler†rjsjφrj-jI†rjsj»†rjsX      r†rj-jI†rjHjцrjÁjĆrjÁjĆrjÁjà†rjÁj؆rjÁjL†rjÁj†rjÁjÛ†r jHjцr!j©jô†r"jsjφr#hŒXbuildr$†r%htjæ†r&hŒXfndefr'†r(jsjφr)j-jI†r*jsj»†r+jsX        r,†r-hÐXargs:r.†r/jsjφr0j-jI†r1j-jI†r2jHjцr3jÁj܆r4jÁj4†r5jÁjÚ†r6jHjцr7j-jM†r8j©jô†r9jsjφr:j-jI†r;jHjцr<jÁj؆r=jÁjê†r>jÁjÓ†r?jÁj†r@jHjцrAj-jM†rBj-jM†rCjsj»†rDjsX        rE†rFhÐXbody:rG†rHjsjφrIj-jI†rJjsj»†rKjsX
          rL†rMhŒXbuildrN†rOhtjæ†rPhŒX
assign_onerQ†rRjsjφrSh¹X	LocalNamerT†rUjHjцrVjÁj~†rWjÁjê†rXjÁj4†rYjHjцrZj©jô†r[jsjφr\hŒXbuildr]†r^htjæ†r_hŒXchainr`†rajsjφrbj-jI†rcjsj»†rdjsX            re†rfhÐXbase:rg†rhjsjφrijHjцrjjÁjÞ†rkjÁjê†rljÁjw†rmjÁj{†rnjÁj†rojÁjä†rpjHjцrqj©jô†rrjsjφrsj-jI†rtjHjцrujÁj܆rvjÁjê†rwjÁj4†rxjÁj4†ryjHjцrzj©jô†r{jsjφr|j-jI†r}hŒX	base_namer~†rj©jô†r€jsjφrjHjцr‚jÁj؆rƒjÁjê†r„jÁjÓ†r…jÁj†r†jHjцr‡j-jM†rˆj-jM†r‰jsj»†rŠjsX
          r‹†rŒj-jM†rjsj»†rŽjsX
          r†rhŒXclass_lookupr‘†r’jsj»†r“jsX        r”†r•j-jM†r–jsj»†r—jsX      r˜†r™j-jM†ršj-jM†r›jsj»†rœjsX      r†ržj-jI†rŸjHjцr jÁjĆr¡jÁjĆr¢jÁj܆r£jÁjê†r¤jÁj4†r¥jÁj4†r¦jHjцr§j©jô†r¨jsjφr©hŒXbuildrª†r«htjæ†r¬hŒXfndefr­†r®jsjφr¯j-jI†r°jsj»†r±jsX        r²†r³hÐXargs:r´†rµjsjφr¶j-jI†r·j-jI†r¸jHjцr¹jÁj܆rºjÁj4†r»jÁjÚ†r¼jHjцr½j-jM†r¾j©jô†r¿jsjφrÀj-jI†rÁjHjцrÂjÁjæ†rÃjÁjæ†rÄjÁjæ†rÅjHjцrÆj-jM†rÇj-jM†rÈjsj»†rÉjsX        rʆrËhÐXbody:r̆rÍjsjφrÎj-jI†rÏjsj»†rÐjsX
          rцrÒhŒXbuildrÓ†rÔhtjæ†rÕhŒX
assign_onerÖ†r×jsjφrØhŒX	self_namerÙ†rÚj©jô†rÛjsjφrÜhŒXbuildr݆rÞhtjæ†rßhŒXchainrà†rájsjφrâj-jI†rãjsj»†räjsX            rå†ræhÐXbase:rç†rèjsjφréjHjцrêjÁjÚ†rëjÁj†rìjÁjä†ríjÁjÓ†rîjÁj†rïjÁjä†rðjÁjê†rñjÁjä†ròjÁjê†rójÁjð†rôjÁj4†rõjÁj†röjHjцr÷jsj»†røjsX            rù†rúj-jI†rûjHjцrüjÁj܆rýjÁjê†rþjÁj4†rÿjÁj4†rjHjцrj©jô†rjsjφrj-jI†rjHjцrjÁjI†rjÁjM†rjHjцrj©jô†r	jsjφr
hŒX	base_namer†rj-jM†r
j-jM†rjsj»†rjsX
          r†rj-jM†rjsj»†rjsX
          r†rhŒXbuildr†rhtjæ†rhŒXchainr†rjsjφrj-jI†rjsj»†rjsX            r†rhÐXbase:r †r!jsjφr"jHjцr#jÁj܆r$jÁj4†r%jÁjÚ†r&jÁjæ†r'jÁjĆr(jÁjĆr)jÁjà†r*jÁj؆r+jÁjà†r,jÁjä†r-jHjцr.jsj»†r/jsX            r0†r1j-jI†r2jHjцr3jÁj܆r4jÁjê†r5jÁj4†r6jÁj4†r7jHjцr8j©jô†r9jsjφr:j-jI†r;hŒX	self_namer<†r=j©jô†r>jsjφr?jHjцr@jÁjæ†rAjÁjæ†rBjÁjæ†rCjHjцrDj-jM†rEj-jM†rFjsj»†rGjsX
          rH†rIj-jM†rJjsj»†rKjsX
          rL†rMhŒX	self_namerN†rOjsj»†rPjsX        rQ†rRj-jM†rSjsj»†rTjsX      rU†rVj-jM†rWj-jM†rXjsj»†rYjsX    rZ†r[j-jM†r\jsj»†r]jsj»†r^jsX    r_†r`hŒXclsra†rbjsjφrchtj†rdjsjφrehŒXbuildrf†rghtjæ†rhhŒXchainri†rjjsjφrkj-jI†rljsj»†rmjsX      rn†rohÐXbase:rp†rqjsjφrrjHjцrsjÁjÚ†rtjÁj†rujÁjä†rvjÁjÓ†rwjÁj†rxjÁjä†ryjÁjê†rzjÁjä†r{jÁjê†r|jÁjð†r}jÁj4†r~jÁj†rjHjцr€jsj»†rjsX      r‚†rƒj-jI†r„jHjцr…jÁj܆r†jÁjê†r‡jÁj4†rˆjÁj4†r‰jHjцrŠj©jô†r‹jsjφrŒj-jI†rhŒXclsrކrj©jô†rjsjφr‘hŒXcls_mtr’†r“j-jM†r”j-jM†r•jsj»†r–jsX    r—†r˜j-jM†r™jsj»†ršjsj»†r›jsX    rœ†rhŒXvaluerž†rŸjsjφr htj†r¡jsjφr¢jDXnilr£†r¤jsj»†r¥jsX    r¦†r§jXwithr¨†r©jsjφrªhŒXbuildr«†r¬jsj»†r­jsX      r®†r¯hŒXvaluer°†r±jsjφr²htj†r³jsjφr´htjæ†rµhŒX	block_expr¶†r·jsjφr¸j-jI†r¹jsj»†rºjsX        r»†r¼h¹XRunr½†r¾jsjφr¿jtX=>rÀ†rÁjsj»†rÂjsX
          rÆrÄhÝX@setrņrÆjsjφrÇjHjцrÈjÁjÚ†rÉjÁj0†rÊjÁjâ†rËjÁj†rÌjÁjÞ†rÍjHjцrÎj©jô†rÏjsjφrÐj-jª†rÑhŒXblockrÒ†rÓj©jô†rÔjsjφrÕhŒXchainrÖ†r×j-j®†rØjsjφrÙjtX->rÚ†rÛjsj»†rÜjsX            r݆rÞjXifr߆ràjsjφráhŒXchainrâ†rãjsj»†räjsX              rå†ræhŒXslicerç†rèjsjφréhtj†rêjsjφrëj-j¶†rìhŒXitemrí†rîjsjφrïjXforrð†rñjsjφròhŒXitemró†rôjsjφrõjXinrö†r÷jsjφrøhtjb†rùhŒXchainrú†rûj-j¶†rüjŸj³
†rýj©jô†rþj-jº†rÿj-jº†rjsj»†rjsX              r†rhŒX	new_chainr†rjsjφrhtj†rjsjφrj-jI†r	jHjцr
jÁj܆rjÁj	†rjÁjê†r
jÁjà†rjÁj؆rjHjцrj©jô†rjsjφrhŒXparent_cls_namer†rj-jM†rjsj»†rjsj»†rjsX              r†rhŒXheadr†rjsjφrhtj†rjsjφrhŒXslicer†r j-j¶†r!jŸj¸†r"j-jº†r#jsj»†r$jsj»†r%jsX              r&†r'jXifr(†r)jsjφr*hŒXheadr+†r,jsjφr-htX==r.†r/jsjφr0jDXnilr1†r2jsj»†r3jsX                r4†r5jXreturnr6†r7jsjφr8hŒXparent_cls_namer9†r:jsj»†r;jsj»†r<jsX              r=†r>jXswitchr?†r@jsjφrAhŒXheadrB†rCj-j¶†rDjŸj¸†rEj-jº†rFjsj»†rGjsX                rH†rIhX9-- calling super, inject calling name and self into chainrJ†rKjsj»†rLjsX                rM†rNjXwhenrO†rPjsjφrQjHjцrRjÁj܆rSjÁjê†rTjÁj4†rUjÁj4†rVjHjцrWjsj»†rXjsX                  rY†rZhŒXcalling_namer[†r\jsjφr]htj†r^jsjφr_hŒXblockr`†rahtj#†rbhŒXgetrc†rdjHjцrejÁj܆rfjÁj0†rgjÁjÞ†rhjÁjÞ†rijÁj†rjjÁj؆rkjÁjä†rljÁjĆrmjÁjð†rnjÁj4†rojÁjÕ†rpjÁj܆rqjÁjY	†rrjHjцrsjsj»†rtjsX                  ru†rvhŒXslicerw†rxj-j¶†ryjŸj¸†rzj-jº†r{jsjφr|htj†r}jsjφr~j-jI†rjHjцr€jÁj܆rjÁjê†r‚jÁj4†rƒjÁj4†r„jHjцr…j©jô†r†jsjφr‡j-jI†rˆjHjцr‰jÁjÚ†rŠjÁj†r‹jÁj4†rŒjÁjî†rjHjцrŽj©jô†rjsjφrhŒXunpackr‘†r’jsjφr“hŒXheadr”†r•j-j¶†r–jŸj`†r—j-jº†r˜j-jM†r™j-jM†ršjsj»†r›jsX                  rœ†rhŒXactrž†rŸjsjφr htj†r¡jsjφr¢jXifr£†r¤jsjφr¥hŒXntyper¦†r§j-jª†r¨hŒXcalling_namer©†rªj-j®†r«jsjφr¬htX!=r­†r®jsjφr¯jHjцr°jÁj~†r±jÁjê†r²jÁj4†r³jÁj0†r´jÁj†rµjHjцr¶jsjφr·jXthenr¸†r¹jsjφrºjHjцr»jÁjà†r¼jÁj؆r½jÁjL†r¾jÁj†r¿jÁjÛ†rÀjHjцrÁjsjφrÂjXelserÆrÄjsjφrÅjHjцrÆjÁjL†rÇjÁjÕ†rÈjÁjä†rÉjHjцrÊjsj»†rËjsX                  r̆rÍhŒXinsertrΆrÏjsjφrÐhŒX	new_chainrцrÒj©jô†rÓjsjφrÔj-jI†rÕhŒXactrÖ†r×j©jô†rØjsjφrÙhŒXcalling_namerÚ†rÛj-jM†rÜjsj»†rÝjsj»†rÞjsX                r߆ràhX<-- colon call on super, replace class with self as first argrá†râjsj»†rãjsX                rä†råjXwhenræ†rçjsjφrèjHjцréjÁj܆rêjÁjÕ†rëjÁj4†rìjÁjÕ†ríjÁj؆rîjHjцrïjsj»†rðjsX                  rñ†ròhŒXcallró†rôjsjφrõhtj†röjsjφr÷hŒXheadrø†rùj-j¶†rújŸj³
†rûj-jº†rüjsj»†rýjsX                  rþ†rÿhŒXinsertr†rjsjφrhŒX	new_chainr†rj©jô†rjsjφrj-jI†rjHjцrjÁjL†r	jÁjÕ†r
jÁjä†rjHjцrj©jô†r
jsjφrhŒXheadr†rj-j¶†rjŸj`†rj-jº†rj-jM†rjsj»†rjsX                  r†rhŒXslicer†rj-j¶†rjŸj¸†rj-jº†rjsjφrhtj†rjsjφrj-jI†r jsjφr!jHjцr"jÁj܆r#jÁjê†r$jÁj4†r%jÁj4†r&jHjцr'j©jô†r(jsjφr)j-jI†r*jsjφr+jHjцr,jÁjÚ†r-jÁj†r.jÁj4†r/jÁjî†r0jHjцr1j©jô†r2jsjφr3hŒXunpackr4†r5e(jsjφr6hŒXcallr7†r8j-j¶†r9jŸj`†r:j-jº†r;jsjφr<j-jM†r=jsjφr>j-jM†r?jsj»†r@jsj»†rAjsX              rB†rChŒXinsertrD†rEjsjφrFhŒX	new_chainrG†rHj©jô†rIjsjφrJhŒXitemrK†rLjsjφrMjXforrN†rOjsjφrPhŒXitemrQ†rRjsjφrSjXinrT†rUjsjφrVhtjb†rWhŒXslicerX†rYjsj»†rZjsj»†r[jsX              r\†r]hŒX	new_chainr^†r_jsj»†r`jsX            ra†rbjXelserc†rdjsj»†rejsX              rf†rghŒXparent_cls_namerh†rijsj»†rjjsj»†rkjsX        rl†rmhtjæ†rnhŒX
assign_onero†rpjsjφrqhŒXparent_cls_namerr†rsj©jô†rtjsjφruhŒX
parent_valrv†rwjsjφrxhtX==ry†rzjsjφr{jHjцr|jHjцr}jsjφr~jXandr†r€jsjφrjHjцr‚jÁj؆rƒjÁjà†r„jÁj4†r…jHjцr†jsjφr‡jXorrˆ†r‰jsjφrŠhŒX
parent_valr‹†rŒjsj»†rjsX        rކrhtjæ†rhŒX
assign_oner‘†r’jsjφr“hŒX	base_namer”†r•j©jô†r–jsjφr—j-jI†r˜jHjцr™jÁjä†ršjÁjê†r›jÁjð†rœjÁj4†rjÁj†ržjHjцrŸj©jô†r jsjφr¡hŒX
propertiesr¢†r£j-jM†r¤jsj»†r¥jsX        r¦†r§htjæ†r¨hŒX
assign_oner©†rªjsjφr«hŒX	base_namer¬†r­htj#†r®hŒXchainr¯†r°jHjцr±jÁjĆr²jÁjĆr³jÁjà†r´jÁj؆rµjÁjL†r¶jÁj†r·jÁjÛ†r¸jHjцr¹j©jô†rºjsjφr»hŒX	base_namer¼†r½jsj»†r¾jsj»†r¿jsX        rÀ†rÁhŒXbuildr†rÃj-j¶†rÄjHjцrÅjÁjà†rÆjÁjî†rÇjHjцrÈj-jº†rÉjsjφrÊj-jI†rËjsj»†rÌjsX
          r͆rÎhÐXcond:rφrÐjsjφrÑhŒXparent_cls_namerÒ†rÓjsj»†rÔjsX
          rÕ†rÖhÐXthen:r׆rØjsjφrÙj-jI†rÚjsj»†rÛjsX            r܆rÝhtjæ†rÞhŒXchainr߆ràjsjφráj-jI†râjsj»†rãjsX              rä†råhÐXbase:ræ†rçjsjφrèjHjцréjÁjÚ†rêjÁj†rëjÁjä†rìjÁjÓ†ríjÁj†rîjÁjä†rïjÁjê†rðjÁjä†rñjÁjê†ròjÁjð†rójÁj4†rôjÁj†rõjHjцröjsj»†r÷jsX              rø†rùj-jI†rújHjцrûjÁj܆rüjÁjê†rýjÁj4†rþjÁj4†rÿjHjцrj©jô†rjsjφrj-jI†rjsj»†rjsX                r†rhŒX	base_namer†rj©jô†r	jsj»†r
jsX                r†rhtjæ†r
hŒXchainr†rjsjφrj-jI†rjsjφrhÐXbase:r†rjsjφrhŒXparent_cls_namer†rj©jô†rjsX  r†rj-jI†rjHjцrjÁjL†rjÁjÕ†rjÁjä†rjHjцr j©jô†r!jsjφr"jHjцr#jÁjĆr$jÁjĆr%jÁjð†r&jÁjê†r'jÁjÚ†r(jÁj†r)jHjцr*j-jM†r+j-jM†r,jsj»†r-jsX              r.†r/j-jM†r0j-jM†r1jsj»†r2jsX            r3†r4j-jM†r5jsj»†r6jsX
          r7†r8j-jM†r9jsj»†r:jsX        r;†r<j-jM†r=jsj»†r>jsj»†r?jsX        r@†rAhtjæ†rBhŒX
assign_onerC†rDjsjφrEhŒXcls_namerF†rGj©jô†rHjsjφrIhŒXclsrJ†rKjsj»†rLjsX        rM†rNhtjæ†rOhŒX
assign_onerP†rQjsjφrRhŒX	base_namerS†rThtj#†rUhŒXchainrV†rWjHjцrXjÁjĆrYjÁjĆrZjÁj܆r[jÁj4†r\jÁjê†r]jÁjÚ†r^jÁjÚ†r_jHjцr`j©jô†rajsjφrbhŒXcls_namerc†rdjsj»†rejsj»†rfjsX        rg†rhhtjæ†rihŒXgrouprj†rkjsjφrljXifrm†rnjsjφrohtj †rphŒX
statementsrq†rrjsjφrshtj†rtjsjφrujŸj”†rvjsjφrwj-jI†rxjsj»†ryjsX
          rz†r{htjæ†r|hŒX
assign_oner}†r~jsjφrh¹X	LocalNamer€†rjHjцr‚jÁjÚ†rƒjÁj†r„jÁj4†r…jÁjî†r†jHjцr‡j©jô†rˆjsjφr‰hŒXcls_namerІr‹jsj»†rŒjsX
          r†rŽhtjæ†rhŒXgroupr†r‘jsjφr’hŒX
statementsr“†r”jsj»†r•jsX        r–†r—j-jM†r˜jsjφr™jXelserš†r›jsjφrœj-jI†rj-jM†ržjsj»†rŸjsj»†r jsX        r¡†r¢hŒXcls_namer£†r¤jsj»†r¥jsX      r¦†r§j-jM†r¨jsj»†r©jsj»†rªjsX      r«†r¬hŒXvaluer­†r®jsjφr¯htj†r°jsjφr±htjæ†r²hŒXgroupr³†r´jsjφrµj-jI†r¶jsj»†r·jsX        r¸†r¹htjæ†rºhŒXdeclarer»†r¼jsjφr½hÐXnames:r¾†r¿jsjφrÀj-jI†rÁhŒXnamer†rÃj-jM†rÄjsj»†rÅjsX        rƆrÇhtjæ†rÈhŒXassignrɆrÊjsjφrËj-jI†rÌjsj»†rÍjsX
          rΆrÏhÐXnames:rІrÑjsjφrÒj-jI†rÓhŒXnamerÔ†rÕj-jM†rÖjsj»†r×jsX
          r؆rÙhÐXvalues:rÚ†rÛjsjφrÜj-jI†rÝhŒXvaluerÞ†rßj-jM†ràjsj»†rájsX        râ†rãj-jM†räjsj»†råjsX      ræ†rçj-jM†rèjsj»†réjsj»†rêjsX    rë†rìhŒXvaluerí†rîjsj»†rïj-jM†rðjsj»†rñjsj»†ròjXclassró†rôjsjφrõh¹XAccumulatorrö†r÷jsj»†røjsX  rù†rúhÐX	body_idx:rû†rüjsjφrýj-jI†rþjsjφrÿhÐXfor:r†rjsjφrjŸjØ
†rj©jô†rjsjφrhÐXwhile:r†rjsjφrjŸj³
†r	j©jô†r
jsjφrhÐXforeach:r†r
jsjφrjŸjØ
†rjsjφrj-jM†rjsj»†rjsj»†rjsX  r†rhÐXnew:r†rjsjφrjtX=>r†rjsj»†rjsX    r†rhÝX@accum_namer†rjsjφr htj†r!jsjφr"h¹X	NameProxyr#†r$jsjφr%jHjцr&jÁjê†r'jÁj܆r(jÁj܆r)jÁj0†r*jÁjÓ†r+jHjцr,jsj»†r-jsX    r.†r/hÝX@value_namer0†r1jsjφr2htj†r3jsjφr4h¹X	NameProxyr5†r6jsjφr7jHjцr8jÁj~†r9jÁjê†r:jÁj4†r;jÁj0†r<jÁj†r=jHjцr>jsj»†r?jsX    r@†rAhÝX	@len_namerB†rCjsjφrDhtj†rEjsjφrFh¹X	NameProxyrG†rHjsjφrIjHjцrJjÁj4†rKjÁj†rLjÁj؆rMjHjцrNjsj»†rOjsj»†rPjsX  rQ†rRhX-- wraps node and mutates bodyrS†rTjsj»†rUjsX  rV†rWhÐXconvert:rX†rYjsjφrZj-jª†r[hŒXnoder\†r]j-j®†r^jsjφr_jtX=>r`†rajsj»†rbjsX    rc†rdhŒXindexre†rfjsjφrghtj†rhjsjφrihÝX	@body_idxrj†rkj-j¶†rlhŒXntyperm†rnjsjφrohŒXnoderp†rqj-jº†rrjsj»†rsjsX    rt†ruhŒXnoderv†rwj-j¶†rxhŒXindexry†rzj-jº†r{jsjφr|htj†r}jsjφr~hÝX@mutate_bodyr†r€jsjφrhŒXnoder‚†rƒj-j¶†r„hŒXindexr…†r†j-jº†r‡jsj»†rˆjsX    r‰†rŠhÝX@wrapr‹†rŒjsjφrhŒXnoderކrjsj»†rjsj»†r‘jsX  r’†r“hX!-- wrap the node into a block_expr”†r•jsj»†r–jsX  r—†r˜hÐXwrap:r™†ršjsjφr›j-jª†rœhŒXnoder†ržj-j®†rŸjsjφr jtX=>r¡†r¢jsj»†r£jsX    r¤†r¥hŒXbuildr¦†r§htjæ†r¨hŒX	block_expr©†rªjsjφr«j-jI†r¬jsj»†r­jsX      r®†r¯hŒXbuildr°†r±htjæ†r²hŒX
assign_oner³†r´jsjφrµhÝX@accum_namer¶†r·j©jô†r¸jsjφr¹hŒXbuildrº†r»htjæ†r¼hŒXtabler½†r¾htX!r¿†rÀjsj»†rÁjsX      r†rÃhŒXbuildrĆrÅhtjæ†rÆhŒX
assign_onerdžrÈjsjφrÉhÝX	@len_namerʆrËj©jô†rÌjsjφrÍjŸj”†rÎjsj»†rÏjsX      rІrÑhŒXnoderÒ†rÓjsj»†rÔjsX      rÕ†rÖhÝX@accum_namer׆rØjsj»†rÙjsX    rÚ†rÛj-jM†rÜjsj»†rÝjsj»†rÞjsX  r߆ràhXK-- mutates the body of a loop construct to save last value into accumulatorrá†râjsj»†rãjsX  rä†råhX"-- can optionally skip nil resultsræ†rçjsj»†rèjsX  ré†rêhÐXmutate_body:rë†rìjsjφríj-jª†rîhŒXbodyrï†rðj©jô†rñjsjφròhŒXskip_nilró†rôhtj†rõjDXtruerö†r÷j-j®†røjsjφrùjtX=>rú†rûjsj»†rüjsX    rý†rþhŒXvalrÿ†rjsjφrhtj†rjsjφrjXifr†rjsjφrjXnotr†rjsjφr	hŒXskip_nilr
†rjsjφrjXandr
†rjsjφrhŒXis_singularr†rjsjφrhŒXbodyr†rjsj»†rjsX      r†rjXwithr†rjsjφrhŒXbodyr†rj-j¶†rjŸj¸†rj-jº†rjsj»†r jsX        r!†r"hŒXbodyr#†r$jsjφr%htj†r&jsjφr'j-jI†r(j-jM†r)jsj»†r*jsX    r+†r,jXelser-†r.jsj»†r/jsX      r0†r1hŒXbodyr2†r3jsjφr4htj†r5jsjφr6hŒX
apply_to_lastr7†r8jsjφr9hŒXbodyr:†r;j©jô†r<jsjφr=j-jª†r>hŒj؆r?j-j®†r@jsjφrAjtX->rB†rCjsj»†rDjsX        rE†rFhŒXbuildrG†rHhtjæ†rIhŒX
assign_onerJ†rKjsjφrLhÝX@value_namerM†rNj©jô†rOjsjφrPhŒj؆rQjsj»†rRjsX      rS†rThÝX@value_namerU†rVjsj»†rWjsj»†rXjsX    rY†rZhŒXupdater[†r\jsjφr]htj†r^jsjφr_j-jI†r`jsj»†rajsX      rb†rcj-jI†rdjHjцrejÁj0†rfjÁjâ†rgjÁjL†rhjÁjê†rijÁjä†rjjÁj†rkjHjцrlj©jô†rmjsjφrnhÝX	@len_namero†rpj©jô†rqjsjφrrjHjцrsjÁj^†rtjÁj†rujHjцrvj©jô†rwjsjφrxjŸj¸†ryj-jM†rzjsj»†r{jsX      r|†r}hŒXbuildr~†rhtjæ†r€hŒX
assign_oner†r‚jsjφrƒhÝX@accum_namer„†r…htj#†r†hŒXindexr‡†rˆj-jª†r‰hÝX	@len_namerІr‹j-j®†rŒj©jô†rjsjφrŽhŒXvalr†rjsj»†r‘jsX    r’†r“j-jM†r”jsj»†r•jsj»†r–jsX    r—†r˜jXifr™†ršjsjφr›hŒXskip_nilrœ†rjsj»†ržjsX      rŸ†r jEXtable.insertr¡†r¢jsjφr£hŒXbodyr¤†r¥j©jô†r¦jsjφr§hŒXbuildr¨†r©j-j¶†rªjHjцr«jÁjà†r¬jÁjî†r­jHjцr®j-jº†r¯jsjφr°j-jI†r±jsj»†r²jsX        r³†r´hÐXcond:rµ†r¶jsjφr·j-jI†r¸jHjцr¹jÁj†rºjÁjÛ†r»jÁjâ†r¼jHjцr½j©jô†r¾jsjφr¿hÝX@value_namerÀ†rÁj©jô†rÂjsjφrÃjHjцrÄjÁj¿†rÅjÁj†rÆjHjцrÇj©jô†rÈjsjφrÉjHjцrÊjÁj؆rËjÁjà†rÌjÁj4†rÍjHjцrÎj-jM†rÏjsj»†rÐjsX        rцrÒhÐXthen:rÓ†rÔjsjφrÕhŒXupdaterÖ†r×jsj»†rØjsX      rÙ†rÚj-jM†rÛjsj»†rÜjsX    r݆rÞjXelser߆ràjsj»†rájsX      râ†rãjEXtable.inserträ†råjsjφræhŒXbodyrç†rèj©jô†réjsjφrêhŒXbuildrë†rìhtjæ†ríhŒXgrouprî†rïjsjφrðhŒXupdaterñ†ròjsj»†rójsj»†rôjsX    rõ†röhŒXbodyr÷†røjsj»†rùjsj»†rúhŒXdefault_accumulatorrû†rüjsjφrýhtj†rþjsjφrÿj-jª†rhŒXnoder†rj-j®†rjsjφrjtX=>r†rjsj»†rjsX  r†r	h¹XAccumulatorr
†rhtj¿†rhtj#†r
hŒXconvertr†rjsjφrhŒXnoder†rjsj»†rjsj»†rjsj»†rhŒXimplicitly_returnr†rjsjφrhtj†rjsjφrj-jª†rhŒXscoper†rj-j®†rjsjφrjtX->r †r!jsj»†r"jsX  r#†r$hŒXfnr%†r&jsjφr'htj†r(jsjφr)j-jª†r*hŒXstmr+†r,j-j®†r-jsjφr.jtX->r/†r0jsj»†r1jsX    r2†r3hŒjä†r4jsjφr5htj†r6jsjφr7hŒXntyper8†r9jsjφr:hŒXstmr;†r<jsj»†r=jsX    r>†r?jXifr@†rAjsjφrBhŒXtypesrC†rDhtjæ†rEhŒX
manual_returnrF†rGj-j¶†rHhŒjä†rIj-jº†rJjsjφrKjXorrL†rMjsjφrNjXnotrO†rPjsjφrQhŒXtypesrR†rShtjæ†rThŒXis_valuerU†rVjsjφrWhŒXstmrX†rYjsj»†rZjsX      r[†r\hŒXstmr]†r^jsj»†r_jsX    r`†rajXelseifrb†rcjsjφrdhŒXtypesre†rfhtjæ†rghŒX	cascadingrh†rij-j¶†rjhŒjä†rkj-jº†rljsj»†rmjsX      rn†rohŒXscoperp†rqhtjæ†rrhŒX	transformrs†rthtjæ†ruhŒX	statementrv†rwjsjφrxhŒXstmry†rzj©jô†r{jsjφr|hŒXfnr}†r~jsj»†rjsX    r€†rjXelser‚†rƒjsj»†r„jsX      r…†r†jXifr‡†rˆjsjφr‰hŒjä†rŠjsjφr‹htX==rŒ†rjsjφrŽjHjцrjÁj܆rjÁjÕ†r‘jÁjÓ†r’jÁjâ†r“jÁjÞ†r”jÁj†r•jÁj	†r–jÁj†r—jÁj؆r˜jÁjÚ†r™jÁjà†ršjÁjÕ†r›jÁj؆rœjHjцrjsjφržjXandrŸ†r jsjφr¡jXnotr¢†r£jsjφr¤hŒXtypesr¥†r¦htjæ†r§hŒXcomprehension_has_valuer¨†r©jsjφrªhŒXstmr«†r¬jsj»†r­jsX        r®†r¯hŒXstmr°†r±jsj»†r²jsX      r³†r´jXelserµ†r¶jsj»†r·jsX        r¸†r¹j-jI†rºjHjцr»jÁjÞ†r¼jÁj†r½jÁjä†r¾jÁj0†r¿jÁjÞ†rÀjÁj؆rÁjHjцrÂj©jô†rÃjsjφrÄhŒXstmrņrÆj-jM†rÇjsj»†rÈjsj»†rÉjsX  rʆrËhŒXfnr̆rÍjsj»†rÎjsj»†rÏh¹XValuerІrÑjsjφrÒhtj†rÓjsjφrÔh¹XTransformerrÕ†rÖjsjφr×j-jI†rØjsj»†rÙjsX  rÚ†rÛhÐXfor:r܆rÝjsjφrÞhŒXdefault_accumulatorr߆ràjsj»†rájsX  râ†rãhÐXwhile:rä†råjsjφræhŒXdefault_accumulatorrç†rèjsj»†réjsX  rê†rëhÐXforeach:rì†ríjsjφrîhŒXdefault_accumulatorrï†rðjsj»†rñjsj»†ròjsX  ró†rôhÐXcomprehension:rõ†röjsjφr÷j-jª†røhŒXnoderù†rúj-j®†rûjsjφrüjtX=>rý†rþjsj»†rÿjsX    r†rhŒjê†rjsjφrhtj†rjsjφrh¹XAccumulatorr†rhtj¿†rjsj»†r	jsX    r
†rhŒXnoder†r
jsjφrhtj†rjsjφrhÝX
@transformr†rhtjæ†rhŒX	statementr†rjsjφrhŒXnoder†rj©jô†rjsjφrj-jª†rhŒXexpr†rj-j®†rjsjφrjtX->r †r!jsj»†r"jsX      r#†r$hŒjê†r%htj#†r&hŒXmutate_bodyr'†r(jsjφr)j-jI†r*hŒXexpr+†r,j-jM†r-j©jô†r.jsjφr/jDXfalser0†r1jsj»†r2jsX    r3†r4hŒjê†r5htj#†r6hŒXwrapr7†r8jsjφr9hŒXnoder:†r;jsj»†r<jsj»†r=jsX  r>†r?hÐXtblcomprehension:r@†rAjsjφrBj-jª†rChŒXnoderD†rEj-j®†rFjsjφrGjtX=>rH†rIjsj»†rJjsX    rK†rLhŒjĆrMj©jô†rNjsjφrOhŒXkey_exprP†rQj©jô†rRjsjφrShŒX	value_exprT†rUj©jô†rVjsjφrWhŒXclausesrX†rYjsjφrZhtj†r[jsjφr\hŒXunpackr]†r^jsjφr_hŒXnoder`†rajsj»†rbjsj»†rcjsX    rd†rehŒXaccumrf†rgjsjφrhhtj†rijsjφrjh¹X	NameProxyrk†rle(jsjφrmjHjцrnjÁjä†rojÁjð†rpjÁj4†rqjHjцrrjsj»†rsjsX    rt†ruhŒXdestrv†rwjsjφrxhtj†ryjsjφrzhŒXbuildr{†r|htjæ†r}hŒXchainr~†rjsjφr€j-jI†rjsjφr‚hÐXbase:rƒ†r„jsjφr…hŒXaccumr††r‡j©jô†rˆjsjφr‰j-jI†rŠjHjцr‹jÁjà†rŒjÁj؆rjÁjL†rŽjÁj†rjÁjÛ†rjHjцr‘j©jô†r’jsjφr“hŒXkey_expr”†r•j-jM†r–jsjφr—j-jM†r˜jsj»†r™jsX    rš†r›hŒXinnerrœ†rjsjφržhtj†rŸjsjφr hŒXbuildr¡†r¢htjæ†r£hŒX
assign_oner¤†r¥jsjφr¦hŒXdestr§†r¨j©jô†r©jsjφrªhŒX	value_expr«†r¬jsj»†r­jsj»†r®jsX    r¯†r°hŒXbuildr±†r²htjæ†r³hŒX	block_expr´†rµjsjφr¶j-jI†r·jsj»†r¸jsX      r¹†rºhŒXbuildr»†r¼htjæ†r½hŒX
assign_oner¾†r¿jsjφrÀhŒXaccumrÁ†rÂj©jô†rÃjsjφrÄhŒXbuildrņrÆhtjæ†rÇhŒXtablerȆrÉhtj¿†rÊjsj»†rËjsX      r̆rÍhŒXconstruct_comprehensionrΆrÏjsjφrÐj-jI†rÑhŒXinnerrÒ†rÓj-jM†rÔj©jô†rÕjsjφrÖhŒXclausesr׆rØjsj»†rÙjsX      rÚ†rÛhŒXaccumr܆rÝjsj»†rÞjsX    r߆ràj-jM†rájsj»†râjsj»†rãjsX  rä†råhÐXfndef:ræ†rçjsjφrèj-jª†réhŒXnoderê†rëj-j®†rìjsjφríjtX=>rî†rïjsj»†rðjsX    rñ†ròhŒX
smart_noderó†rôjsjφrõhŒXnoderö†r÷jsj»†røjsX    rù†rúhŒXnoderû†rühtjæ†rýhŒXbodyrþ†rÿjsjφrhtj†rjsjφrhŒX
apply_to_lastr†rjsjφrhŒXnoder†rhtjæ†rhŒXbodyr	†r
j©jô†rjsjφrhŒXimplicitly_returnr
†rjsjφrjJXselfr†rjsj»†rjsX    r†rhŒXnoder†rjsj»†rjsj»†rjsX  r†rhÐXif:r†rjsjφrj-jª†rhŒXnoder†r j-j®†r!jsjφr"jtX=>r#†r$jsjφr%hŒXbuildr&†r'htjæ†r(hŒX	block_expr)†r*jsjφr+j-jI†r,jsjφr-hŒXnoder.†r/jsjφr0j-jM†r1jsj»†r2jsX  r3†r4hÐXwith:r5†r6jsjφr7j-jª†r8hŒXnoder9†r:j-j®†r;jsjφr<jtX=>r=†r>jsjφr?hŒXbuildr@†rAhtjæ†rBhŒX	block_exprC†rDjsjφrEj-jI†rFjsjφrGhŒXnoderH†rIjsjφrJj-jM†rKjsj»†rLjsX  rM†rNhÐXswitch:rO†rPjsjφrQj-jª†rRhŒXnoderS†rTj-j®†rUjsjφrVjtX=>rW†rXjsj»†rYjsX    rZ†r[hŒXbuildr\†r]htjæ†r^hŒX	block_expr_†r`jsjφraj-jI†rbjsjφrchŒXnoderd†rejsjφrfj-jM†rgjsj»†rhjsj»†rijsX  rj†rkhX-- pull out colon chainrl†rmjsj»†rnjsX  ro†rphÐXchain:rq†rrjsjφrsj-jª†rthŒXnoderu†rvj-j®†rwjsjφrxjtX=>ry†rzjsj»†r{jsX    r|†r}hŒXstubr~†rjsjφr€htj†rjsjφr‚hŒXnoderƒ†r„j-j¶†r…htj †r†hŒXnoder‡†rˆj-jº†r‰jsj»†rŠjsX    r‹†rŒjXifr†rŽjsjφrjEXtyper†r‘j-jª†r’hŒXstubr“†r”j-j®†r•jsjφr–htX==r—†r˜jsjφr™jHjцršjÁjä†r›jÁjê†rœjÁjð†rjÁj4†ržjÁj†rŸjHjцr jsjφr¡jXandr¢†r£jsjφr¤hŒXstubr¥†r¦j-j¶†r§jŸj¸†r¨j-jº†r©jsjφrªhtX==r«†r¬jsjφr­jHjцr®jÁj܆r¯jÁjÕ†r°jÁj4†r±jÁjÕ†r²jÁj؆r³jÁjĆr´jÁjÚ†rµjÁjä†r¶jÁj0†r·jÁjð†r¸jHjцr¹jsj»†rºjsX      r»†r¼jEXtable.remover½†r¾jsjφr¿hŒXnoderÀ†rÁj©jô†rÂjsjφrÃhtj †rÄhŒXnoderņrÆjsj»†rÇjsj»†rÈjsX      rɆrÊhŒX	base_namerˆrÌjsjφrÍhtj†rÎjsjφrÏh¹X	NameProxyrІrÑjsjφrÒjHjцrÓjÁjð†rÔjÁjê†rÕjÁjÚ†rÖjÁj†r×jHjцrØjsj»†rÙjsX      rÚ†rÛhŒXfn_namer܆rÝjsjφrÞhtj†rßjsjφràh¹X	NameProxyrá†râjsjφrãjHjцräjÁjî†råjÁj؆ræjHjцrçjsj»†rèjsj»†réjsX      rê†rëhŒXis_superrì†ríjsjφrîhtj†rïjsjφrðhŒXnoderñ†ròj-j¶†rójŸj`†rôj-jº†rõjsjφröhtX==r÷†røjsjφrùjHjцrújÁjÚ†rûjÁj0†rüjÁjâ†rýjÁj†rþjÁjÞ†rÿjHjцrjsj»†rjsX      r†rhÝX
@transformr†rhtjæ†rhŒXvaluer†rjsjφr	hŒXbuildr
†rhtjæ†rhŒX	block_expr
†rjsjφrj-jI†rjsj»†rjsX        r†rhŒXbuildr†rhtjæ†rhŒXassignr†rjsjφrj-jI†rjsj»†rjsX
          r†rhÐXnames:r†rjsjφr j-jI†r!hŒX	base_namer"†r#j-jM†r$jsj»†r%jsX
          r&†r'hÐXvalues:r(†r)jsjφr*j-jI†r+hŒXnoder,†r-j-jM†r.jsj»†r/jsX        r0†r1j-jM†r2jsj»†r3jsj»†r4jsX        r5†r6hŒXbuildr7†r8htjæ†r9hŒXassignr:†r;jsjφr<j-jI†r=jsj»†r>jsX
          r?†r@hÐXnames:rA†rBjsjφrCj-jI†rDhŒXfn_namerE†rFj-jM†rGjsj»†rHjsX
          rI†rJhÐXvalues:rK†rLjsjφrMj-jI†rNjsj»†rOjsX            rP†rQhŒXbuildrR†rShtjæ†rThŒXchainrU†rVjsjφrWj-jI†rXjsjφrYhÐXbase:rZ†r[jsjφr\hŒX	base_namer]†r^j©jô†r_jsjφr`j-jI†rajHjцrbjÁjL†rcjÁjÕ†rdjÁjä†rejHjцrfj©jô†rgjsjφrhhŒXstubri†rjj-j¶†rkjŸj`†rlj-jº†rmj-jM†rnjsjφroj-jM†rpjsj»†rqjsX
          rr†rsj-jM†rtjsj»†rujsX        rv†rwj-jM†rxjsj»†ryjsj»†rzjsX        r{†r|hŒXbuildr}†r~htjæ†rhŒXfndefr€†rjsjφr‚j-jI†rƒjsj»†r„jsX
          r…†r†hÐXargs:r‡†rˆjsjφr‰j-jI†rŠj-jI†r‹jHjцrŒjÁjæ†rjÁjæ†rŽjÁjæ†rjHjцrj-jM†r‘j-jM†r’jsj»†r“jsX
          r”†r•hÐXbody:r–†r—jsjφr˜j-jI†r™jsj»†ršjsX            r›†rœhŒXbuildr†ržhtjæ†rŸhŒXchainr †r¡jsjφr¢j-jI†r£jsj»†r¤jsX              r¥†r¦hÐXbase:r§†r¨jsjφr©hŒXfn_namerª†r«j©jô†r¬jsjφr­j-jI†r®jHjцr¯jÁj܆r°jÁjê†r±jÁj4†r²jÁj4†r³jHjцr´j©jô†rµjsjφr¶j-jI†r·hŒXis_superr¸†r¹jsjφrºjXandr»†r¼jsjφr½jHjцr¾jÁjÚ†r¿jÁj†rÀjÁj4†rÁjÁjî†rÂjHjцrÃjsjφrÄjXorrņrÆjsjφrÇhŒX	base_namerȆrÉj©jô†rÊjsjφrËjHjцrÌjÁjæ†rÍjÁjæ†rÎjÁjæ†rÏjHjцrÐj-jM†rÑj-jM†rÒjsj»†rÓjsX            rÔ†rÕj-jM†rÖjsj»†r×jsX
          r؆rÙj-jM†rÚjsj»†rÛjsX        r܆rÝj-jM†rÞjsj»†rßjsX      rà†ráj-jM†râjsj»†rãjsj»†räjsX  rå†ræhÐX
block_exp:rç†rèjsjφréj-jª†rêhŒXnoderë†rìj-j®†ríjsjφrîjtX=>rï†rðjsj»†rñjsX    rò†róhŒjĆrôj©jô†rõjsjφröhŒXbodyr÷†røjsjφrùhtj†rújsjφrûhŒXunpackrü†rýjsjφrþhŒXnoderÿ†r jsj»†r jsj»†r jsX    r †r hŒXfnr †r jsjφr htj†r jsjφr	 jDXnilr
 †r jsj»†r jsX    r
 †r hŒXarg_listr †r jsjφr htj†r jsjφr j-jI†r j-jM†r jsj»†r jsj»†r jsX    r †r hŒXinsertr †r jsjφr hŒXbodyr †r j©jô†r jsjφr  h¹XRunr! †r" jsjφr# jtX=>r$ †r% jsj»†r& jsX      r' †r( jXifr) †r* jsjφr+ hÝX@has_varargsr, †r- jsj»†r. jsX        r/ †r0 hŒXinsertr1 †r2 jsjφr3 hŒXarg_listr4 †r5 j©jô†r6 jsjφr7 jHjцr8 jÁjæ†r9 jÁjæ†r: jÁjæ†r; jHjцr< jsj»†r= jsX        r> †r? hŒXinsertr@ †rA jsjφrB hŒXfnrC †rD htjæ†rE hŒXargsrF †rG j©jô†rH jsjφrI j-jI†rJ jHjцrK jÁjæ†rL jÁjæ†rM jÁjæ†rN jHjцrO j-jM†rP jsj»†rQ jsj»†rR jsX    rS †rT hŒXfnrU †rV jsjφrW htj†rX jsjφrY hŒX
smart_noderZ †r[ jsjφr\ hŒXbuildr] †r^ htjæ†r_ hŒXfndefr` †ra jsjφrb hÐXbody:rc †rd jsjφre hŒXbodyrf †rg jsj»†rh jsX    ri †rj hŒXbuildrk †rl htjæ†rm hŒXchainrn †ro jsjφrp j-jI†rq jsjφrr hÐXbase:rs †rt jsjφru j-jI†rv jHjцrw jÁjâ†rx jÁjê†ry jÁjÞ†rz jÁj†r{ jÁj؆r| jÁjÚ†r} jHjцr~ j©jô†r jsjφr€ hŒXfnr †r‚ j-jM†rƒ j©jô†r„ jsjφr… j-jI†r† jHjцr‡ jÁj܆rˆ jÁjê†r‰ jÁj4†rŠ jÁj4†r‹ jHjцrŒ j©jô†r jsjφrŽ hŒXarg_listr †r j-jM†r‘ jsjφr’ j-jM†r“ jsj»†r” j-jM†r• jsj»†r– e.