OwlCyberSecurity - MANAGER
Edit File: _ast_util.cpython-311.pyc
� ������hO���������������������������d�Z�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�dd lm Z �dd lm Z �ddlmZ�ddlmZ�dd lm Z �ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�dd lm Z �ed!ed"iZ!ed#ed$ed%ed&e d'ed(ed)ed*ed+ed,ed-iZ"e d.ed/ed0ed1ed2ed3ed4ed5ed6ed7i Z#ed8ed9ed#e d$iZ$i�Z%e%�&��������������������e!�������������e%�&��������������������e"�������������e%�&��������������������e#�������������e%�&��������������������e$�������������dEd<�Z'd=��Z(�G�d>��d?������������Z)�G�d@��dAe)������������Z*�G�dB��dCe)������������Z+dDS�)Fz� ast ~~~ This is a stripped down version of Armin Ronacher's ast module. :copyright: Copyright 2008 by Armin Ronacher. :license: Python License. �����)�Add)�And)�AST)�BitAnd)�BitOr)�BitXor)�Div)�Eq)�FloorDiv)�Gt)�GtE)�If)�In)�Invert)�Is)�IsNot)�LShift)�Lt)�LtE)�Mod)�Mult)�Name)�Not)�NotEq)�NotIn)�Or)� PyCF_ONLY_AST)�RShift)�Sub)�UAdd)�USub�and�or�+�-�*�/z//�%z<<z>>�|�&�^z==�>z>=�in�iszis not�<z<=z!=znot in�~�not� <unknown>�execc������������������0�����t����������|�||t����������������������S�)z%Parse an expression into an AST node.)�compiler���)�expr�filename�modes��� �E/opt/cloudlinux/venv/lib64/python3.11/site-packages/mako/_ast_util.py�parser:���Y���s�������4��4��7�7�7�����c��������������#����h���K����|�j���������D�]'} �|t����������|�|������������fV����#�t����������$�r�Y��$w�xY�wdS�)zAIterate over all fields of a node, only yielding existing fields.N)�_fields�getattr�AttributeError)�node�fields��� r9����iter_fieldsrB���^���sf������������������ ����u�-�-�-�-�-�-�-���� �� �� ��D� ������s����"� /�/c��������������������$�����e�Zd�ZdZd��Zd��Zd��ZdS�)�NodeVisitora��� Walks the abstract syntax tree and call visitor functions for every node found. The visitor functions may return values which will be forwarded by the `visit` method. Per default the visitor functions for the nodes are ``'visit_'`` + class name of the node. So a `TryFinally` node visit function would be `visit_TryFinally`. This behavior can be changed by overriding the `get_visitor` function. If no visitor function exists for a node (return value `None`) the `generic_visit` visitor is used instead. Don't use the `NodeVisitor` if you want to apply changes to nodes during traversing. For this a special visitor exists (`NodeTransformer`) that allows modifications. c������������������B�����d|j���������j��������z���}t����������|�|d������������S�)z� Return the visitor function for this node or `None` if no visitor exists for this node. In that case the generic visit function is used instead. �visit_N)� __class__�__name__r>���)�selfr@����methods��� r9����get_visitorzNodeVisitor.get_visitorz���s%��������D�N�3�3���t�V�T�*�*�*r;���c������������������p�����|�����������������������|������������}|��||������������S�|����������������������|������������S�)z Visit a node.)rK���� generic_visit)rI���r@����fs��� r9����visitzNodeVisitor.visit����s;���������T�"�"���=��1�T�7�7�N��!�!�$�'�'�'r;���c����������������������t����������|������������D�]t\��}}t����������|t����������������������r0|D�],}t����������|t����������������������r|����������������������|��������������-�Jt����������|t����������������������r|����������������������|��������������udS�)z9Called if no explicit visitor function exists for a node.N)rB���� isinstance�listr���rO���)rI���r@���rA����value�items��� r9���rM���zNodeVisitor.generic_visit����s�������'��-�-�� "�� "�L�E�5��%��&�&�� "�!��)��)�D�!�$��,�,��)�� � �4�(�(�(��)���E�3�'�'�� "�� � �5�!�!�!�� "�� "r;���N)rH���� __module__�__qualname__�__doc__rK���rO���rM�����r;���r9���rD���rD���h���sK����������������� +��+��+�(��(��(�"��"��"��"��"r;���rD���c�������������������������e�Zd�ZdZd��ZdS�)�NodeTransformera�� Walks the abstract syntax tree and allows modifications of nodes. The `NodeTransformer` will walk the AST and use the return value of the visitor functions to replace or remove the old node. If the return value of the visitor function is `None` the node will be removed from the previous location otherwise it's replaced with the return value. The return value may be the original node in which case no replacement takes place. Here an example transformer that rewrites all `foo` to `data['foo']`:: class RewriteName(NodeTransformer): def visit_Name(self, node): return copy_location(Subscript( value=Name(id='data', ctx=Load()), slice=Index(value=Str(s=node.id)), ctx=node.ctx ), node) Keep in mind that if the node you're operating on has child nodes you must either transform the child nodes yourself or call the generic visit function for the node first. Nodes that were part of a collection of statements (that applies to all statement nodes) may also return a list of nodes rather than just a single node. Usually you use the transformer like this:: node = YourTransformer().visit(node) c����������������������t����������|������������D�]�\��}}t����������||d�������������}t����������|t����������������������r|g�}|D�]o}t����������|t����������������������rC|����������������������|������������}|��/t����������|t����������������������s|���������������������|��������������Z|���������������������|��������������p||d�d��<�����t����������|t����������������������r9|����������������������|������������}|�t����������||���������������t����������|||���������������|S��N) rB���r>���rQ���rR���r���rO����extend�append�delattr�setattr)rI���r@���rA���� old_value� new_valuesrS����new_nodes��� r9���rM���zNodeTransformer.generic_visit����s#����� +�D� 1� 1�� 3�� 3��E�9���e�T�2�2�I��)�T�*�*�� 3�� �&��-��-�E�!�%��-�-��%� $� � �5� 1� 1�� �=�$�!+�E�3�!7�!7��%�&�-�-�e�4�4�4�$��%�%�e�,�,�,�,�)� �!�!�!����I�s�+�+�� 3��:�:�i�0�0���#��D�%�(�(�(�(��D�%��2�2�2���r;���N)rH���rU���rV���rW���rM���rX���r;���r9���rZ���rZ�������s.�������������� �� �D��������r;���rZ���c�������������������������e�Zd�ZdZd��Zd��ZdEd�Zd��Zd��Zd��Z d ��Z d ��Zd��Zd��Z d ��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Z d ��Z!d!��Z"d"��Z#d#��Z$d$��Z%d%��Z&d&��Z'd'��Z(d(��Z)d)��Z*d*��Z+�e+d+d,������������Z,�e+d-d.������������Z-[+d/��Z.d0��Z/d1��Z0d2��Z1d3��Z2d4��Z3d5��Z4d6��Z5d7��Z6d8��Z7d9��Z8d:��Z9�e9d+d,������������Z:�e9d;d<������������Z;�e9d-d.������������Z<[9d=��Z=d>��Z>d?��Z?d@��Z@dA��ZAdB��ZBdC��ZCdDS�)F�SourceGeneratorz� This visitor is able to transform a well formed syntax tree into python sourcecode. For more details have a look at the docstring of the `node_to_source` function. c������������������>�����g�|�_���������||�_��������d|�_��������d|�_��������d�S�)Nr���)�result�indent_with�indentation� new_lines)rI���rh���s��� r9����__init__zSourceGenerator.__init__����s$���������&����������r;���c�����������������������|�j���������rW|�j��������r"|�j�����������������������������d|�j���������z���������������|�j�����������������������������|�j��������|�j��������z���������������d|�_���������|�j�����������������������������|�������������d�S�)N� r���)rj���rg���r^���rh���ri���)rI����xs��� r9����writezSourceGenerator.write����sw�������>�� ��{�� :���"�"�4�$�.�#8�9�9�9��K���t�/�$�2B�B�C�C�C��D�N�����1�����r;�������c������������������:�����t����������|�j��������|������������|�_��������d�S�r\���)�maxrj���)rI����ns��� r9����newlinezSourceGenerator.newline����s�������T�^�Q�/�/����r;���c�����������������������d|�_���������|�xj��������dz ��c_��������|D�]}|����������������������|��������������|�xj��������dz��c_��������d�S�)NTrp���)�new_lineri���rO���)rI���� statements�stmts��� r9����bodyzSourceGenerator.body����s[�������� ����A������ �� �D��J�J�t��������A�����r;���c������������������������|�����������������������|j����������������������|j��������rE|�������������������������������������|����������������������d�������������|�����������������������|j���������������������d�S�d�S�)N�else:)ry����orelsert���ro����rI���r@���s��� r9����body_or_elsezSourceGenerator.body_or_else����sc������� � �$�)�����;�� #��L�L�N�N�N��J�J�w�����I�I�d�k�"�"�"�"�"� #�� #r;���c������������������ �������g�����fd�}d�gt����������|j��������������������t����������|j��������������������z ��z��}t����������|j��������||j��������z���������������D�]P\��}}�|��������������������������������������|�������������|�*�����������������������d������������������������������������|��������������Q|j���������,�|��������������������������������������d|j��������j��������z����������������|j���������.�|��������������������������������������d|j��������j��������z����������������d�S�d�S�)Nc�������������������d�������r������������������������d�������������d�S�����������������������d�������������d�S��N�, T�ro���r^����rI���� want_commas�����r9����write_commaz.SourceGenerator.signature.<locals>.write_comma�����=��������� (�� � �4� � � � � ��!�!�$�'�'�'�'�'r;����=r&����**) �len�args�defaults�ziprO���ro����vararg�arg�kwarg)rI���r@���r�����paddingr�����defaultr����s���` @r9���� signaturezSourceGenerator.signature����s�������� � (�� (�� (�� (�� (�� (���&�C�� �N�N�S���-?�-?�?�@���� �7�T�]�+B�C�C�� $�� $�L�C���K�M�M�M��J�J�s�O�O�O��"�� � �3����� � �7�#�#�#���;�"��K�M�M�M��J�J�s�T�[�_�,�-�-�-��:�!��K�M�M�M��J�J�t�d�j�n�,�-�-�-�-�-��"�!r;���c�����������������������|j���������D�]@}|�������������������������������������|����������������������d�������������|����������������������|��������������Ad�S�)N�@)�decorator_listrt���ro���rO���)rI���r@���� decorators��� r9���� decoratorszSourceGenerator.decorators��sO�������,�� "�� "�I��L�L�N�N�N��J�J�s�O�O�O��J�J�y�!�!�!�!� "�� "r;���c����������������������|��������������������������������������t����������|j��������������������D�]1\��}}|r|����������������������d�������������|����������������������|��������������2|����������������������d�������������|����������������������|j���������������������d�S�)Nr����z = )rt���� enumerate�targetsro���rO���rS����rI���r@����idx�targets��� r9����visit_AssignzSourceGenerator.visit_Assign��s�������������$�T�\�2�2�� �� �K�C���� !�� � �4� � � ��J�J�v������ � �5����� � �4�:�����r;���c�����������������������|��������������������������������������|����������������������|j���������������������|����������������������t����������t����������|j�����������������������������dz����������������|����������������������|j���������������������d�S�)Nr����)rt���rO���r����ro���� BINOP_SYMBOLS�type�oprS���r}���s��� r9����visit_AugAssignzSourceGenerator.visit_AugAssign ��sa������������� � �4�;����� � �=��d�g���/�#�5�6�6�6�� � �4�:�����r;���c������������������ ����|��������������������������������������|����������������������dd|j��������z���|j���������d��������������t ����������|j��������������������D�]1\��}}|r|����������������������d�������������|����������������������|��������������2d�S�)Nzfrom �.z import r����)rt���ro����level�moduler�����names�rI���r@���r����rT���s��� r9����visit_ImportFromz SourceGenerator.visit_ImportFrom&��s�������������� � � �#�� �*:�*:�D�K�K�K�H�I�I�I�"�4�:�.�.�� �� �I�C���� !�� � �4� � � ��J�J�t����� �� r;���c�����������������������|��������������������������������������|j��������D�],}|����������������������d�������������|����������������������|��������������-d�S�)Nzimport )rt���r����ro���rO���)rI���r@���rT���s��� r9����visit_ImportzSourceGenerator.visit_Import.��sQ�������������J�� �� �D��J�J�y�!�!�!��J�J�t����� �� r;���c������������������X�����|��������������������������������������|����������������������|�������������d�S�r\���)rt���rM���r}���s��� r9���� visit_ExprzSourceGenerator.visit_Expr4��s)���������������4� � � � � r;���c������������������P����|�����������������������d��������������|����������������������|�������������|��������������������������������������|����������������������d|j��������z���������������|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������d�S�)N�����rs���zdef %s(�):)rt���r����ro����namer����r����ry���r}���s��� r9����visit_FunctionDefz!SourceGenerator.visit_FunctionDef8��s����������q������������������� � �9�t�y�(�)�)�)����t�y�!�!�!�� � �4����� � �$�)�����r;���c������������������h�������g�����fd�}������������������������d�������������������������������������|���������������������������������������������������������������������������d|j��������z���������������|j��������D�]!}�|��������������������������������������|��������������"t ����������|d������������r�|j��������D�]C}�|��������������������������������������|j��������dz���������������������������������������|j ����������������������Dt����������|dd�������������r9�|��������������������������������������d������������������������������������|j���������������������t����������|d d�������������r9�|��������������������������������������d ������������������������������������|j���������������������������������������������rdpd���������������� ��������������������|j ���������������������d�S�) Nc���������������������������r�����������������������d�������������d�S������������������������d������������������������������������d�������������d�S�)Nr����T�(r����)� have_argsrI���s�����r9����paren_or_commaz6SourceGenerator.visit_ClassDef.<locals>.paren_or_commaD��sJ��������� �� � �4� � � � � �� � ��&�&�&�� � �3�����r;�������r����zclass %s�keywordsr�����starargsr&����kwargsr����r�����:)rt���r����ro���r�����basesrO����hasattrr����r����rS���r>���r����r����ry���)rI���r@���r�����base�keywordr����s���` @r9����visit_ClassDefzSourceGenerator.visit_ClassDefA��s��������� � �� �� �� �� �� �� ���q������������������� � �:�� �)�*�*�*��J�� �� �D��N�����J�J�t�������4��$�$�� (��=�� *�� *���� � � �� � �7�;��,�-�-�-�� � �7�=�)�)�)�)��t�Z��.�.�� *��� � � �� � �3����� � �4�=�)�)�)��t�X�t�,�,�� (��� � � �� � �4� � � �� � �4�;�'�'�'�� � �9�%��,��-�-�-�� � �$�)�����r;���c�����������������������|��������������������������������������|����������������������d�������������|����������������������|j���������������������|����������������������d�������������|����������������������|j��������������������� �|j��������}t ����������|������������dk����r�t����������|d���������t����������������������r{|d���������}|��������������������������������������|����������������������d�������������|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������n@|��������������������������������������|����������������������d�������������|����������������������|�������������d�S���)Nzif r����Trp���r���zelif r{���) rt���ro���rO����testry���r|���r����rQ���r���)rI���r@����else_s��� r9����visit_IfzSourceGenerator.visit_Ifd��s"������������ � �5����� � �4�9����� � �3����� � �$�)���� ��K�E��5�z�z�Q���:�e�A�h��#;�#;���Q�x��������� � �7�#�#�#�� � �4�9�%�%�%�� � �3����� � �$�)�$�$�$�$�������� � �7�#�#�#�� � �%� � � ��� r;���c������������������>����|��������������������������������������|����������������������d�������������|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������|����������������������d�������������|����������������������|�������������d�S�)Nzfor � in r����)rt���ro���rO���r�����iterr~���r}���s��� r9���� visit_ForzSourceGenerator.visit_Fory��s�������������� � �6����� � �4�;����� � �6����� � �4�9����� � �3�������$�����r;���c������������������������|��������������������������������������|����������������������d�������������|����������������������|j���������������������|����������������������d�������������|����������������������|�������������d�S�)Nzwhile r����)rt���ro���rO���r����r~���r}���s��� r9����visit_WhilezSourceGenerator.visit_While���s^������������� � �8����� � �4�9����� � �3�������$�����r;���c������������������V����|��������������������������������������|����������������������d�������������|����������������������|j���������������������|j���������/|����������������������d�������������|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������d�S�)Nzwith � as r����)rt���ro���rO����context_expr� optional_varsry���r}���s��� r9���� visit_WithzSourceGenerator.visit_With���s�������������� � �7����� � �4�$�%�%�%���)��J�J�v�����J�J�t�)�*�*�*�� � �3����� � �$�)�����r;���c������������������X�����|��������������������������������������|����������������������d�������������d�S�)N�pass�rt���ro���r}���s��� r9���� visit_PasszSourceGenerator.visit_Pass���s'������������� � �6�����r;���c������������������x����|��������������������������������������|����������������������d�������������d}|j���������1|����������������������d�������������|����������������������|j���������������������d}|j��������D�]0}|r|����������������������d�������������|����������������������|�������������d}�1|j��������s|����������������������d�������������d�S�d�S�)Nzprint Fz >> Tr�����,)rt���ro����destrO����values�nl)rI���r@���r����rS���s��� r9����visit_PrintzSourceGenerator.visit_Print���s�������������� � �8����� ��9� ��J�J�v�����J�J�t�y�!�!�!��J��[�� �� �E��� !�� � �4� � � ��J�J�u�����J�J��w�� ��J�J�s�O�O�O�O�O� �� r;���c������������������������|��������������������������������������|����������������������d�������������t����������|������������D�]1\��}}|r|����������������������d�������������|����������������������|��������������2d�S�)Nzdel r����)rt���ro���r����rO���r����s��� r9����visit_DeletezSourceGenerator.visit_Delete���ss������������� � �6����$�T�?�?�� �� �K�C���� !�� � �4� � � ��J�J�v����� �� r;���c������������������������|��������������������������������������|����������������������d�������������|����������������������|j���������������������|j��������D�]}|����������������������|��������������d�S�)N�try:)rt���ro���ry����handlersrO���)rI���r@����handlers��� r9����visit_TryExceptzSourceGenerator.visit_TryExcept���se������������� � �6����� � �$�)�����}�� �� �G��J�J�w����� �� r;���c����������������������|��������������������������������������|����������������������d�������������|����������������������|j���������������������|��������������������������������������|����������������������d�������������|����������������������|j���������������������d�S�)Nr����zfinally:)rt���ro���ry���� finalbodyr}���s��� r9����visit_TryFinallyz SourceGenerator.visit_TryFinally���sn������������� � �6����� � �$�)����������� � �:����� � �$�.�!�!�!�!�!r;���c�����������������������|��������������������������������������|����������������������dd���������������������|j��������������������z����������������d�S�)Nzglobal r�����rt���ro����joinr����r}���s��� r9����visit_GlobalzSourceGenerator.visit_Global���s:������������� � �9�t�y�y���4�4�4�5�5�5�5�5r;���c�����������������������|��������������������������������������|����������������������dd���������������������|j��������������������z����������������d�S�)Nz nonlocal r����r����r}���s��� r9����visit_NonlocalzSourceGenerator.visit_Nonlocal���s:������������� � �;����4�:�!6�!6�6�7�7�7�7�7r;���c�����������������������|��������������������������������������|����������������������d�������������|����������������������|j���������������������d�S�)Nzreturn )rt���ro���rO���rS���r}���s��� r9����visit_ReturnzSourceGenerator.visit_Return���s;������������� � �9����� � �4�:�����r;���c������������������X�����|��������������������������������������|����������������������d�������������d�S�)N�breakr����r}���s��� r9����visit_BreakzSourceGenerator.visit_Break���s'������������� � �7�����r;���c������������������X�����|��������������������������������������|����������������������d�������������d�S�)N�continuer����r}���s��� r9����visit_ContinuezSourceGenerator.visit_Continue���s'������������� � �:�����r;���c����������������������|��������������������������������������|����������������������d�������������t����������|d������������rp|j���������i|����������������������d�������������|����������������������|j���������������������|j���������1|����������������������d�������������|����������������������|j���������������������d�S�d�S�t����������|d������������r�|j����������|����������������������|j���������������������|j���������/|����������������������d�������������|����������������������|j���������������������|j���������5|����������������������d�������������|����������������������|j���������������������d�S�d�S�d�S�d�S�)N�raise�exc� z from r����r����) rt���ro���r����r����rO����causer�����inst�tbackr}���s��� r9����visit_RaisezSourceGenerator.visit_Raise���sB������������ � �7�����4����� '�D�H�$8��J�J�s�O�O�O��J�J�t�x� � � ��z�%�� � �8�$�$�$�� � �4�:�&�&�&�&�&��&�%���T�6� "� "�� '�t�y�'<��J�J�t�y�!�!�!��y�$�� � �4� � � �� � �4�9�%�%�%��z�%�� � �4� � � �� � �4�:�&�&�&�&�&� '�� '�'<�'<� �&�%r;���c������������������t�����|�����������������������|j���������������������|����������������������d|j��������z����������������d�S�)Nr����)rO���rS���ro����attrr}���s��� r9����visit_AttributezSourceGenerator.visit_Attribute���s4������� � �4�:����� � �3���?�#�#�#�#�#r;���c�������������������������g�����fd�}������������������������|j��������������������������������������������d�������������|j��������D�]!}�|���������������������������������������|��������������"|j��������D�]C}�|��������������������������������������|j��������dz����������������������������������������|j����������������������Dt����������|dd�������������r9�|��������������������������������������d�������������������������������������|j���������������������t����������|dd�������������r9�|��������������������������������������d�������������������������������������|j ��������������������������������������������d�������������d�S�) Nc�������������������d�������r������������������������d�������������d�S�����������������������d�������������d�S�r����r����r����s�����r9���r����z/SourceGenerator.visit_Call.<locals>.write_comma���r����r;���r����r����r����r&���r����r�����)) rO����funcro���r����r����r����rS���r>���r����r����)rI���r@���r����r����r����r����s���` @r9���� visit_CallzSourceGenerator.visit_Call���s_�������� � (�� (�� (�� (�� (�� (�� � � �4�9����� � �3�����9�� �� �C��K�M�M�M��J�J�s�O�O�O�O��}�� &�� &�G��K�M�M�M��J�J�w�{�S�(�)�)�)��J�J�w�}�%�%�%�%��4��T�*�*�� &��K�M�M�M��J�J�s�O�O�O��J�J�t�}�%�%�%��4��4�(�(�� $��K�M�M�M��J�J�t�����J�J�t�{�#�#�#�� � �3�����r;���c������������������:�����|�����������������������|j���������������������d�S�r\���)ro����idr}���s��� r9���� visit_NamezSourceGenerator.visit_Name ��s������� � �4�7�����r;���c������������������T�����|�����������������������t����������|j���������������������������������d�S�r\���)ro����strrS���r}���s��� r9����visit_NameConstantz"SourceGenerator.visit_NameConstant��s"������� � �3�t�z�?�?�#�#�#�#�#r;���c������������������:�����|�����������������������|j���������������������d�S�r\���)ro���r����r}���s��� r9���� visit_argzSourceGenerator.visit_arg��s������� � �4�8�����r;���c������������������T�����|�����������������������t����������|j���������������������������������d�S�r\����ro����repr�sr}���s��� r9���� visit_StrzSourceGenerator.visit_Str���"������� � �4���<�<� � � � � r;���c������������������T�����|�����������������������t����������|j���������������������������������d�S�r\���r��r}���s��� r9����visit_ByteszSourceGenerator.visit_Bytes��r��r;���c������������������T�����|�����������������������t����������|j���������������������������������d�S�r\���)ro���r��rs���r}���s��� r9���� visit_NumzSourceGenerator.visit_Num��r��r;���c������������������T�����|�����������������������t����������|j���������������������������������d�S�r\���)ro���r��rS���r}���s��� r9����visit_ConstantzSourceGenerator.visit_Constant��s$������� � �4�� �#�#�$�$�$�$�$r;���c������������������������|�����������������������d�������������d}t����������|j��������������������D�]1\��}}|r|�����������������������d�������������|����������������������|��������������2|�����������������������|rdpd�������������d�S�)Nr�������r����r��z,)�ro���r�����eltsrO���r����s��� r9����visit_TuplezSourceGenerator.visit_Tuple��s�������� � �3������"�4�9�-�-�� �� �I�C���� !�� � �4� � � ��J�J�t������ � �3�;�3�&�$�'�'�'�'�'r;���c�����������������������������fd�}|S�)Nc�������������������������|�������������������������������������t����������|j��������������������D�]1\��}}|r|�����������������������d�������������|����������������������|��������������2|�������������������������������������d�S��Nr����r��)rI���r@���r����rT����left�rights��� ��r9���rO���z-SourceGenerator.sequence_visit.<locals>.visit)��sy��������J�J�t����&�t�y�1�1�� !�� !� ��T���%��J�J�t�$�$�$�� � �4� � � � ��J�J�u�����r;���rX����r"��r#��rO���s���`` r9����sequence_visitzSourceGenerator.sequence_visit(��s)�������� �� �� �� �� �� ���r;����[�]�{�}c������������������f����|�����������������������d�������������t����������t����������|j��������|j��������������������������������D�]^\��}\��}}|r|�����������������������d�������������|����������������������|�������������|�����������������������d�������������|����������������������|��������������_|�����������������������d�������������d�S�)Nr(��r�����: r)��)ro���r����r�����keysr����rO���)rI���r@���r�����keyrS���s��� r9���� visit_DictzSourceGenerator.visit_Dict7��s�������� � �3����!*�3�t�y�$�+�+F�+F�!G�!G�� �� ��C��#�u��� !�� � �4� � � ��J�J�s�O�O�O��J�J�t�����J�J�u������ � �3�����r;���c������������������,����|�����������������������d�������������|����������������������|j���������������������|�����������������������dt����������t ����������|j�����������������������������z���������������|����������������������|j���������������������|�����������������������d�������������d�S��Nr����z %s r��)ro���rO���r"��r����r����r����r#��r}���s��� r9����visit_BinOpzSourceGenerator.visit_BinOpA��sp������� � �3����� � �4�9����� � �6�M�$�t�w�-�-�8�8�9�9�9�� � �4�:����� � �3�����r;���c������������������&����|�����������������������d�������������t����������|j��������������������D�]Q\��}}|r5|�����������������������dt����������t ����������|j�����������������������������z���������������|����������������������|��������������R|�����������������������d�������������d�S�r0��)ro���r����r�����BOOLOP_SYMBOLSr����r����rO���)rI���r@���r����rS���s��� r9����visit_BoolOpzSourceGenerator.visit_BoolOpH��s�������� � �3����#�D�K�0�0�� �� �J�C���� C�� � �6�N�4���=�=�$A�A�B�B�B��J�J�u������ � �3�����r;���c������������������X����|�����������������������d�������������|����������������������|j���������������������t����������|j��������|j��������������������D�]J\��}}|�����������������������dt����������t����������|���������������������z���������������|����������������������|��������������K|�����������������������d�������������d�S�r0��)ro���rO���r"��r�����ops�comparators� CMPOP_SYMBOLSr����)rI���r@���r����r#��s��� r9���� visit_ComparezSourceGenerator.visit_CompareP��s�������� � �3����� � �4�9�����T�X�t�'7�8�8�� �� �I�B���J�J�v� �d�2�h�h� 7�7�8�8�8��J�J�u������ � �3�����r;���c������������������,����|�����������������������d�������������t����������t����������|j�����������������������������}|�����������������������|�������������|dk����r|�����������������������d�������������|����������������������|j���������������������|�����������������������d�������������d�S�)Nr����r1���r����r��)ro����UNARYOP_SYMBOLSr����r����rO����operand)rI���r@���r����s��� r9���� visit_UnaryOpzSourceGenerator.visit_UnaryOpX��sq������� � �3���� �T�$�'�]�]� +��� � �2���� ��;�;��J�J�s�O�O�O�� � �4�<� � � �� � �3�����r;���c������������������������|�����������������������|j���������������������|����������������������d�������������|�����������������������|j���������������������|����������������������d�������������d�S�)Nr&��r'��)rO���rS���ro����slicer}���s��� r9����visit_SubscriptzSourceGenerator.visit_Subscripta��sL������� � �4�:����� � �3����� � �4�:����� � �3�����r;���c������������������|����|j����������|����������������������|j����������������������|����������������������d�������������|j���������|����������������������|j���������������������|j���������[|����������������������d�������������t����������|j��������t����������������������r|j��������j��������dk����s|����������������������|j���������������������d�S�d�S�d�S�)Nr�����None)�lowerrO���ro����upper�steprQ���r���r��r}���s��� r9����visit_SlicezSourceGenerator.visit_Sliceg��s��������:�!��J�J�t�z�"�"�"�� � �3�����:�!��J�J�t�z�"�"�"��9� ��J�J�s�O�O�O��t�y�$�/�/�� &�D�I�L�F�4J�4J�� � �4�9�%�%�%�%�%��!� �4J�4Jr;���c������������������x�����|j���������D�]1\��}}|r|����������������������d�������������|����������������������|��������������2d�S�r!��)�dimsro���rO���r����s��� r9����visit_ExtSlicezSourceGenerator.visit_ExtSlicer��sP��������� �� �I�C���� !�� � �4� � � ��J�J�t����� �� r;���c������������������d�����|�����������������������d�������������|����������������������|j���������������������d�S�)Nzyield �ro���rO���rS���r}���s��� r9����visit_YieldzSourceGenerator.visit_Yieldx��s.������� � �8����� � �4�:�����r;���c������������������������|�����������������������d�������������|����������������������|j���������������������|�����������������������d�������������|����������������������|j���������������������d�S�)Nzlambda r+��)ro���r����r����rO���ry���r}���s��� r9����visit_LambdazSourceGenerator.visit_Lambda|��sT������� � �9�������t�y�!�!�!�� � �4����� � �4�9�����r;���c������������������0�����|�����������������������d�������������d�S�)N�Ellipsis)ro���r}���s��� r9����visit_EllipsiszSourceGenerator.visit_Ellipsis���s������� � �:�����r;���c�����������������������������fd�}|S�)Nc�������������������������|�������������������������������������|����������������������|j���������������������|j��������D�]}|����������������������|��������������|�������������������������������������d�S�r\���)ro���rO����elt� generators)rI���r@���� comprehensionr"��r#��s��� ��r9���rO���z.SourceGenerator.generator_visit.<locals>.visit���sg��������J�J�t�����J�J�t�x� � � �!%��� *�� *� �� � �=�)�)�)�)��J�J�u�����r;���rX���r$��s���`` r9����generator_visitzSourceGenerator.generator_visit���s)�������� �� �� �� �� �� ���r;���r����r��c������������������*����|�����������������������d�������������|����������������������|j���������������������|�����������������������d�������������|����������������������|j���������������������|j��������D�]}|����������������������|��������������|�����������������������d�������������d�S�)Nr(��r+��r)��)ro���rO���r-��rS���rU��)rI���r@���rV��s��� r9����visit_DictCompzSourceGenerator.visit_DictComp���s�������� � �3����� � �4�8����� � �4����� � �4�:����!�_�� &�� &�M��J�J�}�%�%�%�%�� � �3�����r;���c�����������������������|�����������������������|j���������������������|����������������������d�������������|�����������������������|j���������������������|����������������������d�������������|�����������������������|j���������������������d�S�)N� if z else )rO���ry���ro���r����r|���r}���s��� r9����visit_IfExpzSourceGenerator.visit_IfExp���sh������� � �4�9����� � �6����� � �4�9����� � �8����� � �4�;�����r;���c������������������d�����|�����������������������d�������������|����������������������|j���������������������d�S�)Nr&���rK��r}���s��� r9���� visit_StarredzSourceGenerator.visit_Starred���s+������� � �3����� � �4�:�����r;���c�����������������������|�����������������������d�������������|����������������������|j���������������������|�����������������������d�������������d�S�)N�`rK��r}���s��� r9���� visit_ReprzSourceGenerator.visit_Repr���s8������� � �3����� � �4�:����� � �3�����r;���c�����������������������|�����������������������|j���������������������|j���������|�����������������������d|j��������z����������������d�S�d�S�)Nr����)ro���r�����asnamer}���s��� r9����visit_aliaszSourceGenerator.visit_alias���sE������� � �4�9�����;�"��J�J�v���+�,�,�,�,�,��#�"r;���c������������������<����|�����������������������d�������������|����������������������|j���������������������|�����������������������d�������������|����������������������|j���������������������|j��������r4|j��������D�].}|�����������������������d�������������|����������������������|��������������-d�S�d�S�)Nz for r����r[��)ro���rO���r����r�����ifs)rI���r@����if_s��� r9����visit_comprehensionz#SourceGenerator.visit_comprehension���s�������� � �7����� � �4�;����� � �6����� � �4�9�����8�� ��x�� �� ��� � �6�"�"�"�� � �3����� �� � �� r;���c����������������������|��������������������������������������|����������������������d�������������|j���������e|����������������������d�������������|����������������������|j���������������������|j���������/|����������������������d�������������|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������d�S�)N�exceptr����r����r����)rt���ro���r����rO���r����ry���r}���s��� r9����visit_excepthandlerz#SourceGenerator.visit_excepthandler���s�������������� � �8�����9� ��J�J�s�O�O�O��J�J�t�y�!�!�!��y�$�� � �6�"�"�"�� � �4�9�%�%�%�� � �3����� � �$�)�����r;���N)rp���)DrH���rU���rV���rW���rk���ro���rt���ry���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���r��r��r��r ��r��r��r��r��r��r%��� visit_List� visit_Setr.��r1��r4��r9��r=��r@��rF��rI��rL��rN��rQ��rW���visit_ListComp�visit_GeneratorExp� visit_SetComprY��r\��r^��ra��rd��rh��rk��rX���r;���r9���re���re�������s���������������������������0��0��0��0������#��#��#�.��.��.�."��"��"���������������������!��!��!������!��!��!�F�����* �� �� � �� �� ����������������"����� �� �� �"��"��"�6��6��6�8��8��8������ ����������'��'��'�*$��$��$������8�����$��$��$������!��!��!�!��!��!�!��!��!�%��%��%�(��(��(� �� �� �� ���S�)�)�J���s�C�(�(�I�������������������������������� &�� &�� &���������������������������%�_�S�#�.�.�N�(���c�2�2��#�O�C��-�-�M������� �� �� �����������-��-��-� �� �� � �� �� �� �� r;���re���N)r2���r3���),rW����_astr���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���r���r���r ���r!���r3��r����r8��r;���ALL_SYMBOLS�updater:���rB���rD���rZ���re���rX���r;���r9����<module>rt�����s����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������u�b�$�'��������#����d��� �D� �D� �3� �C� �C�� ������������ �8����� �4� �8�� ���3��U�D�#�t�S�A����������>��"��"��"�������=��!��!��!�������=��!��!��!�������?��#��#��#�8��8��8��8� �����*"��*"��*"��*"��*"��*"��*"��*"�Z9��9��9��9��9�k��9��9��9�xx��x��x��x��x�k��x��x��x��x��xr;���