<!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>
a
    XC?h                     @   s  d dl Z d dlZd dlZd dlZd dlZd dlZg dZg dZg dZg dZ	g dZ
g dZg dZd	Zd
Zg dZdZi Zdd ZdZdZdd ZeefddZeefddZdd ZG dd deZG dd deZG dd deZG dd  d eeZG d!d" d"eeZd d#lmZ ed$d%Z ed&d'Z!ed(d)Z"d*e _#d+e j$_#d,e j%_#d-e!_#d.e!j&_#d/e!j'_#d0e!j(_#d1e!j)_#d2e!j%_#d3e"_#e!j&j#e"j&_#e!j'j#e"j'_#e!j(j#e"j(_#d4e"j*_#e!j)j#e"j)_#e!j%j#e"j%_#eZ+G d5d$ d$e eZ,G d6d& d&e!eZ-G d7d( d(e"eZ.G d8d9 d9e eZ/G d:d; d;e!eZ0G d<d= d=e"eZ1d>d? Z2e2  [2ddBdCZ3dDdE Z4ddFdGZ5dHdI Z6dJdK Z7dLdM Z8ddNdOZ9dPdQ Z:dRdS Z;ddTdUZ<dVdW Z=dXZ>da?dYdZ Z@e Ad[ZBdd^d_ZCddbdcZDddddeZEddfdgZFeGdhZHeIeHZJi ZKG didj djejLZMddldmZNddndoZOddpdqZPd`d@ddeOfdrdsZQdtdu ZRdvdw ZSdxdy ZTdzd{ ZUdaVd|d} ZWd~d ZXdaYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_da`dd ZadddZbdddZcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd ZkdS )    N)urlparse
urlunparseurljoin	urldefragurlsplit
urlunsplit	urlencodeparse_qs	parse_qslquote
quote_plusquote_from_bytesunquoteunquote_plusunquote_to_bytesDefragResultParseResultSplitResultDefragResultBytesParseResultBytesSplitResultBytes) ftphttpgophernntpimapwaisfilehttpsshttpmmsprosperortsprtspusftpsvnsvn+sshwswss)r   r   r   r   r   telnetr   r   r   r!   r   r    snewsr"   r#   r$   Zrsyncr&   r'   r%   ZnfsZgitzgit+sshr(   r)   )r   r   hdlr"   r   r   r   r    r#   r$   sipsipsr!   r%   Ztel)
r   r,   Zmailtonewsr*   r   r   r+   r-   r.   )r   r   r   r   r   r    r!   r   r#   r$   r-   r.   )r   r   r,   r   r   r/   r   r   r   r    r+   r   r"   zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z! 	
 )	
   c                   C   s   t   t  d S N)_parse_cacheclear_safe_quoters r8   r8   1/opt/alt/python39/lib64/python3.9/urllib/parse.pyclear_cachea   s    r:   asciistrictc                 C   s   | S r4   r8   )objr8   r8   r9   _noopp   s    r>   c                 C   s   |  ||S r4   encode)r=   encodingerrorsr8   r8   r9   _encode_results   s    rC   c                    s   t  fdd| D S )Nc                 3   s"   | ]}|r|  nd V  qdS )r   Ndecode.0xrA   rB   r8   r9   	<genexpr>y       z_decode_args.<locals>.<genexpr>)tuple)argsrA   rB   r8   rI   r9   _decode_argsw   s    rN   c                  G   sV   t | d t}| dd  D ]}|rt |t|krtdq|rH| tf S t| tf S )Nr      z$Cannot mix str and non-str arguments)
