+
    BV-j˜\  ã                  ó$  € ^ RI H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HtHtHt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 ^ R	I H!t!H"t" ^ R
I#H$t$H%t%H&t&H't'H(t(H)t)H*t* ^ RI+H,t, ^ RI-H.t. ^ RI/H0t0 ^ RI1H2t2H3t3 ^ RI4H5t5 ^ RI6H7t7 ^ RI8H9t9 ^ RI:H;t; . R}Ot<]Pz                  ! ]>4      t?])! R4      t@]A]B]C,          ]C]"3,          tD]A]E]E]E3,          tF]A]G]A]']G,          ]']G,          3,          3,          tH]&]!]]C.]$3,          tI]&]!]]D.]$3,          tJR~tKR R ltLR R ltMR R ltNR R ltO]9! ^RR7      RR R  ll4       tPR! R" ltQR# R$ ltRR%]R/R& R' lltSR( R) ltTR€R* R+ lltUR, R- ltVR. R/ ltWR0 R1 ltXR2 R3 ltYR4 R5 ltZR6 R7 lt[R8 R9 lt\R: R; lt]R< R= lt^]K3R> R? llt_R�RA RB llt`RC RD ltaRE RF ltbRG RH ltcRI RJ ltd ! RK RL]4      teRM RN ltfRO RP ltgR‚RQ RR llthRS RT ltiRU RV ltjRW RX ltkRY RZ ltlR[ R\ ltmR] R^ ltnR_ R` ltoRa Rb ltpRc Rd ltqRe Rf ltr]! R@Rg7       ! Rh Ri4      4       tsRj Rk lttRl Rm ltuRn Ro ltvRp Rq ltwRr Rs ltxRƒRt Ru lltyRv Rw ltzRx Ry lt{ ! Rz R].4      t|R{ R| lt}R# )„é    )ÚannotationsN)Ú	GeneratorÚIterableÚIteratorÚMappingÚSequence)Ú	dataclass)Úpartial)ÚStringIO)ÚfilterfalseÚteeÚzip_longest)ÚPath)ÚFunctionTypeÚTracebackType)ÚAnyÚBinaryIOÚCallableÚOptionalÚTextIOÚTypeVarÚcast)ÚRequirement)ÚBuildBackendHookCaller)Ú__version__)ÚCommandErrorÚExternallyManagedEnvironment)Úget_major_minor_version)ÚWINDOWS)Úretry)Úrunning_under_virtualenvÚ ConfiguredBuildBackendHookCallerÚTc               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚstr© )Úformats   "Úi/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pip/_internal/utils/misc.pyÚ__annotate__r,   F   s   € ÷ Xñ X˜ñ Xó    c                 óô   € \         P                  P                  \         P                  P                  \        4      R R 4      p \         P                  P                  V 4      p R\         RV  R\        4        R2# )z..zpip z from z	 (python Ú))ÚosÚpathÚjoinÚdirnameÚ__file__Úabspathr   r   )Úpip_pkg_dirs    r+   Úget_pip_versionr7   F   sX   € Ü—'‘'—,‘,œrŸw™wŸ™¬xÓ8¸$ÀÓE€KÜ—'‘'—/‘/ +Ó.€Kà”+�˜f [ M°Ô;RÓ;TÐ:UÐUVÐWÐWr-   c               ó    € V ^8„  d   QhRRRR/# )r&   Úpy_version_infoztuple[int, ...]r'   ztuple[int, int, int]r)   )r*   s   "r+   r,   r,   M   s   € ÷ 0ñ 0¨Oð 0Ð@Tñ 0r-   c                ó®   € \        V 4      ^8  d"   V ^\        V 4      ,
          R,          ,          p M\        V 4      ^8”  d
   V R,          p \        RV 4      # )a\  
Convert a tuple of ints representing a Python version to one of length
three.

:param py_version_info: a tuple of ints representing a Python version,
    or None to specify no version. The tuple can have any length.

:return: a tuple of length three if `py_version_info` is non-None.
    Otherwise, return `py_version_info` unchanged (i.e. None).
:Né   NÚVersionInfo)r   )Úlenr   )r9   s   &r+   Únormalize_version_infor>   M   sN   € ô ˆ?Ó˜aÔØ˜A¤ OÓ 4Õ4¸Õ<Õ<‰Ü	ˆ_Ó	 Ô	!Ø)¨"Õ-ˆä�˜Ó/Ð/r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r1   r(   r'   ÚNoner)   )r*   s   "r+   r,   r,   `   s   € ÷ ñ �Sð ˜Tñ r-   c                óð   €  \         P                  ! V 4       R#   \         dQ   pTP                  \        P                  8w  d'   TP                  \        P
                  8w  d   h  Rp?R#  Rp?R# Rp?ii ; i)z os.path.makedirs without EEXIST.N)r0   ÚmakedirsÚOSErrorÚerrnoÚEEXISTÚ	ENOTEMPTY)r1   Úes   & r+   Ú
ensure_dirrH   `   sN   € ðÜ
�Š�DÖøÜô à�7‰7”e—l‘lÔ" q§w¡w´%·/±/Ô'AØõ (BÕ"ûðús   ‚ šA5¥?A0Á0A5c               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   r,   j   s   € ÷ 	ñ 	�#ñ 	r-   c                 óÞ   €  \         P                  P                  \        P                  ^ ,          4      p V R9   d   \        P
                   R2# V #   \        \        \        3 d     R# i ; i)r   z -m pipÚpip)z__main__.pyz-c)	r0   r1   ÚbasenameÚsysÚargvÚ
