Ë
    ¶�/jy  ã                   óô   — d Z ddlZddlmZmZ ddlZddlZej                  Zej                  Z	de
dedefd„Zde
dedefd	„Zdede
fd
„Zdedefd„Zdedefd„Zddeee
f   de
dz  defd„Zd„ Zdedefd„Zy)z*Generic Internet address helper functions.é    N)ÚAnyÚTupleÚfamilyÚtextÚreturnc                 ó°   — | t         k(  rt        j                  j                  |«      S | t        k(  r t        j
                  j                  |d«      S t        ‚)a  Convert the textual form of a network address into its binary form.

    *family* is an ``int``, the address family.

    *text* is a ``str``, the textual address.

    Raises ``NotImplementedError`` if the address family specified is not
    implemented.

    Returns a ``bytes``.
    T)ÚAF_INETÚdnsÚipv4Ú	inet_atonÚAF_INET6Úipv6ÚNotImplementedError)r   r   s     úJC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\dns/inet.pyÚ	inet_ptonr   !   sF   € ð ”ÒÜ�x‰x×!Ñ! $Ó'Ð'Ø	”8Ò	Ü�x‰x×!Ñ! $¨Ó-Ð-ä!Ð!ó    Úaddressc                 ó®   — | t         k(  rt        j                  j                  |«      S | t        k(  rt        j
                  j                  |«      S t        ‚)a0  Convert the binary form of a network address into its textual form.

    *family* is an ``int``, the address family.

    *address* is a ``bytes``, the network address in binary form.

    Raises ``NotImplementedError`` if the address family specified is not
    implemented.

    Returns a ``str``.
    )r	   r
   r   Ú	inet_ntoar   r   r   )r   r   s     r   Ú	inet_ntopr   6   sD   € ð ”ÒÜ�x‰x×!Ñ! 'Ó*Ð*Ø	”8Ò	Ü�x‰x×!Ñ! 'Ó*Ð*ä!Ð!r   c                 óà   — 	 t         j                  j                  | «       t        S # t        $ r= 	 t         j
                  j                  | d«       t        cY S # t        $ r t        ‚w xY ww xY w)zäDetermine the address family of a textual-form network address.

    *text*, a ``str``, the textual address.

    Raises ``ValueError`` if the address family cannot be determined
    from the input.

    Returns an ``int``.
    T)r
   r   r   r	   Ú	Exceptionr   r   Ú
