+
    ®¾j^  ã                   ó„  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHtH	t	H
t
HtHtHtHtHt ^ RIHtHt ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHt ^ R
IH t H!t!H"t"H#t# ^ RI$H%t%H&t& ^ RI'H(t( ]! ])4      t*R R lt+R R lt,],R R l4       t-R R lt.R R lt/R R lt0 ! R R4      t1 ! R R4      t2 ! R R4      t3R# )é    N)Úcache_from_source)	ÚAnyÚCallableÚDictÚ	GeneratorÚIterableÚListÚOptionalÚSetÚTuple)ÚLegacyDistutilsInstallÚUninstallMissingRecord)Úget_bin_prefixÚget_bin_user©ÚBaseDistribution)ÚWINDOWS)Úegg_link_path_from_location)Ú	getLoggerÚ
indent_log)ÚaskÚnormalize_pathÚrenamesÚrmtree)ÚAdjacentTempDirectoryÚTempDirectory)Úrunning_under_virtualenvc                ód   € V ^8„  d   QhR\         R\         R\        R\        \         RR3,          /# )é   Úbin_dirÚscript_nameÚis_guiÚreturnN)ÚstrÚboolr   )Úformats   "Ú^/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/pip/_internal/req/req_uninstall.pyÚ__annotate__r(      s7   € ÷ &ñ &Üð&Ü"ð&Ü,0ð&äŒs�D˜$ˆÕñ&ó    c              #  ó¼   "  € \         P                  P                  W4      pVx € \        '       g   R# V R2x € V R2x € V'       d
   V R2x € R# V R2x € R# 5i)z…Create the fully qualified name of the files created by
{console,gui}_scripts for the given ``dist``.
Returns the list of file names
Nz.exez.exe.manifestz-script.pywz
-script.py)ÚosÚpathÚjoinr   )r    r!   r"   Úexe_names   &&& r'   Ú_script_namesr/      s]   é € ô �w‰w�|‰|˜GÓ1€HØ
‚Nß‹7ÙØˆJ�dÐ
ÒØˆJ�mÐ
$Ò$ßØ�
˜+Ð&Ô&à�
˜*Ð%Ô%ùs   ‚AAÁ
Ac          	      óœ   € V ^8„  d   QhR\         R\        \        RR3,          3,          R\         R\        \        RR3,          3,          /# )r   Úfn.Nr#   )r   r   r   )r&   s   "r'   r(   r(   (   sF   € ÷ ñ Ü�”i¤ T¨4 Õ0Ð0Õ1ðäˆc”9œS $¨˜_Õ-Ð-Õ.ñr)   c                 óL   a € \         P                  ! S 4      R  V 3R ll4       pV# )c          	      óX   € V ^8„  d   QhR\         R\         R\        \         RR3,          /# )r   ÚargsÚkwr#   N)r   r   )r&   s   "r'   r(   Ú_unique.<locals>.__annotate__,   s,   € ÷ ñ ”cð ¤ð ¬´3¸¸d°?Õ)Cñ r)   c               ?   ó|   <"  € \        4       pS! V / VB  F   pW29  g   K  VP                  V4       Vx € K"  	  R # 5i©N)ÚsetÚadd)r4   r5   ÚseenÚitemr1   s   *,  €r'   ÚuniqueÚ_unique.<locals>.unique+   s5   øé € ä›ˆÙ˜�O ”OˆDØÖØ—‘˜”Ø”
ó $ùs   ƒ<¡<)Ú	functoolsÚwraps)r1   r=   s   f r'   Ú_uniquerA   (   s'   ø€ ô ‡_‚_�RÓ÷ó ðð €Mr)   c                óL   € V ^8„  d   QhR\         R\        \        RR3,          /# ©r   Údistr#   N)r   r   r$   )r&   s   "r'   r(   r(   7   s&   € ÷ ñ Ô/ð ´I¼cÀ4È¸oÕ4Nñ r)   c              #  óú  "  € V P                   pVf   Q R4       hV P                  4       pVf   \        V R7      hV F¹  p\        P                  P                  W4      pVx € VP                  R4      '       g   K?  \        P                  P                  V4      w  rVVRR p\        P                  P                  WWR,           4      pVx € \        P                  P                  WWR,           4      pVx € K»  	  R# 5i)a§  
Yield all the uninstallation paths for dist based on RECORD-without-.py[co]

Yield paths to all the files in RECORD. For each .py file in RECORD, add
the .pyc and .pyo in the same directory.

UninstallPathSet.add() takes care of the __pycache__ .py[co].

If RECORD is not found, raises an error,
with possible information from the INSTALLER file.

