Ë
    ,Œ:j.0  ã                   ó¾  — d dl Z d dlZd dlZd dlZd dlmZ d dlZddlmZ ddl	m
Z
 ddlmZmZmZmZmZ ddlmZ ddlmZ d	j+                  g d
¢«      Z e j.                  d«      Z G d„ d«      Z e«       Z	 	 	 	 d!dej6                  e   dedededej:                  f
d„Z G d„ d«      Z G d„ d«      Z  G d„ d«      Z! G d„ d«      Z" e d¬«      Z# e!dd¬ «      Z$dZ%y)"é    N)ÚPathé   )Úset_minimum_tls_version_1_2)ÚHeaders)Ú	CertTypesÚHeaderTypesÚTimeoutTypesÚURLTypesÚVerifyTypes)ÚURL)Úget_ca_bundle_from_envú:)zECDHE+AESGCMzECDHE+CHACHA20z
DHE+AESGCMzDHE+CHACHA20zECDH+AESGCMz	DH+AESGCMzECDH+AESzDH+AESz
RSA+AESGCMzRSA+AESz!aNULLz!eNULLz!MD5z!DSSÚhttpxc                   ó   — e Zd Zy)Ú	UnsetTypeN)Ú__name__Ú
__module__Ú__qualname__© ó    úO/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/httpx/_config.pyr   r   &   s   „ Ør   r   ÚcertÚverifyÚ	trust_envÚhttp2Úreturnc                 ó4   — t        | |||¬«      j                  S )N©r   r   r   r   )Ú	SSLConfigÚssl_contextr   s       r   Úcreate_ssl_contextr!   -   s   € ô Ø˜&¨I¸Uôç�kðr   c            	       ó   — e Zd ZdZ e ej                  «       «      Zdddddœdej                  e
   deded	efd
„Zdej                  fd„Zdej                  fd„Zdej                  fd„Zdej                  fd„Zdej                  ddfd„Zy)r   z
    SSL Configuration.
    NTFr   r   r   r   r   c                óf   — || _         || _        || _        || _        | j	                  «       | _        y ©N)r   r   r   r   Úload_ssl_contextr    )Úselfr   r   r   r   s        r   Ú__init__zSSLConfig.__init__?   s1   € ð ˆŒ	ØˆŒØ"ˆŒØˆŒ
Ø×0Ñ0Ó2ˆÕr   r   c                 óÜ   — t         j                  d| j                  | j                  | j                  | j
                  «       | j                  r| j                  «       S | j                  «       S )Nz8load_ssl_context verify=%r cert=%r trust_env=%r http2=%r)ÚloggerÚdebugr   r   r   r   Úload_ssl_context_verifyÚload_ssl_context_no_verify©r&   s    r   r%   zSSLConfig.load_ssl_contextM   sT   € Ü�‰ØFØ�K‰KØ�I‰IØ�N‰NØ�J‰Jô	
ð �;Š;Ø×/Ñ/Ó1Ð1Ø×.Ñ.Ó0Ð0r   c                 ó€   — | j                  «       }d|_        t        j                  |_        | j                  |«       |S )zC
        Return an SSL context for unverified connections.
        F)Ú_create_default_ssl_contextÚcheck_hostnameÚsslÚ	CERT_NONEÚverify_modeÚ_load_client_certs)r&   Úcontexts     r   r,   z$SSLConfig.load_ssl_context_no_verifyZ   s9   € ð ×2Ñ2Ó4ˆØ!&ˆÔÜ!Ÿm™mˆÔØ×Ñ Ô(Øˆr   c                 óÒ  — | j                   r!| j                  du rt        «       }|�|| _        t        | j                  t        j
                  «      r| j                  }| j                  |«       |S t        | j                  t        «      r| j                  }n]t        | j                  «      j                  «       rt        | j                  «      }n$t        dj                  | j                  «      «      ‚| j                  «       }t        j                  |_        d|_        	 d|_        	 d|_        |j)                  «       r4t+        |«      }t,        j/                  d|«       |j1                  |¬«       nC|j3                  «       r3t+        |«      }t,        j/                  d|«       |j1                  |¬«       | j                  |«       |S # t$        $ r Y Œ­w xY w# t$        $ r Y Œ´w xY w)zA
        Return an SSL context for verified connections.
        TzECould not find a suitable TLS CA certificate bundle, invalid path: {}Fzload_verify_locations cafile=%r)Úcafilezload_verify_locations capath=%r)Úcapath)r   r   r   Ú
