
    )in,                       S SK Jr  S SKJr  S SKrS SKJr  \R                  " S\R                  S9r	\R                  " S5      r
\R                  " S5      rS	rS
\-   rS\-   rS\-   rSrSr\R                  " S5      r\R                  " S5      r\" \SSS.5      r\" \SSSSSSSSSSS.
5      r " S S5      rSS.SS jjrg)    )annotations)defaultdictN)URLz^([a-z0-9.+-]+:))flagsz:[0-9]*$z^(//?(?!/)[^?\s]*)(\?[^\s]*)?$)<>"` 
	){}|\^r
   )')%/?;#)r   r   r      z^[+a-z0-9A-Z_-]{0,63}$z^([+a-z0-9A-Z_-]{0,63})(.*)$T)
javascriptzjavascript:)
httphttpsftpgopherfilezhttp:zhttps:zftp:zgopher:zfile:c                  2    \ rS rSrSS jrSS jrS	S jrSrg)

MutableURLi   c                t    S U l         SU l        S U l        S U l        S U l        S U l        S U l        S U l        g )NF)protocolslashesauthporthostnamehashsearchpathname)selfs    L/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/mdurl/_parse.py__init__MutableURL.__init__j   s:    $(" $	 $	$( $	"&$(    c                n
   SnSnUnUR                  5       nU(       d~  [        UR                  S5      5      S:X  a`  [        R	                  U5      nU(       aD  UR                  S5      U l        UR                  S5      (       a  UR                  S5      U l        U $ Sn[        R	                  U5      nU(       a4  UR                  5       nUR                  5       nXpl
        U[        U5      S  nU(       d#  U(       d  [        R                  " SU5      (       a9  UR                  S5      nU(       a!  U(       a  [        U   (       d  USS  nSU l        [        U   (       GdE  U(       d  U(       Ga6  [        U   (       Gd'  S	n	[!        [        ["        5      5       H2  n
UR%                  ["        U
   5      nUS	:w  d  M#  U	S	:X  d  X:  d  M0  Un	M4     U	S	:X  a  UR'                  S
5      nOUR'                  S
SU	S-   5      nUS	:w  a  US U nX\S-   S  nXl        S	n	[!        [        [*        5      5       H2  n
UR%                  [*        U
   5      nUS	:w  d  M#  U	S	:X  d  X:  d  M0  Un	M4     U	S	:X  a  [        U5      n	U	S:  a  XYS-
     S:X  a  U	S-  n	US U	 nXYS  nU R-                  U5        U R.                  =(       d    SU l        U R.                  R                  S5      =(       a    U R.                  R1                  S5      nU(       Gdb  U R.                  R                  S5      n[        U5      nSn
U
U:  Ga3  UU
   nU(       d  U
S-  n
M  [2        R                  U5      (       d  Sn[        U5      nSnUU:  a-  [5        UU   5      S:  a  US-  nOUUU   -  nUS-  nUU:  a  M-  [2        R                  U5      (       d  US U
 nUU
S-   S  n[6        R                  U5      nU(       aA  UR9                  UR                  S5      5        UR;                  SUR                  S5      5        U(       a  SR=                  U5      U-   nSR=                  U5      U l        OU
S-  n
U
U:  a  GM3  [        U R.                  5      [>        :  a  SU l        U(       a  U R.                  SS	 U l        UR%                  S5      nUS	:w  a  UUS  U l         US U nUR%                  S5      nUS	:w  a  UUS  U l        US U nU(       a  XPl        [        U   (       a)  U R.                  (       a  U R                  (       d  SU l        U $ )N Fr         z^//[^@/]+@[^@/]+z//T@r   :[].   xr   )!striplensplitSIMPLE_PATH_PATTERNmatchgroupr,   r+   PROTOCOL_PATTERNlowerr%   re
startswithHOSTLESS_PROTOCOLr&   SLASHED_PROTOCOLrangeHOST_ENDING_CHARSfindrfindr'   NON_HOST_CHARS
parse_hostr)   endswithHOSTNAME_PART_PATTERNordHOSTNAME_PART_STARTappendinsertjoinHOSTNAME_MAX_LENr*   )r-   urlslashes_denote_hostlower_protor&   restsimple_pathprotoproto_matchhost_endihecat_signr'   hostipv6_hostname	hostpartslpartnewpartkjvalid_partsnot_hostbitr*   qms                              r.   parseMutableURL.parset   s    zz|"s399S>':a'?-33D9K + 1 1! 4$$Q''"-"3"3A"6DK&,,T2%%'E++-K!ME
%D %2995H$+O+Oood+G*;E*BABx# ''&6u&=&=& H3012ii 1! 45"9(b.CN"H 3 2~**S/ **S!X\: "}HW~aKM* 	 H3~./iiq 12"9(b.CN"H 0
 2~t9!|\ 2c 9A	?D	?D OOD! !MM/RDM !MM44S9 dmm>T>T?M
 ! MM//4		N!e$Q<DQ 077=="$I!e"47|c1 !(3 '47 2FA  !e  5;;GDD*3BQ-K'0Q'9H"5"<"<T"BC" + 2 2399Q< @ (399Q< @''*xx'9D'@,/HH[,ADM!FA? !eB 4==!$44 "  $a 3 yy~2:TUDI;DYYs^8rs)DK9D MK(T]]4==DMr1   c                    [         R                  U5      nU(       a/  UR                  5       nUS:w  a
  USS  U l        US [	        U5      *  nU(       a  Xl        g g )Nr8   r4   )PORT_PATTERNr+   rC   r(   r?   r)   )r-   rc   
port_matchr(   s       r.   rO   MutableURL.parse_host  sV    !((.
##%Ds{ H	3t9*%D M r1   )r'   r*   r)   r,   r(   r%   r+   r&   N)returnNone)rX   strrY   boolru   z'MutableURL')rc   rw   ru   rv   )__name__
__module____qualname____firstlineno__r/   ro   rO   __static_attributes__ r1   r.   r"   r"   i   s    )hT!r1   r"   F)rY   c          
     *   [        U [        5      (       a  U $ [        5       nUR                  X5        [        UR                  UR
                  UR                  UR                  UR                  UR                  UR                  UR                  5      $ )N)
isinstancer   r"   ro   r%   r&   r'   r(   r)   r*   r+   r,   )rX   rY   us      r.   	url_parser   )  se    #s
AGGC%	

AIIqvvqvvqzz166188QZZ r1   )rX   z	URL | strrY   rx   ru   r   )
__future__r   collectionsr   rF   
mdurl._urlr   compile
IGNORECASErD   rr   rA   DELIMSUNWISEAUTO_ESCAPErN   rK   rW   rQ   rS   rx   rH   rI   r"   r   r~   r1   r.   <module>r      s  T # # 	  ::1G zz+& jj!BC  
5 
)6	1 vo
 +[8#  

#<= jj!@A      "}! }!@ >C  r1   