https://packaging.python.org/specifications/recording-installed-packages/
Nznot installed©Údistributionú.pyú.pycú.pyoéýÿÿÿ)ÚlocationÚiter_declared_entriesr   r+   r,   r-   ÚendswithÚsplit)rD   rL   ÚentriesÚentryr,   Údnr1   Úbases   &       r'   Úuninstallation_pathsrT   6   sÄ   é € ð �}‰}€HØÒÐ0 Ó0Ðà×(Ñ(Ó*€GØ‚Ü$°$Ô7Ð7ãˆÜ�w‰w�|‰|˜HÓ,ˆØŠ
Ø�=‰=˜×ÔÜ—W‘W—]‘] 4Ó(‰FˆBØ�c�r�7ˆDÜ—7‘7—<‘< ¨6¥MÓ2ˆDØŠJÜ—7‘7—<‘< ¨6¥MÓ2ˆDØŒJó ùs   ‚A4C;Á;B C;c                ó\   € V ^8„  d   QhR\         \        ,          R\        \        ,          /# ©r   Úpathsr#   ©r   r$   r   )r&   s   "r'   r(   r(   X   s"   € ÷ ñ ”8œC•=ð ¤S¬¥Xñ r)   c                ó0  aa€ \         P                  P                  o\        4       p\	        V \
        R7       FZ  o\        ;QJ d     VV3R lV 4       F  '       g   K   RM	  RM! VV3R lV 4       4      pV'       d   KI  VP                  S4       K\  	  V# )z¼Compact a path set to contain the minimal number of paths
necessary to contain all paths in the set. If /a/path/ and
/a/path/to/a/file.txt are both in the set, leave only the
shorter path.©Úkeyc              3   óÚ   <"  € T F`  pSP                  VP                  R 4      4      ;'       d4    S\        VP                  R 4      P                  S4      4      ,          S8H  x € Kb  	  R# 5i)Ú*N)Ú
startswithÚrstripÚlen)Ú.0Ú	shortpathr,   Úseps   & €€r'   Ú	<genexpr>Úcompact.<locals>.<genexpr>a   sh   øé € ð 
ñ )�	ð �O‰O˜I×,Ñ,¨SÓ1Ó2÷ Dð DØ”S˜×)Ñ)¨#Ó.×5Ñ5°cÓ:Ó;Õ<ÀÑCôDã(ùs
   ƒ+A+¯<A+TF)r+   r,   rc   r9   Úsortedr`   Úanyr:   )rW   Úshort_pathsÚshould_skipr,   rc   s   &  @@r'   Úcompactrj   X   su   ù€ ô �'‰'�+‰+€CÜ›E€KÜ�u¤#×&ˆß“cõ 
ñ )ó
—c—c’cõ 
ñ )ó
ó 
ˆ÷
 ‰{Ø�O‰O˜DÖ!ñ 'ð Ðr)   c                ó\   € V ^8„  d   QhR\         \        ,          R\        \        ,          /# rV   rX   )r&   s   "r'   r(   r(   k   s&   € ÷ Añ Aœx¬�}ð A´´Sµñ Ar)   c                ó¢  a
aa€ V  Uu/ uF#  p\         P                  P                  V4      VbK%  	  pp\        V4      p\	        VP                  4        Uu0 uF)  p\         P                  P                  V4      ^ ,          kK+  	  up\        R7      p\        4       pR R loV Fú  o\        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   KE  \        4       p\        4       p\         P                  ! S4       F@  w  o
r‰VP                  V
VV3R lV 4       4       VP                  V
VV3R lV	 4       4       KB  	  Wc,
          '       d   KÃ  VP                  V4       VP                  S\         P                  ,           4       Kü  	  \        \        VP                  V4      4      V,          # u upi u upi )	zŸReturns a set containing the paths that need to be renamed.

This set may include directories when the original sequence of paths
included every file on disk.
rZ   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Úar#   ©r$   )r&   s   "r'   r(   Ú)compress_for_rename.<locals>.__annotate__v   s   € ÷ 2ñ 2”cð 2œcñ 2r)   c                  óx   € \         P                  P                  \         P                  P                  ! V !  4      # r8   )r+   r,   Únormcaser-   )rn   s   *r'   Ú	norm_joinÚ&compress_for_rename.<locals>.norm_joinv   s$   € Ü�w‰w×Ñ¤§¡§¢¨aÑ 0Ó1Ð1r)   c              3   ó€   <"  € T F3  p\         P                  P                  S4      P                  V4      x € K5  	  R # 5ir8   )r+   r,   rr   r^   )ra   ÚwÚroots   & €r'   rd   Ú&compress_for_rename.<locals>.<genexpr>z   s.   øé € ÐG¹Y¸Œr�w‰w×Ñ Ó%×0Ñ0°×3Ð3»Yùs   ƒ;>TFc              3   ó8   <"  € T F  pS! SSV4      x € K  	  R # 5ir8   © )ra   ÚdÚdirnamers   rw   s   & €€€r'   rd   rx   �   s   øé € ÐLÁG¸q™y¨¨w¸×:Ð:ÃGùó   ƒc              3   ó8   <"  € T F  pS! SSV4      x € K  	  R # 5ir8   rz   )ra   Úfr|   rs   rw   s   & €€€r'   rd   rx   ‚   s   øé € ÐHÁ%¸Q™Y t¨W°a×8Ð8Ã%ùr}   )r+   r,   rr   r9   rf   ÚvaluesrO   r`   rg   ÚwalkÚupdateÚdifference_updater:   rc   ÚmapÚ__getitem__)rW   ÚpÚcase_mapÚ	remainingÚ	uncheckedÚ	wildcardsÚ	all_filesÚall_subdirsÚsubdirsÚfilesr|   rs   rw   s   &         @@@r'   Úcompress_for_renamer�   k   sL  ú€ ñ 16Ó6±¨1”—‘× Ñ  Ó# QÒ&±€HÐ6Ü�H“€IÜ°X·_±_Ô5FÓGÑ5F°œŸ™Ÿ™ aÓ(¨×+Ð+Ñ5FÑGÌSÔQ€IÜ›%€Iõ2ó ˆß‹3ÔG¹YÓG�3�3Š3ÔG¹YÓG×GÒGáä!›eˆ	Ü #£ˆÜ')§w¢w¨t¦}Ñ#ˆG�WØ×ÑÖLÁGÓLÔLØ×ÑÖHÁ%ÓHÖHñ (5ð ×%Ö%Ø×'Ñ'¨	Ô2Ø�M‰M˜$¤§¡�-Ö(ñ ô" Œs�8×'Ñ'¨Ó3Ó4°yÕ@Ð@ùò3 7ùâGs   ˆ)GÁ/Gc                ó”   € V ^8„  d   QhR\         \        ,          R\        \        \        ,          \        \        ,          3,          /# rV   )r   r$   r   r   )r&   s   "r'   r(   r(   �   s0   € ÷ ."ñ ."¤x´¥}ð ."¼¼sÄ3½xÌÌSÍÐ?QÕ9Rñ ."r)   c                óÎ  € \        V 4      p\        4       p\        4       p\        4       pV Fy  pVP                  R4      '       d   K  VP                  R4      '       g   RV9   d/   VP                  \        P                  P                  V4      4       VP                  V4       K{  	  \        \        \        P                  P                  V4      4      p\        V4      pV FÂ  p\        P                  ! V4       F¥  w  r‰p
V
 F™  pVP                  R4      '       d   K  \        P                  P                  W‹4      p\        P                  P                  V4      '       g   Kb  \        P                  P                  V4      V9  g   Kˆ  VP                  V4       K›  	  K§  	  KÄ  	  YC Uu0 uF#  p\        P                  P                  VR4      kK%  	  up,          pW3# u upi )a[  Returns a tuple of 2 sets of which paths to display to user

