Tryag File Manager
Home
-
Turbo Force
Current Path :
/
usr
/
lib
/
python2.4
/
compiler
/
Upload File :
New :
File
Dir
//usr/lib/python2.4/compiler/pyassem.pyo
mò ‚=5Dc�����������@���s��d��Z��d�k�Z�d�k�Z�d�k�Z�d�k�Z�d�k�l�Z�d�k�l�Z�l �Z �l �Z �l�Z�d�f��d�„��ƒ��YZ�d�„��Z �d�f��d�„��ƒ��YZ�d �Z�d �Z�d�Z�d�Z�d �e�f�d�„��ƒ��YZ�d�„��Z�d�f��d�„��ƒ��YZ�d�„��Z�d�„��Z�d�f��d�„��ƒ��YZ�d�f��d�„��ƒ��YZ�e�ƒ��i�Z�d�S(���s/���A flow graph representation for Python bytecodeN(���s���misc(���s���CO_OPTIMIZEDs���CO_NEWLOCALSs ���CO_VARARGSs���CO_VARKEYWORDSt ���FlowGraphc�����������B���s˜���t��Z�d�„��Z�d�„��Z�d��d�„�Z�d�„��Z�d�„��Z�d�Z�d�„��Z �d�„��Z �d �„��Z�d �„��Z�d�„��Z �d�„��Z�d �„��Z�d�„��Z�d�„��Z�d�„��Z�RS(���Nc���������C���s[���t��ƒ��|��_�|��_�t��d�ƒ�|��_�t�i�ƒ��|��_�|��i�i�|��i�ƒ�|��i�i�|��i�ƒ�d��S(���Nt���exit( ���t���Blockt���selft���currentt���entryR���t���misct���Sett���blockst���add(���R���(����(����t&���/usr/lib/python2.4/compiler/pyassem.pyt���__init__ ���s ����c���������C���sg���|��i�oP�|��i�o7�d�Gt�|��i�ƒ�GHd�G|��i�i�GHd�G|��i�i�ƒ��GHn�t�|�ƒ�GHn�|�|��_�d��S(���Nt���ends��� nexts��� (���R���t���_debugR���t���reprt���nextt���get_childrent���block(���R���R���(����(����R ���t ���startBlock���s���� c���������C���s>���|�d��j�o�|��i�ƒ��}�n�|��i�i�|�ƒ�|��i�|�ƒ�d��S(���N(���R���t���NoneR���t���newBlockR���t���addNextR���(���R���R���(����(����R ���t ���nextBlock���s���� c���������C���s���t��ƒ��}�|��i�i�|�ƒ�|�S(���N(���R���t���bR���R���R ���(���R���R���(����(����R ���R���6���s���� c���������C���s���|��i�|��i�ƒ�d��S(���N(���R���R���R���(���R���(����(����R ���t���startExitBlock;���s����i����c���������C���s ���d�|��_�d��S(���Ni���(���R���R ���(���R���(����(����R ���t ���_enable_debug@���s����c���������C���s ���d�|��_�d��S(���Ni����(���R���R ���(���R���(����(����R ���t���_disable_debugC���s����c���������G���s˜���|��i�o �d�G|�GHn�|�d�d�d�g�j�o�|��i�i�|��i�ƒ�n�t�|�ƒ�d�j�o,�t�|�d�t�ƒ�o�|��i�i�|�d�ƒ�n�|��i�i �|�ƒ�d��S(���Ns��� i����t���RETURN_VALUEt���YIELD_VALUEi���i���( ���R���R ���t���instR���t ���addOutEdgeR���t���lent ���isinstanceR���t���emit(���R���R���(����(����R ���R!���F���s���� 'c���������C���s¦���xL�|��i�i�ƒ��D];�}�|�|��i�j�o�q�n�|�i�p�|�i�|��i�ƒ�q�q�Wt�|��i�h��ƒ�}�|�i �ƒ��|��i�|�|��i�ƒ�|��i�|�j�o�|�i�|��i�ƒ�n�|�S(���sl���Return the blocks in reverse postorder i.e. each node appears before all of its successors N( ���R���R���t���elementsR���R���R���R���t ���dfs_postorderR���t���ordert���reverset ���fixupOrdert���append(���R���R���R$���(����(����R ���t���getBlocksInOrderO���s������ c���������C���s$���|��i�|�|�ƒ�|��i�|�|�ƒ�d�S(���s"���Fixup bad order introduced by DFS.N(���R���t���fixupOrderHonorNextR���t���default_nextt���fixupOrderForward(���R���R���R*���(����(����R ���R&���d���s�����c���������C���s«��h��}�x(�t�t�|�ƒ�ƒ�D]�}�|�|�|�|�<q�Wxst�d�t�|�ƒ�d�ƒ�D]X}�|�|�}�|�|�d�} �|�i�p(�|�i�d�|�j�p�|�i�d�| �j�o�qK�n�|�}�g��}�|�} �xD�| �i�o9�| �i�d�|�j�o%�|�i�| �i�d�ƒ�| �i�d�} �q¸�Wg��}�x%�|�D]�}�|�i�|�|�|�f�ƒ�q W|�i�ƒ��|�i�ƒ��x�|�D]�\�}�}�|�|�|�=qEW|�g�|�|�|�|�d�+x(�t�t�|�ƒ�ƒ�D]�}�|�|�|�|�<q‹WqK�Wd�S(���s��Fix one problem with DFS. The DFS uses child block, but doesn't know about the special "next" block. As a result, the DFS can order blocks so that a block isn't next to the right block for implicit control transfers. i����i���N(���t���indext���rangeR���R���t���iR���t���nR���R*���t���curt���chaint���eltR'���t���lt���sortR%���t���j(���R���R���R*���R,���R���R1���R.���R5���R3���R/���R2���R0���(����(����R ���R)���m���s@������� 3��� ��c���������C���sÝ��h��}�g��} �g��}�x`�|�D]X�}�t�| �ƒ�|�|�<|�i�|�ƒ�|�i�o+�|�i�d�|�j�o�| �i�|�ƒ�g��}�q�q�W| �i�|�ƒ�x!g��}�xÐ�t �t�| �ƒ�ƒ�D]¼�}�| �|�}�x©�|�D]¡�}�x˜�|�i �ƒ��D]Š�}�|�|�|�j��os�d�}�xA�|�i�D]6�}�|�d�d�j�o�|�d�|�j�o �d�}�q%qï�qï�W|�p�qÈ�n�|�i�|�|�|�f�ƒ�qÈ�qÈ�Wqµ�Wqž�W|�p�Pn�|�d�\�} �} �| �| �}�| �i�|�ƒ�| �i�| �|�ƒ�q…�W|�2x,�| �D]$�}�x�|�D]�}�|�i�|�ƒ�q¾Wq±Wd�S(���s(���Make sure all JUMP_FORWARDs jump forwardi����i���t���JUMP_FORWARDN(���R,���t���chainsR0���R���R���R���R'���R���R*���t���constraintsR-���R.���R3���R���t���ct ���forward_pt���instsR���t���goes_beforet���a_chaint���removet���insert(���R���R���R*���R,���R9���R���R.���R3���R:���R<���R=���R���R8���R7���R0���(����(����R ���R+���–���sZ������ ��� � � �'� ��c���������C���s ���|��i�i�ƒ��S(���N(���R���R���R"���(���R���(����(����R ���t ���getBlocksÄ���s����c���������C���s���|��i�S(���s/���Return nodes appropriate for use with dominatorN(���R���R���(���R���(����(����R ���t���getRootÇ���s�����c���������C���s4���g��}�x'�|��i�ƒ��D]�}�|�i�|�i�ƒ��ƒ�q�W|�S(���N(���R3���R���R@���R���t���extendt���getContainedGraphs(���R���R���R3���(����(����R ���RC���Ë���s ���� �(���t���__name__t ���__module__R���R���R���R���R���R���R ���R���R���R!���R(���R&���R)���R+���R@���RA���RC���(����(����(����R ���R�������s ��� ) . c���������C���sb���g��}�|��|�|��<x>�|��i�ƒ��D]0�}�|�i�|�ƒ�o�q�n�|�t�|�|�ƒ�}�q�W|�i�|��ƒ�|�S(���s;���Depth-first search of tree rooted at b, return in postorderN(���R$���R���t���seenR���R9���t���has_keyR#���R'���(���R���RF���R9���R$���(����(����R ���R#���Ñ���s����� � R���c�����������B���sz���t��Z�d�Z�d�d�„�Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d �„��Z �d �„��Z �d�Z�d�„��Z�d�„��Z �d�„��Z�RS(���Ni����t����c���������C���sY���g��|��_�t�i�ƒ��|��_�t�i�ƒ��|��_�|�|��_�t�i�|��_ �g��|��_ �t�i�d�t�_�d��S(���Ni���(���R���R;���R���R���t���inEdgest���outEdgest���labelR���t���_countt���bidR���(���R���RK���(����(����R ���R���ß���s���� c���������C���s1���|��i�o�d�|��i�|��i�f�Sn�d�|��i�Sd��S(���Ns���<block %s id=%d>s ���<block id=%d>(���R���RK���RM���(���R���(����(����R ���t���__repr__è���s���� c���������C���s2���t��t�|��i�ƒ�}�d�|��i�|��i�d�i�|�ƒ�f�S(���Ns���<block %s %d: %s>s��� (���t���mapt���strR���R;���RK���RM���t���join(���R���R;���(����(����R ���t���__str__î���s����c���������C���sG���|�d�}�|�d� d�j�o�|��i�i�|�d�ƒ�n�|��i�i�|�ƒ�d��S(���Ni����i���t���JUMPi���(���R���t���opR���RJ���R ���R;���R'���(���R���R���RT���(����(����R ���R!���ó���s���� c���������C���s���|��i�S(���N(���R���R;���(���R���(����(����R ���t���getInstructionsù���s����c���������C���s���|��i�i�|�ƒ�d��S(���N(���R���RI���R ���R���(���R���R���(����(����R ���t ���addInEdgeü���s����c���������C���s���|��i�i�|�ƒ�d��S(���N(���R���RJ���R ���R���(���R���R���(����(����R ���R���ÿ���s����c���������C���s���|��i�i�|�ƒ�d��S(���N(���R���R���R'���R���(���R���R���(����(����R ���R�����s����R���t ���RAISE_VARARGSR���t ���JUMP_ABSOLUTER6���t ���CONTINUE_LOOPc���������C���sX���y�|��i�d�\�}�}�Wn�t�t�f�j �o�d�Sn�X|�|��i�j�o �g��|��_�n�d�S(���sL��Remove bogus edge for unconditional transfers Each block has a next edge that accounts for implicit control transfers, e.g. from a JUMP_IF_FALSE to the block that will be executed if the test is true. These edges must remain for the current assembler code to work. If they are removed, the dfs_postorder gets things in weird orders. However, they shouldn't be there for other purposes, e.g. conversion to SSA form. This method will remove the next edge when it follows an unconditional control transfer. iÿÿÿÿN(���R���R;���RT���t���argt ���IndexErrort ���ValueErrort���_uncond_transferR���(���R���RZ���RT���(����(����R ���t ���pruneNext ��s���� � c���������C���sP���|��i�o2�|��i�d�|��i�j�o�|��i�i�|��i�d�ƒ�n�|��i�i�ƒ��|��i�S(���Ni����(���R���R���RJ���R>���R"���(���R���(����(����R ���R�����s����!c���������C���sf���g��}�xY�|��i�D]N�}�t�|�ƒ�d�j�o�q�n�|�d�}�t�|�d�ƒ�o�|�i�|�i�ƒ�q�q�W|�S(���s¨���Return all graphs contained within this block. For example, a MAKE_FUNCTION block will contain a reference to the graph for the function body. i���t���graphN( ���t ���containedR���R;���R���R���RT���t���hasattrR'���R_���(���R���R`���R���RT���(����(����R ���RC���#��s����� � (���s���RETURN_VALUERW���s���YIELD_VALUERX���s���JUMP_FORWARDRY���(���RD���RE���RL���R���RN���RR���R!���RU���RV���R���R���R]���R^���R���RC���(����(����(����R ���R���Ü���s��� t���RAWt���FLATt���CONVt���DONEt���PyFlowGraphc�����������B���sI��t��Z�e�i�Z�f��d�d��d�„�Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z �d�„��Z �d�„��Z�d��d �„�Z�d �„��Z �d�„��Z�e�i�ƒ��Z�x%�e�i�D]�Z�e�i�e�i�e�ƒ�q‹�We�i�ƒ��Z�x%�e�i�D]�Z�e�i�e�i�e�ƒ�q¿�Wd�„��Z�d �„��Z�d�„��Z�h��Z�d�„��Z�d�„��Z�e�Z�e�Z�d�„��Z�d�„��Z �e �Z!�e �Z"�e �Z#�e �Z$�e �Z%�e �Z&�e �Z'�e �Z(�e �Z)�e �Z*�d�„��Z+�e+�Z,�e+�Z-�d�„��Z.�e/�e�i0�ƒ�Z1�d�„��Z2�xF�e3�ƒ��i4�ƒ��D]5�\�Z5�Z6�e5�d� d�j�o�e5�d�Z�e6�e�e�<q°q°W[5�[6�[�d�„��Z7�h��Z8�x.�e9�e:�e�i�ƒ�ƒ�D]�Z;�e;�e8�e�i�e;�<qW[;�d�„��Z<�d�„��Z=�RS(���Ni����c���������C���s��|��i�ƒ��|�|��_�|�|��_�d��|��_�|�|��_�t�|�ƒ�|��_�|�|��_ �|�o�t�t�B|��_ �n �d�|��_ �g��|��_�g��|��_�g��|��_�g��|��_�g��|��_�t�|�ƒ�p�g��|��_�xQ�t�t�|��i�ƒ�ƒ�D]:�}�|��i�|�}�t�|�t�ƒ�o�|�i�ƒ��|��i�|�<qÀ�qÀ�Wt�|��_�d��S(���Ni����(���R���t ���super_initt���namet���filenameR���t ���docstringt���argst���getArgCountt���argcountt���klasst ���optimizedt���CO_OPTIMIZEDt���CO_NEWLOCALSt���flagst���constst���namest���freevarst���cellvarst���closuret���listt���varnamesR-���R���R.���t���varR ���t���TupleArgt���getNameRb���t���stage(���R���Rh���Ri���Rk���Ro���Rn���R.���Rz���(����(����R ���R���=��s,���� � c���������C���s ���|�|��_�d��S(���N(���t���docR���Rj���(���R���R~���(����(����R ���t���setDocstring[��s����c���������C���s5���|��i�|�B|��_�|�t�j�o�|��i�d�|��_�n�d��S(���Ni���(���R���Rr���t���flagt ���CO_VARARGSRm���(���R���R€���(����(����R ���t���setFlag^��s���� c���������C���s���|��i�|�@o�d�Sn�d��S(���Ni���(���R���Rr���R€���(���R���R€���(����(����R ���t ���checkFlagc��s����c���������C���s���t��|�ƒ�|��_�d��S(���N(���Rx���Rt���R���Ru���(���R���Rt���(����(����R ���t���setFreeVarsg��s����c���������C���s ���|�|��_�d��S(���N(���Rt���R���Rv���(���R���Rt���(����(����R ���t���setCellVarsj��s����c���������C���s���|��i�t�j�o�|��i�ƒ��|��i�ƒ��n�|��i�t�j�o�|��i�ƒ��n�|��i�t�j�o�|��i�ƒ��n�|��i�t �j�o�|��i �ƒ��Sn�t�d�‚�d�S(���s���Get a Python code objects���inconsistent PyFlowGraph stateN(���R���R}���Rb���t���computeStackDeptht���flattenGraphRc���t���convertArgsRd���t���makeByteCodeRe���t ���newCodeObjectt���RuntimeError(���R���(����(����R ���t���getCodem��s����� c���������C���sÀ���|�o�t�i�}�|�t�_�n�d�}�x‚�|��i�D]w�}�|�d�}�|�d�j�o�Hn�t �|�ƒ�d�j�o�d�Gd�|�G|�GH|�d�}�q-�d�Gd�|�G|�G|�d�GH|�d�}�q-�W|�o �|�t�_�n�d��S(���Ni����t ���SET_LINENOi���s��� s���%3di���( ���t���iot���syst���stdoutt���savet���pcR���R;���t���tt���opnameR���(���R���RŽ���R’���R“���R”���R‘���(����(����R ���t���dumpz��s ���� � c������������sm���h��‰�d�}�x*�ˆ��i�ƒ��D]�}�t�|�i�ƒ��ƒ�ˆ�|�<q�Wh��‰�‡��‡�‡�‡�d�†��‰�ˆ�ˆ��i �d�ƒ�ˆ��_�d�S(���s¾���Compute the max stack depth. Approach is to compute the stack effect of each basic block. Then find the path through the code with the largest total effect. c������������s¡���ˆ�i�|��ƒ�o�|�Sn�d�ˆ�|��<|�ˆ�|��}�|��i�ƒ��}�|�o2�t�g��}�|�D]�}�|�ˆ�|�|�ƒ�qQ�~�ƒ�Sn)�|��i�d�j�p�ˆ�ˆ��i �|�ƒ�Sn�|�Sd��S(���Ni���R���(���RF���RG���R���t���dt���depthR���t���childrent���maxt���_[1]R9���t ���max_depthRK���R���R���(���R���R–���R9���Rš���R˜���(���R���R›���R—���RF���(����R ���R›���š��s���� 2i����N(���R—���R���R���R���R@���R���t ���findDepthRU���RF���R›���R���t ���stacksize(���R���R���R—���R���RF���R›���(����(���R���RF���R—���R›���R ���R†���Œ��s����� �c���������C���s ��g��|��_�}�d�}�h��}�h��}�xŒ�|��i�ƒ��D]~�}�|�|�|�<xa�|�i�ƒ��D]S�}�|�i �|�ƒ�t �|�ƒ�d�j�o�|�d�}�qI�|�d�d�j�o�|�d�}�qI�qI�W|�|�|�<q,�Wd�}�xÜ�t�t �|�ƒ�ƒ�D]È�}�|�|�}�t �|�ƒ�d�j�o�|�d�}�n �|�d�d�j�o�|�d�}�n�|�d�} �|��i�i�| �ƒ�o,�|�d�}�|�|�|�} �| �| �f�|�|�<qÇ�|��i�i�| �ƒ�o�| �|�|�d�f�|�|�<qÇ�qÇ�Wt�|��_�d�S(���s-���Arrange the blocks in order and resolve jumpsi����i���R���i���N(���R���R;���R’���t���beginR���R(���R���RU���R���R'���R���R-���R.���R”���t���hasjrelt���has_eltt���opargt���offsett���hasjabsRc���R}���(���R���Rž���R���R���R;���R.���R¡���R’���R���R¢���R”���(����(����R ���R‡���ª��sB������ � � � c���������C���s¹���|��i�i�d�|��i�ƒ�|��i�ƒ��x‰�t�t�|��i�ƒ�ƒ�D]r�}�|��i�|�}�t�|�ƒ�d�j�oL�|�\�}�}�|��i�i �|�d�ƒ�}�|�o �|�|�|��|�ƒ�f�|��i�|�<q¨�q6�q6�Wt�|��_�d�S(���s0���Convert arguments from symbolic to concrete formi����i���N(���R���Rs���R?���Rj���t ���sort_cellvarsR-���R���R;���R.���R“���R”���R¡���t���_converterst���getR���t���convRd���R}���(���R���R§���R.���R¡���R“���R”���(����(����R ���Rˆ���Ò��s������ � (c���������C���s§���h��}�x�|��i�D]�}�d�|�|�<q�Wg��}�|��i�D]!�}�|�i�|�ƒ�o�|�|�q2�q2�~�|��_�x�|��i�D] �}�|�|�=qi�W|��i�|�i�ƒ��|��_�|��i�|��i�|��_ �d�S(���sH���Sort cellvars in the order of varnames and prune from freevars. i���N( ���t���cellsR���Rv���Rh���Rš���Ry���RG���t���keysRu���Rw���(���R���Rš���R¨���Rh���(����(����R ���R¤���à��s����� �; �c���������C���sv���t��|�ƒ�}�xJ�t�t�|�ƒ�ƒ�D]6�}�|�t��|�|�ƒ�j�o�|�|�|�j�o�|�Sq�q�Wt�|�ƒ�}�|�i�|�ƒ�|�S(���sƒ��Return index of name in list, appending if necessary This routine uses a list instead of a dictionary, because a dictionary can't store two different keys if the keys have the same value but different types, e.g. 2 and 2L. The compiler must treat these two separately, so it does an explicit type comparison before comparing the values. N( ���t���typeRh���R“���R-���R���Rx���R.���R���R'���(���R���Rh���Rx���R���R.���R“���(����(����R ���t���_lookupNameí��s������( c���������C���s3���t��|�d�ƒ�o�|�i�ƒ��}�n�|��i�|�|��i�ƒ�S(���NRŒ���(���Ra���RZ���RŒ���R���R«���Rs���(���R���RZ���(����(����R ���t���_convert_LOAD_CONSTÿ��s����c���������C���s&���|��i�|�|��i�ƒ�|��i�|�|��i�ƒ�S(���N(���R���R«���RZ���Rt���Ry���(���R���RZ���(����(����R ���t���_convert_LOAD_FAST��s����c���������C���s:���|��i�d��j�o�|��i�|�|��i�ƒ�n�|��i�|�|��i�ƒ�S(���N(���R���Rn���R���R«���RZ���Ry���Rt���(���R���RZ���(����(����R ���t���_convert_LOAD_NAME ��s����c���������C���s:���|��i�d��j�o�|��i�|�|��i�ƒ�n�|��i�|�|��i�ƒ�S(���N(���R���Rn���R���R«���RZ���Ry���Rt���(���R���RZ���(����(����R ���t ���_convert_NAME��s����c���������C���s9���|��i�|�|��i�ƒ�|��i�|�|��i�ƒ�|��i�|�|��i�ƒ�S(���N(���R���R«���RZ���Rt���Ry���Rw���(���R���RZ���(����(����R ���t���_convert_DEREF��s����c���������C���s&���|��i�|�|��i�ƒ�|��i�|�|��i�ƒ�S(���N(���R���R«���RZ���Ry���Rw���(���R���RZ���(����(����R ���t���_convert_LOAD_CLOSURE%��s����c���������C���s���|��i�i�|�ƒ�S(���N(���R���t���_cmpR,���RZ���(���R���RZ���(����(����R ���t���_convert_COMPARE_OP*��s����i ���t ���_convert_c���������C���s÷���t��ƒ��|��_�}�x×�|��i�D]Ì�}�|�d�}�t�|�ƒ�d�j�o�|�i�|��i�|�ƒ�q�|�d�}�|�d�j�o�|�i �|�ƒ�q�n�t�|�ƒ�\�}�}�y�|�i�|��i�|�|�|�ƒ�Wq�t�j �o'�|�G|�GH|��i�|�G|�G|�GH‚��q�Xq�Wt�|��_�d��S(���Ni����i���R���(���t ���LineAddrTableR���t���lnotabR;���R“���R”���R���t���addCodet���opnumR¡���t���nextLinet���twobytet���hit���loR\���Re���R}���(���R���R¼���R¡���R»���R“���R¶���R”���(����(����R ���R‰���5��s&����� � c���������C���sÔ���|��i�t�@d�j�o �d�}�n�t�|��i�ƒ�}�|��i�}�|��i�t�@o�|�d�}�n�t�i �|�|�|��i �|��i�|��i�i�ƒ��|��i �ƒ��t�|��i�ƒ�t�|��i�ƒ�|��i�|��i�|��i�i�|��i�i�ƒ��t�|��i�ƒ�t�|��i�ƒ�ƒ�S(���Ni����i���(���R���Rr���Rq���t���nlocalsR���Ry���Rm���t���CO_VARKEYWORDSt���newt���codeR���R¶���RŒ���t ���getConstst���tupleRt���Ri���Rh���t ���firstlinet���getTableRu���Rv���(���R���R½���Rm���(����(����R ���RŠ���O��s����� c���������C���sQ���g��}�x>�|��i�D]3�}�t�|�t�ƒ�o�|�i�ƒ��}�n�|�i�|�ƒ�q�Wt�|�ƒ�S(���s›���Return a tuple for the const slot of the code object Must convert references to code (MAKE_FUNCTION) to code objects recursively. N( ���R3���R���Rs���R2���R ���Rf���RŒ���R'���RÂ���(���R���R3���R2���(����(����R ���RÁ���_��s����� �(>���RD���RE���R����R���Rg���R���R���R‚���Rƒ���R„���R…���RŒ���R•���R†���R‡���R���R���RŸ���t���disR.���R ���R”���R£���Rˆ���R¤���R«���R¥���R¬���R���t���_convert_STORE_FASTt���_convert_DELETE_FASTR®���R¯���t���_convert_STORE_NAMEt���_convert_DELETE_NAMEt���_convert_IMPORT_NAMEt���_convert_IMPORT_FROMt���_convert_STORE_ATTRt���_convert_LOAD_ATTRt���_convert_DELETE_ATTRt���_convert_LOAD_GLOBALt���_convert_STORE_GLOBALt���_convert_DELETE_GLOBALR°���t���_convert_LOAD_DEREFt���_convert_STORE_DEREFR±���Rx���t���cmp_opR²���R³���t���localst���itemsRh���t���objR‰���R¸���R-���R���t���numRŠ���RÁ���(����(����(����R ���Rf���:��sv��� ! � � � � c���������C���s���|��d� d�j�o�d�Sn�d��S(���Ni���RS���i���(���R”���(���R”���(����(����R ���t���isJumpl��s����R{���c�����������B���s)���t��Z�d��Z�d�„��Z�d�„��Z�d�„��Z�RS(���s:���Helper for marking func defs with nested tuples in arglistc���������C���s���|�|��_��|�|��_�d��S(���N(���t���countR���Rt���(���R���RÚ���Rt���(����(����R ���R���r��s���� c���������C���s���d�|��i�|��i�f�S(���Ns���TupleArg(%s, %s)(���R���RÚ���Rt���(���R���(����(����R ���RN���u��s����c���������C���s���d�|��i�S(���Ns���.%d(���R���RÚ���(���R���(����(����R ���R|���w��s����(���RD���RE���t���__doc__R���RN���R|���(����(����(����R ���R{���p��s���� c���������C���sb���t��|��ƒ�}�|��oK�xH�|��D]<�}�t�|�t�ƒ�o&�t��t�i�|�i�ƒ�ƒ�}�|�|�}�q�q�Wn�|�S(���N( ���R���Rk���Rm���RZ���R ���R{���R���t���flattenRt���t���numNames(���Rk���RÝ���Rm���RZ���(����(����R ���Rl���z��s�����c���������C���s ���t��|��d�ƒ�S(���s/���Convert an int argument into high and low bytesi���N(���t���divmodt���val(���Rß���(����(����R ���Rº���ƒ��s������Rµ���c�����������B���s;���t��Z�d��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�RS(���s(��lnotab This class builds the lnotab, which is documented in compile.c. Here's a brief recap: For each SET_LINENO instruction after the first one, two bytes are added to lnotab. (In some cases, multiple two-byte entries are added.) The first byte is the distance in bytes between the instruction for the last SET_LINENO and the current SET_LINENO. The second byte is offset in line numbers. If either offset is greater than 255, multiple two-byte entries are added -- see compile.c for the delicate details. c���������C���s:���g��|��_�d�|��_�d�|��_�d�|��_�d�|��_�g��|��_�d��S(���Ni����(���R���RÀ���t ���codeOffsetRÃ���t���lastlinet���lastoffR¶���(���R���(����(����R ���R���—��s���� c���������G���sA���x$�|�D]�}�|��i�i�t�|�ƒ�ƒ�q�W|��i�t�|�ƒ�|��_�d��S(���N(���Rk���RZ���R���RÀ���R'���t���chrRà���R���(���R���Rk���RZ���(����(����R ���R·���Ÿ��s�����c���������C���s��|��i�d�j�o�|�|��_�|�|��_�nî�|��i�|��i�}�|�|��i�}�|�d�j�oÃ�|��i�i �}�x0�|�d�j�o"�|�d�ƒ�|�d�ƒ�|�d�8}�q_�Wx6�|�d�j�o(�|�|�ƒ�|�d�ƒ�|�d�8}�d�}�q’�W|�d�j�p �|�d�j�o�|�|�ƒ�|�|�ƒ�n�|�|��_�|��i�|��_�n�d��S(���Ni����iÿ���(���R���RÃ���t���linenoRá���Rà���Râ���t���addrt���lineR¶���R'���t���push(���R���Rä���Rç���Ræ���Rå���(����(����R ���R¹���¤��s(���� � � c���������C���s���d�i��|��i�ƒ�S(���NRH���(���RQ���R���RÀ���(���R���(����(����R ���RŒ���Ä��s����c���������C���s���d�i��t�t�|��i�ƒ�ƒ�S(���NRH���(���RQ���RO���Rã���R���R¶���(���R���(����(����R ���RÄ���Ç��s����(���RD���RE���RÛ���R���R·���R¹���RŒ���RÄ���(����(����(����R ���Rµ���ˆ��s��� � t���StackDepthTrackerc�����������B���sÇ��t��Z�d�d�„�Z�h��d�d�<d�d�<d�d�<d�d�<d �d �<d�d�<d�d �<d �d �<d�d�<d�d�<d�d �<d�d �<d�d�<d�d�<d�d �<d�d�<d�d�<d�d�<d�d�<d�d �<d�d�<d�d �<d�d�<d�d�<d�d�<d �d�<d!�d�<d"�d�<d#�d�<d$�d�<d%�d�<d&�d'�<d(�d'�<d)�d�<Z�d*�d�f�d+�d�f�g�Z�d,�„��Z�d-�„��Z�d.�„��Z�d/�„��Z�d0�„��Z �d1�„��Z �d2�„��Z�d3�„��Z�d4�„��Z �d5�„��Z�d6�„��Z�RS(7���Ni����c���������C���s#��d�}�d�}�x|�D]}�|�d�} �|�o�|�Gn�|��i�i�| �d��ƒ�}�|�d��j �o�|�|�}�n�xC�|��i�D]8�\�}�}�| �t�|�ƒ� |�j�o�|�}�|�|�}�Pql�ql�W|�d��j�o;�t�|��| �d��ƒ�} �| �d��j �o�|�| �|�d�ƒ�}�qð�n�|�|�j�o �|�}�n�|�o �|�G|�GHq�q�W|�S(���Ni����i���(���R—���t���maxDepthR;���R.���R”���t���debugR���t���effectR¦���R���t���deltat���patternst���patt ���pat_deltaR���t���getattrt���meth(���R���R;���Rê���Rî���R.���Rï���R—���Ré���Rì���R”���Rñ���(����(����R ���Rœ���Î��s2����� � t���POP_TOPiÿÿÿÿt���DUP_TOPi���s���SLICE+1s���SLICE+2s���SLICE+3iþÿÿÿs ���STORE_SLICE+0s ���STORE_SLICE+1s ���STORE_SLICE+2s ���STORE_SLICE+3iýÿÿÿs���DELETE_SLICE+0s���DELETE_SLICE+1s���DELETE_SLICE+2s���DELETE_SLICE+3t���STORE_SUBSCRt ���DELETE_SUBSCRt ���PRINT_ITEMR���R���t ���EXEC_STMTt���BUILD_CLASSt ���STORE_NAMEt ���STORE_ATTRt���DELETE_ATTRt���STORE_GLOBALt ���BUILD_MAPt ���COMPARE_OPt ���STORE_FASTt���IMPORT_STARt���IMPORT_NAMEt���IMPORT_FROMt ���LOAD_ATTRt���SETUP_EXCEPTi���t ���SETUP_FINALLYt���FOR_ITERt���BINARY_t���LOAD_c���������C���s���|�d�S(���Ni���(���RÚ���(���R���RÚ���(����(����R ���t���UNPACK_SEQUENCE��s����c���������C���s ���|�d�S(���Ni���(���RÚ���(���R���RÚ���(����(����R ���t���BUILD_TUPLE��s����c���������C���s ���|�d�S(���Ni���(���RÚ���(���R���RÚ���(����(����R ���t ���BUILD_LIST��s����c���������C���s"���t��|�d�ƒ�\�}�}�|�|�d�S(���Ni���i���(���RÞ���t���argcR»���R¼���(���R���R��R»���R¼���(����(����R ���t ���CALL_FUNCTION��s����c���������C���s���|��i�|�ƒ�d�S(���Ni���(���R���R ��R��(���R���R��(����(����R ���t���CALL_FUNCTION_VAR��s����c���������C���s���|��i�|�ƒ�d�S(���Ni���(���R���R ��R��(���R���R��(����(����R ���t���CALL_FUNCTION_KW!��s����c���������C���s���|��i�|�ƒ�d�S(���Ni���(���R���R ��R��(���R���R��(����(����R ���t���CALL_FUNCTION_VAR_KW#��s����c���������C���s���|�S(���N(���R��(���R���R��(����(����R ���t ���MAKE_FUNCTION%��s����c���������C���s���|�S(���N(���R��(���R���R��(����(����R ���t���MAKE_CLOSURE'��s����c���������C���s.���|�d�j�o�d�Sn�|�d�j�o�d�Sn�d��S(���Ni���iÿÿÿÿi���iþÿÿÿ(���R��(���R���R��(����(����R ���t���BUILD_SLICE*��s���� c���������C���s���|�S(���N(���R��(���R���R��(����(����R ���t���DUP_TOPX/��s����(���RD���RE���Rœ���Rë���Rí���R ��R ��R��R ��R��R��R��R��R��R��R��(����(����(����R ���Rè���Ê��s���ÿ�9' (���RÛ���RÅ���R¿���R���t���typest���compilerR���t���compiler.constsRp���Rq���R���R¾���R����R#���R���Rb���Rc���Rd���Re���Rf���RÙ���R{���Rl���Rº���Rµ���Rè���Rœ���(���Rd���Rµ���Rè���R#���Re���Rq���RÙ���Rp���Rl���R���R¾���Rb���R��R¿���Rc���Rœ���Rº���R���R���Rf���R���R{���R����RÅ���(����(����R ���t���?���s,��� Å Yÿ�3 Bh