
    ,hhdZ                         S SK rS SKrS SKrS SKrS SKr/ SQr " S S5      rSS jrSS jr	 " S S5      r
S	 r\S
:X  a  \" 5         gg)    N)runrunctxProfilec                   ,    \ rS rSrS rS rS rS rSrg)_Utils+   c                     Xl         g Nprofiler)selfr   s     0/opt/python-3.13.8/usr/lib/python3.13/profile.py__init___Utils.__init__1   s         c                     U R                  5       n UR                  U5        U R                  XBU5        g ! [         a     Nf = f! U R                  XBU5        f = fr
   )r   r   
SystemExit_show)r   	statementfilenamesortprofs        r   r   
_Utils.run4   sS    }}	-HHY JJtt,  		 JJtt,s!   6 
A A AA Ac                     U R                  5       n UR                  XU5        U R                  XdU5        g ! [         a     Nf = f! U R                  XdU5        f = fr
   )r   r   r   r   )r   r   globalslocalsr   r   r   s          r   r   _Utils.runctx=   sU    }}	-KK	F3 JJtt,  		 JJtt,s!   7 
AA AA Ac                 P    Ub  UR                  U5        g UR                  U5        g r
   )
dump_statsprint_stats)r   r   r   r   s       r   r   _Utils._showF   s"    OOH%T"r   r   N)	__name__
__module____qualname____firstlineno__r   r   r   r   __static_attributes__ r   r   r   r   +   s    !--#r   r   c                 @    [        [        5      R                  XU5      $ r
   )r   r   r   )r   r   r   s      r   r   r   R   s     '?yD99r   c                 B    [        [        5      R                  XX#U5      $ r
   )r   r   r   )r   r   r   r   r   s        r   r   r   _   s     '?!!)fMMr   c                       \ rS rSrSrSS jrS rS rS rS r	S	 r
S
 rS rS r\\
\\\\S.rS r " S S5      r " S S5      rS rS rS S jrS rS rS rS rS rS rS!S jrS rSrg)"r   h   r   Nc                 "   0 U l         S U l        SU l        SU l        Uc  U R                  nX l        U(       d.  [
        R                  =U l        U l        U R                  U l
        O\Xl        U R                  5       n [        U5      nUS:X  a  U R                  U l
        OU R                  U l
        U[        4S jnXPl        U R                  5       U l        U R#                  S5        g ! [         a    Xl        U R                  U l
         NJf = f)N    c                     U" U " 5       5      $ r
   r'   )timersums     r   get_time_timer(Profile.__init__.<locals>.get_time_timer   s    uw<'r   r   )timingscurcmdc_func_namebiastimeprocess_timer0   get_timetrace_dispatch_i
dispatcherlentrace_dispatchtrace_dispatch_lr1   	TypeErrortsimulate_call)r   r0   r8   rB   lengthr2   s         r   r   Profile.__init__   s    <99D	)-):)::DJ"33DOJ

A/Q
 Q;&*&9&9DO&*&;&;DO */C ( .:&#  8 %"&"7"78s   >C* *!DDc                 <   U R                   nU" 5       nUS   US   -   U R                  -
  U R                  -
  nUS:X  a  UR                  U l        U R
                  U   " XU5      (       a  U" 5       nUS   US   -   U l        g U" 5       nUS   US   -   U-
  U l        g )Nr      c_callr0   rB   r8   r"   r7   dispatch)r   frameeventargr0   rB   rs          r   r?   Profile.trace_dispatch   s    

GaD1Q4K$&& 499,H"||D==A..AqTAaD[DFAqTAaD[1_DFr   c                     U R                   nU" 5       U R                  -
  U R                  -
  nUS:X  a  UR                  U l        U R
                  U   " XU5      (       a  U" 5       U l        g U" 5       U-
  U l        g NrH   rI   r   rK   rL   rM   r0   rB   s         r   r<   Profile.trace_dispatch_i   sd    

