Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_dis.cpython-312.opt-1.pyc

�

'ΜgL� ��+�ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZddlm
Z
ddlZd�Ze�j j"ZGd�d�Zdej(j*j,ej(j*j,dzfzZd	Zd
ej2j*j,ej2j*j,dzfzZdej6j*j,ej6j*j,dzfzZd
ej(j:�de�dej2j:�de�dej6j:�de�d�
Zd�Zdej*j,ej*j,dzej*j,dzfzZ dZ!d�Z"de"j*j,e"j*j,dze"j*j,dze"j*j,dze"j*j,dze"j*j,dzfzZ#gfd�Z$de$j*j,e$j*j,dze%e$j*j,dze$j*j,dze$j*j,dzfzZ&d�Z'e'j*jQd��e'_dZ)e*gd��Z+dZ,e*ejZdejZdejZdej\d d!g�Z/d"Z0d#�Z1d$�Z2d%e2j*j,e2j*j,dzfzZ3d&Z4d'Z5d(Z6d)Z7d*Z8d+Z9d,Z:d-Z;d.Z<d/Z=d0Z>d1Z?d2Z@d3ZAd4ej,ej,dzej,dzej,d5zej,dzej,d6zej,d5zej,dzfzZBd7�ZCd8eCj*j,eCj*j,dzfzZDd9�ZEd:eEj*j,eEj*j,dzeEj*j,dzeEj*j,dzeEj*j,dzeEj*j,dzeEj*j,dzfzZFd;�ZGd<eGj*j,eGj*j,dzeGj*j,dzeGj*j,dzeGj*j,dzeGj*j,dzeGj*j,dzfzZHd=�ZId>�ZJd?eIj*j,eIj*j,dzeIj*j,dzeIj*j,d6zfzZKd@eJj*j,eJj*j,dzeJj*j,dzeJj*j,d6zfzZLdA�ZMdB�ZNdC�ZOdD�ZPdEePj*j,ePj*j,dze%ePj*j,dzePj*j,d6zfzZQdFeQe%ePj*j,dzePj*j,dzePj*j,dze%ePj*j,dzfzZRdGeRe%ePj*j,dzePj*j,dzfzZS�dvdH�ZTdIeTj*j,eTj*j,dzeTj*j,dzfzZUdJ�ZVdKeVj*j,eVj*j,dzeVj*j,dzeVj*j,dzfzZWdL�ZXdMeXj*j,eXj*j,dzfzZYdZZGdN�dOej��Z\GdP�dQe\�Z]GdR�dSe]�Z^ej�j��dTZandUZadVea�dW�Zbec�dwgdY�dZ��Zdd[Zeedj�j*j�dZhd\Zid]Zjd^Zkd_Zld`�ZmdaZnGdb�dcej��Zo�dxdd�Zpde�ZqdZrepj*j,dz
Zsepj*j�dZtetj,esz
Zuetj�dZvevj,esz
ZwdZxdf�Zydg�Zzej�Z{e{dhdiddjdjdddkd�l�	e{dhdiddmdmdddkd�l�	e{dndodddpd6ddkd�l�	e{dqdrd5dsdtduddkd�l�	e{dvdwddjdjdxddkd�l�	e{dvdwddmdmdyddkd�l�	e{dzd{dddpd|ddkd�l�	e{dqdrdete|et�d}ddkd�l�	e{d~dd�d�d�d�ddkd�l�	e{d�d�dd�d�d�ddkd�l�	e{d�d�dd�d�d�d�dkd�l�	e{d�d�ddjdjd�ddkd�l�	e{d�d�ddmdmd�ddkd�l�	e{dqdrddpd�d�ddkd�l�	e{dqdrddd�d�ddkd�l�	e{d�d�dddpd�ddkd�l�	e{d�d�dddpd�ddkd�l�	e{dqdrd6d�d�d�ddkd�l�	e{d�d�d�d�dpd�ddkd�l�	e{d�ddddpd�ddkd�l�	e{d�d�dd�d�d�dxdkd�l�	e{d�d�dddpd�ddkd�l�	gZ}e{d�d�dddpdddkd�l�	e{dhdidd�d�dddkd�l�	e{dhdidd�d�d6ddkd�l�	e{dndodddpduddkd�l�	e{dqdrdd�d�dxddkd�l�	e{dvdwddjdjdyddkd�l�	e{dvdwd6dmdmd|ddkd�l�	e{dvdwdd�d�d}ddkd�l�	e{dvdwdd�d�d�ddkd�l�	e{dzd{d6d6dpd�ddkd�l�	e{dqdrdeve|ev�d�ddkd�l�	e{d~dd�d�d�d�ddkd�l�	e{d�d�dd�d�d�ddkd�l�	e{d�d�dd�d�d�d5dkd�l�	e{d�d�ddjdjd�ddkd�l�	e{d�d�d6dmdmd�ddkd�l�	e{d�d�dd�d�d�ddkd�l�	e{d�d�dd�d�d�ddkd�l�	e{d�d�d6d6dpd�ddkd�l�	e{d�ddddpd�ddkd�l�	e{d�d�dd�d�d�dudkd�l�	e{d�d�dddpd�ddkd�l�	gZ~e{d�d�d6d6dpdddkd�l�	e{dndodddpdddkd�l�	e{d�d�dd�d�d6d6dkd�l�	e{d�d�ddjdjd}ddkd�l�	e{d�d�ddmdmd�ddkd�l�	e{d�d�d6d�d�d�ddkd�l�	e{d�d�d5d�d�d�ddkd�l�	e{d�d�dd�d�d�ddkd�l�	e{d�d�dd�d�d�ddkd�l�	e{d�d�dududpd�ddkd�l�	e{d�ddddpd�ddkd�l�	e{d�d�ddd�d�ddkd�l�	gZge{dndodddpdddkd�l�	�e{d�d�dd�d�dddkd�l�	�e{dqdrddyd�d|ddkd�l�	�e{d�d�dddpd}ddkd�l�	�e{d�d�dddpd�ddkd�l�	�e{d�d�d�d�d�d�ddXd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�dd�d�d�d6dkd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�dddpd�ddkd�l�	�e{d�ddddpd�ddkd�l�	�e{d�d�dd�d�d�d5dkd�l�	�e{dqdrdd6d�d�ddkd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�d�d�d�d�dudkd�l�	�e{d�d�dd�d�d�d�dXd�l�	�e{dqdrddud�d�ddkd�l�	�e{d�d�d�d�d�d�ddkd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�d�d�d�d�ddkd�l�	�e{d�ddddpd�dxdXd�l�	�e{d d�d|d�d�d�ddkd�l�	�e{d�d6dddpd�ddXd�l�	�e{d�d�dd�d�d�dydkd�l�	�e{dqdrd6d�d�d�ddkd�l�	�e{d�d�dddpd�ddkd�l�	�e{d�ddddpd{ddkd�l�	�e{d�d�dd�d�d�d�dXd�l�	�e{d�d�d�d�d�d�ddkd�l�	�e{d�d�dd�d�d�d|dXd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�dddpd�ddkd�l�	�e{d�ddddpd�ddkd�l�	�e{d�d�dd�d�d�d�dkd�l�	�e{dqdrd5dd�dddkd�l�	�e{d�d�d�d�d�d�ddkd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�dd�d�d�d}dkd�l�	�e{dqdrddud�d�ddkd�l�	�e{d�d�d�d�d�d�ddkd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�d�d�d�d�d�dkd�l�	�e{d�d�dd�d�d�d�dXd�l�	�e{dqdrdd6d�d�ddkd�l�	�e{d�d�dd�d�d�ddkd�l�	�e{d�d�dd��d�dddkd�l�	�e{d d�d}�d�d�d�ddkd�l�	�e{d�d�dd�d�d�d�dXd�l�	�e{d�d�dd�d�dddkd�l�	�e{d�d�d�d�d�dddkd�l�	�e{d�d�dd�d�d�d	dXd�l�	�e{dqdrdu�d
�d�dddkd�l�	�e{d�d�dddp�d
ddkd�l�	�e{d�ddddp�dddkd�l�	�e{�dd�dddp�dd�dXd�l�	�e{dqdrd5dd��d�ddkd�l�	�e{dqdrd�d�d�dddkd�l�	�e{d�d�d�d�d�dddkd�l�	�e{d�ddddp�dddkd�l�	�e{d�d�dd�d��d�ddkd�l�	�e{�d�ddddp�dddkd�l�	�e{d�d�d�d�d�dddkd�l�	�e{d�d�dd�d��dd�dkd�l�	�e{dqdrdx�d�d �d!ddkd�l�	�e{d�d�dddp�d"ddkd�l�	�e{d�ddddp�d#ddkd�l�	�e{dqdrddd��d$�ddkd�l�	�e{dqdrddd��d%ddkd�l�	�e{dqdrddd��d&ddkd�l�	�e{d�d�dddp�d'ddkd�l�	�e{d�ddddp�d(ddkd�l�	�e{d�d�dd�d��d)d�dXd�l�	�e{dqdrdy�d*�d+�d,ddkd�l�	�e{d�d�dddp�d-ddkd�l�	�e{d�ddddp�d.ddkd�l�	�e{d�d�ddd��d/ddkd�l�	�e{�d0�d1dddp�d2�ddkd�l�	�e{�d3�d4dddp�d5ddkd�l�	�e{d�d�d�d6�d7�d8ddkd�l�	�e{�d9�d:dddp�d;ddkd�l�	�e{d�ddddp�d6ddXd�l�	�e{�d<�d=dddp�d>ddkd�l�	�e{d�ddddp�d?ddkd�l�	�e{d�ddddp�d@ddkd�l�	�e{d�d͐d�d)�dA�dBddkd�l�	�e{�dCd�dddp�dDddkd�l�	�e{�d<�d=dddp�dEddkd�l�	�e{�d9�d:dddp�dFddkd�l�	�e{�d0�d1dddp�dGddkd�l�	�e{d�d�d6�dH�dH�dId�dkd�l�	�e{�dJd�dddp�dKddkd�l�	�e{d�d�d}�dL�dM�dNddkd�l�	�e{d�ddddp�dOddkd�l�	�e{d�d�dd�d��dPd�dkd�l�	�e{dqdrd��dQ�dR�dSddkd�l�	�e{d�d�dddp�dTddkd�l�	�e{d�ddddp�dUddkd�l�	�e{�d<�d=dddp�dVddkd�l�	�e{d�d͐dW�d)�dA�dXddkd�l�	�e{�d9�d:dddp�dLd�dXd�l�	�e{�dCd�dddp�dYddkd�l�	�e{�d<�d=dddp�dZddkd�l�	�e{�d9�d:dddp�d[ddkd�l�	�e{�d0�d1dddp�d\ddkd�l�	�e{d�d�dd�d��d]d�dkd�l�	�e{dqdrdy�d*�d+�d^ddkd�l�	�e{d�d�dddp�d_ddkd�l�	�e{d�ddddp�d`ddkd�l�	�e{�d9�d:dddp�daddkd�l�	�e{�dCd�dddp�dbddkd�l�	�e{�d<�d=dddp�dcddkd�l�	�e{�d9�d:dddp�ddddkd�l�	�Z��de�Z�e{dndodddpde�j*j,dkd�l�	e{d�d�ddd�dddk��f�gZ�G�dg��dhe
�Z�G�di��dje��Z�G�dk��dle�e\�Z�G�dm��dne
�Z�G�do��dpej��Z�G�dq��dre\�Z�G�ds��dte��Z�e�duk(re�j�yy(y�N)�captured_stdout�requires_debug_ranges�requires_specialization�cpython_only)�BytecodeTestCasec�d�d�}|�}|jr|j}|jr�|S)Nc�X�	ddzS#t$r}|j}Yd}~|Sd}~wwxYw)N�r)�	Exception�
__traceback__)�e�tbs  �*/usr/local/lib/python3.12/test/test_dis.py�_errorzget_tb.<locals>._errors5��	!�
��E��	���	!����B��	��	!�s�	�	)�$�))�tb_next)rrs  r�get_tbrs.���
��B�
�*�*�
�Z�Z��
�*�*�
�I�c�2�eZdZd�Zed��Zed��Zy)�_Cc��|dk(|_y�Nr
��x)�selfrs  r�__init__z_C.__init__!s
���a���rc��|dk(}yr�rs r�smz_C.sm$s��
��F�rc��|dk(|_yrr)�clsrs  r�cmz_C.cm(s
���Q���rN)�__name__�
__module__�__qualname__r�staticmethodr�classmethodr!rrrrr s/����������rra*%3d        RESUME                   0

%3d        LOAD_FAST                1 (x)
           LOAD_CONST               1 (1)
           COMPARE_OP              40 (==)
           LOAD_FAST                0 (self)
           STORE_ATTR               0 (x)
           RETURN_CONST             0 (None)
r
z�       RESUME                   0
       LOAD_FAST                1
       LOAD_CONST               1
       COMPARE_OP              40 (==)
       LOAD_FAST                0
       STORE_ATTR               0
       RETURN_CONST             0
a)%3d        RESUME                   0

%3d        LOAD_FAST                1 (x)
           LOAD_CONST               1 (1)
           COMPARE_OP              40 (==)
           LOAD_FAST                0 (cls)
           STORE_ATTR               0 (x)
           RETURN_CONST             0 (None)
�z�%3d        RESUME                   0

%3d        LOAD_FAST                0 (x)
           LOAD_CONST               1 (1)
           COMPARE_OP              40 (==)
           STORE_FAST               0 (x)
           RETURN_CONST             0 (None)
zDisassembly of z:
z
Disassembly of �
c��t|�yr��print)�as r�_fr-bs��	�!�H�rz�%3d        RESUME                   0

%3d        LOAD_GLOBAL              1 (NULL + print)
           LOAD_FAST                0 (a)
           CALL                     1
           POP_TOP

%3d        RETURN_CONST             1 (1)
z�       RESUME                   0
       LOAD_GLOBAL              1
       LOAD_FAST                0
       CALL                     1
       POP_TOP
       RETURN_CONST             1
c�&�tdd�D]}�y)Nr
�
��range)�ress r�	bug708901r3~s���Q�����ra�%3d        RESUME                   0

%3d        LOAD_GLOBAL              1 (NULL + range)
           LOAD_CONST               1 (1)

%3d        LOAD_CONST               2 (10)

%3d        CALL                     2
           GET_ITER
        >> FOR_ITER                 2 (to 34)
           STORE_FAST               0 (res)

%3d        JUMP_BACKWARD            4 (to 26)

%3d     >> END_FOR
           RETURN_CONST             0 (None)
�c��y�Nrrs r�
bug1333982r7�s��	ra�%3d        RESUME                   0

%3d        LOAD_ASSERTION_ERROR
           LOAD_CONST               1 (<code object <genexpr> at 0x..., file "%s", line %d>)
           MAKE_FUNCTION            0
           LOAD_FAST                0 (x)
           GET_ITER
           CALL                     0

%3d        LOAD_CONST               2 (1)

%3d        BINARY_OP                0 (+)
           CALL                     0
           RAISE_VARARGS            1
c��yr6rrrr�bug42562r9����r����co_linetablezK       RESUME                   0
       RETURN_CONST             0 (None)
)
�r
�	�r>r
�d�)�Srz�       EXTENDED_ARG             1
       NOP
       EXTENDED_ARG             1
       LOAD_CONST             297
       RETURN_VALUE
r@�JUMP_FORWARD�z�    >> EXTENDED_ARG           255
       EXTENDED_ARG         65535
       EXTENDED_ARG         16777215
       JUMP_FORWARD            -4 (to 0)
c��yr6r)r,�b�cs   r�
func_w_kwargsrI�r:rc� �tddd��y)Nr
r'��rH)rIrrr�wrap_func_w_kwargsrM�s���!�Q�!�raw%3d        RESUME                   0

%3d        LOAD_GLOBAL              1 (NULL + func_w_kwargs)
           LOAD_CONST               1 (1)
           LOAD_CONST               2 (2)
           LOAD_CONST               3 (5)
           KW_NAMES                 4 (('c',))
           CALL                     3
           POP_TOP
           RETURN_CONST             0 (None)
a+  0        RESUME                   0

  1        LOAD_CONST               0 (0)
           LOAD_CONST               1 (('*',))
           IMPORT_NAME              0 (math)
           CALL_INTRINSIC_1         2 (INTRINSIC_IMPORT_STAR)
           POP_TOP
           RETURN_CONST             2 (None)
z�  0        RESUME                   0

  1        LOAD_NAME                0 (a)
           CALL_INTRINSIC_1         5 (INTRINSIC_UNARY_POSITIVE)
           RETURN_VALUE
z�  0        RESUME                   0

  1        BUILD_LIST               0
           LOAD_NAME                0 (a)
           LIST_EXTEND              1
           CALL_INTRINSIC_1         6 (INTRINSIC_LIST_TO_TUPLE)
           RETURN_VALUE
z�  1        RESUME                   0

%3d        LOAD_GLOBAL              0 (spam)
           POP_TOP
           RETURN_CONST             0 (None)
z�   1        RESUME                   0

%4d        LOAD_GLOBAL              0 (spam)
            POP_TOP
            RETURN_CONST             0 (None)
z�Disassembly of f:
  4        RESUME                   0
           RETURN_CONST             0 (None)

Disassembly of g:
  5        RESUME                   0
           RETURN_CONST             0 (None)

zx + 1z�  0        RESUME                   0

  1        LOAD_NAME                0 (x)
           LOAD_CONST               0 (1)
           BINARY_OP                0 (+)
           RETURN_VALUE
�	x = x + 1z�  0        RESUME                   0

  1        LOAD_NAME                0 (x)
           LOAD_CONST               0 (1)
           BINARY_OP                0 (+)
           STORE_NAME               0 (x)
           RETURN_CONST             1 (None)
z+
x: int = 1
y: fun(1)
lst[fun(0)]: int = 1
a�  0        RESUME                   0

  2        SETUP_ANNOTATIONS
           LOAD_CONST               0 (1)
           STORE_NAME               0 (x)
           LOAD_NAME                1 (int)
           LOAD_NAME                2 (__annotations__)
           LOAD_CONST               1 ('x')
           STORE_SUBSCR

  3        PUSH_NULL
           LOAD_NAME                3 (fun)
           LOAD_CONST               0 (1)
           CALL                     1
           LOAD_NAME                2 (__annotations__)
           LOAD_CONST               2 ('y')
           STORE_SUBSCR

  4        LOAD_CONST               0 (1)
           LOAD_NAME                4 (lst)
           PUSH_NULL
           LOAD_NAME                3 (fun)
           LOAD_CONST               3 (0)
           CALL                     1
           STORE_SUBSCR
           LOAD_NAME                1 (int)
           POP_TOP
           RETURN_CONST             4 (None)
zx = 0
while 1:
    x += 1ac  0        RESUME                   0

  1        LOAD_CONST               0 (0)
           STORE_NAME               0 (x)

  2        NOP

  3     >> LOAD_NAME                0 (x)
           LOAD_CONST               1 (1)
           BINARY_OP               13 (+=)
           STORE_NAME               0 (x)

  2        JUMP_BACKWARD            6 (to 8)
ay%3d        RESUME                   0

%3d        NOP

%3d        LOAD_CONST               1 (1)
           LOAD_CONST               2 (0)
    -->    BINARY_OP               11 (/)
           POP_TOP

%3d        LOAD_FAST_CHECK          1 (tb)
           RETURN_VALUE
        >> PUSH_EXC_INFO

%3d        LOAD_GLOBAL              0 (Exception)
           CHECK_EXC_MATCH
           POP_JUMP_IF_FALSE       23 (to 80)
           STORE_FAST               0 (e)

%3d        LOAD_FAST                0 (e)
           LOAD_ATTR                2 (__traceback__)
           STORE_FAST               1 (tb)
           POP_EXCEPT
           LOAD_CONST               0 (None)
           STORE_FAST               0 (e)
           DELETE_FAST              0 (e)

%3d        LOAD_FAST                1 (tb)
           RETURN_VALUE
        >> LOAD_CONST               0 (None)
           STORE_FAST               0 (e)
           DELETE_FAST              0 (e)
           RERAISE                  1

%3d     >> RERAISE                  0
        >> COPY                     3
           POP_EXCEPT
           RERAISE                  1
ExceptionTable:
4 rows
rK�c� �|�d|d�d|�d|d��S)N� �4r�r,rGrH�ds    r�_fstringrU�s#���S��!�A��a��u�A�a�!�W�%�%ra�%3d        RESUME                   0

%3d        LOAD_FAST                0 (a)
           FORMAT_VALUE             0
           LOAD_CONST               1 (' ')
           LOAD_FAST                1 (b)
           LOAD_CONST               2 ('4')
           FORMAT_VALUE             4 (with format)
           LOAD_CONST               1 (' ')
           LOAD_FAST                2 (c)
           FORMAT_VALUE             2 (repr)
           LOAD_CONST               1 (' ')
           LOAD_FAST                3 (d)
           LOAD_CONST               2 ('4')
           FORMAT_VALUE             6 (repr, with format)
           BUILD_STRING             7
           RETURN_VALUE
c�>�|5d}ddd�d}y#1swYd}yxYw�Nr
r'r�rHr�ys   r�_withrZ�s��	
�
��
�	�A�
�	�A�s��a�%3d        RESUME                   0

%3d        LOAD_FAST                0 (c)
           BEFORE_WITH
           POP_TOP

%3d        LOAD_CONST               1 (1)
           STORE_FAST               1 (x)

%3d        LOAD_CONST               0 (None)
           LOAD_CONST               0 (None)
           LOAD_CONST               0 (None)
           CALL                     2
           POP_TOP

%3d        LOAD_CONST               2 (2)
           STORE_FAST               2 (y)
           RETURN_CONST             0 (None)

%3d     >> PUSH_EXC_INFO
           WITH_EXCEPT_START
           POP_JUMP_IF_TRUE         1 (to 42)
           RERAISE                  2
        >> POP_TOP
           POP_EXCEPT
           POP_TOP
           POP_TOP

%3d        LOAD_CONST               2 (2)
           STORE_FAST               2 (y)
           RETURN_CONST             0 (None)
        >> COPY                     3
           POP_EXCEPT
           RERAISE                  1
ExceptionTable:
2 rows
c��K�|4�d{���d}ddd��d{���d}y7�7�	#1�d{���7swYd}yxYw�wrWrrXs   r�
_asyncwithr\s0�����q�
���q�	�A���q��q�q�q�	�A�s0�>�#�>�'�>�%�>�>�;�0�;�	>aq%3d        RETURN_GENERATOR
           POP_TOP
           RESUME                   0

%3d        LOAD_FAST                0 (c)
           BEFORE_ASYNC_WITH
           GET_AWAITABLE            1
           LOAD_CONST               0 (None)
        >> SEND                     3 (to 24)
           YIELD_VALUE              2
           RESUME                   3
           JUMP_BACKWARD_NO_INTERRUPT     5 (to 14)
        >> END_SEND
           POP_TOP

%3d        LOAD_CONST               1 (1)
           STORE_FAST               1 (x)

%3d        LOAD_CONST               0 (None)
           LOAD_CONST               0 (None)
           LOAD_CONST               0 (None)
           CALL                     2
           GET_AWAITABLE            2
           LOAD_CONST               0 (None)
        >> SEND                     3 (to 60)
           YIELD_VALUE              2
           RESUME                   3
           JUMP_BACKWARD_NO_INTERRUPT     5 (to 50)
        >> END_SEND
           POP_TOP

%3d        LOAD_CONST               2 (2)
           STORE_FAST               2 (y)
           RETURN_CONST             0 (None)

%3d     >> CLEANUP_THROW
           JUMP_BACKWARD           25 (to 24)
        >> CLEANUP_THROW
           JUMP_BACKWARD            9 (to 60)
        >> PUSH_EXC_INFO
           WITH_EXCEPT_START
           GET_AWAITABLE            2
           LOAD_CONST               0 (None)
        >> SEND                     4 (to 98)
           YIELD_VALUE              3
           RESUME                   3
           JUMP_BACKWARD_NO_INTERRUPT     5 (to 86)
        >> CLEANUP_THROW
        >> END_SEND
           POP_JUMP_IF_TRUE         1 (to 104)
           RERAISE                  2
        >> POP_TOP
           POP_EXCEPT
           POP_TOP
           POP_TOP

%3d        LOAD_CONST               2 (2)
           STORE_FAST               2 (y)
           RETURN_CONST             0 (None)
        >> COPY                     3
           POP_EXCEPT
           RERAISE                  1
        >> CALL_INTRINSIC_1         3 (INTRINSIC_STOPITERATION_ERROR)
           RERAISE                  1
ExceptionTable:
12 rows
c�.�	||�S#|�wxYwr6r�r,rGs  r�_tryfinallyr_S�����	�����s��	c�.�		|�y#|�wxYwrr)rGs r�_tryfinallyconstrbYr`s�	a"%3d        RESUME                   0

%3d        NOP

%3d        LOAD_FAST                0 (a)

%3d        PUSH_NULL
           LOAD_FAST                1 (b)
           CALL                     0
           POP_TOP
           RETURN_VALUE
        >> PUSH_EXC_INFO
           PUSH_NULL
           LOAD_FAST                1 (b)
           CALL                     0
           POP_TOP
           RERAISE                  0
        >> COPY                     3
           POP_EXCEPT
           RERAISE                  1
ExceptionTable:
2 rows
a%3d        RESUME                   0

%3d        NOP

%3d        NOP

%3d        PUSH_NULL
           LOAD_FAST                0 (b)
           CALL                     0
           POP_TOP
           RETURN_CONST             1 (1)
           PUSH_EXC_INFO
           PUSH_NULL
           LOAD_FAST                0 (b)
           CALL                     0
           POP_TOP
           RERAISE                  0
        >> COPY                     3
           POP_EXCEPT
           RERAISE                  1
ExceptionTable:
1 row
c#�K�|��y�wr6rrs r�_grd�s����
�G�s�c�K�|���y�wr6rrs r�_agrf�s����
�G�s�	c��<K�t|�23d{���}�
7�6y�wr6)rf)r�items  r�_cori�s�����!�f�
�d��
��f�s�������c����fd�}|S)Nc�.���t�fd��D��S)�funcdocc3�(�K�|]	}�|z���y�wr6r)�.0�zrs  �r�	<genexpr>z"_h.<locals>.foo.<locals>.<genexpr>�s�����%�1�a�A��E�1���)�list�rrYs`�r�fooz_h.<locals>.foo�s����%�1�%�%�%rr)rYrts` r�_hru�s���&��Jra�           MAKE_CELL                0 (y)

%3d        RESUME                   0

%3d        LOAD_CLOSURE             0 (y)
           BUILD_TUPLE              1
           LOAD_CONST               1 (<code object foo at 0x..., file "%s", line %d>)
           MAKE_FUNCTION            8 (closure)
           STORE_FAST               1 (foo)

%3d        LOAD_FAST                1 (foo)
           RETURN_VALUE
am%s
Disassembly of <code object foo at 0x..., file "%s", line %d>:
           COPY_FREE_VARS           1
           MAKE_CELL                0 (x)

%3d        RESUME                   0

%3d        LOAD_GLOBAL              1 (NULL + list)
           LOAD_CLOSURE             0 (x)
           BUILD_TUPLE              1
           LOAD_CONST               1 (<code object <genexpr> at 0x..., file "%s", line %d>)
           MAKE_FUNCTION            8 (closure)
           LOAD_DEREF               1 (y)
           GET_ITER
           CALL                     0
           CALL                     1
           RETURN_VALUE
a%s
Disassembly of <code object <genexpr> at 0x..., file "%s", line %d>:
           COPY_FREE_VARS           1

%3d        RETURN_GENERATOR
           POP_TOP
           RESUME                   0
           LOAD_FAST                0 (.0)
        >> FOR_ITER                 9 (to 32)
           STORE_FAST               1 (z)
           LOAD_DEREF               2 (x)
           LOAD_FAST                1 (z)
           BINARY_OP                0 (+)
           YIELD_VALUE              1
           RESUME                   1
           POP_TOP
           JUMP_BACKWARD           11 (to 10)
        >> END_FOR
           RETURN_CONST             0 (None)
        >> CALL_INTRINSIC_1         3 (INTRINSIC_STOPITERATION_ERROR)
           RERAISE                  1
ExceptionTable:
1 row
c��||}}||fSr6r)rrYr,rGs    r�	load_testrw�s���a�q�A��a�4�Kra�%3d           0 RESUME                   0

%3d           2 LOAD_FAST__LOAD_FAST     0 (x)
              4 LOAD_FAST                1 (y)
              6 STORE_FAST__STORE_FAST     3 (b)
              8 STORE_FAST__LOAD_FAST     2 (a)

%3d          10 LOAD_FAST__LOAD_FAST     2 (a)
             12 LOAD_FAST                3 (b)
             14 BUILD_TUPLE              2
             16 RETURN_VALUE
c�2�gd�dzD]
}t|��y)N)r
r'r4r4�rw)�is r�	loop_testr{s��
��]���!��rar%3d        RESUME                   0

%3d        BUILD_LIST               0
           LOAD_CONST               1 ((1, 2, 3))
           LIST_EXTEND              1
           LOAD_CONST               2 (3)
           BINARY_OP                5 (*)
           GET_ITER
        >> FOR_ITER_LIST           13 (to 46)
           STORE_FAST               0 (i)

%3d        LOAD_GLOBAL_MODULE       1 (NULL + load_test)
           LOAD_FAST                0 (i)
           CALL_PY_WITH_DEFAULTS     1
           POP_TOP
           JUMP_BACKWARD           15 (to 16)

%3d     >> END_FOR
           RETURN_CONST             0 (None)
c��d�^}}y)N.r)�_s r�extended_arg_quickr~%s���E�Q�raH%3d           0 RESUME                   0

%3d           2 LOAD_CONST               1 (Ellipsis)
              4 EXTENDED_ARG             1
              6 UNPACK_EX              256
              8 STORE_FAST               0 (_)
             10 STORE_FAST               0 (_)
             12 RETURN_CONST             0 (None)
c�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd	d�Z	y)
�DisTestBasez2Common utilities for DisTests and TestDisTracebackc�0�tjdd|�S)Nz\b0x[0-9A-Fa-f]+\bz0x...)�re�sub)r�texts  r�strip_addresseszDisTestBase.strip_addresses9s���v�v�+�W�d�;�;rc���|D]}|s�|jd�r�nyd}||dk(r|dz
}||dk(r�||dk(r|dz
}||dk(r|dz
}||dk(r�|}||dvr
|dz
}||dvr�
|dz
|fS)	N�Disassembly)rrrKrQr
�>r'�
0123456789)�
startswith)r�lines�line�offset�ends     r�find_offset_columnzDisTestBase.find_offset_column<s����D��D�O�O�M�:�������F�|�s�"��a�K�F��F�|�s�"���L�C���a�K�F��F�|�s�"��a�K�F��F�|�s�"����3�i�<�'��1�H�C��3�i�<�'��1�u�c�z�rc��d}|j�}|j|�\}}|D]R}|s�|jd�rd}�|jd�ryt|||�}|j	|||�||z}�Ty)Nrr�r)�
splitlinesr�r��int�assertGreaterEqual)	rr��delta�expected_offsetr��startr�r�r�s	         r�assert_offsets_increasingz%DisTestBase.assert_offsets_increasingNs��������!���,�,�U�3�
��s��D������}�-�"#������{�+����e�C��)�F��#�#�F�O�T�B�$�u�n�O�rc��d\}}d}|D]o}tjd|�}|j�D�cgc]
}t|���c}\}}	|j	|	|�|j||�||	}}|dz
}�q|Scc}w)N)���r�rz  (\d+) to (\d+) -> \d+ \[\d+\]r
)r��match�groupsr�r��
assertGreater)
rr��
prev_start�prev_end�countr��m�gr�r�s
          r�!assert_exception_table_increasingz-DisTestBase.assert_exception_table_increasing^s���%��
�H����D����;�T�B�A�*+�(�(�*�5�*�Q�#�a�&�*�5�J�E�3��#�#�C��/����u�h�/�#(�#��J��Q�J�E�
����6s�A>c��|jd�}|j|�\}}g}t|�}|D]e}|jd�r|j	|�nA|r|jd�r|j	|��L|j	|d|||dz��g|j|�}|r|j	|�d|dkDrdnd�d��dj
|�S)	NTrr�z rowr
�s�r()r�r��iterr��appendr��join)rr�r�r�r�r2r��num_rowss        r�
strip_offsetszDisTestBase.strip_offsetsjs�������%���,�,�U�3�
��s����U����D����{�+��
�
�4� ���4�?�?�=�9��
�
�4� ��
�
�4���<�$�s�t�*�4�5���9�9�%�@����J�J�(��4�x�!�|���'D�B�G�H��w�w�s�|�rc��|s#|j|d�|j|�}||k7r|j|�}|j||�y)Nr')r�r�r��assertEqual)r�got�expected�with_offsetss    r�do_disassembly_comparez"DisTestBase.do_disassembly_compare|sL����*�*�3��2��$�$�S�)�C��(�?��&�&�s�+�C�����h�'rN�F)
r"r#r$�__doc__r�r�r�r�r�r�rrrr�r�6s#��8�<��$-� 
��$(rr�c��eZdZdZd1d�Zd2d�Zd3d�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�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(e)e*fd'��Z+e,e-d(���Z.e,e-d)���Z/e,e-d*���Z0e,e-d+���Z1e,e-d,���Z2e,d-��Z3d.�Z4e,d/��Z5e,d0��Z6y)4�DisTestsNc��tj�}tj|�5|rt	j|fi|��nt	j
||fi|��ddd�|j
�S#1swY|j
�SxYwr6)�io�StringIO�
contextlib�redirect_stdout�dis�disassemble�getvalue�r�func�lasti�wrapper�kwargs�outputs      r�get_disassemblyzDisTests.get_disassembly�sk�������
�
'�
'��
/������'��'�����e�6�v�6�	0�
��� � �0�
��� � �s�1A3�3Bc�(�|j||d�S)NF)r�)rr�r�s   r�get_disassemble_as_stringz"DisTests.get_disassemble_as_string�s���#�#�D�%��7�7rc�t�d|_|j|d��}|j|||�t|d�rst	j
�}t
j|�5tj|j�ddd�|j|j�||�yy#1swY�,xYw)Nr��depth�__code__)�maxDiffr�r��hasattrr�r�r�r�r��discor�r�)rr�r�r�r��	got_discos      r�do_disassembly_testzDisTests.do_disassembly_test�s�������"�"�4�q�"�1���#�#�C��<�@��4��$����
�I��+�+�I�6��	�	�$�-�-�(�7��'�'�	�(:�(:�(<�h�(4�
6�	%�6�6�s�# B.�.B7c��|jtjdd�|jtjdtj�|jtjdtj
�y)N�NOPr?�
LOAD_CONST�
STORE_NAME)r�r��opmap�assertIn�hasconst�hasname�rs r�
test_opmapzDisTests.test_opmap�sQ��������5�)�1�-��
�
�c�i�i��-�s�|�|�<��
�
�c�i�i��-�s�{�{�;rc�l�|jtjtjdd�y)N�	LOAD_FAST)r�r��opnamer�r�s r�test_opnamezDisTests.test_opname�s$��������C�I�I�k�$:�;�[�Irc���|jtjdtj�|jtjdtj�y)N�EXTENDED_ARGr�)r�r�r�r��
HAVE_ARGUMENTr�s r�test_boundarieszDisTests.test_boundaries�s@��������>�2�C�4D�4D�E�������<�0�#�2C�2C�Drc��tddg�}ttj�D]�\}}||vs|j	d�r�|j|��5tj}|tjvr|dtjzz
}|jt|�|�ddd���y#1swY��xYw)N�JUMP_BACKWARD_NO_INTERRUPT�INSTRUMENTED_CALL_FUNCTION_EX�INSTRUMENTED)r�r
)�set�	enumerater�r�r��subTest�
_OPNAME_WIDTH�hasarg�_OPARG_WIDTH�assertLessEqual�len)r�long_opcodes�opcoder��widths     r�test_widthszDisTests.test_widths�s����8�;�=�>��'��
�
�3�N�F�F���%��):�):�>�)J�����V��,��)�)���S�Z�Z�'��Q��!1�!1�1�1�E��$�$�S��[�%�8�	-�,�4�-�,�s
�AB4�4B=	c�8�|jtt�yr6)r�r-�dis_fr�s r�test_diszDisTests.test_dis����� � ��U�+rc�8�|jtt�yr6)r�r3�
dis_bug708901r�s r�test_bug_708901zDisTests.test_bug_708901�s��� � ��M�:rc�\�	|jd�|jtt�y)Nzneed asserts, run without -O)�skipTestr�r7�dis_bug1333982r�s r�test_bug_1333982zDisTests.test_bug_1333982�s$����M�M�8�9�� � ��^�<rc�8�|jtt�yr6)r�r9�dis_bug42562r�s r�test_bug_42562zDisTests.test_bug_42562�s��� � ��<�8rc�8�|jtt�yr6)r��code_bug_45757�
dis_bug_45757r�s r�test_bug_45757zDisTests.test_bug_45757�s��� � ���?rc�8�|jtt�yr6)r��bug46724�dis_bug46724r�s r�test_bug_46724zDisTests.test_bug_46724�s��� � ��<�8rc�8�|jtt�yr6)r�rM�dis_kw_namesr�s r�
test_kw_nameszDisTests.test_kw_names�s��� � �!3�\�Brc��|jdt�|jdt�|jdt�y)Nzfrom math import *z+az(*a,))r��dis_intrinsic_1_2�dis_intrinsic_1_5�dis_intrinsic_1_6r�s r�test_intrinsic_1zDisTests.test_intrinsic_1�s6��� � �!5�7H�I�� � ��'8�9�� � ��*;�<rc�F�|jd|jd��y)Nz8CALL_INTRINSIC_2         1 (INTRINSIC_PREP_RERAISE_STAR)ztry: pass
except* Exception: x)r�r�r�s r�test_intrinsic_2zDisTests.test_intrinsic_2�s!���
�
�P��*�*�+L�M�	Orc��d�}tdd�D]&}t|dzz}|j||�|��(tddd�D]&}t|dzz}|j||�|��(tddd�D]&}t|dzz}|j||�|��(dd	lm}|j|t�y)
Nc�`�i}ddjdg|zdgz�z}t||�|dS)Nzdef foo():
 r�z
 zspam
rt�r��exec�r��	namespacer�s   rr�z'DisTests.test_big_linenos.<locals>.func�s<���I�"�R�W�W�e�W�u�_��z�-I�%J�J�D���y�!��U�#�#rr
i,r'��r/i�r)�
dis_module)r1�_BIG_LINENO_FORMATr��_BIG_LINENO_FORMAT2�testr�dis_module_expected_results)rr�rzr�rs     r�test_big_linenoszDisTests.test_big_linenos�s���	$��q�#��A�)�Q��U�3�H��$�$�T�!�W�h�7��
�s�D�"�%�A�)�Q��U�3�H��$�$�T�!�W�h�7�&��t�T�2�&�A�*�a�!�e�4�H��$�$�T�!�W�h�7�'�	$�� � ��-H�Irc��d|_d�}d�}tdd�D]"}|j||�||d�d��$|j|d�|dd�d�|j|d�|dd�d�y)	Nc�^�i}ddjdg|z�zdz}t||�|dS)Nz
def foo(x):
 �;rNz

 return xrtrrs   rr�z'DisTests.test_big_offsets.<locals>.func�s;���I�#�c�h�h��}�u�/D�&E�E�
�U�D���y�!��U�#�#rc�
�d|dfzg}|t|�D�cgc]'}d|d|zdz|d|zdz|d|zdz|d|zdzfz��)c}z
}|d|d|zdz|d|zdzfzgz
}d	|d
ddz|d
<dj|�Scc}w)
Nz+  1        %*d RESUME                   0

rz�           %*d LOAD_FAST                0 (x)
           %*d LOAD_CONST               1 (1)
           %*d BINARY_OP                0 (+)
           %*d STORE_FAST               0 (x)
r/r'rO�zK
  3        %*d LOAD_FAST                0 (x)
           %*d RETURN_VALUE
z  2r
r4r�)r1r�)r��wr�rzs    rr�z+DisTests.test_big_offsets.<locals>.expecteds����	�!�f�
��A�
� ��,�
(�'�Q�
�
	�"�Q�$��(�A�r�!�t�a�x��B�q�D�1�H�a��A����;�<�'�
(�
(�A�
��	�"�U�(�Q�,��2�e�8�a�<�(�	)�*�
*�A�
�1�Q�4���8�#�A�a�D��7�7�1�:���(s�,Br
rKrOTi�r)r�r1r�)rr�r�rzs    r�test_big_offsetszDisTests.test_big_offsets�s{�����	$�	�(�q�!��A��$�$�T�!�W�h�q�!�n�d�C��� � ��c��H�S�!�,<�d�C�� � ��d��X�d�A�->��Erc���|jtt�|jtt�|jt
t�|jtt�yr6)	r��expr_str�dis_expr_str�simple_stmt_str�dis_simple_stmt_str�annot_stmt_str�dis_annot_stmt_str�compound_stmt_str�dis_compound_stmt_strr�s r�test_disassemble_strzDisTests.test_disassemble_strsF��� � ��<�8�� � ��2E�F�� � ��1C�D�� � �!2�4I�Jrc�`�|jtjjt�yr6)r�r-r��co_code�
dis_f_co_coder�s r�test_disassemble_byteszDisTests.test_disassemble_bytes s��� � ����!4�!4�m�Drc�8�|jtt�yr6)r�r�dis_cr�s r�test_disassemble_classzDisTests.test_disassemble_class#r�rc�V�|jtd�jt�yr)r�rr�dis_c_instance_methodr�s r� test_disassemble_instance_methodz)DisTests.test_disassemble_instance_method&s��� � ��A����1F�Grc��td�jjj}|j	|t
�yr)rrr�r0r��dis_c_instance_method_bytes)r�method_bytecodes  r�&test_disassemble_instance_method_bytesz/DisTests.test_disassemble_instance_method_bytes)s,���Q�%�.�.�1�1�9�9��� � ��2M�Nrc�L�|jtjt�yr6)r�rr�dis_c_static_methodr�s r�test_disassemble_static_methodz'DisTests.test_disassemble_static_method-s��� � ����(;�<rc�L�|jtjt�yr6)r�rr!�dis_c_class_methodr�s r�test_disassemble_class_methodz&DisTests.test_disassemble_class_method0s��� � ����(:�;rc��|jt�}|jtd��}|j||�yr)r�rdr�)r�gen_func_disas�	gen_disass   r�test_disassemble_generatorz#DisTests.test_disassemble_generator3s6���-�-�b�1���(�(��A��/�	�����N�3rc��|jt�}|jtd��}|j||�yr)r�rfr�)r�agen_func_disas�
agen_disass   r� test_disassemble_async_generatorz)DisTests.test_disassemble_async_generator8s6���.�.�s�3���)�)�#�a�&�1�
�����_�5rc��|jt�}td�}|j�|j|�}|j||�yr)r�ri�closer�)r�coro_func_disas�coro�
coro_disass    r�test_disassemble_coroutinez#DisTests.test_disassemble_coroutine=sD���.�.�s�3���1�v���
�
���)�)�$�/�
�����_�5rc�8�|jtt�yr6)r�rU�dis_fstringr�s r�test_disassemble_fstringz!DisTests.test_disassemble_fstringDs��� � ��;�7rc�8�|jtt�yr6)r�rZ�dis_withr�s r�test_disassemble_withzDisTests.test_disassemble_withGs��� � ���1rc�8�|jtt�yr6)r�r\�
dis_asyncwithr�s r�test_disassemble_asyncwithz#DisTests.test_disassemble_asyncwithJs��� � ��]�;rc�l�|jtt�|jtt�yr6)r�r_�dis_tryfinallyrb�dis_tryfinallyconstr�s r�test_disassemble_try_finallyz%DisTests.test_disassemble_try_finallyMs$��� � ��n�=�� � �!1�3F�Grc��	t`	t`|j	t
tjd�y#t$rY�8wxYw#t$rY�@wxYwr6)�sys�last_exc�AttributeError�last_traceback�assertRaises�RuntimeErrorr�r�s r�
test_dis_nonezDisTests.test_dis_noneQsV��	���	��"�	
���,�����6��
�	��	���	��	�s �5�A�	A�A�	A�Ac�*�d|_	t`	ddz|jjj|j�}|jd|d�y#t$rY�UwxYw#t$r!}|j
}|t_Yd}~�xd}~wwxYw)Nr
rT)r�r_rbrarrr`r��tb_frame�f_code�tb_lastir�)rr
r�tb_diss    r�test_dis_tracebackzDisTests.test_dis_traceback\s������	��"�	�
�a�C�
�/�/����0B�0B�B�K�K�P��� � ��v�t�4���	��	��
�	����B��C�L�L��	�s(�A�A(�	A%�$A%�(	B�1B
�
Bc�^�|jttjt��yr6)rc�	TypeErrorr��objectr�s r�test_dis_objectzDisTests.test_dis_objectls�����)�S�W�W�f�h�7rc����fd�}|td��|td��|td��|td��|td��|t�y)Nc����jtfi|��}�j|�}�j|�}�j	||�yr6)r�rur�r�r�)r�r�r�rs   �r�checkz2DisTests.test_disassemble_recursive.<locals>.checkpsJ���&�$�&�&�r�4�V�4�C��&�&�s�+�C��$�$�S�)�C����S�(�+rrr�r
r'r4)�dis_nested_0�dis_nested_1�dis_nested_2)rrrs` r�test_disassemble_recursivez#DisTests.test_disassemble_recursiveosD���	,�	�l�!�$�
�l�!�$�
�l�!�$�
�l�!�$�
�l�$�'�
�l�rc��	tjdd�y#t$r%}|j|j�Yd}~yd}~wwxYw)N�)r�)r��_try_compiler�assertIsNone�__context__)rr
s  r�)test__try_compile_no_context_exc_on_errorz2DisTests.test__try_compile_no_context_exc_on_error}s<��	-����S�"�%���	-����a�m�m�,�,��	-�s��	A�A�Ac�2�t|�D]	}|��yr6r0)�f�timesr}s   r�code_quickenzDisTests.code_quicken�s���u��A�
�C�rc��|jd��|jtd��}|j|td�y)Nc��tdd�S)Nrryrrr�<lambda>z2DisTests.test_super_instructions.<locals>.<lambda>�s
��)�A�q�/rT��adaptive)r�r�rwr��dis_load_test_quickened_code�rr�s  r�test_super_instructionsz DisTests.test_super_instructions�s;��	
���1�2��"�"�9�t�"�<���#�#�C�)E�t�Lrc�d�����d}tddd��|j�fd��|j�d��}|j||dzd�tdd	d��|j�fd
��|j�d��}|j||dzd�d}td
dd��|j�fd��|j�d��}|j||dzd�td
dd��|j�fd��|j�d��}|j||dzd�y)Nz�  0           0 RESUME                   0

  1           2 LOAD_NAME                0 (a)
              4 LOAD_NAME                1 (b)
              6 %s
             10 RETURN_VALUE