executableÚAttributeErrorÚ	TypeErrorÚ
IndexError)Úprogs    r+   Úget_progrT   j   s_   € ðÜ�w‰w×Ñ¤§¡¨¥Ó,ˆØÐ(Ô(Ü—n‘nÐ% WÐ-Ð-àˆKøÜœI¤zÐ2ô ØÙðús   ‚AA ÁA ÁA,Á+A,g      à?)Ústop_after_delayÚwaitc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r&   Údirr(   Úignore_errorsÚboolÚonexczOnExc | Noner'   r@   r)   )r*   s   "r+   r,   r,   x   s)   € ÷ 
,ñ 
,�ð 
, Dð 
,¸ð 
,ÐQUñ 
,r-   c                óâ   € V'       d   \         pVf   \        p\        \        VR7      p\        P
                  R8¼  d   \        P                  ! WR7       R # \        P                  ! WR7       R # )N)r[   )Úonerror)r;   é   )Ú_onerror_ignoreÚ_onerror_reraiser
   Úrmtree_errorhandlerrM   Úversion_infoÚshutilÚrmtree)rX   rY   r[   Úhandlers   &&& r+   rd   rd   w   sG   € çÜˆØ‚}Ü ˆÜÔ0¸Ô>€GÜ
×Ñ˜7Ô"ä�Š�c×)ä�Š�c×+r-   c               ó    € V ^8„  d   QhRRRR/# ©r&   Ú_argsr   r'   r@   r)   )r*   s   "r+   r,   r,   …   s   € ÷ 	ñ 	˜Cð 	 Dñ 	r-   c                 ó   € R # ©Nr)   ©rh   s   *r+   r_   r_   …   s   € Ùr-   c               ó    € V ^8„  d   QhRRRR/# rg   r)   )r*   s   "r+   r,   r,   ‰   s   € ÷ 
ñ 
˜Sð 
 Tñ 
r-   c                 ó   € h rj   r)   rk   s   *r+   r`   r`   ‰   s   € Ø	r-   r[   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r&   Úfuncr   r1   r   Úexc_infozExcInfo | BaseExceptionr[   ÚOnExcr'   r@   r)   )r*   s   "r+   r,   r,   �   s:   € ÷ & ñ & Ø
ð& à
ð& ð &ð& ð
 ð& ð 
ñ& r-   c               ó   €  \         P                  ! V4      P                  pT\        P                  ,          '       g8    \         P
                  ! Y\        P                  ,          4        T ! T4       R# \        T\        4      '       g   Tw  rRpT! YT4       R#   \         d     R# i ; i  \         d     LEi ; i  \         d     LVi ; i)a  
`rmtree` error handler to 'force' a file remove (i.e. like `rm -f`).

* If a file is readonly then it's write flag is set and operation is
  retried.

* `onerror` is the original callback from `rmtree(... onerror=onerror)`
  that is chained at the end if the "rm -f" still fails.
N)r0   ÚstatÚst_moderC   ÚS_IWRITEÚchmodÚ
isinstanceÚBaseException)ro   r1   rp   r[   rt   Ú_s   &&&$  r+   ra   ra   �   s°   € ð Ü—'’'˜$“-×'Ñ'ˆð
 ”T—]‘]×"Ô"ð
	Ü�HŠH�T¤T§]¡]Õ2Ô3ð
Ù�T”
Ùô �h¤×.Ò.Ø!‰ˆ�QÙ	ˆ$�hÖøô) ô âðûô ô Ùðûô ô 	Ùð	ús5   ‚ B Á +B? Á,B. ÂB+Â*B+Â.B<Â;B<Â?CÃCc               ó    € V ^8„  d   QhRRRR/# )r&   r1   r(   r'   r)   )r*   s   "r+   r,   r,   ¶   s   € ÷ 'ñ '�sð '˜sñ 'r-   c                óÄ   €  \        V 4      P                  \         P                  ! 4       4      p\        P
                  P                  RT4      #   \         d    T u # i ; i)zPGives the display value for a given path, making it relative to cwd
if possible.Ú.)r   Úrelative_toÚcwdÚ
ValueErrorr0   r1   r2   )r1   Úrelatives   & r+   Údisplay_pathr�   ¶   sN   € ðÜ˜“:×)Ñ)¬$¯(ª(«*Ó5ˆô �7‰7�<‰<˜˜XÓ&Ð&øô ô àŠðús   ‚-A ÁAÁAc               ó$   € V ^8„  d   QhRRRRRR/# )r&   rX   r(   Úextr'   r)   )r*   s   "r+   r,   r,   Á   s!   € ÷ ñ �Cð ˜cð ¨sñ r-   c                óª   € ^pTp\         P                  P                  W,           4      '       d   V^,          pV\        V4      ,           pKH  W,           # )zXFigure out the name of a directory to back up the given dir to
(adding .bak, .bak2, etc))r0   r1   Úexistsr(   )rX   rƒ   ÚnÚ	extensions   &&  r+   Ú
backup_dirrˆ   Á   sA   € ð 	
€AØ€IÜ
�'‰'�.‰.˜�×
)Ò
)Ø	ˆQ�ˆØœ#˜a›&•LŠ	Ø�?Ðr-   c               ó$   € V ^8„  d   QhRRRRRR/# ©r&   Úmessager(   ÚoptionszIterable[str]r'   r)   )r*   s   "r+   r,   r,   Ì   s!   € ÷ !ñ !˜Sð !¨=ð !¸Sñ !r-   c                ó–   € \         P                  P                  R R4      P                  4        F  pW!9   g   K  Vu # 	  \	        W4      # )ÚPIP_EXISTS_ACTIONÚ )r0   ÚenvironÚgetÚsplitÚask)r‹   rŒ   Úactions   && r+   Úask_path_existsr•   Ì   s>   € Ü—*‘*—.‘.Ð!4°bÓ9×?Ñ?ÖAˆØÖØŠMñ Bô ˆwÓ Ð r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r‹   r(   r'   r@   r)   )r*   s   "r+   r,   r,   Ó   s   € ÷ 
ñ 
˜Sð 
 Tñ 
