f* ddlmZddlZddlZddlZddlZddlZddlZgdZgdZ gdZ gdZ gdZ gdZ gd Zd Zd Zgd Zd ZdZdZdZeefdZeefdZdZGddeZGddeZGddeZGddeeZGddeeZeddZed d!Z ed"d#Z!d$e_"d%ej#_"d&ej$_"d'e _"d(e j%_"d)e j&_"d*e j'_"d+e j(_"d,e j$_"d-e!_"e j%j"e!j%_"e j&j"e!j&_"e j'j"e!j'_"d.e!j)_"e j(j"e!j(_"e j$j"e!j$_"eZ*Gd/deeZ+Gd0d e eZ,Gd1d"e!eZ-Gd2d3eeZ.Gd4d5e eZ/Gd6d7e!eZ0d8Z1e1[1dsd;Z2d<Z3dtd=Z4d>Z5d?Z6ej7d:@dsdAZ8dBZ9dCZ:dudDZ;dEZdGZ?ej@dHZAdvdKZB dwdNZC dwdOZDdvdPZEeFdQZGeHeGZIdRZJGdSdTeKZLdxdVZMdydWZNej7dXZOdzdYZPdLd9ddeNfdZZQd[ZRd\ZSd]ZTd^ZUdaVd_ZWd`ZXdaYdaZZdbZ[dcZ\ddZ]deZ^dfZ_da`dgZad{diZbd{djZcdkZddlZedmZfdnZgdoZhdpZidqZjdrZkdS)|) namedtupleN)urlparse urlunparseurljoin urldefragurlsplit urlunsplit urlencodeparse_qs parse_qslquote quote_plusquote_from_bytesunquote unquote_plusunquote_to_bytes DefragResult ParseResult SplitResultDefragResultBytesParseResultBytesSplitResultBytes)ftphttpgophernntpimapwaisfilehttpsshttpmmsprosperortsprtspsrtspusftpsvnsvn+sshwswss)rrrrrtelnetrrr r#r!r"snewsr$r%r&r'rsyncr)r*r(nfsgitzgit+sshr+r,)rrhdlr$rrr!r"r%r&r'sipsipsr#r(tel) rr2mailtonewsr-rrr.r3r4) rrrrr!r"r#rr%r&r'r3r4) rrr2rrr7rrr!r"r.r r$zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z!  )   cl ttdSN)r cache_clear_byte_quoter_factory3/opt/alt/python311/lib64/python3.11/urllib/parse.py clear_cacherB^s/N $$&&&&&r@asciistrictc|Sr<r?)objs rA_nooprGls Jr@c.|||Sr<encode)rFencodingerrorss rA_encode_resultrMos ::h ' ''r@c>tfd|DS)Nc3LK|]}|r|ndVdS)rNdecode.0xrKrLs rA z_decode_args..us;GGQq8(F+++bGGGGGGr@)tuple)argsrKrLs ``rA _decode_argsrXss* GGGGG$GGG G GGr@ct|dt}|ddD],}|r(t|t|krtd-|r |tfzSt |t fzS)Nrz$Cannot mix str and non-str arguments) isinstancestr TypeErrorrGrXrM)rW str_inputargs rA _coerce_argsr`ws 47C((IABBxDD  D:c3''944BCC Cuh    1 11r@ceZdZ dZddZdS)_ResultMixinStrr?rCrDc4|jfd|DS)Nc3DK|]}|VdSr<rIrRs rArUz)_ResultMixinStr.encode..1*T*T!188Hf+E+E*T*T*T*T*T*Tr@)_encoded_counterpartselfrKrLs ``rArJz_ResultMixinStr.encode,(t(*T*T*T*T*Tt*T*T*TUUr@NrCrD)__name__ __module__ __qualname__ __slots__rJr?r@rArbrb6HIVVVVVVr@rbceZdZ dZddZdS)_ResultMixinBytesr?rCrDc4|jfd|DS)Nc3DK|]}|VdSr<rPrRs rArUz+_ResultMixinBytes.decode..rer@)_decoded_counterpartrgs ``rArQz_ResultMixinBytes.decoderir@Nrj)rkrlrmrnrQr?r@rArqrqror@rqceZdZ dZedZedZedZedZe e j Z dS)_NetlocResultMixinBaser?c|jdS)Nr _userinforhs rAusernamez_NetlocResultMixinBase.username~a  r@c|jdS)NrZrxrzs rApasswordz_NetlocResultMixinBase.passwordr|r@c|jd}|sdSt|trdnd}||\}}}||z|zS)Nr%%) _hostinfor[r\ partitionlower)rhhostname separatorpercentzones rArz_NetlocResultMixinBase.hostnamesi>!$ 4&h44>CC$ "*"4"4Y"?"?'4~~')D00r@c|jd}|h|r$|rt|}nt d|d|cxkrdksnt d|S)NrZz+Port could not be cast to integer value as rizPort out of range 0-65535)risdigitisasciiint ValueError)rhports rArz_NetlocResultMixinBase.ports~a   ||~~ Y$,,.. Y4yy !Wt!W!WXXX&&&&&&&& !<=== r@N) rkrlrmrnpropertyr{r~rr classmethodtypes GenericAlias__class_getitem__r?r@rArvrvsRI !!X!!!X!11X1  X $ E$677r@rvc>eZdZdZedZedZdS)_NetlocResultMixinStrr?c|j}|d\}}}|r|d\}}}|sd}ndx}}||fS)N@:netloc rpartitionrrhruserinfo have_infohostinfor{ have_passwordr~s rAryz_NetlocResultMixinStr._userinfosh(.(9(9#(>(>%)X  '080B0B30G0G -HmX  "& &Hx!!r@c |j}|d\}}}|d\}}}|r3|d\}}}|d\}}}n|d\}}}|sd}||fS)Nr[]rrrhr_r have_open_br bracketedrrs rArz_NetlocResultMixinStr._hostinfos**3//1h%-%7%7%<%<"<  8 ) 3 3C 8 8 Ha,,JAq$$ ( 2 23 7 7 Ha D~r@Nrkrlrmrnrryrr?r@rArrMI  " "X "  X   r@rc>eZdZdZedZedZdS)_NetlocResultMixinBytesr?c|j}|d\}}}|r|d\}}}|sd}ndx}}||fS)N@:rrs rAryz!_NetlocResultMixinBytes._userinfosh(.(9(9$(?(?%)X  '080B0B40H0H -HmX  "& &Hx!!r@c |j}|d\}}}|d\}}}|r3|d\}}}|d\}}}n|d\}}}|sd}||fS)Nr[]rrrs rArz!_NetlocResultMixinBytes._hostinfos**4001h%-%7%7%=%="<  9 ) 3 3D 9 9 Ha--JAq$$ ( 2 24 8 8 Ha D~r@Nrr?r@rArrrr@rrz url fragmentrz!scheme netloc path query fragmentrz(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. ceZdZdZdZdS)rr?cB|jr|jdz|jzS|jSN#fragmenturlrzs rAgeturlzDefragResult.geturlEs& = 8c>DM1 18Or@Nrkrlrmrnrr?r@rArrC(Ir@ceZdZdZdZdS)rr?c t|Sr<r rzs rArzSplitResult.geturlM$r@Nrr?r@rArrK(I     r@ceZdZdZdZdS)rr?c t|Sr<rrzs rArzParseResult.geturlRrr@Nrr?r@rArrPrr@ceZdZdZdZdS)rr?cB|jr|jdz|jzS|jS)N#rrzs rArzDefragResultBytes.geturlXs& = 8d?T]2 28Or@Nrr?r@rArrVrr@rceZdZdZdZdS)rr?c t|Sr<rrzs rArzSplitResultBytes.geturl`rr@Nrr?r@rArr^rr@rceZdZdZdZdS)rr?c t|Sr<rrzs rArzParseResultBytes.geturlerr@Nrr?r@rArrcrr@rcttfttftt ff}|D]\}}||_||_dSr<)rrrrrrrfrt) _result_pairs_decoded_encodeds rA_fix_result_transcodingrisW () &' &'M ,11((0%(0%%11r@rTc t||\}}}t|||}|\}}}}}|tvrd|vrt|\}}nd}t ||||||} || S)N;r)r`r uses_params _splitparamsr) rschemeallow_fragments_coerce_result splitresultrqueryrparamsresults rArrvs&#/sF";";C388K+6(FFC "3'' VV feX F FF >& ! !!r@cd|vr4|d|d}|dkr|dfSn|d}|d|||dzdfS)N/rrrrZ)findrfind)ris rArrso s{{ HHS#))C.. ) ) q557N  HHSMM rr7C!I r@ct|}dD].}|||}|dkrt||}/|||||dfS)Nz/?#r)lenrmin)rstartdelimcwdelims rA _splitnetlocrsd HHE ''!U## Q;;v&&E uU{ S[ ((r@cl|r|rdSddl}|dd}|dd}|dd}|dd}|d|}||krdSdD]}||vrt d |zd zd zdS) Nrrrrr?NFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)r unicodedatareplace normalizer)rrnnetloc2rs rA _checknetlocrs V^^%%sBA #rA #rA #rA##FA..GG|| DD <<Z&03HHBCDD D DDr@c|dr&tjd|stddSt j|}t |tjrtddS)Nvz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz%An IPv4 address cannot be in brackets) startswithrematchr ipaddress ip_addressr[ IPv4Address)rips rA_check_bracketed_hostrs3Gx0(;; ><== = > > !( + + b)/ 0 0 GEFF F G Gr@)typedc2 t||\}}}|t}|t}tD].}||d}||d}/t |}dx}x}}|d}|dkru|dr[|d rA|d|D] } | tvrn*|d| ||dzd}}|dddkr}t|d\}}d|vrd|vsd|vrd|vrtd d|vrGd|vrC|dddd} t| |rd |vr|d d\}}d |vr|d d\}}t#|t%|||||} || S) NrrrrZ//rrzInvalid IPv6 URLrr)r`lstrip_WHATWG_C0_CONTROL_OR_SPACEstrip_UNSAFE_URL_BYTES_TO_REMOVErboolrrisalpha scheme_charsrrrrrsplitrr) rrrrbrrrrrbracketed_hostrs rArrsD(#/sF";";C **0 1 1C \\5 6 6F (''kk!R  2&&?++O ""F"UX  A1uuQ!!uc!fnn&6&6uRaR 5 5A $$%bqb'--//3qstt9CF 2A2w$"3**  F]]s&003f#4#4/00 0 &==SF]]#--c2215??DDQGN !. 1 1 1*3#:: #q)) X czzYYsA&& UFFC99A >!  r@c r t|\}}}}}}}|r|d|}|t|||||fS)Nr)r`r ) componentsrrrrrrrs rArrs`5 3? 2KAFFC. &ff% >*ffc5(%KLL M MMr@c t|\}}}}}}|s|r6|tvr-|dddkr|r|dddkrd|z}d|pdz|z}|r|dz|z}|r|dz|z}|r|dz|z}||S) NrrrZrrrrr)r` uses_netloc)r rrrrrrs rAr r s? +7 *C9FFC. *&*V{22s2A2w$ 23rr7c>>s3fl#c) !slS   Ci%#Ci(" >#  r@c  |s|S|s|St||\}}}t|d|\}}}}}} t|||\} } } } }}| |ks | tvr ||S| tvr"| r|t | | | | ||fS|} | s(| s&|} |} |s|}|t | | | | ||fS|d}|ddkr|d=| dddkr| d}n5|| dz}t d|dd|dd<g}|D]J}|dkr& |#t$rY*wxYw|dkr5| |K|ddvr| d|t | | d |pd| ||fS)NrrrZ...)rr) r`r uses_relativer rrfilterpop IndexErrorappendjoin)baserrrbschemebnetlocbpathbparamsbquery bfragmentrrpathrrr base_partssegments resolved_pathsegs rArrs%   ,T3 7 7D#~ T2 / /8GWeWfi S'? 3 32FFD&%F-77~c"""   I!>*ffd.4eX.G#H#HII I EE E~j&&$*0%*CDDEE ES!!J"~ rN BQBx3::c?? 3/ hqtn552M & & $;; !!####    CZZ    % % % %|{"" R   >*ffchh777vuh&899 : ::sE E)(E)c t|\}}d|vr,t|\}}}}}}t|||||df}nd}|}|t||S)Nrr)r`rrr) rrsrpaqfragdefrags rArr`s| 's++C czz&smm1aAtQ1aB/00 >,vt44 5 55r@0123456789ABCDEFabcdefc |s |jdSt|tr|d}|d}t |dkr|S|dg}|j}t dtDa|ddD]Z} |t |dd||dd5#t$r|d||YWwxYwd |S)Nr@utf-8rrZrci|]?}tD]5}||zt||z6@Sr?)_hexdigrJbytesfromhex)rSr&rs rA z$unquote_to_bytes..s\99999+,1unn&& a!e(<(<9999r@r) rr[r\rJrr _hextobyter.KeyErrorr)stringbitsresritems rArrss:6  s&#(w'' <<  D 4yyA~~ 7)C ZF99&999 QRR  F:d2A2h' ( ( ( F48        F4LLL F4LLLLL  88C==s1C C+*C+z([-]+)r,rc t|tr#t|||Sd|vr |j|S|d}|d}t |}|dg}|j}tdt|dD]H}|t|||||||dzId |S)Nrr,rrrZrr) r[r/rrQr_asciirerrangerr)r4rKrLr5r6rrs rArrs&%  A''..x@@@ &   ~ >>& ! !D 7)C ZF 1c$ii # #Q((//&AABBBtAE{ 773<<r@F&c  i}t|||||||}|D]+\} } | |vr|| | %| g|| <,|S)N)rKrLmax_num_fieldsr)r r) qskeep_blank_valuesstrict_parsingrKrLr=r parsed_resultpairsnamevalues rAr r s8M b+^'%3y J J JE** e = $  & &u - - - -#('M$   r@c |rt|ttfstdt|tr.t|tst|d}d}fd}nJ|sgStt |}t|trt|d}d}d}|sgS|-d||z} || krtdg} ||D]f} | s|r`| |\} } }| s|rtd | |s|r-|| } ||}| | |fg| S) Nz*Separator must be of type string or bytes.rC=c(t|S)N)rKrL)r)r$rKrLs rA_unquotezparse_qsl.._unquotesHVDDD Dr@=cHt|ddS)N+ )rr)r$s rArHzparse_qsl.._unquotes#AIIdD$9$9:: :r@rZzMax number of fields exceededzbad query field: ) r[r\r/r memoryviewcountrrr)r>r?r@rKrLr=reqrH num_fieldsr name_valuerChas_eqrDs `` rAr r s8 GJy3,??GEFFF"c;)S)) 0Iw//I  E E E E E E E I:b>> " " i % % 2i11I  ; ; ;  !),,, J & &<== = Ahhy))((  ( (","6"6r":": D&% Hn H j**!FGGG () (x~~ $''' Hr@cR |dd}t|||S)N+ )rr)r4rKrLs rArr"s. ^^C % %F 68V , ,,r@sBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c|dkr#tjdtdtSt dt d|)NQuoterzoDeprecated in 3.11. urllib.parse.Quoter will be removed in Python 3.14. It was not intended to be a public API.r stacklevelzmodule z has no attribute )warningswarnDeprecationWarning_QuoterAttributeErrorrk)rCs rA __getattr__r`1sY x @)Q 8 8 8 8 I8IIII J JJr@c"eZdZ dZdZdZdS)r^cF t||_dSr<) _ALWAYS_SAFEunionsafe)rhres rA__init__z_Quoter.__init__Bs! &&t,, r@c(dt|dS)Nz)dictrzs rA__repr__z_Quoter.__repr__Fs)$t**))))r@cj||jvrt|nd|}|||<|S)Nz%{:02X})rechrformat)rhrr6s rA __missing__z_Quoter.__missing__Is7TYc!fffI,<,Fx00  JKK K  HII I FD ) ))r@c t|trd|vst|trd|vrt||||St|trd}nd}t|||z||}|ddS)NrVrLrU)r[r\r/r r)r4rerKrLspaces rArrs FC 5S%6%6 FE " "&7'+6'9'9VT8V444$ 64%<6 : :F >>#s # ##r@c*t|jSr<)r^ __getitem__)res rAr>r>s 4== $$r@c t|ttfstd|sdSt|tr|dd}ntd|D}|t|zs|St|d fd|DS)Nz!quote_from_bytes() expected bytesrrCignorecg|] }|dk| S)r?)rSrs rA z$quote_from_bytes..s111ASar@c&g|] }|Sr?r?)rScharquoters rArxz$quote_from_bytes..s!000TFF4LL000r@) r[r/ bytearrayr]r\rJrstrip_ALWAYS_SAFE_BYTESrQr>r)bsrer{s @rArrs b5), - -=;<<< r$3{{7H--1111122 99'$. / /yy{{ !$ ' 'F 770000R000 1 11r@cV t|dr|}nU t|r"t|dtst n"#t $r}t d|d}~wwxYwg}|s|D]\}} t|t r |||}n|t||||}t| t r || |} n|t| |||} ||dz| znw|D]s\}} t|t r |||}n|t||||}t| t r(|| |} ||dz| zt| tr*|| |||} ||dz| z t| } | D]Z} t| t r || |} n|t| |||} ||dz| z[.#t $r:|t| |||} ||dz| zYqwxYwd |S)Nitemsrz1not a valid non-string sequence or mapping objectrFr;) hasattrrrr[rVr]r/r\rr) rdoseqrerKrL quote_viaerrlkrrTelts rAr r s  ug:  :5zz *U1Xu"="=   : : :01169 : : A (0 " "DAq!U## >Ia&&Ic!ffdHf==!U## >Ia&&Ic!ffdHf== HHQWq[ ! ! ! ! " 0 0DAq!U## >Ia&&Ic!ffdHf==!U## 0Ia&&S1%%%%As## 0Iax88S1%%%%0AA !00%c511N"+)C"6"6CC"+)CHHdHf"M"MCS3//// 0 !***! #a&&$&AAAHHQWq[)))))* 88A;;s*1A A9$A44A9!IAJJcXtjdtdt|S)Nz/urllib.parse.to_bytes() is deprecated as of 3.8rrY)r[r\r] _to_bytesrs rAto_bytesrs/ MC$4444 S>>r@c t|trY |d}n0#t$r#t dt |zdzwxYw|S)NASCIIzURL z contains non-ASCII characters)r[r\rJrQ UnicodeErrorreprrs rArrs%#sA A**W%%,,..CC A A AvS 1? @AA A A Js 'A-A-c t|}|dddkr*|dddkr|dd}|dddkr|dd}|S)NrZ|r$|rt|}nd}||fS||fSr)rrrr)rrrrnports rArrs}2,,D%   <<>> dllnn IIEEEU{ =r@cXtjdtdt|S)NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrrY)r[r\r] _splitqueryrs rA splitqueryrs5 M8$4444 s  r@cJ |d\}}}|r||fS|dfS)Nrr)rrrrs rArrs99,,D% U{ 9r@cXtjdtdt|S)NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrrY)r[r\r] _splittagrs rAsplittagrs3 M8$4444 S>>r@cJ |d\}}}|r||fS|dfSrr)rrrtags rArrs93~~c**D% Sy 9r@cXtjdtdt|S)NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrrY)r[r\r] _splitattrrs rA splitattrrrr@cR |d}|d|ddfS)NrrrZ)r)rwordss rArrs-; IIcNNE 8U122Y r@cXtjdtdt|S)NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadrrY)r[r\r] _splitvalue)attrs rA splitvaluers5 M9$4444 t  r@cF |d\}}}||r|ndfS)NrFr)rrrDs rArrs17,,D% 5*%%d ++r@)rT)r)T)r,r)FFr,rNr;)rNN)rNN)r)r)l collectionsr functoolsrsysrr[r__all__rr rnon_hierarchical uses_query uses_fragmentrrrrB_implicit_encoding_implicit_errorsrGrMrXr`objectrbrqrvrr_DefragResultBase_SplitResultBase_ParseResultBase__doc__rrrrrrr ResultBaserrrrrrrrrrrr lru_cacherrr rrr.r2rrr9rr r r frozensetrcr/r~r`rir^r rr>rr rrrrrrrrrrrrrrrrrrrrrrrrrrr?r@rArsB#"""""  H H H000  --- FFFAAA %%%  \100'''"4/((((!3.HHHH222"VVVVVfVVVVVVVVVVV#8#8#8#8#8V#8#8#8L2O<46G<J~~>>:688:=??!K&" #N#!" %!  #3"9"A"2"9"A 0 5 =# "2!7!?$4$=$E! # $o     "$9        "$9   )+<     ')@        ')@   111""""<))))DDD(GGG4   666! 6p N N N&B:B:B:B:J666 #  < 2:& ' '8:?PS''''T;@QTG G G G R----y!"" U<((KKKd*4*4*4*4*l$$$$$ %%%2222(!rD"MMMM`                +++ ---      &&&&",,,,,r@