za + bz<int>�evalc�$��t�iddd��S)Nr
r'r^�r)�co_ints�rr�z1DisTests.test_binary_specialize.<locals>.<lambda>�s���$�v�r���3C�"DrTr�zBINARY_OP_ADD_INT        0 (+)z	<unicode>c�$��t�iddd��S)Nr,rGr^r�)�
co_unicodes�rr�z1DisTests.test_binary_specialize.<locals>.<lambda>�s���$�z�2�S�s�7K�"LrzBINARY_OP_ADD_UNICODE     0 (+)z�  0           0 RESUME                   0

  1           2 LOAD_NAME                0 (a)
              4 LOAD_CONST               0 (0)
              6 %s
             10 RETURN_VALUE
za[0]z<list>c�$��t�iddgi�S)Nr,rr�)�co_lists�rr�z1DisTests.test_binary_specialize.<locals>.<lambda>�s���$�w��S�1�#�J�"?r�BINARY_SUBSCR_LIST_INTz<dict>c�&��t�idddii�S)Nr,r�1r�)�co_dicts�rr�z1DisTests.test_binary_specialize.<locals>.<lambda>�s���$�w��S�1�c�(�O�"Dr�BINARY_SUBSCR_DICT��compiler�r�r�)r�binary_op_quickenr��binary_subscr_quickenr�r�r�r�s    @@@@r�test_binary_specializezDisTests.test_binary_specialize�sG�������'�6�2�����D�E��"�"�6�D�"�9���#�#�C�):�=]�)]�_c�d��W�k�6�:�
����L�M��"�"�:��"�=���#�#�C�):�=^�)^�`d�e�!���&�(�F�3�����?�@��"�"�7�T�"�:���#�#�C�)>�AY�)Y�[_�`��&�(�F�3�����D�E��"�"�7�T�"�:���#�#�C�)>�AU�)U�W[�\rc���d}tddd��|j�fd��|j�d��}|j||d�y)Nz�  0           0 RESUME                   0

  1           2 LOAD_CONST               0 ('a')
              4 LOAD_ATTR_SLOT           0 (__class__)
             24 RETURN_VALUE