The first set contains paths that would be deleted. Files of a package
are not added and the top-level directory of the package has a '*' added
at the end - to signify that all it's contents are removed.

The second set contains files that would have been skipped in the above
folders.
rI   z__init__.pyz
.dist-infor]   )r9   rN   r:   r+   r,   r|   r„   rr   rj   r�   r-   Úisfile)rW   Úwill_removeÚ	will_skipÚfoldersrŽ   r,   Ú_normcased_filesÚfolderÚdirpathÚ_ÚdirfilesÚfnameÚfile_s   &            r'   Úcompress_for_output_listingr�   �   se  € ô �e“*€KÜ“€Iô ‹e€GÜ‹E€EÛˆØ�=‰=˜× Ò ÙØ�=‰=˜×'Ò'¨<¸4Ô+?Ø�K‰KœŸ™Ÿ™¨Ó-Ô.Ø�	‰	�$Žñ ô œ3œrŸw™w×/Ñ/°Ó7Ó8Ðä�gÓ€Gó ˆÜ$&§G¢G¨F¦OÑ ˆG˜Û!�Ø—>‘> &×)Ò)ÙäŸ™Ÿ™ WÓ4�ä—G‘G—N‘N 5×)Ô)ÜŸ™×(Ñ(¨Ó/Ð7GÖGð —M‘M %Ö(ó "ó %4ñ ð À7ÓKÁ7¸œ2Ÿ7™7Ÿ<™<¨°Ö4Á7ÑKÕK€KàÐ!Ð!ùò Ls   Æ-)G"c                   ó¬   a € ] tR t^¾t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
]V 3R lR l4       tRtV tR# )ÚStashedUninstallPathSetzSA set of file rename operations to stash files while
tentatively uninstalling them.c                ó   <€ V ^8„  d   QhRR/# ©r   r#   Nrz   )r&   Ú__classdict__s   "€r'   r(   Ú$StashedUninstallPathSet.__annotate__Â   s   ø€ ÷ 0ñ 0˜$ñ 0r)   c                ó"   € / V n         . V n        R # r8   )Ú
_save_dirsÚ_moves©Úselfs   &r'   Ú__init__Ú StashedUninstallPathSet.__init__Â   s   € ð 57ˆŒð .0ˆŽr)   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r   r,   r#   ro   )r&   r¢   s   "€r'   r(   r£   Ê   s   ø€ ÷ ñ ©ð ±ñ r)   c                óÂ   €  \        V4      pW P                  \        P
                  P                  V4      &   VP
                  #   \         d    \        RR7      p LPi ; i)z�Stashes a directory.

