ó
    ÌÅLgÒ#  ã                   ó   • S r SSKJrJrJrJrJrJr  SSKr	SSK
r	SSKr	SSKr	 " S S\	R                  R                  5      r    SS\\	R                   R"                  \4   S\S\\	R(                  R*                  \4   S	\\	R,                  R.                  \4   S
\\   S\\	R                   R0                     S\\	R                   R"                     S\S\\	R                   R"                     S\4S jjrS\\	R                   R"                  \4   S\S\\	R(                  R*                  \4   S	\\	R,                  R.                  \4   S
\S\4S jr SS\\	R                   R"                  \4   S\S\\	R8                  R:                     S\\	R                   R0                     S\4
S jjrS\\	R                   R"                  \4   S\S\S\4S jrg)z)DNS RRsets (an RRset is a named rdataset)é    )ÚAnyÚ
CollectionÚDictÚOptionalÚUnionÚcastNc                   ó®  ^ • \ rS rSrSrSS/r\R                  R                  S4S\R                  R                  S\R                  R                  S\R                  R                  S\R                  R                  S\\R                  R                     4
U 4S	 jjjrU 4S
 jrS rS rU 4S jrS\S\S\4U 4S jjr SS\R                  R                  S\R                  R                  S\R                  R                  S\R                  R                  S\\R                  R                     S\4U 4S jjjr  SS\\R                  R                     S\S\\\4   S\4U 4S jjjr  SS\S\\R                  R6                     S\\R                  R                     S\\\4   S\4
U 4S jjjrS\R<                  R>                  4S jr Sr!U =r"$ )ÚRRseté   a  A DNS RRset (named rdataset).

RRset inherits from Rdataset, and RRsets can be treated as
Rdatasets in most cases.  There are, however, a few notable
exceptions.  RRsets have different to_wire() and to_text() method
arguments, reflecting the fact that RRsets always have an owner
name.
ÚnameÚdeletingNÚrdclassÚrdtypeÚcoversc                 ó>   >• [         TU ]  X#U5        Xl        XPl        g)zCreate a new RRset.N)ÚsuperÚ__init__r   r   ©Úselfr   r   r   r   r   Ú	__class__s         €Ú+/usr/lib/python3/dist-packages/dns/rrset.pyr   ÚRRset.__init__(   s   ø€ ô 	‰Ñ˜¨&Ô1ØŒ	Ø �ó    c                 óh   >• [         TU ]  5       nU R                  Ul        U R                  Ul        U$ ©N)r   Ú_cloner   r   )r   Úobjr   s     €r   r   ÚRRset._clone6   s*   ø€ Ü‰g‰nÓˆØ—9‘9ˆŒØ—}‘}ˆŒØˆ
r   c                 ó  • U R                   S:X  a  SnO/S[        R                  R                  U R                   5      -   S-   nU R                  b-  S[        R
                  R                  U R                  5      -   nOSnS[        U R                  5      -   S-   [        R
                  R                  U R                  5      -   S-   [        R                  R                  U R                  5      -   U-   U-   S-   U R                  5       -   S	-   $ )
Nr   Ú Ú(Ú)z delete=z<DNS Ú z RRset: Ú>)r   ÚdnsÚ	rdatatypeÚto_textr   Ú
rdataclassÚstrr   r   r   Ú_rdata_repr)r   ÚctextÚdtexts      r   Ú__repr__ÚRRset.__repr__<   s   € Ø�;‰;˜!ÓØ‰Eàœ#Ÿ-™-×/Ñ/°·±Ó<Ñ<¸sÑBˆEØ�=‰=Ñ$Ø¤§¡×!7Ñ!7¸¿¹Ó!FÑF‰EàˆEàÜ�$—)‘)‹nñàñô �n‰n×$Ñ$ T§\¡\Ó2ñ3ð ñ	ô
 �m‰m×#Ñ# D§K¡KÓ0ñ1ð ñð ñð ñð ×ÑÓ ñ	!ð ñ
ð	
r   c                 ó"   • U R                  5       $ r   )r'   ©r   s    r   Ú__str__ÚRRset.__str__S   s   € Ø�|‰|‹~Ðr   c                 óØ   >• [        U[        5      (       a  U R                  UR                  :w  a  gO*[        U[        R                  R
                  5      (       d  g[        TU ]  U5      $ )NF)Ú
isinstancer
   r   r%   ÚrdatasetÚRdatasetr   Ú__eq__)r   Úotherr   s     €r   r7   ÚRRset.__eq__V   sQ   ø€ Ü�eœU×#Ñ#Ø�y‰y˜EŸJ™JÓ&Øð 'ä˜E¤3§<¡<×#8Ñ#8×9Ñ9ØÜ‰w‰~˜eÓ$Ð$r   ÚargsÚkwargsÚreturnc                 ó    >• [        US   [        R                  R                  5      (       a  U R                  " U0 UD6$ [
        TU ]  " U0 UD6$ )a�  Does this rrset match the specified attributes?

