+
    IV-je;  ã                  ó�  € ^ RI Ht ^ RIt^ RIt^RIHt ^RIHt RAt]P                  ! R4      t
]P                  ! R4      t]P                  ! R]P                  ]P                  ,          4      tRtR	tR
P#                  ]]R7      tR]R]/t. RBOtRtRRP-                  ] U u. uF  q ],          NK  	  up 4      ,           R,           tR],           R,           tR],           R,           ],           R,           tRt]P                  ! R4      t]P                  ! R],           R,           4      t]P                  ! R],           R,           4      t]P                  ! R],           R,           4      t]P                  ! R]^RC ,           R,           4      t]P                  ! R],           R,           4      t R]: R]: R]: R2t!]P                  ! ]!]P                  ]P                  ,          4      t"]#! R4      t$]#! R4      t%]$]%,          R 0,          t&]&R!R"0,          t']'R#0,          ;t(t) ! R$ R%]PT                  ! R%R&]PV                  ],,          3R']PV                  ],,          3R(]PV                  ],,          3R)]PV                  ]-,          3R*]PV                  ],,          3R+]PV                  ],,          3R,]PV                  ],,          3.4      4      t.]P^                  R- R. l4       t0]P^                  R/ R0 l4       t0R1 R2 lt0R3 R4 lt1]P^                  R5 R6 l4       t2]P^                  R7 R8 l4       t2R9 R: lt2R; R< lt3R= R> lt4R? R@ lt5R# u up i )Dé    )ÚannotationsN)ÚLocationParseError)Úto_strz%[a-fA-F0-9]{2}z^(?:[a-zA-Z][a-zA-Z0-9+-]*:|/)zS^(?:([a-zA-Z][a-zA-Z0-9+.-]*):)?(?://([^\\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$z(?:[0-9]{1,3}\.){3}[0-9]{1,3}z[0-9A-Fa-f]{1,4}z(?:{hex}:{hex}|{ipv4}))ÚhexÚipv4r   Úls32zCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._\-~z(?:Ú|Ú)z(?:%25|%)(?:[z]|%[a-fA-F0-9]{2})+z\[z)?\]z!(?:[^\[\]%:/?#]|%[a-fA-F0-9]{2})*z!^(/[^?#]*)(?:\?([^#]*))?(?:#.*)?$Ú^Ú$Ú(z)\]$z^(z)(?::0*?(|0|[1-9][0-9]{0,4}))?$zBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-~z!$&'()*+,;=Ú:Ú@Ú/Ú?c                  ó°   a € ] tR t^PtRtRR V 3R lllt]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       tR R ltRtV ;t# )ÚUrlz½
Data structure for representing an HTTP URL. Used as a return value for
:func:`parse_url`. Both the scheme and host are normalized as they are
both case-insensitive according to RFC 3986.
c               ó4   € V ^8„  d   QhRRRRRRRRRRRRR	R/# )
é   Úschemeú
str | NoneÚauthÚhostÚportz
int | NoneÚpathÚqueryÚfragment© )Úformats   "Úa/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/urllib3/util/url.pyÚ__annotate__ÚUrl.__annotate__d   sY   € ÷ Uñ UàðUð ðUð ð	Uð
 ðUð ðUð ðUð ñUó    c           
     	ó    <€ V'       d!   VP                  R 4      '       g
   R V,           pVe   VP                  4       p\        SV `  WW#WEWg4      # )r   )Ú
startswithÚlowerÚsuperÚ__new__)	Úclsr   r   r   r   r   r   r   Ú	__class__s	   &&&&&&&&€r    r(   ÚUrl.__new__d   sE   ø€ ÷ ˜Ÿ™¨×,Ò,Ø˜•:ˆDØÒØ—\‘\“^ˆFÜ‰w‰˜s¨D¸ÀEÓTÐTr#   c               ó   € V ^8„  d   QhRR/# ©r   Úreturnr   r   )r   s   "r    r!   r"   u   s   € ÷ ñ ˜*ñ r#   c                ó   € V P                   # )z@For backwards-compatibility with urlparse. We're nice like that.)r   ©Úselfs   &r    ÚhostnameÚUrl.hostnamet   s   € ð �y‰yÐr#   c               ó   € V ^8„  d   QhRR/# ©r   r.   Ústrr   )r   s   "r    r!   r"   z   s   € ÷ ñ ˜Sñ r#   c                ó‚   € V P                   ;'       g    RpV P                  e   VRV P                  ,           ,          pV# )z)Absolute path including the query string.r   r   )r   r   )r1   Úuris   & r    Úrequest_uriÚUrl.request_uriy   s7   € ð �i‰i×Ð˜3ˆà�:‰:Ò!Ø�3˜Ÿ™Õ#Õ#ˆCàˆ
r#   c               ó   € V ^8„  d   QhRR/# r-   r   )r   s   "r    r!   r"   „   s   € ÷ *ñ *˜:ñ *r#   c                óT   € V P                   pV P                  pVe   Vf   V# V RV 2# )z|
Authority component as defined in RFC 3986 3.2.
This includes userinfo (auth), host and port.

i.e.
    userinfo@host:port
r   )r   Únetloc)r1   Úuserinfor=   s   &  r    Ú	authorityÚUrl.authorityƒ   s6   € ð —9‘9ˆØ—‘ˆØŠ>˜XÒ-ØˆMà�Z˜q  Ð)Ð)r#   c               ó   € V ^8„  d   QhRR/# r-   r   )r   s   "r    r!   r"   ”   s   € ÷ ñ ˜
ñ r#   c                ó”   € V P                   f   R# V P                  '       d   V P                    RV P                   2# V P                   # )z�
Network location including host and port.

If you need the equivalent of urllib.parse's ``netloc``,
use the ``authority`` property instead.
Nr   )r   r   r0   s   &r    r=   Ú
Url.netloc“   s=   € ð �9‰9ÒÙØ�9�9ˆ9Ø—i‘i�[  $§)¡) Ð-Ð-Ø�y‰yÐr#   c               ó   € V ^8„  d   QhRR/# r5   r   )r   s   "r    r!   r"   ¢   s   € ÷ -ñ -�Sñ -r#   c                ó  € V w  rr4rVpRpVe   W�R,           ,          pVe   W‚R,           ,          pVe	   Wƒ,          pVe   VR\        V4      ,           ,          pVe	   W…,          pVe   VRV,           ,          pVe   VRV,           ,          pV# )aª  
Convert self into a url

This function should more or less round-trip with :func:`.parse_url`. The
returned url may not be exactly the same as the url inputted to
:func:`.parse_url`, but it should be equivalent by the RFC (e.g., urls
with a blank port will have : removed).

Example:

.. code-block:: python

    import urllib3

    U = urllib3.util.parse_url("https://google.com/mail/")

    print(U.url)
    # "https://google.com/mail/"

    print( urllib3.util.Url("https", "username:password",
                            "host.com", 80, "/path", "query", "fragment"
                            ).url
        )
    # "https://username:password@host.com:80/path?query#fragment"
Ú z://r   r   r   Ú#)r6   )	r1   r   r   r   r   r   r   r   Úurls	   &        r    rH   ÚUrl.url¡   sœ   € ð6 ;?Ñ7ˆ�d $¨xØˆð ÒØ˜E•>Õ!ˆCØÒØ˜#•:ÕˆCØÒØ�KˆCØÒØ�3œ˜T›•?Õ"ˆCØÒØ�KˆCØÒØ�3˜•;ÕˆCØÒØ�3˜•>Õ!ˆCàˆ
r#   c               ó   € V ^8„  d   QhRR/# r5   r   )r   s   "r    r!   r"   Ñ   s   € ÷ ñ ˜ñ r#   c                	ó   € V P                   # ©N)rH   r0   s   &r    Ú__str__ÚUrl.__str__Ñ   s   € Ø�x‰xˆr#   r   )NNNNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r(   Úpropertyr2   r9   r?   r=   rH   rM   Ú__static_attributes__Ú__classcell__)r*   s   @r    r   r   P   sƒ   ø† ñ÷Uò Uð  ôó ðð ôó ðð ô*ó ð*ð ôó ðð ô-ó ð-÷^ó r#   r   r   r   r   r   r   r   r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú	componentr6   Úallowed_charsútyping.Container[str]r.   r   )r   s   "r    r!   r!   Ö   s$   € ÷ ñ ØðØ#8ðàñr#   c                ó   € R # rL   r   ©rX   rY   s   &&r    Ú_encode_invalid_charsr]   Õ   ó   € ñ r#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rX   ÚNonerY   rZ   r.   r   )r   s   "r    r!   r!   Ý   s$   € ÷ ñ ØðØ$9ðà	ñr#   c                ó   € R # rL   r   r\   s   &&r    r]   r]   Ü   r^   r#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rX   r   rY   rZ   r.   r   )r   s   "r    r!   r!   ã   s$   € ÷ !&ñ !&Øð!&Ø*?ð!&àñ!&r#   c                óH  € V f   V # \        V 4      p \        P                  R V 4      w  rV P                  RR4      pW#P	                  R4      8H  p\        4       p\        ^ \        V4      4       F¡  pW6V^,            p\        V4      pV'       d   VR8X  g   V^€8  d    VP                  4       V9   d   WW,          pKN  VP                  R\        V4      R,          P                  4       P                  ^4      P                  4       ,           4       K£  	  VP                  4       # )z^Percent-encodes a URI component without reapplying
onto an already percent-encoded component.
c                ó@   € V P                  ^ 4      P                  4       # )r   )ÚgroupÚupper)Úmatchs   &r    Ú<lambda>Ú'_encode_invalid_chars.<locals>.<lambda>ò   s   € �e—k‘k !“n×*Ñ*Ô,r#   zutf-8Úsurrogatepassó   %:r   NN)r   Ú_PERCENT_REÚsubnÚencodeÚcountÚ	bytearrayÚrangeÚlenÚordÚdecodeÚextendr   Úzfillrf   )	rX   rY   Úpercent_encodingsÚ	uri_bytesÚis_percent_encodedÚencoded_componentÚiÚbyteÚbyte_ords	   &&       r    r]   r]   ã   s  € ð ÒØÐä�yÓ!€Iô
 $/×#3Ñ#3Ù,¨ió$Ñ €Ið × Ñ  ¨/Ó:€IØ*¯o©o¸dÓ.CÑCÐÜ!›Ðä�1”c˜)“nÖ%ˆà˜Q �UÐ#ˆÜ�t“9ˆß 4¨4¤<Ø�sŒN˜tŸ{™{›}°Ô=àÕ%ÐÙØ× Ñ  ¬¨X«°rÕ):×)AÑ)AÓ)C×)IÑ)IÈ!Ó)L×)RÑ)RÓ)TÕ!UÖVñ &ð ×#Ñ#Ó%Ð%r#   c               ó    € V ^8„  d   QhRRRR/# )r   r   r6   r.   r   )r   s   "r    r!   r!     s   € ÷ ñ  Cð ¨Cñ r#   c                ó¦  € V P                  R 4      p. pV F@  pVR8X  d   K  VR8w  d   VP                  V4       K&  V'       g   K0  VP                  4        KB  	  V P                  R 4      '       d*   V'       d   V^ ,          '       d   VP	                  ^ R4       V P                  R4      '       d   VP                  R4       R P                  V4      # )r   Ú.z..rF   )z/.z/..)ÚsplitÚappendÚpopr%   ÚinsertÚendswithÚjoin)r   ÚsegmentsÚoutputÚsegments   &   r    Ú_remove_path_dot_segmentsrŠ     s    € à�z‰z˜#‹€HØ€Fãˆà�cŒ>Ùà�dŒ?Ø�M‰M˜'Ö"÷ ‰VØ�J‰JŽLñ ð ‡��s×Ò§V¨v°a¯y¬yØ�‰�a˜Ôð ‡}�}�]×#Ò#Ø�‰�bÔà�8‰8�FÓÐr#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r`   r   r   r.   r   )r   s   "r    r!   r!   &  s   € × @Ñ @˜$Ð @¨