Directories are stashed adjacent to their original location if
possible, or else moved/copied into the user's temp dir.Ú	uninstall©Úkind)r   ÚOSErrorr   r¥   r+   r,   rr   )r¨   r,   Úsave_dirs   && r'   Ú_get_directory_stashÚ,StashedUninstallPathSet._get_directory_stashÊ   sS   € ð	7Ü&;¸DÓ&AˆHð 3;�‰œŸ™×(Ñ(¨Ó.Ñ/à�}‰}Ðøô	 ô 	7Ü$¨+Ô6ŠHð	7ús   ‚A ÁAÁAc                ó&   <€ V ^8„  d   QhRS[ RS[ /# r¬   ro   )r&   r¢   s   "€r'   r(   r£   Ø   s   ø€ ÷ ñ ¡Cð ©Cñ r)   c                óŒ  € \         P                  P                  V4      p\         P                  P                  V4      Rr2RpW#8w  d    V P                  V,          pM9\         P                  P                  V4      p\        RR7      pW@P                  V&   \         P                  P                  W4      pV'       dJ   V\         P                  P                  8w  d+   \         P                  P                  VP                  V4      # VP                  #   \
         d     Mi ; i\         P                  P                  T4      Tr2EK  )zrStashes a file.

If no root has been provided, one will be created for the directory
in the user's temp directory.Nr®   r¯   )
r+   r,   rr   r|   r¥   ÚKeyErrorr   ÚrelpathÚcurdirr-   )r¨   r,   ÚheadÚold_headr²   r¸   s   &&    r'   Ú_get_file_stashÚ'StashedUninstallPathSet._get_file_stashØ   sæ   € ô
 �w‰w×Ñ Ó%ˆÜŸ™Ÿ™¨Ó.°ˆhØˆàÔðØŸ?™?¨4Õ0�Øô —7‘7—?‘? 4Ó(ˆDÜ$¨+Ô6ˆHØ$,�O‰O˜DÑ!ä—'‘'—/‘/ $Ó-ˆß�w¤"§'¡'§.¡.Ô0Ü—7‘7—<‘< §¡¨wÓ7Ð7Ø�}‰}Ðøô ô ÙðúäŸW™WŸ_™_¨TÓ2°D“(s   Á	D ÄD ÄD c                ó&   <€ V ^8„  d   QhRS[ RS[ /# r¬   ro   )r&   r¢   s   "€r'   r(   r£   ó   s   ø€ ÷ ñ ™#ð ¡#ñ r)   c                óÆ  € \         P                  P                  V4      ;'       d%    \         P                  P                  V4      '       * pV'       d   V P	                  V4      pMV P                  V4      pV P                  P                  W34       V'       d<   \         P                  P                  V4      '       d   \         P                  ! V4       \        W4       V# )z}Stashes the directory or file and returns its new location.
Handle symlinks as files to avoid modifying the symlink targets.
)
r+   r,   ÚisdirÚislinkr³   r¼   r¦   ÚappendÚrmdirr   )r¨   r,   Úpath_is_dirÚnew_paths   &&  r'   ÚstashÚStashedUninstallPathSet.stashó   s–   € ô —g‘g—m‘m DÓ)×FÐF´"·'±'·.±.ÀÓ2FÔ.FˆßØ×0Ñ0°Ó6‰Hà×+Ñ+¨DÓ1ˆHà�‰×Ñ˜DÐ+Ô,ßœ2Ÿ7™7Ÿ=™=¨×2Ò2ô �HŠH�XÔÜ�ÔØˆr)   c                ó   <€ V ^8„  d   QhRR/# r¡   rz   )r&   r¢   s   "€r'   r(   r£     s   ø€ ÷ ñ ˜ñ r)   c                ó„   € V P                   P                  4        F  pVP                  4        K  	  . V n        / V n         R# )z0Commits the uninstall by removing stashed files.N)r¥   r€   Úcleanupr¦   )r¨   r²   s   & r'   ÚcommitÚStashedUninstallPathSet.commit  s3   € àŸ™×.Ñ.Ö0ˆHØ×ÑÖñ 1àˆŒØˆŽr)   c                ó   <€ V ^8„  d   QhRR/# r¡   rz   )r&   r¢   s   "€r'   r(   r£     s   ø€ ÷ ñ ˜$ñ r)   c                ó˜  € V P                    F  p\        P                  ! R.VO5!   K  	  V P                    F¸  w  r# \        P                  RW#4       \        P
                  P                  V4      '       g&   \        P
                  P                  V4      '       d   \        P                  ! V4       M0\        P
                  P                  V4      '       d   \        V4       \        W24       Kº  	  V P                  4        R#   \         d9   p\        P                  RT4       \        P                  RT4        Rp?EK  Rp?ii ; i)z2Undoes the uninstall by moving stashed files back.zMoving to %s
 from %szReplacing %s from %szFailed to restore %szException: %sN)r¦   ÚloggerÚinfoÚdebugr+   r,   r’   rÁ   ÚunlinkrÀ   r   r   r±   ÚerrorrË   )r¨   r†   rÅ   r,   Úexs   &    r'   ÚrollbackÚ StashedUninstallPathSet.rollback  sÙ   € à—”ˆAÜ�KŠKÐ0Ð5°1Ö5ñ ð #Ÿkœk‰NˆHð	2Ü—‘Ð3°XÔDÜ—7‘7—>‘> (×+Ò+¬r¯w©w¯~©~¸h×/GÒ/GÜ—I’I˜hÕ'Ü—W‘W—]‘] 8×,Ò,Ü˜8Ô$Ü˜Ö'ñ *ð 	�‰Žøô	 ô 2Ü—‘Ð3°XÔ>Ü—‘˜_¨b×1Ó1ûð2ús$   ¾ADÂ;DÃDÄE	Ä,EÅE	c                ó    <€ V ^8„  d   QhRS[ /# ©r   r#   ©r%   )r&   r¢   s   "€r'   r(   r£   #  s   ø€ ÷ !ñ !™dñ !r)   c                ó,   € \        V P                  4      # r8   )r%   r¦   r§   s   &r'   Úcan_rollbackÚ$StashedUninstallPathSet.can_rollback"  s   € ä�D—K‘KÓ Ð r)   )r¦   r¥   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r©   r³   r¼   rÆ   rË   rÕ   ÚpropertyrÛ   Ú__static_attributes__Ú__classdictcell__©r¢   s   @r'   rŸ   rŸ   ¾   sZ   ø‡ € ñ&÷0ð 0÷ð ÷ð ÷6ð ÷*ð ÷ð ð& ÷!ó ö!r)   rŸ   c                   óÔ   a € ] tR tRt o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 ltRV 3R lR llt	V 3R lR lt
V 3R lR ltV 3R lR lt]V 3R lR l4       tRtV tR# )ÚUninstallPathSeti'  zIA set of file paths to be removed in the uninstallation of a
requirement.c                ó$   <€ V ^8„  d   QhRS[ RR/# rC   r   )r&   r¢   s   "€r'   r(   ÚUninstallPathSet.__annotate__+  s    ø€ ÷ 	Jñ 	JÑ-ð 	J°$ñ 	Jr)   c                ó¸   € \        4       V n        \        4       V n        / V n        Wn        \        4       V n        \        P                  ! \        4      V n
        R # r8   )r9   Ú_pathsÚ_refuseÚ_pthÚ_distrŸ   Ú_moved_pathsr?   Ú	lru_cacher   Ú_normalize_path_cached)r¨   rD   s   &&r'   r©   ÚUninstallPathSet.__init__+  s@   € Ü #£ˆŒÜ!$£ˆŒØ46ˆŒ	ØŒ
Ü3Ó5ˆÔô '0×&9Ò&9¼.Ó&IˆÖ#r)   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r¬   )r$   r%   )r&   r¢   s   "€r'   r(   ré   6  s   ø€ ÷ 	Hñ 	H™sð 	H¡tñ 	Hr)   c                ó‚   € \        4       '       g   R# VP                  V P                  \        P                  4      4      # )z[
Return True if the given path is one we are permitted to
remove/modify, False otherwise.

T)r   r^   rñ   ÚsysÚprefix)r¨   r,   s   &&r'   Ú
_permittedÚUninstallPathSet._permitted6  s.   € ô (×)Ò)ÙØ�‰˜t×:Ñ:¼3¿:¹:ÓFÓGÐGr)   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r,   r#   Nro   )r&   r¢   s   "€r'   r(   ré   A  s   ø€ ÷ .ñ .™ð . ñ .r)   c                óX  € \         P                  P                  V4      w  r#\         P                  P                  V P	                  V4      \         P                  P                  V4      4      p\         P                  P                  V4      '       g   R # V P                  V4      '       d   V P                  P                  V4       MV P                  P                  V4       \         P                  P                  V4      ^,          R8X  d   V P                  \        V4      4       R # R # )NrH   )r+   r,   rO   r-   rñ   rr   Úexistsr÷   rë   r:   rì   Úsplitextr   )r¨   r,   rº   Útails   &&  r'   r:   ÚUninstallPathSet.addA  sÃ   € Ü—W‘W—]‘] 4Ó(‰
ˆô �w‰w�|‰|˜D×7Ñ7¸Ó=¼r¿w¹w×?OÑ?OÐPTÓ?UÓVˆä�w‰w�~‰~˜d×#Ò#ÙØ�?‰?˜4× Ò Ø�K‰K�O‰O˜DÕ!à�L‰L×Ñ˜TÔ"ô �7‰7×Ñ˜DÓ! !Õ$¨Ô-Ø�H‰HÔ& tÓ,Ö-ñ .r)   c                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )r   Úpth_filerQ   r#   Nro   )r&   r¢   s   "€r'   r(   ré   T  s"   ø€ ÷ 'ñ '¡ð '©Cð '°Dñ 'r)   c                ó$  € V P                  V4      pV P                  V4      '       dM   WP                  9  d   \        V4      V P                  V&   V P                  V,          P	                  V4       R # V P
                  P	                  V4       R # r8   )rñ   r÷   rí   ÚUninstallPthEntriesr:   rì   )r¨   r   rQ   s   &&&r'   Úadd_pthÚUninstallPathSet.add_pthT  sg   € Ø×.Ñ.¨xÓ8ˆØ�?‰?˜8×$Ò$ØŸy™yÔ(Ü&9¸(Ó&C�—	‘	˜(Ñ#Ø�I‰I�hÕ×#Ñ# EÖ*à�L‰L×Ñ˜XÖ&r)   c                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )r   Úauto_confirmÚverboser#   NrÙ   )r&   r¢   s   "€r'   r(   ré   ]  s'   ø€ ÷ Nñ N¡4ð N¹$ð NÈ4ñ Nr)   c                óü  € V P                   '       g-   \        P                  RV P                  P                  4       R# V P                  P                   RV P                  P
                   2p\        P                  RV4       \        4       ;_uu_ 4        V'       g   V P                  V4      '       d«   V P                  p\        V P                   4      p\        \        V4      4       F*  pVP                  V4       \        P                  RV4       K,  	  V P                  P                  4        F  pVP!                  4        K  	  \        P                  RV4       RRR4       R#   + '       g   i     R# ; i)zTRemove paths in ``self._paths`` with confirmation (unless
