§
    é phŸH  ã                   ó¶  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZmZmZmZ d dlmZmZ d dlmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZ ej         j!        Z!ej         j"        Z" e j#        e$¦  «        Z% ej&        d¦  «        Z' ej&        d	¦  «        Z( ej&        d
ej)        ¦  «        Z*de+de,fd„Z- G d„ de¦  «        Z. ej/        e.¦  «         dS )é    N)Úreplace)ÚAnyÚListÚOptionalÚTuple)Ú
BadCommandÚInstallationError)Ú
HiddenTextÚdisplay_pathÚhide_url)Úmake_command)ÚAuthInfoÚRemoteNotFoundErrorÚRemoteNotValidErrorÚ
RevOptionsÚVersionControlÚ(find_path_to_project_root_from_repo_rootÚvcsz(^git version (\d+)\.(\d+)(?:\.(\d+))?.*$z^[a-fA-F0-9]{40}$a/  ^
    # Optional user, e.g. 'git@'
    (\w+@)?
    # Server, e.g. 'github.com'.
    ([^/:]+):
    # The server-side path. e.g. 'user/project.git'. Must start with an
    # alphanumeric character so as not to be confusable with a Windows paths
    # like 'C:/foo/bar' or 'C:\foo\bar'.
    (\w[^:]*)
    $ÚshaÚreturnc                 óP   — t          t                               | ¦  «        ¦  «        S ©N)ÚboolÚ
HASH_REGEXÚmatch)r   s    úbC:\Users\Daniel\PycharmProjects\Portfolio_Website\.venv\Lib\site-packages\pip\_internal\vcs\git.pyÚlooks_like_hashr   8   s   € Ý•
× Ò  Ñ%Ô%Ñ&Ô&Ð&ó    c            
       óX  ‡ — e Zd ZdZdZdZdZdZdZe	de
dee
         fd	„¦   «         Zed
edede
fˆ fd„¦   «         Zde
de
defd„Zdeedf         fd„Zede
dee
         fd„¦   «         Zede
de
deee
         ef         fd„¦   «         Zede
de
defd„¦   «         Zede
dededefd„¦   «         Zede
dee
         defd„¦   «         Zde
dedededdf
d„Zde
dededdfd„Zde
dededdfd„Zede
de
fd„¦   «         Z e	de
de
fd „¦   «         Z!ede
de
defd!„¦   «         Z"ed)de
dee
         de
fd"„¦   «         Z#ede
dee
         fd#„¦   «         Z$ede
dee
ee
         e%f         fˆ fd$„¦   «         Z&ede