isinstancestr	TypeErrorr>   rN   rC   )rM   Z	str_inputargr8   r8   r9   _coerce_args{   s    

rT   c                   @   s   e Zd ZdZdddZdS )_ResultMixinStrr8   r;   r<   c                    s   | j  fdd| D  S )Nc                 3   s   | ]}|  V  qd S r4   r?   rF   rI   r8   r9   rJ      rK   z)_ResultMixinStr.encode.<locals>.<genexpr>)_encoded_counterpartselfrA   rB   r8   rI   r9   r@      s    z_ResultMixinStr.encodeN)r;   r<   )__name__
__module____qualname__	__slots__r@   r8   r8   r8   r9   rU      s   rU   c                   @   s   e Zd ZdZdddZdS )_ResultMixinBytesr8   r;   r<   c                    s   | j  fdd| D  S )Nc                 3   s   | ]}|  V  qd S r4   rD   rF   rI   r8   r9   rJ      rK   z+_ResultMixinBytes.decode.<locals>.<genexpr>)_decoded_counterpartrW   r8   rI   r9   rE      s    z_ResultMixinBytes.decodeN)r;   r<   )rY   rZ   r[   r\   rE   r8   r8   r8   r9   r]      s   r]   c                   @   sJ   e Zd ZdZedd Zedd Zedd Zedd	 Ze	e
jZd
S )_NetlocResultMixinBaser8   c                 C   s
   | j d S )Nr   	_userinforX   r8   r8   r9   username   s    z_NetlocResultMixinBase.usernamec                 C   s
   | j d S )NrO   r`   rb   r8   r8   r9   password   s    z_NetlocResultMixinBase.passwordc                 C   sD   | j d }|sd S t|tr dnd}||\}}}| | | S )Nr   %   %)	_hostinforP   rQ   	partitionlower)rX   hostname	separatorZpercentZzoner8   r8   r9   rj      s    
z_NetlocResultMixinBase.hostnamec                 C   sj   | j d }|d urfzt|d}W n& tyF   d|}t|d Y n0 d|  kr\dksfn td|S )NrO   
   z+Port could not be cast to integer value as r   i  zPort out of range 0-65535)rg   int
ValueError)rX   portmessager8   r8   r9   ro      s    

z_NetlocResultMixinBase.portN)rY   rZ   r[   r\   propertyrc   rd   rj   ro   classmethodtypesGenericAlias__class_getitem__r8   r8   r8   r9   r_      s   




r_   c                   @   s(   e Zd ZdZedd Zedd ZdS )_NetlocResultMixinStrr8   c                 C   sD   | j }|d\}}}|r4|d\}}}|s<d }nd  }}||fS )N@:netloc
rpartitionrh   rX   rz   ZuserinfoZ	have_infohostinforc   Zhave_passwordrd   r8   r8   r9   ra      s    z_NetlocResultMixinStr._userinfoc                 C   sl   | j }|d\}}}|d\}}}|rL|d\}}}|d\}}}n|d\}}}|sdd }||fS )Nrw   []rx   ry   rX   rz   _r}   have_open_br	bracketedrj   ro   r8   r8   r9   rg      s    z_NetlocResultMixinStr._hostinfoNrY   rZ   r[   r\   rq   ra   rg   r8   r8   r8   r9   rv      s
   
rv   c                   @   s(   e Zd ZdZedd Zedd ZdS )_NetlocResultMixinBytesr8   c                 C   sD   | j }|d\}}}|r4|d\}}}|s<d }nd  }}||fS )N   @   :ry   r|   r8   r8   r9   ra      s    z!_NetlocResultMixinBytes._userinfoc                 C   sl   | j }|d\}}}|d\}}}|rL|d\}}}|d\}}}n|d\}}}|sdd }||fS )Nr      [   ]r   ry   r   r8   r8   r9   rg      s    z!_NetlocResultMixinBytes._hostinfoNr   r8   r8   r8   r9   r      s
   
r   )
namedtupler   zurl fragmentr   z!scheme netloc path query fragmentr   z(scheme netloc path params query fragmentz
DefragResult(url, fragment)

A 2-tuple that contains the url without fragment identifier and the fragment
identifier as a separate argument.
z$The URL with no fragment identifier.z
Fragment identifier separated from URL, that allows indirect identification of a
secondary resource by reference to a primary resource and additional identifying
information.
z
SplitResult(scheme, netloc, path, query, fragment)

A 5-tuple that contains the different components of a URL. Similar to
ParseResult, but does not split params.
z%Specifies URL scheme for the request.z0
Network location where the request is made to.
z@
The hierarchical path, such as the path to a file to download.
z
The query component, that contains non-hierarchical data, that along with data
in path component, identifies a resource in the scope of URI's scheme and
network location.
z
Fragment identifier, that allows indirect identification of a secondary resource
by reference to a primary resource and additional identifying information.
zq
ParseResult(scheme, netloc, path, params, query, fragment)

A 6-tuple that contains components of a parsed URL.
z
Parameters for last path element used to dereference the URI in order to provide
access to perform some operation on the resource.
c                   @   s   e Zd ZdZdd ZdS )r   r8   c                 C   s    | j r| jd | j  S | jS d S N#fragmenturlrb   r8   r8   r9   geturlL  s    zDefragResult.geturlNrY   rZ   r[   r\   r   r8   r8   r8   r9   r   J  s   c                   @   s   e Zd ZdZdd ZdS )r   r8   c                 C   s   t | S r4   r   rb   r8   r8   r9   r   T  s    zSplitResult.geturlNr   r8   r8   r8   r9   r   R  s   c                   @   s   e Zd ZdZdd ZdS )r   r8   c                 C   s   t | S r4   r   rb   r8   r8   r9   r   Y  s    zParseResult.geturlNr   r8   r8   r8   r9   r   W  s   c                   @   s   e Zd ZdZdd ZdS )r   r8   c                 C   s    | j r| jd | j  S | jS d S )N   #r   rb   r8   r8   r9   r   _  s    zDefragResultBytes.geturlNr   r8   r8   r8   r9   r   ]  s   r   c                   @   s   e Zd ZdZdd ZdS )r   r8   c                 C   s   t | S r4   r   rb   r8   r8   r9   r   g  s    zSplitResultBytes.geturlNr   r8   r8   r8   r9   r   e  s   r   c                   @   s   e Zd ZdZdd ZdS )r   r8   c                 C   s   t | S r4   r   rb   r8   r8   r9   r   l  s    zParseResultBytes.geturlNr   r8   r8   r8   r9   r   j  s   r   c                  C   s4   t tfttfttff} | D ]\}}||_||_qd S r4   )r   r   r   r   r   r   rV   r^   )Z_result_pairsZ_decodedZ_encodedr8   r8   r9   _fix_result_transcodingp  s    r   r   Tc           
      C   sf   t | |\} }}t| ||}|\}}} }}|tv rHd| v rHt| \} }nd}t||| |||}	||	S )N;r   )rT   r   uses_params_splitparamsr   )
r   schemeallow_fragments_coerce_resultZsplitresultrz   queryr   paramsresultr8   r8   r9   r   }  s    r   c                 C   sR   d| v r,|  d| d}|dk r6| dfS n
|  d}| d | | |d d  fS )N/r   r   r   rO   )findrfind)r   ir8   r8   r9   r     s    

r   c                 C   sH   t | }dD ]"}| ||}|dkrt||}q| || | |d  fS )Nz/?#r   )lenr   min)r   startdelimcZwdelimr8   r8   r9   _splitnetloc  s    r   c                 C   s   | r|   rd S dd l}| dd}|dd}|dd}|dd}|d|}||kr`d S dD ] }||v rdtd	|  d
 d qdd S )Nr   rw   r   rx   r   ?NFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)isasciiunicodedatareplace	normalizern   )rz   r   nZnetloc2r   r8   r8   r9   _checknetloc  s    r   c                 C   sr   |  dd }|d\}}}|rV|r.td|d\}}}|rf|dsftdn|d\}}}t| d S )Nrw      r~   Invalid IPv6 URLr   rx   )r{   rh   rn   
startswith_check_bracketed_host)rz   Zhostname_and_portZbefore_bracketr   r   rj   r   ro   r8   r8   r9   _check_bracketed_netloc  s    
r   c                 C   sB   |  dr td| s>tdnt| }t|tjr>tdd S )Nvz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz%An IPv4 address cannot be in brackets)r   rematchrn   	ipaddressZ
ip_addressrP   ZIPv4Address)rj   Zipr8   r8   r9   r     s    


