ó
    ÌÅLg=X  ã                   ó’  • S SK r S SKJr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Kr
S SKr
S SKr
S SKr
S SKr
 " S S5      r " S S\
R(                  R*                  5      r " S S\
R(                  R*                  5      r " S	 S
\
R(                  R*                  5      rS rS r\S\
R6                  R8                  \
R:                  R<                  /S4   r\S\
R6                  R8                  \
R@                  RB                  \
R@                  RB                  /S4   r"\S\
R6                  R8                  /S4   r# " S S5      r$g)é    N)ÚAnyÚCallableÚIteratorÚListÚOptionalÚTupleÚUnionc                   ó  • \ rS rSrSS jrSS\SS4S jjrS\\\	R                  R                     \\\	R                  R                     4   4S jrS\	R                  R                  4S jrS\\	R                  R                     4S	 jrS
rg)ÚTransactionManageré   ÚreturnÚTransactionc                 ó   • [         e)zBegin a read-only transaction.©ÚNotImplementedError©Úselfs    Ú1/usr/lib/python3/dist-packages/dns/transaction.pyÚreaderÚTransactionManager.reader   ó   € ä!Ð!ó    Úreplacementc                 ó   • [         e)zæBegin a writable transaction.

*replacement*, a ``bool``.  If `True`, the content of the
transaction completely replaces any prior content.  If False,
the default, then the content of the transaction updates the
existing content.
r   )r   r   s     r   ÚwriterÚTransactionManager.writer   s
   € ô "Ð!r   c                 ó   • [         e)añ  Returns a tuple

    (absolute_origin, relativize, effective_origin)

giving the absolute name of the default origin for any
relative domain names, the "effective origin", and whether
names should be relativized.  The "effective origin" is the
absolute origin if relativize is False, and the empty name if
relativize is true.  (The effective origin is provided even
though it can be computed from the absolute_origin and
relativize setting because it avoids a lot of code
duplication.)

If the returned names are `None`, then no origin information is
available.

This information is used by code working with transactions to
allow it to coordinate relativization.  The transaction code
itself takes what it gets (i.e. does not change name
relativity).

r   r   s    r   Úorigin_informationÚ%TransactionManager.origin_information    s
   € ô2 "Ð!r   c                 ó   • [         e)z%The class of the transaction manager.r   r   s    r   Ú	get_classÚTransactionManager.get_class;   r   r   c                 ó<   • U R                  5       u  pnU(       a  U$ g)z#Origin to use in from_wire() calls.N)r   )r   Úabsolute_originÚ