isinstancer1   Ú
SSLContextr4   ÚboolÚDEFAULT_CA_BUNDLE_PATHr   ÚexistsÚIOErrorÚformatr/   ÚCERT_REQUIREDr3   r0   Úpost_handshake_authÚAttributeErrorÚhostname_checks_common_nameÚis_fileÚstrr)   r*   Úload_verify_locationsÚis_dir)r&   Ú	ca_bundler5   Úca_bundle_pathr7   r8   s         r   r+   z!SSLConfig.load_ssl_context_verifyd   s�  € ð �>Š>˜dŸk™k¨TÑ1Ü.Ó0ˆIØÐ$Ø'�”ä�d—k‘k¤3§>¡>Ô2à—k‘kˆGØ×#Ñ# GÔ,ØˆNÜ˜Ÿ™¤TÔ*Ø!×8Ñ8‰NÜ�$—+‘+Ó×%Ñ%Ô'Ü! $§+¡+Ó.‰Näð#ß#)¡6¨$¯+©+Ó#6óð ð
 ×2Ñ2Ó4ˆÜ!×/Ñ/ˆÔØ!%ˆÔð	Ø*.ˆGÔ'ð	Ø27ˆGÔ/ð ×!Ñ!Ô#Ü˜Ó(ˆFÜ�L‰LÐ:¸FÔCØ×)Ñ)°Ð)Õ8Ø×"Ñ"Ô$Ü˜Ó(ˆFÜ�L‰LÐ:¸FÔCØ×)Ñ)°Ð)Ô8à×Ñ Ô(àˆøô+ ò 	Ùð	ûô ò 	Ùð	ús$   Ä"G Ä*G Ç	GÇGÇ	G&Ç%G&c                 ó¢  — t        j                  t         j                  «      }t        |«       |xj                  t         j
                  z  c_        |j                  t        «       t         j                  r$| j                  rddgndg}|j                  |«       t        j                  j                  d«      }|r| j                  r||_        |S )zy
        Creates the default SSLContext object that's used for both verified
        and unverified connections.
        zhttp/1.1Úh2ÚSSLKEYLOGFILE)r1   r:   ÚPROTOCOL_TLS_CLIENTr   ÚoptionsÚOP_NO_COMPRESSIONÚset_ciphersÚDEFAULT_CIPHERSÚHAS_ALPNr   Úset_alpn_protocolsÚosÚenvironÚgetr   Úkeylog_filename)r&   r5   Úalpn_identsÚ
keylogfiles       r   r/   z%SSLConfig._create_default_ssl_context›   s“   € ô
 —.‘.¤×!8Ñ!8Ó9ˆÜ# GÔ,Ø�Šœ3×0Ñ0Ñ0�Ø×ÑœOÔ,ä�<Š<Ø04·
²
˜: tÑ,ÀÀˆKØ×&Ñ& {Ô3ä—Z‘Z—^‘^ OÓ4ˆ
Ù˜$Ÿ.š.Ø&0ˆGÔ#àˆr   r    c                 ó,  — | j                   ��t        | j                   t        «      r|j                  | j                   ¬«       yt        | j                   t        «      rFt        | j                   «      dk(  r.|j                  | j                   d   | j                   d   ¬«       yt        | j                   t        «      rUt        | j                   «      dk(  r<|j                  | j                   d   | j                   d   | j                   d   ¬«       yyyy)	zF
        Loads client certificates into our SSLContext object
        N)Úcertfileé   r   r   )r[   Úkeyfileé   )r[   r]   Úpassword)r   r9   rE   Úload_cert_chainÚtupleÚlen)r&   r    s     r   r4   zSSLConfig._load_client_certs¯   sÑ   € ð �9‰9Ñ Ü˜$Ÿ)™)¤SÔ)Ø×+Ñ+°T·Y±YÐ+Õ?Ü˜DŸI™I¤uÔ-´#°d·i±i³.ÀAÒ2EØ×+Ñ+°T·Y±Y¸q±\È4Ï9É9ÐUVÉ<Ð+ÕXÜ˜DŸI™I¤uÔ-´#°d·i±i³.ÀAÒ2EØ×+Ñ+Ø!ŸY™Y q™\Ø ŸI™I a™LØ!ŸY™Y q™\ð ,õ ð 3FÐ-ð !r   )r   r   r   Ú__doc__r   ÚcertifiÚwherer<   ÚtypingÚOptionalr   r   r;   r'   r1   r:   r%   r,   r+   r/   r4   r   r   r   r   r   8   s¸   „ ññ " - '§-¡-£/Ó2Ðð
 ,0Ø"ØØò3ð �o‰o˜iÑ(ð3ð ð	3ð
 ð3ð ó3ð1 #§.¡.ó 1ð¨C¯N©Nó ð5¨¯©ó 5ðn¨S¯^©^ó ð(¨c¯n©nð Àô r   r   c                   óN  — e Zd ZdZefeeeedœdej                  eef   dej                  de	ef   dej                  de	ef   dej                  de	ef   dej                  de	ef   f