r-   c                ól   € \         P                  P                  R4      '       d   \        RV  24      hR# )z&Raise an error if no input is allowed.ÚPIP_NO_INPUTz5No input was expected ($PIP_NO_INPUT set); question: N)r0   r�   r‘   Ú	Exception©r‹   s   &r+   Ú_check_no_inputr›   Ó   s1   € ä	‡z�z‡~�~�n×%Ò%ÜØCÀGÀ9ÐMó
ð 	
ñ &r-   c               ó$   € V ^8„  d   QhRRRRRR/# rŠ   r)   )r*   s   "r+   r,   r,   Û   s!   € ÷ ñ �ð ˜}ð °ñ r-   c                óÔ   €  \        V 4       \        V 4      pVP                  4       P                  4       pW!9  d-   \	        RP                  VRP                  V4      4      4       Kg  V# )z@Ask the message interactively, with the given possible responsesz>Your response ({!r}) was not one of the expected responses: {}z, )r›   ÚinputÚstripÚlowerÚprintr*   r2   )r‹   rŒ   Úresponses   && r+   r“   r“   Û   sZ   € à
Ü˜Ô Ü˜“>ˆØ—>‘>Ó#×)Ñ)Ó+ˆØÔ"Üðß‘V˜H d§i¡i°Ó&8Ó9öð
 ˆOr-   c               ó    € V ^8„  d   QhRRRR/# ©r&   r‹   r(   r'   r)   )r*   s   "r+   r,   r,   ê   s   € ÷ ñ �sð ˜sñ r-   c                ó.   € \        V 4       \        V 4      # )zAsk for input interactively.)r›   rž   rš   s   &r+   Ú	ask_inputr¦   ê   s   € ä�GÔÜ�‹>Ðr-   c               ó    € V ^8„  d   QhRRRR/# r¤   r)   )r*   s   "r+   r,   r,   ð   s   € ÷ $ñ $˜#ð $ #ñ $r-   c                óD   € \        V 4       \        P                  ! V 4      # )z!Ask for a password interactively.)r›   Úgetpassrš   s   &r+   Úask_passwordrª   ð   s   € ä�GÔÜ�?Š?˜7Ó#Ð#r-   c               ó    € V ^8„  d   QhRRRR/# )r&   Úvalr(   r'   Úintr)   )r*   s   "r+   r,   r,   ö   s   € ÷ 9ñ 9�3ð 9˜3ñ 9r-   c                ód   € V P                  4       p V R9   d   ^# V R9   d   ^ # \        RV : 24      h)zäConvert a string representation of truth to true (1) or false (0).

True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values
are 'n', 'no', 'f', 'false', 'off', and '0'.  Raises ValueError if
'val' is anything else.
zinvalid truth value )ÚyÚyesÚtÚtrueÚonÚ1)r†   ÚnoÚfÚfalseÚoffÚ0)r    r   )r¬   s   &r+   Ú	strtoboolrº   ö   s:   € ð �)‰)‹+€CØ
Ð2Ô2ÙØ	Ð5Ô	5ÙäÐ/°©wÐ7Ó8Ð8r-   c               ó    € V ^8„  d   QhRRRR/# )r&   ÚbytesÚfloatr'   r(   r)   )r*   s   "r+   r,   r,     s   € ÷ %ñ %�uð % ñ %r-   c                ó´   € V R8”  d   V R,          R ,          R R2# V R8”  d   \        V R ,          4       R2# V R 8”  d   V R,          R R2# \        V 4       R2# )iè  g     @�@z.1fz MBz kBz bytesi@B i'  )r­   )r¼   s   &r+   Úformat_sizer¿     sn   € Øˆ{ÔØ˜&•. 4Õ'¨Ð,¨CÐ0Ð0Ø	�Ô	Ü�e˜d•lÓ#Ð$ CÐ(Ð(Ø	�ŒØ˜&•. Ð% SÐ)Ð)ä�e“*�˜VÐ$Ð$r-   c               ó    € V ^8„  d   QhRRRR/# )r&   ÚrowszIterable[Iterable[Any]]r'   ztuple[list[str], list[int]]r)   )r*   s   "r+   r,   r,     s   € ÷ ñ Ð*ð Ð/Jñ r-   c           
     ód  € V  Uu. uF  p\        \        \        V4      4      NK  	  p p\        V RR/  Uu. uF  p\	        \        \
        V4      4      NK  	  ppV  Uu. uF:  pRP                  \        \        P                  W4      4      P                  4       NK<  	  ppWC3# u upi u upi u upi )z¨Return a list of formatted rows and a list of column sizes.

For example::

>>> tabulate([['foobar', 2000], [0xdeadbeef]])
(['foobar     2000', '3735928559'], [10, 4])
Ú	fillvaluer�   Ú )	ÚtupleÚmapr(   r   Úmaxr=   r2   ÚljustÚrstrip)rÁ   ÚrowÚcolÚsizesÚtables   &    r+   ÚtabulaterÎ     s’   € ñ -1Ó1©D SŒE”#”c˜3“-Ö ©D€DÐ1Ü+6¸Ð+KÈÒ+KÓLÑ+K CŒS””S˜#“ÖÑ+K€EÐLÙFJÓKÁd¸sˆS�X‰X”cœ#Ÿ)™) SÓ0Ó1×8Ñ8Ö:Ád€EÐKØˆ<Ðùò 2ùÚLùÚKs   …"B#¶"B(ÁA B-c               ó    € V ^8„  d   QhRRRR/# ©r&   r1   r(   r'   rZ   r)   )r*   s   "r+   r,   r,     s   € ÷ ñ ˜Sð  Tñ r-   c                óh  € \         P                  P                  V 4      '       g   R# \         P                  P                  \         P                  P	                  V R4      4      '       d   R# \         P                  P                  \         P                  P	                  V R4      4      '       d   R# R# )a`  Is path is a directory containing pyproject.toml or setup.py?