Behaves as :py:func:`full_match()` if the first argument is a
``dns.name.Name``, and as :py:func:`dns.rdataset.Rdataset.match()`
otherwise.

(This behavior fixes a design mistake where the signature of this
method became incompatible with that of its superclass.  The fix
makes RRsets matchable as Rdatasets while preserving backwards
compatibility.)
r   )r4   r%   r   ÚNameÚ
full_matchr   Úmatch)r   r:   r;   r   s      €r   r@   ÚRRset.match^   sF   ø€ ô �d˜1‘gœsŸx™xŸ}™}×-Ñ-Ø—?’? DÐ3¨FÑ3Ð3ä‘7’= $Ð1¨&Ñ1Ð1r   c                 ót   >• [         TU ]  X#U5      (       d  gU R                  U:w  d  U R                  U:w  a  gg)zdReturns ``True`` if this rrset matches the specified name, class,
type, covers, and deletion state.
FT)r   r@   r   r   r   s         €r   r?   ÚRRset.full_matcho   s6   ø€ ô ‰w‰}˜W¨f×5Ñ5ØØ�9‰9˜Ó §¡°Ó 9ØØr   ÚoriginÚ
relativizeÚkwc                 óR   >• [         TU ]  " U R                  XU R                  40 UD6$ )aŸ  Convert the RRset into DNS zone file format.

See ``dns.name.Name.choose_relativity`` for more information
on how *origin* and *relativize* determine the way names
are emitted.

Any additional keyword arguments are passed on to the rdata
``to_text()`` method.

*origin*, a ``dns.name.Name`` or ``None``, the origin for relative
names.

*relativize*, a ``bool``.  If ``True``, names will be relativized
to *origin*.
)r   r'   r   r   )r   rD   rE   rF   r   s       €r   r'   ÚRRset.to_text‚   s-   ø€ ô, ‰wŠØ�I‰I�v¨4¯=©=ñ
Ø<>ñ
ð 	
r   ÚfileÚcompressc                 óR   >• [         TU ]  " U R                  XX0R                  40 UD6$ )z¶Convert the RRset to wire format.

All keyword arguments are passed to ``dns.rdataset.to_wire()``; see
that function for details.

Returns an ``int``, the number of records emitted.
)r   Úto_wirer   r   )r   rI   rJ   rD   rF   r   s        €r   rL   ÚRRset.to_wireœ   s-   ø€ ô ‰wŠØ�I‰I�t v¯}©}ñ
Ø@Bñ
ð 	
r   c                 óh   • [         R                  R                  U R                  [	        U 5      5      $ )zIConvert an RRset into an Rdataset.

Returns a ``dns.rdataset.Rdataset``.
)r%   r5   Úfrom_rdata_listÚttlÚlistr0   s    r   Úto_rdatasetÚRRset.to_rdataset±   s#   € ô
 �|‰|×+Ñ+¨D¯H©H´d¸4³jÓAÐAr   )r   r   r   )NT)NN)#Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r%   r&   ÚNONEr   r>   r(   Ú
RdataClassÚ	RdataTyper   r   r   r-   r1   r7   r   Úboolr@   r?   r   r)   r'   ÚCompressTypeÚintrL   r5   r6   rR   Ú__static_attributes__Ú__classcell__)r   s   @r   r
   r
      s  ø† ñð ˜Ð$€Ið +.¯-©-×*<Ñ*<Ø8<ñ!à�h‰h�m‰mð!ð —‘×*Ñ*ð!ð —‘×'Ñ'ð	!ð
 —‘×'Ñ'ð!ð ˜3Ÿ>™>×4Ñ4Ñ5÷!ð !õò
ò.õ%ð2˜3ð 2¨#ð 2°$÷ 2ð. 9=ñà�h‰h�m‰mðð —‘×*Ñ*ðð —‘×'Ñ'ð	ð
 —‘×'Ñ'ðð ˜3Ÿ>™>×4Ñ4Ñ5ðð 
÷ð ð* +/Øñ
à˜Ÿ™Ÿ™Ñ'ð
ð ð
ð �3˜�8‰nð	
ð
 
÷
ð 
ð: 59Ø*.ñ	
àð
ð ˜3Ÿ8™8×0Ñ0Ñ1ð
ð ˜Ÿ™Ÿ™Ñ'ð	
ð
 �3˜�8‰nð
ð 
÷
ð 
ð*B˜SŸ\™\×2Ñ2÷ Bò Br   r
   r   rP   r   r   Útext_rdatasÚ
