<!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>

Re  c               @   sc  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 d  d l m Z y d  d l	 Z	 Wn e
 k
 r d Z	 Yn Xd d d d d g Z d	 j   j   Z e Z Z xp d
 d d g f d d d g f f D]J \ Z Z x; e D]3 Z y e d e e f  Wq e
 k
 r(Yq Xq Wq We	 d k	 oLe e e f k Z y d  d l	 m Z m Z WnW e
 k
 ry$ d  d l m Z d  d l m Z Wn e
 k
 rd Z d Z Yn XYn Xe sGd d   d e  Z n  e sd d d  Z d d   Z n  Gd d   d e  Z Gd d   d e  Z d d d  Z d a  d d    Z! d! d   Z" d S("   i    N(   u   ResolutionErroru   ExtractionError(   u   urllib2u   VerifyingHTTPSHandleru   find_ca_bundleu   is_availableu
   cert_pathsu
   opener_foru   
/etc/pki/tls/certs/ca-bundle.crt
/etc/ssl/certs/ca-certificates.crt
/usr/share/ssl/certs/ca-bundle.crt
/usr/local/share/certs/ca-root.crt
/etc/ssl/cert.pem
/System/Library/OpenSSL/certs/cert.pem
u   HTTPSHandleru   urllib2u   urllib.requestu   HTTPSConnectionu   httplibu   http.clientu   from %s import %s(   u   CertificateErroru   match_hostname(   u   CertificateError(   u   match_hostnamec             B   s   |  Ee  Z d  Z d S(   u   CertificateErrorN(   u   __name__u
   __module__u   __qualname__(   u
   __locals__(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   CertificateError8   s   u   CertificateErrori   c       
      C   sX  g  } |  s d S|  j d  } | d } | d d  } | j d  } | | k rm t d t |     n  | s |  j   | j   k S| d k r | j d  nY | j d  s | j d  r | j t j	 |   n" | j t j	 |  j
 d	 d
   x$ | D] } | j t j	 |   qWt j d d j |  d t j  }	 |	 j |  S(   up   Matching according to RFC 6125, section 6.4.3

        http://tools.ietf.org/html/rfc6125#section-6.4.3
        u   .i    i   Nu   *u,   too many wildcards in certificate DNS name: u   [^.]+u   xn--u   \*u   [^.]*u   \Au   \.u   \ZF(   u   Falseu   splitu   countu   CertificateErroru   repru   loweru   appendu
   startswithu   reu   escapeu   replaceu   compileu   joinu
   IGNORECASEu   match(
   u   dnu   hostnameu   max_wildcardsu   patsu   partsu   leftmostu	   remainderu	   wildcardsu   fragu   pat(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   _dnsname_match<   s*    
"&u   _dnsname_matchc             C   s[  |  s t  d   n  g  } |  j d f   } xC | D]; \ } } | d k r4 t | |  r_ d S| j |  q4 q4 W| s xc |  j d f   D]L } xC | D]; \ } } | d k r t | |  r d S| j |  q q Wq Wn  t |  d k rt d | d	 j t t |   f   n; t |  d k rKt d
 | | d f   n t d   d S(   u=  Verify that *cert* (in decoded format as returned by
        SSLSocket.getpeercert()) matches the *hostname*.  RFC 2818 and RFC 6125
        rules are 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_matchu   appendu   lenu   CertificateErroru   joinu   mapu   repr(   u   certu   hostnameu   dnsnamesu   sanu   keyu   valueu   sub(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   match_hostnamep   s.    %u   match_hostnamec             B   s2   |  Ee  Z d  Z d Z d d   Z d d   Z d S(   u   VerifyingHTTPSHandleru=   Simple verifying handler: no auth, subclasses, timeouts, etc.c             C   s   | |  _  t j |   d  S(   N(   u	   ca_bundleu   HTTPSHandleru   __init__(   u   selfu	   ca_bundle(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   __init__   s    	u   VerifyingHTTPSHandler.__init__c                s     j    f d d   |  S(   Nc                s   t  |    j |  S(   N(   u   VerifyingHTTPSConnu	   ca_bundle(   u   hostu   kw(   u   self(    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   <lambda>   s    u2   VerifyingHTTPSHandler.https_open.<locals>.<lambda>(   u   do_open(   u   selfu   req(    (   u   selfu/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu
   https_open   s    u    VerifyingHTTPSHandler.https_openN(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u
   https_open(   u
   __locals__(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   VerifyingHTTPSHandler   s   c             B   s2   |  Ee  Z d  Z d Z d d   Z d d   Z d S(   u   VerifyingHTTPSConnu@   Simple verifying connection: no auth, subclasses, timeouts, etc.c             K   s    t  j |  | |  | |  _ d  S(   N(   u   HTTPSConnectionu   __init__u	   ca_bundle(   u   selfu   hostu	   ca_bundleu   kw(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   __init__   s    u   VerifyingHTTPSConn.__init__c             C   s   t  j |  j |  j f t |  d d    } t |  d  ra t |  d d   ra | |  _ |  j   n  t	 j
 | d t	 j d |  j |  _ y t |  j j   |  j  Wn5 t k
 r |  j j t  j  |  j j     Yn Xd  S(   Nu   source_addressu   _tunnelu   _tunnel_hostu	   cert_reqsu   ca_certs(   u   socketu   create_connectionu   hostu   portu   getattru   Noneu   hasattru   socku   _tunnelu   sslu   wrap_socketu   CERT_REQUIREDu	   ca_bundleu   match_hostnameu   getpeercertu   CertificateErroru   shutdownu	   SHUT_RDWRu   close(   u   selfu   sock(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   connect   s    $!	u   VerifyingHTTPSConn.connectN(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u   connect(   u
   __locals__(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   VerifyingHTTPSConn   s   u   VerifyingHTTPSConnc             C   s   t  j t |  p t     j S(   u@   Get a urlopen() replacement that uses ca_bundle for verification(   u   urllib2u   build_openeru   VerifyingHTTPSHandleru   find_ca_bundleu   open(   u	   ca_bundle(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu
   opener_for   s    c                 sx   t  d  k	 r t  j Sy d d l m   Wn t k
 r? d  SYn XG  f d d   d    }  |  d d d g  a  t  j S(   Ni    (   u   CertFilec                s,   |  Ee  Z d  Z f  f    f d d  Z d S(   u$   get_win_certfile.<locals>.MyCertFilec                sL     j  |   x | D] } |  j |  q W|  j |  t j |  j  d  S(   N(   u   __init__u   addstoreu   addcertsu   atexitu   registeru   close(   u   selfu   storesu   certsu   store(   u   CertFile(    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   __init__   s
    u-   get_win_certfile.<locals>.MyCertFile.__init__N(   u   __name__u
   __module__u   __qualname__u   __init__(   u
   __locals__(   u   CertFile(    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu
   MyCertFile   s   u
   MyCertFileu   storesu   CAu   ROOT(   u	   _wincertsu   Noneu   nameu   wincertstoreu   CertFileu   ImportError(   u
   MyCertFile(    (   u   CertFileu/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   get_win_certfile   s    	u   get_win_certfilec              C   sw   t  j d k r t   Sx$ t D] }  t  j j |   r |  Sq Wy t j d d  SWn t t	 t
 f k
 rr d SYn Xd S(   u*   Return an existing CA bundle path, or Noneu   ntu   certifiu
   cacert.pemN(   u   osu   nameu   get_win_certfileu
   cert_pathsu   pathu   isfileu   pkg_resourcesu   resource_filenameu   ImportErroru   ResolutionErroru   ExtractionErroru   None(   u	   cert_path(    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   find_ca_bundle   s    (#   u   osu   socketu   atexitu   reu   pkg_resourcesu   ResolutionErroru   ExtractionErroru   setuptools.compatu   urllib2u   sslu   ImportErroru   Noneu   __all__u   stripu   splitu
   cert_pathsu   objectu   HTTPSHandleru   HTTPSConnectionu   whatu   whereu   moduleu   execu   is_availableu   CertificateErroru   match_hostnameu   backports.ssl_match_hostnameu
   ValueErroru   _dnsname_matchu   VerifyingHTTPSHandleru   VerifyingHTTPSConnu
   opener_foru	   _wincertsu   get_win_certfileu   find_ca_bundle(    (    (    u/   /tmp/pip-k8wh6o-build/setuptools/ssl_support.pyu   <module>   sV   	

4)