ddfd%„¦   «         Z'ede
dee
         fˆ fd&„¦   «         Z(e	d'e
defd(„¦   «         Z)ˆ xZ*S )*ÚGitÚgitz.gitÚclone)zgit+httpz	git+httpszgit+sshzgit+gitzgit+file)ÚGIT_DIRÚGIT_WORK_TREEÚHEADÚrevr   c                 ó   — | gS r   © ©r&   s    r   Úget_base_rev_argszGit.get_base_rev_argsL   s	   € àˆuˆr   ÚargsÚkwargsc                 ó¾   •— t           j                             d¦  «        r%|                     di ¦  «        }d|d<   d|d<   ||d<    t          ¦   «         j        |i |¤ŽS )NÚPIP_NO_INPUTÚextra_environÚ0ÚGIT_TERMINAL_PROMPTzssh -oBatchMode=yesÚGIT_SSH_COMMAND)ÚosÚenvironÚgetÚsuperÚrun_command)Úclsr+   r,   r/   Ú	__class__s       €r   r7   zGit.run_commandP   sh   ø€ åŒ:�>Š>˜.Ñ)Ô)ð 	4Ø"ŸJšJ ¸Ñ;Ô;ˆMØ36ˆMÐ/Ñ0Ø/DˆMÐ+Ñ,Ø&3ˆF�?Ñ#Ø"�u‰wŒwÔ" DÐ3¨FÐ3Ð3Ð3r   ÚurlÚdestc                 óú   — |                       t          |¦  «        ¦  «        \  }}|j        sdS |                      ||j        ¦  «        sdS t	          |                      ||j        ¦  «        d         ¦  «        }| S )NFr   )Úget_url_rev_optionsr   r&   Úis_commit_id_equalr   Úget_revision_sha)Úselfr:   r;   Ú_Úrev_optionsÚis_tag_or_branchs         r   Úis_immutable_rev_checkoutzGit.is_immutable_rev_checkoutY   s   € Ø×1Ò1µ(¸3±-´-Ñ@Ô@‰ˆˆ;ØŒð 	Ø�5Ø×&Ò& t¨[¬_Ñ=Ô=ð 	ð �5õ   × 5Ò 5°d¸K¼OÑ LÔ LÈQÔ OÑPÔPÐØ#Ð#Ð#r   .c                 ó0  — |                       dgddd¬¦  «        }t                               |¦  «        }|st                               d|¦  «         dS t          |                     d¦  «        ¦  «        t          |                     d	¦  «        ¦  «        fS )
NÚversionzgit versionFT)Úcommand_descÚshow_stdoutÚstdout_onlyzCan't parse git version: %sr(   é   é   )r7   ÚGIT_VERSION_REGEXr   ÚloggerÚwarningÚintÚgroup)r@   rF   r   s      r   Úget_git_versionzGit.get_git_versiong   s�   € Ø×"Ò"ØˆKØ&ØØð	 #ñ 
ô 
ˆõ "×'Ò'¨Ñ0Ô0ˆØð 	Ý�NŠNÐ8¸'ÑBÔBÐBØ�2Ý�E—K’K ‘N”NÑ#Ô#¥S¨¯ª°Q©¬Ñ%8Ô%8Ð9Ð9r   Úlocationc                 óÂ   — g d¢}|                       |ddd|¬¦  «        }|                     ¦   «         }|                     d¦  «        r|t          d¦  «        d…         S dS )zl
        Return the current branch, or None if HEAD isn't at a branch
        (e.g. detached HEAD).
        )zsymbolic-refú-qr%   ©rJ   FT©Úextra_ok_returncodesrH   rI   Úcwdzrefs/heads/N)r7   ÚstripÚ
startswithÚlen)r8   rR   r+   ÚoutputÚrefs        r   Úget_current_branchzGit.get_current_brancht   sw   € ð .Ð-Ð-ˆØ—’ØØ!%ØØØð !ñ 
ô 
ˆð �lŠl‰nŒnˆà�>Š>˜-Ñ(Ô(ð 	-Ø•s˜=Ñ)Ô)Ð+Ð+Ô,Ð,àˆtr   c                 óÀ  — |                       d|g|ddd¬¦  «        }i }|                     ¦   «                              d¦  «        D ][}|                     d¦  «        }|sŒ	 |                     dd	¬
¦  «        \  }}n # t          $ r t	          d|›�¦  «        ‚w xY w|||<   Œ\d|› �}d|› �}	|                     |¦  «        }
|
�|
dfS |                     |	¦  «        }
|
dfS )zö
        Return (sha_or_none, is_branch), where sha_or_none is a commit hash
        if the revision names a remote branch or tag, otherwise None.

        Args:
          dest: the repository directory.
          rev: the revision name.
        zshow-refFTÚignore)rX   rH   rI   Úon_returncodeú