``auto_confirm`` is True).z7Can't uninstall '%s'. No files were found to uninstall.NÚ-zUninstalling %s:zRemoving file or directory %szSuccessfully uninstalled %s)rë   rÏ   rÐ   rî   Úraw_nameÚraw_versionr   Ú_allowed_to_proceedrï   r�   rf   rj   rÆ   r  rí   r€   Úremove)r¨   r  r  Údist_name_versionÚmovedÚ
for_renamer,   Úpths   &&&     r'   r  ÚUninstallPathSet.remove]  s  € ð �{�{ˆ{Ü�K‰KØIØ—
‘
×#Ñ#ôñ à#Ÿz™z×2Ñ2Ð3°1°T·Z±Z×5KÑ5KÐ4LÐMÐÜ�‰Ð&Ð(9Ô:ä�\�\ß˜t×7Ñ7¸×@Ò@Ø×)Ñ)�ä0°·±Ó=�
ä"¤7¨:Ó#6Ö7�DØ—K‘K Ô%Ü—N‘NÐ#BÀDÖIñ 8ð  Ÿ9™9×+Ñ+Ö-�CØ—J‘J–Lñ .ô —‘Ð9Ð;LÔM÷ �\�\Š\ús   ÂE*Â6B*E*Å*E;	c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   r  r#   rÙ   )r&   r¢   s   "€r'   r(   ré   z  s   ø€ ÷ =ñ =©4ð =±Dñ =r)   c                ó<  € R R lpV'       g   \        V P                  4      w  r4M\        V P                  4      p\        4       pV! RV4       V! RV4       V! RV P                  4       V'       d   V! R\	        V P                  4      4       \        RR	4      R8g  # )
z@Display which files would be deleted and prompt for confirmationc                óJ   € V ^8„  d   QhR\         R\        \         ,          RR/# )r   ÚmsgrW   r#   N)r$   r   )r&   s   "r'   r(   Ú:UninstallPathSet._allowed_to_proceed.<locals>.__annotate__}  s%   € ÷ 	&ñ 	&œ#ð 	&¤h¬s¥mð 	&¸ñ 	&r)   c                 ó  € V'       g   R # \         P                  V 4       \        4       ;_uu_ 4        \        \	        V4      4       F  p\         P                  V4       K  	  R R R 4       R #   + '       g   i     R # ; ir8   )rÏ   rÐ   r   rf   rj   )r  rW   r,   s   && r'   Ú_displayÚ6UninstallPathSet._allowed_to_proceed.<locals>._display}  sF   € ßÙä�K‰K˜ÔÜ—•Ü"¤7¨5£>Ö2�DÜ—K‘K Ö%ñ 3÷ ——’ús   ²1A-Á-A>	zWould remove:z+Would not remove (might be manually added):z%Would not remove (outside of prefix):zWill actually move:zProceed (Y/n)? Ún)Úyr  Ú )r�   rë   r9   rì   r�   r   )r¨   r  r  r“   r”   s   &&   r'   r  Ú$UninstallPathSet._allowed_to_proceedz  s…   € õ	&÷ Ü%@ÀÇÁÓ%MÑ"ˆK˜ô ˜dŸk™kÓ*ˆKÜ›ˆIá� +Ô.ÙÐ>À	ÔJÙÐ8¸$¿,¹,ÔGßÙÐ*Ô,?ÀÇÁÓ,LÔMäÐ$ nÓ5¸Ñ<Ð<r)   c                ó   <€ V ^8„  d   QhRR/# r¡   rz   )r&   r¢   s   "€r'   r(   ré   –  s   ø€ ÷ ñ ˜$ñ r)   c                ó€  € V P                   P                  '       g-   \        P                  RV P                  P
                  4       R# \        P                  RV P                  P
                  4       V P                   P                  4        V P                  P                  4        F  pVP                  4        K  	  R# )z1Rollback the changes previously made by remove().z'Can't roll back %s; was not uninstalledNzRolling back uninstall of %s)