Ð @°tÑ @r#   c                ó   € R # rL   r   ©r   r   s   &&r    Ú_normalize_hostrŽ   %  s   € Ù=@r#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r6   r   r   r.   r   )r   s   "r    r!   r!   *  s   € × >Ñ >˜#Ð > zÐ >°cÑ >r#   c                ó   € R # rL   r   r�   s   &&r    rŽ   rŽ   )  s   € Ù;>r#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   r   r.   r   )r   s   "r    r!   r!   -  s!   € ÷ ñ ˜*ð ¨jð ¸Zñ r#   c           
     ór  € V '       Ed)   V\         9   Ed   \        P                  V 4      pV'       d¢   \        P	                  V 4      pV'       du   VP                  ^4      w  rEWV pVP                  R4      '       d   VR8w  d   VR,          pM	VR,          p\        V\        4      pV RV P                  4        RV WR  2# V P                  4       # \        P                  V 4      '       gD   \        RP                  V P                  R4       Uu. uF  p\        V4      NK  	  up4      R4      # V # u upi )	é   z%25:é   NN:r“   NNNÚ%ó   .r€   Úascii)Ú_NORMALIZABLE_SCHEMESÚ_IPV6_ADDRZ_RErg   Ú_ZONE_ID_REÚsearchÚspanr%   r]   Ú_UNRESERVED_CHARSr&   Ú_IPV4_REr   r†   r�   Ú_idna_encode)r   r   Úis_ipv6rg   ÚstartÚendÚzone_idÚlabels   &&      r    rŽ   rŽ   -  s  € ß€tØÔ*Õ*Ü$×*Ñ*¨4Ó0ˆGßô $×*Ñ*¨4Ó0�ßØ!&§¡¨A£‘J�EØ"¨˜o�Gà×)Ñ)¨%×0Ò0°WÀÔ5EØ")¨"¥+™à")¨"¥+˜Ü3°GÔ=NÓO�GØ" 6 E˜l×0Ñ0Ó2Ð3°1°W°I¸dÀ4¸j¸\ÐJÐJàŸ:™:›<Ð'Ü—^‘^ D×)Ò)ÜØ—I‘IÀÇ