ValueError©r   s    r   Úaf_for_addressr   K   s`   € ðÜ�‰×Ñ˜4Ô ÜˆøÜò ð	Ü�H‰H×Ñ˜t TÔ*ÜŠOøÜò 	ÜÐð	úð	ús    ‚$' §	A-±%AÁA-ÁA)Á)A-c                 óö   — 	 t         j                  j                  | «      d   }|dk\  xr |dk  S # t        $ r? 	 t         j                  j                  | d«      d   }|dk(  cY S # t        $ r t
        ‚w xY ww xY w)zÝIs the textual-form network address a multicast address?

    *text*, a ``str``, the textual address.

    Raises ``ValueError`` if the address family cannot be determined
    from the input.

    Returns a ``bool``.
    r   éà   éï   Téÿ   )r
   r   r   r   r   r   )r   Úfirsts     r   Úis_multicastr!   a   s�   € ðÜ—‘×"Ñ" 4Ó(¨Ñ+ˆØ˜‰|Ò, ¨¡Ð,øÜò ð	Ü—H‘H×&Ñ& t¨TÓ2°1Ñ5ˆEØ˜C‘<ÒøÜò 	ÜÐð	úð	ús    ‚-0 °	A8º'A$Á!A8Á$A4Á4A8c                 óÄ   — 	 t         j                  j                  | «       y# t        $ r4 	 t         j                  j                  | d«       Y y# t        $ r Y Y yw xY ww xY w)z{Is the specified string an IPv4 or IPv6 address?

    *text*, a ``str``, the textual address.

    Returns a ``bool``.
    TF)r
   r   r   r   r   r   s    r   Ú
is_addressr#   w   sY   € ðÜ�‰×Ñ˜4Ô ØøÜò ð	Ü�H‰H×Ñ˜t TÔ*ÙøÜò 	Úð	úð	ús&   ‚" ¢	A¬ AÁ	AÁAÁAÁAÚ
high_tupleÚafc                 ó®  — | \  }}|€t        |«      }|t        k(  r||fS |t        k(  rb|j                  d«      }|dk  r||ddfS |d| }||dz   d }|j	                  «       r||dt        |«      fS 	 ||dt        j                  |«      fS t        d|› �«      ‚# t        $ r2 t        j                  }t        j                  |||¬«      ^�^ }}	}|	cY S w xY w)aX  Given a "high-level" address tuple, i.e.
    an (address, port) return the appropriate "low-level" address tuple
    suitable for use in socket calls.

    If an *af* other than ``None`` is provided, it is assumed the
    address in the high-level tuple is valid and has that af.  If af
    is ``None``, then af_for_address will be called.
    NÚ%r   é   )Úflagsúunknown address family )r   r	   r   ÚfindÚisdigitÚintÚsocketÚif_nametoindexÚAttributeErrorÚAI_NUMERICHOSTÚgetaddrinfor   )
r$   r%   r   ÚportÚiÚaddrpartÚscopeÚai_flagsÚ_Útups
             r   Úlow_level_address_tupler:   Š   s   € ð �M€GˆTØ	€zÜ˜GÓ$ˆØ	ŒW‚}Ø˜ˆÐØ	ŒxŠØ�L‰L˜ÓˆØˆqŠ5à˜T 1 aÐ(Ð(à˜2˜A�;ˆØ˜˜A™˜Ð ˆØ�=‰=Œ?Ø˜d A¤s¨5£zÐ2Ð2ð	Ø˜d A¤v×'<Ñ'<¸UÓ'CÐDÐDô "Ð$;¸B¸4Ð"@ÓAÐAøô ò 	Ü×,Ñ,ˆHÜ$×0Ñ0°¸$ÀhÔOˆO‰Yˆq�#˜ØŠJð	ús   Á2B Â8CÃCc                 ón   — | t         j                  k(  ry| t         j                  k(  ryt        d| › �«      ‚)z:Return the 'any' address for the specified address family.z0.0.0.0z::r*   )r.   r	   r   r   )r%   s    r   Ú
any_for_afr<   ¬   s3   € à	ŒV�^‰^ÒØØ	Œv�‰Ò	ØÜ
Ð 7¸°tÐ<Ó
=Ð=r   c                 óÆ   — 	 t         j                  j                  | «      S # t        $ r6 	 t         j                  j                  | «      cY S # t        $ r t
        ‚w xY ww xY w)a   Verify that *address* is a valid text form IPv4 or IPv6 address and return its
    canonical text form.  IPv6 addresses with scopes are rejected.

    *text*, a ``str``, the address in textual form.

    Raises ``ValueError`` if the text is not valid.
    )r
   r   Úcanonicalizer   r   r   r   s    r   r>   r>   µ   sZ   € ðÜ�x‰x×$Ñ$ TÓ*Ð*øÜò ð	Ü—8‘8×(Ñ(¨Ó.Ò.øÜò 	ÜÐð	úðús    ‚! ¡	A «AÁ	A ÁAÁA )N)Ú__doc__r.   Útypingr   r   Údns.ipv4r
   Údns.ipv6r	   r   r-   ÚstrÚbytesr   r   r   Úboolr!   r#   r:   r<   r>   © r   r   Ú<module>rG      sÛ   ðñ$ 1ã ß ã Û ð
 �.‰.€Ø�?‰?€ð"�cð " ð "¨ó "ð*"�cð " Eð "¨có "ð*˜ð  ó ð,�sð ˜tó ð,�Sð ˜Tó ñ&B¨¨c°3¨h©ð B¸SÀ4¹Zð BÐSVó BòD>ð�sð ˜sô r   