ó
    „ñ:i“  ã                   ó:   • S r SSKJrJr  SSKrSSKrSSKJr  S rg)zMiscellaneous inspection tools
é    )ÚNamedTemporaryFileÚTemporaryDirectoryN)ÚNumbaWarningc                 óŒ   ^ ^^^•  SSK mSU UU4S jjm " U4S jS[        5      nU" 5       $ ! [         a    [        S5      ef = f)z²
Gets the CFG of the disassembly of an ELF object, elf, at mangled name,
mangled_symbol, and renders it appropriately depending on the execution
environment (terminal/notebook).
r   Nz$r2pipe package needed for disasm CFGc                 óú  >• SSK Jn  U c  [        S5      e[        5        n[	        SUS9 nUR                  T5        UR                  5         S S S 5        Sn [        R                  R                  WR                  5       S3n[        R                  R                  X%5      nU" 5       nUR                  XcR                  45        UnSn / S
QnTR#                  X‹S9nUR%                  S5        U(       a<  TS S nUR%                  S5        UR%                  SU S35        UR%                  S5        UR%                  SU -  5      nUR'                  5          S S S 5        U$ ! , (       d  f       GN= f! [         a;  n	SU	 S	3n
[        R                  " [!        U
5      5        WR                  n S n	A	NéS n	A	ff = f! [         a#  n	S[)        U	5      ;   a  Sn
[+        U
5      eU	eS n	A	ff = f! , (       d  f       W$ = f)Nr   )Ú	ToolchainzNo command givenF)ÚdeleteÚdirz.soTzALinking the ELF object with the distutils toolchain failed with: z\. Disassembly will still work but might be less accurate and will not use DWARF information.)z-2z-e io.cache=truez-e scr.color=1z-e asm.dwarf=truez-e scr.utf8=true)ÚflagsÚaaaaaaé=   ze bin.demangle=falsezs `is~ z[1]`ze bin.demangle=truez%szradare2 in PATHz–This feature requires 'radare2' to be installed and available on the system see: https://github.com/radareorg/radare2. Cannot find 'radare2' in $PATH.)Únumba.pycc.platformr   Ú
ValueErrorr   r   ÚwriteÚflushÚosÚpathÚbasenameÚnameÚjoinÚlink_sharedÚ	ExceptionÚwarningsÚwarnr   ÚopenÚcmdÚquitÚstrÚRuntimeError)r   r   ÚtmpdirÚfÚlinkedÚraw_dso_nameÚ
linked_dsoÚtcÚobj_to_analyseÚeÚmsgr   ÚrÚmangled_symbol_61charÚdataÚelfÚmangled_symbolÚr2pipes                  €€€ÚX/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/misc/inspection.pyÚget_renderingÚ-disassemble_elf_to_cfg.<locals>.get_rendering   sÐ  ø€ Ý1Ø‰;ÜÐ/Ó0Ð0äÔ! Vä#¨5°fÒ=ÀØ—‘˜”Ø—‘”	÷ >ð
 ˆFð(Ü"$§'¡'×"2Ñ"2°1·6±6Ó":Ð!;¸3Ð?�ÜŸW™WŸ\™\¨&Ó?�
Ù“[�Ø—‘˜z¯F©F¨9Ô5Ø!+�Ø�ðò�ð —K‘K �KÐ<�Ø—‘�h”ö à,:¸3¸BÐ,?Ð)à—E‘EÐ0Ô1à—E‘E˜GÐ$9Ð#:¸$Ð?Ô@à—E‘EÐ/Ô0Ø—u‘u˜T C™ZÓ(�Ø—‘•÷a "ðt ˆ÷q >Ö=ûô ó 	(ð'Ø'( cð *&ð&�ô —’œl¨3Ó/Ô0Ø!"§¡•ûð	(ûôD ó Ø$¬¨A«Ó.ð=�Cô ' sÓ+Ð+à�Gûðú÷c "Ô!ðt ˆúsf    G+«"E!Á
G+ÁA2E3ÃBF;Å!
E0	Å+G+Å3
F8Å=1F3Æ.G+Æ3F8Æ8G+Æ;
G(ÇG#Ç#G(Ç(G+Ç+
G:c                   ó.   >• \ rS rSrU 4S jrU 4S jrSrg)Ú)disassemble_elf_to_cfg.<locals>.DisasmCFGéV   c                 óÒ   >•  SS K nT" SS9nUR                  SS5        UR	                  U5      nUR                  S5      R                  S5      $ ! [         a    [        S5      ef = f)	Nr   z&graphviz package needed for disasm CFGÚagfd©r   zfontname="Courier",zfontname="Courier",fontsize=6,ÚsvgzUTF-8)ÚgraphvizÚImportErrorr   ÚreplaceÚSourceÚpipeÚdecode)Úselfr9   Újupyter_renderingÚsrcr0   s       €r/   Ú
_repr_svg_Ú4disassemble_elf_to_cfg.<locals>.DisasmCFG._repr_svg_X   su   ø€ ðMÛñ !.°&Ñ 9Ðà×%Ñ%Ð&;Ø&FôHà—/‘/Ð"3Ó4ˆCØ—8‘8˜E“?×)Ñ)¨'Ó2Ð2øô ó MÜ"Ð#KÓLÐLðMús   ƒA ÁA&c                 ó   >• T" SS9$ )NÚagfr7   © )r?   r0   s    €r/   Ú__repr__Ú2disassemble_elf_to_cfg.<locals>.DisasmCFG.__repr__d   s   ø€ Ù  UÑ+Ð+ó    rF   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rB   rG   Ú__static_attributes__)r0   s   €r/   Ú	DisasmCFGr3   V   s   ø† õ
	3÷	,ð 	,rI   rO   )N)r.   r:   r   Úobject)r,   r-   rO   r0   r.   s   `` @@r/   Údisassemble_elf_to_cfgrQ   
   sM   û€ ðCÛ÷?ñ ?÷B,”Fô ,ñ" ‹;Ðøôk ó CÜÐAÓBÐBðCús	   †- ­A)	Ú__doc__Útempfiler   r   r   r   Únumba.core.errorsr   rQ   rF   rI   r/   Ú<module>rU      s   ðñç ;Û 	Û å *ó]rI   