Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
§ Ìß]jwyã óö —dZddlZddlmZddlmZddlmZddlmZddlm Z dd lm Z ej ej ej ejejejejd œZejejejd œZejejejejejejd „d „dœZGd„de¦«ZGd„de ¦«Z!Gd„de"¦«Z#d„Z$Gd„de e!e"¦«¦«Z%Gd„de%¦«Z&Gd„de%¦«Z'Gd„de%¦«Z(Gd„de&¦«Z)Gd „d!e&¦«Z*Gd"„d#e&¦«Z+Gd$„d%e&¦«Z,Gd&„d'e&¦«Z-Gd(„d)e&¦«Z.Gd*„d+e&¦«Z/Gd,„d-e&¦«Z0Gd.„d/e&¦«Z1Gd0„d1e&¦«Z2Gd2„d3e&¦«Z3Gd4„d5e&¦«Z4Gd6„d7e&¦«Z5Gd8„d9e&¦«Z6Gd:„d;e&¦«Z7Gd<„d=e%¦«Z8Gd>„d?e8¦«Z9Gd@„dAe8¦«Z:GdB„dCe8¦«Z;GdD„dEe8¦«Z<GdF„dGe8¦«Z=GdH„dIe=¦«Z>GdJ„dKe=¦«Z?GdL„dMe=¦«Z@GdN„dOe=¦«ZAGdP„dQe=¦«ZBGdR„dSe'¦«ZCGdT„dUe'¦«ZDGdV„dWe8¦«ZEdX„ZFGdY„dZe8¦«ZGGd[„d\e8¦«ZHGd]„d^e8¦«ZIGd_„d`e8¦«ZJGda„dbe8¦«ZKGdc„dde8¦«ZLGde„dfe8¦«ZMGdg„dhe8¦«ZNGdi„dje'¦«ZO eOxjdldm PeQdn„eRe¦«eRe¦«zeRe¦«zD¦«¦«¦«zz c_Gdo„dpe9¦«ZSGdq„dre9¦«ZTGds„dte9¦«ZUGdu„dve9¦«ZVGdw„dxe9¦«ZWGdy„dze9¦«ZXGd{„d|e9¦«ZYGd}„d~e9¦«ZZGd„d€e9¦«Z[Gd�„d‚e:¦«Z\Gdƒ„d„e:¦«Z]Gd…„d†e:¦«Z^Gd‡„dˆe8¦«Z_Gd‰„dŠe8¦«Z`Gd‹„dŒe8¦«ZaGd�„dŽe8¦«ZbGd�„d�e8¦«ZcGd‘„d’e8¦«ZdGd“„d”e8¦«ZeGd•„d–e8¦«ZfGd—„d˜e&¦«ZgGd™„dše&¦«ZhGd›„dœe&¦«ZiGd�„dže&¦«ZjGdŸ„d e&¦«ZkGd¡„d¢ek¦«Zld£„Zmenem¦«e!_o[mdS)¤zŸAST nodes generated by the parser for the compiler. Also provides some node tree helper functions used by the parser and compiler in order to normalize nodes. éN)Údeque)ÚMarkupé)Úizip)ÚPY2)Ú text_type)Úwith_metaclass)Ú*ú/ú//ú**ú%ú+ú-)Únotrrcó —||vS©N©©ÚaÚbs úC/opt/imunify360/venv/lib64/python3.11/site-packages/jinja2/nodes.pyúr#s €�q˜A�v€ócó —||vSrrrs rrr$s €˜! 1˜*€r)ÚeqÚneÚgtÚgteqÚltÚlteqÚinÚnotincó—eZdZdZdS)Ú Impossiblez8Raised if the node could not perform a requested action.N©Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr%r%(s€€€€€ØBÐBÐBÐBrr%có—eZdZdZd„ZdS)ÚNodeTypez¦A metaclass for nodes that handles the field and attribute inheritance. fields and attributes from the parent class are automatically forwarded to the child.cóè—dD]½}g}| t|d|d¦«¦«| | |d¦«¦«t|¦«dks Jd¦«‚t|¦«tt |¦«¦«ks Jd¦«‚t |¦«||<Œ¾| dd¦«t ||||¦«S) N)ÚfieldsÚ attributesrrrz multiple inheritance not allowedzlayout conflictÚabstractF) ÚextendÚgetattrÚgetÚlenÚsetÚtupleÚ setdefaultÚtypeÚ__new__)ÚmcsÚnameÚbasesÚdÚattrÚstorages rr9zNodeType.__new__1sÛ€Ø*ð %ð %ˆD؈GØ �NŠN�7 5¨¤8¨T°2Ñ6Ô6Ñ 7Ô 7Ð 7Ø �NŠN˜1Ÿ5š5  r™?œ?Ñ +Ô +Ð +Ý�u‘:”: ’?�?�?Ð$F‘?”?�?Ý�w‘<”<¥3¥s¨7¡|¤|Ñ#4Ô#4Ò4Ð4Ð4Ð6GÑ4Ô4Ð4ݘG‘n”nˆAˆd‰GˆGØ � Š �Z Ñ'Ô'Ð'Ý�|Š|˜C  u¨aÑ0Ô0Ð0rN)r'r(r)r*r9rrrr,r,,s-€€€€€ð-ð-ð 1ð 1ð 1ð 1ð 1rr,có&—eZdZdZdd„Zd„Zd„ZdS)Ú EvalContextzcHolds evaluation time information. Custom attributes can be attached to it in extensions. Ncó˜—||_t|j¦«r| |¦«|_n |j|_d|_dS©NF)Ú environmentÚcallableÚ autoescapeÚvolatile)ÚselfrDÚ template_names rÚ__init__zEvalContext.__init__BsI€Ø&ˆÔÝ �KÔ*Ñ +Ô +ð 5Ø)×4Ò4°]ÑCÔCˆDŒOˆOà)Ô4ˆDŒO؈Œ ˆ ˆ rcó4—|j ¦«Sr)Ú__dict__Úcopy©rHs rÚsavezEvalContext.saveJs€ØŒ}×!Ò!Ñ#Ô#Ð#rcól—|j ¦«|j |¦«dSr)rLÚclearÚupdate)rHÚolds rÚrevertzEvalContext.revertMs2€Ø Œ ×ÒÑÔÐØ Œ ×Ò˜SÑ!Ô!Ð!Ð!Ð!rr)r'r(r)r*rJrOrTrrrrArA=sP€€€€€ððððððð$ð$ð$ð"ð"ð"ð"ð"rrAcó^—|€*|j€td¦«‚t|j¦«S|S)NzIif no eval context is passed, the node must have an attached environment.)rDÚ RuntimeErrorrA)ÚnodeÚctxs rÚget_eval_contextrYRs?€Ø €{Ø Ô Ð #Ýðñôð õ ˜4Ô+Ñ,Ô,Ð,Ø €Jrcóz—eZdZdZdZdZdZd„Zdd„Zdd„Z d „Z d „Z d „Z dd „Z d„Zd„Zd„ZejZd„Zd„ZdS)ÚNodea»Baseclass for all Jinja nodes. There are a number of nodes available of different types. There are four major types: - :class:`Stmt`: statements - :class:`Expr`: expressions - :class:`Helper`: helper nodes - :class:`Template`: the outermost wrapper node All nodes have fields and attributes. Fields may be other nodes, lists, or arbitrary values. Fields are passed to the constructor as regular positional arguments, attributes as keyword arguments. Each node has two attributes: `lineno` (the line number of the node) and `environment`. The `environment` attribute is set at the end of the parsing process for all nodes automatically. r©ÚlinenorDTc ón—|jrtd¦«‚|r¿t|¦«t|j¦«krn|jstd|jjz¦«‚td|jjt|j¦«t|j¦«dkrdpdfz¦«‚t |j|¦«D]\}}t|||¦«Œ|jD]'}t|||  |d¦«¦«Œ(|r,tdtt|¦«¦«z¦«‚dS)Nz#abstract nodes are not instantiablez%r takes 0 argumentsz%r takes 0 or %d argument%srÚsÚzunknown attribute %r) r0Ú TypeErrorr4r.Ú __class__r'rÚsetattrr/ÚpopÚnextÚiter)rHr.r/r;Úargr>s rrJz Node.__init__ssV€Ø Œ=ð CÝÐAÑBÔBÐ BØ ð )Ý�6‰{Œ{�c $¤+Ñ.Ô.Ò.Ð.Ø”{ðVÝ#Ð$:¸T¼^Ô=TÑ$TÑUÔUÐUÝØ1àœÔ/ݘDœKÑ(Ô(ݘDœKÑ(Ô(¨AÒ-Ð5°#Ð;¸ðññôðõ" $¤+¨vÑ6Ô6ð )ð )‘ ��cݘ˜d CÑ(Ô(Ð(Ð(Ø”Oð <ð <ˆDÝ �D˜$  §¢¨t°TÑ :Ô :Ñ ;Ô ;Ð ;Ð ;Ø ð MÝÐ2µT½$¸zÑ:JÔ:JÑ5KÔ5KÑKÑLÔLÐ Lð Mð MrNc#ó”K—|jD]=}||cxur�n|�||vs|�*||vr& |t||¦«fV—Œ-#t$rYŒ9wxYwŒ>dS)aZThis method iterates over all fields that are defined and yields ``(key, value)`` tuples. Per default all fields are returned, but it's possible to limit that to some fields by providing the `only` parameter or to exclude some using the `exclude` parameter. Both should be sets or tuples of field names. N)r.r2ÚAttributeError)rHÚexcludeÚonlyr;s rÚ iter_fieldszNode.iter_fields‰sŸèè€ð”Kð ð ˆDà˜DÐ(Ð(Ð(Ð(Ð(Ð(Ð(ØÐ'¨D¸Ð,?Ð,?ØÐ$¨°¨¨ðØ¥¨¨dÑ 3Ô 3Ð3Ð3Ð3Ð3Ð3øÝ%ðððØ�Dðøøøøð ð s¢7· AÁAc#óÜK—| ||¦«D]R\}}t|t¦«r|D]}t|t¦«r|V—ŒŒ9t|t¦«r|V—ŒSdS)zÞIterates over all direct child nodes of the node. This iterates over all fields and yields the values of they are nodes. If the value of a field is a list all the nodes in that list are returned. N)rlÚ isinstanceÚlistr[)rHrjrkÚ_ÚitemÚns rÚiter_child_nodeszNode.iter_child_nodes›s•èè€ð ×'Ò'¨°Ñ6Ô6ð ð ‰GˆAˆtݘ$¥Ñ%Ô%ð Øð ð �AÝ! !¥TÑ*Ô*ð Ø˜˜˜øð õ˜D¥$Ñ'Ô'ð Ø� � � øð  ð rcó<—| |¦«D]}|cSdS)ziFind the first node of a given type. If no such node exists the return value is `None`. N)Úfind_all)rHÚ node_typeÚresults rÚfindz Node.find¨s2€ð—m’m IÑ.Ô.ð ð ˆF؈MˆMˆMð ð rc#ó˜K—| ¦«D]2}t||¦«r|V—| |¦«D]}|V—ŒŒ3dS)z€Find all the nodes of a given type. If the type is a tuple, the check is performed for any of the tuple items. N)rsrnru)rHrvÚchildrws rruz Node.find_all¯ssèè€ð×*Ò*Ñ,Ô,ð ð ˆEݘ% Ñ+Ô+ð Ø� � � ØŸ.š.¨Ñ3Ô3ð ð �Ø� � � � ð ð ð rcóÄ—t|g¦«}|rM| ¦«}d|jvr||_| | ¦«¦«|°M|S)aReset the context of a node and all child nodes. Per default the parser will all generate nodes that have a 'load' context as it's the most common one. This method is used in the parser to set assignment targets and other nodes to a store context. rX)rÚpopleftr.rXr1rs)rHrXÚtodorWs rÚset_ctxz Node.set_ctx¹si€õ �d�V‰}Œ}ˆØð 1Ø—<’<‘>”>ˆDؘœ Ð#Ð#Ø�”Ø �KŠK˜×-Ò-Ñ/Ô/Ñ 0Ô 0Ð 0ð ð 1ð ˆ rFcóÖ—t|g¦«}|rV| ¦«}d|jvr|j�|r||_| | ¦«¦«|°V|S)z.Set the line numbers of the node and children.r])rr|r/r]r1rs)rHr]Úoverrider}rWs rÚ set_linenozNode.set_linenoÇst€å�d�V‰}Œ}ˆØð 1Ø—<’<‘>”>ˆDؘ4œ?Ð*Ð*Ø”;Ð&¨(Ð&Ø"(�D”KØ �KŠK˜×-Ò-Ñ/Ô/Ñ 0Ô 0Ð 0ð ð 1ð ˆ rcó²—t|g¦«}|rD| ¦«}||_| | ¦«¦«|°D|S)z"Set the environment for all nodes.)rr|rDr1rs)rHrDr}rWs rÚset_environmentzNode.set_environmentÒs[€å�d�V‰}Œ}ˆØð 1Ø—<’<‘>”>ˆDØ*ˆDÔ Ø �KŠK˜×-Ò-Ñ/Ô/Ñ 0Ô 0Ð 0ðð 1ðˆ rcóÆ—t|¦«t|¦«uoCt| ¦«¦«t| ¦«¦«kSr)r8r6rl©rHÚothers rÚ__eq__z Node.__eq__ÛsX€Ý�D‰zŒz�T %™[œ[Ð(ð ­U°4×3CÒ3CÑ3EÔ3EÑ-FÔ-FÍ%Ø × Ò Ñ Ô ñK ôK ò. ð rcó.—| |¦« Sr)r‡r…s rÚ__ne__z Node.__ne__às€Ø—;’;˜uÑ%Ô%Ð%Ð%rcóp‡—‰jj›dd ˆfd„‰jD¦«¦«›d�S)Nú(ú, c3óD•K—|]}|›dt‰|d¦«›�V—ŒdS)ú=N)r2)Ú.0rgrHs €rú z Node.__repr__..és;øèè€ÐWÐWÀC   ¥g¨d°C¸Ñ&>Ô&>Ð&>Ð?ÐWÐWÐWÐWÐWÐWrú))rbr'Újoinr.rNs`rÚ__repr__z Node.__repr__æsGø€à ŒNÔ #Ð #Ð #Ø �IŠIÐWÐWÐWÐWÈ4Ì;ÐWÑWÔWÑ WÔ WÐ WÐ Wð ð rcóV‡‡—ˆˆfd„ŠgЉ|¦«d ‰¦«S)Nc󪕗t|t¦«s$‰ t|¦«¦«dS‰ d|jjz¦«|js‰ d¦«dSt|j¦«D]®\}}|r‰ d¦«t||¦«}t|t¦«rb‰ d¦«t|¦«D]'\}}|r‰ d¦«‰|¦«Œ(‰ d¦«Œ£‰|¦«Œ¯‰ d¦«dS)Nz nodes.%s(r‘rŒú[ú]) rnr[ÚappendÚreprrbr'r.Ú enumerater2ro)rWÚidxÚfieldÚvaluerqÚ_dumpÚbufs €€rržzNode.dump.._dumpísJø€Ý˜d¥DÑ)Ô)ð Ø— ’ �4 ™:œ:Ñ&Ô&Ð&Ø�à �JŠJ�{ T¤^Ô%<Ñ<Ñ =Ô =Ð =Ø”;ð Ø— ’ ˜3‘”�Ø�Ý'¨¬ Ñ4Ô4ð !ð !‘ ��UØð%Ø—J’J˜tÑ$Ô$Ð$Ý  eÑ,Ô,�ݘe¥TÑ*Ô*ð!Ø—J’J˜s‘O”O�OÝ%.¨uÑ%5Ô%5ð$ð$™ ˜˜TØð-ØŸJšJ tÑ,Ô,Ð,ؘ˜d™ œ ˜ ˜ Ø—J’J˜s‘O”O�O�Oà�E˜%‘L”L�L�LØ �JŠJ�s‰OŒOˆOˆOˆOrr`)r’)rHržrŸs @@rÚdumpz Node.dumpìsFøø€ð ð ð ð ð ð ð0ˆØ ˆˆd‰ Œ ˆ Ø�wŠw�s‰|Œ|Ðr©NN)F)r'r(r)r*r.r/r0rJrlrsrxrur~r�rƒr‡r‰ÚobjectÚ__hash__r“r rrrr[r[^sþ€€€€€ððð €FØ*€JØ€HðMðMðMð,ðððð$ ð ð ð ððððððð ð ð ð ð ð ð ðððð ð ð ð &ð&ð&ðŒ€Hð ð ð ð ððððrr[có—eZdZdZdZdS)ÚStmtzBase node for all statements.TN©r'r(r)r*r0rrrr¥r¥ s€€€€€Ø'Ð'à€H€H€Hrr¥có—eZdZdZdZdS)ÚHelperz,Nodes that exist in a specific context only.TNr¦rrrr¨r¨s€€€€€Ø6Ð6à€H€H€Hrr¨có—eZdZdZdZdS)ÚTemplatezjNode that represents a template. This must be the outermost node that is passed to the compiler. ©ÚbodyN©r'r(r)r*r.rrrrªrªó€€€€€ððð€F€F€Frrªcó—eZdZdZdZdS)ÚOutputz–A node that holds multiple expressions which are then printed out. This is used both for the `print` statement and the regular template data. ©ÚnodesNr­rrrr°r°s€€€€€ððð€F€F€Frr°có—eZdZdZdZdS)ÚExtendsz Represents an extends statement.)ÚtemplateNr­rrrr´r´&s€€€€€Ø*Ð*à €F€F€Frr´có—eZdZdZdZdS)ÚForaxThe for loop. `target` is the target for the iteration (usually a :class:`Name` or :class:`Tuple`), `iter` the iterable. `body` is a list of nodes that are used as loop-body, and `else_` a list of nodes for the `else` block. If no else node exists it has to be an empty list. For filtered nodes an expression can be stored as `test`, otherwise `None`. )Útargetrfr¬Úelse_ÚtestÚ recursiveNr­rrrr·r·,s €€€€€ðððF€F€F€Frr·có—eZdZdZdZdS)ÚIfz4If `test` is true, `body` is rendered, else `else_`.)rºr¬Úelif_r¹Nr­rrrr½r½8s€€€€€Ø>Ð>à /€F€F€Frr½có—eZdZdZdZdS)ÚMacrozÀA macro definition. `name` is the name of the macro, `args` a list of arguments and `defaults` a list of defaults if there are any. `body` is a list of nodes for the macro body. )r;ÚargsÚdefaultsr¬Nr­rrrrÀrÀ>s€€€€€ððð 2€F€F€FrrÀcó—eZdZdZdZdS)Ú CallBlockz‡Like a macro without a name but a call instead. `call` is called with the unnamed macro as `caller` argument this node holds. )ÚcallrÁrÂr¬Nr­rrrrÄrÄGs€€€€€ððð2€F€F€FrrÄcó—eZdZdZdZdS)Ú FilterBlockzNode for filter sections.)r¬ÚfilterNr­rrrrÇrÇOs€€€€€Ø#Ð#à €F€F€FrrÇcó—eZdZdZdZdS)ÚWithz°Specific node for with statements. In older versions of Jinja the with statement was implemented on the base of the `Scope` node instead. .. versionadded:: 2.9.3 )ÚtargetsÚvaluesr¬Nr­rrrrÊrÊUs€€€€€ððð +€F€F€FrrÊcó—eZdZdZdZdS)ÚBlockzA node that represents a block.)r;r¬ÚscopedNr­rrrrÎrÎ_s€€€€€Ø)Ð)à '€F€F€FrrÎcó—eZdZdZdZdS)ÚIncludez'A node that represents the include tag.)rµÚ with_contextÚignore_missingNr­rrrrÑrÑes€€€€€Ø1Ð1à ;€F€F€FrrÑcó—eZdZdZdZdS)ÚImportz&A node that represents the import tag.)rµr¸rÒNr­rrrrÕrÕks€€€€€Ø0Ð0à 3€F€F€FrrÕcó—eZdZdZdZdS)Ú FromImportaA node that represents the from import tag. It's important to not pass unsafe names to the name attribute. The compiler translates the attribute lookups directly into getattr calls and does *not* use the subscript callback of the interface. As exported variables may not start with double underscores (which the parser asserts) this is not a problem for regular Jinja code, but if this node is used in an extension extra care must be taken. The list of names may contain tuples if aliases are wanted. )rµÚnamesrÒNr­rrrr×r×qs€€€€€ð ð ð3€F€F€Frr×có—eZdZdZdZdS)ÚExprStmtzAA statement that evaluates an expression and discards the result.©rWNr­rrrrÚrÚ€s€€€€€ØKÐKà €F€F€FrrÚcó—eZdZdZdZdS)ÚAssignz"Assigns an expression to a target.)r¸rWNr­rrrrÝr݆s€€€€€Ø,Ð,à €F€F€FrrÝcó—eZdZdZdZdS)Ú AssignBlockzAssigns a block to a target.)r¸rÈr¬Nr­rrrrßrߌs€€€€€Ø&Ð&à )€F€F€Frrßcó$—eZdZdZdZdd„Zd„ZdS)ÚExprzBaseclass for all expressions.TNcó—t¦«‚)anReturn the value of the expression as constant or raise :exc:`Impossible` if this was not possible. An :class:`EvalContext` can be provided, if none is given a default context is created which requires the nodes to have an attached environment. .. versionchanged:: 2.4 the `eval_ctx` parameter was added. )r%©rHÚeval_ctxs rÚas_constz Expr.as_const—s€õ‰lŒlÐrcó—dS)z8Check if it's possible to assign something to this node.FrrNs rÚ can_assignzExpr.can_assign¤s€àˆurr)r'r(r)r*r0rårçrrrrárá’sB€€€€€Ø(Ð(à€Hð ð ð ð ðððððrrácó&—eZdZdZdZdZdZdd„ZdS)ÚBinExprz%Baseclass for all binary expressions.)ÚleftÚrightNTcóR—t||¦«}|jjr!|j|jjvrt ¦«‚t |j} ||j |¦«|j  |¦«¦«S#t$rt ¦«‚wxYwr) rYrDÚ sandboxedÚoperatorÚintercepted_binopsr%Ú_binop_to_funcrêrårëÚ Exception©rHräÚfs rråzBinExpr.as_const°s¦€Ý# D¨(Ñ3Ô3ˆð Ô Ô &ð à”  Ô!1Ô!DÐDÐDå‘,”,Ð Ý ˜4œ=Ô )ˆð Ø�1�T”Y×'Ò'¨Ñ1Ô1°4´:×3FÒ3FÀxÑ3PÔ3PÑQÔQÐ QøÝð ð ð Ý‘,”,Ð ð øøøs Á;B  B&r©r'r(r)r*r.rîr0rårrrréré©s=€€€€€Ø/Ð/à €FØ€HØ€Hð ð ð ð ð ð rrécó&—eZdZdZdZdZdZdd„ZdS)Ú UnaryExprz$Baseclass for all unary expressions.rÛNTcó —t||¦«}|jjr!|j|jjvrt ¦«‚t |j} ||j |¦«¦«S#t$rt ¦«‚wxYwr) rYrDrírîÚintercepted_unopsr%Ú _uaop_to_funcrWrårñròs rråzUnaryExpr.as_constÆs”€Ý# D¨(Ñ3Ô3ˆð Ô Ô &ð à”  Ô!1Ô!CÐCÐCå‘,”,Ð Ý ˜$œ-Ô (ˆð Ø�1�T”Y×'Ò'¨Ñ1Ô1Ñ2Ô2Ð 2øÝð ð ð Ý‘,”,Ð ð øøøs Á"A4Á4B rrôrrrrörö¿s=€€€€€Ø.Ð.à €FØ€HØ€Hð ð ð ð ð ð rröcó—eZdZdZdZd„ZdS)ÚNamea Looks up a name or stores a value in a name. The `ctx` of the node can be one of the following values: - `store`: store a value in the name - `load`: load that name - `param`: like `store` but if the name was defined as function parameter. )r;rXcó—|jdvS)N)ÚtrueÚfalseÚnoneÚTrueÚFalseÚNone©r;rNs rrçzName.can_assignàs€ØŒyÐ RÐRÐRrN©r'r(r)r*r.rçrrrrûrûÕs9€€€€€ððð€FðSðSðSðSðSrrûcó—eZdZdZdZd„ZdS)ÚNSRefz)Reference to a namespace value assignment)r;r>có—dS)NTrrNs rrçzNSRef.can_assignés €ð ˆtrNrrrrrräs.€€€€€Ø3Ð3à €Fðððððrrcó—eZdZdZdZdS)ÚLiteralzBaseclass for literals.TNr¦rrrr r ñs€€€€€Ø!Ð!à€H€H€Hrr có6—eZdZdZdZdd„Zedd„¦«ZdS)ÚConstaAll constant values. The parser will return this node for simple constants such as ``42`` or ``"foo"`` but it can be used to store more complex values such as lists too. Only constants with a safe representation (objects where ``eval(repr(x)) == x`` is true). )r�NcóÀ—|j}trOt|¦«tur9|jjdr' | d¦«}n#t$rYnwxYw|S)Nzcompiler.ascii_strÚascii)r�rr8rrDÚpoliciesÚencodeÚ UnicodeError)rHräÚrvs rråzConst.as_constss€Ø ŒZˆå ð å�R‘”�IÐ%Ð%ØÔ Ô)Ð*>Ô?ð&ð Ø—Y’Y˜wÑ'Ô'��øÝð ð ð Ø�ð øøøàˆ s¸AÁ AÁAcó\—ddlm}||¦«st¦«‚||||¬¦«S)z¨Return a const object if the value is representable as constant value in the generated code, otherwise it will raise an `Impossible` exception. r)Ú has_safe_reprr\)Úcompilerrr%)Úclsr�r]rDrs rÚfrom_untrustedzConst.from_untrusted sI€ð ,Ð+Ð+Ð+Ð+Ð+àˆ}˜UÑ#Ô#ð Ý‘,”,Р؈s�5 °[ÐAÑAÔAÐArrr¡)r'r(r)r*r.råÚ classmethodrrrrr r ÷s_€€€€€ððð €Fð ð ð ð ðð Bð Bð Bñ„[ð Bð Bð Brr có—eZdZdZdZdd„ZdS)Ú TemplateDatazA constant template string.)ÚdataNcó�—t||¦«}|jrt¦«‚|jrt |j¦«S|jSr)rYrGr%rFrrrãs rråzTemplateData.as_constsI€Ý# D¨(Ñ3Ô3ˆØ Ô ð Ý‘,”,Ð Ø Ô ð %ݘ$œ)Ñ$Ô$Ð $ØŒyÐrr©r'r(r)r*r.rårrrrrs3€€€€€Ø%Ð%à €Fððððððrrcó$—eZdZdZdZdd„Zd„ZdS)ÚTuplez¼For loop unpacking and some other things like multiple arguments for subscripts. Like for :class:`Name` `ctx` specifies if the tuple is used for loading the names or storing. )ÚitemsrXNcód‡—t|‰¦«Štˆfd„|jD¦«¦«S)Nc3óB•K—|]}| ‰¦«V—ŒdSr©rå©r�Úxräs €rr�z!Tuple.as_const..2s/øèè€Ð>Ð>¨a�Q—Z’Z Ñ)Ô)Ð>Ð>Ð>Ð>Ð>Ð>r)rYr6rrãs `rråzTuple.as_const0s7ø€Ý# D¨(Ñ3Ô3ˆÝÐ>Ð>Ð>Ð>°4´:Ð>Ñ>Ô>Ñ>Ô>Ð>rcóH—|jD]}| ¦«sdSŒdS)NFT)rrç)rHrqs rrçzTuple.can_assign4s6€Ø”Jð ð ˆDØ—?’?Ñ$Ô$ð Ø�u�uð àˆtrr©r'r(r)r*r.rårçrrrrr(sH€€€€€ððð €Fð?ð?ð?ð?ðððððrrcó—eZdZdZdZdd„ZdS)ÚListz&Any list literal such as ``[1, 2, 3]``©rNcóJ‡—t|‰¦«Šˆfd„|jD¦«S)Ncó:•—g|]}| ‰¦«‘ŒSrr"r#s €rú z!List.as_const..Bs%ø€Ð9Ð9Ð9¨�— ’ ˜8Ñ$Ô$Ð9Ð9Ð9r)rYrrãs `rråz List.as_const@s.ø€Ý# D¨(Ñ3Ô3ˆØ9Ð9Ð9Ð9¨d¬jÐ9Ñ9Ô9Ð9rrrrrrr(r(;s3€€€€€Ø0Ð0à €Fð:ð:ð:ð:ð:ð:rr(có—eZdZdZdZdd„ZdS)ÚDictzeAny dict literal such as ``{1: 2, 3: 4}``. The items must be a list of :class:`Pair` nodes. r)Ncód‡—t|‰¦«Štˆfd„|jD¦«¦«S)Nc3óB•K—|]}| ‰¦«V—ŒdSrr"r#s €rr�z Dict.as_const..Ns/øèè€Ð=Ð=¨Q�A—J’J˜xÑ(Ô(Ð=Ð=Ð=Ð=Ð=Ð=r)rYÚdictrrãs `rråz Dict.as_constLs7ø€Ý# D¨(Ñ3Ô3ˆÝÐ=Ð=Ð=Ð=°$´*Ð=Ñ=Ô=Ñ=Ô=Ð=rrrrrrr.r.Es9€€€€€ððð€Fð>ð>ð>ð>ð>ð>rr.có—eZdZdZdZdd„ZdS)ÚPairzA key, value pair for dicts.©Úkeyr�NcóŠ—t||¦«}|j |¦«|j |¦«fSr)rYr5rår�rãs rråz Pair.as_constVs<€Ý# D¨(Ñ3Ô3ˆØŒx× Ò  Ñ*Ô*¨D¬J×,?Ò,?ÀÑ,IÔ,IÐIÐIrrrrrrr3r3Qs9€€€€€Ø&Ð&à €FðJðJðJðJðJðJrr3có—eZdZdZdZdd„ZdS)ÚKeywordz>A key, value pair for keyword arguments where key is a string.r4Ncód—t||¦«}|j|j |¦«fSr)rYr5r�rårãs rråzKeyword.as_const`s.€Ý# D¨(Ñ3Ô3ˆØŒx˜œ×,Ò,¨XÑ6Ô6Ð6Ð6rrrrrrr8r8[s3€€€€€ØHÐHà €Fð7ð7ð7ð7ð7ð7rr8có—eZdZdZdZdd„ZdS)ÚCondExprzZA conditional expression (inline if expression). (``{{ foo if bar else baz }}``) )rºÚexpr1Úexpr2Ncóè—t||¦«}|j |¦«r|j |¦«S|j€t ¦«‚|j |¦«Sr)rYrºrår<r=r%rãs rråzCondExpr.as_constlsi€Ý# D¨(Ñ3Ô3ˆØ Œ9× Ò ˜hÑ 'Ô 'ð 1Ø”:×&Ò& xÑ0Ô0Ð 0ð Œ:Ð Ý‘,”,Ð àŒz×"Ò" 8Ñ,Ô,Ð,rrrrrrr;r;es9€€€€€ððð(€Fð -ð -ð -ð -ð -ð -rr;c󺇗ˆfd„|jD¦«}tˆfd„|jD¦«¦«}|j�K | |j ‰¦«¦«n#t $rt¦«‚wxYw|j�K |  |j ‰¦«¦«n#t $rt¦«‚wxYw||fS)Ncó:•—g|]}| ‰¦«‘ŒSrr"r#s €rr,z!args_as_const..ys%ø€Ð 4Ð 4Ð 4 QˆA�JŠJ�xÑ Ô Ð 4Ð 4Ð 4rc3óB•K—|]}| ‰¦«V—ŒdSrr"r#s €rr�z args_as_const..zs/øèè€Ð<Ð<¨1�!—*’*˜XÑ&Ô&Ð<Ð<Ð<Ð<Ð<ÐrXNcóþ—|jdkrt¦«‚ t||¦«}|j |j |¦«|j¦«S#t$rt¦«‚wxYwr[) rXr%rYrDr2rWrår>rñrãs rråzGetattr.as_const÷s}€Ø Œ8�vÒ Ð Ý‘,”,Ð ð Ý'¨¨hÑ7Ô7ˆHØÔ#×+Ò+¨D¬I×,>Ò,>¸xÑ,HÔ,HÈ$Ì)ÑTÔTÐ TøÝð ð ð Ý‘,”,Ð ð øøøs ›AA#Á#A<có—dSrCrrNs rrçzGetattr.can_assignr_rrr&rrrraraðsH€€€€€ððð%€Fðððððððððrracó—eZdZdZdZdd„ZdS)ÚSlicez_Represents a slice object. This must only be used as argument for :class:`Subscript`. )ÚstartÚstopÚstepNc󤇗t|‰¦«Šˆfd„}t||j¦«||j¦«||j¦«¦«S)Ncó6•—|€dS| ‰¦«Srr")Úobjräs €rÚconstzSlice.as_const..constsø€Øˆ{Ø�tØ—<’< Ñ)Ô)Ð )r)rYÚslicerfrgrh)rHrärls ` rråzSlice.as_const scø€Ý# D¨(Ñ3Ô3ˆð *ð *ð *ð *ð *õ �U�U˜4œ:Ñ&Ô&¨¨¨d¬iÑ(8Ô(8¸%¸%ÀÄ Ñ:JÔ:JÑKÔKÐKrrrrrrreres?€€€€€ððð'€FðLðLðLðLðLðLrrecó—eZdZdZdZdd„ZdS)ÚConcatzXConcatenates the list of expressions provided after converting them to unicode. r±Ncóp‡—t|‰¦«Šd ˆfd„|jD¦«¦«S)Nr`c3ó\•K—|]&}t| ‰¦«¦«V—Œ'dSr)rrår#s €rr�z"Concat.as_const..s7øèè€ÐKÐK¸1•y §¢¨HÑ!5Ô!5Ñ6Ô6ÐKÐKÐKÐKÐKÐKr)rYr’r²rãs `rråzConcat.as_consts;ø€Ý# D¨(Ñ3Ô3ˆØ�wŠwÐKÐKÐKÐKÀÄ ÐKÑKÔKÑKÔKÐKrrrrrrroros?€€€€€ððð€FðLðLðLðLðLðLrrocó—eZdZdZdZdd„ZdS)ÚCompareziCompares an expression with some other expressions. `ops` must be a list of :class:`Operand`\s. )ÚexprÚopsNcó&—t||¦«}|j |¦«x}} |jD]>}|j |¦«}t |j||¦«}|sdS|}Œ?n#t $rt¦«‚wxYw|SrC)rYrtråruÚ_cmpop_to_funcÚoprñr%)rHrärwr�rxÚ new_values rråzCompare.as_const)sµ€Ý# D¨(Ñ3Ô3ˆØœ×+Ò+¨HÑ5Ô5Ð5ˆ�ð Ø”hð "ð "�ØœG×,Ò,¨XÑ6Ô6� Ý'¨¬Ô.¨u°iÑ@Ô@�àð!Ø ˜5˜5à!��ð "øõð ð ð Ý‘,”,Ð ð øøøðˆ s®AA5Á1A5Á5Brrrrrrsrs"s9€€€€€ððð€Fððððððrrscó—eZdZdZdZdS)ÚOperandz$Holds an operator and an expression.)rxrtNr­rrrr{r{<s€€€€€Ø.Ð.à €F€F€Frr{Tz( The following operators are available: rŒc#ó K—|] }d|zV—Œ dS)z``%s``Nr)r�r$s rr�r�Ds:èè€ð ð àð �q‰Lð ð ð ð ð ð rcó—eZdZdZdZdS)ÚMulz(Multiplies the left with the right node.r N©r'r(r)r*rîrrrr~r~Ks€€€€€Ø2Ð2à€H€H€Hrr~có—eZdZdZdZdS)ÚDivz#Divides the left by the right node.r Nrrrrr�r�Qs€€€€€Ø-Ð-à€H€H€Hrr�có—eZdZdZdZdS)ÚFloorDivzjDivides the left by the right node and truncates conver the result into an integer by truncating. r NrrrrrƒrƒWs€€€€€ððð€H€H€Hrrƒcó—eZdZdZdZdS)ÚAddzAdd the left to the right node.rNrrrrr…r…_s€€€€€Ø)Ð)à€H€H€Hrr…có—eZdZdZdZdS)ÚSubz&Subtract the right from the left node.rNrrrrr‡r‡es€€€€€Ø0Ð0à€H€H€Hrr‡có—eZdZdZdZdS)ÚModzLeft modulo right.rNrrrrr‰r‰ks€€€€€ØÐà€H€H€Hrr‰có—eZdZdZdZdS)ÚPowzLeft to the power of right.r Nrrrrr‹r‹qs€€€€€Ø%Ð%à€H€H€Hrr‹có—eZdZdZdZdd„ZdS)ÚAndzShort circuited AND.ÚandNcóŠ—t||¦«}|j |¦«o|j |¦«Sr©rYrêrårërãs rråz And.as_const|s<€Ý# D¨(Ñ3Ô3ˆØŒy×!Ò! (Ñ+Ô+ÐM°´ ×0CÒ0CÀHÑ0MÔ0MÐMrr©r'r(r)r*rîrårrrr�r�ws9€€€€€ØÐà€HðNðNðNðNðNðNrr�có—eZdZdZdZdd„ZdS)ÚOrzShort circuited OR.ÚorNcóŠ—t||¦«}|j |¦«p|j |¦«Srr�rãs rråz Or.as_const†s<€Ý# D¨(Ñ3Ô3ˆØŒy×!Ò! (Ñ+Ô+ÐL¨t¬z×/BÒ/BÀ8Ñ/LÔ/LÐLrrr‘rrrr“r“�s9€€€€€ØÐà€HðMðMðMðMðMðMrr“có—eZdZdZdZdS)ÚNotzNegate the expression.rNrrrrr—r—‹s€€€€€Ø Ð à€H€H€Hrr—có—eZdZdZdZdS)ÚNegzMake the expression negative.rNrrrrr™r™‘s€€€€€Ø'Ð'à€H€H€Hrr™có—eZdZdZdZdS)ÚPosz8Make the expression positive (noop for most expressions)rNrrrrr›r›—s€€€€€ØBÐBà€H€H€Hrr›có—eZdZdZdZdS)ÚEnvironmentAttributez�Loads an attribute from the environment object. This is useful for extensions that want to call a callback stored on the environment. rNr­rrrr�r� r®rr�có—eZdZdZdZdS)ÚExtensionAttributezøReturns the attribute of an extension bound to the environment. The identifier is the identifier of the :class:`Extension`. This node is usually constructed by calling the :meth:`~jinja2.ext.Extension.attr` method on an extension. )Ú identifierr;Nr­rrrrŸrŸ¨s€€€€€ððð$€F€F€FrrŸcó—eZdZdZdZdS)Ú ImportedNamea&If created with an import name the import name is returned on node access. For example ``ImportedName('cgi.escape')`` returns the `escape` function from the cgi module on evaluation. Imports are optimized by the compiler so there is no need to assign them to local variables. )Ú importnameNr­rrrr¢r¢³s€€€€€ððð €F€F€Frr¢có—eZdZdZdZd„ZdS)Ú InternalNamea7An internal name in the compiler. You cannot create these nodes yourself but the parser provides a :meth:`~jinja2.parser.Parser.free_identifier` method that creates a new identifier for you. This identifier is not available from the template and is not threated specially by the compiler. rcó —td¦«‚)NzKCan't create internal names. Use the `free_identifier` method on a parser.©rarNs rrJzInternalName.__init__Çs€Ýð 4ñ ô ð rN)r'r(r)r*r.rJrrrr¥r¥½s4€€€€€ððð€Fð ð ð ð ð rr¥có—eZdZdZdZdd„ZdS)ÚMarkSafez:Mark the wrapped expression as safe (wrap it as `Markup`).©rtNcóp—t||¦«}t|j |¦«¦«Sr)rYrrtrårãs rråzMarkSafe.as_constÓs/€Ý# D¨(Ñ3Ô3ˆÝ�d”i×(Ò(¨Ñ2Ô2Ñ3Ô3Ð3rrrrrrr©r©Îs3€€€€€ØDÐDà €Fð4ð4ð4ð4ð4ð4rr©có—eZdZdZdZdd„ZdS)ÚMarkSafeIfAutoescapez�Mark the wrapped expression as safe (wrap it as `Markup`) but only if autoescaping is active. .. versionadded:: 2.5 rªNcó°—t||¦«}|jrt¦«‚|j |¦«}|jrt |¦«S|Sr)rYrGr%rtrårFr)rHrärts rråzMarkSafeIfAutoescape.as_constásW€Ý# D¨(Ñ3Ô3ˆØ Ô ð Ý‘,”,Ð ØŒy×!Ò! (Ñ+Ô+ˆØ Ô ð ݘ$‘<”<Р؈ rrrrrrr­r­Øs9€€€€€ððð €Fððððððrr­có—eZdZdZdS)ÚContextReferenceaPReturns the current template context. It can be used like a :class:`Name` node, with a ``'load'`` ctx and will return the current :class:`~jinja2.runtime.Context` object. Here an example that assigns the current template name to a variable named `foo`:: Assign(Name('foo', ctx='store'), Getattr(ContextReference(), 'name')) This is basically equivalent to using the :func:`~jinja2.contextfunction` decorator when using the high-level API, which causes a reference to the context to be passed as the first argument to a function. Nr&rrrr°r°ës€€€€€ððððrr°có—eZdZdZdS)ÚDerivedContextReferencezÉReturn the current template context including locals. Behaves exactly like :class:`ContextReference`, but includes local variables, such as from a ``for`` loop. .. versionadded:: 2.11 Nr&rrrr²r²ýs€€€€€ððððrr²có—eZdZdZdS)ÚContinuezContinue a loop.Nr&rrrr´r´s€€€€€ØÐÐÐrr´có—eZdZdZdS)ÚBreakz Break a loop.Nr&rrrr¶r¶ s€€€€€ØÐÐÐrr¶có—eZdZdZdZdS)ÚScopezAn artificial scope.r«Nr­rrrr¸r¸s€€€€€ØÐà €F€F€Frr¸có—eZdZdZdZdS)Ú OverlayScopea§An overlay scope for extensions. This is a largely unoptimized scope that however can be used to introduce completely arbitrary variables into a sub scope from a dictionary or dictionary like object. The `context` field has to evaluate to a dictionary object. Example usage:: OverlayScope(context=self.call_method('get_context'), body=[...]) .. versionadded:: 2.10 )Úcontextr¬Nr­rrrrºrºs€€€€€ð ð ð!€F€F€Frrºcó—eZdZdZdZdS)ÚEvalContextModifiera Modifies the eval context. For each option that should be modified, a :class:`Keyword` has to be added to the :attr:`options` list. Example to change the `autoescape` setting:: EvalContextModifier(options=[Keyword('autoescape', Const(True))]) )ÚoptionsNr­rrrr½r½%s€€€€€ððð€F€F€Frr½có—eZdZdZdZdS)ÚScopedEvalContextModifierzÈModifies the eval context and reverts it later. Works exactly like :class:`EvalContextModifier` but will only modify the :class:`~jinja2.nodes.EvalContext` for nodes in the :attr:`body`. r«Nr­rrrrÀrÀ1s€€€€€ððð €F€F€FrrÀcó —td¦«‚)Nzcan't create custom node typesr§)rÁrBs rÚ _failing_newrÂ;s€Ý Ð4Ñ 5Ô 5Ð5r)pr*rîÚ collectionsrÚ markupsaferÚ_compatrrrr ÚmulÚtruedivÚfloordivÚpowÚmodÚaddÚsubrðÚnot_ÚposÚnegrùrrrÚger Úlerwrñr%r8r,r¢rArYr[r¥r¨rªr°r´r·r½rÀrÄrÇrÊrÎrÑrÕr×rÚrÝrßrárérörûrr r rrr(r.r3r8r;rErGrSrWrYrarerorsr{r’Úsortedr5r~r�rƒr…r‡r‰r‹r�r“r—r™r›r�rŸr¢r¥r©r­r°r²r´r¶r¸rºr½rÀrÂÚ staticmethodr9rrrúrÔsà ðððð€€€ØÐÐÐÐÐàÐÐÐÐÐàÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ð ŒØ Ô Ø Ô Ø Œ,Ø ŒØ ŒØ Œðð€ð!œ ¨H¬L¸x¼|ÐLÐL€ ð Œ+Ø Œ+Ø Œ+Ø ŒKØ Œ+Ø ŒKØ Ð Ø $Ð $ð ð €ðCðCðCðCðC�ñCôCðCð1ð1ð1ð1ð1ˆtñ1ô1ð1ð""ð"ð"ð"ð"�&ñ"ô"ð"ð* ð ð ðiðiðiðiðiˆ>ˆ>˜( FÑ +Ô +ñiôiðiðXððððˆ4ñôðð ððððˆTñôðð ððððˆtñôððððððˆTñôððððððˆdñôðð Fð Fð Fð Fð Fˆ$ñ Fô Fð Fð0ð0ð0ð0ð0ˆñ0ô0ð0ð 2ð2ð2ð2ð2ˆDñ2ô2ð2ð2ð2ð2ð2ð2�ñ2ô2ð2ð ð ð ð ð �$ñ ô ð ð +ð+ð+ð+ð+ˆ4ñ+ô+ð+ð(ð(ð(ð(ð(ˆDñ(ô(ð(ð <ð<ð<ð<ð<ˆdñ<ô<ð<ð 4ð4ð4ð4ð4ˆTñ4ô4ð4ð 3ð 3ð 3ð 3ð 3�ñ 3ô 3ð 3ðððððˆtñôðð  ð ð ð ð ˆTñ ô ð ð *ð*ð*ð*ð*�$ñ*ô*ð*ð ððððˆ4ñôðð.ððððˆdñôðð,ðððð�ñôðð, Sð Sð Sð Sð Sˆ4ñ Sô Sð Sð ð ð ð ð ˆDñ ô ð ðððððˆdñôðð Bð Bð Bð Bð BˆGñ Bô Bð BðF ð ð ð ð �7ñ ô ð ðððððˆGñôðð&:ð:ð:ð:ð:ˆ7ñ:ô:ð:ð >ð >ð >ð >ð >ˆ7ñ >ô >ð >ðJðJðJðJðJˆ6ñJôJðJð7ð7ð7ð7ð7ˆfñ7ô7ð7ð-ð-ð-ð-ð-ˆtñ-ô-ð-ð&ððð&,ð,ð,ð,ð,ˆTñ,ô,ð,ð^ððððˆ4ñôðð.BðBðBðBðBˆ4ñBôBðBðððððˆdñôðð(ððððˆdñôðð(LðLðLðLðLˆDñLôLðLð$ Lð Lð Lð Lð LˆTñ Lô Lð Lðððððˆdñôðð4ððððˆfñôðð Ø €O„OÐBÀTÇYÂY؈ð ð à�S˜Ñ(Ô(¨3¨3¨}Ñ+=Ô+=Ñ=ÀÀÀNÑ@SÔ@SÑSð ñ ô ñ ô ñFôFññ€O„Oðððððˆ'ñôðð ððððˆ'ñôðð ððððˆwñôððððððˆ'ñôðð ððððˆ'ñôðð ððððˆ'ñôðð ððððˆ'ñôðð NðNðNðNðNˆ'ñNôNðNðMðMðMðMðMˆñMôMðMðððððˆ)ñôðð ððððˆ)ñôðð ððððˆ)ñôðððððð˜4ñôðð$ð$ð$ð$ð$˜ñ$ô$ð$ððððð�4ñôðð ð ð ð ð �4ñ ô ð ð"4ð4ð4ð4ð4ˆtñ4ô4ð4ððððð˜4ñôðð&ðððð�tñôðð$ðððð˜dñôððððððˆtñôððððððˆDñôððððððˆDñôðð !ð!ð!ð!ð!�4ñ!ô!ð!ð" ð ð ð ð ˜$ñ ô ð ðððððÐ 3ñôðð6ð6ð6ð �<  Ñ-Ô-€ÔØ€L€Lr