Á
È3ÄÓPÁ°uœ|¨EÖ2ÁÑPÓQØóð ð €Kùò Qs   ÄD4c               ó    € V ^8„  d   QhRRRR/# )r   Únamer6   r.   Úbytesr   )r   s   "r    r!   r!   J  s   € ÷ (ñ (�sð (˜uñ (r#   c                ó<  € V P                  4       '       g)    ^ RIp TP	                  T P                  4       RRR7      # V P                  4       P	                  R4      #   \         d    \        R4      Rhi ; i  TP                   d    \        RT  R24      Rhi ; i)r   Nz-Unable to parse URL without the 'idna' moduleT)ÚstrictÚ
std3_ruleszName 'z' is not a valid IDNA labelr—   )ÚisasciiÚidnaÚImportErrorr   rn   r&   Ú	IDNAError)r¦   r¬   s   & r    rŸ   rŸ   J  s£   € Ø�<‰<�>Š>ð	Ûð	Ø—;‘;˜tŸz™z›|°DÀT�;ÓJÐJð �:‰:‹<×Ñ˜wÓ'Ð'øô ô 	Ü$Ø?óàðð	ûð �~‰~ô 	Ü$Ø˜˜Ð9Ð:óàðð	ús   ˜A �!A9 ÁA6Á9"Bc               ó    € V ^8„  d   QhRRRR/# )r   Útargetr6   r.   r   )r   s   "r    r!   r!   ]  s   € ÷ ñ ˜3ð  3ñ r#   c                óê   € \         P                  V 4      pV'       g   \        V : R24      hVP                  4       w  r#\	        V\
        4      pVe!   \	        V\        4      pVRV,           ,          pV# )zÑPercent-encodes a request target so that there are no invalid characters