relativizeÚ_s       r   Úfrom_wire_originÚ#TransactionManager.from_wire_origin?   s!   € à+/×+BÑ+BÓ+DÑ(ˆ aÞØ"Ð"àr   © N)r   r   )F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úboolr   r   r   ÚdnsÚnameÚNamer   Ú
rdataclassÚ
RdataClassr!   r'   Ú__static_attributes__r)   r   r   r   r      s|   † ô"ñ" $ð "°=õ "ð"à	ˆx˜Ÿ™Ÿ™Ñ&¨¨h°s·x±x·}±}Ñ.EÐEÑ	Fô"ð6"˜3Ÿ>™>×4Ñ4ô "ð (¨3¯8©8¯=©=Ñ"9÷ r   r   c                   ó   • \ rS rSrSrSrg)ÚDeleteNotExactéH   z>Existing data did not match data specified by an exact delete.r)   N©r*   r+   r,   r-   Ú__doc__r4   r)   r   r   r6   r6   H   s   † ÜHr   r6   c                   ó   • \ rS rSrSrSrg)ÚReadOnlyéL   z*Tried to write to a read-only transaction.r)   Nr8   r)   r   r   r;   r;   L   ó   † Ü4r   r;   c                   ó   • \ rS rSrSrSrg)ÚAlreadyEndedéP   z*Tried to use an already-ended transaction.r)   Nr8   r)   r   r   r?   r?   P   r=   r   r?   c                 óœ   • U b)  [        U [        R                  R                  5      (       a  U $ [        R                  R                  U 5      $ ©N)Ú
isinstancer/   ÚrdatasetÚImmutableRdataset)rD   s    r   Ú_ensure_immutable_rdatasetrF   T   s8   € ØÑœ: h´·±×0NÑ0N×OÑOØˆÜ�<‰<×)Ñ)¨(Ó3Ð3r   c                 ót   • U b  U R                  5       (       a  U $ [        R                  R                  U 5      $ rB   )Úis_immutabler/   ÚnodeÚImmutableNode)rI   s    r   Ú_ensure_immutable_noderK   Z   s/   € Ø�|�t×(Ñ(×*Ñ*ØˆÜ�8‰8×!Ñ! $Ó'Ð'r   r   c            	       óB  • \ rS rSr  S;S\S\S\4S jjr\R                  R                  4S\
\\R                  R                  \4      S\\R                  R                  \4   S\\R                  R                  \4   S	\R                   R"                  4S
 jjrS\R                  R                  S	\
\R&                  R(                     4S jrS<S jrS\S	S4S jrS\S	S4S jrS\S	S4S jrS\S	S4S jrS\\R                  R                  \4   S	\4S jrSS\R                  R:                  4S\S\S\R                  R                  S	S4S jjrS r S	\4S jr!S<S jr"S<S jr#S\$S	S4S jr%S\&S	S4S jr'S\(S	S4S  jr)S	\*\+\R                  R                  \R                   R"                  4      4S! jr,S	\*\R                  R                     4S" jr-S# r.S$ r/S% r0S& r1S' r2S( r3S) r4S* r5S+ r6S, r7S- r8S. r9S/ r:S0 r;S1 r<S2 r=S3 r>S4 r?S5 r@S6 rAS7 rBS8 rCS9 rDS:rEg)=r   éj   Úmanagerr   Ú	read_onlyc                 ó`   • Xl         X l        X0l        SU l        / U l        / U l        / U l        g ©NF)rN   r   rO   Ú_endedÚ_check_put_rdatasetÚ_check_delete_rdatasetÚ_check_delete_name)r   rN   r   rO   s       r   Ú__init__ÚTransaction.__init__k   s3   € ð ŒØ&ÔØ"ŒØˆŒØ?AˆÔ ØEGˆÔ#Ø=?ˆÕr   r0   ÚrdtypeÚcoversr   c                 ój  • U R                  5         [        U[        5      (       a   [        R                  R                  US5      n[        R                  R                  R                  U5      n[        R                  R                  R                  U5      nU R                  XU5      n[        U5      $ )z‹Return the rdataset associated with *name*, *rdtype*, and *covers*,
or `None` if not found.

Note that the returned rdataset is immutable.
N)Ú_check_endedrC   Ústrr/   r0   Ú	from_textÚ	rdatatypeÚ	RdataTypeÚmakeÚ_get_rdatasetrF   )r   r0   rX   rY   rD   s        r   ÚgetÚTransaction.get€   s„   € ð 	×ÑÔÜ�dœC× Ñ Ü—8‘8×%Ñ% d¨DÓ1ˆDÜ—‘×(Ñ(×-Ñ-¨fÓ5ˆÜ—‘×(Ñ(×-Ñ-¨fÓ5ˆØ×%Ñ% d°FÓ;ˆÜ)¨(Ó3Ð3r   c                 ó6   • [        U R                  U5      5      $ )zKReturn the node at *name*, if any.

Returns an immutable node or ``None``.
)rK   Ú	_get_node©r   r0   s     r   Úget_nodeÚTransaction.get_node“   s   € ô
 & d§n¡n°TÓ&:Ó;Ð;r   Nc                 ó2   • U R                   (       a  [        eg rB   )rO   r;   r   s    r   Ú_check_read_onlyÚTransaction._check_read_onlyš   s   € Ø�>�>ÜˆNð r   Úargsc                 óh   • U R                  5         U R                  5         U R                  SU5        g)zeAdd records.

The arguments may be:

    - rrset

    - name, rdataset...

    - name, ttl, rdata...
FN©r[   rj   Ú_add©r   rl   s     r   ÚaddÚTransaction.addž   s*   € ð 	×ÑÔØ×ÑÔØ�	‰	�%˜Õr   c                 óh   • U R                  5         U R                  5         U R                  SU5        g)ak  Replace the existing rdataset at the name with the specified
rdataset, or add the specified rdataset if there was no existing
rdataset.

The arguments may be:

    - rrset

    - name, rdataset...

    - name, ttl, rdata...

Note that if you want to replace the entire node, you should do
a delete of the name followed by one or more calls to add() or
replace().
TNrn   rp   s     r   ÚreplaceÚTransaction.replace­   s*   € ð" 	×ÑÔØ×ÑÔØ�	‰	�$˜Õr   c                 óh   • U R                  5         U R                  5         U R                  SU5        g)zØDelete records.

It is not an error if some of the records are not in the existing
set.

The arguments may be:

    - rrset

    - name

    - name, rdatatype, [covers]

    - name, rdataset...

    - name, rdata...
FN©r[   rj   Ú_deleterp   s     r   ÚdeleteÚTransaction.deleteÂ   s*   € ð$ 	×ÑÔØ×ÑÔØ�‰�U˜DÕ!r   c                 óh   • U R                  5         U R                  5         U R                  SU5        g)zìDelete records.

The arguments may be:

    - rrset

    - name

    - name, rdatatype, [covers]

    - name, rdataset...

    - name, rdata...

Raises dns.transaction.DeleteNotExact if some of the records
are not in the existing set.

TNrw   rp   s     r   Údelete_exactÚTransaction.delete_exactØ   s*   € ð& 	×ÑÔØ×ÑÔØ�‰�T˜4Õ r   c                 ó®   • U R                  5         [        U[        5      (       a   [        R                  R                  US5      nU R                  U5      $ )zDoes the specified name exist?N)r[   rC   r\   r/   r0   r]   Ú_name_existsrf   s     r   Úname_existsÚTransaction.name_existsï   sB   € à×ÑÔÜ�dœC× Ñ Ü—8‘8×%Ñ% d¨DÓ1ˆDØ× Ñ  Ó&Ð&r   é   TÚvalueÚrelativec                 óÔ  • U R                  5         US:  a  [        S5      e[        U[        5      (       a   [        R
                  R                  US5      nU R                  U[        R                  R                  [        R                  R                  5      nUb  [        U5      S:X  a  [        eU(       a0  [        R                  R                  US   R                  5      U-   nO[        R                  R                  U5      nUR                  nUS:X  a  SnUS   R!                  US9n[        R"                  R%                  UR&                  U5      nU R!                  X75        g)aV  Update the serial number.

*value*, an `int`, is an increment if *relative* is `True`, or the
actual value to set if *relative* is `False`.

Raises `KeyError` if there is no SOA rdataset at *name*.

Raises `ValueError` if *value* is negative or if the increment is
so large that it would cause the new serial to be less than the
prior value.
r   znegative update_serial() valueNr‚   )Úserial)r[   Ú
ValueErrorrC   r\   r/   r0   r]   ra   r^   ÚSOAÚNONEÚlenÚKeyErrorr†   ÚSerialrƒ   rt   rD   Ú
from_rdataÚttl)r   rƒ   r„   r0   rD   r†   ÚrdataÚnew_rdatasets           r   Úupdate_serialÚTransaction.update_serialö   s  € ð" 	×ÑÔØ�1‹9ÜÐ=Ó>Ð>Ü�dœC× Ñ Ü—8‘8×%Ñ% d¨DÓ1ˆDØ×%Ñ% d¬C¯M©M×,=Ñ,=¼s¿}¹}×?QÑ?QÓRˆØÑœs 8›}°Ó1ÜˆNÞÜ—Z‘Z×&Ñ& x°¡{×'9Ñ'9Ó:¸UÑB‰Fä—Z‘Z×&Ñ& uÓ-ˆFØ—‘ˆØ�Q‹;ØˆFØ˜‘×#Ñ#¨6Ð#Ð2ˆÜ—|‘|×.Ñ.¨x¯|©|¸UÓCˆØ�‰�TÕ(r   c                 óB   • U R                  5         U R                  5       $ rB   ©r[   Ú_iterate_rdatasetsr   s    r   Ú__iter__ÚTransaction.__iter__  s   € Ø×ÑÔØ×&Ñ&Ó(Ð(r   c                 óB   • U R                  5         U R                  5       $ )zàHas this transaction changed anything?

For read-only transactions, the result is always `False`.

For writable transactions, the result is `True` if at some time
during the life of the transaction, the content was changed.
)r[   Ú_changedr   s    r   ÚchangedÚTransaction.changed  s   € ð 	×ÑÔØ�}‰}‹Ðr   c                 ó&   • U R                  S5        g)ay  Commit the transaction.

Normally transactions are used as context managers and commit
or rollback automatically, but it may be done explicitly if needed.
A ``dns.transaction.Ended`` exception will be raised if you try
to use a transaction after it has been committed or rolled back.

Raises an exception if the commit fails (in which case the transaction
is also rolled back.
TN©Ú_endr   s    r   ÚcommitÚTransaction.commit)  s   € ð 	�	‰	�$�r   c                 ó&   • U R                  S5        g)aF  Rollback the transaction.

Normally transactions are used as context managers and commit
or rollback automatically, but it may be done explicitly if needed.
A ``dns.transaction.AlreadyEnded`` exception will be raised if you try
to use a transaction after it has been committed or rolled back.

Rollback cannot otherwise fail.
FNr�   r   s    r   ÚrollbackÚTransaction.rollback6  s   € ð 	�	‰	�%Õr   Úcheckc                 ó:   • U R                   R                  U5        g)a|  Call *check* before putting (storing) an rdataset.

The function is called with the transaction, the name, and the rdataset.

The check function may safely make non-mutating transaction method
calls, but behavior is undefined if mutating transaction methods are
called.  The check function should raise an exception if it objects to
the put, and otherwise should return ``None``.
N)rS   Úappend©r   r¤   s     r   Úcheck_put_rdatasetÚTransaction.check_put_rdatasetB  s   € ð 	× Ñ ×'Ñ'¨Õ.r   c                 ó:   • U R                   R                  U5        g)a‹  Call *check* before deleting an rdataset.

The function is called with the transaction, the name, the rdatatype,
and the covered rdatatype.

The check function may safely make non-mutating transaction method
calls, but behavior is undefined if mutating transaction methods are
called.  The check function should raise an exception if it objects to
the put, and otherwise should return ``None``.
N)rT   r¦   r§   s     r   Úcheck_delete_rdatasetÚ!Transaction.check_delete_rdatasetN  s   € ð 	×#Ñ#×*Ñ*¨5Õ1r   c                 ó:   • U R                   R                  U5        g)am  Call *check* before putting (storing) an rdataset.

The function is called with the transaction and the name.

The check function may safely make non-mutating transaction method
calls, but behavior is undefined if mutating transaction methods are
called.  The check function should raise an exception if it objects to
the put, and otherwise should return ``None``.
N)rU   r¦   r§   s     r   Úcheck_delete_nameÚTransaction.check_delete_name[  s   € ð 	×Ñ×&Ñ& uÕ-r   c                 óB   • U R                  5         U R                  5       $ )a   Iterate all the rdatasets in the transaction, returning
(`dns.name.Name`, `dns.rdataset.Rdataset`) tuples.

Note that as is usual with python iterators, adding or removing items
while iterating will invalidate the iterator and may raise `RuntimeError`
or fail to iterate over all entries.r”   r   s    r   Úiterate_rdatasetsÚTransaction.iterate_rdatasetsg  s   € ð 	×ÑÔØ×&Ñ&Ó(Ð(r   c                 óB   • U R                  5         U R                  5       $ )zßIterate all the names in the transaction.

Note that as is usual with python iterators, adding or removing names
while iterating will invalidate the iterator and may raise `RuntimeError`
or fail to iterate over all entries.)r[   Ú_iterate_namesr   s    r   Úiterate_namesÚTransaction.iterate_namess  s   € ð 	×ÑÔØ×"Ñ"Ó$Ð$r   c                 ó>   • [        U5      S:w  a  [        SU 35      eg )Nr   zextra parameters to )rŠ   Ú	TypeError)r   Úmethodrl   s      r   Ú_raise_if_not_emptyÚTransaction._raise_if_not_empty€  s%   € Üˆt‹9˜‹>ÜÐ2°6°(Ð;Ó<Ð<ð r   c                 óÆ  •  UR                  5       n[        U[        R                  R                  5      (       a  UR                  5       nU$ [        U[        R                  R                  5      (       a  UnU$ U(       a  SnOb[        U[        5      (       a/  UnU[        R                  R                  :”  a  [        U S35      eO[        U S35      eUR                  5       n[        U[        R                  R                  5      (       a!  [        R                  R                  Xd5      nU$ [        U S35      e! [          a    U(       a   g [        U S35      ef = f)Nr   z: TTL value too bigz: expected a TTLz: expected an Rdataz: expected more arguments)ÚpopleftrC   r/   ÚrrsetÚRRsetÚto_rdatasetrD   ÚRdatasetÚintrŽ   ÚMAX_TTLr‡   r¸   r�   ÚRdatar�   Ú
IndexError)r   r¹   Údeletingrl   ÚargrD   rŽ   s          r   Ú_rdataset_from_argsÚTransaction._rdataset_from_args„  s5  € ð	FØ—,‘,“.ˆCÜ˜#œsŸy™yŸ™×/Ñ/ØŸ?™?Ó,�ð$ ˆOô# ˜C¤§¡×!6Ñ!6×7Ñ7Ø�ð  ˆOö Ø‘Cä! #¤s×+Ñ+Ø!˜Ø¤§¡§¡Ó0Ü",°¨xÐ7JÐ-KÓ"LÐLð 1ô (¨6¨(Ð2BÐ(CÓDÐDØŸ,™,›.�CÜ˜c¤3§9¡9§?¡?×3Ñ3Ü"Ÿ|™|×6Ñ6°sÓ@�Hð ˆOô $ v hÐ.AÐ$BÓCÐCøäó 	FÞÙô   6 (Ð*CÐ DÓEÐEð	Fús%   ‚A
D> Á,D> Á:B5D> Ä0D> Ä>E ÅE c                 óú  •  [         R                  " U5      nU(       a  SnOSnUR                  5       n[        U[        5      (       a   [
        R                  R                  US 5      n[        U[
        R                  R                  5      (       a  UnU R                  USU5      nOV[        U[
        R                  R                  5      (       a  UnUR                  nUR                  5       nO[        U S35      eUR                  U R                  R!                  5       :w  a  [#        U S35      eUR$                  [
        R&                  R(                  :X  a&  U R+                  5       u    p‰XY:w  a  [#        U S35      eU R-                  X25        U(       dµ  U R/                  XVR$                  UR0                  5      n
U
bŒ  [        U
[
        R2                  R4                  5      (       aR  [
        R2                  R7                  U
R                  U
R$                  U
R0                  5      nUR9                  U
5        Un
U
R;                  U5      nU R=                  XV5        g ! [>         a    [        SW 35      ef = f)Nz	replace()zadd()Fú/ requires a name or RRset as the first argumentú  has objects of wrong RdataClassz has non-origin SOAúnot enough parameters to ) ÚcollectionsÚdequer½   rC   r\   r/   r0   r]   r1   rÈ   r¾   r¿   rÀ   r¸   ÚrdclassrN   r!   r‡   rX   r^   rˆ   Ú_origin_informationrº   ra   rY   rD   rE   rÁ   ÚupdateÚunionÚ_checked_put_rdatasetrÅ   )r   rt   rl   r¹   rÇ   r0   rD   r¾   r&   ÚoriginÚexistingÚtrdss               r   ro   ÚTransaction._add¢  s   € ð)	BÜ×$Ò$ TÓ*ˆDÞØ$‘à �Ø—,‘,“.ˆCÜ˜#œs×#Ñ#Ü—h‘h×(Ñ(¨¨dÓ3�Ü˜#œsŸx™xŸ}™}×-Ñ-Ø�Ø×3Ñ3°F¸EÀ4ÓH‘Ü˜C¤§¡§¡×1Ñ1Ø�Ø—z‘z�ð !×,Ñ,Ó.‘äØ�hÐMÐNóð ð ×Ñ 4§<¡<×#9Ñ#9Ó#;Ó;Ü  F 8Ð+KÐ!LÓMÐMØ�‰¤#§-¡-×"3Ñ"3Ó3Ø!%×!9Ñ!9Ó!;‘��AØ“>Ü$¨ xÐ/BÐ%CÓDÐDØ×$Ñ$ VÔ2ÞØ×-Ñ-¨d·O±OÀXÇ_Á_ÓU�ØÑ'Ü! (¬C¯L©L×,JÑ,J×KÑKÜ"Ÿ|™|×4Ñ4Ø$×,Ñ,¨h¯o©o¸x¿¹ó ˜ð Ÿ™ HÔ-Ø#'˜Ø'Ÿ~™~¨hÓ7�HØ×&Ñ& tÕ6øÜó 	BÜÐ7¸°xÐ@ÓAÐAð	Bús   ‚II! É!I:c                 ó  •  [         R                  " U5      nU(       a  SnOSnUR                  5       n[        U[        5      (       a   [
        R                  R                  US 5      n[        U[
        R                  R                  5      (       Ga>  Un[        U5      S:”  Ga  [        US   [        5      (       d  [        US   [        5      (       aè  [
        R                  R                  R                  UR                  5       5      n[        U5      S:”  a8  [
        R                  R                  R                  UR                  5       5      nO[
        R                  R                  nU R                  X25        U R!                  XVU5      nUc  U(       a  [#        U S35      e g U R%                  XVU5        g U R'                  USU5      n	OF[        U[
        R(                  R*                  5      (       a  Un	U	R                  nO[-        U S35      eU R                  X25        U	(       aù  U	R.                  U R0                  R3                  5       :w  a  [5        U S35      eU R!                  XYR6                  U	R8                  5      nUb„  U(       a$  UR;                  U	5      n
X©:w  a  [#        U S35      eUR=                  U	5      n	[        U	5      S:X  a'  U R%                  XYR6                  U	R8                  5        g U R?                  XY5        g U(       a  [#        U S35      eg U(       a$  U RA                  U5      (       d  [#        U S	35      eU RC                  U5        g ! [D         a    [-        S
W 35      ef = f)Nzdelete_exact()zdelete()r   z: missing rdatasetTrË   rÌ   z: missing rdatasz: name not knownrÍ   )#rÎ   rÏ   r½   rC   r\   r/   r0   r]   r1   rŠ   rÂ   r^   r_   r`   r‰   rº   ra   r6   Ú_checked_delete_rdatasetrÈ   r¾   r¿   r¸   rÐ   rN   r!   r‡   rX   rY   ÚintersectionÚ
differencerÔ   r   Ú_checked_delete_namerÅ   )r   Úexactrl   r¹   rÇ   r0   rX   rY   rÖ   rD   rÛ   s              r   rx   ÚTransaction._deleteÎ  sè  € ð=	BÜ×$Ò$ TÓ*ˆDÞØ)‘à#�Ø—,‘,“.ˆCÜ˜#œs×#Ñ#Ü—h‘h×(Ñ(¨¨dÓ3�Ü˜#œsŸx™xŸ}™}×-Ò-Ø�Ü�t“9˜q”=Ü˜t A™w¬×,Ñ,´
¸4À¹7ÄC×0HÑ0Hô !Ÿ]™]×4Ñ4×9Ñ9¸$¿,¹,».ÓI�FÜ˜4“y 1“}Ü!$§¡×!8Ñ!8×!=Ñ!=¸d¿l¹l»nÓ!M™ä!$§¡×!3Ñ!3˜Ø×,Ñ,¨VÔ:Ø#×1Ñ1°$ÀÓG�HØÑ'Þ Ü"0°F°8Ð;MÐ1NÓ"OÐOð !ð ð ×5Ñ5°dÀFÔKØà#×7Ñ7¸ÀÀdÓK‘HÜ˜C¤§¡§¡×1Ñ1Ø�Ø—}‘}‘äØ�hÐMÐNóð ð ×$Ñ$ VÔ2ÞØ×#Ñ# t§|¡|×'=Ñ'=Ó'?Ó?Ü$¨ xÐ/OÐ%PÓQÐQØ×-Ñ-¨d·O±OÀXÇ_Á_ÓU�ØÑ'ÞØ'/×'<Ñ'<¸XÓ'F˜Ø'Ó3Ü"0°F°8Ð;KÐ1LÓ"MÐMØ'×2Ñ2°8Ó<�HÜ˜8“}¨Ó)Ø×5Ñ5Ø §/¡/°8·?±?õð ×2Ñ2°4ÕBÞÜ(¨F¨8Ð3EÐ)FÓGÐGð ö  ×!2Ñ!2°4×!8Ñ!8Ü(¨F¨8Ð3CÐ)DÓEÐEØ×)Ñ)¨$Õ/øÜó 	BÜÐ7¸°xÐ@ÓAÐAð	Bús+   ‚F'M% Æ*M% Æ=EM% Ì M% ÌM% Ì(<M% Í%M>c                 ó2   • U R                   (       a  [        eg rB   )rR   r?   r   s    r   r[   ÚTransaction._check_ended  s   € Ø�;�;ÜÐð r   c                 ón   • U R                  5          U R                  U5        SU l        g ! SU l        f = f)NT)r[   Ú_end_transactionrR   ©r   rŸ   s     r   rž   ÚTransaction._end  s0   € Ø×ÑÔð	Ø×!Ñ! &Ô)àˆD�Kø˜$ˆD�Kús   ’+ «	4c                 ó^   • U R                    H  nU" XU5        M     U R                  X5        g rB   )rS   Ú_put_rdataset)r   r0   rD   r¤   s       r   rÔ   Ú!Transaction._checked_put_rdataset  s*   € Ø×-Ô-ˆEÙ�$˜hÖ'ñ .à×Ñ˜4Õ*r   c                 ó`   • U R                    H  nU" XX#5        M     U R                  XU5        g rB   )rT   Ú_delete_rdataset)r   r0   rX   rY   r¤   s        r   rÚ   Ú$Transaction._checked_delete_rdataset  s,   € Ø×0Ô0ˆEÙ�$˜fÖ-ñ 1à×Ñ˜d¨FÕ3r   c                 ó\   • U R                    H  nU" X5        M     U R                  U5        g rB   )rU   Ú_delete_name)r   r0   r¤   s      r   rÝ   Ú Transaction._checked_delete_name#  s(   € Ø×,Ô,ˆEÙ�$Öñ -à×Ñ˜$Õr   c                 ó   • U $ rB   r)   r   s    r   Ú	__enter__ÚTransaction.__enter__,  s   € Øˆr   c                 ón   • U R                   (       d$  Uc  U R                  5         gU R                  5         grQ   )rR   rŸ   r¢   )r   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__ÚTransaction.__exit__/  s+   € Ø�{�{ØÑØ—‘”ð ð —‘”Ør   c                 ó   • [         e)z\Return the rdataset associated with *name*, *rdtype*, and *covers*,
or `None` if not found.
r   ©r   r0   rX   rY   s       r   ra   ÚTransaction._get_rdataset<  s
   € ô "Ð!r   c                 ó   • [         e)zStore the rdataset.r   )r   r0   rD   s      r   rç   ÚTransaction._put_rdatasetB  r   r   c                 ó   • [         e)zXDelete all data associated with *name*.

It is not an error if the name does not exist.
r   rf   s     r   rí   ÚTransaction._delete_nameF  ó
   € ô
 "Ð!r   c                 ó   • [         e)ztDelete all data associated with *name*, *rdtype*, and *covers*.

It is not an error if the rdataset does not exist.
r   rù   s       r   rê   ÚTransaction._delete_rdatasetM  rÿ   r   c                 ó   • [         e)z"Does name exist?

Returns a bool.
r   rf   s     r   r   ÚTransaction._name_existsT  rÿ   r   c                 ó   • [         e)z&Has this transaction changed anything?r   r   s    r   r™   ÚTransaction._changed[  r   r   c                 ó   • [         e)z²End the transaction.

*commit*, a bool.  If ``True``, commit the transaction, otherwise
roll it back.

If committing and the commit fails, then roll back and raise an
exception.
r   rä   s     r   rã   ÚTransaction._end_transaction_  s
   € ô "Ð!r   c                 ó   • [         e)z™Set the origin.

This method is called when reading a possibly relativized
source, and an origin setting operation occurs (e.g. $ORIGIN
in a zone file).
r   )r   rÕ   s     r   Ú_set_originÚTransaction._set_originj  s
   € ô "Ð!r   c                 ó   • [         e)z7Return an iterator that yields (name, rdataset) tuples.r   r   s    r   r•   ÚTransaction._iterate_rdatasetss  r   r   c                 ó   • [         e)z&Return an iterator that yields a name.r   r   s    r   r´   ÚTransaction._iterate_namesw  r   r   c                 ó   • [         e)z@Return the node at *name*, if any.

Returns a node or ``None``.
r   rf   s     r   re   ÚTransaction._get_node{  rÿ   r   c                 ó6   • U R                   R                  5       $ rB   )rN   r   r   s    r   rÑ   ÚTransaction._origin_information‡  s   € à�|‰|×.Ñ.Ó0Ð0r   )rU   rT   rS   rR   rN   rO   r   )FF)r   N)Fr*   r+   r,   r-   r   r.   rV   r/   r^   r‰   r   r	   r0   r1   r\   r_   rD   rÁ   rb   rI   ÚNoderg   rj   r   rq   rt   ry   r|   r€   ÚemptyrÂ   r‘   r–   rš   rŸ   r¢   ÚCheckPutRdatasetTyper¨   ÚCheckDeleteRdatasetTyper«   ÚCheckDeleteNameTyper®   r   r   r±   rµ   rº   rÈ   ro   rx   r[   rž   rÔ   rÚ   rÝ   rð   rö   ra   rç   rí   rê   r   r™   rã   r	  r•   r´   re   rÑ   r4   r)   r   r   r   r   j   s­  † ð "Øñ	@à#ð@ð ð@ð õ	@ð2 7:·m±m×6HÑ6Hñ	4à�u˜SŸX™XŸ]™]¨CÐ/Ñ0Ñ1ð4ð �c—m‘m×-Ñ-¨sÐ2Ñ3ð4ð �c—m‘m×-Ñ-¨sÐ2Ñ3ð	4ð
 
�‰×	Ñ	õ4ð&<˜SŸX™XŸ]™]ð <¨x¸¿¹¿¹Ñ/Fô <ôð˜ð  ô ð˜Sð  Tô ð*"˜Cð " Dô "ð,! #ð !¨$ô !ð.'  c§h¡h§m¡m°SÐ&8Ñ 9ð '¸dô 'ð ØØ!Ÿh™hŸn™nñ	")àð")ð ð")ð �h‰h�m‰mð	")ð
 
õ")òH)ð	˜ô 	ôô
ð
/Ð(<ð 
/Àô 
/ð2Ð+Bð 2Àtô 2ð
.Ð':ð 
.¸tô 
.ð
)à	�%˜Ÿ™Ÿ™ s§|¡|×'<Ñ'<Ð<Ñ=Ñ	>ô
)ð%˜x¨¯©¯©Ñ6ô %ò=òFò<*BòX>Bò@òò+ò
4ò
 òòò"ò"ò"ò"ò"ò"ò	"ò"ò"ò"ò"õ1r   )%rÎ   Útypingr   r   r   r   r   r   r	   Údns.exceptionr/   Údns.nameÚdns.nodeÚdns.rdataclassÚdns.rdatasetÚdns.rdatatypeÚ	dns.rrsetÚ
dns.serialÚdns.ttlr   Ú	exceptionÚDNSExceptionr6   r;   r?   rF   rK   r0   r1   rD   rÁ   r  r^   r_   r  r  r   r)   r   r   Ú<module>r$     s  ðó ß H× HÑ Hã Û Û Û Û Û Û Û Û ÷4ñ 4ônI�S—]‘]×/Ñ/ô Iô5ˆs�}‰}×)Ñ)ô 5ô5�3—=‘=×-Ñ-ô 5ò4ò(ð  Ø�C—H‘H—M‘M 3§<¡<×#8Ñ#8Ð9¸4Ð?ñÐ ð #Ø�C—H‘H—M‘M 3§=¡=×#:Ñ#:¸C¿M¹M×<SÑ<SÐTØð
ñÐ ð  ¨s¯x©x¯}©}Ð=¸tÐCÑDÐ ÷_1ò _1r   