úú rK   )Úmaxsplitzunexpected show-ref line: zrefs/remotes/origin/z
refs/tags/)r7   rY   ÚsplitÚrstripÚ
ValueErrorr5   )r8   r;   r&   r\   ÚrefsÚlineÚref_shaÚref_nameÚ
branch_refÚtag_refr   s              r   r?   zGit.get_revision_sha�   s9  € ð —’Ø˜ÐØØØØ"ð !ñ 
ô 
ˆð ˆð —L’L‘N”N×(Ò(¨Ñ.Ô.ð 	%ð 	%ˆDØ—;’;˜tÑ$Ô$ˆDØð ØðHØ$(§J¢J¨s¸Q JÑ$?Ô$?Ñ!�˜˜øÝð Hð Hð Hõ !Ð!F¸dÐ!FÐ!FÑGÔGÐGðHøøøð
 %ˆD�‰NˆNà1¨CÐ1Ð1ˆ
Ø$˜sÐ$Ð$ˆà�hŠh�zÑ"Ô"ˆØð 	Ø˜�;Ðà�hŠh�wÑÔˆà�Uˆ|Ðs   Á!A<Á<Bc                 ó†   — |                      d¦  «        rdS t          |¦  «        sdS |                      ||¦  «        rdS dS )a$  
        Return true if rev is a ref or is a commit that we don't have locally.

        Branches and tags are not considered in this method because they are
        assumed to be always available locally (which is a normal outcome of
        ``git clone`` and ``git fetch --tags``).
        zrefs/TF)rZ   r   Ú
has_commit)r8   r;   r&   s      r   Ú_should_fetchzGit._should_fetch»   sR   € ð �>Š>˜'Ñ"Ô"ð 	à�4å˜sÑ#Ô#ð 	à�5à�>Š>˜$ Ñ$Ô$ð 	à�5àˆtr   rB   c           	      óø  — |j         }|€J ‚|                      ||¦  «        \  }}|�,|                     |¦  «        }t          ||r|nd¬¦  «        }|S t	          |¦  «        st
                               d|¦  «         |                      ||¦  «        s|S |                      t          dd|| 
                    ¦   «         ¦  «        |¬¦  «         |                      |d¬¦  «        }|                     |¦  «        }|S )	zµ
        Resolve a revision to a new RevOptions object with the SHA1 of the
        branch, tag, or ref if found.

        Args:
          rev_options: a RevOptions object.
        N)Úbranch_namez:Did not find branch or tag '%s', assuming revision or ref.ÚfetchrT   ©rX   Ú
FETCH_HEADr)   )Úarg_revr?   Úmake_newr   r   rM   rN   rq   r7   r   Úto_argsÚget_revision)r8   r;   r:   rB   r&   r   Ú	is_branchs          r   Úresolve_revisionzGit.resolve_revisionÒ   s.  € ð Ô!ˆð ÐÐÐà×-Ò-¨d°CÑ8Ô8‰ˆˆYàð 	Ø%×.Ò.¨sÑ3Ô3ˆKÝ! +À9Ð<V¸C¸CÐRVÐXÑXÔXˆKàÐõ ˜sÑ#Ô#ð 	Ý�NŠNØLØñô ð ð
 × Ò   sÑ+Ô+ð 	ØÐð 	�ŠÝ˜ $¨¨[×-@Ò-@Ñ-BÔ-BÑCÔCØð 	ñ 	
ô 	
ð 	
ð
 ×Ò˜t¨ÐÑ6Ô6ˆØ!×*Ò*¨3Ñ/Ô/ˆàÐr   Únamec                 ó<   — |sdS |                       |¦  «        |k    S )z§
        Return whether the current commit hash equals the given name.

        Args:
          dest: the repository directory.
          name: a string name.
        F)rz   )r8   r;   r}   s      r   r>   zGit.is_commit_id_equal   s*   € ð ð 	à�5à×Ò Ñ%Ô%¨Ò-Ð-r   Ú	verbosityNc                 óî  — |                      ¦   «         }t                               d||t          |¦  «        ¦  «         |dk    rd}n|dk    rd}nd}|                      ¦   «         dk    r&|                      t          dd	g|¢|‘|‘R Ž ¦  «         n$|                      t          dg|¢|‘|‘R Ž ¦  «         |j        rÙ|                      |||¦  «        }t          |d
d ¦  «        }t           
                    d||¦  «         |€V|                      ||j        ¦  «        s:t          dd|                     ¦   «         ¦  «        }|                      ||¬¦  «         ng|                      |¦  «        |k    r#d|› �}	dd|d|	g}|                      ||¬¦  «         n*|                      |¦  «        }