r   c                 C   s  t | |\} }}| t} |t}tD ]}| |d} ||d}q(t|}| ||t| t|f}t	|d }|r|||S t
ttkrt  d } }}	| d}
|
dkr| d |
 D ]}|tvr qq| d |
  | |
d d   }} | d d dkrXt| d\}} d|v r d|vs4d|v r<d|vr<td	d|v rXd|v rXt| |rxd
| v rx| d
d\} }	d| v r| dd\} }t| t||| ||	}|t|< ||S )Nr   rx   r   rO   r   //r~   r   r   r   r   )rT   lstrip_WHATWG_C0_CONTROL_OR_SPACEstrip_UNSAFE_URL_BYTES_TO_REMOVEr   booltyper5   getr   MAX_CACHE_SIZEr:   r   scheme_charsri   r   rn   r   splitr   r   )r   r   r   r   bkeycachedrz   r   r   r   r   r   r8   r8   r9   r     sL    


"
r   c                 C   s<   t |  \}}}}}}}|r&d||f }|t|||||fS )Nz%s;%s)rT   r   )
componentsr   rz   r   r   r   r   r   r8   r8   r9   r     s
    r   c                 C   s   t |  \}}}}}}|s4|r$|tv s4|d d dkr`|rP|d d dkrPd| }d|pXd | }|rp|d | }|r|d | }|r|d | }||S )	Nr   r   rO   r   r   rx   r   r   )rT   uses_netloc)r   r   rz   r   r   r   r   r8   r8   r9   r   #  s     r   c              	   C   s  | s|S |s| S t | |\} }}t| d|\}}}}}}	t|||\}
}}}}}|
|ks`|
tvrh||S |
tv r|r|t|
|||||fS |}|s|s|}|}|s|}|t|
|||||fS |d}|d dkr|d= |d d dkr|d}n(||d }td |dd |dd< g }|D ]N}|dkrZz|  W n tyV   Y n0 n|dkrjq(n
|	| q(|d dv r|	d |t|
|d
|pd|||fS )Nr   r   rO   ...)r   r   )rT   r   uses_relativer   r   r   filterpop
IndexErrorappendjoin)baser   r   r   ZbschemeZbnetlocZbpathZbparamsZbqueryZ	bfragmentr   rz   pathr   r   r   Z
base_partsZsegmentsZresolved_pathZsegr8   r8   r9   r   6  sb    







