+
    .hb#                       R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHt  ^ R	IHt ]P4                  '       d   ^ RIHtHt ^ RIHt ]P>                  ! ] 4      t!Rt"Rt#Rt$]$ R2t%]$ R2t&]$ R2t']$ R2t(]$ R2t)]$ R2t*]PV                  ! R]PX                  4      t-R R lt.R R lt/R R lt0R R lt1R R  lt2R! R" lt3R# R$ lt4].]Pj                  ! R4      R% R& l4       4       t6].]Pj                  ! R4      R' R( l4       4       t7].]Pj                  ! R4      R) R* l4       4       t8].]Pj                  ! R4      R+ R, l4       4       t9].]Pj                  ! R4      R- R. l4       4       t: ! R/ R0]Pv                  4      t<R1 R2 lt=R3 R4 lt>R5 R6 lt?]R7 R8 l4       t@]R9 R: l4       tAR#   ] d    R
t ELi ; i);zCConda plugin that adds telemetry headers to requests made by conda.)annotationsN)context)list_packages)PrimitiveParametermask_anaconda_token)all_channel_urls)CondaRequestHeaderCondaSettinghookimpl)__version__zn/a)IteratorSequence)Callable;iX  zanaconda-telemetryz-virtual-packagesz	-channelsz	-packagesz-searchz-installz	-sys-infoa  
    ^                           # Start of string
    (?:                         # Non-capturing group for host patterns
        repo\.anaconda\.        # repo.anaconda. (literal dots)
        (?:com|cloud)           # Either "com" or "cloud"
        (?:/.*)?                # Optional path starting with forward slash
        |                       # OR
        conda\.anaconda\.org/   # conda.anaconda.org/ (literal dots and slash)
        (?:                     # Non-capturing group for channel paths
            anaconda|           # anaconda channel
            conda-forge|        # conda-forge channel
            main|               # main channel
            msys2|              # msys2 channel
            r                   # r channel
        )
        /.*                     # Forward slash followed by any characters
    )
    $                           # End of string
    c                    V ^8  d   QhRRRR/# )   funcr   return )formats   "O/root/miniconda3/lib/python3.14/site-packages/conda_anaconda_telemetry/hooks.py__annotate__r   U   s       X     c                L   a  \         P                  ! S 4      R V 3R ll4       pV# )z$Log the duration of a function call.c               $    V ^8  d   QhRRRRRR/# )r   argstuplekwargsdictr   r   r   )r   s   "r   r   timer.<locals>.__annotate__Y   s!     % %U %d %x %r   c                   < \         P                  4       \        P                  8:  d^   \        P
                  ! 4       pS! V / VB p\        P
                  ! 4       pWB,
          p\         P                  RSP                  V4       V# S! V / VB # )zWrap the given function.z'function: %s; duration (seconds): %0.4f)loggergetEffectiveLevelloggingINFOtimeperf_counterinfo__name__)r   r   ticvaluetocelapsed_timer   s   *,    r   wrapper_timertimer.<locals>.wrapper_timerX   s|     ##%5##%C$)&)E##%C9LKK9
 LT$V$$r   )	functoolswraps)r   r.   s   f r   timerr2   U   s(     __T% %  r   c                   V ^8  d   QhRR/# r   r   ztuple[str, ...]r   )r   s   "r   r   r   l   s      o r   c                     \         ;QJ d0    . R \        P                  P                  4        4       F  NK  	  5# ! R \        P                  P                  4        4       4      # )z>Retrieve the registered virtual packages from conda's context.c              3  r   "   T F-  pVP                    R VP                   R VP                   2x  K/  	  R# 5i)=N)nameversionbuild).0packages   & r   	<genexpr>'get_virtual_packages.<locals>.<genexpr>n   s5      KG <<.'//*!GMM?;Ks   57)r   r   plugin_managerget_virtual_package_recordsr   r   r   get_virtual_packagesrA   l   sR    5 --IIK5 5 --IIK  r   c                   V ^8  d   QhRR/# r4   r   )r   s   "r   r   r   t   s     ; ;/ ;r   c                     \        \        \        P                  4      4      p \        ;QJ d    . R V  4       F  NK  	  5# ! R V  4       4      # )zFReturn a list of currently configured channel URLs with tokens masked.c              3  8   "   T F  p\        V4      x  K  	  R # 5i)Nr   )r;   cs   & r   r=   #get_channel_urls.<locals>.<genexpr>w   s     :A$Q''s   )listr   r   channelsr   )rH   s    r   get_channel_urlsrI   t   s:    $W%5%567H5::5:5::::r   c                   V ^8  d   QhRR/# r   r   strr   )r   s   "r   r   r   z   s     & &3 &r   c                 6    \         P                  P                  # )zJUse ``sys.argv`` to determine the conda command that is current being run.)r   _argparse_argscmdr   r   r   get_conda_commandrP   z   s    !!%%%r   c                   V ^8  d   QhRR/# r4   r   )r   s   "r   r   r      s      / r   c                 t    \         P                  ;'       g    \         P                  p \        V RR7      w  rV# )z9Retrieve the list of packages in the current environment.	canonical)r   )r   active_prefixroot_prefixr   )prefix_packagess      r   get_package_listrY      s.    ""99g&9&9F{;KAOr   c                   V ^8  d   QhRR/# rK   r   )r   s   "r   r   r      s     - - -r   c                 6    \         P                  P                  # )z?Retrieve the search term being used when search command is run.)r   rN   
match_specr   r   r   get_search_termr]      s    !!,,,r   c                   V ^8  d   QhRR/# r4   r   )r   s   "r   r   r      s     + + +r   c                 6    \         P                  P                  # )z!Get the parsed position argument.)r   rN   rX   r   r   r   get_install_argumentsr`      s    !!***r   c                   V ^8  d   QhRR/# rK   r   )r   s   "r   r   r      s     	 	3 	r   c                 z    R\         R\        4       /p \        P                  R V P	                  4        4       4      # )z:Return ``;`` delimited string of extra system information.conda_build_versionconda_commandc              3  4   "   T F  w  rV R V 2x  K  	  R# 5i):Nr   )r;   keyr+   s   &  r   r=   ,get_sys_info_header_value.<locals>.<genexpr>   s!       +AZS3%q+As   )rc   rP   FIELD_SEPARATORjoinitems)telemetry_datas    r   get_sys_info_header_valuerm      sE    
 	2*,N
   +9+?+?+A   r   c                   V ^8  d   QhRR/# rK   r   )r   s   "r   r   r      s     4 4s 4r   c                 <    \         P                  \        4       4      # z<Return ``FIELD_SEPARATOR`` delimited string of channel URLs.)ri   rj   rI   r   r   r   get_channel_urls_header_valuerq            0 233r   c                   V ^8  d   QhRR/# rK   r   )r   s   "r   r   r      s     8 83 8r   c                 <    \         P                  \        4       4      # )z@Return ``FIELD_SEPARATOR`` delimited string of virtual packages.)ri   rj   rA   r   r   r   !get_virtual_packages_header_valueru      s      4 677r   c                   V ^8  d   QhRR/# rK   r   )r   s   "r   r   r      s     9 9C 9r   c                 <    \         P                  \        4       4      # rp   )ri   rj   r`   r   r   r   "get_install_arguments_header_valuerx      s      5 788r   c                   V ^8  d   QhRR/# rK   r   )r   s   "r   r   r      s     4 4S 4r   c                 <    \         P                  \        4       4      # )zAReturn ``FIELD_SEPARATOR`` delimited string of install arguments.)ri   rj   rY   r   r   r   #get_installed_packages_header_valuer{      rr   r   c                  0    ] tR t^t$ RtR]R&   R]R&   RtR# )HeaderWrapperzIObject that wraps ``CondaRequestHeader`` and adds a ``size_limit`` field.r	   headerint