|                     |
¦  «        }t                               d||j        ¦  «         |                      |¦  «         d S )NzCloning %s%s to %sr   )z--quietrJ   r(   )z	--verbosez
--progress)rK   é   r"   z--filter=blob:noners   zRev options %s, branch_name %sÚcheckoutrT   ru   zorigin/z-bz--trackzResolved %s to commit %s)Ú
to_displayrM   Úinfor   rQ   r7   r   r&   r|   ÚgetattrÚdebugr>   ry   r^   rz   rx   Úupdate_submodules)r@   r;   r:   rB   r   Úrev_displayÚflagsrs   Úcmd_argsÚtrack_branchr   s              r   Ú	fetch_newzGit.fetch_new  sd  € ð "×,Ò,Ñ.Ô.ˆÝ�ŠÐ(¨#¨{½LÈÑ<NÔ<NÑOÔOÐOØ˜Š>ð 	0Ø%1ˆEˆEØ˜!Š^ð 	0ØˆEˆEà/ˆEØ×ÒÑ!Ô! WÒ,ð 	Gð ×ÒÝØØ(ðð ðð ð	ð
 ðð ð ñô ð ð ð ×Ò�\¨'ÐE°EÐE¸3ÐEÀÐEÐEÐEÑFÔFÐFàŒ?ð 	4à×/Ò/°°c¸;ÑGÔGˆKÝ! +¨}¸dÑCÔCˆKÝ�LŠLÐ9¸;ÈÑTÔTÐTØð 5ð ×.Ò.¨t°[´_ÑEÔEð 9Ý+Ø"ØØ#×+Ò+Ñ-Ô-ñ ô  �Hð
 ×$Ò$ X°4Ð$Ñ8Ô8Ð8øØ×(Ò(¨Ñ.Ô.°+Ò=ð 5ð  7¨Ð6Ð6�àØØØØ ð�ð × Ò  ¨tÐ Ñ4Ô4Ð4øà×#Ò# DÑ)Ô)ˆCØ%×.Ò.¨sÑ3Ô3ˆKå�ŠÐ.°°[´_ÑEÔEÐEð 	×Ò˜tÑ$Ô$Ð$Ð$Ð$r   c                 óð   — |                       t          dd|¦  «        |¬¦  «         t          dd|                     ¦   «         ¦  «        }|                       ||¬¦  «         |                      |¦  «         d S )NÚconfigzremote.origin.urlru   r‚   rT   )r7   r   ry   r‡   ©r@   r;   r:   rB   rŠ   s        r   Úswitchz
Git.switchN  s„   € Ø×ÒÝ˜Ð#6¸Ñ<Ô<Øð 	ñ 	
ô 	
ð 	
õ   
¨D°+×2EÒ2EÑ2GÔ2GÑHÔHˆØ×Ò˜ tÐÑ,Ô,Ð,à×Ò˜tÑ$Ô$Ð$Ð$Ð$r   c                 ój  — |                       ¦   «         dk    r|                      g d¢|¬¦  «         n|                      ddg|¬¦  «         |                      |||¦  «        }t          ddd|                     ¦   «         ¦  «        }|                      ||¬¦  «         |                      |¦  «         d S )N)rJ   é	   )rt   rT   z--tagsru   rt   rT   Úresetz--hard)rQ   r7   r|   r   ry   r‡   r�   s        r   Úupdatez
Git.updateX  sÄ   € à×ÒÑ!Ô! VÒ+ð 	8à×ÒÐ6Ð6Ð6¸DÐÑAÔAÐAÐAà×Ò˜g t˜_°$ÐÑ7Ô7Ð7à×+Ò+¨D°#°{ÑCÔCˆÝ ¨°4¸×9LÒ9LÑ9NÔ9NÑOÔOˆØ×Ò˜ tÐÑ,Ô,Ð,à×Ò˜tÑ$Ô$Ð$Ð$Ð$r   c                 ó`  — |                       g d¢ddd|¬¦  «        }|                     ¦   «         }	 |d         }n# t          $ r t          ‚w xY w|D ]}|                     d¦  «        r|} nŒ|                     d¦  «        d	         }|                      |                     ¦   «         ¦  «        S )
z¢
        Return URL of the first remote encountered.

        Raises RemoteNotFoundError if the repository does not have a remote
        url configured.
        )rŽ   z--get-regexpzremote\..*\.urlrU   FTrV   r   zremote.origin.url rd   rJ   )r7   Ú