d	„Z
d
ej                  eej                  e	   f   fd„Zdej                  d
efd„Zd
efd„Zy)ÚTimeoutaÄ  
    Timeout configuration.

    **Usage**:

    Timeout(None)               # No timeouts.
    Timeout(5.0)                # 5s timeout on all operations.
    Timeout(None, connect=5.0)  # 5s timeout on connect, no other timeouts.
    Timeout(5.0, connect=10.0)  # 10s timeout on connect. 5s timeout elsewhere.
    Timeout(5.0, pool=None)     # No timeout on acquiring connection from pool.
                                # 5s timeout elsewhere.
    ©ÚconnectÚreadÚwriteÚpoolÚtimeoutrk   Nrl   rm   rn   c                ót  — t        |t        «      rm|t        u sJ ‚|t        u sJ ‚|t        u sJ ‚|t        u sJ ‚|j                  | _        |j                  | _        |j
                  | _        |j                  | _        y t        |t        «      rO|d   | _        |d   | _        t        |«      dk  rd n|d   | _        t        |«      dk  rd | _        y |d   | _        y t        |t        «      sMt        |t        «      s=t        |t        «      s-t        |t        «      s|| _        || _        || _        || _        y t        |t        «      rt        d«      ‚t        |t        «      r|n|| _        t        |t        «      r|n|| _        t        |t        «      r|n|| _        t        |t        «      r|n|| _        y )Nr   r   r^   r\   é   zShttpx.Timeout must either include a default, or set all four parameters explicitly.)r9   ri   ÚUNSETrk   rl   rm   rn   ra   rb   r   Ú