If pyproject.toml exists, this is a PEP 517 project. Otherwise we look for
a legacy setuptools layout by identifying setup.py. We don't check for the
setup.cfg because using it without setup.py is only available for PEP 517
projects, which are already covered by the pyproject.toml check.
Fzpyproject.tomlTzsetup.py)r0   r1   ÚisdirÚisfiler2   ©r1   s   &r+   Úis_installable_dirrÕ     sh   € ô �7‰7�=‰=˜×ÒÙÜ	‡w�w‡~�~”b—g‘g—l‘l 4Ð)9Ó:×;Ò;ÙÜ	‡w�w‡~�~”b—g‘g—l‘l 4¨Ó4×5Ò5ÙÙr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úfiler   Úsizer­   r'   zGenerator[bytes, None, None]r)   )r*   s   "r+   r,   r,   0  s$   € ÷ ñ Ø
ðØðà!ñr-   c              #  óN   "  €  V P                  V4      pV'       g   R# Vx € K"  5i)z7Yield pieces of data from a file-like object until EOF.N)Úread)r×   rØ   Úchunks   && r+   Úread_chunksrÜ   0  s"   é € ð Ø—	‘	˜$“ˆßÙØŒùs   ‚%�%Tc               ó$   € V ^8„  d   QhRRRRRR/# )r&   r1   r(   Úresolve_symlinksrZ   r'   r)   )r*   s   "r+   r,   r,   ;  s!   € ÷ 
"ñ 
"˜ð 
"°ð 
"Àñ 
"r-   c                ó  € \         P                  P                  V 4      p V'       d!   \         P                  P                  V 4      p M\         P                  P	                  V 4      p \         P                  P                  V 4      # )zF
Convert a path to its canonical, case-normalized, absolute version.

)r0   r1   Ú
expanduserÚrealpathr5   Únormcase)r1   rÞ   s   &&r+   Únormalize_pathrã   ;  sV   € ô
 �7‰7×Ñ˜dÓ#€DßÜ�w‰w×Ñ Ó%‰ä�w‰w�‰˜tÓ$ˆÜ�7‰7×Ñ˜DÓ!Ð!r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r1   r(   r'   ztuple[str, str]r)   )r*   s   "r+   r,   r,   H  s   € ÷ ñ �3ð ˜?ñ r-   c                ó¤   € \         P                  ! V 4      w  rVP                  4       P                  R4      '       d   VRR V,           pVRR pW3# )z,Like os.path.splitext, but take off .tar tooz.tarNéüÿÿÿ)Ú	posixpathÚsplitextr    Úendswith)r1   Úbaserƒ   s   &  r+   rè   rè   H  sM   € ä×"Ò" 4Ó(�I€DØ‡z�zƒ|×Ñ˜V×$Ò$Ø�2�3ˆi˜#�oˆØ�C�RˆyˆØˆ9Ðr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úoldr(   Únewr'   r@   r)   )r*   s   "r+   r,   r,   Q  s!   € ÷ ñ �ð ˜3ð  4ñ r-   c                óÆ  € \         P                  P                  V4      w  r#V'       dD   V'       d<   \         P                  P                  V4      '       g   \         P                  ! V4       \
        P                  ! W4       \         P                  P                  V 4      w  r#V'       d$   V'       d    \         P                  ! V4       R# R# R#   \         d     R# i ; i)z7Like os.renames(), but handles renaming across devices.N)	r0   r1   r’   r…   rB   rc   ÚmoveÚ
removedirsrC   )rì   rí   ÚheadÚtails   &&  r+   Úrenamesró   Q  sŒ   € ô —‘—‘˜sÓ#�J€Dß—œRŸW™WŸ^™^¨D×1Ò1Ü
�Š�DÔä
‡K‚K�Ôä—‘—‘˜sÓ#�J€Dß—ð	Ü�MŠM˜$Öñ �tøô ô 	Úð	ús   Â5C ÃC ÃC c               ó    € V ^8„  d   QhRRRR/# rÐ   r)   )r*   s   "r+   r,   r,   b  s   € ÷ 7ñ 7�3ð 7˜4ñ 7r-   c                óv   € \        4       '       g   R# V P                  \        \        P                  4      4      # )zè
Return True if path is within sys.prefix, if we're running in a virtualenv.

If we're not in a virtualenv, all paths are considered "local."

Caution: this function assumes the head of path has been normalized
with normalize_path.
T)r!   Ú
startswithrã   rM   ÚprefixrÔ   s   &r+   Úis_localrø   b  s(   € ô $×%Ò%ÙØ�?‰?œ>¬#¯*©*Ó5Ó6Ð6r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úmsgr   Úargsr'   r@   r)   )r*   s   "r+   r,   r,   p  s!   € ÷ ñ �cð  #ð ¨$ñ r-   c                ó6   € \         P                  ! V .VO5!   R # rj   )ÚloggerÚinfo)rú   rû   s   &*r+   Úwrite_outputrÿ   p  s   € Ü
‡K‚K�Ð�dÖr-   c                  óN   € ] tR tRt$ R]R&   ]R R l4       t]R R l4       tRt	R	# )
ÚStreamWrapperit  r   Úorig_streamc               ó    € V ^8„  d   QhRRRR/# )r&   r  r   r'   r  r)   )r*   s   "r+   r,   ÚStreamWrapper.__annotate__x  s   € ÷ ñ  fð °ñ r-   c                	ó    € V ! 4       pWn         V# rj   )r  )Úclsr  Úrets   && r+   Úfrom_streamÚStreamWrapper.from_streamw  s   € á‹eˆØ%ŒØˆ
r-   c               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   r  €  s   € ÷ )ñ )˜#ñ )r-   c                	ó.   € V P                   P                  # rj   )r  Úencoding©Úselfs   &r+   r  ÚStreamWrapper.encoding  s   € à×Ñ×(Ñ(Ð(r-   r)   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Úclassmethodr  Úpropertyr  Ú__static_attributes__r)   r-   r+   r  r  t  s.   ‡ ØÓàôó ðð ô)ó ô)r-   r  c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Ú
sequentialr   Únamedr'   z	type[Any]r)   )r*   s   "r+   r,   r,   …  s!   € ÷ #ñ #�cð # Cð #¨Iñ #r-   c            
     óÆ   € \        \        V \        \        V 4      4      4      3/ VB pVP	                  4        UUu/ uF  w  r4WCbK	  	  pppWRR &   \        RRV4      # u uppi )Úreverse_mappingÚEnumr)   )ÚdictÚzipÚranger=   ÚitemsÚtype)r  r  ÚenumsÚkeyÚvalueÚreverses   *,    r+   Úenumr'  …  s\   € Ü”�Z¤¤s¨:£Ó!7Ó8ÑB¸EÑB€EØ,1¯K©K¬MÔ:©M™j˜cˆuŠz©M€GÑ:Ø&Ð