idna_codecrD   rE   Úrelativize_tor<   c	           
      óî  • [        U [        5      (       a  [        R                  R	                  U SUS9n [        R
                  R                  R                  U5      n[        R                  R                  R                  U5      n[        XU5      n	U	R                  U5        U HK  n
[        R                  R	                  U	R                  U	R                  X¦XxU5      nU	R                  U5        MM     U	$ )aM  Create an RRset with the specified name, TTL, class, and type, and with
the specified list of rdatas in text format.

*idna_codec*, a ``dns.name.IDNACodec``, specifies the IDNA
encoder/decoder to use; if ``None``, the default IDNA 2003
encoder/decoder is used.

*origin*, a ``dns.name.Name`` (or ``None``), the
origin to use for relative names.

*relativize*, a ``bool``.  If true, name will be relativized.

*relativize_to*, a ``dns.name.Name`` (or ``None``), the origin to use
when relativizing names.  If not set, the *origin* value will be used.

Returns a ``dns.rrset.RRset`` object.
N©rc   )r4   r)   r%   r   Ú	from_textr(   r[   Úmaker&   r\   r
   Ú
update_ttlÚrdatar   r   Úadd)r   rP   r   r   rb   rc   rD   rE   rd   ÚrÚtÚrds               r   Úfrom_text_listro   ¹   s½   € ô: �$œ×ÑÜ�x‰x×!Ñ! $¨¸Ð!ÐDˆÜ�n‰n×'Ñ'×,Ñ,¨WÓ5€GÜ�]‰]×$Ñ$×)Ñ)¨&Ó1€FÜˆd˜VÓ$€AØ‡L�L�ÔÛˆÜ�Y‰Y× Ñ Ø�I‰I�q—x‘x ¨JÀzó
ˆð 	
�‰ˆbŽ	ñ	 ð
 €Hr   c           
      óF   • [        XX#[        [        [           U5      5      $ )z“Create an RRset with the specified name, TTL, class, and type and with
the specified rdatas in text format.

Returns a ``dns.rrset.RRset`` object.
)ro   r   r   r)   )r   rP   r   r   rb   s        r   rg   rg   ä   s#   € ô Ø�7¤D¬´C©¸+Ó$Fóð r   Úrdatasc                 óL  • [        U [        5      (       a  [        R                  R	                  U SUS9n [        U5      S:X  a  [        S5      eSnU HH  nUc1  [        XR                  UR                  5      nUR                  U5        UR                  U5        MJ     Uc   eU$ )a  Create an RRset with the specified name and TTL, and with
the specified list of rdata objects.

*idna_codec*, a ``dns.name.IDNACodec``, specifies the IDNA
encoder/decoder to use; if ``None``, the default IDNA 2003
encoder/decoder is used.

Returns a ``dns.rrset.RRset`` object.

Nrf   r   zrdata list must not be empty)r4   r)   r%   r   rg   ÚlenÚ
ValueErrorr
   r   r   ri   rk   )r   rP   rq   rc   rl   rn   s         r   rO   rO   ö   s”   € ô" �$œ×ÑÜ�x‰x×!Ñ! $¨¸Ð!ÐDˆä
ˆ6ƒ{�aÓÜÐ7Ó8Ð8Ø€AÛˆØ‰9Ü�dŸJ™J¨¯	©	Ó2ˆAØ�L‰L˜ÔØ	�‰ˆbŽ	ñ	 ð
 ‰=Ðˆ=Ø€Hr   c                 ól   • [        X[        [        [        R                  R
                     U5      5      $ )z~Create an RRset with the specified name and TTL, and with
the specified rdata objects.

Returns a ``dns.rrset.RRset`` object.
)rO   r   r   r%   rj   ÚRdata)r   rP   rq   s      r   Ú
from_rdatarw     s%   € ô ˜4¤d¬:´c·i±i·o±oÑ+FÈÓ&OÓPÐPr   )NNTNr   ) rX   Útypingr   r   r   r   r   r   Údns.namer%   Údns.rdataclassÚdns.rdatasetÚdns.rendererr5   r6   r
   r   r>   r)   r_   r(   r[   r&   r\   Ú	IDNACodecr]   ro   rg   rj   rv   rO   rw   © r   r   Ú<module>r      s(  ðñ$ 0ç ?× ?ã Û Û Û ôZBˆC�L‰L×!Ñ!ô ZBðF 04Ø&*ØØ-1ñ(Ø
�—‘—‘˜sÐ"Ñ
#ð(à	ð(ð �3—>‘>×,Ñ,¨cÐ1Ñ2ð(ð �#—-‘-×)Ñ)¨3Ð.Ñ/ð	(ð
 ˜C‘ð(ð ˜Ÿ™×+Ñ+Ñ,ð(ð �S—X‘X—]‘]Ñ#ð(ð ð(ð ˜CŸH™HŸM™MÑ*ð(ð õ(ðVØ
�—‘—‘˜sÐ"Ñ
#ðà	ðð �3—>‘>×,Ñ,¨cÐ1Ñ2ðð �#—-‘-×)Ñ)¨3Ð.Ñ/ð	ð
 ðð ôð, 04ñ	Ø
�—‘—‘˜sÐ"Ñ
#ðà	ðð �s—y‘y—‘Ñ'ðð ˜Ÿ™×+Ñ+Ñ,ð	ð
 õð@Q�U˜3Ÿ8™8Ÿ=™=¨#Ð-Ñ.ð Q°Sð QÀ3ð QÈ5õ Qr   