ValueError)r&   ro   rk   rl   rm   rn   s         r   r'   zTimeout.__init__Î   sj  € ô �gœwÔ'àœeÑ#Ð#Ð#Øœ5‘=Ð �=ØœE‘>Ð!�>Øœ5‘=Ð �=Ø"Ÿ?™?ˆDŒLØŸ™ˆDŒIØ Ÿ™ˆDŒJØŸ™ˆD�IÜ˜¤Ô'à" 1™:ˆDŒLØ ™
ˆDŒIÜ!$ W£°Ò!1™°w¸q±zˆDŒJÜ # G£¨qÒ 0˜ˆD�I°g¸a±jˆD�Iä�w¤	Ô*Ü˜$¤	Ô*Ü˜%¤Ô+Ü˜$¤	Ô*à"ˆDŒLØˆDŒIØˆDŒJØˆD�Iä˜'¤9Ô-Ü ð2óð ô '1°¼)Ô&D™7È'ˆDŒLÜ#-¨d´IÔ#>™ÀDˆDŒIÜ$.¨u´iÔ$@™ÀeˆDŒJÜ#-¨d´IÔ#>™ÀDˆD�Ir   r   c                 ó`   — | j                   | j                  | j                  | j                  dœS )Nrj   rj   r-   s    r   Úas_dictzTimeout.as_dictü   s(   € à—|‘|Ø—I‘IØ—Z‘ZØ—I‘Iñ	
ð 	
r   Úotherc                 ó  — t        || j                  «      xrj | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r$   )r9   Ú	__class__rk   rl   rm   rn   ©r&   rv   s     r   Ú__eq__zTimeout.__eq__  sm   € ä�u˜dŸn™nÓ-ò (Ø—‘ §¡Ñ-ò(à—	‘	˜UŸZ™ZÑ'ò(ð —
‘
˜eŸk™kÑ)ò(ð —	‘	˜UŸZ™ZÑ'ð	
r   c           
      ó8  — | j                   j                  }t        | j                  | j                  | j
                  | j                  h«      dk(  r|› d| j                  › d�S |› d| j                  › d| j                  › d| j
                  › d| j                  › d�
S )Nr   z	(timeout=ú)z	(connect=z, read=z, write=z, pool=)rx   r   rb   rk   rl   rm   rn   ©r&   Ú
class_names     r   Ú__repr__zTimeout.__repr__  sŒ   € Ø—^‘^×,Ñ,ˆ
Ü�—‘˜dŸi™i¨¯©°T·Y±YÐ?Ó@ÀAÒEØ �\ ¨4¯<©<¨.¸Ð:Ð:àˆl˜) D§L¡L >ð 2Ø—I‘I�;˜h t§z¡z l°'¸$¿)¹)¸ÀAðGð	
r   )r   r   r   rc   rr   rf   ÚUnionr	   r   Úfloatr'   ÚDictrE   rg   ru   ÚAnyr;   rz   r   r   r   r   ri   ri   À   sð   „ ñð :?ð,Ið 9>Ø5:Ø6;Ø5:ò,Ià—‘˜l¨IÐ5Ñ6ð,Ið —‘˜d E¨9Ð4Ñ5ð	,Ið
 �l‰l˜4 ¨	Ð1Ñ2ð,Ið �|‰|˜D %¨Ð2Ñ3ð,Ið �l‰l˜4 ¨	Ð1Ñ2ó,Ið\
˜Ÿ™ S¨&¯/©/¸%Ñ*@Ð%@ÑAó 
ð
˜FŸJ™Jð 
¨4ó 
ð
˜#ô 
r   ri   c                   ó¬   — e Zd ZdZddddœdej
                  e   dej
                  e   dej
                  e   fd„Zd	ej                  d
e
fd„Zd
efd„Zy)ÚLimitsaÖ  
    Configuration for limits to various client behaviors.

    **Parameters:**

    * **max_connections** - The maximum number of concurrent connections that may be
            established.
    * **max_keepalive_connections** - Allow the connection pool to maintain
            keep-alive connections below this point. Should be less than or equal
            to `max_connections`.
    * **keepalive_expiry** - Time limit on idle keep-alive connections in seconds.
    Nç      @©Úmax_connectionsÚmax_keepalive_connectionsÚkeepalive_expiryrˆ   r‰   rŠ   c                ó.   — || _         || _        || _        y r$   r‡   )r&   rˆ   r‰   rŠ   s       r   r'   zLimits.__init__%  s   € ð  /ˆÔØ)BˆÔ&Ø 0ˆÕr   rv   r   c                 óÐ   — t        || j                  «      xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S r$   )r9   rx   rˆ   r‰   rŠ   ry   s     r   rz   zLimits.__eq__0  se   € ä�u˜dŸn™nÓ-ò @Ø×$Ñ$¨×(=Ñ(=Ñ=ò@à×.Ñ.°%×2QÑ2QÑQò@ð ×%Ñ%¨×)?Ñ)?Ñ?ð		
r   c                 ó†   — | j                   j                  }|› d| j                  › d| j                  › d| j                  › d�S )Nz(max_connections=z, max_keepalive_connections=z, keepalive_expiry=r|   )rx   r   rˆ   r‰   rŠ   r}   s     r   r   zLimits.__repr__8  sT   € Ø—^‘^×,Ñ,ˆ
àˆlÐ+¨D×,@Ñ,@Ð+Að B)Ø)-×)GÑ)GÐ(Hð I Ø $× 5Ñ 5Ð6°að9ð	
r   )r   r   r   rc   rf   rg   Úintr�   r'   rƒ   r;   rz   rE   r   r   r   r   r…   r…     ss   „ ñð  15Ø:>Ø36ò	1ð  Ÿ™¨Ñ-ð	1ð $*§?¡?°3Ñ#7ð		1ð
 !Ÿ/™/¨%Ñ0ó	1ð