splitlinesÚ
IndexErrorr   rZ   rf   Ú_git_remote_to_pip_urlrY   )r8   rR   ÚstdoutÚremotesÚfound_remoteÚremoter:   s          r   Úget_remote_urlzGit.get_remote_urlf  sâ   € ð —’Ø:Ð:Ð:Ø!%ØØØð !ñ 
ô 
ˆð ×#Ò#Ñ%Ô%ˆð	&Ø" 1œ:ˆLˆLøÝð 	&ð 	&ð 	&Ý%Ð%ð	&øøøð ð 	ð 	ˆFØ× Ò Ð!5Ñ6Ô6ð Ø%�Ø�ðð × Ò  Ñ%Ô% aÔ(ˆØ×)Ò)¨#¯)ª)©+¬+Ñ6Ô6Ð6s	   ²; »Ac                 ó:  — t          j        d| ¦  «        r| S t          j                             | ¦  «        r&t          j        | ¦  «                             ¦   «         S t                               | ¦  «        }|r| 	                    d¦  «        S t          | ¦  «        ‚)a8  
        Convert a remote url from what git uses to what pip accepts.

        There are 3 legal forms **url** may take:

            1. A fully qualified url: ssh://git@example.com/foo/bar.git
            2. A local project.git folder: /path/to/bare/repository.git
            3. SCP shorthand for form 1: git@example.com:foo/bar.git

        Form 1 is output as-is. Form 2 must be converted to URI and form 3 must
        be converted to form 1.

        See the corresponding test test_git_remote_url_to_pip() for examples of
        sample inputs/outputs.
        z\w+://zssh://\1\2/\3)Úrer   r3   ÚpathÚexistsÚpathlibÚPurePathÚas_uriÚ	SCP_REGEXÚexpandr   )r:   Ú	scp_matchs     r   r˜   zGit._git_remote_to_pip_url„  sŽ   € õ" Œ8�I˜sÑ#Ô#ð 	àˆJÝŒ7�>Š>˜#ÑÔð 	2õ Ô# CÑ(Ô(×/Ò/Ñ1Ô1Ð1Ý—O’O CÑ(Ô(ˆ	Øð 	6à×#Ò#Ð$4Ñ5Ô5Ð5å! #Ñ&Ô&Ð&r   c                 óh   — 	 |                       dddd|z   g|d¬¦  «         dS # t          $ r Y dS w xY w)zU
        Check if rev is a commit that is available in the local repository.
        ú	rev-parserT   z--verifyzsha^F)rX   Úlog_failed_cmdT)r7   r	   )r8   rR   r&   s      r   rp   zGit.has_commit£  sc   € ð
		Ø�OŠOØ˜d J°¸±Ð=ØØ$ð ñ ô ð ð �4øõ !ð 	ð 	ð 	Ø�5�5ð	øøøs   ‚# £
1°1c                 óh   — |€d}|                       d|gdd|¬¦  «        }|                     ¦   «         S )Nr%   r©   FT©rH   rI   rX   )r7   rY   )r8   rR   r&   Úcurrent_revs       r   rz   zGit.get_revision³  sL   € àð 	ØˆCØ—o’oØ˜#ÐØØØð	 &ñ 
ô 
ˆð × Ò Ñ"Ô"Ð"r   c                 ót  — |                       ddgdd|¬¦  «                             ¦   «         }t          j                             |¦  «        s t          j                             ||¦  «        }t          j                             t          j                             |d¦  «        ¦  «        }t          ||¦  «        S )z‘
        Return the path to Python project root, relative to the repo root.
        Return None if the project root is in the repo root.
        r©   z	--git-dirFTr¬   z..)r7   rY   r3   r    ÚisabsÚjoinÚabspathr   )r8   rR   Úgit_dirÚ	repo_roots       r   Úget_subdirectoryzGit.get_subdirectory¿  s›   € ð —/’/Ø˜+Ð&ØØØð	 "ñ 