size_limitr   N)r)   
__module____qualname____firstlineno____doc____annotations____static_attributes__r   r   r   r}   r}      s    SOr   r}   c                    V ^8  d   QhRRRR/# )r   header_wrappersSequence[HeaderWrapper]r   Iterator[CondaRequestHeader]r   )r   s   "r   r   r      s     	 	,	!	r   c              #     "   V  FC  pVP                   P                  RVP                   VP                   n        VP                   x  KE  	  R# 5i)zMake sure that all headers combined are not larger than ``SIZE_LIMIT``.

Any headers over their individual limits will be truncated.
N)r~   r+   r   )r   wrappers   & r   validate_headersr      s?      #&~~334Hg6H6HInn #s   AAc                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r      s     8 8 7 8r   c            
     "   \        \        \        \        4       R 7      RR7      \        \        \        \        4       R 7      RR7      \        \        \        \        4       R 7      RR7      \        \        \        \        4       R 7      RR7      .p \        4       pVR8X  d6   V P                  \        \        \        \        4       R 7      RR7      4       V # VR9   d4   V P                  \        \        \        \        4       R 7      RR7      4       V # ))r8   r+   i  )r~   r   i  search>   createinstall)r}   r	   HEADER_SYS_INFOrm   HEADER_CHANNELSrq   HEADER_VIRTUAL_PACKAGESru   HEADER_PACKAGESr{   rP   appendHEADER_SEARCHr]   HEADER_INSTALLrx   )custom_headerscommands     r   _conda_request_headersr      s   %$/1 	
 	%$35 	
 	%,79 	
 	%$9; 	
