£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

7Reۗ  c               @   s  d  d l  m Z d  d l Z d  d l Z d  d l Z e j d  d k  rd  d l m Z e f Z e	 Z
 d  d l m 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 m Z d  d	 l m Z m Z m Z m Z m Z m  Z  m! Z! d
 d   Z d  d l" Z" d  d l" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, d  d l- Z- d  d l. Z. d  d l/ Z0 d  d l1 m1 Z1 d  d l2 Z2 e3 Z3 d  d l4 m5 Z6 d  d l4 m7 Z8 d a: d d   Z; nod  d l< m Z e= f Z e= Z
 d  d l< m> Z d  d l Z d  d l Z d  d l 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$ m Z m# Z# m Z m Z m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, d  d lA m& Z& m% Z% m  Z  d  d lB jC Z- d  d l@ jD Z" d  d lE jC Z. d  d l0 Z0 d  d lF m1 Z1 d  d lG jH Z2 eI Z3 d  d l4 m8 Z8 e6 Z6 y d  d lJ mK ZK mL ZL Wn@ eM k
 rGd d   d eN  ZL d d   ZO d d   ZK Yn Xy d  d l mP ZQ Wn( eM k
 rGd d    d  eR  ZQ Yn Xy d  d! l mS ZS Wn. eM k
 r"e jT e jU Bd d" d#  ZS Yn Xd  d$ lV mW ZX eY eX d%  rKeX ZW n< d  d& lV mZ Z[ Gd' d(   d( e[  ZZ Gd) d*   d* eX  ZW y d  d+ l\ m] Z] Wn eM k
 rd, d-   Z] Yn Xy d  d l^ Z^ Wn" eM k
 rd d. l m^ Z^ Yn Xy
 e_ Z_ Wn. e` k
 r+d  d/ la mb Zb d0 d1   Z_ Yn Xy e jc Zc e jd Zd WnQ ee k
 re jf   Zg eg d2 k rsd3 Zh n d4 Zh d5 d6   Zc d7 d8   Zd Yn Xy d  d9 li mj Zj Wn[ eM k
 rd  d: lk ml Zl mm Zm d  d l Z e jn d;  Zo d< d=   Zp d> d?   Zj Yn Xy d  d@ lq mr Zr Wn" eM k
 r@d  d@ ls mr Zr Yn Xe j d dA  db k  rie1   jt Zt n d  dC lq mt Zt y d  dD la mu Zu Wnp eM k
 rd  dE la mv Zv y d  dF lw mx Zy Wn! eM k
 rdG dH dI  Zy Yn XGdJ dK   dK ev  Zu Yn Xy d  dL lz m{ Z{ Wn! eM k
 r7d dM dN  Z{ Yn Xy d  dO la m| Z| Wn eM k
 ry d  dP l} m~ Z Wn" eM k
 rd  dP l m~ Z Yn Xy  d  dQ l m Z m Z m Z Wn eM k
 rYn XGdR dS   dS e  Z| Yn Xy d  dT l m Z m Z Wn eM k
 re jn dU e j  Z dV dW   Z GdX dY   dY e  Z d dZ d[  Z Gd\ d]   d] e  Z Gd^ d_   d_ e  Z Gd` da   da eR  Z Yn Xd S(c   i    (   u   absolute_importNi   (   u   StringIO(   u   FileTypei   (   u   shutil(   u   urlparseu
   urlunparseu   urljoinu   urlsplitu
   urlunsplit(   u   urlretrieveu   quoteu   unquoteu   url2pathnameu   pathname2urlu   ContentTooShortErroru	   splittypec             C   s+   t  |  t  r! |  j d  }  n  t |   S(   Nu   utf-8(   u
   isinstanceu   unicodeu   encodeu   _quote(   u   s(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   quote   s    u   quote(
   u   Requestu   urlopenu   URLErroru	   HTTPErroru   HTTPBasicAuthHandleru   HTTPPasswordMgru   HTTPSHandleru   HTTPHandleru   HTTPRedirectHandleru   build_opener(   u
   HTMLParser(   u   ifilter(   u   ifilterfalsec             C   sY   t  d k r* d d l } | j d  a  n  t  j |   } | rO | j d d  Sd |  f S(   uJ   splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.i    Nu   ^(.*)@(.*)$i   i   (   u	   _userprogu   Noneu   reu   compileu   matchu   group(   u   hostu   reu   match(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   splituser-   s     u	   splituser(   u   TextIOWrapper(	   u   urlparseu
   urlunparseu   urljoinu	   splituseru   quoteu   unquoteu   urlsplitu
   urlunsplitu	   splittype(   u   urlopenu   urlretrieveu   Requestu   url2pathnameu   pathname2urlu   HTTPBasicAuthHandleru   HTTPPasswordMgru   HTTPSHandleru   HTTPHandleru   HTTPRedirectHandleru   build_opener(   u	   HTTPErroru   URLErroru   ContentTooShortError(   u   filterfalse(   u   match_hostnameu   CertificateErrorc             B   s   |  Ee  Z d  Z d S(   u   CertificateErrorN(   u   __name__u
   __module__u   __qualname__(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   CertificateErrorU   s   u   CertificateErrorc             C   s   g  } x[ |  j  d  D]J } | d k r8 | j d  q t j |  } | j | j d d   q Wt j d d j |  d t j  S(	   Nu   .u   *u   [^.]+u   \*u   [^.]*u   \Au   \.u   \Z(   u   splitu   appendu   reu   escapeu   replaceu   compileu   joinu
   IGNORECASE(   u   dnu   patsu   frag(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   _dnsname_to_patY   s    u   _dnsname_to_patc             C   sg  |  s t  d   n  g  } |  j d f   } xI | D]A \ } } | d k r4 t |  j |  re d S| j |  q4 q4 W| s xi |  j d f   D]R } xI | D]A \ } } | d k r t |  j |  r d S| j |  q q Wq Wn  t |  d k r(t d | d	 j t t	 |   f   n; t |  d k rWt d
 | | d f   n t d   d S(   u7  Verify that *cert* (in decoded format as returned by
        SSLSocket.getpeercert()) matches the *hostname*.  RFC 2818 rules
        are mostly followed, but IP addresses are not accepted for *hostname*.

        CertificateError is raised on failure. On success, the function
        returns nothing.
        u   empty or no certificateu   subjectAltNameu   DNSNu   subjectu
   commonNamei   u&   hostname %r doesn't match either of %su   , u   hostname %r doesn't match %ri    u=   no appropriate commonName or subjectAltName fields were found(
   u
   ValueErroru   getu   _dnsname_to_patu   matchu   appendu   lenu   CertificateErroru   joinu   mapu   repr(   u   certu   hostnameu   dnsnamesu   sanu   keyu   valueu   sub(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   match_hostnameg   s.    %u   match_hostname(   u   SimpleNamespacec             B   s&   |  Ee  Z d  Z d Z d d   Z d S(   u	   ContaineruR   
        A generic container for when multiple values need to be returned
        c             K   s   |  j  j |  d  S(   N(   u   __dict__u   update(   u   selfu   kwargs(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __init__   s    u   Container.__init__N(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   Container   s   u	   Container(   u   whichc                s  d d   } t  j j    r5 |   |  r1   Sd S| d k r\ t  j j d t  j  } n  | sf d S| j t  j  } t	 j
 d k rt  j | k r | j d t  j  n  t  j j d d  j t  j  } t   f d d	   | D  r   g } q  f d
 d   | D } n	   g } t   } xu | D]m } t  j j |  } | | k r-| j |  x9 | D]. }	 t  j j | |	  }
 | |
 |  re|
 SqeWq-q-Wd S(   uK  Given a command, mode, and a PATH string, return the path which
        conforms to the given mode on the PATH, or None if there is no such
        file.

        `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result
        of os.environ.get("PATH"), or can be overridden with a custom search
        path.

        c             S   s5   t  j j |   o4 t  j |  |  o4 t  j j |   S(   N(   u   osu   pathu   existsu   accessu   isdir(   u   fnu   mode(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   _access_check   s    $u   which.<locals>._access_checku   PATHu   win32i    u   PATHEXTu    c             3   s*   |  ]  }   j    j | j     Vq d  S(   N(   u   loweru   endswith(   u   .0u   ext(   u   cmd(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   <genexpr>   s    u   which.<locals>.<genexpr>c                s   g  |  ] }   |  q S(    (    (   u   .0u   ext(   u   cmd(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   <listcomp>   s   	 u   which.<locals>.<listcomp>N(   u   osu   pathu   dirnameu   Noneu   environu   getu   defpathu   splitu   pathsepu   sysu   platformu   curdiru   insertu   anyu   setu   normcaseu   addu   join(   u   cmdu   modeu   pathu   _access_checku   pathextu   filesu   seenu   diru   normdiru   thefileu   name(    (   u   cmdu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   which   s8    !		u   which(   u   ZipFileu	   __enter__(   u
   ZipExtFilec             B   s8   |  Ee  Z d  Z d d   Z d d   Z d d   Z d S(   u
   ZipExtFilec             C   s   |  j  j | j   d  S(   N(   u   __dict__u   update(   u   selfu   base(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __init__   s    u   ZipExtFile.__init__c             C   s   |  S(   N(    (   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   __enter__   s    u   ZipExtFile.__enter__c             G   s   |  j    d  S(   N(   u   close(   u   selfu   exc_info(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __exit__   s    u   ZipExtFile.__exit__N(   u   __name__u
   __module__u   __qualname__u   __init__u	   __enter__u   __exit__(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   ZipExtFile   s   u
   ZipExtFilec             B   s8   |  Ee  Z d  Z d d   Z d d   Z d d   Z d S(   u   ZipFilec             C   s   |  S(   N(    (   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   __enter__   s    u   ZipFile.__enter__c             G   s   |  j    d  S(   N(   u   close(   u   selfu   exc_info(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __exit__   s    u   ZipFile.__exit__c             O   s   t  j |  | |  } t |  S(   N(   u   BaseZipFileu   openu
   ZipExtFile(   u   selfu   argsu   kwargsu   base(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   open   s    u   ZipFile.openN(   u   __name__u
   __module__u   __qualname__u	   __enter__u   __exit__u   open(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   ZipFile   s   u   ZipFile(   u   python_implementationc               C   s@   d t  j k r d St j d k r& d St  j j d  r< d Sd S(   u6   Return a string identifying the Python implementation.u   PyPyu   javau   Jythonu
   IronPythonu   CPython(   u   sysu   versionu   osu   nameu
   startswith(    (    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   python_implementation  s    u   python_implementation(   u	   sysconfig(   u   Callablec             C   s   t  |  t  S(   N(   u
   isinstanceu   Callable(   u   obj(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   callable  s    u   callableu   mbcsu   strictu   surrogateescapec             C   sO   t  |  t  r |  St  |  t  r2 |  j t t  St d t |   j   d  S(   Nu   expect bytes or str, not %s(	   u
   isinstanceu   bytesu	   text_typeu   encodeu   _fsencodingu	   _fserrorsu	   TypeErroru   typeu   __name__(   u   filename(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   fsencode#  s    u   fsencodec             C   sO   t  |  t  r |  St  |  t  r2 |  j t t  St d t |   j   d  S(   Nu   expect bytes or str, not %s(	   u
   isinstanceu	   text_typeu   bytesu   decodeu   _fsencodingu	   _fserrorsu	   TypeErroru   typeu   __name__(   u   filename(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   fsdecode,  s    u   fsdecode(   u   detect_encoding(   u   BOM_UTF8u   lookupu   coding[:=]\s*([-\w.]+)c             C   sd   |  d d  j    j d d  } | d k s= | j d  rA d S| d k s\ | j d  r` d S|  S(   u(   Imitates get_normal_name in tokenizer.c.Ni   u   _u   -u   utf-8u   utf-8-u   latin-1u
   iso-8859-1u   iso-latin-1u   latin-1-u   iso-8859-1-u   iso-latin-1-(   u   latin-1u
   iso-8859-1u   iso-latin-1(   u   latin-1-u   iso-8859-1-u   iso-latin-1-(   u   loweru   replaceu
   startswith(   u   orig_encu   enc(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   _get_normal_name=  s    "u   _get_normal_namec                s  y  j  j  Wn t k
 r* d  Yn Xd	   d } d }  f d d   }    f d d   } |   } | j t  r d
   | d d  } d } n  | s | g  f S| |  } | r | | g f S|   } | s | | g f S| |  } | r| | | g f S| | | g f S(   u>  
        The detect_encoding() function is used to detect the encoding that should
        be used to decode a Python source file.  It requires one argment, readline,
        in the same way as the tokenize() generator.

        It will call readline a maximum of twice, and return the encoding used
        (as a string) and a list of any lines (left as bytes) it has read in.

        It detects the encoding from the presence of a utf-8 bom or an encoding
        cookie as specified in pep-0263.  If both a bom and a cookie are present,
        but disagree, a SyntaxError will be raised.  If the encoding cookie is an
        invalid charset, raise a SyntaxError.  Note that if a utf-8 bom is found,
        'utf-8-sig' is returned.

        If no encoding is specified, then the default of 'utf-8' will be returned.
        u   utf-8c                  s(   y     SWn t  k
 r# d SYn Xd  S(   Ns    (   u   StopIteration(    (   u   readline(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   read_or_stop`  s    u%   detect_encoding.<locals>.read_or_stopc                s9  y |  j  d  } WnE t k
 rZ d }  d  k	 rJ d j |   } n  t |   Yn Xt j |  } | st d  St | d  } y t |  } WnI t	 k
 r  d  k r d | } n d j  |  } t |   Yn X  r5| j
 d k r( d  k r
d } n d j   } t |   n  | d	 7} n  | S(
   Nu   utf-8u'   invalid or missing encoding declarationu   {} for {!r}i    u   unknown encoding: u   unknown encoding for {!r}: {}u   encoding problem: utf-8u    encoding problem for {!r}: utf-8u   -sig(   u   decodeu   UnicodeDecodeErroru   Noneu   formatu   SyntaxErroru	   cookie_reu   findallu   _get_normal_nameu   lookupu   LookupErroru   name(   u   lineu   line_stringu   msgu   matchesu   encodingu   codec(   u	   bom_foundu   filename(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   find_cookief  s6    			u$   detect_encoding.<locals>.find_cookiei   Nu	   utf-8-sigFT(   u   __self__u   nameu   AttributeErroru   Noneu   Falseu
   startswithu   BOM_UTF8u   True(   u   readlineu   encodingu   defaultu   read_or_stopu   find_cookieu   firstu   second(    (   u	   bom_foundu   filenameu   readlineu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   detect_encodingH  s4    &		
	u   detect_encoding(   u   escapei   i   (   u   unescape(   u   ChainMap(   u   MutableMapping(   u   recursive_repru   ...c                s     f d d   } | S(   um   
            Decorator to make a repr function return fillvalue for a recursive
            call
            c                sp   t          f d d   } t  d  | _ t  d  | _ t  d  | _ t  d i   | _ | S(   Nc                sW   t  |   t   f } |  k r%   S j |  z  |   } Wd   j |  X| S(   N(   u   idu	   get_identu   addu   discard(   u   selfu   keyu   result(   u	   fillvalueu   repr_runningu   user_function(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   wrapper  s    u=   _recursive_repr.<locals>.decorating_function.<locals>.wrapperu
   __module__u   __doc__u   __name__u   __annotations__(   u   setu   getattru
   __module__u   __doc__u   __name__u   __annotations__(   u   user_functionu   wrapper(   u	   fillvalue(   u   repr_runningu   user_functionu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   decorating_function  s    	u,   _recursive_repr.<locals>.decorating_function(    (   u	   fillvalueu   decorating_function(    (   u	   fillvalueu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   _recursive_repr  s    u   _recursive_reprc             B   s  |  Ee  Z d  Z d Z d d   Z d d   Z d d   Z d& d d	  Z d
 d   Z	 d d   Z
 d d   Z d d   Z e   d d    Z e d d    Z d d   Z e Z d d   Z e d d    Z d d   Z d d   Z d  d!   Z d" d#   Z d$ d%   Z d& S('   u   ChainMapu   A ChainMap groups multiple dicts (or other mappings) together
        to create a single, updateable view.

        The underlying mappings are stored in a list.  That list is public and can
        accessed or updated using the *maps* attribute.  There is no other state.

        Lookups search the underlying mappings successively until a key is found.
        In contrast, writes, updates, and deletions only operate on the first
        mapping.

        c             G   s   t  |  p i  g |  _ d S(   u   Initialize a ChainMap by setting *maps* to the given mappings.
            If no mappings are provided, a single empty dictionary is used.

            N(   u   listu   maps(   u   selfu   maps(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __init__  s    u   ChainMap.__init__c             C   s   t  |   d  S(   N(   u   KeyError(   u   selfu   key(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __missing__  s    u   ChainMap.__missing__c             C   sB   x2 |  j  D]' } y | | SWq
 t k
 r0 Yq
 Xq
 W|  j |  S(   N(   u   mapsu   KeyErroru   __missing__(   u   selfu   keyu   mapping(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __getitem__  s    	u   ChainMap.__getitem__c             C   s   | |  k r |  | S| S(   N(    (   u   selfu   keyu   default(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   get  s    u   ChainMap.getc             C   s   t  t   j |  j    S(   N(   u   lenu   setu   unionu   maps(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __len__  s    u   ChainMap.__len__c             C   s   t  t   j |  j    S(   N(   u   iteru   setu   unionu   maps(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __iter__  s    u   ChainMap.__iter__c                s    t    f d d   |  j D  S(   Nc             3   s   |  ] }   | k Vq d  S(   N(    (   u   .0u   m(   u   key(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   <genexpr>  s    u(   ChainMap.__contains__.<locals>.<genexpr>(   u   anyu   maps(   u   selfu   key(    (   u   keyu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __contains__  s    u   ChainMap.__contains__c             C   s   t  |  j  S(   N(   u   anyu   maps(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __bool__  s    u   ChainMap.__bool__c             C   s%   d j  |  d j t t |  j    S(   Nu   {0.__class__.__name__}({1})u   , (   u   formatu   joinu   mapu   repru   maps(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __repr__  s    u   ChainMap.__repr__c             G   s   |  t  j | |   S(   u?   Create a ChainMap with a single dict created from the iterable.(   u   dictu   fromkeys(   u   clsu   iterableu   args(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   fromkeys  s    u   ChainMap.fromkeysc             C   s*   |  j  |  j d j   |  j d d   S(   uH   New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]i    i   N(   u	   __class__u   mapsu   copy(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   copy	  s    u   ChainMap.copyc             C   s   |  j  i  |  j  S(   u;   New ChainMap with a new dict followed by all previous maps.(   u	   __class__u   maps(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   new_child  s    u   ChainMap.new_childc             C   s   |  j  |  j d d    S(   u   New ChainMap from maps[1:].i   N(   u	   __class__u   maps(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   parents  s    u   ChainMap.parentsc             C   s   | |  j  d | <d  S(   Ni    (   u   maps(   u   selfu   keyu   value(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __setitem__  s    u   ChainMap.__setitem__c             C   s@   y |  j  d | =Wn' t k
 r; t d j |    Yn Xd  S(   Ni    u(   Key not found in the first mapping: {!r}(   u   mapsu   KeyErroru   format(   u   selfu   key(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __delitem__  s    u   ChainMap.__delitem__c             C   s:   y |  j  d j   SWn t k
 r5 t d   Yn Xd S(   uP   Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.i    u#   No keys found in the first mapping.N(   u   mapsu   popitemu   KeyError(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   popitem!  s    u   ChainMap.popitemc             G   sI   y |  j  d j | |  SWn' t k
 rD t d j |    Yn Xd S(   uW   Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].i    u(   Key not found in the first mapping: {!r}N(   u   mapsu   popu   KeyErroru   format(   u   selfu   keyu   args(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   pop(  s    u   ChainMap.popc             C   s   |  j  d j   d S(   u'   Clear maps[0], leaving maps[1:] intact.i    N(   u   mapsu   clear(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   clear/  s    u   ChainMap.clearN(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u   __missing__u   __getitem__u   Noneu   getu   __len__u   __iter__u   __contains__u   __bool__u   _recursive_repru   __repr__u   classmethodu   fromkeysu   copyu   __copy__u	   new_childu   propertyu   parentsu   __setitem__u   __delitem__u   popitemu   popu   clear(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   ChainMap  s(   u   ChainMap(   u   cache_from_sourcec             C   sG   |  j  d  s t  | d  k r* t } n  | r9 d } n d } |  | S(   Nu   .pyu   cu   o(   u   endswithu   AssertionErroru   Noneu	   __debug__(   u   pathu   debug_overrideu   suffix(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   cache_from_source6  s    		u   cache_from_source(   u   OrderedDict(   u	   get_ident(   u   KeysViewu
   ValuesViewu	   ItemsViewc             B   sv  |  Ee  Z d  Z d Z d d   Z e j d d  Z e j d d  Z d d	   Z d
 d   Z	 d d   Z
 d5 d d  Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z e Z e   Z e d d  Z d4 d  d!  Z d4 d" d#  Z d$ d%   Z d& d'   Z e d4 d( d)   Z d* d+   Z d, d-   Z  d. d/   Z! d0 d1   Z" d2 d3   Z# d4 S(6   u   OrderedDictu)   Dictionary that remembers insertion orderc             O   s   t  |  d k r+ t d t  |    n  y |  j WnA t k
 ry g  |  _ } | | d g | d d  <i  |  _ Yn X|  j | |   d S(   u   Initialize an ordered dictionary.  Signature is the same as for
            regular dictionaries, but keyword arguments are not recommended
            because their insertion order is arbitrary.

            i   u$   expected at most 1 arguments, got %dN(   u   lenu	   TypeErroru   _OrderedDict__rootu   AttributeErroru   Noneu   _OrderedDict__mapu   _OrderedDict__update(   u   selfu   argsu   kwdsu   root(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __init__]  s    u   OrderedDict.__init__c             C   s\   | |  k rH |  j  } | d } | | | g | d <| d <|  j | <n  | |  | |  d S(   u!   od.__setitem__(i, y) <==> od[i]=yi    i   N(   u   _OrderedDict__rootu   _OrderedDict__map(   u   selfu   keyu   valueu   dict_setitemu   rootu   last(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __setitem__m  s
    	
)u   OrderedDict.__setitem__c             C   s@   | |  |  |  j  j |  \ } } } | | d <| | d <d S(   u    od.__delitem__(y) <==> del od[y]i   i    N(   u   _OrderedDict__mapu   pop(   u   selfu   keyu   dict_delitemu	   link_prevu	   link_next(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __delitem__w  s    
u   OrderedDict.__delitem__c             c   s=   |  j  } | d } x# | | k	 r8 | d V| d } q Wd S(   u   od.__iter__() <==> iter(od)i   i   N(   u   _OrderedDict__root(   u   selfu   rootu   curr(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __iter__  s
    	
	u   OrderedDict.__iter__c             c   s=   |  j  } | d } x# | | k	 r8 | d V| d } q Wd S(   u#   od.__reversed__() <==> reversed(od)i    i   N(   u   _OrderedDict__root(   u   selfu   rootu   curr(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __reversed__  s
    	
	u   OrderedDict.__reversed__c             C   s   yZ x$ |  j  j   D] } | d d  =q W|  j } | | d g | d d  <|  j  j   Wn t k
 rn Yn Xt j |   d S(   u.   od.clear() -> None.  Remove all items from od.N(   u   _OrderedDict__mapu
   itervaluesu   _OrderedDict__rootu   Noneu   clearu   AttributeErroru   dict(   u   selfu   nodeu   root(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   clear  s    	u   OrderedDict.clearc             C   s   |  s t  d   n  |  j } | rO | d } | d } | | d <| | d <n( | d } | d } | | d <| | d <| d } |  j | =t j |  |  } | | f S(   u   od.popitem() -> (k, v), return and remove a (key, value) pair.
            Pairs are returned in LIFO order if last is true or FIFO order if false.

            u   dictionary is emptyi    i   i   (   u   KeyErroru   _OrderedDict__rootu   _OrderedDict__mapu   dictu   pop(   u   selfu   lastu   rootu   linku	   link_prevu	   link_nextu   keyu   value(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   popitem  s     	








u   OrderedDict.popitemc             C   s
   t  |   S(   u   od.keys() -> list of keys in od(   u   list(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   keys  s    u   OrderedDict.keysc                s     f d d     D S(   u#   od.values() -> list of values in odc                s   g  |  ] }   |  q S(    (    (   u   .0u   key(   u   self(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   <listcomp>  s   	 u&   OrderedDict.values.<locals>.<listcomp>(    (   u   self(    (   u   selfu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   values  s    u   OrderedDict.valuesc                s     f d d     D S(   u.   od.items() -> list of (key, value) pairs in odc                s    g  |  ] } |   | f  q S(    (    (   u   .0u   key(   u   self(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   <listcomp>  s   	 u%   OrderedDict.items.<locals>.<listcomp>(    (   u   self(    (   u   selfu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   items  s    u   OrderedDict.itemsc             C   s
   t  |   S(   u0   od.iterkeys() -> an iterator over the keys in od(   u   iter(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   iterkeys  s    u   OrderedDict.iterkeysc             c   s   x |  D] } |  | Vq Wd S(   u2   od.itervalues -> an iterator over the values in odN(    (   u   selfu   k(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   itervalues  s    u   OrderedDict.itervaluesc             c   s$   x |  D] } | |  | f Vq Wd S(   u=   od.iteritems -> an iterator over the (key, value) items in odN(    (   u   selfu   k(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   iteritems  s    u   OrderedDict.iteritemsc              O   s&  t  |   d k r. t d t  |   f   n |  sC t d   n  |  d } f  } t  |   d k rr |  d } n  t | t  r xw | D] } | | | | <q WnX t | d  r xF | j   D] } | | | | <q Wn! x | D] \ } } | | | <q Wx$ | j   D] \ } } | | | <qWd S(   u  od.update(E, **F) -> None.  Update od from dict/iterable E and F.

            If E is a dict instance, does:           for k in E: od[k] = E[k]
            If E has a .keys() method, does:         for k in E.keys(): od[k] = E[k]
            Or if E is an iterable of items, does:   for k, v in E: od[k] = v
            In either case, this is followed by:     for k, v in F.items(): od[k] = v

            i   u8   update() takes at most 2 positional arguments (%d given)u,   update() takes at least 1 argument (0 given)i    i   u   keysN(   u   lenu	   TypeErroru
   isinstanceu   dictu   hasattru   keysu   items(   u   argsu   kwdsu   selfu   otheru   keyu   value(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   update  s&    	
u   OrderedDict.updatec             C   sC   | |  k r! |  | } |  | =| S| |  j  k r? t |   n  | S(   u   od.pop(k[,d]) -> v, remove specified key and return the corresponding value.
            If key is not found, d is returned if given, otherwise KeyError is raised.

            (   u   _OrderedDict__markeru   KeyError(   u   selfu   keyu   defaultu   result(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   pop  s    
u   OrderedDict.popc             C   s"   | |  k r |  | S| |  | <| S(   uD   od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od(    (   u   selfu   keyu   default(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   setdefault  s    
u   OrderedDict.setdefaultc             C   s   | s i  } n  t  |   t   f } | | k r4 d Sd | | <z5 |  sX d |  j j f Sd |  j j |  j   f SWd | | =Xd S(   u   od.__repr__() <==> repr(od)u   ...i   u   %s()u   %s(%r)N(   u   idu
   _get_identu	   __class__u   __name__u   items(   u   selfu   _repr_runningu   call_key(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __repr__  s     	
u   OrderedDict.__repr__c                s~     f d d     D } t     j   } x' t  t    D] } | j | d  q; W| rn   j | f | f S  j | f f S(   u%   Return state information for picklingc                s    g  |  ] } |   | g  q S(    (    (   u   .0u   k(   u   self(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   <listcomp>  s   	 u*   OrderedDict.__reduce__.<locals>.<listcomp>N(   u   varsu   copyu   OrderedDictu   popu   Noneu	   __class__(   u   selfu   itemsu	   inst_dictu   k(    (   u   selfu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   __reduce__  s    u   OrderedDict.__reduce__c             C   s   |  j  |   S(   u!   od.copy() -> a shallow copy of od(   u	   __class__(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   copy  s    u   OrderedDict.copyc             C   s(   |    } x | D] } | | | <q W| S(   u   OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S
            and values equal to v (which defaults to None).

            (    (   u   clsu   iterableu   valueu   du   key(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   fromkeys"  s    	u   OrderedDict.fromkeysc             C   sM   t  | t  r= t |   t |  k o< |  j   | j   k St j |  |  S(   u   od.__eq__(y) <==> od==y.  Comparison to another OD is order-sensitive
            while comparison to a regular mapping is order-insensitive.

            (   u
   isinstanceu   OrderedDictu   lenu   itemsu   dictu   __eq__(   u   selfu   other(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __eq__-  s    .u   OrderedDict.__eq__c             C   s   |  | k S(   N(    (   u   selfu   other(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __ne__6  s    u   OrderedDict.__ne__c             C   s
   t  |   S(   u@   od.viewkeys() -> a set-like object providing a view on od's keys(   u   KeysView(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   viewkeys;  s    u   OrderedDict.viewkeysc             C   s
   t  |   S(   u<   od.viewvalues() -> an object providing a view on od's values(   u
   ValuesView(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   viewvalues?  s    u   OrderedDict.viewvaluesc             C   s
   t  |   S(   uB   od.viewitems() -> a set-like object providing a view on od's items(   u	   ItemsView(   u   self(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu	   viewitemsC  s    u   OrderedDict.viewitemsNT($   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u   dictu   __setitem__u   __delitem__u   __iter__u   __reversed__u   clearu   Trueu   popitemu   keysu   valuesu   itemsu   iterkeysu
   itervaluesu	   iteritemsu   updateu   _OrderedDict__updateu   objectu   _OrderedDict__markeru   popu   Noneu
   setdefaultu   __repr__u
   __reduce__u   copyu   classmethodu   fromkeysu   __eq__u   __ne__u   viewkeysu
   viewvaluesu	   viewitems(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   OrderedDictQ  s:   
		

	u   OrderedDict(   u   BaseConfiguratoru   valid_identu   ^[a-z_][a-z0-9_]*$c             C   s,   t  j |   } | s( t d |    n  d S(   Nu!   Not a valid Python identifier: %rT(   u
   IDENTIFIERu   matchu
   ValueErroru   True(   u   su   m(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   valid_identM  s    u   valid_identc             B   s5   |  Ee  Z d  Z d Z d d   Z d d d  Z d S(   u   ConvertingDictu    A converting dictionary wrapper.c             C   sq   t  j |  |  } |  j j |  } | | k	 rm | |  | <t |  t t t f k rm |  | _ | | _	 qm n  | S(   N(
   u   dictu   __getitem__u   configuratoru   convertu   typeu   ConvertingDictu   ConvertingListu   ConvertingTupleu   parentu   key(   u   selfu   keyu   valueu   result(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __getitem__`  s    
	u   ConvertingDict.__getitem__c             C   st   t  j |  | |  } |  j j |  } | | k	 rp | |  | <t |  t t t f k rp |  | _ | | _	 qp n  | S(   N(
   u   dictu   getu   configuratoru   convertu   typeu   ConvertingDictu   ConvertingListu   ConvertingTupleu   parentu   key(   u   selfu   keyu   defaultu   valueu   result(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   getl  s    
	u   ConvertingDict.getN(   u   __name__u
   __module__u   __qualname__u   __doc__u   __getitem__u   Noneu   get(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   ConvertingDict]  s   u   ConvertingDictc             C   sj   t  j |  | |  } |  j j |  } | | k	 rf t |  t t t f k rf |  | _ | | _	 qf n  | S(   N(
   u   dictu   popu   configuratoru   convertu   typeu   ConvertingDictu   ConvertingListu   ConvertingTupleu   parentu   key(   u   selfu   keyu   defaultu   valueu   result(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   popx  s    	u   popc             B   s5   |  Ee  Z d  Z d Z d d   Z d d d  Z d S(	   u   ConvertingListu   A converting list wrapper.c             C   sq   t  j |  |  } |  j j |  } | | k	 rm | |  | <t |  t t t f k rm |  | _ | | _	 qm n  | S(   N(
   u   listu   __getitem__u   configuratoru   convertu   typeu   ConvertingDictu   ConvertingListu   ConvertingTupleu   parentu   key(   u   selfu   keyu   valueu   result(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __getitem__  s    
	u   ConvertingList.__getitem__i   c             C   s^   t  j |  |  } |  j j |  } | | k	 rZ t |  t t t f k rZ |  | _ qZ n  | S(   N(	   u   listu   popu   configuratoru   convertu   typeu   ConvertingDictu   ConvertingListu   ConvertingTupleu   parent(   u   selfu   idxu   valueu   result(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   pop  s    u   ConvertingList.popNi(   u   __name__u
   __module__u   __qualname__u   __doc__u   __getitem__u   pop(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   ConvertingList  s   u   ConvertingListc             B   s&   |  Ee  Z d  Z d Z d d   Z d S(   u   ConvertingTupleu   A converting tuple wrapper.c             C   sg   t  j |  |  } |  j j |  } | | k	 rc t |  t t t f k rc |  | _ | | _	 qc n  | S(   N(
   u   tupleu   __getitem__u   configuratoru   convertu   typeu   ConvertingDictu   ConvertingListu   ConvertingTupleu   parentu   key(   u   selfu   keyu   valueu   result(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __getitem__  s    	u   ConvertingTuple.__getitem__N(   u   __name__u
   __module__u   __qualname__u   __doc__u   __getitem__(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   ConvertingTuple  s   u   ConvertingTuplec             B   s   |  Ee  Z d  Z d Z e j d  Z e j d  Z e j d  Z e j d  Z	 e j d  Z
 i d d 6d	 d
 6Z e e  Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d S(   u   BaseConfiguratoruQ   
        The configurator base class which defines some useful defaults.
        u%   ^(?P<prefix>[a-z]+)://(?P<suffix>.*)$u   ^\s*(\w+)\s*u   ^\.\s*(\w+)\s*u   ^\[\s*(\w+)\s*\]\s*u   ^\d+$u   ext_convertu   extu   cfg_convertu   cfgc             C   s   t  |  |  _ |  |  j _ d  S(   N(   u   ConvertingDictu   configu   configurator(   u   selfu   config(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   __init__  s    u   BaseConfigurator.__init__c       	      C   s   | j  d  } | j d  } yz |  j |  } x` | D]X } | d | 7} y t | |  } Wq7 t k
 r |  j |  t | |  } Yq7 Xq7 W| SWn] t k
 r t j   d d  \ } } t d | | f  } | | | _	 | _
 |  Yn Xd S(   ul   
            Resolve strings to objects using standard import and attribute
            syntax.
            u   .i    i   Nu   Cannot resolve %r: %s(   u   splitu   popu   importeru   getattru   AttributeErroru   ImportErroru   sysu   exc_infou
   ValueErroru	   __cause__u   __traceback__(	   u   selfu   su   nameu   usedu   foundu   fragu   eu   tbu   v(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   resolve  s"    u   BaseConfigurator.resolvec             C   s   |  j  |  S(   u*   Default converter for the ext:// protocol.(   u   resolve(   u   selfu   value(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   ext_convert  s    u   BaseConfigurator.ext_convertc             C   s\  | } |  j  j |  } | d k r7 t d |   n!| | j   d  } |  j | j   d } x | rW|  j j |  } | r | | j   d } n |  j j |  } | r| j   d } |  j	 j |  s | | } qy t
 |  } | | } Wqt k
 r| | } YqXn  | r>| | j   d  } qg t d | | f   qg W| S(   u*   Default converter for the cfg:// protocol.u   Unable to convert %rNi    u   Unable to convert %r at %r(   u   WORD_PATTERNu   matchu   Noneu
   ValueErroru   endu   configu   groupsu   DOT_PATTERNu   INDEX_PATTERNu   DIGIT_PATTERNu   intu	   TypeError(   u   selfu   valueu   restu   mu   du   idxu   n(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   cfg_convert  s2    	u   BaseConfigurator.cfg_convertc             C   s/  t  | t  r7 t  | t  r7 t |  } |  | _ n t  | t  rn t  | t  rn t |  } |  | _ n t  | t  r t  | t  r t |  } |  | _ n t  | t  r+|  j	 j
 |  } | r+| j   } | d } |  j j | d  } | r(| d } t |  |  } | |  } q(q+n  | S(   u   
            Convert values to an appropriate type. dicts, lists and tuples are
            replaced by their converting alternatives. Strings are checked to
            see if they have a conversion format and are converted if they do.
            u   prefixu   suffixN(   u
   isinstanceu   ConvertingDictu   dictu   configuratoru   ConvertingListu   listu   ConvertingTupleu   tupleu   string_typesu   CONVERT_PATTERNu   matchu	   groupdictu   value_convertersu   getu   Noneu   getattr(   u   selfu   valueu   mu   du   prefixu	   converteru   suffix(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   convert  s*    

u   BaseConfigurator.convertc                s     j  d  } t |  s- |  j |  } n    j  d d  } t   f d d     D  } | |   } | r x- | j   D] \ } } t | | |  q} Wn  | S(   u1   Configure an object with a user-supplied factory.u   ()u   .c                s,   g  |  ]" } t  |  r |   | f  q S(    (   u   valid_ident(   u   .0u   k(   u   config(    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu
   <listcomp>  s   	 u5   BaseConfigurator.configure_custom.<locals>.<listcomp>N(   u   popu   callableu   resolveu   Noneu   dictu   itemsu   setattr(   u   selfu   configu   cu   propsu   kwargsu   resultu   nameu   value(    (   u   configu3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   configure_custom  s    u!   BaseConfigurator.configure_customc             C   s"   t  | t  r t |  } n  | S(   u0   Utility function which converts lists to tuples.(   u
   isinstanceu   listu   tuple(   u   selfu   value(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   as_tuple$  s    u   BaseConfigurator.as_tupleN(   u   __name__u
   __module__u   __qualname__u   __doc__u   reu   compileu   CONVERT_PATTERNu   WORD_PATTERNu   DOT_PATTERNu   INDEX_PATTERNu   DIGIT_PATTERNu   value_convertersu   staticmethodu
   __import__u   importeru   __init__u   resolveu   ext_convertu   cfg_convertu   convertu   configure_customu   as_tuple(   u
   __locals__(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   BaseConfigurator  s"   
"u   BaseConfigurator(   i   i   (   u
   __future__u   absolute_importu   osu   reu   sysu   version_infou   StringIOu
   basestringu   string_typesu   unicodeu	   text_typeu   typesu   FileTypeu	   file_typeu   __builtin__u   builtinsu   ConfigParseru   configparseru	   _backportu   shutilu   urlparseu
   urlunparseu   urljoinu   urlsplitu
   urlunsplitu   urllibu   urlretrieveu   quoteu   _quoteu   unquoteu   url2pathnameu   pathname2urlu   ContentTooShortErroru	   splittypeu   urllib2u   Requestu   urlopenu   URLErroru	   HTTPErroru   HTTPBasicAuthHandleru   HTTPPasswordMgru   HTTPSHandleru   HTTPHandleru   HTTPRedirectHandleru   build_openeru   httplibu	   xmlrpclibu   Queueu   queueu
   HTMLParseru   htmlentitydefsu	   raw_inputu	   itertoolsu   ifilteru   filteru   ifilterfalseu   filterfalseu   Noneu	   _userprogu	   splituseru   iou   stru   TextIOWrapperu   urllib.parseu   urllib.requestu   urllib.erroru   http.clientu   clientu   requestu   xmlrpc.clientu   html.parseru   html.entitiesu   entitiesu   inputu   sslu   match_hostnameu   CertificateErroru   ImportErroru
   ValueErroru   _dnsname_to_patu   SimpleNamespaceu	   Containeru   objectu   whichu   F_OKu   X_OKu   zipfileu   ZipFileu   BaseZipFileu   hasattru
   ZipExtFileu   BaseZipExtFileu   platformu   python_implementationu	   sysconfigu   callableu	   NameErroru   collectionsu   Callableu   fsencodeu   fsdecodeu   AttributeErroru   getfilesystemencodingu   _fsencodingu	   _fserrorsu   tokenizeu   detect_encodingu   codecsu   BOM_UTF8u   lookupu   compileu	   cookie_reu   _get_normal_nameu   htmlu   escapeu   cgiu   unescapeu   ChainMapu   MutableMappingu   reprlibu   recursive_repru   _recursive_repru   impu   cache_from_sourceu   OrderedDictu   threadu	   get_identu
   _get_identu   dummy_threadu   _abcollu   KeysViewu
   ValuesViewu	   ItemsViewu   dictu   logging.configu   BaseConfiguratoru   valid_identu   Iu
   IDENTIFIERu   ConvertingDictu   popu   listu   ConvertingListu   tupleu   ConvertingTuple(    (    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/distlib/compat.pyu   <module>   s  	(4F	@L)!A	

				[b
 