rï   rÛ   rÏ   rÓ   rî   r
  rÐ   rÕ   rí   r€   )r¨   r  s   & r'   rÕ   ÚUninstallPathSet.rollback–  s€   € à× Ñ ×-×-Ð-Ü�L‰LØ9Ø—
‘
×#Ñ#ôñ Ü�‰Ð2°D·J±J×4GÑ4GÔHØ×Ñ×"Ñ"Ô$Ø—9‘9×#Ñ#Ö%ˆCØ�L‰LŽNó &r)   c                ó   <€ V ^8„  d   QhRR/# r¡   rz   )r&   r¢   s   "€r'   r(   ré   £  s   ø€ ÷ #ñ #˜ñ #r)   c                ó:   € V P                   P                  4        R# )z?Remove temporary save dir: rollback will no longer be possible.N)rï   rË   r§   s   &r'   rË   ÚUninstallPathSet.commit£  s   € à×Ñ× Ñ Ö"r)   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   rD   r#   rç   r   )r&   r¢   s   "€r'   r(   ré   ¨  s!   ø€ ÷ Zñ ZÑ-ð ZÐ2Dñ Zr)   c           
     óh  € VP                   pVP                  pVf)   \        P                  RVP                  4       V ! V4      # \        V4      pVP                  '       g9   \        P                  RVP                  V\        P                  4       V ! V4      # T\        P                  ! R4      \        P                  ! R4      0 Uu0 uF  pV'       g   K  VkK  	  up9   d*   \        P                  RVP                  V4       V ! V4      # V ! V4      p\        VP                  4      pVP                  ;'       dW    VR J;'       dK    \        P                  P!                  V4      ;'       d$    VP#                  VP$                   R24      '       * pV'       EdT   Ve   VP'                  V4       VP)                  4       p	V	e:   V	 F1  p