r   c           	      C   sT   t | \} }d| v r>t| \}}}}}}t|||||df}nd}| }|t||S )Nr   r   )rT   r   r   r   )	r   r   sr   paqZfragZdefragr8   r8   r9   r   {  s    r   Z0123456789ABCDEFabcdefc              	   C   s   | s| j  dS t| tr"| d} |  d}t|dkr<| S |d g}|j}td u rbdd tD a|dd  D ]P}z(|t|d d   ||dd   W qn ty   |d || Y qn0 qnd	|S )	NrK   utf-8rf   rO   r   c                 S   s.   i | ]&}t D ]}||  t|| qqS r8   )_hexdigr@   bytesfromhex)rG   r   r   r8   r8   r9   
<dictcomp>  s   
z$unquote_to_bytes.<locals>.<dictcomp>r   )
r   rP   rQ   r@   r   r   
_hextobyter   KeyErrorr   )stringbitsresr   itemr8   r8   r9   r     s,    



r   z([ -]+)r   r   c                 C   s   t | trt| ||S d| vr,| j | S |d u r8d}|d u rDd}t| }|d g}|j}tdt|dD ],}|t|| || |||d   qnd	|S )Nre   r   r   r   rO   r   r   )
rP   r   r   rE   r   _asciirer   ranger   r   )r   rA   rB   r   r   r   r   r8   r8   r9   r     s     



r   F&c              	   C   sN   i }t | ||||||d}|D ]*\}	}
|	|v r>||	 |
 q|
g||	< q|S )N)rA   rB   max_num_fieldsrk   )r
   r   )qskeep_blank_valuesstrict_parsingrA   rB   r   rk   Zparsed_resultpairsnamevaluer8   r8   r9   r	     s    r	   c                 C   s.  t | \} }t |\}}|r*t|ttfs2td|d urXd| | }	||	k rXtddd | |D }
g }|
D ]}|s|sqt|dd}t|dkr|rtd|f |rt|d	 nqtt|d s|rt|d
 	dd}t