Gdfftyy(H"||D==Q//WDFWq[DFr   c                    U R                   nU" 5       S-  U R                  -
  U R                  -
  nUS:X  a  UR                  U l        U R
                  U   " XU5      (       a  U" 5       S-  U l        g U" 5       S-  U-
  U l        g )Ng      N@rH   rI   rR   s         r   trace_dispatch_macProfile.trace_dispatch_mac   sq    

GDL466!DII-H"||D==Q//WT\DFWT\A%DFr   c                     U R                   nU" 5       U R                  -
  U R                  -
  nUS:X  a  UR                  U l        U R
                  U   " XU5      (       a  U" 5       U l        g U" 5       U-
  U l        g rQ   )r;   rB   r8   r"   r7   rJ   )r   rK   rL   rM   r;   rB   s         r   r@   Profile.trace_dispatch_l   sd    ==J$))+H"||D==Q//ZDFZ!^DFr   c                 v    U R                   u  p4pVpxXqLa  U(       a  U R                  Xr5      $ X4U-   XVXx4U l         gNrG   )r5   trace_dispatch_return)	r   rK   rB   rptritretrfnrframercurs	            r   trace_dispatch_exception Profile.trace_dispatch_exception   s@    +/88(#FT--f88As5r   c                    U R                   (       a]  UR                  U R                   S   LaA  U R                   u  p4pVpx[        U[        R                  5      (       d  U R                  US5        UR                  n	U	R                  U	R                  U	R                  4n