VP'                  \        P                  P+                  W*4      4       K3  	  EMVP-                  R4      '       dÙ    VP/                  R4      pVP1                  R	R
7      pVP/                  R4      P1                  4        Uu. uF  pV'       g   K  W\9  g   K  VNK  	  up Fo  p\        P                  P+                  W-4      pVP'                  V4       VP'                  V R24       VP'                  V R24       VP'                  V R24       Kq  	  EM#VP4                  '       d   \7        VR7      hVP8                  '       d�   VP'                  V4       \        P                  P;                  V4      ^,          p\        P                  P+                  \        P                  P=                  V4      R4      pVP?                  VRV,           4       EMdVP@                  '       d&   \C        V4       F  pVP'                  V4       K  	  EM-V'       Ed   \E        V4      ;_uu_ 4       p\        P                  PG                  VPI                  4       PK                  4       4      pVPM                  V4      pR R R 4       \        P                  PO                  XV4      '       g   Q RV RX RVP                   RV R2	4       hVP'                  V4       \        P                  P+                  \        P                  P=                  V4      R4      pVP?                  VV4       M\        PQ                  RVV4       VPR                  '       d   \U        4       pM
\W        4       p VPY                  4        Fr  pVP'                  \        P                  P+                  VV4      4       \Z        '       g   K@  VP'                  \        P                  P+                  VV R24      4       Kt  	  R R lpV! VV4       F  pVP'                  V4       K  	  V# u upi   \2         d    . p ELÅi ; iu upi   + '       g   i     ELÂ; i  \2        \\        3 d     Lni ; i)Nz-Not uninstalling %s since it is not installedz1Not uninstalling %s at %s, outside environment %sÚstdlibÚ
platstdlibz<Not uninstalling %s at %s, as it is in the standard library.z	.egg-infoztop_level.txtznamespace_packages.txtF)ÚkeependsrH   rI   rJ   rF   zeasy-install.pthz./z	Egg-link z (to z') does not match installed location of z (at Ú)z)Not sure how to uninstall: %s - Check: %sz.batc          	      óX   € V ^8„  d   QhR\         R\        R\        \        RR3,          /# )r   rD   r    r#   N)r   r$   r   )r&   s   "r'   r(   Ú0UninstallPathSet.from_dist.<locals>.__annotate__5  s6   € ÷ 	Nñ 	NÜ"ð	Näð	Nô ”s˜D $�Õ'ñ	Nr)   c              3   ó  "  € V P                  4        Fe  pVP                  R 8X  d!   \        WP                  R4       Rj  x€L
  K4  VP                  R8X  g   KG  \        WP                  R4       Rj  x€L
  Kg  	  R#  L= L5i)Úconsole_scriptsFNÚgui_scriptsT)Úiter_entry_pointsÚgroupr/   Úname)rD   r    Úentry_points   && r'   Úiter_scripts_to_removeÚ:UninstallPathSet.from_dist.<locals>.iter_scripts_to_remove5  si   é € ð  $×5Ñ5Ö7�Ø×$Ñ$Ð(9Ô9Ü,¨W×6FÑ6FÈÓN×NÒNØ ×&Ñ&¨-Ö7Ü,¨W×6FÑ6FÈÓM×MÒMó	  8áNáMùs)   ‚>BÁ A>ÁBÁBÁ3B Á4BÂ B)/rL   Úinfo_locationrÏ   rÐ   Úcanonical_namer   Úlocalrõ   rö   Ú	sysconfigÚget_pathr   r
  Ú"installed_with_setuptools_egg_infor+   r,   rû   rN   Úsetuptools_filenamer:   rM   r-   Úis_fileÚ	read_textÚ
splitlinesÚFileNotFoundErrorÚinstalled_by_distutilsr   Úinstalled_as_eggrO   r|   r  Úinstalled_with_dist_inforT   Úopenrr   ÚreadlineÚstriprñ   ÚsamefilerÑ   Úin_usersiter   r   Úiter_distutils_script_namesr   ÚNotADirectoryError)ÚclsrD   Údist_locationr6  Únormalized_dist_locationr†   Úpaths_to_removeÚdevelop_egg_linkÚsetuptools_flat_installationÚinstalled_filesÚinstalled_fileÚnamespace_packagesÚ
namespacesÚtop_level_pkgr,   Úeasy_install_eggÚeasy_install_pthÚfhÚlink_pointerÚnormalized_link_pointerr    Úscriptr4  Úss   &&                      r'   Ú	from_distÚUninstallPathSet.from_dist§  sd  € àŸ™ˆØ×*Ñ*ˆØÒ Ü�K‰KØ?Ø×#Ñ#ôñ �t“9Ðä#1°-Ó#@Ð Ø�z�zˆzÜ�K‰KØCØ×#Ñ#Ø(Ü—
‘
ô	ñ �t“9Ðà#ä×(Ò(¨Ó2´I×4FÒ4FÀ|Ó4TÑUó(
áU�Ü÷ ˆAÙUñ(
ô 
ô
 �K‰KØNØ×#Ñ#Ø(ôñ
 �t“9Ðá˜d›)ˆÜ6°t·}±}ÓEÐð ×3Ñ3÷ Sð SØ TÐ)÷Sð Sä—‘—‘˜}Ó-÷Sð Sð
 "×*Ñ*¨d×.FÑ.FÐ-GÀyÐ+QÓRÔRð 	%÷ (Ð'ØÒ(Ø×#Ñ# MÔ2Ø"×8Ñ8Ó:ˆOØÒ*Û&5�NØ#×'Ñ'¬¯©¯©°]Ó(SÖTó '6ð
 —‘˜o×.Ò.ðOØ)-¯©Ð8PÓ)QÐ&ð "4×!>Ñ!>ÈÐ!>Ó!N�Jð "Ÿ^™^¨OÓ<×GÑGÔIó&áI˜Üô àÑ0÷ �AÙIô&�Mô
 Ÿ7™7Ÿ<™<¨ÓE�DØ#×'Ñ'¨Ô-Ø#×'Ñ'¨4¨&°¨Ô5Ø#×'Ñ'¨4¨&°¨Ô6Ø#×'Ñ'¨4¨&°¨Ö6ñ&ùð ×(×(Ð(Ü(°dÔ;Ð;à×"×"Ð"ð ×ÑÐ 8Ô9Ü!Ÿw™wŸ}™}Ð-EÓFÀqÕIÐÜ!Ÿw™wŸ|™|Ü—‘—‘Ð 8Ó9Ø"ó Ðð ×#Ñ#Ð$4°dÐ=MÕ6MÖNà×*×*Ð*Ü,¨TÖ2�Ø×#Ñ# DÖ)ó 3÷ Ðô Ð&×'Ô'¨2Ü!Ÿw™w×/Ñ/°·±³×0CÑ0CÓ0EÓF�Ø*9×*PÑ*PØ ó+Ð'÷ (ô
 —7‘7×#Ñ#Ø'Ð)A÷ò ð ð Ð,Ð-¨U°<°.ð A)Ø)-¯©¨°u¸]¸OÈ1ðNóð ð ×ÑÐ 0Ô1Ü!Ÿw™wŸ|™|Ü—‘—‘Ð 0Ó1Ð3Eó Ðð ×#Ñ#Ð$4°mÕDô �L‰LØ;ØØôð ××ÐÜ"“n‰Gä$Ó&ˆGð	Ø×:Ñ:Ö<�Ø×#Ñ#¤B§G¡G§L¡L°¸&Ó$AÔBß•7Ø#×'Ñ'¬¯©¯©°WÀÀÈ¸oÓ(NÖOñ =õ	Nñ (¨¨gÖ6ˆAØ×Ñ Ö"ñ 7ð ÐùòM(