˜FŸJ™Jð 
¨4ó 
ð
˜#ô 
r   r…   c            
       ó  — e Zd Zddddœdedej
                  ej                     dej
                  ej                  e	e	f      dej
                  e
   fd„Zedej
                  ej                  eef      fd	„«       Zde	fd
„Zy)ÚProxyN)r    ÚauthÚheadersÚurlr    r‘   r’   c                ó&  — t        |«      }t        |«      }|j                  dvrt        d|›�«      ‚|j                  s|j
                  r+|j                  |j
                  f}|j                  d d ¬«      }|| _        || _        || _	        || _
        y )N)ÚhttpÚhttpsÚsocks5zUnknown scheme for proxy URL )Úusernamer_   )r   r   Úschemers   r˜   r_   Ú	copy_withr“   r‘   r’   r    )r&   r“   r    r‘   r’   s        r   r'   zProxy.__init__B  s…   € ô �#‹hˆÜ˜'Ó"ˆà�:‰:Ð8Ñ8ÜÐ<¸S¸GÐDÓEÐEà�<Š<˜3Ÿ<š<à—L‘L #§,¡,Ð/ˆDØ—-‘-¨¸�-Ó=ˆCàˆŒØˆŒ	ØˆŒØ&ˆÕr   r   c                 ó–   — | j                   €d S | j                   d   j                  d«      | j                   d   j                  d«      fS )Nr   zutf-8r   )r‘   Úencoder-   s    r   Úraw_authzProxy.raw_authZ  sM   € ð
 �y‰yÐ ð ð	
ð —)‘)˜A‘,×%Ñ% gÓ.°·	±	¸!±×0CÑ0CÀGÓ0LÐMð	
r   c                 óÞ   — | j                   r| j                   d   dfnd }t        | j                  «      ›}|rd|›�nd}| j                  rdt	        | j                  «      ›�nd}d|› |› |› d�S )Nr   z********z, auth=Ú z
, headers=zProxy(r|   )r‘   rE   r“   r’   Údict)r&   r‘   Úurl_strÚauth_strÚheaders_strs        r   r   zProxy.__repr__c  ss   € à-1¯YªY�—	‘	˜!‘˜jÑ)¸Dˆô ˜Ÿ™“]Ð%ˆÙ)-�W˜T˜HÑ%°2ˆØ=A¿\º\˜
¤4¨¯©Ó#5Ð"8Ñ9ÈrˆØ˜�y  
¨;¨-°qÐ9Ð9r   )r   r   r   r
   rf   rg   r1   r:   ÚTuplerE   r   r'   ÚpropertyÚbytesr�   r   r   r   r   r�   r�   A  s¡   „ ð
 8<Ø8<Ø04ò'àð'ð —_‘_ S§^¡^Ñ4ð	'ð
 �o‰o˜fŸl™l¨3°¨8Ñ4Ñ5ð'ð —‘ Ñ-ó'ð0 ð
˜&Ÿ/™/¨&¯,©,°u¸e°|Ñ*DÑEò 
ó ð
ð:˜#ô :r   r�   r†   )ro   éd   é   )rˆ   r‰   )NTTF)&ÚloggingrT   r1   rf   Úpathlibr   rd   Ú_compatr   Ú_modelsr   Ú_typesr   r   r	   r
   r   Ú_urlsr   Ú_utilsr   ÚjoinrQ   Ú	getLoggerr)   r   rr   rg   r;   r:   r!   r   ri   r…   r�   ÚDEFAULT_TIMEOUT_CONFIGÚDEFAULT_LIMITSÚDEFAULT_MAX_REDIRECTSr   r   r   ú<module>rµ      s   ðÛ Û 	Û 
Û Ý ã å 0Ý ß OÕ OÝ Ý *à—(‘(òó€ð( 
ˆ×	Ñ	˜7Ó	#€÷	ñ 	ñ 	‹€ð (,ØØØñ	Ø
�/‰/˜)Ñ
$ðàðð ðð ð	ð
 	‡^�^ó÷Eñ E÷PT
ñ T
÷n'
ñ '
÷T*:ñ *:ñZ !¨Ô-Ð Ù¨ÀrÔJ€ØÑ r   