|||d}||}|d 	dd}t
|||d}||}|||f qt|S )Nz*Separator must be of type string or bytes.rO   zMax number of fields exceededc                 S   s   g | ]}|qS r8   r8   )rG   s1r8   r8   r9   
<listcomp>  rK   zparse_qsl.<locals>.<listcomp>=r   zbad query field: %rr   r   + rI   )rT   rP   rQ   r   rn   countr   r   r   r   r   )r   r   r   rA   rB   r   rk   r   r   
num_fieldsr   rZ
name_valueZnvr   r   r8   r8   r9   r
     s:    r
   c                 C   s   |  dd} t| ||S )Nr   r   )r   r   )r   rA   rB   r8   r8   r9   r   7  s    r   sB   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Quoterc                 C   s   t || _d S r4   )_ALWAYS_SAFEunionsafe)rX   r   r8   r8   r9   __init__O  s    zQuoter.__init__c                 C   s   d| j jt| f S )Nz<%s %r>)	__class__rY   dictrb   r8   r8   r9   __repr__S  s    zQuoter.__repr__c                 C   s(   || j v rt|nd|}|| |< |S )Nz%{:02X})r   chrformat)rX   r   r   r8   r8   r9   __missing__W  s    zQuoter.__missing__N)rY   rZ   r[   r   r   r   r8   r8   r8   r9   r   G  s   r   r   c                 C   sb   t | tr8| s| S |d u rd}|d u r*d}| ||} n |d urHtd|d urXtdt| |S )Nr   r<   z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)rP   rQ   r@   rR   r   )r   r   rA   rB   r8   r8   r9   r   ]  s    '
