<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ž
7’Re4X  c            
   @   sM  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 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 m Z m Z d  d l m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z d  d l m Z d  d l  m! Z! d  d l" m# Z# m$ Z$ d  d l% m& Z& d  d	 l' m( Z( m) Z) d  d
 l* m+ Z+ d  d l, m- Z- m. Z. d  d l/ m0 Z0 d  d l1 m2 Z2 d d d d d d d d d d g
 Z3 d d „  Z4 Gd d „  d e( ƒ Z5 Gd d „  d e6 ƒ Z7 Gd d „  d e& ƒ Z8 Gd  d! „  d! e# j9 ƒ Z: d d d" d „ Z< e j= d# e j> ƒ Z? e j= d$ e j> ƒ Z@ d% d „  ZA d& d „  ZB e j= d' e j> ƒ ZC e j= d( e j> ƒ ZD d) d „  ZE d* d „  ZF d: d+ d „ ZH d, d- „  ZI d. d „  ZJ d/ d „  ZK d0 d1 „  ZL d2 d3 „  ZM d4 d5 „  ZN d6 d7 „  ZO d d d8 d „ ZP d d9 d „ ZQ d S(;   i    N(   u   urllibu   urlparseu	   raw_input(   u   InstallationErroru   HashMismatch(	   u   splitextu   rmtreeu   format_sizeu   display_pathu
   backup_diru   ask_path_existsu   unpack_fileu   create_download_cache_folderu   cache_download(   u   vcs(   u   logger(   u   requestsu   six(   u   BaseAdapter(   u   AuthBaseu   HTTPBasicAuth(   u   IncompleteRead(   u
   InvalidURLu   ChunkedEncodingError(   u   Response(   u   CaseInsensitiveDictu   get_file_contentu   is_urlu   url_to_pathu   path_to_urlu   is_archive_fileu   unpack_vcs_linku   unpack_file_urlu
   is_vcs_urlu   is_file_urlu   unpack_http_urlc              C   s5  t  j ƒ  }  |  d k r' t  j ƒ  } n  |  d k r‹ d t j j t j j t j j f } t j j d k rÇ d j	 | t j j g ƒ } qÇ n< |  d k r¦ t  j ƒ  } n! |  d k rÁ t  j ƒ  } n d } y t  j
 ƒ  } t  j ƒ  } Wn t k
 rd } d } Yn Xd	 j	 d
 t j d |  | f d | | f g ƒ S(   u,   Return a string representing the user agent.u   CPythonu   PyPyu   %s.%s.%su   finalu    u   Jythonu
   IronPythonu   Unknownu    u   pip/%su   %s/%s(   u   platformu   python_implementationu   python_versionu   sysu   pypy_version_infou   majoru   minoru   microu   releaselevelu   joinu   systemu   releaseu   IOErroru   pipu   __version__(   u   _implementationu   _implementation_versionu   p_systemu	   p_release(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu
   user_agent$   s2    	u
   user_agentc             B   sG   |  Ee  Z d  Z d
 d d „ Z d d „  Z d d „  Z d d „  Z d	 S(   u   MultiDomainBasicAuthc             C   s   | |  _  i  |  _ d  S(   N(   u	   promptingu	   passwords(   u   selfu	   prompting(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   __init__H   s    	u   MultiDomainBasicAuth.__init__c             C   sø   t  j  | j ƒ } | j j d d ƒ d } t  j | d  d … | f | d d  … ƒ | _ |  j j | d ƒ \ } } | d  k rž |  j | j ƒ \ } } n  | sª | rá | | f |  j | <t	 | pÉ d | pÒ d ƒ | ƒ } n  | j
 d |  j ƒ | S(   Nu   @i   i   u    u   responseiÿÿÿÿ(   NN(   u   urlparseu   urlu   netlocu   splitu
   urlunparseu	   passwordsu   getu   Noneu   parse_credentialsu   HTTPBasicAuthu   register_hooku
   handle_401(   u   selfu   requ   parsedu   netlocu   usernameu   password(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   __call__L   s    1$u   MultiDomainBasicAuth.__call__c             K   sÚ   | j  d k r | S|  j s  | St j | j ƒ } t d | j ƒ } t j d ƒ } | s` | ry | | f |  j | j <n  | j | j	 j
 ƒ  t | p™ d | p¢ d ƒ | j ƒ } | j j | |  } | j j | ƒ | S(   Ni‘  u   User for %s: u
   Password: u    (   u   status_codeu	   promptingu   urlparseu   urlu	   raw_inputu   netlocu   getpassu	   passwordsu   contentu   rawu   release_connu   HTTPBasicAuthu   requestu
   connectionu   sendu   historyu   append(   u   selfu   respu   kwargsu   parsedu   usernameu   passwordu   requ   new_resp(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu
   handle_401h   s    	$u   MultiDomainBasicAuth.handle_401c             C   sL   d | k rH | j  d d ƒ d } d | k r> | j d d ƒ S| d  f Sd S(   Nu   @i   i    u   :(   NN(   u   rsplitu   splitu   None(   u   selfu   netlocu   userinfo(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   parse_credentialsŠ   s    
u&   MultiDomainBasicAuth.parse_credentialsNT(   u   __name__u
   __module__u   __qualname__u   Trueu   __init__u   __call__u
   handle_401u   parse_credentials(   u
   __locals__(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   MultiDomainBasicAuthF   s   "u   MultiDomainBasicAuthc             B   sS   |  Ee  Z d  Z d d „  Z d d „  Z d	 d	 d
 d d „ Z e d d „  ƒ Z	 d	 S(   u   LocalFSResponsec             C   s   | |  _  d  S(   N(   u   fileobj(   u   selfu   fileobj(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   __init__•   s    u   LocalFSResponse.__init__c             C   s   t  |  j | ƒ S(   N(   u   getattru   fileobj(   u   selfu   name(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   __getattr__˜   s    u   LocalFSResponse.__getattr__c             C   s   |  j  j | ƒ S(   N(   u   fileobju   read(   u   selfu   amtu   decode_contentu   cache_content(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   read›   s    u   LocalFSResponse.readc                s9   Gd d „  d t  ƒ ‰  G‡  f d d †  d t  ƒ } | ƒ  S(   Nc             B   s,   |  Ee  Z d  Z d d „  Z d d „  Z d S(   u7   LocalFSResponse._original_response.<locals>.FakeMessagec             S   s   g  S(   N(    (   u   selfu   header(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu
   getheaders¢   s    uB   LocalFSResponse._original_response.<locals>.FakeMessage.getheadersc             S   s   g  S(   N(    (   u   selfu   headeru   default(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   get_all¥   s    u?   LocalFSResponse._original_response.<locals>.FakeMessage.get_allN(   u   __name__u
   __module__u   __qualname__u
   getheadersu   get_all(   u
   __locals__(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   FakeMessage¡   s   u   FakeMessagec                s,   |  Ee  Z d  Z e ‡  f d d †  ƒ Z d S(   u8   LocalFSResponse._original_response.<locals>.FakeResponsec                s   ˆ  ƒ  S(   N(    (   u   self(   u   FakeMessage(    u%   /tmp/pip-zej_zi-build/pip/download.pyu   msg©   s    u<   LocalFSResponse._original_response.<locals>.FakeResponse.msgN(   u   __name__u
   __module__u   __qualname__u   propertyu   msg(   u
   __locals__(   u   FakeMessage(    u%   /tmp/pip-zej_zi-build/pip/download.pyu   FakeResponse¨   s   u   FakeResponse(   u   object(   u   selfu   FakeResponse(    (   u   FakeMessageu%   /tmp/pip-zej_zi-build/pip/download.pyu   _original_responseŸ   s    u"   LocalFSResponse._original_responseNF(
   u   __name__u
   __module__u   __qualname__u   __init__u   __getattr__u   Noneu   Falseu   readu   propertyu   _original_response(   u
   __locals__(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   LocalFSResponse“   s   u   LocalFSResponsec             B   s;   |  Ee  Z d  Z d d d d d d d „ Z d d „  Z d S(   u   LocalFSAdapterc             C   s  t  j  | j ƒ } | j j ƒ  d k r= t d | j ƒ ‚ n  t  j | d  d … d | d d  … ƒ } t | ƒ }	 t ƒ  }
 d |
 _ | |
 _ t	 j
 |	 ƒ } t j j | j d d ƒ} t i t j |	 ƒ d pÕ d	 d
 6| j d 6| d 6ƒ |
 _ t t |	 d ƒ ƒ |
 _ |
 j j |
 _ |
 S(   Nu	   localhostu)   Invalid URL %r: Only localhost is allowedi   u    i   iÈ   u   usegmti    u
   text/plainu   Content-Typeu   Content-Lengthu   Last-Modifiedu   rb(   u    T(   u   urlparseu   urlu   netlocu   loweru
   InvalidURLu
   urlunparseu   url_to_pathu   Responseu   status_codeu   osu   statu   emailu   utilsu
   formatdateu   st_mtimeu   Trueu   CaseInsensitiveDictu	   mimetypesu
   guess_typeu   st_sizeu   headersu   LocalFSResponseu   openu   rawu   close(   u   selfu   requestu   streamu   timeoutu   verifyu   certu   proxiesu
   parsed_urlu   real_urlu   pathnameu   respu   statsu   modified(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   send²   s$    +			
u   LocalFSAdapter.sendc             C   s   d  S(   N(    (   u   self(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   closeÏ   s    u   LocalFSAdapter.closeN(   u   __name__u
   __module__u   __qualname__u   Noneu   sendu   close(   u
   __locals__(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   LocalFSAdapter°   s   u   LocalFSAdapterc                s>   |  Ee  Z d  Z d Z ‡  f d d †  Z ‡  f d d †  Z ‡  S(   u
   PipSessionc                sL   t  t |  ƒ j | | Ž  t ƒ  |  j d <t ƒ  |  _ |  j d t ƒ  ƒ d  S(   Nu
   User-Agentu   file://(	   u   superu
   PipSessionu   __init__u
   user_agentu   headersu   MultiDomainBasicAuthu   authu   mountu   LocalFSAdapter(   u   selfu   argsu   kwargs(   u	   __class__(    u%   /tmp/pip-zej_zi-build/pip/download.pyu   __init__×   s    u   PipSession.__init__c                s~   t  j  | ƒ } | j d k rL t  j | d  d … d | d d  … ƒ } n  | j d |  j ƒ t t |  ƒ j | | | | Ž S(   Nu   filei   u	   localhosti   u   timeout(   u	   localhost(   u   urlparseu   schemeu
   urlunparseu
   setdefaultu   timeoutu   superu
   PipSessionu   request(   u   selfu   methodu   urlu   argsu   kwargsu   parsed(   u	   __class__(    u%   /tmp/pip-zej_zi-build/pip/download.pyu   requestã   s
    .u   PipSession.requestN(   u   __name__u
   __module__u   __qualname__u   Noneu   timeoutu   __init__u   request(   u
   __locals__(    (   u	   __class__u%   /tmp/pip-zej_zi-build/pip/download.pyu
   PipSessionÓ   s   u
   PipSessionc       
      C   sÜ  | d
 k r t ƒ  } n  t j |  ƒ } | rq| j d ƒ j ƒ  } | d k r| | r| | j d ƒ r| t d | |  f ƒ ‚ n  | d k r,|  j d d ƒ d } | j	 d d ƒ } t
 j | ƒ } | rï | j d ƒ d | j d d ƒ d } n  t j | ƒ } | j d ƒ r#d | j d ƒ } n  | }  qq| j |  ƒ } | j ƒ  t j r^| j | j f S| j | j f Sn  y t |  ƒ } | j ƒ  } Wn8 t k
 rÇt j ƒ  d }	 t d	 t |	 ƒ ƒ ‚ Yn X| j ƒ  |  | f S(   u   Gets the content of a file; it may be a filename, file: URL, or
    http: URL.  Returns (location, content).  Content is unicode.i   u   fileu   httpu6   Requirements file %s references URL %s, which is localu   :u   \u   /u   |u$   Could not open requirements file: %sN(   u   Noneu
   PipSessionu
   _scheme_reu   searchu   groupu   loweru
   startswithu   InstallationErroru   splitu   replaceu   _url_slash_drive_reu   matchu   urllibu   unquoteu   lstripu   getu   raise_for_statusu   sixu   PY3u   urlu   textu   contentu   openu   readu   IOErroru   sysu   exc_infou   stru   close(
   u   urlu
   comes_fromu   sessionu   matchu   schemeu   pathu   respu   fu   contentu   e(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   get_file_contentð   sB    *	
	
u   ^(http|https|file):u   /*([a-z])\|c             C   sI   d |  k r d S|  j d d ƒ d j ƒ  } | d d d d g t j k S(	   u)   Returns true if the name looks like a URLu   :i   i    u   httpu   httpsu   fileu   ftpF(   u   Falseu   splitu   loweru   vcsu   all_schemes(   u   nameu   scheme(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   is_url   s    c             C   s‰   |  j  d ƒ s t d |  ƒ ‚ |  t d ƒ d … j d ƒ } t j | ƒ } t j | ƒ r{ | d d | d d … } n
 d | } | S(   u(   
    Convert a file: URL to a path.
    u   file:u4   You can only turn file: urls into filenames (not %r)Nu   /i    u   :i   (   u
   startswithu   AssertionErroru   lenu   lstripu   urllibu   unquoteu   _url_drive_reu   match(   u   urlu   path(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   url_to_path(  s    
u	   ^([a-z]):u   ^([a-z])[:|]c             C   s‹   t  j j t  j j |  ƒ ƒ }  t  j j |  ƒ \ } }  |  j t  j j ƒ } d j d d „  | Dƒ ƒ } | s | j d ƒ } n  d | | S(   uh   
    Convert a path to a file: URL.  The path will be made absolute and have
    quoted path parts.
    u   /c             S   s   g  |  ] } t  j | ƒ ‘ q S(    (   u   urllibu   quote(   u   .0u   part(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu
   <listcomp>C  s   	 u   path_to_url.<locals>.<listcomp>u   file:///(	   u   osu   pathu   normpathu   abspathu
   splitdriveu   splitu   sepu   joinu   lstrip(   u   pathu   driveu   filepathu   url(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   path_to_url;  s    c             C   s0   d	 } t  |  ƒ d j ƒ  } | | k r, d
 Sd S(   u9   Return True if `name` is a considered as an archive file.u   .zipu   .tar.gzu   .tar.bz2u   .tgzu   .taru	   .pybundleu   .whli   (   u   .zipu   .tar.gzu   .tar.bz2u   .tgzu   .taru	   .pybundleu   .whlTF(   u   splitextu   loweru   Trueu   False(   u   nameu   archivesu   ext(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   is_archive_fileI  s     c             C   s3   t  |  ƒ } | r" | j | ƒ n | j | ƒ d  S(   N(   u   _get_used_vcs_backendu   exportu   unpack(   u   linku   locationu   only_downloadu   vcs_backend(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   unpack_vcs_linkS  s    c             C   s=   x6 t  j D]+ } |  j | j k r
 | |  j ƒ } | Sq
 Wd  S(   N(   u   vcsu   backendsu   schemeu   schemesu   url(   u   linku   backendu   vcs_backend(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   _get_used_vcs_backend[  s    u   _get_used_vcs_backendc             C   s   t  t |  ƒ ƒ S(   N(   u   boolu   _get_used_vcs_backend(   u   link(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu
   is_vcs_urlb  s    c             C   s   |  j  j ƒ  j d ƒ S(   Nu   file:(   u   urlu   loweru
   startswith(   u   link(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   is_file_urlf  s    c             C   s©   |  j  t j | j ƒ j  k rQ t j d |  j  | | j f ƒ t d | ƒ ‚ n  |  j ƒ  | j k r¥ t j d | |  j ƒ  | j f ƒ t d | j | f ƒ ‚ n  d  S(   NuP   Hash digest size of the package %d (%s) doesn't match the expected hash name %s!u!   Hash name mismatch for package %su?   Hash of the package %s (%s) doesn't match the expected hash %s!u   Bad %s hash for package %s(	   u   digest_sizeu   hashlibu   newu	   hash_nameu   loggeru   fatalu   HashMismatchu	   hexdigestu   hash(   u   download_hashu   link(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   _check_hashj  s    		u   _check_hashc             C   s˜   y t  j | j ƒ } Wn6 t t f k
 rN t j d | j | f ƒ d  SYn Xt |  d ƒ } x) | j	 d ƒ } | sz Pn  | j
 | ƒ qa | j ƒ  | S(   Nu'   Unsupported hash name %s for package %su   rbi   (   u   hashlibu   newu	   hash_nameu
   ValueErroru	   TypeErroru   loggeru   warnu   Noneu   openu   readu   updateu   close(   u   target_fileu   linku   download_hashu   fpu   chunk(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   _get_hash_from_fileu  s    	
u   _get_hash_from_filec                s  t  | d ƒ } d  } | j ro | j ro y t j | j ƒ } Wqo t k
 rk t j d | j | f ƒ Yqo Xn  y t	 ˆ  j
 d ƒ } Wn! t t t f k
 r© d } Yn Xd } | d k pÀ | } | j } z | r| rû t j d | t | ƒ f ƒ q t j d | ƒ n t j d	 | ƒ t j d
 | ƒ ‡  f d d †  }	 x› |	 d ƒ D] }
 | t |
 ƒ 7} | r´| sŒt j d t | ƒ ƒ q´t j d d | | t | ƒ f ƒ n  | d  k	 rÐ| j |
 ƒ n  | j |
 ƒ qPW| j ƒ  Wd  | rt j d t | ƒ ƒ n  X| S(   Nu   wbu'   Unsupported hash name %s for package %su   content-lengthi    i(   iè  u   Downloading %s (%s): u   Downloading %s (unknown size): u   Downloading %su   Downloading from URL %sc             3   s¤   yd y, x% ˆ  j  j |  d d ƒD] } | Vq WWn1 t k
 rb } z t | ƒ ‚ WYd  d  } ~ Xn XWn9 t k
 rŸ x$ ˆ  j  j |  ƒ } | s“ Pn  | Vqw Yn Xd  S(   Nu   decode_contentF(   u   rawu   streamu   Falseu   IncompleteReadu   ChunkedEncodingErroru   AttributeErroru   read(   u
   chunk_sizeu   chunku   e(   u   resp(    u%   /tmp/pip-zej_zi-build/pip/download.pyu	   resp_read   s    #u    _download_url.<locals>.resp_readi   u   %su	   %3i%%  %sid   u   %s downloadedi@œ  (   u   openu   Noneu   hashu	   hash_nameu   hashlibu   newu
   ValueErroru   loggeru   warnu   intu   headersu   KeyErroru	   TypeErroru   show_urlu   start_progressu   format_sizeu   notifyu   infou   lenu   show_progressu   updateu   writeu   closeu   end_progress(   u   respu   linku   temp_locationu   fpu   download_hashu   total_lengthu
   downloadedu   show_progressu   show_urlu	   resp_readu   chunk(    (   u   respu%   /tmp/pip-zej_zi-build/pip/download.pyu   _download_url†  sF    "	 (u   _download_urlc             C   s  d } t j j | | j ƒ } t j j | ƒ râ t d t | ƒ d	 ƒ } | d k r^ d
 } qâ | d k r‘ t	 j
 d t | ƒ ƒ t j | ƒ qâ | d k râ t | ƒ } t	 j
 d t | ƒ t | ƒ f ƒ t j | | ƒ qâ n  | rt j |  | ƒ t	 j d t | ƒ ƒ n  d  S(   Nu/   The file %s exists. (i)gnore, (w)ipe, (b)ackup u   iu   wu   bu   Deleting %su   Backing up %s to %su   Saved %sT(   u   iu   wu   bF(   u   Trueu   osu   pathu   joinu   filenameu   existsu   ask_path_existsu   display_pathu   Falseu   loggeru   warnu   removeu
   backup_diru   shutilu   moveu   copyu   notify(   u   filenameu   locationu   content_typeu   linku   copyu   download_locationu   responseu	   dest_file(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu
   _copy_fileÂ  s&    		u
   _copy_filec          0   C   s°  | d  k r t ƒ  } n  t j d d ƒ } d  } |  j j d d ƒ d } d } d  }	 d  }
 d  } | rØ t j j	 | t
 j | d ƒ ƒ }	 |	 d }
 t j j |	 ƒ o³ t j j |
 ƒ } t j j | ƒ sØ t | ƒ qØ n  d  } | rt j j	 | |  j ƒ } t j j | ƒ sd  } qn  | r¸| } t j | ƒ d } t j d | ƒ |  j r¸t | |  ƒ } y t | |  ƒ Wqµt k
 r±t j d	 | ƒ d  } t j | ƒ d  } YqµXq¸n  | r‡| r‡t |
 ƒ  } | j ƒ  j ƒ  } Wd  QX|	 } t j d
 |	 ƒ |  j r‡|  j r‡t |	 |  ƒ } y t | |  ƒ Wq„t k
 r€t j d | ƒ d  } t j |	 ƒ t j |
 ƒ d } Yq„Xq‡n  | s-y# | j | d d ƒ} | j  ƒ  WnH t! j" k
 rú} z% t j# d | j$ j% |  f ƒ ‚  WYd  d  } ~ Xn X| j& j d d ƒ } |  j } | j& j d ƒ } | r^t' j( | ƒ \ } } | j d ƒ pX| } n  t) | ƒ d } | s™t j* | ƒ } | r™| | 7} q™n  | rá|  j | j k rát j j) | j ƒ d } | rá| | 7} qán  t j j	 | | ƒ } t+ | |  | ƒ } |  j r-|  j r-t | |  ƒ q-n  | rP| rPt, | | | |  ƒ n  t- | | | |  ƒ |	 rƒ| rƒt. |	 | | ƒ n  | pŒ| sŸt j | ƒ n  t j/ | ƒ d  S(   Nu   -unpacku   pip-u   #i   i    u    u   .content-typeu   File was already downloaded %su;   Previously-downloaded file %s has bad hash, re-downloading.u   Using download cache from %su,   Cached file %s has bad hash, re-downloading.u   streamu   HTTP error %s while getting %su   content-typeu   content-dispositionu   filenameFT(0   u   Noneu
   PipSessionu   tempfileu   mkdtempu   urlu   splitu   Falseu   osu   pathu   joinu   urllibu   quoteu   existsu   isdiru   create_download_cache_folderu   filenameu	   mimetypesu
   guess_typeu   loggeru   notifyu   hashu   _get_hash_from_fileu   _check_hashu   HashMismatchu   warnu   unlinku   openu   readu   stripu	   hash_nameu   getu   Trueu   raise_for_statusu   requestsu	   HTTPErroru   fatalu   responseu   status_codeu   headersu   cgiu   parse_headeru   splitextu   guess_extensionu   _download_urlu
   _copy_fileu   unpack_fileu   cache_downloadu   rmdir(   u   linku   locationu   download_cacheu   download_diru   sessionu   temp_diru   temp_locationu
   target_urlu   already_cachedu
   cache_fileu   cache_content_type_fileu   download_hashu   already_downloadedu   content_typeu   fpu   respu   excu   filenameu   content_dispositionu   typeu   paramsu   ext(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   unpack_http_urlØ  s²    
			c       
      C   s¯  t  |  j ƒ } d } t j j | ƒ r` t j j | ƒ rF t | ƒ n  t j | | d d ƒd  S|  j
 rˆ t | |  ƒ } t | |  ƒ n  | rMt j j | |  j ƒ } t j j | ƒ rMt j | ƒ d } t j d | ƒ |  j
 rAt | |  ƒ } y t | |  ƒ d } WqGt k
 r=t j d | ƒ t j | ƒ YqGXqJd } qMn  | r\| }	 n | }	 t j |	 ƒ d } t |	 | | |  ƒ | r«| r«t |	 | | |  ƒ n  d  S(   Nu   symlinksi    u   File was already downloaded %su;   Previously-downloaded file %s has bad hash, re-downloading.FT(   u   url_to_pathu   url_without_fragmentu   Falseu   osu   pathu   isdiru   rmtreeu   shutilu   copytreeu   Trueu   hashu   _get_hash_from_fileu   _check_hashu   joinu   filenameu   existsu	   mimetypesu
   guess_typeu   loggeru   notifyu   HashMismatchu   warnu   unlinku   unpack_fileu
   _copy_file(
   u   linku   locationu   download_diru	   link_pathu   already_downloadedu   link_path_hashu   download_pathu   content_typeu   download_hashu	   from_path(    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   unpack_file_urlR  sB    		
	F(R   u   cgiu   email.utilsu   emailu   hashlibu   getpassu	   mimetypesu   osu   platformu   reu   shutilu   sysu   tempfileu   pipu   pip.backwardcompatu   urllibu   urlparseu	   raw_inputu   pip.exceptionsu   InstallationErroru   HashMismatchu   pip.utilu   splitextu   rmtreeu   format_sizeu   display_pathu
   backup_diru   ask_path_existsu   unpack_fileu   create_download_cache_folderu   cache_downloadu   pip.vcsu   vcsu   pip.logu   loggeru   pip._vendoru   requestsu   sixu   pip._vendor.requests.adaptersu   BaseAdapteru   pip._vendor.requests.authu   AuthBaseu   HTTPBasicAuthu   pip._vendor.requests.compatu   IncompleteReadu   pip._vendor.requests.exceptionsu
   InvalidURLu   ChunkedEncodingErroru   pip._vendor.requests.modelsu   Responseu   pip._vendor.requests.structuresu   CaseInsensitiveDictu   __all__u
   user_agentu   MultiDomainBasicAuthu   objectu   LocalFSResponseu   LocalFSAdapteru   Sessionu
   PipSessionu   Noneu   get_file_contentu   compileu   Iu
   _scheme_reu   _url_slash_drive_reu   is_urlu   url_to_pathu	   _drive_reu   _url_drive_reu   path_to_urlu   is_archive_fileu   Falseu   unpack_vcs_linku   _get_used_vcs_backendu
   is_vcs_urlu   is_file_urlu   _check_hashu   _get_hash_from_fileu   _download_urlu
   _copy_fileu   unpack_http_urlu   unpack_file_url(    (    (    u%   /tmp/pip-zej_zi-build/pip/download.pyu   <module>   sh   @	"M#,
<y