Ë
    ¶�/j   ã                   ó2   — d Z ddlmZ ddlZ G d„ de«      Zy)zDNS name dictionaryé    )ÚMutableMappingNc                   óZ   ‡ — e Zd ZdZg d¢Zˆ fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zˆ xZS )ÚNameDictz·A dictionary whose keys are dns.name.Name objects.

    In addition to being like a regular Python dictionary, this
    dictionary can also get the deepest match for a given key.
    )Ú	max_depthÚmax_depth_itemsÚ__storec                 ó�   •— t         ‰| �  «        t        «       | _        d| _        d| _        | j                  t        |i |¤Ž«       y )Nr   )ÚsuperÚ__init__ÚdictÚ_NameDict__storer   r   Úupdate)ÚselfÚargsÚkwargsÚ	__class__s      €úNC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\dns/namedict.pyr   zNameDict.__init__-   s<   ø€ Ü‰ÑÔÜ“vˆŒàˆŒà ˆÔØ�‰”D˜$Ð) &Ñ)Õ*ó    c                 ó¾   — t        |«      | j                  k(  r| j                  dz   | _        y t        |«      | j                  kD  rt        |«      | _        d| _        y y )Né   )Úlenr   r   ©r   Úkeys     r   Ú__update_max_depthzNameDict.__update_max_depth6   sM   € Üˆs‹8�t—~‘~Ò%Ø#'×#7Ñ#7¸!Ñ#;ˆDÕ Ü�‹X˜Ÿ™Ò&Ü  ›XˆDŒNØ#$ˆDÕ ð 'r   c                 ó    — | j                   |   S ©N©r   r   s     r   Ú__getitem__zNameDict.__getitem__=   s   € Ø�|‰|˜CÑ Ð r   c                 ó¢   — t        |t        j                  j                  «      st	        d«      ‚|| j
                  |<   | j                  |«       y )NzNameDict key must be a name)Ú
isinstanceÚdnsÚnameÚNameÚ
ValueErrorr   Ú_NameDict__update_max_depth)r   r   Úvalues      r   Ú__setitem__zNameDict.__setitem__@   s<   € Ü˜#œsŸx™xŸ}™}Ô-ÜÐ:Ó;Ð;Ø!ˆ�‰�SÑØ×Ñ Õ$r   c                 ó  — | j                   j                  |«       t        |«      | j                  k(  r| j                  dz
  | _        | j                  dk(  r*d| _        | j                   D ]  }| j                  |«       Œ y y )Nr   r   )r   Úpopr   r   r   r%   )r   r   Úks      r   Ú__delitem__zNameDict.__delitem__F   sm   € Ø�‰×Ñ˜ÔÜˆs‹8�t—~‘~Ò%Ø#'×#7Ñ#7¸!Ñ#;ˆDÔ Ø×Ñ 1Ò$ØˆDŒNØ—\”\�Ø×'Ñ'¨Õ*ñ "ð %r   c                 ó,   — t        | j                  «      S r   )Úiterr   ©r   s    r   Ú__iter__zNameDict.__iter__O   s   € Ü�D—L‘LÓ!Ð!r   c                 ó,   — t        | j                  «      S r   )r   r   r.   s    r   Ú__len__zNameDict.__len__R   s   € Ü�4—<‘<Ó Ð r   c                 ó   — || j                   v S r   r   r   s     r   Úhas_keyzNameDict.has_keyU   s   € Ø�d—l‘lÐ"Ð"r   c                 óB  — t        |«      }|| j                  kD  r| j                  }t        | d«      D ]1  }t        j                  j                  ||d «      }|| v sŒ*|| |   fc S  | t        j                  j                     }t        j                  j                  |fS )a«  Find the deepest match to *name* in the dictionary.

        The deepest match is the longest name in the dictionary which is
        a superdomain of *name*.  Note that *superdomain* includes matching
        *name* itself.

        *name*, a ``dns.name.Name``, the name to find.

        Returns a ``(key, value)`` where *key* is the deepest
        ``dns.name.Name``, and *value* is the value associated with *key*.
        r   N)r   r   Úranger!   r"   r#   Úempty)r   r"   ÚdepthÚiÚnÚvs         r   Úget_deepest_matchzNameDict.get_deepest_matchX   s‰   € ô �D“	ˆØ�4—>‘>Ò!Ø—N‘NˆEÜ˜�v˜qÖ!ˆAÜ—‘—‘˜d 1 2˜hÓ'ˆAØ�DŠyØ˜4 ™7�|Ò#ð "ð ”—‘—‘Ñ ˆÜ—‘—‘ Ð"Ð"r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r%   r   r'   r+   r/   r1   r3   r;   Ú__classcell__)r   s   @r   r   r   $   s<   ø„ ñò <€Iô+ò%ò!ò%ò+ò"ò!ò#ö#r   r   )r?   Úcollections.abcr   Údns.namer!   r   © r   r   Ú<module>rE      s    ðñ8 õ +ã ôI#ˆ~õ I#r   