ÑÜ�˜˜EÓ"Ð"ùó ;s   ¼Ac               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úhostr(   Úportz
int | Noner'   r)   )r*   s   "r+   r,   r,   Œ  s!   € ÷ 	ñ 	�sð 	 *ð 	°ñ 	r-   c                ó6   € Vf   V # RV 9   d   RV  R2p V  RV 2# )z&
Build a netloc from a host-port pair
Ú:Ú[Ú]r)   )r)  r*  s   &&r+   Úbuild_netlocr/  Œ  s3   € ð ‚|ØˆØ
ˆd„{à�4�&˜ˆ{ˆØˆV�1�T�FÐÐr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Únetlocr(   Úschemer'   r)   )r*   s   "r+   r,   r,   ˜  s!   € ÷ "ñ " #ð "¨sð "Àñ "r-   c                ód   € V P                  R4      ^8¼  d   RV 9  d   RV 9  d   RV  R2p V RV  2# )z!
Build a full URL from a netloc.
r,  Ú@r-  r.  z://)Úcount)r1  r2  s   &&r+   Úbuild_url_from_netlocr6  ˜  sA   € ð ‡|�|�CÓ˜AÔ #¨VÔ"3¸À6Ô8Ià�V�H˜A�ˆØˆX�S˜˜Ð!Ð!r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r1  r(   r'   ztuple[str | None, int | None]r)   )r*   s   "r+   r,   r,   ¢  s   € ÷ (ñ (˜ð (Ð!>ñ (r-   c                ó†   € \        V 4      p\        P                  P                  V4      pVP                  VP
                  3# )z*
Return the host-port pair from a netloc.
)r6  ÚurllibÚparseÚurlparseÚhostnamer*  )r1  ÚurlÚparseds   &  r+   Úparse_netlocr?  ¢  s5   € ô   Ó
'€CÜ�\‰\×"Ñ" 3Ó'€FØ�?‰?˜FŸK™KÐ'Ð'r-   c               ó    € V ^8„  d   QhRRRR/# ©r&   r1  r(   r'   ÚNetlocTupler)   )r*   s   "r+   r,   r,   «  s   € ÷ ñ  3ð ¨;ñ r-   c                ó  € RV 9  d   V R3# V P                  R^4      w  rRpRV9   d   VP                  R^4      w  r2MTRr#\        P                  P	                  V4      pVe    \        P                  P	                  V4      pWV33# )zd
Parse out and remove the auth information from a netloc.

Returns: (netloc, (username, password)).
r4  Nr,  ©NN)Úrsplitr’   r9  r:  Úunquote)r1  ÚauthÚpwÚusers   &   r+   Úsplit_auth_from_netlocrJ  «  sŽ   € ð �&ÔØ�|Ð#Ð#ð
 —=‘=  aÓ(�L€DØ€BØ
ˆd„{ð —:‘:˜c 1Ó%‰ˆˆbà˜ˆbä�<‰<×Ñ Ó%€DØ	‚~Ü�\‰\×!Ñ! "Ó%ˆà˜"�:ÐÐr-   c               ó    € V ^8„  d   QhRRRR/# )r&   r1  r(   r'   r)   )r*   s   "r+   r,   r,   È  s   € ÷ (ñ (˜#ð ( #ñ (r-   c                ó”   € \        V 4      w  p w  rVf   V # Vf   RpRpM!\        P                  P                  V4      pRpV V RV  2# )zÊ
Replace the sensitive data in a netloc with "****", if it exists.

For example:
    - "user:pass@example.com" returns "user:****@example.com"
    - "accesstoken@example.com" returns "****@example.com"
ú****r�   z:****r4  )rJ  r9  r:  Úquote)r1  rI  Úpasswords   &  r+   Úredact_netlocrP  È  s^   € ô  6°fÓ=Ñ€FÑˆTØ‚|ØˆØÒØˆØ‰ä�|‰|×!Ñ! $Ó'ˆØˆØˆV�H�:˜Q˜v˜hÐ'Ð'r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   r=  r(   Útransform_netlocz Callable[[str], tuple[Any, ...]]r'   ztuple[str, NetlocTuple]r)   )r*   s   "r+   r,   r,   Ü  s$   € ÷ 3ñ 3Ø	ð3Ø @ð3àñ3r-   c                ó*  € \         P                  P                  V 4      pV! VP                  4      pVP                  V^ ,          VP
                  VP                  VP                  3p\         P                  P                  V4      pV\        RV4      3# )a:  Transform and replace netloc in a url.

transform_netloc is a function taking the netloc and returning a
tuple. The first element of this tuple is the new netloc. The
entire tuple is returned.

Returns a tuple containing the transformed url as item 0 and the
original tuple returned by transform_netloc as item 1.
rB  )
r9  r:  Úurlsplitr1  r2  r1   ÚqueryÚfragmentÚ
urlunsplitr   )r=  rR  ÚpurlÚnetloc_tupleÚ
url_piecesÚsurls   &&    r+   Ú_transform_urlr\  Ü  sp   € ô �<‰<× Ñ  Ó%€DÙ# D§K¡KÓ0€Là—+‘+˜|¨A�°·	±	¸4¿:¹:ÀtÇ}Á}ÐU€JÜ�<‰<×"Ñ" :Ó.€DØ”�m \Ó2Ð2Ð2r-   c               ó    € V ^8„  d   QhRRRR/# rA  r)   )r*   s   "r+   r,   r,   ð  s   € ÷ *ñ *˜ð * ñ *r-   c                ó   € \        V 4      # rj   )rJ  ©r1  s   &r+   Ú_get_netlocr`  ð  s   € Ü! &Ó)Ð)r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r1  r(   r'   z
tuple[str]r)   )r*   s   "r+   r,   r,   ô  s   € ÷ $ñ $˜3ð $ :ñ $r-   c                ó   € \        V 4      3# rj   )rP  r_  s   &r+   Ú_redact_netlocrc  ô  s   € Ü˜&Ó!Ð#Ð#r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r=  r(   r'   z.tuple[str, str, tuple[str | None, str | None]]r)   )r*   s   "r+   r,   r,   ø  s   € ÷ 	*ñ 	*Ø	ð	*à3ñ	*r-   c                ó4   € \        V \        4      w  pw  r#WV3# )zz
Parse a url into separate netloc, auth, and url with no auth.