r   c                 C   sd   t | trd| vs$t | tr2d| vr2t| |||S t |trBd}nd}t| || ||} | ddS )Nr       r   )rP   rQ   r   r   r   )r   r   rA   rB   Zspacer8   r8   r9   r     s    
r   c                    s   t | ttfstd| sdS t |tr6|dd}ntdd |D }| t| s^|  S zt	|  W n$ t
y   t|j t	|<  Y n0 d fdd| D S )Nz!quote_from_bytes() expected bytesr   r;   ignorec                 S   s   g | ]}|d k r|qS )   r8   )rG   r   r8   r8   r9   r     rK   z$quote_from_bytes.<locals>.<listcomp>c                    s   g | ]} |qS r8   r8   )rG   charZquoterr8   r9   r     rK   )rP   r   	bytearrayrR   rQ   r@   rstrip_ALWAYS_SAFE_BYTESrE   r7   r   r   __getitem__r   )Zbsr   r8   r  r9   r     s    
r   c              	   C   s  t | dr|  } nNzt| r0t| d ts0tW n. ty`   t \}}}td|Y n0 g }	|s| D ]j\}
}t|
t	r||
|}
n|t
|
|||}
t|t	r|||}n|t
||||}|	|
d |  qnn | D ]\}
}t|
t	r||
|}
n|t
|
|||}
t|t	r@|||}|	|
d |  qt|t
rn|||||}|	|
d |  qzt|}W n8 ty   |t
||||}|	|
d |  Y q0 |D ]B}t|t	r|||}n|t
||||}|	|
d |  qqd|	S )Nitemsr   z1not a valid non-string sequence or mapping objectr   r   )hasattrr
  r   rP   rL   rR   sysexc_infowith_tracebackr   rQ   r   r   )r   Zdoseqr   rA   rB   Z	quote_viaZtyZvatblkr   rH   eltr8   r8   r9   r     sR    





r   c                 C   s   t jdtdd t| S )Nz/urllib.parse.to_bytes() is deprecated as of 3.8r   
stacklevel)warningswarnDeprecationWarning	_to_bytesr   r8   r8   r9   to_bytes  s    r  c                 C   sH   t | trDz| d } W n& tyB   tdt|  d Y n0 | S )NASCIIzURL z contains non-ASCII characters)rP   rQ   r@   rE   UnicodeErrorreprr  r8   r8   r9   r    s    
r  c                 C   s`   t |  } | d d dkr<| dd  dkr<| dd  } | d d dkr\| dd   } | S )NrO   <r   >   zURL:)rQ   r   r  r8   r8   r9   unwrap  s     r!  c                 C   s   t jdtdd t| S )NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  
_splittyper  r8   r8   r9   	splittype,  s    r#  c                 C   sD   t d u rtdtja t | }|r<| \}}| |fS d | fS )Nz([^/:]+):(.*))	_typeprogr   compileDOTALLr   groupsri   )r   r   r   datar8   r8   r9   r"  4  s    
r"  c                 C   s   t jdtdd t| S )NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  
_splithostr  r8   r8   r9   	splithostA  s    r*  c                 C   sX   t d u rtdtja t | }|rP| \}}|rH|d dkrHd| }||fS d | fS )Nz//([^/#?]*)(.*)r   r   )	_hostprogr   r%  r&  r   r'  )r   r   Z	host_portr   r8   r8   r9   r)  I  s    
r)  c                 C   s   t jdtdd t| S )NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  
_splituserhostr8   r8   r9   	splituserX  s    r/  c                 C   s    |  d\}}} |r|nd | fS )Nrw   r{   )r.  userr   r8   r8   r9   r,  _  s    r,  c                 C   s   t jdtdd t| S )NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  _splitpasswd)r1  r8   r8   r9   splitpasswde  s    r3  c                 C   s    |  d\} }}| |r|nd fS Nrx   rh   )r1  r   Zpasswdr8   r8   r9   r2  l  s    r2  c                 C   s   t jdtdd t| S )NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  
_splitportr-  r8   r8   r9   	splitportr  s    r7  c                 C   sD   t d u rtdtja t | }|r<| \} }|r<| |fS | d fS )Nz(.*):([0-9]*))	_portprogr   r%  r&  	fullmatchr'  )r.  r   ro   r8   r8   r9   r6  {  s    
r6  r   c                 C   s   t jdtdd t| |S )NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  _splitnport)r.  defportr8   r8   r9   
splitnport  s    r<  c                 C   sR   |  d\} }}|s|} n0|rJzt|}W n ty@   d }Y n0 | |fS | |fS r4  )r{   rm   rn   )r.  r;  r   ro   Znportr8   r8   r9   r:    s    
r:  c                 C   s   t jdtdd t| S )NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  _splitqueryr  r8   r8   r9   
splitquery  s    r>  c                 C   s$   |  d\}}}|r||fS | d fS )Nr   r0  )r   r   r   r   r8   r8   r9   r=    s    r=  c                 C   s   t jdtdd t| S )NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  	_splittagr  r8   r8   r9   splittag  s    r@  c                 C   s$   |  d\}}}|r||fS | d fS r   r0  )r   r   r   tagr8   r8   r9   r?    s    r?  c                 C   s   t jdtdd t| S )NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r  )r  r  r  
_splitattrr  r8   r8   r9   	splitattr  s    rC  c                 C   s   |  d}|d |dd  fS )Nr   r   rO   )r   )r   Zwordsr8   r8   r9   rB    s    
rB  c                 C   s   t jdtdd t| S )NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadr   r  )r  r  r  _splitvalue)attrr8   r8   r9   
splitvalue  s    rF  c                 C   s    |  d\} }}| |r|nd fS )Nr   r5  )rE  r   r   r8   r8   r9   rD    s    rD  )r   T)r   )r   T)T)r   r   )FFr   r   Nr   )FFr   r   Nr   )r   r   )r   NN)r   NN)r   )r   )r   )lr   r  rs   collectionsr  r   __all__r   r   r   Znon_hierarchicalZ
uses_queryZuses_fragmentr   r   r   r   r5   r:   Z_implicit_encodingZ_implicit_errorsr>   rC   rN   rT   objectrU   r]   r_   rv   r   r   Z_DefragResultBaseZ_SplitResultBaseZ_ParseResultBase__doc__r   r   r   rz   r   r   r   Z
ResultBaser   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r%  r   r   r	   r
   r   	frozensetr   r   r  r7   defaultdictr   r   r   r   r   r  r  r!  r#  r$  r"  r*  r+  r)  r/  r,  r3  r2  r7  r8  r6  r<  r:  r>  r=  r@  r?  rC  rB  rF  rD  r8   r8   r8   r9   <module>"   s   

'


	
	
>
E

  
*  
C
	
6


Q