Pre-condition for this function is that 'target' must start with '/'.
If that is the case then _TARGET_RE will always produce a match.
z is not a valid request URIr   )Ú
_TARGET_RErg   r   Úgroupsr]   Ú_PATH_CHARSÚ_QUERY_CHARS)r°   rg   r   r   Úencoded_targets   &    r    Ú_encode_targetr·   ]  si   € ô ×Ñ˜VÓ$€EßÜ  F¡:Ð-HÐ!IÓJÐJà—,‘,“.�K€DÜ*¨4´Ó=€NØÒÜ% e¬\Ó:ˆØ˜# �+Õ%ˆØÐr#   c               ó    € V ^8„  d   QhRRRR/# )r   rH   r6   r.   r   r   )r   s   "r    r!   r!   o  s   € ÷ fñ f�3ð f˜3ñ fr#   c           
     ó  € V '       g   \        4       # T p\        P                  V 4      '       g
   RV ,           p  \        P	                  V 4      P                  4       w  r#rEpVRJ ;'       g    VP                  4       \        9   pV'       d   VP                  4       pV'       dp   VP                  R4      w  r‰p
T;'       g    Rp\        P	                  V
4      P                  4       w  r¼V'       d   V'       d   \        V\        4      pVR8X  d   RpMRRRrËpVe)   \        V4      p^ Tu;8:  d   R8:  g   M \        V 4      hMRp\        W²4      pV'       d$   V'       d   \        V4      p\        V\         4      pV'       d   V'       d   \        V\"        4      pV'       d   V'       d   \        V\$        4      pT'       g   Tf   Te   RpMRp\        TTTTTTTR7      #   \&        \(        3 d   p\        T4      ThRp?ii ; i)aH  
Given a url, return a parsed :class:`.Url` namedtuple. Best-effort is
performed to parse incomplete urls. Fields not provided will be None.
This parser is RFC 3986 and RFC 6874 compliant.