Returns: (url_without_auth, netloc, (username, password))
©r\  r`  )r=  Úurl_without_authr1  rG  s   &   r+   Úsplit_auth_netloc_from_urlrh  ø  s#   € ô (6°c¼;Ó'GÑ$Ð‘n�vØ TÐ)Ð)r-   c               ó    € V ^8„  d   QhRRRR/# ©r&   r=  r(   r'   r)   )r*   s   "r+   r,   r,     s   € ÷ /ñ /˜cð / cñ /r-   c                ó0   € \        V \        4      ^ ,          # )z7Return a copy of url with 'username:password@' removed.rf  ©r=  s   &r+   Úremove_auth_from_urlrm    s   € ô ˜#œ{Ó+¨AÕ.Ð.r-   c               ó    € V ^8„  d   QhRRRR/# rj  r)   )r*   s   "r+   r,   r,     s   € ÷ 2ñ 2˜cð 2 cñ 2r-   c                ó0   € \        V \        4      ^ ,          # )z.Replace the password in a given url with ****.)r\  rc  rl  s   &r+   Úredact_auth_from_urlrp    s   € ä˜#œ~Ó.¨qÕ1Ð1r-   c               ó    € V ^8„  d   QhRRRR/# )r&   Úreqr   r'   r(   r)   )r*   s   "r+   r,   r,     s   € ÷ Dñ D kð D°cñ Dr-   c                ó¬   € V P                   '       g   \        V 4      # \        V 4      P                  V P                   \        V P                   4      4      # )z:Replace the password in a given requirement url with ****.)r=  r(   Úreplacerp  )rr  s   &r+   Úredact_auth_from_requirementru    s9   € à�7�7ˆ7Ü�3‹xˆÜˆs‹8×Ñ˜CŸG™GÔ%9¸#¿'¹'Ó%BÓCÐCr-   )Úfrozenc                  óT   € ] tR tRt$ R]R&   R]R&   R R ltR R ltR	 R
 ltRtRt	R# )Ú
HiddenTexti  r(   ÚsecretÚredactedc               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   ÚHiddenText.__annotate__  s   € ÷ -ñ -˜#ñ -r-   c                	ó"   € R \        V 4      : R2# )z<HiddenText Ú>)r(   r  s   &r+   Ú__repr__ÚHiddenText.__repr__  s   € Øœc $›i™]¨!Ð,Ð,r-   c               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   r|    s   € ÷ ñ ˜ñ r-   c                	ó   € V P                   # rj   ©rz  r  s   &r+   Ú__str__ÚHiddenText.__str__  s   € Ø�}‰}Ðr-   c               ó    € V ^8„  d   QhRRRR/# )r&   ÚotherÚobjectr'   rZ   r)   )r*   s   "r+   r,   r|  "  s   € ÷ ñ ˜Fð  tñ r-   c                	óp   € \        V 4      \        V4      J d   V P                  VP                  8H  # \        # rj   )r"  ry  ÚNotImplemented)r  r‡  s   &&r+   Ú__eq__ÚHiddenText.__eq__"  s-   € ä�‹:œ˜e›Ó$ð —;‘; %§,¡,Ñ.Ð.ÜÐr-   Nr)   )
r  r  r  r  r  r  r„  r‹  Ú__hash__r  r)   r-   r+   rx  rx    s"   ‡ àƒKØƒMõ-õõð „Hr-   rx  c               ó    € V ^8„  d   QhRRRR/# )r&   r%  r(   r'   rx  r)   )r*   s   "r+   r,   r,   0  s   € ÷ .ñ .�cð .˜jñ .r-   c                ó   € \        V R R7      # )rM  rƒ  )rx  )r%  s   &r+   Ú
hide_valuer�  0  s   € Ü�e fÔ-Ð-r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r=  r(   r'   rx  r)   )r*   s   "r+   r,   r,   4  s   € ÷ .ñ .�#ð .˜*ñ .r-   c                ó0   € \        V 4      p\        WR 7      # )rƒ  )rp  rx  )r=  rz  s   & r+   Úhide_urlr“  4  s   € Ü# CÓ(€HÜ�cÔ-Ð-r-   c               ó    € V ^8„  d   QhRRRR/# )r&   Úmodifying_piprZ   r'   r@   r)   )r*   s   "r+   r,   r,   9  s   € ÷ 
ñ 
¸Dð 
ÀTñ 
r-   c                ó  € RR\         P                  P                   2R\         P                  P                   R\         P                  P                   2.pT ;'       dF    \        ;'       d8    \
        P                  P                  \         P                  ^ ,          4      V9   pV'       dY   \         P                  RR.\         P                  R,          ,           p\        RP                  RP                  V4      4      4      hR# )z„Protection of pip.exe from modification on Windows

On Windows, any operation modifying pip should be run as:
    python -m pip ...
rK   r|   z-m:é   NNz3To modify pip, please run the following command:
{}rÄ   N)rM   rb   ÚmajorÚminorr   r0   r1   rL   rN   rO   r   r*   r2   )r•  Ú	pip_namesÚshould_show_use_python_msgÚnew_commands   &   r+   Ú(protect_pip_from_modification_on_windowsr�  9  sÓ   € ð 	Ø
Œc×Ñ×$Ñ$Ð%Ð&Ø
Œc×Ñ×$Ñ$Ð% Q¤s×'7Ñ'7×'=Ñ'=Ð&>Ð?ð€Ið 	×PÐPœ'×PÐP¤b§g¡g×&6Ñ&6´s·x±xÀµ{Ó&CÀyÑ&Pð ÷ "Ü—~‘~ t¨UÐ3´c·h±h¸rµlÕBˆÜØB×IÑIØ—‘˜Ó%óó
ð 	
ñ "r-   c               ó   € V ^8„  d   QhRR/# ©r&   r'   r@   r)   )r*   s   "r+   r,   r,   S  s   € ÷ ;ñ ; $ñ ;r-   c                 ó  € \        4       '       d   R# \        P                  P                  \        P
                  ! R4      R4      p \        P                  P                  V 4      '       g   R# \        P                  ! V 4      h)zÛCheck whether the current environment is externally managed.

If the ``EXTERNALLY-MANAGED`` config file is found, the current environment
is considered externally managed, and an ExternallyManagedEnvironment is
raised.
NÚstdlibzEXTERNALLY-MANAGED)	r!   r0   r1   r2   Ú	sysconfigÚget_pathrÓ   r   Úfrom_config)Úmarkers    r+   Úcheck_externally_managedr¦  S  sW   € ô  ×!Ò!ÙÜ�W‰W�\‰\œ)×,Ò,¨XÓ6Ð8LÓM€FÜ�7‰7�>‰>˜&×!Ò!ÙÜ
&×
2Ò
2°6Ó
:Ð:r-   c               ó   € V ^8„  d   QhRR/# )r&   r'   rZ   r)   )r*   s   "r+   r,   r,   b  s   € ÷ 8ñ 8 ñ 8r-   c                 ór   € \         P                  RJ;'       d    \         P                  P                  4       # )zIs this console interactive?N)rM   ÚstdinÚisattyr)   r-   r+   Úis_console_interactiver«  b  s&   € ä�9‰9˜DÐ ×7Ð7¤S§Y¡Y×%5Ñ%5Ó%7Ð7r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   r1   r(   Ú	blocksizer­   r'   ztuple[Any, int]r)   )r*   s   "r+   r,   r,   g  s!   € ÷ 	ñ 	�Cð 	 Cð 	°oñ 	r-   c                ó  € \         P                  ! 4       p^ p\        V R4      ;_uu_ 4       p\        WAR7       F&  pV\	        V4      ,          pVP                  V4       K(  	  RRR4       W#3#   + '       g   i     Y#3# ; i)z5Return (hash, length) for path using hashlib.sha256()Úrb)rØ   N)ÚhashlibÚsha256ÚopenrÜ   r=   Úupdate)r1   r­  ÚhÚlengthr¶   Úblocks   &&    r+   Ú	hash_filer·  g  sn   € ô 	�ŠÓ€AØ€FÜ	ˆd�D×	Ô	˜QÜ  ×3ˆEØ”c˜%“jÕ ˆFØ�H‰H�UŽOñ 4÷ 
ð ˆ9Ð÷	 
Ö	ð ˆ9Ðús   ¬7A.Á.B 	c               ó    € V ^8„  d   QhRRRR/# )r&   ÚiterablezIterable[Any]r'   zIterator[tuple[Any, Any]]r)   )r*   s   "r+   r,   r,   s  s   € ÷ +ñ +�}ð +Ð)Bñ +r-   c                ó.   € \        V 4      p \        W 4      # )zR
Return paired elements.

For example:
    s -> (s0, s1), (s2, s3), (s4, s5), ...
)Úiterr   )r¹  s   &r+   Úpairwiser¼  s  s   € ô �H‹~€HÜ�xÓ*Ð*r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   ÚpredzCallable[[T], bool]r¹  zIterable[T]r'   ztuple[Iterable[T], Iterable[T]]r)   )r*   s   "r+   r,   r,   ~  s$   € ÷ 
3ñ 
3Ø
ð
3Ø)4ð
3à$ñ
3r-   c                óH   € \        V4      w  r#\        W4      \        W4      3# )z‘
Use a predicate to partition entries into false entries and true entries,
like

    partition(is_odd, range(10)) --> 0 2 4 6 8   and  1 3 5 7 9
)r   r   Úfilter)r¾  r¹  Út1Út2s   &&  r+   Ú	partitionrÃ  ~  s$   € ô �‹]�F€BÜ�tÓ ¤&¨Ó"2Ð2Ð2r-   c                  óâ   a € ] tR tRtRR V 3R llltRR V 3R llltRR V 3R llltRR V 3R	 llltRR
 V 3R llltRR V 3R lllt	RR V 3R lllt
RR V 3R llltRR V 3R llltRtV ;t# )r"   i‹  c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r&   Úconfig_holderr   Ú
source_dirr(   Úbuild_backendÚbackend_pathú
str | NoneÚrunnerzCallable[..., None] | NoneÚpython_executabler)   )r*   s   "r+   r,   Ú-ConfiguredBuildBackendHookCaller.__annotate__Œ  sF   € ÷ +ñ +àð+ð ð+ð ð	+ð
 !ð+ð +ð+ð &ñ+r-   c                	ó6   <€ \         SV `  W#WEV4       Wn        R # rj   )ÚsuperÚ__init__rÆ  )r  rÆ  rÇ  rÈ  rÉ  rË  rÌ  Ú	__class__s   &&&&&&&€r+   rÐ  Ú)ConfiguredBuildBackendHookCaller.__init__Œ  s"   ø€ ô 	‰ÑØ |Ð=Nô	
