+
    ÃHàj¢  ã                   ó@  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^RIHt ]P                  '       d   ^ RIH	t	 ]P                  ! R4      t ! R R] P                  4      t]P                  ! ^@R7      R R	 l4       t]P                  ! ^@R7      R
 R l4       tR R ltR R ltR# )é    N)Ú
StrOrBytes©ÚSOCKS5ATypez'^\[(?P<address>[^\]]+)\]:(?P<port>\d+)$c                   óH   a € ] tR t^t o RtRtRt]V 3R lR l4       tRt	V t
R# )ÚAddressTypeÚIPV4ÚIPV6ÚDNc                ó"   <€ V ^8„  d   QhRRRR/# )é   Úsocks5atyper   Úreturnr   © )ÚformatÚ__classdict__s   "€Ú�/home/ubuntu/.hermes/installs/5f0a1ff4045d044e/environments/50f6b671e3f94b538e344231dfcb664f/venv/lib/python3.14/site-packages/socksio/utils.pyÚ__annotate__ÚAddressType.__annotate__   s   ø€ ÷ 	&ñ 	&¨Mð 	&¸mñ 	&ó    c                óä   € ^ RI Hp WP                  8X  d   \        P                  # WP
                  8X  d   \        P                  # WP                  8X  d   \        P                  # \        V4      h)r   r   )
Úsocksio.socks5r   ÚIPV4_ADDRESSr   r   ÚDOMAIN_NAMEr
   ÚIPV6_ADDRESSr	   Ú
ValueError)Úclsr   r   s   && r   Úfrom_socks5_atypeÚAddressType.from_socks5_atype   sV   € å.à×2Ñ2Ô2Ü×#Ñ#Ð#Ø×3Ñ3Ô3Ü—>‘>Ð!Ø×4Ñ4Ô4Ü×#Ñ#Ð#Ü˜Ó%Ð%r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r	   r
   Úclassmethodr   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s&   ø‡ € Ø€DØ€DØ	€Bà÷	&ó ö	&r   r   )Úmaxsizec                óf   € V ^8„  d   QhR\         R\        P                  \        \        3,          /# )r   Úaddrr   )r   ÚtypingÚTupler   Úbytes)r   s   "r   r   r   #   s(   € ÷ 	1ñ 	1œð 	1¬¯©´[Ä%Ð5GÕ(Hñ 	1r   c                ó²  € \        V \        4      '       d   V P                  4       MT p  \        P                  \
        P                  ! \
        P                  V 4      3#   \         dm     \        P                  \
        P                  ! \
        P                  T 4      3u #   \         d&    \        P                  T P                  4       3u u # i ; ii ; i)zKDetermines the type of address and encodes it into the format SOCKS expects)Ú
isinstancer+   Údecoder   r	   ÚsocketÚ	inet_ptonÚAF_INET6ÚOSErrorr   ÚAF_INETr
   Úencode)r(   s   &r   Úencode_addressr5   "   sž   € ô ' t¬U×3Ò3ˆ4�;‰;Œ=¸€Dð1Ü×Ñ¤×!1Ò!1´&·/±/À4Ó!HÐHÐHøÜô 1ð	1Ü×#Ñ#¤V×%5Ò%5´f·n±nÀdÓ%KÐKÒKøÜô 	1Ü—>‘> 4§;¡;£=Ð0Ô0ð	1úð1ús/   ª4A ÁCÁ+4B"ÂCÂ"+CÃCÃCÃCc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   Úaddress_typeÚencoded_addrr   )r   r+   Ústr)r   s   "r   r   r   0   s!   € ÷ %ñ %¤ð %¼Eð %Äcñ %r   c                ó8  € V \         P                  8X  d&   \        P                  ! \        P                  V4      # V \         P
                  8X  d&   \        P                  ! \        P                  V4      # V \         P                  8X  g   Q hVP                  4       # )z&Decodes the address from a SOCKS reply)	r   r	   r/   Ú	inet_ntopr1   r   r3   r
   r.   )r7   r8   s   &&r   Údecode_addressr<   /   so   € ð ”{×'Ñ'Ô'Ü×Ò¤§¡°Ó>Ð>Ø	œ×)Ñ)Ô	)Ü×Ò¤§¡°Ó=Ð=àœ{Ÿ~™~Ô-Ð-Ð-Ø×"Ñ"Ó$Ð$r   c                óf   € V ^8„  d   QhR\         R\        P                  \        \        3,          /# ©r   Úaddressr   )r   r)   r*   r9   Úint)r   s   "r   r   r   ;   s'   € ÷ ñ ¬Jð ¼6¿<¹<ÌÌSÈÕ;Qñ r   c                óV  € \        V \        4      '       d   V P                  4       MT p \        P                  ! \
        V 4      pV'       d#   VP                  R4      VP                  R4      r MV P                  R4      w  rp V \        V4      3#   \         d    \        R4      Rhi ; i)zÊReturns a tuple (address: str, port: int) from an address string with a port
i.e. '127.0.0.1:8080', '[0:0:0:0:0:0:0:1]:3080' or 'localhost:8080'.

Note no validation is done on the domain or IP itself.
r?   ÚportÚ:z®Invalid address + port. Please supply a valid domain name, IPV4 or IPV6 address with the port as a suffix, i.e. `127.0.0.1:3080`, `[0:0:0:0:0:0:0:1]:3080` or `localhost:3080`N)
r-   r+   r.   ÚreÚmatchÚIP_V6_WITH_PORT_REGEXÚgroupÚ	partitionr@   r   )r?   rE   Ústr_portÚ_s   &   r   Úsplit_address_port_from_stringrK   ;   sš   € ô #-¨W´e×"<Ò"<ˆg�n‰nÔÀ'€GÜ�HŠHÔ*¨GÓ4€EßØ!ŸK™K¨	Ó2°E·K±KÀÓ4G‘à&×0Ñ0°Ó5Ñˆ�HðØœ˜H›Ð%Ð%øÜô Üð;ó
ð ð		ðús   ÂB ÂB(c                óÒ   € V ^8„  d   QhR\         P                  \        \         P                  \        \        3,          3,          R\         P                  \
        \        3,          /# r>   )r)   ÚUnionr   r*   r@   r9   )r   s   "r   r   r   R   sD   € ÷ ñ Ü�\‰\œ*¤f§l¡l´:¼s°?Õ&CÐCÕDðä‡\�\”#”s�(Õñr   c                óö   € \        V \        4      '       dU   V w  r\        V \        4      '       d   V P                  4       p \        V\        \        34      '       d   \        V4      pW3# \        V 4      w  rW3# )z@Returns an (address, port) from an address string-like or tuple.)r-   Útupler+   r.   r9   r@   rK   )r?   rB   s   & r   Ú#get_address_port_tuple_from_addressrP   R   sk   € ô �'œ5×!Ò!Ø‰ˆÜ�gœu×%Ò%Ø—n‘nÓ&ˆGÜ�dœS¤%˜L×)Ò)Ü�t“9ˆDð ˆ=Ðô 7°wÓ?‰ˆàˆ=Ðr   )ÚenumÚ	functoolsrD   r/   r)   Ú_typesr   ÚTYPE_CHECKINGr   r   ÚcompilerF   ÚEnumr   Ú	lru_cacher5   r<   rK   rP   r   r   r   Ú<module>rX      s�   ðÛ Û Û 	Û Û å à	××ÐÝ*ð Ÿ
š
Ð#MÓNÐ ô&�$—)‘)ô &ð$ ×Ò˜RÔ ô	1ó !ð	1ð ×Ò˜RÔ ô%ó !ð%õ÷.r   