The parser logic and helper functions are based heavily on
work done in the ``rfc3986`` module.

:param str url: URL to parse into a :class:`.Url` namedtuple.

Partly backwards-compatible with :mod:`urllib.parse`.

Example:

.. code-block:: python

    import urllib3

    print( urllib3.util.parse_url('http://google.com/mail/'))
    # Url(scheme='http', host='google.com', port=None, path='/mail/', ...)

    print( urllib3.util.parse_url('google.com:80'))
    # Url(scheme=None, host='google.com', port=80, path=None, ...)

    print( urllib3.util.parse_url('/foo?bar'))
    # Url(scheme=None, host=None, port=None, path='/foo', query='bar', ...)
z//Nr   rF   iÿÿ  )r   r   r   r   r   r   r   )r   Ú
_SCHEME_REr›   Ú_URI_RErg   r³   r&   r˜   Ú
rpartitionÚ_HOST_PORT_REr]   Ú_USERINFO_CHARSÚintr   rŽ   rŠ   r´   rµ   Ú_FRAGMENT_CHARSÚ
ValueErrorÚAttributeError)rH   Ú
source_urlr   r?   r   r   r   Únormalize_urir   Ú_Ú	host_portr   r   Úport_intÚes   &              r    Ú	parse_urlrÉ   o  s¼  € ÷8 ä‹uˆà€JÜ×Ñ˜S×!Ò!Ø�S�jˆð$4Ü3:·=±=ÀÓ3E×3LÑ3LÓ3NÑ0ˆ˜4¨Ø $˜×QÐQ¨&¯,©,«.Ô<QÑ*QˆçØ—\‘\“^ˆFçØ!*×!5Ñ!5°cÓ!:ÑˆD�YØ—<�<˜4ˆDÜ&×,Ñ,¨YÓ7×>Ñ>Ó@‰JˆDßŸÜ,¨T´?ÓC�Ø�rŒzØ�øà# T¨4˜ˆDàÒÜ˜4“yˆHØ˜Ö* UÖ*Ü(¨Ó-Ð-ð +ð ˆHä˜tÓ,ˆçŸTÜ,¨TÓ2ˆDÜ(¨¬{Ó;ˆDßŸUÜ)¨%´Ó>ˆEßŸXÜ,¨X´ÓGˆH÷ ØÒ Ò 4Ø‰DàˆDäØØØØØØØôð øô œÐ'ô 4Ü  Ó,°!Ð3ûð4úsT   º1G# Á,G# ÂG# Â$G# Ã7G# Ã9A'G# Å!"G# ÆG# ÆG# Æ$G# Æ,G# Ç#HÇ4H È H)ÚhttpÚhttpsN)	z(?:%(hex)s:){6}%(ls32)sz::(?:%(hex)s:){5}%(ls32)sz%(?:%(hex)s)?::(?:%(hex)s:){4}%(ls32)sz2(?:(?:%(hex)s:)?%(hex)s)?::(?:%(hex)s:){3}%(ls32)sz6(?:(?:%(hex)s:){0,2}%(hex)s)?::(?:%(hex)s:){2}%(ls32)sz/(?:(?:%(hex)s:){0,3}%(hex)s)?::%(hex)s:%(ls32)sz'(?:(?:%(hex)s:){0,4}%(hex)s)?::%(ls32)sz&(?:(?:%(hex)s:){0,5}%(hex)s)?::%(hex)sz(?:(?:%(hex)s:){0,6}%(hex)s)?::éþÿÿÿ)6Ú
__future__r   ÚreÚtypingÚ
exceptionsr   Úutilr   r˜   Úcompilerl   rº   ÚUNICODEÚDOTALLr»   Ú	_IPV4_PATÚ_HEX_PATr   Ú	_LS32_PATÚ_subsÚ_variationsÚ_UNRESERVED_PATr†   Ú	_IPV6_PATÚ_ZONE_ID_PATÚ_IPV6_ADDRZ_PATÚ_REG_NAME_PATr²   rž   Ú_IPV6_REr™   Ú_BRACELESS_IPV6_ADDRZ_RErš   Ú_HOST_PORT_PATr½   Úsetr�   Ú_SUB_DELIM_CHARSr¾   r´   rµ   rÀ   Ú
NamedTupleÚOptionalr6   r¿   r   Úoverloadr]   rŠ   rŽ   rŸ   r·   rÉ   )Úxs   0r    Ú<module>rè      s  ðÝ "ã 	Û å +Ý ð 0Ð ð �jŠjÐ+Ó,€Ø�ZŠZÐ9Ó:€
Ø
�*Š*ðð
 ‡J�J�—‘Õó€ð -€	Ø€Ø$×+Ñ+°¸yÐ+ÓI€	Ø	�˜& )Ð,€ò€ð* Y€Ø�C—H‘H±Ó=±¨A %Ÿi˜i±Ñ=Ó>Õ>ÀÕD€	Ø Õ0Ð3HÕH€Ø˜)Õ# fÕ,¨|Õ;¸gÕE€Ø4€Ø�ZŠZÐ<Ó=€
à�:Š:�c˜I•o¨Õ+Ó,€Ø�:Š:�c˜I•o¨Õ+Ó,€Ø—’˜C /Õ1°CÕ7Ó8€ØŸ:š: c¨O¸A¸bÐ,AÕ&AÀCÕ&GÓHÐ Ø�jŠj˜˜|Õ+¨gÕ5Ó6�ó ÛÛð€ð
 —
’
˜>¨2¯:©:¸¿	¹	Õ+AÓB€áØHóÐ ñ �}Ó%Ð Ø#Ð&6Õ6¸#¸Õ>€Ø  c 
Õ*€Ø!,°¨uÕ!4Ð 4€ˆôBØ
×ÒØà�v—‘ sÕ+Ð,Ø�V—_‘_ SÕ)Ð*Ø�V—_‘_ SÕ)Ð*Ø�V—_‘_ SÕ)Ð*Ø�V—_‘_ SÕ)Ð*Ø�f—o‘o cÕ*Ð+Ø˜Ÿ™¨Õ-Ð.ð	
óôBðJ ‡�ôó ðð ‡�ôó ðõ!&õHð< ‡�Ü @ó Ø @ð ‡�Ü >ó Ø >õõ:(õ&÷$fùòw	 >s   Â"M