ð +Ör-   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r&   Úwheel_directoryr(   Úconfig_settingsúMapping[str, Any] | NoneÚmetadata_directoryrÊ  r'   r)   )r*   s   "r+   r,   rÍ  š  ó2   € ÷ 	
ñ 	
àð	
ð 2ð	
ð 'ð		
ð
 
ñ	
r-   c                	óR   <€ V P                   P                  p\        SV `  WVR 7      # ©)rÖ  rØ  )rÆ  rÖ  rÏ  Úbuild_wheel©r  rÕ  rÖ  rØ  ÚcsrÑ  s   &&&& €r+   rÜ  Ú,ConfiguredBuildBackendHookCaller.build_wheelš  s3   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ"ØÐDVð #ó 
ð 	
r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úsdist_directoryr(   rÖ  r×  r'   r)   )r*   s   "r+   r,   rÍ  ¥  s-   € ÷ Hñ HàðHð 2ðHð 
ñ	Hr-   c                	óP   <€ V P                   P                  p\        SV `  WR 7      # ©)rÖ  )rÆ  rÖ  rÏ  Úbuild_sdist)r  rá  rÖ  rÞ  rÑ  s   &&& €r+   rä  Ú,ConfiguredBuildBackendHookCaller.build_sdist¥  s)   ø€ ð
 ×Ñ×/Ñ/ˆÜ‰wÑ" ?Ð"ÓGÐGr-   c               ó(   € V ^8„  d   QhRRRRRRRR/# rÔ  r)   )r*   s   "r+   r,   rÍ  ­  rÙ  r-   c                	óR   <€ V P                   P                  p\        SV `  WVR 7      # rÛ  )rÆ  rÖ  rÏ  Úbuild_editablerÝ  s   &&&& €r+   rè  Ú/ConfiguredBuildBackendHookCaller.build_editable­  s3   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ%ØÐDVð &ó 
ð 	
r-   c               ó    € V ^8„  d   QhRRRR/# ©r&   rÖ  r×  r'   zSequence[str]r)   )r*   s   "r+   r,   rÍ  ¸  ó    € ÷ Hñ HØ7ðHà	ñHr-   c                	óP   <€ V P                   P                  p\        SV `  VR 7      # rã  )rÆ  rÖ  rÏ  Úget_requires_for_build_wheel©r  rÖ  rÞ  rÑ  s   && €r+   rî  Ú=ConfiguredBuildBackendHookCaller.get_requires_for_build_wheel¸  ó)   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ3ÀBÐ3ÓGÐGr-   c               ó    € V ^8„  d   QhRRRR/# rë  r)   )r*   s   "r+   r,   rÍ  ¾  rì  r-   c                	óP   <€ V P                   P                  p\        SV `  VR 7      # rã  )rÆ  rÖ  rÏ  Úget_requires_for_build_sdistrï  s   && €r+   rô  Ú=ConfiguredBuildBackendHookCaller.get_requires_for_build_sdist¾  rñ  r-   c               ó    € V ^8„  d   QhRRRR/# rë  r)   )r*   s   "r+   r,   rÍ  Ä  s    € ÷ Kñ KØ7ðKà	ñKr-   c                	óP   <€ V P                   P                  p\        SV `  VR 7      # rã  )rÆ  rÖ  rÏ  Úget_requires_for_build_editablerï  s   && €r+   rø  Ú@ConfiguredBuildBackendHookCaller.get_requires_for_build_editableÄ  s)   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ6ÀrÐ6ÓJÐJr-   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r&   rØ  r(   rÖ  r×  Ú_allow_fallbackrZ   r'   r)   )r*   s   "r+   r,   rÍ  Ê  s2   € ÷ 
ñ 
àð
ð 2ð
ð ð	
ð
 
ñ
r-   c                	óT   <€ V P                   P                  p\        SV `  VVVR 7      # ©)rØ  rÖ  rû  )rÆ  rÖ  rÏ  Ú prepare_metadata_for_build_wheel©r  rØ  rÖ  rû  rÞ  rÑ  s   &&&& €r+   rþ  ÚAConfiguredBuildBackendHookCaller.prepare_metadata_for_build_wheelÊ  s6   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ7Ø1ØØ+ð 8ó 
ð 	
r-   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r&   rØ  r(   rÖ  r×  rû  rZ   r'   rÊ  r)   )r*   s   "r+   r,   rÍ  ×  s2   € ÷ 
ñ 
àð
ð 2ð
ð ð	
ð
 
ñ
r-   c                	óT   <€ V P                   P                  p\        SV `  VVVR 7      # rý  )rÆ  rÖ  rÏ  Ú#prepare_metadata_for_build_editablerÿ  s   &&&& €r+   r  ÚDConfiguredBuildBackendHookCaller.prepare_metadata_for_build_editable×  s6   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ:Ø1ØØ+ð ;ó 
ð 	
r-   )rÆ  )NNNrD  rj   )NT)r  r  r  r  rÐ  rÜ  rä  rè  rî  rô  rø  rþ  r  r  Ú__classcell__)rÑ  s   @r+   r"   r"   ‹  sj   ø† ÷+ò +÷	
ò 	
÷Hò H÷	
ò 	
÷Hò H÷Hò H÷Kò K÷
ò 
÷
÷ 
ð 
r-   c               ó   € V ^8„  d   QhRR/# rŸ  r)   )r*   s   "r+   r,   r,   å  s   € ÷ ñ ˜Tñ r-   c                 ó  € \        4       '       d   R# \        \        R4      '       g   R# \        P                  R8X  g   \        P                  R8X  d   R# \        P
                  ! 4       ^ 8w  d   R# \        P                  R4       R# )zìOutput a warning for sudo users on Unix.