z
'a'.__class__r�r�c���t�ii�Sr6r���cos�rr�z4DisTests.test_load_attr_specialize.<locals>.<lambda>�����$�r�2�r�"2rTr�r�)r�load_attr_quickenr�r�s   @r�test_load_attr_specializez"DisTests.test_load_attr_specialize�sR������_�b�&�
1�����2�3��"�"�2��"�5���#�#�C�):�D�Arc���d}tddd��|j�fd��|j�d��}|j||�y)Nz�  0        RESUME                   0

  1        PUSH_NULL
           LOAD_NAME                0 (str)
           LOAD_CONST               0 (1)
           CALL_NO_KW_STR_1         1
           RETURN_VALUE
zstr(1)r�r�c���t�ii�Sr6r�r�s�rr�z/DisTests.test_call_specialize.<locals>.<lambda>�r�rTr�r�)r�call_quickenr�r�s   @r�test_call_specializezDisTests.test_call_specialize�sN������X�r�6�
*�����2�3��"�"�2��"�5���#�#�C��6rc��|jtd�|jtd��}|j|t�y)Nr
Tr�)r�r{r�r��dis_loop_test_quickened_coder�s  r�test_loop_quickenzDisTests.test_loop_quicken�s:��	
���)�Q�'��"�"�9�t�"�<���#�#�C�)E�Frc�\�|jt�}|j|td�y)NT)r�r~r��dis_extended_arg_quick_coder�s  r�test_extended_arg_quickz DisTests.test_extended_arg_quick�s&���"�"�#5�6���#�#�C�)D�d�Krc#��K�d�}|r|j|�n|jj�|_tj|d|��D] }|j
dk(s�|j���"y�w)Nc�J�g}td�D]}|j|��y)N�*)r1r�)�lrzs  rr~z%DisTests.get_cached_values.<locals>.f�s ���A��2�Y�������rT)�show_cachesr��CACHE)r�r��replacer��get_instructionsr��argrepr)r�	quickenedr�r~�instructions     r�get_cached_valueszDisTests.get_cached_values�sl����	�����a� ����+�+�-�A�J��/�/�
�4�(�
�K��!�!�W�,�!�)�)�)�	
�s�A!A5�$A5c	�n�dD]�}dD]�}|jd|�d|���5|rd}nd}t|j||��}|D]}|j||��d}d}|j	|jd�|�|j	t
|�|�ddd�����y#1swY��xYw)	N�FTz
quickened=z, adaptive=z
^(\w+: \d+)?$z^(\w+: 0)?$��r�)r�rrr��assertRegexr�r�r�)rr�r��pattern�caches�cache�total_caches�empty_cachess        r�test_show_cacheszDisTests.test_show_caches�s���&�I�)���\�\�Z�Y�L��8�+�">�?��"2��"0��!�$�"8�"8��H�"M�N�F�!'���(�(���8�"(�#%�L�#$�L��$�$�V�\�\�"�%5�|�D��$�$�S��[�,�?�@�?�*�'�?�?�s�A<B+�+B4c��d�}tj|d��D].}|jdk(s�|jdz
}|j}n|j	d�|j|jd��}|j|jd��}|j|d	|���|j||�y
)zp
        Make sure that with lasti pointing to CACHE, it still shows the current
        line correctly
        c�"�tt�yr6)r+r,rrrr~z2DisTests.test_show_currinstr_with_cache.<locals>.fs	���!�HrT)r�r�r'z@Can't find a CACHE entry in the function provided to do the testF)r�r�z-->\s+N)	r�r�r�r��failr�r�r�r�)rr~�inst�	op_offset�cache_offset�assem_op�assem_caches       r�test_show_currinstr_with_cachez'DisTests.test_show_currinstr_with_caches���	��(�(���=�D��{�{�g�%� �K�K�!�O�	�#�{�{���	>�
�I�I�X�Y��'�'��
�
�)�U�'�S���*�*�1�:�:�\�SX�*�Y��	
����f�Y�K�#8�9�����;�/r�r�T)r�r�)7r"r#r$r�r�r�r�r�r�r�r�r�r�r�r�rrr	rrrr$r.r2r5r8r<r?rBrFrJrPrSrVrYr]rerkrorvr|r%�ADAPTIVE_WARMUP_DELAYr�rrr�r�r�r�r�r�r�r�r�rrrr�r��s����G�!�8�
6�<�
J�E�
9�,�;�=�9�@�9�C�=�O�J�0F�BK�E�,�H�O�=�<�4�
6�
6�8�2�<�H�	7�5� 8��-��3������M���M�
��#]���#]�J��B���B���
7���
7���G���G��L��L�*� �@��@� �0��0rr�c��eZdZdd�Zy)�DisWithFileTestsc���tj�}|r(tj|fd|i|��|j	�Stj||fd|i|��|j	�S)N�file)r�r�r�r�r�r�s      rr�z DisWithFileTests.get_disassembly%s\���������G�G�D�0�v�0��0���� � �
�O�O�D�%�?�f�?��?���� � rNr��r"r#r$r�rrrr�r�"s��!rr�z0: Nonez60: 'Formatted details of methods, functions, or code.'z�Name:              code_info
Filename:          (.*)
Argument count:    1
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  1
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS
Constants:
   zN