-N>  !G()&)+ 	
*  
)	))'<> 	
 r   c               $    V ^8  d   QhRRRRRR/# )r   hostrL   pathr   boolr   )r   s   "r   r   r   	  s&     E E E3 E4 Er   c                8    \         P                  V  V 24      RJ# )zKReturn whether we should submit request headers to the given host and path.N)REQUEST_HEADER_PATTERNmatch)r   r   s   &&r   should_submit_request_headersr   	  s     !''4&8DDr   c               $    V ^8  d   QhRRRRRR/# )r   r   rL   r   r   r   r   )r   s   "r   r   r     s'     G G G3 G3O Gr   c              #    "    \         P                  P                  '       d1   \        W4      '       d   \	        \        4       4       Rj  xL
  R# R# R#  L
  \         d#   p\        P                  RTR7        Rp?R# Rp?ii ; i5i)z>Return a list of custom headers to be included in the request.Nz Failed to collect telemetry data)exc_info)	r   pluginsanaconda_telemetryr   r   r   	Exceptionr"   debug)r   r   excs   && r   conda_request_headersr     sr     G??---2O3
 3
 ((>(@AAA3
- B G7#FFGsA   BAA AA BA B#B :B BBc                   V ^8  d   QhRR/# )r   r   zIterator[CondaSetting]r   )r   s   "r   r   r     s      . r   c            	   #  L   "   \        RR\        R\        R7      R7      x  R# 5i)z=Return a list of settings that can be configured by the user.r   z%Whether Anaconda Telemetry is enabledT)element_type)r8   description	parameterN)r
   r   r   r   r   r   conda_settingsr     s$      !;$T= s   "$)Br   
__future__r   r0   r$   rer&   typingconda.base.contextr   conda.cli.main_listr   conda.common.configurationr   conda.common.urlr   conda.models.channelr   conda.pluginsr	   r
   r   conda_buildr   rc   ImportErrorTYPE_CHECKINGcollections.abcr   r   r   	getLoggerr)   r"   ri   
SIZE_LIMITHEADER_PREFIXr   r   r   r   r   r   compileVERBOSEr   r2   rA   rI   rP   rY   r]   r`   	lru_cacherm   rq   ru   rx   r{   
NamedTupler}   r   r   r   r   r   r   r   r   <module>r      s3   J "   	   & - 9 0 1 D D > 
2			8	$  

 % +O+<=  #O9- #O9- !/) "?(+ #O9- & JJ) 0.;&
-
+
 
T	  	 
T4  4
 
T8  8
 
T9  9
 
T4  4
F%% 	8vE
 
G 
G 
 
K    s   G 	GG