In a virtual environment, sudo pip still writes to virtualenv.
On Windows, users may run pip as Administrator without issues.
This warning only applies to Unix root users outside of virtualenv.
NÚgetuidÚwin32Úcygwinab  Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.)r!   Úhasattrr0   rM   Úplatformr  rý   Úwarningr)   r-   r+   Úwarn_if_run_as_rootr  å  s^   € ô  ×!Ò!ÙÜ”2�x× Ò Ùô ‡|�|�wÔ¤#§,¡,°(Ô":Ùä	‡y‚yƒ{�aÔÙä
‡N�Nð	)ör-   )rd   r�   rˆ   r“   rè   r¿   rÕ   rã   ró   rT   rH   rm  r¦  r"   é   )FN)z.bak)T)Úhttps)r  )~Ú
__future__r   rD   r©   r°  Úloggingr0   rç   rc   rs   rM   r¢  Úurllib.parser9  Úcollections.abcr   r   r   r   r   Údataclassesr	   Ú	functoolsr
   Úior   Ú	itertoolsr   r   r   Úpathlibr   Útypesr   r   Útypingr   r   r   r   r   r   r   Ú"pip._vendor.packaging.requirementsr   Úpip._vendor.pyproject_hooksr   rK   r   Úpip._internal.exceptionsr   r   Úpip._internal.locationsr   Úpip._internal.utils.compatr   Úpip._internal.utils.retryr    Úpip._internal.utils.virtualenvr!   Ú__all__Ú	getLoggerr  rý   r#   rÅ   r"  rx   ÚExcInfor­   r<   r(   rB  rq   ÚOnErrÚFILE_CHUNK_SIZEr7   r>   rH   rT   rd   r_   r`   ra   r�   rˆ   r•   r›   r“   r¦   rª   rº   r¿   rÎ   rÕ   rÜ   rã   rè   ró   rø   rÿ   r  r'  r/  r6  r?  rJ  rP  r\  r`  rc  rh  rm  rp  ru  rx  r�  r“  r�  r¦  r«  r·  r¼  rÃ  r"   r  r)   r-   r+   Ú<module>r(     sT  ðÝ "ã Û Û Û Û 	Û Û Û Û 
Û Û ß LÕ LÝ !Ý Ý ß 3Ñ 3Ý ß -÷÷ ñ õ ;Ý >å ß OÝ ;Ý .Ý +Ý Cò€ð" 
×	Ò	˜8Ó	$€áˆCƒL€Ø
��]Õ# ]°MÐAÕ
B€Ø�C˜˜c�MÕ"€Ø�C˜˜x¨�}¨h°s­mÐ;Õ<Ð<Õ=€Ø�,  mÐ4°cÐ9Õ:€Ø�,  gÐ.°Ð3Õ4€à€õXõ0õ&õ	ñ ˜ Ô$ö
,ó %ð
,õ	õ
ð& ð
 $÷& õR'÷õ!õ
õõõ$õ9õ %õõð$ !0÷÷
"õõõ"7õô)�Hô )õ"#õ	÷"õ(õõ:(õ(3õ(*õ$õ	*õ/õ2õ
Dñ �$Ô÷ð ó ðõ0.õ.õ

õ4;õ8÷
	õ+õ
3ôW
Ð'=ô W
÷tr-   