o
    hU                     @   s(  d Z ddlmZmZ ddlZddlZG dd dejjZ	G dd dej
jZded	e	fd
dZdeded	e	fddZde	d	eeef fddZdde	ded	efddZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	j Z e	j!Z!e	j"Z"e	j#Z#e	j$Z$e	j%Z%e	j&Z&e	j'Z'e	j(Z(dS )zDNS Result Codes.    )TupleTypeNc                   @   s   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZedd Zedee fddZdS )Rcoder                           	   
                              c                 C   s   dS )N   clsr   r   K/var/www/html/pro-man-master/venv/lib/python3.10/site-packages/dns/rcode.py_maximumF      zRcode._maximumreturnc                 C   s   t S )N)UnknownRcoder   r   r   r   _unknown_exception_classJ   r   zRcode._unknown_exception_classN)__name__
__module____qualname__NOERRORFORMERRSERVFAILNXDOMAINNOTIMPREFUSEDYXDOMAINYXRRSETNXRRSETNOTAUTHNOTZONE	DSOTYPENIBADVERSBADSIGBADKEYBADTIMEBADMODEBADNAMEBADALGBADTRUNC	BADCOOKIEclassmethodr   r   	Exceptionr!   r   r   r   r   r      s4    
r   c                   @   s   e Zd ZdZdS )r    zA DNS rcode is unknown.N)r"   r#   r$   __doc__r   r   r   r   r    O   s    r    textr   c                 C   s
   t | S )zConvert text into an rcode.

    *text*, a ``str``, the textual rcode or an integer in textual form.

    Raises ``dns.rcode.UnknownRcode`` if the rcode mnemonic is unknown.

    Returns a ``dns.rcode.Rcode``.
    )r   	from_text)r=   r   r   r   r>   S   s   

r>   flags	ednsflagsc                 C   s   | d@ |d? d@ B }t |S )zReturn the rcode value encoded by flags and ednsflags.

    *flags*, an ``int``, the DNS flags field.

    *ednsflags*, an ``int``, the EDNS flags field.

    Raises ``ValueError`` if rcode is < 0 or > 4095

    Returns a ``dns.rcode.Rcode``.
       r     )r   make)r?   r@   valuer   r   r   
from_flags`   s   
rE   rD   c                 C   s4   | dk s| dkrt d| d@ }| d@ d> }||fS )zReturn a (flags, ednsflags) tuple which encodes the rcode.

    *value*, a ``dns.rcode.Rcode``, the rcode.

    Raises ``ValueError`` if rcode is < 0 or > 4095.

    Returns an ``(int, int)`` tuple.
    r   r   zrcode must be >= 0 and <= 4095rA   rB   r   )
ValueError)rD   vevr   r   r   to_flagsp   s
   
rI   Ftsigc                 C   s   |r	| t jkr	dS t | S )zConvert rcode into text.

    *value*, a ``dns.rcode.Rcode``, the rcode.

    Raises ``ValueError`` if rcode is < 0 or > 4095.

    Returns a ``str``.
    r2   )r   r1   to_text)rD   rJ   r   r   r   rK      s   

rK   )F))r<   typingr   r   dns.enumdnsdns.exceptionenumIntEnumr   	exceptionDNSExceptionr    strr>   intrE   rI   boolrK   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r   r   r   r   <module>   s>   5
