12 %ˆÆÅ „€ÄÀÇ.í%a ´iZPã @sddlZddlZddlZddlZddlTddlmZgd¢eZ[ejejej e e e fZ edZdedfedfed ffZed Zd Zd d „ZdUdddœdd„ZdVddœdd„Zdddddddddddœ Zdd „Zd!d"„Zd#d$„Zd%d&„Zddœd'd(„Ze d)d*¡Z d+e j!_"d,e j_"d-e j#_"d.e j$_"d/e j%_"d0e j&_"d1e j'_"d2e j(_"d3Z)d4Z*Gd5d6„d6e ƒZ+dd7œd8d9„Z,d:d;„Z-dd?„Z/dXddœdAdB„Z0dddœdCdD„Z1dYdddEœdFdG„Z2dHdI„Z3e0Z4dJdK„Z5dLdM„Z6dNdO„Z7GdPdQ„dQƒZ8dRdS„Z9e:dTk�rþe9ƒdS)ZéN)Ú*)Ú__all__) Ú code_infoÚdisÚ disassembleÚdistbÚdiscoÚfindlinestartsÚ findlabelsÚ show_codeÚget_instructionsÚ InstructionÚBytecodeÚ FORMAT_VALUE)NÚÚstrÚreprÚasciiÚ MAKE_FUNCTION)ÚdefaultsÚ kwdefaultsÚ annotationsZclosurecCs4zt||dƒ}Wnty.t||dƒ}Yn0|S)NÚevalÚexec)ÚcompileÚ SyntaxError)ÚsourceÚnameÚc©rú/usr/lib64/python3.9/dis.pyÚ _try_compiles  r!©ÚfileÚdepthc Csj|durt|d�dSt|dƒr&|j}t|dƒr8|j}n4t|dƒrJ|j}n"t|dƒr\|j}nt|dƒrl|j}t|dƒrþt|j  ¡ƒ}|D]r\}}t |t ƒrˆt d||d�zt |||d �Wn2tyî}zt d ||d�WYd}~n d}~00t |d�qˆnht|d ƒ�rt|||d �nLt |ttfƒ�r8t||d�n.t |tƒ�rTt|||d �ntd t|ƒjƒ‚dS) N©r#Ú__func__Ú__code__Úgi_codeÚag_codeÚcr_codeÚ__dict__zDisassembly of %s:r"zSorry:Úco_codeú(don't know how to disassemble %s objects)rÚhasattrr&r'r(r)r*Úsortedr+ÚitemsÚ isinstanceÚ _have_codeÚprintrÚ TypeErrorÚ_disassemble_recursiveÚbytesÚ bytearrayÚ_disassemble_bytesrÚ_disassemble_strÚtypeÚ__name__)Úxr#r$r0rZx1Úmsgrrr r+s@          $  ÿrr%cCsV|dur>z tj}Wnty.tdƒd‚Yn0|jr>|j}q0t|jj|j|d�dS)Nz no last traceback to disassembler%) ÚsysÚlast_tracebackÚAttributeErrorÚ RuntimeErrorÚtb_nextrÚtb_frameÚf_codeÚtb_lasti)Útbr#rrr rXs  rZ OPTIMIZEDZ NEWLOCALSZVARARGSZ VARKEYWORDSZNESTEDZ GENERATORZNOFREEZ COROUTINEZITERABLE_COROUTINEZASYNC_GENERATOR) éééééé é@é€éicCs`g}tdƒD]:}d|>}||@r | t |t|ƒ¡¡||N}|s qVq | t|ƒ¡d |¡S)NrLrGú, )ÚrangeÚappendÚCOMPILER_FLAG_NAMESÚgetÚhexÚjoin)ÚflagsÚnamesÚiÚflagrrr Ú pretty_flagsrs r[cCsŽt|dƒr|j}t|dƒr"|j}n4t|dƒr4|j}n"t|dƒrF|j}nt|dƒrV|j}t|tƒrjt|dƒ}t|dƒrx|St dt |ƒj ƒ‚dS) Nr&r'r(r)r*z r,r-) r.r&r'r(r)r*r1rr!r4r:r;©r<rrr Ú_get_code_object€s"        ÿr]cCs tt|ƒƒS©N)Ú_format_code_infor]r\rrr r—srcCs„g}| d|j¡| d|j¡| d|j¡| d|j¡| d|j¡| d|j¡| d|j¡| dt|j ƒ¡|j r¶| d ¡t |j ƒD]}| d |¡q¢|j rä| d ¡t |j ƒD]}| d |¡qÐ|j �r| d ¡t |j ƒD]}| d |¡�q|j�rH| d¡t |jƒD]}| d |¡�q2|j�rz| d¡t |jƒD]}| d |¡�qdd |¡S)NzName: %szFilename: %szArgument count: %szPositional-only arguments: %szKw-only arguments: %szNumber of locals: %szStack size: %szFlags: %sz Constants:z%4d: %rzNames:z%4d: %szVariable names:zFree variables:zCell variables:Ú )rRÚco_nameÚ co_filenameÚ co_argcountÚco_posonlyargcountÚco_kwonlyargcountÚ co_nlocalsÚ co_stacksizer[Úco_flagsÚ co_constsÚ enumerateÚco_namesÚ co_varnamesÚ co_freev