1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
Ë
ñúh#^ãó‚—ddlmZddlZddlZddlZddlZddlmZmZddl    m
Z
ddl m Z m Z ddlmZmZddlmZmZddlmZdd    lmZdd
lmZdd lmZmZdd lmZmZm Z m!Z!dd l"m#Z#m$Z$ddl%m&Z&ee'«Z(                                dd„Z)                dd„Z*e*dd„«Z+dd„Z,dd„Z-dd„Z.Gd„d«Z/Gd„d«Z0Gd„d«Z1y) é)Ú annotationsN)Ú    GeneratorÚIterable)Úcache_from_source)ÚAnyÚCallable)Ú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#ó K—tjj||«}|–—tsy|›d–—|›d–—|r|›d–—y|›d–—y­w)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)Úbin_dirÚ script_nameÚis_guiÚexe_names    úRH:\Change_password\venv_build\Lib\site-packages\pip/_internal/req/req_uninstall.pyÚ _script_namesr"s^èø€ôw‰w|‰|˜G [Ó1€HØ
‚NÝ ØØ ˆJdÐ
ÒØ ˆJmÐ
$Ò$٠ؐ
˜+Ð&Ó&à
˜*Ð%Ó%ùs‚A AcóD‡—tj‰«dˆfd„ «}|S)Nc?óp•K—t«}‰|i|¤ŽD]}||vsŒ|j|«|–—Œy­w©N)ÚsetÚadd)ÚargsÚkwÚseenÚitemÚfns    €r!Úuniquez_unique.<locals>.unique.s=øèø€ä›ˆÙ˜O ‘Oò    ˆDؘ4ÒØ—‘˜”Ø“
ñ    ùsƒ6ž6)r(rr)rÚreturnzGenerator[Any, None, None])Ú    functoolsÚwraps)r,r-s` r!Ú_uniquer1+s'ø€ô‡__RÓôóðð €Móc#óÖK—|j}|€Jd«‚|j«}|€ t|¬«‚|D]­}tjj ||«}|–—|j d«sŒ9tjj|«\}}|dd}tjj ||dz«}|–—tjj ||dz«}|–—Œ¯y­w)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
rrrÚendswithÚsplit)Údistr:ÚentriesÚentryrÚdnr,Úbases        r!Úuninstallation_pathsrC9sÏèø€ð}‰}€HØ Ð Ð0 Ó0Ð à×(Ñ(Ó*€GØ€Ü$°$Ô7Ð7àò    ˆÜw‰w|‰|˜H eÓ,ˆØŠ
Ø =‰=˜Õ Ü—W‘W—]‘] 4Ó(‰FˆBØcr7ˆDÜ—7‘7—<‘<  D¨6¡MÓ2ˆDØŠJÜ—7‘7—<‘<  D¨6¡MÓ2ˆDØ‹Jñ    ùs ‚A.C)Á1A8C)cóЇ‡—tjjŠt«}t    |t
¬«D]+Št ˆˆfd„|D««}|rŒ|j‰«Œ-|S)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.©Úkeyc3óÀ•K—|]U}‰j|jd««xr/‰t|jd«j‰««‰k(–—ŒWy­w)Ú*N)Ú
startswithÚrstripÚlen)Ú.0Ú    shortpathrÚseps  €€r!ú    <genexpr>zcompact.<locals>.<genexpr>dscøèø€ò
ðð O‰O˜I×,Ñ,¨SÓ1Ó 2ò DØ”S˜×)Ñ)¨#Ó.×5Ñ5°cÓ:Ó;Ñ<ÀÑCó Dñ
ùsƒAA)rrrNr&ÚsortedrKÚanyr')ÚpathsÚ short_pathsÚ should_skiprrNs   @@r!ÚcompactrU[saù€ô '‰'+‰+€CÜ›E€Kܐu¤#Ô&ò"ˆÜô
ð)ô
ó
ˆ ò
Ø O‰O˜DÕ !ð"ð Ðr2có‡
‡ ‡ —|Dcic]"}tjj|«|“Œ$}}t|«}t    |j «Dchc]$}tjj |«d’Œ&c}t¬«}t«}dd„Š |D]ºŠ tˆ fd„|D««rŒt«}t«}tj‰ «D]>\Š
}}    |jˆ
ˆ ˆ fd„|D««|jˆ
ˆ ˆ fd„|    D««Œ@||z
rŒˆ|j|«|j‰ tjz«Œ¼tt|j|««|zScc}wcc}w)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.
    rrEcót—tjjtjj|Ž«Sr%)rrÚnormcaser)Úas r!Ú    norm_joinz&compress_for_rename.<locals>.norm_joinys$€Üw‰w×Ѥ§¡§ ¡ ¨aР0Ó1Ð1r2c3óz•K—|]2}tjj‰«j|«–—Œ4y­wr%)rrrXrI)rLÚwÚroots  €r!rOz&compress_for_rename.<locals>.<genexpr>}s+øèø€ÒG¸Œrw‰w×Ñ Ó%×0Ñ0°×3ÑGùsƒ8;c3ó2•K—|]}‰‰‰|«–—Œy­wr%©)rLÚdÚdirnamerZr]s  €€€r!rOz&compress_for_rename.<locals>.<genexpr>„søèø€ÒL¸q™y¨¨w¸×:ÑLùóƒc3ó2•K—|]}‰‰‰|«–—Œy­wr%r_)rLÚfrarZr]s  €€€r!rOz&compress_for_rename.<locals>.<genexpr>…søèø€ÒH¸Q™Y t¨W°a×8ÑHùrb)rYÚstrr.re)rrrXr&rPÚvaluesr=rKrQÚwalkÚupdateÚdifference_updater'rNÚmapÚ __getitem__) rRÚpÚcase_mapÚ    remainingÚ    uncheckedÚ    wildcardsÚ    all_filesÚ all_subdirsÚsubdirsÚfilesrarZr]s           @@@r!Úcompress_for_renameruns<ú€ð 16Ö6¨1”—‘× Ñ  Ó# QÑ&Ð6€HÐ6ܐH“ €IܰX·_±_Ó5FÖG°œŸ™Ÿ ™  aÓ(¨Ó+ÒGÌSÔQ€IÜ›%€Ió2ðò)ˆÜ ÓG¸YÔGÔ Gà ä!›eˆ    Ü #£ˆ Ü')§w¡w¨t£}ò    IÑ #ˆGW˜eØ × Ñ ÕLÀGÔLÔ LØ × Ñ ÕHÀ%ÔHÕ Hð    Ið ˜IÓ%Ø × 'Ñ '¨    Ô 2Ø M‰M˜$¤§¡™-Õ (ð)ô" Œs8×'Ñ'¨Ó3Ó 4°yÑ @Ð@ùò37ùâGs ˆ'E8Á)E=cót—t|«}t«}t«}t«}|D]h}|jd«rŒ|jd«sd|vr.|jtjj |««|j|«Œjtt tjj|««}t|«}|D]¬}tj|«D]’\}}    }
|
D]‡} | jd«rŒtjj|| «} tjj| «sŒUtjj| «|vsŒw|j| «Œ‰Œ”Œ®||Dchc]"}tjj|d«’Œ$c}z}||fScc}w)asReturns 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.
    r8z __init__.pyz
.dist-inforH) r&r<r'rrrarjrXrUrgrÚisfile) rRÚ will_removeÚ    will_skipÚfoldersrtrÚ_normcased_filesÚfolderÚdirpathÚ_ÚdirfilesÚfnameÚfile_s              r!Úcompress_for_output_listingr‚so€ôe“*€KÜ“€Iô‹e€GÜ ‹E€EØòˆØ =‰=˜Ô  Ø Ø =‰=˜Ô '¨<¸4Ñ+?Ø K‰KœŸ™Ÿ™¨Ó-Ô .Ø     ‰    $ð ôœ3œrŸw™w×/Ñ/°Ó7Ó8ÐägÓ€Gðò )ˆÜ$&§G¡G¨F£Oò     )Ñ  ˆGQ˜Ø!ò
)Ø—>‘> &Ô)ØäŸ™Ÿ ™  W¨eÓ4ä—G‘G—N‘N 5Õ)ÜŸ™×(Ñ(¨Ó/Ð7GÒGð—M‘M %Õ(ñ
)ñ     )ð )ðÀ7ÖK¸œ2Ÿ7™7Ÿ<™<¨°Õ4ÒKÑK€Kà ˜    Ð !Ð!ùòLsÆ'F5cóR—eZdZdZd
d„Zd d„Zd d„Zd d„Zd
d„Zd
d„Z    e
d d„«Z y    ) ÚStashedUninstallPathSetzWA set of file rename operations to stash files while
    tentatively uninstalling them.có —i|_g|_yr%)Ú
_save_dirsÚ_moves©Úselfs r!Ú__init__z StashedUninstallPathSet.__init__Ås€ð57ˆŒð.0ˆ r2cóÀ—    t|«}||jtj
j |«<|j
S#t$rtd¬«}YŒOwxYw)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ÚOSErrorrr†rrrX)r‰rÚsave_dirs   r!Ú_get_directory_stashz,StashedUninstallPathSet._get_directory_stashÍsU€ð     7Ü&;¸DÓ&AˆHð3;ˆ‰œŸ™×(Ñ(¨Ó.Ñ/à}‰}Ðøô    ò    7Ü$¨+Ô6ŠHð    7ús‚ AÁAÁAcó~—tjj|«}tjj|«d}}d}||k7r    |j|}n:tjj|«}t d¬«}||j|<tjj||«}|rG|tjjk7r*tjj|j|«S|jS#t
$rYnwxYwtjj|«|}}||k7rŒöŒæ)z‚Stashes a file.
 
        If no root has been provided, one will be created for the directory
        in the user's temp directory.NrŒr)
rrrXrar†ÚKeyErrorrÚrelpathÚcurdirr)r‰rÚheadÚold_headrr”s      r!Ú_get_file_stashz'StashedUninstallPathSet._get_file_stashÛsû€ô
w‰w×Ñ Ó%ˆÜŸ™Ÿ™¨Ó.°ˆhˆØˆàhÒð ØŸ?™?¨4Ñ0Øô —7‘7—?‘? 4Ó(ˆDÜ$¨+Ô6ˆHØ$,ˆDO‰O˜DÑ !ä—'‘'—/‘/ $¨Ó-ˆÙ w¤"§'¡'§.¡.Ò0Ü—7‘7—<‘< § ¡ ¨wÓ7Ð 7؏}‰}Ðøôò Ùð úäŸW™WŸ_™_¨TÓ2°D(ˆDð hÓøsÁ    DÄ    DÄDcó—tjj|«xr tjj|« }|r|j    |«}n|j |«}|j j||f«|r4tjj|«rtj|«t||«|S)zStashes the directory or file and returns its new location.
        Handle symlinks as files to avoid modifying the symlink targets.
        )
rrÚisdirÚislinkr‘r˜r‡ÚappendÚrmdirr)r‰rÚ path_is_dirÚnew_paths    r!ÚstashzStashedUninstallPathSet.stashös”€ô—g‘g—m‘m DÓ)ÒF´"·'±'·.±.ÀÓ2FÐ.Fˆ Ù Ø×0Ñ0°Ó6‰Hà×+Ñ+¨DÓ1ˆHà  ‰ ×јD (Ð+Ô,Ù œ2Ÿ7™7Ÿ=™=¨Ô2ô H‰HXÔ ÜhÔØˆr2có~—|jj«D]}|j«Œg|_i|_y)z0Commits the uninstall by removing stashed files.N)r†rfÚcleanupr‡)r‰rs  r!ÚcommitzStashedUninstallPathSet.commit s8€àŸ™×.Ñ.Ó0ò    ˆHØ × Ñ Õ ð    àˆŒ ؈r2cób—|jD]}tjdg|¢­ŽŒ|jD]§\}}    tjd||«tj
j |«stj
j|«rt    j|«n*tj
j|«r t|«t||«Œ©|j«y#t$r6}tjd|«tjd|«Yd}~Œõd}~wwxYw)z2Undoes the uninstall by moving stashed files back.zMoving to %s
 from %szReplacing %s from %szFailed to restore %sz Exception: %sN)r‡ÚloggerÚinfoÚdebugrrrwr›ÚunlinkršrrrÚerrorr£)r‰rlrŸrÚexs     r!Úrollbackz StashedUninstallPathSet.rollbacksà€à—‘ò    6ˆAÜ K‰KÐ0Ð 5°1Ô 5ð    6ð#Ÿk™kò
    2‰NˆHdð     2Ü— ‘ Ð3°X¸tÔDÜ—7‘7—>‘> (Ô+¬r¯w©w¯~©~¸hÔ/GÜ—I‘I˜hÕ'Ü—W‘W—]‘] 8Ô,ܘ8Ô$ܘ˜hÕ'ð
    2ð      ‰  øô    ò 2Ü— ‘ Ð3°XÔ>Ü— ‘ ˜_¨b×1Ñ1ûð 2ús»B!C/Ã/    D.Ã8,D)Ä)D.có,—t|j«Sr%)Úboolr‡rˆs r!Ú can_rollbackz$StashedUninstallPathSet.can_rollback%s€äD—K‘KӠРr2N©r.ÚNone)rrer.re©r.r­) Ú__name__Ú
__module__Ú __qualname__Ú__doc__rŠr‘r˜r r£r«Úpropertyr®r_r2r!r„r„Ás9„ñ&ó0ó óó6ó*óð&ò!óñ!r2r„cód—eZdZdZd d„Zd d„Zdd„Zdd„Zddd„Zdd„Z    dd„Z
dd    „Z e dd
„«Z y )ÚUninstallPathSetzMA set of file paths to be removed in the uninstallation of a
    requirement.có¶—t«|_t«|_i|_||_t «|_tjt«|_
yr%) r&Ú_pathsÚ_refuseÚ_pthÚ_distr„Ú _moved_pathsr/Ú    lru_cacherÚ_normalize_path_cached)r‰r>s  r!rŠzUninstallPathSet.__init__.sB€Ü #£ˆŒ Ü!$£ˆŒ Ø46ˆŒ    ØˆŒ
Ü3Ó5ˆÔô'0×&9Ñ&9¼.Ó&IˆÕ#r2cót—t«sy|j|jtj««S)zs
        Return True if the given path is one we are permitted to
        remove/modify, False otherwise.
 
        T)rrIrÀÚsysÚprefix)r‰rs  r!Ú
_permittedzUninstallPathSet._permitted9s+€ô(Ô)ØØ‰˜t×:Ñ:¼3¿:¹:ÓFÓGÐGr2có0—tjj|«\}}tjj|j    |«tjj |««}tjj |«sy|j|«r|jj|«n|jj|«tjj|«ddk(r|jt|««yy)Nér6) rrr=rrÀrXÚexistsrÄrºr'r»Úsplitextr)r‰rr–Útails    r!r'zUninstallPathSet.addDs¿€Ü—W‘W—]‘] 4Ó(‰
ˆˆdô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Ó,Õ -ð .r2có—|j|«}|j|«rE||jvrt|«|j|<|j|j    |«y|j
j    |«yr%)rÀrÄr¼ÚUninstallPthEntriesr'r»)r‰Úpth_filer@s   r!Úadd_pthzUninstallPathSet.add_pthWsf€Ø×.Ñ.¨xÓ8ˆØ ?‰?˜8Ô $ؘtŸy™yÑ(Ü&9¸(Ó&C—    ‘    ˜(Ñ#Ø I‰IhÑ × #Ñ # EÕ *à L‰L× Ñ ˜XÕ &r2có¬—|js+tjd|jj«y|jj›d|jj
›}tjd|«t «5|s|j|«r¦|j}t|j«}tt|««D])}|j|«tjd|«Œ+|jj«D]}|j!«Œtjd|«ddd«y#1swYyxYw)z\Remove paths in ``self._paths`` with confirmation (unless
        ``auto_confirm`` is True).z7Can't uninstall '%s'. No files were found to uninstall.Nú-zUninstalling %s:zRemoving file or directory %szSuccessfully uninstalled %s)rºr¥r¦r½Úraw_nameÚ raw_versionrÚ_allowed_to_proceedr¾rurPrUr Úverboser¼rfÚremove)r‰Ú auto_confirmrÓÚdist_name_versionÚmovedÚ
for_renamerÚpths        r!rÔzUninstallPathSet.remove`s€ð{Š{Ü K‰KØIØ—
‘
×#Ñ#ô ð à#Ÿz™z×2Ñ2Ð3°1°T·Z±Z×5KÑ5KÐ4LÐMÐ܏ ‰ Ð&Ð(9Ô:ä ‹\ñ     NÙ˜t×7Ñ7¸Ô@Ø×)Ñ)ä0°·±Ó=
ä"¤7¨:Ó#6Ó7òJDØ—K‘K Ô%Ü—N‘NÐ#BÀDÕIðJð Ÿ9™9×+Ñ+Ó-ò!CØ—J‘J•Lð!ô— ‘ Ð9Ð;LÔM÷     N÷     Nñ     Nús ÂB:E
Ecó"—d    d„}|st|j«\}}nt|j«}t«}|d|«|d|«|d|j«|r|dt    |j««t dd«dk7S)
z@Display which files would be deleted and prompt for confirmationcóЗ|sytj|«t«5tt    |««D]}tj|«Œ    ddd«y#1swYyxYwr%)r¥r¦rrPrU)ÚmsgrRrs   r!Ú_displayz6UninstallPathSet._allowed_to_proceed.<locals>._display€sR€ÙØä K‰K˜Ô Ü“ñ &Ü"¤7¨5£>Ó2ò&DÜ—K‘K Õ%ñ&÷ &÷ &ñ &ús £/AÁA%z Would remove:z+Would not remove (might be manually added):z%Would not remove (outside of prefix):zWill actually move:zProceed (Y/n)? )ÚyÚnÚrß)rÜrerRú Iterable[str]r.r°)r‚rºr&r»rur)r‰rÓrÝrxrys     r!rÒz$UninstallPathSet._allowed_to_proceed}s…€ó    &ñÜ%@ÀÇÁÓ%MÑ "ˆK™ô˜dŸk™kÓ*ˆKÜ›ˆIᐠ+Ô.ÙÐ>À    ÔJÙÐ8¸$¿,¹,ÔGÙ Ù Ð*Ô,?ÀÇ Á Ó,LÔ MäÐ$ nÓ5¸Ñ<Ð<r2cól—|jjs+tjd|jj
«ytj d|jj
«|jj«|jj«D]}|j«Œy)z1Rollback the changes previously made by remove().z'Can't roll back %s; was not uninstalledNzRolling back uninstall of %s)
r¾r®r¥r©r½rÐr¦r«r¼rf)r‰rÙs  r!r«zUninstallPathSet.rollback™s‚€à× Ñ ×-Ò-Ü L‰LØ9Ø—
‘
×#Ñ#ô ð ܏ ‰ Ð2°D·J±J×4GÑ4GÔHØ ×Ñ×"Ñ"Ô$Ø—9‘9×#Ñ#Ó%ò    ˆCØ L‰LNñ    r2có8—|jj«y)z?Remove temporary save dir: rollback will no longer be possible.N)r¾r£rˆs r!r£zUninstallPathSet.commit¦s€à ×Ñ× Ñ Õ"r2c
ó@ —|j}|j}|€(tjd|j«||«St |«}|j s8tjd|j|tj«||«S|tjd«tjd«hDchc]}|r|’Œc}vr)tjd|j|«||«S||«}t|j«}|jxrF|duxr@tjj!|«xr|j#|j$›d« }|r:||j'|«|j)«}    |    8|    D]1}
|j'tjj+||
««Œ3nÏ|j-d«r½    |j/d«} | j1d    ¬
«} |j/d«j1«Dcgc]
}|r|| vr|‘Œ c}D]o} tjj+|| «}|j'|«|j'|›d «|j'|›d «|j'|›d «Œqnò|j4r t7|¬«‚|j8r‡|j'|«tjj;|«d}tjj+tjj=|«d«}|j?|d|z«nG|j@r#tC|«D]}|j'|«Œn|rÿtE|«5}tjjG|jI«jK««}|jM|«}ddd«tjjO|«sJd|›d›d|j›d|›d    «‚|j'|«tjj+tjj=|«d«}|j?||«ntjQd||«|jRr tU«}n
tW«}    |jY«D]j}|j'tjj+||««tZsŒ9|j'tjj+||›d««Œl                            dd„}|||«D]}|j'|«Œ|Scc}w#t2$rg} YŒwwxYwcc}w#1swYŒ§xYw#t2t\f$rYŒewxYw)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.txtznamespace_packages.txtF)Úkeependsr6r8r9r4rÆzeasy-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.batc3óúK—|j«D]`}|jdk(r t||jd«Ed{–—†Œ2|jdk(sŒBt||jd«Ed{–—†Œby7Œ77Œ    ­w)NÚconsole_scriptsFÚ gui_scriptsT)Úiter_entry_pointsÚgroupr"Úname)r>rÚ entry_points   r!Úiter_scripts_to_removez:UninstallPathSet.from_dist.<locals>.iter_scripts_to_remove8svèø€ð $×5Ñ5Ó7ò N Ø×$Ñ$Ð(9Ò9Ü,¨W°k×6FÑ6FÈÓN×NÑNØ ×&Ñ&¨-Ó7Ü,¨W°k×6FÑ6FÈÓM×MÑMñ     NàNøàMús(‚=A;¿A7ÁA;ÁA;Á/A9Á0A;Á9A;)r>r rrer.úGenerator[str, None, None])/r:Ú info_locationr¥r¦Úcanonical_namerÚlocalrÂrÃÚ    sysconfigÚget_pathrrÐÚ"installed_with_setuptools_egg_inforrrÇr<Úsetuptools_filenamer'r;rÚis_fileÚ    read_textÚ
splitlinesÚFileNotFoundErrorÚinstalled_by_distutilsr    Úinstalled_as_eggr=rarÍÚinstalled_with_dist_inforCÚopenrXÚreadlineÚstriprÀÚsamefiler§Ú in_usersiter r Úiter_distutils_script_namesrÚNotADirectoryError)Úclsr>Ú dist_locationròÚnormalized_dist_locationrlÚ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ÚscriptrðÚss                        r!Ú    from_distzUninstallPathSet.from_distªs`€àŸ ™ ˆ Ø×*Ñ*ˆ Ø Ð  Ü K‰KØ?Ø×#Ñ#ô ñt“9Ð ä#1°-Ó#@Р؏zŠzÜ K‰KØCØ×#Ñ#Ø(Ü—
‘
ô     ñ t“9Ð à #ä×(Ñ(¨Ó2´I×4FÑ4FÀ|Ó4TÐUö(
àÙò ò(
ñ
ô
K‰KØNØ×#Ñ#Ø(ô ñ
t“9Ð á˜d›)ˆÜ6°t·}±}ÓEÐð × 3Ñ 3ò SØ TÐ)ò Sä—‘—‘˜}Ó-ò Sð
"×*Ñ*¨d×.FÑ.FÐ-GÀyÐ+QÓRÐRð     %ò (ØÐ(Ø×#Ñ# MÔ2Ø"×8Ñ8Ó:ˆOØÐ*Ø&5òUNØ#×'Ñ'¬¯©¯ © °]ÀNÓ(SÕTòUð
—‘˜oÕ.ðOØ)-¯©Ð8PÓ)QÐ&ð"4×!>Ñ!>ÈÐ!>Ó!NJð"Ÿ^™^¨OÓ<×GÑGÓIö&àÙ˜Q jÑ0òò&ò    7Mô
Ÿ7™7Ÿ<™<¨ °}ÓEDØ#×'Ñ'¨Ô-Ø#×'Ñ'¨4¨&°¨ Ô5Ø#×'Ñ'¨4¨&°¨ Ô6Ø#×'Ñ'¨4¨&°¨ Õ6ò    7ð× (Ò (Ü(°dÔ;Ð ;à × "Ò "ð × Ñ Р8Ô 9Ü!Ÿw™wŸ}™}Ð-EÓFÀqÑIÐ Ü!Ÿw™wŸ|™|Ü—‘—‘Р8Ó9Ø"ó Ð ð × #Ñ #Ð$4°dÐ=MÑ6MÖ Nà × *Ò *Ü,¨TÓ2ò *Ø×#Ñ# DÕ)ò *ñôÐ&Ó'ð ¨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ð    Ø×:Ñ:Ó<ò PØ×#Ñ#¤B§G¡G§L¡L°¸&Ó$AÔBÞØ#×'Ñ'¬¯©¯ © °WÀÀȸoÓ(NÕOñ Pð    NØ"ð    Nàð    Nð(ó    Nñ(¨¨gÓ6ò    #ˆAØ × Ñ  Õ "ð    #ðÐùòM(
øôT)ò$Ø!#“Jð$üò&÷H ñ ûôF"Ô#5Ð6ò    Ù ð    úsDÂ? U"ÇU'ÈU9Î A U>Ò9AV Ô4V Õ' U6Õ5U6Õ>VÖ VÖVN)r>r r.r°)rrer.r­)rrer.r°)rÌrer@rer.r°)FF)rÕr­rÓr­r.r°)rÓr­r.r­r¯)r>r r.r¸)r²r³r´rµrŠrÄr'rÍrÔrÒr«r£Ú classmethodrr_r2r!r¸r¸*sH„ñó    Jó    Hó.ó&'ôNó:=ó8 ó#ðòZóñZr2r¸có,—eZdZdd„Zdd„Zdd„Zd    d„Zy)
rËcó>—||_t«|_d|_yr%)Úfiler&r?Ú _saved_lines)r‰rÌs  r!rŠzUninstallPthEntries.__init__Is€ØˆŒ    Ü!$£ˆŒ Ø04ˆÕr2cóì—tjj|«}tr4tjj    |«ds|j dd«}|j j|«y)Nrú\ú/)rrrXrÚ
splitdriveÚreplacer?r')r‰r@s  r!r'zUninstallPthEntries.addNsS€Ü—‘× Ñ  Ó'ˆõ œ2Ÿ7™7×-Ñ-¨eÓ4°QÒ7Ø—M‘M $¨Ó,ˆEØ  ‰ ×јÕr2có4—tjd|j«tjj |j«s!tj d|j«yt|jd«5}|j«}||_    ddd«td„D««rd}nd}|r=|dj|jd««s|d|jd«z|d<|jD]<}    tjd    |«|j||zjd««Œ>t|jd
«5}|j!|«ddd«y#1swYŒÛxYw#t$rYŒ‡wxYw#1swYyxYw) NzRemoving pth entries from %s:z.Cannot remove entries from nonexistent file %sÚrbc3ó$K—|]}d|v–—Œ
y­w)s
Nr_)rLÚlines  r!rOz-UninstallPthEntries.remove.<locals>.<genexpr>hsèø€Ò1 4ˆw˜$ŒÑ1ùs‚z
ú
éÿÿÿÿzutf-8zRemoving entry: %sÚwb)r¥rÓrrrrwÚwarningrÚ    readlinesrrQr<Úencoder?rÔÚ
ValueErrorÚ
writelines)r‰rÚlinesÚendliner@s     r!rÔzUninstallPthEntries.remove]sX€Ü‰Ð6¸¿    ¹    ÔBôw‰w~‰~˜dŸi™iÔ(Ü N‰NÐKÈTÏYÉYÔ WØ Ü $—)‘)˜TÓ "ð    & bà—L‘L“NˆEØ %ˆDÔ ÷    &ô Ñ1¨5Ô1Ô 1؉GàˆGá ˜˜r™×+Ñ+¨G¯N©N¸7Ó,CÔDؘb™     G§N¡N°7Ó$;Ñ;ˆE"‰IØ—\‘\ò    ˆEð Ü—‘Ð3°UÔ;Ø— ‘ ˜e g™o×5Ñ5°gÓ>Õ?ð    ô $—)‘)˜TÓ "ð    ! bØ M‰M˜%Ô  ÷    !ð    !÷#    &ð    &ûôò Ùð ú÷    !ð    !ús*ÂE3Ä9E?ÅFÅ3E<Å?    F Æ
F ÆFcó*—|j€!tjd|j«ytj    d|j«t |jd«5}|j |j«ddd«y#1swYyxYw)Nz.Cannot roll back changes to %s, none were madeFz!Rolling %s back to previous stater*T)rr¥r©rr§rr/)r‰rs  r!r«zUninstallPthEntries.rollbackxso€Ø × Ñ Ð $Ü L‰LÐIÈ4Ï9É9Ô UØÜ ‰ Ð8¸$¿)¹)ÔDÜ $—)‘)˜TÓ "ð    - bØ M‰M˜$×+Ñ+Ô ,÷    -à÷    -àús Á$B        BN)rÌrer.r°)r@rer.r°r¯r±)r²r³r´rŠr'rÔr«r_r2r!rËrËHs„ó5ó
 ó!ô6r2rË)rrerrerr­r.rñ)r,ú)Callable[..., Generator[Any, None, None]]r.r3)r>r r.rñ)rRrár.zset[str])rRrár.ztuple[set[str], set[str]])2Ú
__future__rr/rrÂrõÚcollections.abcrrÚimportlib.utilrÚtypingrrÚpip._internal.exceptionsr    r
Úpip._internal.locationsr r Úpip._internal.metadatar Úpip._internal.utils.compatrÚpip._internal.utils.egg_linkrÚpip._internal.utils.loggingrrÚpip._internal.utils.miscrrrrÚpip._internal.utils.temp_dirrrÚpip._internal.utils.virtualenvrr²r¥r"r1rCrUrur‚r„r¸rËr_r2r!ú<module>rAsÊðÝ"ãÛ    Û
Ûß/Ý,ß çSß@Ý3Ý.ÝDß=ßIÓIßMÝCá    8Ó    €ð&Ø ð&Ø"ð&Ø,0ð&àó&ð& Ø1ð à.ó ð    òó    ðóBó&AóD."÷bf!ñf!÷R[ñ[÷|7ò7r2