Names:
   0: _format_code_info
   1: _get_code_object
Variable names:
   0: xT)r
c	/�R��������
K�|f�����
���fd�	�
�����|���
f	��y�w)Nc�,��t�����|����	yr6r*)	rHr,rGrTr
r~rrYros	 ��������rr~ztricky.<locals>.fGs���
�a��A�q�!�Q��1�a�(rr)r,rGrrYrorHrTr
�args�kwdsr~s````` ``  @r�trickyr�Es-�����
�)�)�
�Q��1�a��A�q�!�
#�#�s�'aName:              tricky
Filename:          (.*)
Argument count:    5
Positional-only arguments: 2
Kw-only arguments: 3
Number of locals:  10
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, VARARGS, VARKEYWORDS, GENERATOR
Constants:
   0: None
   1: <code object f at (.*), file "(.*)", line (.*)>
Variable names:
   0: a
   1: b
   2: x
   3: y
   4: z
   5: c
   6: d
   7: e
   8: args
   9: kwds
Cell variables:
   0: [abedfxyz]
   1: [abedfxyz]
   2: [abedfxyz]
   3: [abedfxyz]
   4: [abedfxyz]
   5: [abedfxyz]aqFilename:          (.*)
Argument count:    1
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  1
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, NESTED
Constants:
   0: None
Names:
   0: print
Variable names:
   0: c
Free variables:
   0: [abedfxyz]
   1: [abedfxyz]
   2: [abedfxyz]
   3: [abedfxyz]
   4: [abedfxyz]
   5: [abedfxyz]z�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 1
Names:
   0: xz�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 1
   1: None
Names:
   0: xz�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 0
   1: 1
Names:
   0: xc��K�d�d{���t23d{���}�
7�7�6t4�d{���7}ddd��d{���7y#1�d{���7swYyxYw�wr)rGrH)r,rTs  r�	async_defr��s2����
�G�G���a�����1��q�A�q�q�q�q�q�s]�A��
A�!��!�A�!�A�/�A�A�A�A�A�A�
A
�A�Aa/Name:              async_def
Filename:          (.*)
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  2
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, COROUTINE
Constants:
   0: None
   1: 1
Names:
   0: b
   1: c
Variable names:
   0: a
   1: dc�f�eZdZejefeefee	fe
efee
feefeefgZd�Zd�Zd�Zd�Zy)�
CodeInfoTestsc��d|_|jD]*\}}|jtj|�|��,y�Nr)r��
test_pairsr�r��	code_info)rrr�s   r�test_code_infozCodeInfoTests.test_code_info�s4������?�?�K�A�x����S�]�]�1�-�x�8�+rc�~�d|_|jD]�\}}t�5}tj|�ddd�|jj
�|dz�tj�}tj||��|j|j
�|���y#1swY�zxYw)Nrr(�r�)	r�r�rr��	show_coder�r�r�r�)rrr�r�s    r�test_show_codezCodeInfoTests.test_show_code�s�������?�?�K�A�x� �"�f��
�
�a� �#����V�_�_�.���
�>��[�[�]�F��M�M�!�&�)����V�_�_�.��9�
+�"�"�s�B3�3B<	c�^�|jttjt	��yr6)rcrmr�r�rnr�s r�test_code_info_objectz#CodeInfoTests.test_code_info_object�s�����)�S�]�]�F�H�=rc�N�|jtjd�d�y)Nr�0x0)r�r��pretty_flagsr�s r�test_pretty_flags_no_flagsz(CodeInfoTests.test_pretty_flags_no_flags�s������)�)�!�,�e�4rN)r"r#r$r�r��code_info_code_infor��code_info_tricky�co_tricky_nested_f�code_info_tricky_nested_fr&�code_info_expr_strr(�code_info_simple_stmt_strr,�code_info_compound_stmt_strr��code_info_async_defr�r�r�r�r�rrrr�r��s`��
�}�}�)�*�
�� ��4�5��#�$��1�2��5�6��%�&��J�9�
:�>�5rr�c	�:���d��fd�	}t��ddgid�|S)Nc�:����d����fd�	}t�����|S)Nc�&��t����||�yr6r*)r
r~r,rGrHrTs  ����r�innerzouter.<locals>.f.<locals>.inner�s����!�Q��1�a��#r�rKr"r*)rHrTr�r,rGs`` ��rr~zouter.<locals>.f�s ���	$�	$�
�a��A�q���rr�r
�Hello world!�r4rOr*)r,rGr~s`` r�outerr��s#����

�!�Q��A�r�2�~�.��Hrc�|�td�D]}t|�|dkr�|dkDs�ntd�rt|�|dz}|dkDr�|dkrn|r�td�	ddz|5}td�ddd�td
�y#1swY�xYw#t$rtd	�Y�.wxYw#td
�wxYw)Nr/rOr"�I can haz else clause?r
�%Who let lolcatz into this test suite?r�Never reach this�%Here we go, here we go, here we go...�OK, now we're done)r1r+�ZeroDivisionError)rz�dodgys  r�jumpyr�s���
�2�Y��
�a���q�5���q�5���	�&�'�
�
�a��	�Q����q�5���q�5��
�	�5�6�$�	�A���%��$�%��	�"�#��Q���7�
�5�6�7��	�"�#�sB�!B�&B.�(B�4B.�B�
B.�B+�(B.�*B+�+B.�.
B;c�8�t|jd���S�N)�	positions)�str�_replace)�instrs r�_stringify_instructionrs���u�~�~��~�-�.�.rc	��tjtt��}t	ddjt
t|��dd��tjt�t��}t	ddjt
t|��dd��tjt��t��}t	ddjt
t|��dd��tjtt��}t	d	djt
t|��dd��tjt�y)
N��
first_linezexpected_opinfo_outer = [
  z,
  z,
]r�)�sepzexpected_opinfo_f = [
  zexpected_opinfo_inner = [
  zexpected_opinfo_jumpy = [
  )r�r�r��expected_outer_liner+r��mapr�expected_f_line�expected_inner_liner�expected_jumpy_line)�
_instructionss r�_prepare_test_casesr$s����(�(��;N�O�M�	�
)�
�,�,�s�1�=�A�
B�F�PR�T��(�(���_�M�M�	�
%�
�,�,�s�1�=�A�
B�F�PR�T��(�(�����?R�S�M�	�
)�
�,�,�s�1�=�A�
B�F�PR�T��(�(��;N�O�M�	�
)�
�,�,�s�1�=�A�
B�F�PR�T��G�G�E�Nr�	MAKE_CELL�r,F)	r�r��arg�argvalr�r��starts_line�is_jump_targetrrG�RESUME�r�r�rAr�z(3, 4)r"�LOAD_CLOSURE��r/�BUILD_TUPLE�f���
MAKE_FUNCTION�r?zdefaults, closure��
STORE_FAST�}r~��LOAD_GLOBAL�tr+zNULL + printr�r��
LOAD_DEREF��� z''�"r��$�
BUILD_LIST�g�&�	BUILD_MAP�i�(r�z'Hello world!'r��CALL��,�POP_TOP�4r��|�6�RETURN_VALUErC�8�COPY_FREE_VARS�rHrTr�z(5, 6)�r���r
�RETURN_CONST�y�Noner1zNULL + range�10�GET_ITER�D�FOR_ITER�]�Pzto 80rz��2rR�
COMPARE_OP�k�<�POP_JUMP_IF_FALSE�r�@zto 64�<�
JUMP_BACKWARD�zto 24�>�6�Br��POP_JUMP_IF_TRUE�s�Lzto 76�H�J�n�hzto 104�N�END_FOR�Rr�z'I can haz else clause?'�\�^�LOAD_FAST_CHECK����zto 170�j�l�v�x���
�	BINARY_OP�z�z-=���r>�zto 152������zto 164��zto 192���zto 108��r�z''Who let lolcatz into this test suite?'���r�����0���/��������BEFORE_WITH�5��r����r�z'Never reach this'����������������rz"OK, now we're done"iiii�
PUSH_EXC_INFO�#i�WITH_EXCEPT_START�1iizto 280i�RERAISE�wi�
POP_EXCEPT�Yiiizto 248i �COPYi"i$i&i(ri*�CHECK_EXC_MATCHi4iTzto 340i6i8i:rz''Here we go, here we go, here we go...'iDiFiNiP�.iRiViXiZi\�^ihijiritivixizc��yr6rrrr�simpler��s��dr)r�r�rrr�r�rrc��eZdZd�Zy)�InstructionTestCasec��|D�cgc]}|jd����}}|D�cgc]}|jd����}}|j||�ycc}wcc}wr)r	r�)r�instrs_1�instrs_2�instr_1�instr_2s     r�assertInstructionsEqualz+InstructionTestCase.assertInstructionsEqual�s_��DL�M�H��G�$�$�t�$�4�H��M�DL�M�H��G�$�$�t�$�4�H��M�����8�,��N��Ms
�A�AN)r"r#r$r�rrrr�r��s��-rr�c���eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
�d��Ze
�d	��Ze
�d
��Z
�xZS)�InstructionTestsc�,��t�|�|�d|_yr6)�superrr�)rr��	__class__s  �rrzInstructionTests.__init__�s���
���$����rc�t�tjt�}|jt	|�t
�yr6�r�r�r�r�rr�expected_opinfo_simple�r�actuals  r�test_default_first_linez(InstructionTests.test_default_first_lines'���%�%�f�-���$�$�T�&�\�3I�Jrc�x�tjtd��}|jt	|�t
�y�Nr
r�r�s  r�test_first_line_set_to_Nonez,InstructionTests.test_first_line_set_to_Nones)���%�%�f��>���$�$�T�&�\�3I�Jrc��tjtt��}|j	t|�t�yr�)r�r�r�rr�rr�expected_opinfo_outerr�s  r�
test_outerzInstructionTests.test_outer	�*���%�%�e�8K�L���$�$�T�&�\�3H�Irc���t�5t�}ddd�tjt��}|jt
|�t�y#1swY�DxYwr�)rr�r�r�rr�rr�expected_opinfo_f)rr~r�s   r�test_nestedzInstructionTests.test_nested
sD��
�
���A���%�%�a�O�D���$�$�T�&�\�3D�E��
�s�A�A"c���t�5t��}ddd�tjt��}|jt
|�t�y#1swY�DxYwr�)rr�r�r�rr�rr�expected_opinfo_inner)rr�r�s   r�test_doubly_nestedz#InstructionTests.test_doubly_nestedsI��
�
��E�G�I�E���%�%�e�8K�L���$�$�T�&�\�3H�I��
�s�A�A'c��tjtt��}|j	t|�t�yr�)r�r�rrr�rr�expected_opinfo_jumpyr�s  r�
test_jumpyzInstructionTests.test_jumpyr�rc�P�tddd�}tj|�D�cgc]}|j��}}gd�}|j	||�|D�cgc]0}|j
|j|j|jf��2}}|j	||�ycc}wcc}w)Nzf(
  x, y, z
)�<test>r)	)rr
rr�r
r
rr
r�)r'r'r'r4)r'r'rKr")r'r'r!r?�r
r4rr
r�r�)	r�r�r�rr��lineno�
end_lineno�
col_offset�end_col_offset)r�coder
rr��pos�named_positionss       r�test_co_positionsz"InstructionTests.test_co_positionss����)�8�V�<���-�-�d�3�
�3��
�O�O�3�	�
�

��	
����H�-�!�
� ���Z�Z��������9K�9K�L� �	�
�	
����(�3��+
��"
s�B�5B#c� �tddd�}|jd��}tj|�}|D]�}|j	|��5|j
}|j
t|�d�|jdk(r
	ddd��V|j|j�|j|j�|j|j�|j|j�ddd���y#1swY��xYw)	Nzx, y, zr�rrr<)r�rOr)r�r�r�r�r�rr�r�r�rzr�r�r�r�)rr��code_without_location_tabler�r�rs      r�test_co_positions_missing_infoz/InstructionTests.test_co_positions_missing_info7s����y�(�F�3��&*�l�l��l�&D�#��%�%�&A�B��!�K����+��6�'�1�1�	�� � ��Y���3��%�%��1��	7�6�
�!�!�)�"2�"2�3��!�!�)�"6�"6�7��!�!�)�"6�"6�7��!�!�)�":�":�;�7�6�"�6�6�s�8D�
A,D�D
	c	�(�
�d�}|j}|jddd�}tjd�
t	�
fd�|D��}t|�|z
}dD]�}dD]�}|j
d|�d|���5t||j�d�	�D��	cgc]\}}	|s|�
k7r|	��}
}}	tj|||�
�D�cgc]}|j��}}|j|
|�ddd�����ycc}	}wcc}w#1swY��xYw)Nc3�K�|dzd|z|zz
}|tj|�z
d|zz��|r"|tj|�zd|zz��yy�w)Nr'rO)�cmath�sqrtrSs    r�rootszEInstructionTests.test_co_positions_with_lots_of_caches.<locals>.rootsIs`�����1��q�1�u�q�y� �A��2��
�
�1�
�%�!�a�%�0�0���r�E�J�J�q�M�)�a�!�e�4�4��s�AAr'r�c3�(�K�|]	}|�k(���y�wr6r)rn�op�cache_opcodes  �rrpzIInstructionTests.test_co_positions_with_lots_of_caches.<locals>.<genexpr>Qs�����6�#�B�R�<�'�#�rqr�z	adaptive=z, show_caches=T)�strict)r�r�)
r�r0r�r��sumr�r��zip�co_positionsr�r�rr�)rr�r��opsr��
non_cachesr�r�r�rr�r��
dis_positionsr�s             @r�%test_co_positions_with_lots_of_cachesz6InstructionTests.test_co_positions_with_lots_of_cachesGs0���	5�
�~�~���l�l�3�Q�3����|�|�G�,���6�#�6�6����X��&�
�)�K�)���\�\�Y�X�K��+��"@�A�.1��d�6G�6G�6I�RV�-W�$�-W�M�B�	�&�"��*<�"�-W�!�$�,/�+?�+?� �8��,�%�,�K�$�-�-�,�"�%��$�$�\�=�A�B�A�*�)��$��
%�
B�A�s*�9 D�C=�,D�	D
�D�=D�D)r"r#r$rr�r�r�r�r�r�rr�r�r��
__classcell__�r�s@rr�r��ss����K�K�J�F�J�J���4��4�2��
<��
<���B��Brr�c�V�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
e�d	��Zy
)�
BytecodeTestsc��ttd�jdtjfD]\}|j	|��5tj|�}|j|jtj�ddd��^|jtt
jt��y#1swY��xYw�Nr
�a=1)�obj)r-rrr�r�r��Bytecode�assertIsInstance�codeobj�types�CodeTypercrmrn)rr�rGs   r�test_instantiationz BytecodeTests.test_instantiationis�����1�����r�{�{�;�C����#��&��L�L��%���%�%�a�i�i����@�'�&�<�
	
���)�S�\�\�6�8�<�	'�&�s
�AB9�9C	c�N�ttd�jdtjfD]k}|j	|��5tt
j|��}tt
j|��}|j||�ddd��my#1swY�xxYwr�)
r-rrr�r�rrr�r�r�r�)rr��
via_object�
via_generators    r�test_iterationzBytecodeTests.test_iterationrsv����1�����r�{�{�;�C����#��&�!�#�,�,�s�"3�4�
� $�S�%9�%9�#�%>� ?�
��,�,�Z��G�'�&�<�&�&�s
�AB�B$	c��tjtt��}|j	t|�t�yr�)r�r�r�rr�rrr�r�s  r�test_explicit_first_linez&BytecodeTests.test_explicit_first_lineys(�����e�0C�D���$�$�T�&�\�3H�Irc��tjt�j�}|j�j	d�d}ttjj�}|j||�tjtd��j�}|j�j	d�d}|j|d�y)NrQrr�r
�350)	r�r�r��strip�	partitionrr��co_firstlinenor�)rr�r�s   r�test_source_line_in_disassemblyz-BytecodeTests.test_source_line_in_disassembly}s������f�%�)�)�+������)�)�#�.�q�1���v���5�5�6�������*����f��5�9�9�;������)�)�#�.�q�1�������'rc��d|_tjD]:\}}tj|�}|j|j
�|��<yr�)r�r�r�r�r�r��info)rrr�rGs    r�	test_infozBytecodeTests.test_info�s@�����(�3�3�K�A�x����Q��A����Q�V�V�X�x�0�4rc�~�tjt�j�}|j|t�yr6)r�r�r-r�r�r�s  r�test_disassembledzBytecodeTests.test_disassembled�s)�����b�!�%�%�'���#�#�F�E�2rc���t�}tjj|�}|jr|j}|jr�|j|j|j�yr6)rr�r��from_tracebackrr��current_offsetri�rrrGs   r�test_from_tracebackz!BytecodeTests.test_from_traceback�sL��
�X���L�L�'�'��+���j�j�r�z�z�"�b�j�j�����)�)�2�;�;�7rc���d|_t�}tjj	|�}|j|j
|j��t�yr6)r�rr�r�rr�r��
dis_tracebackrs   r�test_from_traceback_disz%BytecodeTests.test_from_traceback_dis�sE�����
�X���L�L�'�'��+������+�+�A�E�E�G�4�m�Drc��tjd�}t||jj	��D]\}}�y)Nr�)r�r�r�r�r�)r�bytecoder
rs    r�test_bytecode_co_positionsz(BytecodeTests.test_bytecode_co_positions�s3���<�<��&�� #�H�h�.>�.>�.K�.K�.M� N��E�9� NrN)
r"r#r$rrrrrrrrrrrrrr�r�gsD��=�H�J�	(�1�3�8�E���0��0rr�c��eZdZd�Zd�Zd�Zy)�TestBytecodeTestCasec��tddd�}|j|dd�|j|d�|j|dd�y)N�a = 1�<string>rr�r
�	LOAD_NAMEr,�r��assertInBytecode�assertNotInBytecode�rr�s  r�*test_assert_not_in_with_op_not_in_bytecodez?TestBytecodeTestCase.test_assert_not_in_with_op_not_in_bytecode�sD���w�
�F�3�����d�L�!�4�� � ��{�3�� � ��{�C�8rc��tddd�}|j|d�|j|dd�|j|dd�y)Nr"r#rr�r
r'r%r(s  r�+test_assert_not_in_with_arg_not_in_bytecodez@TestBytecodeTestCase.test_assert_not_in_with_arg_not_in_bytecode�sD���w�
�F�3�����d�L�1����d�L�!�4�� � ��|�Q�7rc��tddd�}|jt�5|j|dd�ddd�y#1swYyxYw)Nr"r#rr�r
)r�rc�AssertionErrorr'r(s  r�'test_assert_not_in_with_arg_in_bytecodez<TestBytecodeTestCase.test_assert_not_in_with_arg_in_bytecode�s<���w�
�F�3��
�
�
�~�
.��$�$�T�<��;�/�
.�
.�s�A�A	N)r"r#r$r)r+r.rrrr r �s��9�8�<rr c�$�eZdZd�Zd�Zd�Zd�Zy)�TestFinderMethodsc�$�gd�}|D]{\}}|j|��5t|dd�}ttj|��}|jt
|�d�|j|d|�ddd��}y#1swY��xYw)N))zimport a.b.c)za.b.crN)zfrom a.b import c��a.brrL)zfrom a.b import c as dr2)zfrom a.b import *)r3r��*)zfrom ...a.b import c as d)r3r4rL)z from ..a.b import c as d, e as f)r3r')rHr
)zfrom ..a.b import *)r3r'r4��srcr#rr
r)r�r��tupler��
_find_importsr�r��r�casesr7r�r�r2s      r�test__find_importsz$TestFinderMethods.test__find_imports�s���
��#�M�C�����#��&��s�J��7���C�-�-�d�3�4��� � ��S��1�-�� � ��Q���2�	'�&�#�&�&�s�AB�B	c���gd�}|D]]\}}|j|��5t|dd�}ttj|��}|j||�ddd��_y#1swY�jxYw)N))zx+yr)zx=y=1rs)zx+=yr)zglobal x
x=y=1rs)zglobal x
z=x)ror6r#r)r�r�r8r��_find_store_namesr�r:s      r�test__find_store_namesz(TestFinderMethods.test__find_store_names�si��
��#�M�C�����#��&��s�J��7���C�1�1�$�7�8��� � ��h�/�'�&�#�&�&�s�>A(�(A1	c��tjtjj�}t
D�cgc]}|jr|j��}}|jt|�t|��ycc}wr6)
r��
findlabelsrr�r0r�rr�r��sorted)r�labelsr
�jumpss    r�test_findlabelsz!TestFinderMethods.test_findlabels�sh�������� 6� 6�7��/�
�.���#�#�
�L�L�.�	�
�	
���������7��

s�A<c��d�}|j}tj|�D�cgc]}|d��	}}|j|ddg�ycc}w)Nc��yr6rrrrr�z3TestFinderMethods.test_findlinestarts.<locals>.func�s��rrr')r�r��findlinestartsr�)rr�r��	linestart�offsetss     r�test_findlinestartsz%TestFinderMethods.test_findlinestarts�sQ��	��}�}��14�1C�1C�D�1I�J�1I�I�9�Q�<�1I��J�����1�a�&�)��Ks�A
N)r"r#r$r<r?rErKrrrr0r0�s��3�"0�8�*rr0c�8��eZdZd�fd�Zd�Zd�Zd�Zd�Z�xZS)�TestDisTracebackc�x��	t`	t`t�|��S#t$rY� wxYw#t$rY�(wxYwr6)r_r`rarbr��setUp)rr�s �rrOzTestDisTraceback.setUp�sM���	���	��"��w�}����
�	��	���	��	�s��-�	*�*�	9�9c���tj�}tj|�5t	j
|�ddd�|j
�S#1swY|j
�SxYwr6�r�r�r�r�r��distbr��rrr�s   rr�z TestDisTraceback.get_disassembly�sK�������
�
'�
'��
/��I�I�b�M�0���� � �0���� � �s�A�A0c��|jt�5tj�ddd�y#1swYyxYwr6)rcrdr�rRr�s r�test_distb_emptyz!TestDisTraceback.test_distb_empty�s%��
�
�
�|�
,��I�I�K�-�
,�
,�s�4�=c��d|_t�}|t_|j	|jd�t�yr6)r�rr_rbr�r�r�rrs  r�test_distb_last_tracebackz*TestDisTraceback.test_distb_last_tracebacks3�����
�X������#�#�D�$8�$8��$>�
�Nrc�p�d|_t�}|j|j|�t�yr6)r�rr�r�rrWs  r�test_distb_explicit_argz(TestDisTraceback.test_distb_explicit_args+�����
�X���#�#�D�$8�$8��$<�m�Lr)�returnN)	r"r#r$rOr�rUrXrZr�r�s@rrMrM�s���	�!��O�MrrMc��eZdZd�Zy)�TestDisTracebackWithFilec���tj�}tj|�5t	j
||��ddd�|j
�S#1swY|j
�SxYw)Nr�rQrSs   rr�z(TestDisTracebackWithFile.get_disassemblysN�������
�
'�
'��
/��I�I�b�v�&�0���� � �0���� � �s�A�A2Nr�rrrr]r]s��!rr]�__main__)r)T)r
r')�r�r�r�r�r_r�unittest�test.supportrrrr�test.support.bytecode_helperrr�rrgrh�TRACEBACK_CODErrr�r
r7r:r!rArr>r"r4r-r�r1r3r�r7�__file__r�r9r�r��bytesrrr�r�rrrIrMrrrr
rrrr&r'r(r)r*r+r,r-rrUrRrZrUr\rXr_rbr[r\rdrfrirursrtrurwr�r{r�r~r�r��TestCaser�r�r�r�r��code_info_constsr�r%r�r��__func__�	co_constsr�r�r�r�r�r�r�r�r�rr�_line_offset�
code_object_fr�code_object_innerrrrr�Instruction�reprr�r�r�r�r�r�r�r�r�r r0rMr]�mainrrr�<module>rps-(���
�	�	�
���A�A�9�
����"�"�)�)��
�
�	�
�{�{���*�*�B�K�K�,@�,@�,O�,O�RS�,S�U�	V����	�
�u�u�~�~�$�$�b�e�e�n�n�&C�&C�a�&G�I�	J���
�u�u�~�~�$�$�b�e�e�n�n�&C�&C�a�&G�I�J��$
�{�{���2�	�u�u�~�~�)�	�u�u�~�~�*�		,��
�		�
�{�{�!�!�	�{�{�!�!�A�%�	�{�{�!�!�A�%�'�	'���
�
�
�"���(�(����(�(�1�,����(�(�1�,����(�(�1�,����(�(�1�,����(�(�1�,�.�#.�
�2�	�
����)�)����)�)�A�-�����)�)�A�-����)�)�A�-����)�)�A�-�/�/��.	�
�%�%�-�-�7�-�C����������
��
����
����
����
�L�L�� �#�	�����	����"�"�1�1��"�"�1�1�A�5�7�7��	����������	��������������>���� (�P�$�$��$�$�q�(��$�$�q�(��$�$�q�(��$�$�q�(��$�$�q�(��$�$�q�(��$�$�q�(�*�Q/*�
�b&��$���'�'��):�):�)I�)I�A�)M�N�%O��(
�
%�J
�~�~�$�$��~�~�$�$�q�(��~�~�$�$�q�(��~�~�$�$�q�(��~�~�$�$�q�(��~�~�$�$�q�(��~�~�$�$�q�(�
	�K,	��\
�
C�F���)�)����)�)�A�-����)�)�A�-����)�)�A�-����)�)�A�-����)�)�A�-����)�)�A�-�
	�GJ	�
�Z���.���*�*����*�*�Q�.����*�*�Q�.����*�*�Q�.�	�/	��:�.� � �/�/�� � �/�/�!�3�� � �/�/�!�3�� � �/�/�!�3�	�/	��:��
��
�
�{�{�!�!�	�{�{�!�!�A�%��	�{�{�!�!�A�%�	�{�{�!�!�A�%�	���(�"��	�{�{�!�!�A�%�	�{�{�!�!�A�%�	�{�{�!�!�A�%��	�{�{�!�!�A�%�
�#��4�.��	�{�{�!�!�A�%�	�{�{�!�!�A�%��/��:� ����(�(����(�(�1�,����(�(�1�,�.� .�� � �(���(�(����(�(�1�,����(�(�1�,����(�(�1�,�/�) /��2�	��!�!�0�0��!�!�0�0�1�4�7�
7����L(�(�#�#�L(�^Z0�{�Z0�z	!�x�	!��=�=��� � ��O��
������$�$��$��$�
��@�_�_�-�-�7�7��:����,��
��
�� �
��&5�H�%�%�5�F
�$�<���~�~�,�,�q�0�����(�(��+�
��.�.��=��!�+�+�A�.��'�6�6��E����/�

�"�o�o���[��!�C��UV�dh�y~�KO�P�
�[��!�C��UV�dh�y~�KO�P�
�X�c�q��B�q�^_�pu�BF�G�
�\�#�1�V�X�^_�mn�@E�QU�V�
�^�C�Q�s�C�XY�gk�}B�NR�S�
�^�C�Q�s�C�XZ�hl�~C�OS�T�
�]�3�A�a��TV�dh�y~�KO�P�
�\�#�1�]�TX�Yf�Tg�pr�AE�V[�gk�l�
�_�S�a��K^�gi�w{�MR�^b�c�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�]�3�A�g�~�fh�vw�IN�Z^�_�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�\�#�1�R��VX�fj�|A�MQ�R�
�\�#�1�Q��TV�dh�y~�KO�P�
�\�#�1�Q��SU�cg�x}�JN�O�
�[��!�A�r�RT�bf�w|�IM�N�
�\�#�1�^�Ue�np�C�TY�ei�j�
�V�C�Q�q�"�R�]a�rw�DH�I�
�Y�q�d�4��TV�dh�y~�KO�P�
�[��!�C��UW�ef�w|�IM�N�
�^�B�D��r�Z\�jn�@E�QU�V�-��4�%�c�q��B�WX�fj�|A�MQ�R�
�[��!�C��UV�dh�y~�KO�P�
�[��!�C��UV�dh�y~�KO�P�
�X�c�q��B�q�^_�pu�BF�G�
�\�#�1�V�X�^_�mn�@E�QU�V�
�^�C�Q�s�C�XZ�hl�~C�OS�T�
�^�C�Q�s�C�XZ�hl�~C�OS�T�
�^�C�Q�s�C�XZ�hl�~C�OS�T�
�^�C�Q�s�C�XZ�hl�~C�OS�T�
�]�3�A�a��TV�dh�y~�KO�P�
�\�#�1�=N�X\�]n�Xo�xz�IM�^c�os�t�
�_�S�a��K^�gi�w{�MR�^b�c�
�\�#�1�W�g�^`�nr�DI�UY�Z�
�]�3�A�g�~�fh�vw�IN�Z^�_�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�V�C�Q�q�"�R�]a�rw�DH�I�
�Y�q�d�4��TV�dh�y~�KO�P�
�[��!�G�W�]_�mn�@E�QU�V�
�^�B�D��r�Z\�jn�@E�QU�V�-��4�%�c�q��B�WX�fj�|A�MQ�R�
�X�c�q��B�q�^_�pu�BF�G�
�]�3�A�g�~�fg�uv�HM�Y]�^�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�\�#�1�S�#�VX�fj�|A�MQ�R�
�[��!�C��UW�ei�z�LP�Q�
�[��!�C��UW�ei�z�LP�Q�
�V�C�Q�q�"�R�]a�rw�DH�I�
�Y�q�d�4��TV�dh�y~�KO�P�
�^�C�Q�t�V�\^�lp�BG�SW�X�
��r�
�X�c�q��B�q�^_�pu�BF�G�r�
�]�3�A�g�~�fg�uv�HM�Y]�^�r��\�#�1�R��VX�fj�|A�MQ�R�r��V�C�Q�q�"�R�]a�rw�DH�I�	r�
�Z���T�2�VX�fj�|A�MQ�R�r��Z���2�w�WY�gk�}A�MQ�R�
r��\�#�1�S�#�VX�fj�|A�MQ�R�r��]�3�A�g�~�fh�vw�IN�Z^�_�r��[��!�C��UW�ei�z�LP�Q�r��V�C�Q�q�"�R�]a�rw�DH�I�r��Y�q�d�4��TV�dh�y~�KO�P�r��[��!�C��UW�ef�w|�IM�N�r��\�#�1�Q��TV�dh�y~�KO�P�r��\�#�1�S�#�VX�fj�|A�MQ�R�r��(��!�B�PW�`b�pt�FK�W[�\�r� �_�S�b��W�]_�mn�@E�QU�V�!r�"�[��!�C��UW�ef�w{�HL�M�#r�$�\�#�1�Q��TV�dh�y~�KO�P�%r�&�\�#�2�c�3�WY�gk�}B�NR�S�'r�(�'���2�w�_a�os�EJ�VZ�[�)r�*�_�S�b��W�]_�mq�CH�TX�Y�+r�,�Y�q�d�4��TV�de�vz�GK�L�-r�.�^�C�R��X�^`�nr�DI�UY�Z�/r�0�Y�q�d�4��TV�de�vz�GK�L�1r�2�]�3�A�g�~�fh�vx�JO�[_�`�3r�4�\�#�1�=U�_y�CE�SW�hm�y}�~�5r�6�V�C�Q�q�"�R�]a�rw�DH�I�7r�8�Y�q�d�4��TW�ei�z�LP�Q�9r�:�&�s��#�s�[^�ln�@D�PT�U�;r�<�(��"�S�RZ�cf�tx�JO�[_�`�=r�>�]�3�A�g�~�fi�wy�KO�[_�`�?r�@�[��!�C��UX�fj�|A�MQ�R�Ar�B�V�C�Q�q�"�S�^b�sx�EI�J�Cr�D�Y�q�d�4��TW�ei�z�LP�Q�Er�F�[��!�C��UX�fh�y~�KO�P�Gr�H�\�#�1�Q��TW�ei�z�LP�Q�Ir�J�[��"�R��VY�gk�}B�NR�S�Kr�L�\�#�1�S�#�VY�gk�}B�NR�S�Mr�N�[��!�C��UX�fh�y~�KO�P�Or�P�\�#�1�Q��TW�ei�z�LP�Q�Qr�R�\�#�2�c�3�WZ�hl�~C�OS�T�Sr�T�(��!�C�QY�be�sw�IN�Z^�_�Ur�V�_�S�b��h�_b�pr�DI�UY�Z�Wr�X�[��!�C��UX�fh�y}�JN�O�Yr�Z�\�#�1�Q��TW�ei�z�LP�Q�[r�\�\�#�1�S�#�VY�gk�}B�NR�S�]r�^�(��!�C�QY�be�sw�IN�Z^�_�_r�`�^�C�R��X�^a�oq�CH�TX�Y�ar�b�[��!�C��UX�fh�y}�JN�O�cr�d�(��!�C�QY�be�sw�IN�Z^�_�er�f�_�S�b��h�_b�pt�FK�W[�\�gr�h�]�3�A�g�~�fi�wy�KO�[_�`�ir�j�\�#�1�=d�oX�ad�rv�GL�X\�]�kr�l�V�C�Q�q�"�S�^b�sx�EI�J�mr�n�Y�q�d�4��TW�ei�z�LP�Q�or�p�U�1�$�t�R�PS�ac�tx�EI�J�qr�r�\�#�1�Q��TW�eg�x}�JN�O�sr�t�\�#�1�Q��TW�ei�z�LP�Q�ur�v�[��"�R��UX�fj�|A�MQ�R�wr�x�Y�q�d�4��TW�ei�z�LP�Q�yr�z�[��!�C��UX�fh�y~�KO�P�{r�|�]�2�4��b�Y\�jn�@E�QU�V�}r�~�\�#�1�W�g�^a�os�EJ�VZ�[�r�@�]�3�A�g�~�fi�wy�KP�\`�a�Ar�B�\�#�1�=O�Ym�vy�HL�]b�nr�s�Cr�D�V�C�Q�q�"�S�^b�sx�EI�J�Er�F�Y�q�d�4��TW�ei�z�LP�Q�Gr�H�\�#�1�T�6�Z]�km�D�PT�U�Ir�J�\�#�1�T�6�Z]�ko�AF�RV�W�Kr�L�\�#�1�T�6�Z]�ko�AF�RV�W�Mr�N�V�C�Q�q�"�S�^b�sx�EI�J�Or�P�Y�q�d�4��TW�ei�z�LP�Q�Qr�R�]�3�A�g�~�fi�wy�KO�[_�`�Sr�T�\�#�2�>R�\s�|�NR�ch�tx�y�Ur�V�V�C�Q�q�"�S�^b�sx�EI�J�Wr�X�Y�q�d�4��TW�ei�z�LP�Q�Yr�Z�^�C�Q�t�V�\_�mq�CH�TX�Y�[r�\�_�R�T�$�PR�[^�ln�@E�QU�V�]r�^�(���d�TV�_b�pt�FK�W[�\�_r�`�'���3�PX�ad�rv�HM�Y]�^�ar�b�Y�s��!�R�PS�ae�v{�HL�M�cr�d�Y�q�d�4��TW�ei�z~�KO�P�er�f�\�"�$�t�R�X[�im�D�PT�U�gr�h�Y�q�d�4��TW�ei�z�LP�Q�ir�j�Y�q�d�4��TW�ei�z�LP�Q�kr�l�_�S�b��h�_b�pt�FK�W[�\�mr�n�V�C�Q�q�"�S�^b�sx�EI�J�or�p�\�"�$�t�R�X[�im�D�PT�U�qr�r�Y�s��!�R�PS�ae�v{�HL�M�sr�t�_�R�T�$�PR�[^�lp�BG�SW�X�ur�v�]�3�A�>Q�[n�wz�IK�\a�mq�r�wr�x�&�r�t�D�RT�]`�nr�DI�UY�Z�yr�z�(��"�S�RZ�cf�tx�JO�[_�`�{r�|�Y�q�d�4��TW�ei�z�LP�Q�}r�~�]�3�A�g�~�fi�wy�KP�\`�a�r�@�\�#�1�=d�oX�ad�rv�GL�X\�]�Ar�B�V�C�Q�q�"�S�^b�sx�EI�J�Cr�D�Y�q�d�4��TW�ei�z�LP�Q�Er�F�\�"�$�t�R�X[�im�D�PT�U�Gr�H�_�S�b��h�_b�pt�FK�W[�\�Ir�J�Y�s��!�R�PS�ac�tx�EI�J�Kr�L�V�C�Q�q�"�S�^b�sx�EI�J�Mr�N�\�"�$�t�R�X[�im�D�PT�U�Or�P�Y�s��!�R�PS�ae�v{�HL�M�Qr�R�_�R�T�$�PR�[^�lp�BG�SW�X�Sr�T�]�3�A�g�~�fi�wy�KP�\`�a�Ur�V�\�#�2�>R�\s�|�NR�ch�tx�y�Wr�X�V�C�Q�q�"�S�^b�sx�EI�J�Yr�Z�Y�q�d�4��TW�ei�z�LP�Q�[r�\�Y�s��!�R�PS�ae�v{�HL�M�]r�^�V�C�Q�q�"�S�^b�sx�EI�J�_r�`�\�"�$�t�R�X[�im�D�PT�U�ar�b�Y�s��!�R�PS�ae�v{�HL�M�cr��j�
�X�c�q��B�q�^d�^m�^m�^|�^|�NS�_c�d�
�^�C�Q�t�V�\]�ko�AF�G���-�*�-�hB�*�hB�X<0�'��<0�|<�+�<�$0*��)�)�0*�f"M�{�"M�J!�/�!��z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists