+
    öÙ†jís  ã                   ó  € R t RR.t^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RItRt ! R R4      tR tR	 t ! R
 R4      tR tR tRR ltR t ! R R4      tR t]R8X  d
   ]! 4        R# R# )a·  program/module to trace Python program or function execution

Sample use, command line:
  trace.py -c -f counts --ignore-dir '$prefix' spam.py eggs
  trace.py -t --ignore-dir '$prefix' spam.py eggs
  trace.py --trackcalls spam.py eggs

Sample use, programmatically
  import sys

  # create a Trace object, telling it what to ignore, and whether to
  # do tracing or line-counting or both.
  tracer = trace.Trace(ignoredirs=[sys.base_prefix, sys.base_exec_prefix,],
                       trace=0, count=1)
  # run the new command using the given tracer
  tracer.run('main()')
  # make a report, placing output in /tmp
  r = tracer.results()
  r.write_results(show_missing=True, coverdir="/tmp")
ÚTraceÚCoverageResultsN)Ú	monotonicz#pragma NO COVERc                   ó0   a € ] tR t^Ct o RR ltR tRtV tR# )Ú_IgnoreNc                óâ   € V'       g   \        4       M
\        V4      V n        V'       g   . M.V Uu. uF"  p\        P                  P	                  V4      NK$  	  upV n        R ^/V n        R# u upi )z<string>N)ÚsetÚ_modsÚosÚpathÚnormpathÚ_dirsÚ_ignore)ÚselfÚmodulesÚdirsÚds   &&& Ú/usr/lib/python3.14/trace.pyÚ__init__Ú_Ignore.__init__D   sW   € ß")”S”U¬s°7«|ˆŒ
ß#‘RÙ37ó*9Ù37¨aô +-¯'©'×*:Ñ*:¸1Ö*=Ù37ñ*9ˆŒ
à# QÐ(ˆŽùò*9s   ±(A,c                óþ  € W P                   9   d   V P                   V,          # W P                  9   d   ^V P                   V&   ^# V P                   F3  pVP                  VR,           4      '       g   K#  ^V P                   V&    ^# 	  Vf   ^V P                   V&   ^# V P                   FA  pVP                  V\        P
                  ,           4      '       g   K1  ^V P                   V&    ^# 	  ^ V P                   V&   ^ # )é   Ú.)r   r	   Ú
startswithr   r
   Úsep)r   ÚfilenameÚ
modulenameÚmodr   s   &&&  r   ÚnamesÚ_Ignore.namesJ   sØ   € ØŸ™Ô%Ø—<‘< 
Õ+Ð+ð Ÿ™Ô#Ø'(ˆD�L‰L˜Ñ$Ùð —:”:ˆCð ×$Ñ$ S¨3¥Y×/Ô/Ø+,�—‘˜ZÑ(Úñ ð Òà'(ˆD�L‰L˜Ñ$Ùð —”ˆAð ×"Ñ" 1¤r§v¡v¥:×.Ô.Ø+,�—‘˜ZÑ(Úñ ð $%ˆ�‰�ZÑ Ùó    )r   r   r	   ©NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r   C   s   ø‡ € ô)÷)ð )r    r   c                ó†   € \         P                  P                  V 4      p\         P                  P                  V4      w  r#V# )ú,Return a plausible module name for the path.)r
   r   ÚbasenameÚsplitext)r   Úbaser   Úexts   &   r   Ú_modnamer0   u   s3   € ô �7‰7×Ñ˜DÓ!€DÜ—G‘G×$Ñ$ TÓ*�M€HØ€Or    c                óü  € \         P                  P                  V 4      pRp\        P                   F  p\         P                  P                  V4      pVP	                  V4      '       g   K;  V\        V4      ,          \         P                  8X  g   Kb  \        V4      \        V4      8”  g   K}  TpK�  	  V'       d   V \        V4      ^,           R pMT p\         P                  P                  V4      w  rTVP                  \         P                  R4      p\         P                  '       d!   VP                  \         P                  R4      p\         P                  P                  V4      w  rgVP                  R4      # )r+   Ú Nr   )r
   r   ÚnormcaseÚsysr   Úlenr   Ú
splitdriveÚreplaceÚaltsepr-   Úlstrip)r   ÚcomparepathÚlongestÚdirr.   Údriver   r/   s   &       r   Ú_fullmodnamer>   |   s  € ô —'‘'×"Ñ" 4Ó(€KØ€GÜ�xŒxˆÜ�g‰g×Ñ˜sÓ#ˆØ×!Ñ! #×&Ô&¨;´s¸3³xÕ+@ÄBÇFÁFÖ+JÜ�3‹xœ#˜g›,Ö&Ø’ñ	 ÷ Ø”C˜“L 1Õ$Ð%Ð&‰àˆä—'‘'×$Ñ$ TÓ*�K€EØ�<‰<œŸ™ Ó$€DÜ	‡y‡y€yØ�|‰|œBŸI™I sÓ+ˆÜ—G‘G×$Ñ$ TÓ*�M€HØ�?‰?˜3ÓÐr    c                   óR   a € ] tR t^˜t o R
R ltR tR tRRR/R lltRR ltR	t	V t
R# )r   Nc                ó0  € Wn         V P                   f   / V n         V P                   P                  4       V n        W n        V P                  f   / V n        V P                  P                  4       V n        W@n        V P                  f   / V n        V P                  P                  4       V n        W0n        WPn        V P
                  '       df    \        V P
                  R4      ;_uu_ 4       p\        P                  ! V4      w  rpR R R 4       V P                  V P                  WVR7      4       R # R #   + '       g   i     L6; i  \        \        \        3 d9   p\        RT P
                  : RT: 2\         P"                  R7        R p?R # R p?ii ; i)NÚrb)ÚcallerszSkipping counts file ú: ©Úfile)ÚcountsÚcopyÚcounterÚcalledfuncsrB   ÚinfileÚoutfileÚopenÚpickleÚloadÚupdateÚ	__class__ÚOSErrorÚEOFErrorÚ
ValueErrorÚprintr4   Ústderr)r   rF   rI   rJ   rB   rK   ÚfÚerrs   &&&&&&  r   r   ÚCoverageResults.__init__™   s/  € àŒØ�;‰;ÒØˆDŒKØ—{‘{×'Ñ'Ó)ˆŒØ&ÔØ×ÑÒ#Ø!ˆDÔØ×+Ñ+×0Ñ0Ó2ˆÔØŒØ�<‰<ÒØˆDŒLØ—|‘|×(Ñ(Ó*ˆŒØŒØŒØ�;�;ˆ;ðNÜ˜$Ÿ+™+ t×,Ô,°Ü39·;²;¸q³>Ñ0�F¨÷ -à—‘˜DŸN™N¨6È˜NÓPÖQñ ÷ -×,ûô œX¤zÐ2ô NÝØ)-¯¬²cð;ÜBEÇ*Á*÷Nó NûðNús0   ÃE Ã,D4Ä*E Ä4E	Ä?E ÅFÅ-FÆFc                óV   € VP                  R4      ;'       d    VP                  R4      # )zOReturn True if the filename does not refer to a file
we want to have reported.
Ú<Ú>)r   Úendswith)r   r   s   &&r   Úis_ignored_filenameÚ#CoverageResults.is_ignored_filename³   s(   € ð ×"Ñ" 3Ó'×BÐB¨H×,=Ñ,=¸cÓ,BÐBr    c                ó  € V P                   pV P                  pV P                  pVP                   pVP                  pVP                  pV F$  pVP                  V^ 4      WX,          ,           W(&   K&  	  V F  p^W8&   K	  	  V F  p^WH&   K	  	  R# )z.Merge in the data from another CoverageResultsN)rF   rI   rB   Úget)	r   ÚotherrF   rI   rB   Úother_countsÚother_calledfuncsÚother_callersÚkeys	   &&       r   rO   ÚCoverageResults.update¹   sˆ   € à—‘ˆØ×&Ñ&ˆØ—,‘,ˆØ—|‘|ˆØ!×-Ñ-ÐØŸ™ˆãˆCØ Ÿ*™* S¨!Ó,¨|Õ/@Õ@ˆF‹Kñ  ó %ˆCØ ˆKÓñ %ó !ˆCØˆG‹Ló !r    FÚignore_missing_filesc               óx  € V P                   '       dN   \        4        \        R4       V P                   p\        V4       F  w  rgp\        RV: RV: RV: 24       K  	  V P                  '       d”   \        4        \        R4       R;rš\        V P                  4       Fb  w  w  r¼pw  rïpW¹8w  d   \        4        \        RVR4       Tp	Rp
Wë8w  d   W®8w  d   \        RV4       Tp
\        R	V: R
V: RV: R
V: 24       Kd  	  / pV P                   F5  w  ppVP                  V/ 4      ;pVV&   V P                  VV3,          VV&   K7  	  / pVP                  4        EF¥  w  ppV P                  V4      '       d   K   VP                  R4      '       d   VRR pV'       d(   \        P                  P                  V4      '       g   Kk  VfI   \        P                  P                  \        P                  P                  V4      4      p\        V4      pM%Tp\        P                  ! VRR7       \!        V4      pV'       d   \#        V4      pM/ p\$        P&                  ! V4      p\        P                  P)                  VVR,           4      p\+        VR4      ;_uu_ 4       p\,        P.                  ! VP0                  4      w  ppRRR4       V P3                  VVVVX4      w  ppV'       g   EK’  V'       g   EK�  VVWv3VV&   EK¨  	  V'       dS   V'       dK   \        R4       \        V4       F0  pVV,          w  pprv\        VR RVV,          R RV RV R24       K2  	  V P4                  '       dd    \+        V P4                  R4      ;_uu_ 4       p \6        P8                  ! V P                  V P                   V P                  3V ^4       RRR4       R# R#   + '       g   i     EL; i  + '       g   i     R# ; i  \:         d.   p!\        RT!,          \<        P>                  R7        Rp!?!R# Rp!?!ii ; i)aì  
Write the coverage results.

:param show_missing: Show lines that had no hits.
:param summary: Include coverage summary per module.
:param coverdir: If None, the results of each module are placed in its
                 directory, otherwise it is included in the directory
                 specified.
:param ignore_missing_files: If True, counts for files that no longer
                 exist are silently ignored. Otherwise, a missing file
                 will raise a FileNotFoundError.
zfunctions called:z
filename: z, modulename: ú, funcname: zcalling relationships:r2   z***z  -->z    r   z -> z.pycNT)Úexist_okz.coverrA   zlines   cov%   module   (path)Ú5dz   z.1%z   (Ú)Úwbz"Can't save counts files because %srD   éÿÿÿÿ) rI   rT   ÚsortedrB   rF   r`   Úitemsr]   r\   r
   r   ÚisfileÚdirnameÚabspathr0   Úmakedirsr>   Ú_find_executable_linenosÚ	linecacheÚgetlinesÚjoinrL   ÚtokenizeÚdetect_encodingÚreadlineÚwrite_results_filerK   rM   ÚdumprQ   r4   rU   )"r   Úshow_missingÚsummaryÚcoverdirrg   Úcallsr   r   ÚfuncnameÚlastfileÚ	lastcfileÚpfileÚpmodÚpfuncÚcfileÚcmodÚcfuncÚper_fileÚlinenoÚ	lines_hitÚsumsÚcountr<   ÚlnotabÚsourceÚ	coverpathÚfpÚencodingÚ_Ún_hitsÚn_linesÚmrV   rW   s"   &&&&$                             r   Úwrite_resultsÚCoverageResults.write_resultsË   su  € ð ××ÐÜŒGÜÐ%Ô&Ø×$Ñ$ˆEÜ28¸¶-Ñ.� hÝÛ"£J²ð:ö <ñ 3@ð �<�<ˆ<ÜŒGÜÐ*Ô+Ø#%Ð%ˆHä˜dŸl™lÖ+ñ =Ñ%�%˜uÑ';¨°UàÔ$Ü”GÜ˜% ¨Ô.Ø$�HØ "�IØ”> iÔ&8Ü˜' 5Ô)Ø %�IÝ«d³E»4ÂÐGÖHñ ,ð ˆØ $§¤ÑˆH�fØ-5¯\©\¸(ÀBÓ-GÐGˆI˜ Ñ*Ø $§¡¨X°vÐ,>Õ ?ˆI�fÓñ !,ð
 ˆà'Ÿ~™~×/‰OˆH�eØ×'Ñ'¨×1Ò1Ùà× Ñ  ×(Ò(Ø# C R˜=�ç#¬B¯G©G¯N©N¸8×,DÒ,DÙàÒÜ—g‘g—o‘o¤b§g¡g§o¡o°hÓ&?Ó@�Ü% hÓ/‘
à�Ü—’˜C¨$Õ/Ü)¨(Ó3�
÷ Ü1°(Ó;‘à�Ü×'Ò'¨Ó1ˆFÜŸ™Ÿ™ S¨*°xÕ*?Ó@ˆIÜ�h ×%Ô%¨Ü&×6Ò6°r·{±{ÓC‘�˜!÷ &à"×5Ñ5°iÀØ6<¸eÀXóO‰OˆF�GçŠwŸ7š7Ø#*¨F°JÐ#H��ZÔ ñ?  0÷B —tÜÐ2Ô3Ü˜D–\�Ø8<¸Q½Ñ5�˜ Ü˜ ˜ C¨¨w­°sÐ';¸3¸z¸lÈ$ÈxÈjÐXYÐZÖ[ñ "ð �<�<ˆ<ðSÜ˜$Ÿ,™,¨×-Ô-°Ü—K’K §¡¨d×.>Ñ.>ÀÇÁÐ MØ ! 1ô&÷ .Ñ-ñ ÷ &×%Ð%ú÷  .×-Ð-ûô ô SÜÐ:¸SÕ@ÄsÇzÁz×RÓRûðSúsB   Ê!$OÍ5P Î:O-ÏP ÏO*Ï-O>	Ï8P Ï>P ÐP9Ð"P4Ð4P9c                óL  €  \        VRVR7      p^ p^ p	T;_uu_ 4        \        T^4       F™  w  r«Y¤9   d2   TP                  RYJ,          ,          4       T	^,          p	T^,          pM=Y£9   d'   \        T9   g   TP                  R	4       T^,          pMTP                  R
4       TP                  TP                  ^4      4       K›  	  RRR4       Y˜3#   \         d1   p\        RT: RT: R2\        P                  R7       Ru Rp?# Rp?ii ; i  + '       g   i     Y˜3# ; i)z'Return a coverage results file in path.Úw©r”   ztrace: Could not open z for writing: z - skippingrD   Nz%5d: z>>>>>> z       )é    rž   )	rL   rQ   rT   r4   rU   Ú	enumerateÚwriteÚPRAGMA_NOCOVERÚ
expandtabs)r   r   Úlinesr�   r�   r”   rK   rW   r—   r–   rŒ   Úlines   &&&&&&      r   r|   Ú"CoverageResults.write_results_file+  sþ   € ð	Ü˜4 ¨xÔ8ˆGð ˆØˆßŠWÜ )¨%°Ö 3‘�ð Ô&Ø—M‘M '¨IÕ,=Õ"=Ô>Ø˜a•K�FØ˜q•L‘GØÔ%¬nÀÔ.Dð —M‘M )Ô,Ø˜q•L‘Gà—M‘M )Ô,Ø—‘˜dŸo™o¨aÓ0Ö1ñ !4÷ ð" ˆÐøô1 ô 	ÝÛ26»ð=ÜDGÇJÁJõPà�Kûð	ú÷ ŽWð" ˆÐús)   ‚C žB*DÃDÃ%D	ÄDÄ	DÄD#	)rI   rB   rH   rF   rJ   rK   )NNNNN)TFN©N)r"   r#   r$   r%   r   r]   rO   r™   r|   r&   r'   r(   s   @r   r   r   ˜   s2   ø‡ € ôNò4Còñ$^SØ+0õ^S÷@ò r    c                ó`   € / p\         P                  ! V 4       F  w  r4WA9  g   K  ^W$&   K  	  V# )z:Return dict where keys are lines in the line number table.)ÚdisÚfindlinestarts)ÚcodeÚstrsÚlinenosr•   rŒ   s   &&   r   Ú_find_lines_from_coder­   K  s2   € à€Gä×'Ò'¨Ö-‰	ˆØÖØˆG‹Oñ .ð €Nr    c                ó²   € \        W4      pV P                   F;  p\        P                  ! V4      '       g   K!  VP	                  \        W14      4       K=  	  V# )z<Return lineno dict for all code objects reachable from code.)r­   Ú	co_constsÚinspectÚiscoderO   Ú_find_lines)rª   r«   r¬   Úcs   &&  r   r²   r²   U  sE   € ô $ DÓ/€Gð �^Œ^ˆÜ�>Š>˜!×Ôà�N‰Nœ; qÓ/Ö0ñ ð €Nr    c                óˆ  € / p\         P                  p\        WR7      ;_uu_ 4       p\        P                  ! VP
                  4      pV FX  w  rgr‰p
V\         P                  8X  d;   V\         P                  8X  d&   Vw  r¼V	w  rÞ\        W½^,           4       F  p^W/&   K	  	  TpKZ  	  RRR4       V#   + '       g   i     T# ; i)z´Return a dict of possible docstring positions.

The dict maps line numbers to strings.  There is an entry for
line that contains only a string or a part of a triple-quoted
string.
r�   N)ÚtokenÚINDENTrL   ry   Úgenerate_tokensr{   ÚSTRINGÚrange)r   r”   r   Ú
prev_ttyperV   ÚtokÚttypeÚtstrÚstartÚendr¤   ÚslineÚscolÚelineÚecolÚis   &&              r   Ú_find_stringsrÅ   a  s§   € ð 	€Aô —‘€JÜ	ˆh×	*Õ	*¨aÜ×&Ò& q§z¡zÓ2ˆÛ-0Ñ)ˆE˜ TØœŸ™Ô$Ø¤§¡Ô-Ø"'‘K�EØ"%‘K�EÜ" 5°!­)Ö4˜Ø ˜›ñ 5àŠJñ .1÷ 
+ð €H÷ 
+Ö	*ð €Hús   §A?B0Â0C	c                ór  €  \         P                  ! V 4      ;_uu_ 4       pVP                  4       pVP                  pRRR4       \        XT R4      p\        T X4      p\        YV4      #   + '       g   i     L4; i  \         d0   p\        RT : RT: 2\        P                  R7       / u Rp?# Rp?ii ; i)zAReturn dict where keys are line numbers in the line number table.NzNot printing coverage data for rC   rD   Úexec)ry   rL   Úreadr”   rQ   rT   r4   rU   ÚcompilerÅ   r²   )r   rV   Úprogr”   rW   rª   r«   s   &      r   ru   ru   x  s‘   € ðÜ�]Š]˜8×$Ô$¨Ø—6‘6“8ˆDØ—z‘zˆH÷ %ô �4˜ 6Ó*€DÜ˜ 8Ó,€DÜ�tÓ"Ð"÷ %×$ûô ô ÝÛ!)ª3ð0Ü7:·z±zõ	Cà�	ûðús9   ‚A<  A)½A< Á)A9	Á4A< Á9A< Á<B6Â$B1Â+B6Â1B6c                   óp   a € ] tR tRt o RR ltR tRR ltR tR tR t	R	 t
R
 tR tR tR tR tRtV tR# )r   i†  Nc
                ól  € Wpn         W€n        \        WV4      V n        / V n        / V n        ^ V n        W n        / V n        / V n	        / V n
        RV n        V	'       d   \        4       V n        V'       d   V P                  V n        R# V'       d   V P                  V n        R# V'       d-   V'       d%   V P                   V n        V P"                  V n        R# V'       d%   V P                   V n        V P&                  V n        R# V'       d%   V P                   V n        V P(                  V n        R# ^V n        R# )aø  
@param count true iff it should count number of times each
             line is executed
@param trace true iff it should print out each line that is
             being counted
@param countfuncs true iff it should just output a list of
             (filename, modulename, funcname,) for functions
             that were called at least once;  This overrides
             'count' and 'trace'
@param ignoremods a list of the names of modules to ignore
@param ignoredirs a list of the names of directories to ignore
             all of the (recursive) contents of
@param infile file from which to read stored counts to be
             added into the results
@param outfile file in which to write the results
@param timing true iff timing information be displayed
N)rJ   rK   r   ÚignorerF   ÚpathtobasenameÚ	donothingÚtraceÚ_calledfuncsÚ_callersÚ_caller_cacheÚ
start_timeÚ_timeÚglobaltrace_trackcallersÚglobaltraceÚglobaltrace_countfuncsÚglobaltrace_ltÚlocaltrace_trace_and_countÚ
localtraceÚlocaltrace_traceÚlocaltrace_count)
r   r�   rÐ   Ú
countfuncsÚcountcallersÚ
ignoremodsÚ
ignoredirsrJ   rK   Útimings
   &&&&&&&&&&r   r   ÚTrace.__init__‡  sæ   € ð( ŒØŒÜ˜jÓ5ˆŒØˆŒØ ˆÔØˆŒØŒ
ØˆÔØˆŒØˆÔØˆŒßÜ#›gˆDŒOßØ#×<Ñ<ˆDÖßØ#×:Ñ:ˆDÖß—uØ#×2Ñ2ˆDÔØ"×=Ñ=ˆDŽOßØ#×2Ñ2ˆDÔØ"×3Ñ3ˆDŽOßØ#×2Ñ2ˆDÔØ"×3Ñ3ˆDŽOð ˆDŽNr    c                óJ   € ^ RI pVP                  pV P                  WV4       R# )rž   N)Ú__main__Ú__dict__Úrunctx)r   Úcmdrå   Údicts   &&  r   ÚrunÚ	Trace.run¹  s   € ÛØ× Ñ ˆØ�‰�C˜tÖ$r    c                óä  € Vf   / pVf   / pV P                   '       gA   \        P                  ! V P                  4       \        P                  ! V P                  4        \        WV4       V P                   '       g/   \        P                  ! R 4       \        P                  ! R 4       R # R #   T P                   '       g.   \        P                  ! R 4       \        P                  ! R 4       i i ; ir¦   )rÏ   Ú	threadingÚsettracer×   r4   rÇ   )r   rè   ÚglobalsÚlocalss   &&&&r   rç   ÚTrace.runctx¾  s£   € ØŠ? b˜GØŠ> B˜6Ø�~�~ˆ~Ü×Ò˜t×/Ñ/Ô0Ü�LŠL˜×)Ñ)Ô*ð	)Ü�˜vÔ&à—>—>�>Ü—’˜TÔ"Ü×"Ò" 4Ö(ñ "ø�4—>—>�>Ü—’˜TÔ"Ü×"Ò" 4Õ(ð "ús   Á B. Â.AC/c               ó,  € R pV P                   '       g!   \        P                  ! V P                  4        V! V/ VB pV P                   '       g   \        P                  ! R 4       V#   T P                   '       g   \        P                  ! R 4       i i ; ir¦   )rÏ   r4   rî   r×   )r   ÚfuncÚargsÚkwÚresults   ""*, r   ÚrunfuncÚTrace.runfuncË  sn   € ØˆØ�~�~ˆ~Ü�LŠL˜×)Ñ)Ô*ð	#Ù˜4Ð& 2Ñ&ˆFà—>—>�>Ü—’˜TÔ"Øˆøð —>—>�>Ü—’˜TÕ"ð "ús   ¶A( Á(+Bc                ó|  € VP                   pVP                  pV'       d   \        V4      pMR pVP                  pR pW P                  9   d+   V P                  V,          e   V P                  V,          pEM'R V P                  V&   \
        P                  ! V4       Uu. uF#  p\        P                  ! V4      '       g   K!  VNK%  	  pp\        V4      ^8X  dÆ   \
        P                  ! V^ ,          4       U	u. uF  p	\        V	\        4      '       g   K  V	NK  	  p
p	\        V
4      ^8X  dr   \
        P                  ! V
^ ,          4       Uu. uF  p\        VR4      '       g   K  VNK  	  pp\        V4      ^8X  d"   V^ ,          P                  pW`P                  V&   Ve
   V: RV: 2pW4V3# u upi u up	i u upi )NÚ	__bases__r   )Úf_codeÚco_filenamer0   Úco_namerÓ   ÚgcÚget_referrersr°   Ú
isfunctionr5   Ú
isinstanceré   Úhasattrr"   )r   Úframerª   r   r   r‚   ÚclsnamerV   Úfuncsr   Údictsr³   Úclassess   &&           r   Úfile_module_function_ofÚTrace.file_module_function_ofÖ  s‹  € Ø�|‰|ˆØ×#Ñ#ˆßÜ! (Ó+‰JàˆJà—<‘<ˆØˆØ×%Ñ%Ô%Ø×!Ñ! $Õ'Ò3Ø×,Ñ,¨TÕ2�ùà'+ˆD×Ñ˜tÑ$ô !#× 0Ò 0°Ô 6ó 3Ñ 6˜1Ü#×.Ò.¨q×1÷ �QÑ 6ˆEð 3ô
 �5‹z˜QŒÜ$&×$4Ò$4°U¸1µXÔ$>ó 5Ñ$>˜qÜ *¨1¬d× 3÷ ˜Ñ$>�ð 5ä�u“: ”?Ü*,×*:Ò*:¸5À½8Ô*Dó ?Ñ*D QÜ&-¨a°×&=÷  !˜qÑ*D�Gð ?ä˜7“| qÔ(à")¨!¥*×"5Ñ"5˜ð
 4;×*Ñ*¨4Ñ0ØÒÛ")ª8Ð4ˆHà XÐ-Ð-ùò-3ùò5ùò?s$   ÂF/ÃF/Ã8F4ÄF4ÅF9Å%F9c                ó�   € VR8X  d?   V P                  V4      pV P                  VP                  4      p^V P                  WT3&   R# R# )z[Handler for call events.

Adds information about who called who to the self._callers dict.
ÚcallN)r  Úf_backrÒ   )r   r  ÚwhyÚargÚ	this_funcÚparent_funcs   &&&&  r   rÖ   ÚTrace.globaltrace_trackcallersÿ  sE   € ð
 �&Œ=à×4Ñ4°UÓ;ˆIØ×6Ñ6°u·|±|ÓDˆKØ67ˆD�M‰M˜;Ð2Ó3ñ	 r    c                óX   € VR8X  d#   V P                  V4      p^V P                  V&   R# R# )z_Handler for call events.

Adds (filename, modulename, funcname) to the self._calledfuncs dict.
r  N)r  rÑ   )r   r  r  r  r  s   &&&& r   rØ   ÚTrace.globaltrace_countfuncs
  s0   € ð
 �&Œ=Ø×4Ñ4°UÓ;ˆIØ+,ˆD×Ñ˜iÓ(ñ r    c                óZ  € VR8X  d¤   VP                   pVP                  P                  RR4      pV'       dr   \        V4      pVea   V P                  P                  WV4      pV'       g<   V P                  '       d   \        RV: RVP                  : 24       V P                  # R# R# R# R# )zzHandler for call events.

If the code block being entered is to be ignored, returns 'None',
else returns self.localtrace.
r  Ú__file__Nz --- modulename: ri   )
rû   Ú	f_globalsr`   r0   rÍ   r   rÐ   rT   rý   rÛ   )r   r  r  r  rª   r   r   Ú	ignore_its   &&&&    r   rÙ   ÚTrace.globaltrace_lt  s•   € ð �&Œ=Ø—<‘<ˆDØ—‘×*Ñ*¨:°tÓ<ˆHßô & hÓ/�
ØÒ)Ø $§¡× 1Ñ 1°(Ó G�Iß$ØŸ:Ÿ:˜:Ý!Û&0°$·,³,ð$@ô Bà#Ÿ™Ð.ñ	 %ñ *ñ ñ r    c                ó>  € VR 8X  Ed   VP                   P                  pVP                  pWE3pV P                  P	                  V^ 4      ^,           V P                  V&   V P
                  '       d.   \        R\        4       V P
                  ,
          ,          RR7       \        P                  P                  V4      p\        P                  ! WE4      p\        RWu3,          RR7       V'       d   \        RVRR7       V P                  # \        4        V P                  # ©r¤   z%.2fÚ )r¿   z%s(%d)r2   rC   )rû   rü   Úf_linenorF   r`   rÔ   rT   rÕ   r
   r   r,   rv   ÚgetlinerÛ   )	r   r  r  r  r   rŒ   re   Úbnamer¤   s	   &&&&     r   rÚ   Ú Trace.localtrace_trace_and_count*  sÏ   € Ø�&�=à—|‘|×/Ñ/ˆHØ—^‘^ˆFØÐ"ˆCØ#Ÿ{™{Ÿ™¨s°AÓ6¸Õ:ˆD�K‰K˜Ñà��ˆÜ�f¤£¨$¯/©/Õ 9Õ:ÀÕDÜ—G‘G×$Ñ$ XÓ.ˆEÜ×$Ò$ XÓ6ˆDÜ�(˜e˜_Õ,°"Õ5ßÜ�d˜D bÕ)ð �‰Ðô ”Ø�‰Ðr    c                óÖ  € VR 8X  dØ   VP                   P                  pVP                  pV P                  '       d.   \	        R\        4       V P                  ,
          ,          RR7       \        P                  P                  V4      p\        P                  ! WE4      p\	        RWe3,          RR7       V'       d   \	        RVRR7       V P                  # \	        4        V P                  # r  )rû   rü   r  rÔ   rT   rÕ   r
   r   r,   rv   r  rÛ   )r   r  r  r  r   rŒ   r  r¤   s   &&&&    r   rÜ   ÚTrace.localtrace_trace=  s¥   € Ø�&Œ=à—|‘|×/Ñ/ˆHØ—^‘^ˆFà��ˆÜ�f¤£¨$¯/©/Õ 9Õ:ÀÕDÜ—G‘G×$Ñ$ XÓ.ˆEÜ×$Ò$ XÓ6ˆDÜ�(˜e˜_Õ,°"Õ5ßÜ�d˜D bÕ)ð �‰Ðô ”Ø�‰Ðr    c                óÒ   € VR 8X  dV   VP                   P                  pVP                  pWE3pV P                  P	                  V^ 4      ^,           V P                  V&   V P
                  # )r¤   )rû   rü   r  rF   r`   rÛ   )r   r  r  r  r   rŒ   re   s   &&&&   r   rÝ   ÚTrace.localtrace_countN  sU   € Ø�&Œ=Ø—|‘|×/Ñ/ˆHØ—^‘^ˆFØÐ"ˆCØ#Ÿ{™{Ÿ™¨s°AÓ6¸Õ:ˆD�K‰K˜ÑØ�‰Ðr    c                ó†   € \        V P                  V P                  V P                  V P                  V P
                  R 7      # ))rJ   rK   rI   rB   )r   rF   rJ   rK   rÑ   rÒ   )r   s   &r   ÚresultsÚTrace.resultsV  s2   € Ü˜tŸ{™{°4·;±;Ø'+§|¡|Ø+/×+<Ñ+<Ø'+§}¡}ô6ð 	6r    )rÑ   rÓ   rÒ   rF   rÏ   r×   rÍ   rJ   rÛ   rK   rÎ   rÔ   rÐ   )	r   r   rž   rž   © r'  NNFr!   )r"   r#   r$   r%   r   rê   rç   r÷   r  rÖ   rØ   rÙ   rÚ   rÜ   rÝ   r%  r&   r'   r(   s   @r   r   r   †  sH   ø‡ € ô0òd%ô
)ò	ò'.òR	8ò-òò.ò&ò"÷6ð 6r    c                  óz  aa€ ^ RI p V P                  RR7      pVP                  RRRR7       VP                  RR	4      pVP                  R
RRRR7       VP                  RRRRR7       VP                  RRRRR7       VP                  RRRRR7       VP                  R4      pVP	                  4       pVP                  RRRRR7       VP                  RRRRR7       VP                  RR R!R"7       VP                  R#R$R%R"7       VP                  R&R'RR(R7       VP                  R)R*RR+R7       VP                  R,R-RR.R7       VP                  R/R04      pVP                  R1R2. R3R47       VP                  R5R2. R6R47       VP                  R7RR8R9R47       VP                  R:R;R<R=7       VP                  R>V P
                  R?R=7       VP                  4       pVP                  '       d-   \        P                  ! R@4      o\        P                  ! RA4      oVV3RB lpVP                   UUu. uF*  qfP                  RC4       F  pVP                  4       NK  	  K,  	  uppVn
        VP                   UUu. uF0  qfP                  \        P                  4       F  pV! V4      NK  	  K2  	  uppVn        VP                  '       dv   VP                   '       g   VP#                  RD4       \%        VP                   VP                   RE7      p	V	P'                  VP(                  VP*                  VP,                  4      # \/        VP0                  VP2                  VP4                  VP6                  .4      '       g   VP#                  RF4       VP4                  '       d6   VP2                  '       g   VP0                  '       d   VP#                  RG4       VP*                  '       d$   VP2                  '       g   VP#                  RH4       VP8                  f   VP#                  RI4       \;        VP2                  VP0                  VP4                  VP6                  VP                  VP                  VP                   VP                   VP<                  RJ7	      p
 VP>                  '       dt   ^ RI pVP8                  pVPC                  V4      w  rÞpVPD                  .VPF                  O\H        n%        RKRLRMVPD                  RNVPL                  ROVPN                  RPVRQR/pMÆVP8                  .VPF                  O\H        n%        \        PP                  PS                  VP8                  4      \H        PP                  ^ &   \T        PV                  ! VP8                  4      ;_uu_ 4       p\Y        VP[                  4       VP8                  RR4      pRRR4       RMVP8                  RKRLRNRRQR/pV
P]                  XVV4       V
Pe                  4       p	VPf                  '       g4   V	P'                  VP(                  VP*                  VP,                  4       R# R# u uppi u uppi   + '       g   i     Lš; i  \^         d>   p\H        P`                  ! RS\H        PJ                  ^ ,          : RTT: 24        Rp?L¹Rp?i\b         d     LÉi ; i)Urž   NT)Úcolorz	--versionÚversionz	trace 2.0)Úactionr*  zMain optionsz(One of these (or --report) must be givenz-cz--countÚ
store_truez»Count the number of times each line is executed and write the counts to <module>.cover for each module executed, in the module's directory. See also --coverdir, --file, --no-report below.)r+  Úhelpz-tz--tracez3Print each line to sys.stdout before it is executedz-lz--listfuncsz§Keep track of which functions are executed at least once and write the results to sys.stdout after the program exits. Cannot be specified alongside --trace or --count.z-Tz--trackcallsz^Keep track of caller/called pairs and write the results to sys.stdout after the program exits.Ú	Modifiersz-rz--reportz¶Generate a report from a counts file; does not execute any code. --file must specify the results file to read, which must have been created in a previous run with --count --file=FILEz-Rz--no-reportz^Do not generate the coverage report files. Useful if you want to accumulate over several runs.z-fz--filez+File to accumulate counts over several runs)r-  z-Cz
--coverdirz†Directory where the report files go. The coverage report for <package>.<module> will be written to file <dir>/<package>/<module>.coverz-mz	--missingz?Annotate executable lines that were not executed with ">>>>>> "z-sz	--summaryz\Write a brief summary for each file to sys.stdout. Can only be used with --count or --reportz-gz--timingzQPrefix each line with the time since the program started. Only used while tracingÚFilterszCan be specified multiple timesz--ignore-moduleÚappendzqIgnore the given module(s) and its submodules (if it is a package). Accepts comma separated list of module names.)r+  Údefaultr-  z--ignore-dirzWIgnore files in the given directory (multiple directories can be joined by os.pathsep).z--moduleFzTrace a module. ÚprognameÚ?zfile to run as main program)Únargsr-  Ú	argumentszarguments to the programÚstdlibÚ
platstdlibc                 óþ   <€ \         P                  P                  \         P                  P                  V 4      4      p V P	                  R S4      P	                  RS4      p \         P                  P                  V 4      # )z$prefixz$exec_prefix)r
   r   Ú
expanduserÚ
expandvarsr7   r   )ÚsÚ_exec_prefixÚ_prefixs   &€€r   Úparse_ignore_dirÚmain.<locals>.parse_ignore_dir§  sX   ø€ Ü�G‰G×ÑœrŸw™w×1Ñ1°!Ó4Ó5ˆØ�I‰I�i Ó)×1Ñ1°.À,ÓOˆÜ�w‰w×Ñ Ó"Ð"r    Ú,z-r/--report requires -f/--file)rJ   rK   zLmust specify one of --trace, --count, --report, --listfuncs, or --trackcallsz8cannot specify both --listfuncs and (--trace or --count)z3--summary can only be used with --count or --reportz3progname is missing: required with the main options)rÞ   rß   rà   rá   rJ   rK   râ   r"   rå   r  Ú__package__Ú
__loader__Ú__spec__Ú
__cached__rÇ   zCannot run file z
 because: )4ÚargparseÚArgumentParserÚadd_argumentÚadd_argument_groupÚadd_mutually_exclusive_groupÚ	REMAINDERÚ
parse_argsÚ
ignore_dirÚ	sysconfigÚget_pathÚignore_moduleÚsplitÚstripr
   ÚpathsepÚreportrE   Úerrorr   r™   Úmissingr   r€   ÚanyrÐ   r�   Ú	listfuncsÚ
trackcallsr2  r   râ   ÚmoduleÚrunpyÚ_get_module_detailsrü   r5  r4   ÚargvÚparentÚloaderr   rr   ÚioÚ	open_coderÉ   rÈ   rç   rQ   ÚexitÚ
SystemExitr%  Ú	no_report)rE  ÚparserÚgrpÚ_grpÚoptsr>  rÄ   r   r;  r%  ÚtrZ  Úmodule_nameÚmod_nameÚmod_specrª   Úglobsr“   rW   r<  r=  s                      @@r   Úmainrm  \  sý  ù€ Ûà×$Ñ$¨4Ð$Ó0€FØ
×Ñ˜¨I¸{ÐÔKà
×
#Ñ
# NØ6ó8€Cð ×Ñ�T˜9¨\ð&ð ô 'ð
 ×Ñ�T˜9¨\ØFð ô Hà×Ñ�T˜=°ðEð ô Fð ×Ñ�T˜>°,ð7ð ô 8ð ×
#Ñ
# KÓ
0€Cà×+Ñ+Ó-€DØ×Ñ�d˜J¨|ðð ô  ð
 	×Ñ�d˜M°,ðGð ô Hð ×Ñ�T˜8Ø>ð ô @à×Ñ�T˜<ð2ð ô 3ð ×Ñ�T˜;¨|ðð ô ð ×Ñ�T˜;¨|ð=ð ô >ð ×Ñ�T˜:¨lð+ð ô ,ð ×
#Ñ
# IØ-ó/€Cà×ÑÐ&¨xÀð!ð ô "ð ×Ñ�^¨H¸bðGð ô Hð ×Ñ˜
¨<ÀØ/ð ô 1à
×Ñ˜
¨#Ø.ð ô 0à
×Ñ˜¨8×+=Ñ+=Ø+ð ô -ð ×ÑÓ€Dà‡‡€Ü×$Ò$ XÓ.ˆÜ ×)Ò)¨,Ó7ˆö#ð $(×#5Ò#5ôOÙ#5˜aÇÁÈÆ¸#ð Ÿ)™)ž+ÙAMñ &Ù#5òO€DÔð !%§¢ôNÙ /˜1¿¹ÄÇÁÖ9L°Añ (¨Ö*Ù9Lñ +Ù /òN€D„Oð ‡{‡{€{Ø�y�yˆyØ�L‰LÐ9Ô:Ü!¨¯©¸D¿I¹IÔFˆØ×$Ñ$ T§\¡\°4·<±<ÀÇÁÓOÐOä�—
‘
˜DŸJ™J¨¯©¸¿¹ÐH×IÒIØ�‰ð 4ô 	5ð ‡~‡~€~˜4Ÿ:Ÿ:˜:¨¯¯¨Ø�‰ÐOÔPà‡|‡|€|˜DŸJŸJ˜JØ�‰ÐJÔKà‡}�}ÒØ�‰ÐJÔKäˆd�j‰j˜$Ÿ*™*°·±ØŸ?™?°t×7IÑ7IØŸ™°·±Ø—i‘i¨¯©ô	5€AðØ�;�;ˆ;ÛØŸ-™-ˆKØ',×'@Ñ'@ÀÓ'MÑ$ˆH Ø×(Ñ(Ð:¨4¯>©>Ð:ŒCŒHà˜JØ˜D×,Ñ,Ø˜xŸ™Ø˜hŸo™oØ˜HØ˜dð‰Eð Ÿ™Ð7¨¯©Ð7ŒCŒHÜŸ'™'Ÿ/™/¨$¯-©-Ó8ŒC�H‰H�Q‰Kä—’˜dŸm™m×,Ô,°Ü˜rŸw™w›y¨$¯-©-¸Ó@�÷ -ð ˜DŸM™MØ˜JØ˜tØ˜dð	ˆEð 	
�‰��u˜eÔ$ð �i‰i‹k€Gà�>�>ˆ>Ø×Ñ˜dŸl™l¨D¯L©L¸$¿-¹-ÖHñ ùóOùóN÷X -×,ûô ô HÜ�‹´S·X±X¸a·[°[Â#ÐF×GÑGûÜô ÙðúsI   È,0YÉ46YÒD	Y& Ö&Y×/Y& ÙY#	ÙY& Ù&Z:Ù13Z)Ú)Z:Ú6Z:Ú9Z:rå   r¦   )Ú__doc__Ú__all__r_  rv   r
   r4   rM  rµ   ry   r°   rþ   r¨   rM   Útimer   rÕ   rí   r¡   r   r0   r>   r   r­   r²   rÅ   ru   r   rm  r"   r'  r    r   Ú<module>rq     s¢   ðñ8ð( Ð%Ð
&€ã 	Û Û 	Û 
Û Û Û Û Û 	Û 
Û Ý #ã à#€÷0ñ 0òdò ÷8qñ qòfò
ôò.#÷T6ñ T6òlPIðd ˆZÔÙ†Fñ r    