ô 
÷
 Š%‰'Œ'ð 	õ Œw�}Š}˜WÑ%Ô%ð 	6Ý”g—l’l 8¨WÑ5Ô5ˆGÝ”G—O’O¥B¤G§L¢L°¸$Ñ$?Ô$?Ñ@Ô@ˆ	Ý7¸À)ÑLÔLÐLr   c                 óÊ  •— t          |¦  «        \  }}}}}|                     d¦  «        r³|dt          |                     d¦  «        ¦  «         …         }|t          j                             |¦  «                             dd¦  «                             d¦  «        z   }|                     d¦  «        dz   }	|d|	…         t          ||	d…         ||||f¦  «        z   }d|vrXd|vsJ ‚|                     d	d
¦  «        }t          ¦   «                              |¦  «        \  }}
}|                     dd¦  «        }n%t          ¦   «                              |¦  «        \  }}
}||
|fS )a9  
        Prefixes stub URLs like 'user@hostname:user/repo.git' with 'ssh://'.
        That's required because although they use SSH they sometimes don't
        work with a ssh:// scheme (e.g. GitHub). But we need a scheme for
        parsing. Hence we remove it again afterwards and return it as a stub.
        ÚfileNú/ú\ú+rJ   z://zfile:zgit+z
git+ssh://zssh://Ú )ÚurlsplitÚendswithr[   ÚlstripÚurllibÚrequestÚurl2pathnamer   ÚfindÚ
urlunsplitr6   Úget_url_rev_and_auth)r8   r:   ÚschemeÚnetlocr    ÚqueryÚfragmentÚinitial_slashesÚnewpathÚ
after_plusr&   Ú	user_passr9   s               €r   rÃ   zGit.get_url_rev_and_authÑ  sr  ø€ õ 19¸±´Ñ-ˆ�˜˜e XØ�?Š?˜6Ñ"Ô"ð 	Ø"Ð#;¥c¨$¯+ª+°cÑ*:Ô*:Ñ&;Ô&;Ð%;Ð#;Ô<ˆOØ%­¬×(CÒ(CÀDÑ(IÔ(I×(QÒ(QØ�cñ)ô )çŠf�S‰kŒkñˆGð  Ÿš SÑ)Ô)¨AÑ-ˆJØ˜˜*˜Ô%­
Ø˜
˜˜Ô$ f¨g°u¸hÐGñ)ô )ñ ˆCð ˜Ðð 	DØ #Ð%Ð%Ð%Ð%Ø—+’+˜f lÑ3Ô3ˆCÝ"'¡'¤'×">Ò">¸sÑ"CÔ"CÑˆC��iØ—+’+˜h¨Ñ+Ô+ˆCˆCå"'¡'¤'×">Ò">¸sÑ"CÔ"CÑˆC��ià�C˜Ð"Ð"r   c                 ó¶   — t           j                             t           j                             |d¦  «        ¦  «        sd S |                      g d¢|¬¦  «         d S )Nz.gitmodules)Ú	submoduler”   z--initz--recursiverT   ru   )r3   r    r¡   r°   r7   )r8   rR   s     r   r‡   zGit.update_submodulesð  s^   € åŒw�~Š~�bœgŸlšl¨8°]ÑCÔCÑDÔDð 	ØˆFØ�ŠØBÐBÐBØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó`  •— t          ¦   «                              |¦  «        }|r|S 	 |                      ddg|dddd¬¦  «        }n8# t          $ r t                               d|¦  «         Y d S t          $ r Y d S w xY wt          j         	                    | 
                    d¦  «        ¦  «        S )	Nr©   z--show-toplevelFTÚraise)rX   rH   rI   ra   rª   zKcould not determine if %s is under git control because git is not availablez
)r6   Úget_repository_rootr7   r   rM   r†   r	   r3   r    Únormpathrg   )r8   rR   ÚlocÚrr9   s       €r   rÐ   zGit.get_repository_rootù  sÝ   ø€ å‰gŒg×)Ò)¨(Ñ3Ô3ˆØð 	ØˆJð	Ø—’ØÐ/Ð0ØØ!Ø Ø%Ø$ð  ñ ô ˆAˆAøõ ð 	ð 	ð 	Ý�LŠLð/àñô ð ð
 �4�4Ý ð 	ð 	ð 	Ø�4�4ð	øøøåŒw×Ò §¢¨Ñ 0Ô 0Ñ1Ô1Ð1s   ¨A Á%A;Á.	A;Á:A;Úrepo_urlc                 ó   — dS )zEIn either https or ssh form, requirements must be prefixed with git+.Tr(   )rÔ   s    r   Úshould_add_vcs_url_prefixzGit.should_add_vcs_url_prefix  s	   € ð ˆtr   r   )+Ú__name__Ú