USSXU R                   4U l         U R                  nX;   a  X   u  ppnXS-   XU4X'   gSSSS0 4X'   gNr   rG   )r5   f_back
isinstancer   
fake_framer[   f_codeco_filenameco_firstlinenoco_namer4   )r   rK   rB   r\   r]   r^   r_   r`   ra   fcodefnr4   ccnsttctcallerss                    r   trace_dispatch_callProfile.trace_dispatch_call  s    88DHHRL8/3xx,Ccfg&8&899 **615 !5!5u}}Eq!R1,,=&-k#BBG1fbg5GK  Q1b.GKr   c                     SSU R                   4nUSSX1U R                  4U l        U R                  nX4;   a  XC   u  pVpxn	XVS-   XxU	4XC'   gSSSS0 4XC'   g)Nr-   r   rG   )r7   r5   r4   )
r   rK   rB   ro   r4   rp   rq   rr   rs   rt   s
             r   trace_dispatch_c_callProfile.trace_dispatch_c_call  ss    !T%%&q!R1,,=&-k#BBGdBG3GK  Q1b.GKr   c                 Z   XR                   S   La  U R                  U R                   S   S5        U R                   u  p4pVpXB-   nXE-   nUu  pppXU-   X-   XU4U l         U R                  nX   u  nnnnnU(       d
  UU-   nUS-   nUU;   a  UU   S-   UU'   OSUU'   UUS-
  UU-   UU4X'   gre   )r5   r[   r4   )r   rK   rB   r\   r]   r^   r_   ra   frame_totalpptpitpetpfnpframepcurr4   rp   rq   rr   rs   rt   s                        r   r[   Profile.trace_dispatch_return#  s    $&&txx|Q7
 +/(('#Egi+/(#Fc	3#4c4G,,"),BB
 k!BaB'>"3<!+GCL
 GCL2628R8r   )call	exceptionreturnrH   c_exceptionc_returnc                 \    U R                   S   (       a  g Xl        U R                  U5        g N)r5   r6   rC   )r   r6   s     r   set_cmdProfile.set_cmdY  s"    88B<3r   c                        \ rS rSrS rS rSrg)Profile.fake_codei^  c                 6    Xl         X l        X0l        SU l        g Nr   )rk   co_linerm   rl   )r   r   linenames       r   r   Profile.fake_code.__init___  s    'LL"#Dr   c                 Z    [        U R                  U R                  U R                  45      $ r
   )reprrk   r   rm   r   s    r   __repr__Profile.fake_code.__repr__e  s"    ))4<<FGGr   )rk   rl   r   rm   N)r"   r#   r$   r%   r   r   r&   r'   r   r   	fake_coder   ^  s    	$	Hr   r   c                       \ rS rSrS rSrg)Profile.fake_frameih  c                     Xl         X l        g r
   )rj   rg   )r   codepriors      r   r   Profile.fake_frame.__init__i  s    KKr   )rg   rj   N)r"   r#   r$   r%   r   r&   r'   r   r   ri   r   h  s    	 r   ri   c                     U R                  SSU5      nU R                  (       a  U R                  S   nOS nU R                  X#5      nU R                  S   " XS5        g )Nprofiler   rf   r   )r   r5   ri   rJ   )r   r   r   r   rK   s        r   rC   Profile.simulate_callm  sN    ~~iD188XXb\FF-fd1-r   c                     U R                   nU" 5       U R                  -
  nU R                  S   (       a;  U R                  S   " X R                  S   U5        SnU R                  S   (       a  M;  U" 5       U-
  U l        g )Nr   r   rf   r   )r;   rB   r5   rJ   )r   r;   rB   s      r   simulate_cmd_completeProfile.simulate_cmd_completey  sf    ==Jhhrl MM(#D((2,:A	 hhrll
 ar   c                     SS K n[        U[        5      (       d  U4nUR                  U 5      R	                  5       R
                  " U6 R                  5         g r   )pstatsrh   tupleStats
strip_dirs
sort_statsr    )r   r   r   s      r   r    Profile.print_stats  sB    $&&7DT%%'22D9EEGr   c                     [        US5       nU R                  5         [        R                  " U R                  U5        S S S 5        g ! , (       d  f       g = f)Nwb)opencreate_statsmarshaldumpstats)r   filefs      r   r   Profile.dump_stats  s8    $LLQ' s   2A
Ac                 D    U R                  5         U R                  5         g r
   )r   snapshot_statsr   s    r   r   Profile.create_stats  s    ""$r   c                     0 U l         U R                  R                  5        HI  u  nu  p#pEnUR                  5       nSnUR	                  5        H  nXx-  nM	     X'XEU4U R                   U'   MK     g r   )r   r4   itemscopyvalues)	r   funcrp   rq   rr   rs   rt   nccallcnts	            r   r   Profile.snapshot_stats  sj    
/3||/A/A/C+D+227llnGB">>+ ,!rw6DJJt 0Dr   c                 F    SS K nUR                  nU R                  XU5      $ r   )__main____dict__r   )r   r6   r   dicts       r   r   Profile.run  s!      {{3d++r   c                     U R                  U5        [        R                  " U R                  5         [	        XU5        [        R                  " S 5        U $ ! [        R                  " S 5        f = fr
   )r   sys
setprofiler=   exec)r   r6   r   r   s       r   r   Profile.runctx  sN    St'	!v&NN4  NN4 s   A A/c                    U R                  [        U5      5        [        R                  " U R                  5         U" U0 UD6[        R                  " S 5        $ ! [        R                  " S 5        f = fr
   )r   r   r   r   r=   )r   r   argskws       r   runcallProfile.runcall  sM    T$Z t'	!$$NN4 CNN4 s   A A2c                     U R                   [        La  [        S5      eU R                  nSU l         U R	                  X5      X0l        $ ! X0l        f = f)Nz&Subclasses must override .calibrate().r   )	__class__r   rA   r8   _calibrate_inner)r   mverbose
saved_biass       r   	calibrateProfile.calibrate  sH    >>(DEEYY
		#((4"I
Is   A
 
Ac                 h   U R                   nS nU4S jnU" U5        U" 5       nU" U5        U" 5       nXv-
  nU(       a  [        SU5        [        5       n	U" 5       nU	R                  S[	        5       [        5       5        U" 5       nXv-
  n
U(       a  [        SU
5        SnSnU	R                  R                  5        H!  u  u  pnu  nnnnnUS;   d  M  UU-  nUU-  nM#     U(       a  [        SU5        [        S	U5        XS
-   :w  a  [        SU-  5      eX-
  S-  U-  nU(       a  [        SU5        U$ )Nc                 ,    [        U 5       H  nSnM     g rZ   range)nixs      r   f1$Profile._calibrate_inner.<locals>.f1  s    1X r   c                 8    [        U 5       H  nU" S5        M     g )Nd   r   )r   r   r   s      r   r   #Profile._calibrate_inner.<locals>.f  s    1X3 r   z elapsed time without profiling =zf(m)zelapsed time with profiling =g        )r   r   z!'CPU seconds' profiler reported =ztotal # calls =rG   z internal error: total calls = %dg       @z+mean stopwatch overhead per profile event =)	r;   printr   r   r   r   r4   r   
ValueError)r   r   r   r;   r   r   t0t1elapsed_noprofilepelapsed_profiletotal_callsreported_timer   r   funcnamerp   rq   rr   rs   rt   means                         r   r   Profile._calibrate_inner  sC   ==	  	 	
! Z	!ZG46GH
 IZ	FH-Z'1?C 		! B&XX(ARR;&r!# "
 5}E#[1a%?+MNN 1S8;F?Fr   )
r8   r7   r6   r5   r=   r;   r   rB   r0   r4   )NN)r   )r   )r"   r#   r$   r%   r8   r   r?   r<   rU   r@   rb   ru   rx   r[   rJ   r   r   ri   rC   r   r    r   r   r   r   r   r   r   r   r&   r'   r   r   r   r   h   s    N D#'N%$
!
&
$&,	#N $-'',)
H  
H H   
. H(
7,
!b	#<r   r   c                     SS K n SSKJn  SnU" US9nSUl        UR	                  SSSS	S S
9  UR	                  SSSSSS9  UR	                  SSSSSS
9  [
        R                  SS  (       d&  UR                  5         [
        R                  " S5        UR                  5       u  pEU[
        R                  S S & UR                  b*  U R                  R                  UR                  5      Ul
        [        U5      S:  Ga  UR                  (       a  SS KnSnUR                   US   S.nOUS   n	[
        R                  R#                  SU R                  R%                  U	5      5        [&        R(                  " U	5       n
[+        U
R-                  5       U	S5      nS S S 5        [.        R0                  R3                  SS U	S9nUUR4                  UR6                  S S S.n [9        WUS UR                  UR:                  5        U$ UR                  5         U$ ! , (       d  f       N= f! [<         a6  nS [
        l        [
        R                  " UR@                  5         S nAU$ S nAff = f)Nr   )OptionParserzMprofile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ...)usageFz-oz	--outfileoutfilezSave stats to <outfile>)desthelpdefaultz-mmodule
store_truezProfile a library module.)r   actionr   r   z-sz--sortr   z?Sort order when printing to stdout, based on pstats.Stats classr   rG   r.   z(run_module(modname, run_name='__main__'))
run_modulemodnamer   r   )r   loaderorigin)__spec____file__r"   __package__
__cached__)!osoptparser   allow_interspersed_args
add_optionr   argvprint_usageexit
parse_argsr   pathabspathr>   r   runpyr   insertdirnameio	open_codecompileread	importlib	machinery
ModuleSpecr   r   r   r   BrokenPipeErrorstdouterrno)r  r   r   parseroptionsr   r  r   globsprognamefpspecexcs                r   mainr"  +  s   %[E&F%*F"
dKi&  6
d,(%  9
dH6N   88AB<'')OWCHHQK "''//'//:
4y1}>>=D#..7E
 AwHHHOOArwwx89h'2rwwy(F; (&&11z$9A 2 CD ! KK II#"E	 4goow||D M 	M' ('  	 CJHHSYY M	 s$   ;H#H# 
H #
I#-+II#r   r   )importlib.machineryr  r  r   r9   r   __all__r   r   r   r   r"  r"   r'   r   r   <module>r%     sX   6  	 
  
&# #N:N F9x zF r   