øôT )ô $Ø!#“Jð$üò&÷H (×'Ð'ûôF "Ô#5Ð6ô 	Ùð	úsV   Ã	
W+ÃW+ÈW0 É
XÉ+XÉ3XÐAX	Ô<AX Ö6X ×0XØ XØ	X	ØX1Ø0X1)rî   rï   rñ   rë   rí   rì   N)FF)rÝ   rÞ   rß   rà   rá   r©   r÷   r:   r  r  r  rÕ   rË   Úclassmethodr]  rã   rä   rå   s   @r'   rç   rç   '  sv   ø‡ € ñ÷	Jð 	J÷	Hð 	H÷.ð .÷&'ð '÷Nò N÷:=ð =÷8ð ÷#ð #ð ÷Zó öZr)   rç   c                   óh   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltR
tV t	R# )r  iE  c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r   r#   Nro   )r&   r¢   s   "€r'   r(   Ú UninstallPthEntries.__annotate__F  s   ø€ ÷ 8ñ 8¡ð 8¨ñ 8r)   c                ó>   € Wn         \        4       V n        R V n        R # r8   )Úfiler9   rP   Ú_saved_lines)r¨   r   s   &&r'   r©   ÚUninstallPthEntries.__init__F  s   € ØŒ	Ü!$£ˆŒØ37ˆÖr)   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   rQ   r#   Nro   )r&   r¢   s   "€r'   r(   rb  K  s   ø€ ÷  ñ  ™ð   ñ  r)   c                ó  € \         P                  P                  V4      p\        '       d?   \         P                  P	                  V4      ^ ,          '       g   VP                  RR4      pV P                  P                  V4       R# )r   Ú\Ú/N)r+   r,   rr   r   Ú
splitdriveÚreplacerP   r:   )r¨   rQ   s   &&r'   r:   ÚUninstallPthEntries.addK  sX   € Ü—‘× Ñ  Ó'ˆ÷ ‹7œ2Ÿ7™7×-Ñ-¨eÓ4°Q×7Ô7Ø—M‘M $¨Ó,ˆEØ�‰×Ñ˜Ör)   c                ó   <€ V ^8„  d   QhRR/# r¡   rz   )r&   r¢   s   "€r'   r(   rb  Z  s   ø€ ÷ !ñ !˜ñ !r)   c                ó  € \         P                  R V P                  4       \        P                  P                  V P                  4      '       g#   \         P                  RV P                  4       R# \        V P                  R4      ;_uu_ 4       pVP                  4       pW n	        RRR4       \        ;QJ d    R X 4       F  '       g   K   RM	  RM! R X 4       4      '       d   RpMRpV'       dP   VR,          P                  VP                  R	4      4      '       g#   VR,          VP                  R	4      ,           VR&   V P                   F@  p \         P                  R
V4       VP                  WC,           P                  R	4      4       KB  	  \        V P                  R4      ;_uu_ 4       pVP!                  V4       RRR4       R#   + '       g   i     EL1; i  \         d     K   i ; i  + '       g   i     R# ; i)zRemoving pth entries from %s:z.Cannot remove entries from nonexistent file %sNÚrbc              3   ó,   "  € T F
  pR V9   x € K  	  R# 5i)s   
Nrz   )ra   Úlines   & r'   rd   Ú-UninstallPthEntries.remove.<locals>.<genexpr>e  s   é € Ð1©5 4ˆw˜$Ž«5ùs   ‚TFz
Ú
zutf-8zRemoving entry: %sÚwbéÿÿÿÿ)rÏ   r  rd  r+   r,   r’   ÚwarningrD  Ú	readlinesre  rg   rN   ÚencoderP   r  Ú
ValueErrorÚ
writelines)r¨   rX  ÚlinesÚendlinerQ   s   &    r'   r  ÚUninstallPthEntries.removeZ  sb  € Ü�‰Ð6¸¿	¹	ÔBô �w‰w�~‰~˜dŸi™i×(Ò(Ü�N‰NÐKÈTÏYÉYÔWÙÜ�$—)‘)˜T×"Ô" bà—L‘L“NˆEØ %Ô÷ #÷ ‹3Ñ1©5Ó1�3�3Š3Ñ1©5Ó1×1Ò1Ø‰GàˆGç˜˜r�×+Ñ+¨G¯N©N¸7Ó,C×DÒDØ˜b�	 G§N¡N°7Ó$;Õ;ˆE�"‰IØ—\”\ˆEðÜ—‘Ð3°UÔ;Ø—‘˜e�o×5Ñ5°gÓ>Ö?ñ "ô �$—)‘)˜T×"Ô" bØ�M‰M˜%Ô ÷ #Ñ"÷# #×"Ð"ûô ô Úðúç"×"Ð"ús*   ÂGÅ<G#Æ3G5ÇG 	Ç#G2Ç1G2Ç5H	c                ó    <€ V ^8„  d   QhRS[ /# rØ   rÙ   )r&   r¢   s   "€r'   r(   rb  u  s   ø€ ÷ ñ ™$ñ r)   c                óR  € V P                   f#   \        P                  RV P                  4       R# \        P	                  RV P                  4       \        V P                  R4      ;_uu_ 4       pVP                  V P                   4       R R R 4       R#   + '       g   i     R# ; i)Nz.Cannot roll back changes to %s, none were madeFz!Rolling %s back to previous stateru  T)re  rÏ   rÓ   rd  rÑ   rD  r{  )r¨   rX  s   & r'   rÕ   ÚUninstallPthEntries.rollbacku  sp   € Ø×ÑÒ$Ü�L‰LÐIÈ4Ï9É9ÔUÙÜ�‰Ð8¸$¿)¹)ÔDÜ�$—)‘)˜T×"Ô" bØ�M‰M˜$×+Ñ+Ô,÷ #á÷ #Ö"áús   Á/BÂB&	)re  rP   rd  N)
rÝ   rÞ   rß   rà   r©   r:   r  rÕ   rã   rä   rå   s   @r'   r  r  E  s-   ø‡ € ÷8ð 8÷
 ð  ÷!ð !÷6ö r)   r  )4r?   r+   rõ   r9  Úimportlib.utilr   Útypingr   r   r   r   r   r	   r
   r   r   Úpip._internal.exceptionsr   r   Úpip._internal.locationsr   r   Úpip._internal.metadatar   Úpip._internal.utils.compatr   Úpip._internal.utils.egg_linkr   Úpip._internal.utils.loggingr   r   Úpip._internal.utils.miscr   r   r   r   Úpip._internal.utils.temp_dirr   r   Úpip._internal.utils.virtualenvr   rÝ   rÏ   r/   rA   rT   rj   r�   r�   rŸ   rç   r  rz   r)   r'   Ú<module>r�     sš   ðÛ Û 	Û 
Û Ý ,ß W× WÕ Wç Sß @Ý 3Ý .Ý Dß =ß IÓ Iß MÝ Cá	�8Ó	€õ&õ&ð 	ôó 	ðõBõ&AõD."÷bf!ñ f!÷R[ñ [÷|7ó 7r)   