__module__Ú__qualname__r}   ÚdirnameÚ	repo_nameÚschemesÚunset_environÚdefault_arg_revÚstaticmethodÚstrr   r*   Úclassmethodr   r7   r   rD   r   rO   rQ   r   r^   r?   rq   r
   r   r|   r>   rŒ   r�   r”   r�   r˜   rp   rz   r´   r   rÃ   r‡   rÐ   rÖ   Ú__classcell__)r9   s   @r   r    r    <   s¥  ø€ € € € € Ø€DØ€GØ€Ið€Gð 1€MØ€Oàð˜sð  t¨C¤yð ð ð ñ „\ðð ð4 ð 4¨sð 4°sð 4ð 4ð 4ð 4ð 4ñ „[ð4ð$¨Sð $¸ð $Àð $ð $ð $ð $ð:  s¨C x¤ð :ð :ð :ð :ð ð¨#ð °(¸3´-ð ð ð ñ „[ðð0 ð+ Cð +¨cð +°e¸HÀS¼MÈ4Ð<OÔ6Pð +ð +ð +ñ „[ð+ðZ ð ð ¨3ð °4ð ð ð ñ „[ðð, ð+Øð+Ø'ð+Ø6@ð+à	ð+ð +ð +ñ „[ð+ðZ ð. cð .°¸#´ð .À4ð .ð .ð .ñ „[ð.ð=%Øð=%Ø(ð=%Ø7Að=%ØNQð=%à	ð=%ð =%ð =%ð =%ð~%˜3ð % Zð %¸jð %ÈTð %ð %ð %ð %ð%˜3ð % Zð %¸jð %ÈTð %ð %ð %ð %ð ð7 cð 7¨cð 7ð 7ð 7ñ „[ð7ð: ð' Cð '¨Cð 'ð 'ð 'ñ „\ð'ð< ð #ð ¨Cð °Dð ð ð ñ „[ðð ð	#ð 	# Cð 	#¨h°s¬mð 	#Àsð 	#ð 	#ð 	#ñ „[ð	#ð ðM¨ð M°¸´ð Mð Mð Mñ „[ðMð" ð# sð #¨u°S¸(À3¼-ÈÐ5QÔ/Rð #ð #ð #ð #ð #ñ „[ð#ð< ð
¨ð 
°ð 
ð 
ð 
ñ „[ð
ð ð2¨3ð 2°8¸C´=ð 2ð 2ð 2ð 2ð 2ñ „[ð2ð0 ð¨Cð °Dð ð ð ñ „\ðð ð ð ð r   r    )0ÚloggingÚos.pathr3   r¢   rŸ   Úurllib.parser¾   Úurllib.requestÚdataclassesr   Útypingr   r   r   r   Úpip._internal.exceptionsr   r	   Úpip._internal.utils.miscr
   r   r   Úpip._internal.utils.subprocessr   Ú pip._internal.vcs.versioncontrolr   r   r   r   r   r   r   Úparser»   rÂ   Ú	getLoggerr×   rM   ÚcompilerL   r   ÚVERBOSEr¥   rà   r   r   r    Úregisterr(   r   r   ú<module>rò      s  ðØ €€€Ø €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Œ<Ô €ØŒ\Ô$€
ð 
ˆÔ	˜8Ñ	$Ô	$€ð �B”Jðñô Ð ð ˆRŒZÐ+Ñ,Ô,€
ð ˆBŒJð		ð „Jñô €	ð'˜ð ' ð 'ð 'ð 'ð 'ðYð Yð Yð Yð Yˆ.ñ Yô Yð Yðx €„ˆSÑ Ô Ð Ð Ð r   