+
    ni3                        ^ RI t ^ RIHt ^ RIHtHtHtHt ^ RIt	^ RI
t	^ RIt	^ RIt	^ RIt	^ RIt	^ RIt	^ RIt	^ RIt	 ! R R] P$                  4      t ! R R]	P(                  P*                  4      t]	P,                  P,                   ! R R	]4      4       t ! R
 R]	P0                  P2                  ]	P4                  P6                  ,          4      t ! R R]	P:                  P<                  4      t]! RR7       ! R R4      4       t]	P,                  P,                   ! R R]	P:                  P@                  4      4       t! ! R R]	PD                  PF                  4      t#R# )    N)	dataclass)CallableMutableMappingTuplecastc                   "    ] tR t^t^t^t^tRtR# )	NodeFlags N)__name__
__module____qualname____firstlineno__ORIGIN
DELEGATIONGLUE__static_attributes__r
       gC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\dns/btreezone.pyr	   r	      s    FJDr   r	   c                   b   a a ] tR t^#t oRR.tR
V3R lV 3R llltR tR tR tR t	R	t
VtV ;t# )Nodeflagsidc                .   < V ^8  d   QhRS[ R,          /# )   r   N)r	   )format__classdict__s   "r   __annotate__Node.__annotate__&   s      i$. r   c                \   < \         SV `  4        Vf   \        ^ 4      pWn        ^ V n        R # N)super__init__r	   r   r   )selfr   	__class__s   &&r   r"   Node.__init__&   s*    = aLE
r   c                J    V P                   \        P                  ,          ^ 8g  # r   )r   r	   r   r#   s   &r   is_delegationNode.is_delegation0   s    

Y111a77r   c                J    V P                   \        P                  ,          ^ 8g  # r'   )r   r	   r   r(   s   &r   is_glueNode.is_glue3   s    

Y^^+11r   c                J    V P                   \        P                  ,          ^ 8g  # r'   )r   r	   r   r(   s   &r   	is_originNode.is_origin6   s    

Y---!33r   c                t    V P                   \        P                  \        P                  ,          ,          ^ 8g  # r'   )r   r	   r   r   r(   s   &r   is_origin_or_glueNode.is_origin_or_glue9   s%    

i..?@QFFr   )r   r   r    )r   r   r   r   	__slots__r"   r)   r,   r/   r2   r   __classdictcell____classcell__r$   r   s   @@r   r   r   #   s3     $I 824G Gr   r   c                   2  a a ] tR t^=t oV3R lV 3R llt]P                  P                  R3V3R lV 3R lllt]P                  P                  R3V3R lV 3R lllt	]P                  P                  3V3R lR	 llt
V3R
 lR ltV3R lR ltRtVtV ;t# )ImmutableNodec                    < V ^8  d   QhRS[ /# )r   node)r   )r   r   s   "r   r   ImmutableNode.__annotate__?   s        T  r   c                   < \         SV `  4        VP                  V n        \        VP                   Uu. uF"  p\
        P                  P                  V4      NK$  	  up4      V n        VP                  V n        R # u upi r    )	r!   r"   r   tuple	rdatasetsdnsrdatasetImmutableRdatasetr   )r#   r;   rdsr$   s   && r   r"   ImmutableNode.__init__?   s]    ''<@NNKNSS\\++C0NK
 ZZ
 Ls   (A;Fc          
         < V ^8  d   QhRS[ P                  P                  RS[ P                  P                  RS[ P                  P                  RS[RS[ P                  P                  /# )r   rdclassrdtypecoverscreatereturnr@   
rdataclass
RdataClass	rdatatype	RdataTypeboolrA   Rdataset)r   r   s   "r   r   r<   G   sl     	E 	E**	E ''	E ''		E
 	E 
			Er   c                L   < V'       d   \        R 4      h\        SV `	  WVR4      # 	immutableF)	TypeErrorr!   find_rdatasetr#   rF   rG   rH   rI   r$   s   &&&&&r   rV   ImmutableNode.find_rdatasetG   s'     K((w$WfeDDr   c                   < V ^8  d   QhRS[ P                  P                  RS[ P                  P                  RS[ P                  P                  RS[RS[ P                  P                  R,          /# )r   rF   rG   rH   rI   rJ   NrK   )r   r   s   "r   r   r<   R   sq     	D 	D**	D ''	D ''		D
 	D 
			%	Dr   c                L   < V'       d   \        R 4      h\        SV `	  WVR4      # rS   )rU   r!   get_rdatasetrW   s   &&&&&r   r[   ImmutableNode.get_rdatasetR   s'     K((w#GVUCCr   c                   < V ^8  d   QhRS[ P                  P                  RS[ P                  P                  RS[ P                  P                  RR/# )r   rF   rG   rH   rJ   N)r@   rL   rM   rN   rO   )r   r   s   "r   r   r<   ]   sQ     % %**% ''% ''	%
 
%r   c                    \        R 4      hrT   rU   )r#   rF   rG   rH   s   &&&&r   delete_rdatasetImmutableNode.delete_rdataset]   s     $$r   c                L   < V ^8  d   QhRS[ P                  P                  RR/# )r   replacementrJ   N)r@   rA   rQ   )r   r   s   "r   r   r<   e   s%     % %CLL,A,A %d %r   c                    \        R 4      hr_   r`   )r#   rd   s   &&r   replace_rdatasetImmutableNode.replace_rdatasete   s    $$r   c                    < V ^8  d   QhRS[ /# )r   rJ   )rP   )r   r   s   "r   r   r<   h   s      d r   c                    R # )Tr
   r(   s   &r   is_immutableImmutableNode.is_immutableh   s    r   )r   r   r?   )r   r   r   r   r"   r@   rN   NONErV   r[   ra   rf   rj   r   r5   r6   r7   s   @@r   r9   r9   =   s}         +.--*<*<	E 	E +.--*<*<	D 	D +.--*<*<	% %% %  r   r9   c                   D   a  ] tR t^lt o V 3R lR ltV 3R lR ltRtV tR# )Delegationsc                   < V ^8  d   QhRS[ P                  P                  RS[S[ P                  P                  R,          S[3,          /# r   namerJ   N)r@   rq   Namer   rP   )r   r   s   "r   r   Delegations.__annotate__m   s;      388== U388==4;OQU;U5V r   c                x   V P                  4       pVP                  VRR7       VP                  4       pVf   R# VP                  4       pVP	                  V4      w  p pV\
        P                  P                  P                  8H  pV'       g*   V\
        P                  P                  P                  8X  d   WG3# R# )a  Get the delegation applicable to *name*, if it exists.

If there delegation, then return a tuple consisting of the name of
the delegation point, and a boolean which is `True` if the name is a proper
subdomain of the delegation point, and `False` if it is equal to the delegation
point.
FbeforeNF)
cursorseekprevkeyfullcomparer@   rq   NameRelation	SUBDOMAINEQUAL)r#   rq   rx   rz   cutreln_is_subdomains   &&      r   get_delegationDelegations.get_delegationm   s     D'{{}<hhj%%c*
asxx44>>>4388#8#8#>#>>$$r   c                N   < V ^8  d   QhRS[ P                  P                  RS[/# r   rq   rJ   r@   rq   rr   rP   )r   r   s   "r   r   rs      s#      CHHMM d r   c                ~    V P                  4       pVP                  VRR7       V P                  V4      w  r4Vf   R# V# )z0Is *name* glue, i.e. is it beneath a delegation?Fru   )rx   ry   r   )r#   rq   rx   r   r   s   &&   r   r,   Delegations.is_glue   s>    D' //5;r   r
   N)r   r   r   r   r   r,   r   r5   r   s   @r   rn   rn   l   s      * r   rn   c                      a a ] tR t^t oRV3R lV 3R llltV3R lR ltV3R lV 3R lltV3R lR ltV3R	 lR
 ltV3R lR lt	V3R lR lt
RtVtV ;t# )WritableVersionc                N   < V ^8  d   QhRS[ P                  P                  RS[/# )r   zonerd   )r@   r   ZonerP   )r   r   s   "r   r   WritableVersion.__annotate__   s#     
- 
-SXX]] 
- 
-r   c                l  < \         SV `  VR 4       V'       g   \        V\        P                  P
                  4      '       g   Q hVP                  R,          p\        P                  P                  VP                  R7      V n	        \        VP                  R7      V n        R# \        4       V n        R# )T)originalN)r!   r"   
isinstancer@   	versionedr   	_versionsbtree	BTreeDictnodesrn   delegations)r#   r   rd   versionr$   s   &&& r   r"   WritableVersion.__init__   s    t$dCMM$6$67777nnR(GCF99CVCV  DW DDJ  +G4G4GHD*}Dr   c                N   < V ^8  d   QhRS[ P                  P                  RS[/# r   r   )r   r   s   "r   r   r      s#     , ,sxx}} , ,r   c                    V P                   P                  '       d   V\        P                  P                  8H  # WP                   P
                  8H  # r    )r   
relativizer@   rq   emptyorigin)r#   rq   s   &&r   
_is_originWritableVersion._is_origin   s:     99388>>))99++++r   c                   < V ^8  d   QhRS[ P                  P                  RS[S[ P                  P
                  S[ P                  P                  3,          /# r   )r@   rq   rr   r   r;   r   )r   r   s   "r   r   r      s?     	 	HHMM		sxx}}chhmm+	,	r   c                ^  < \         SV `  V4      w  r!\        \        V4      pV P	                  V4      '       d+   V;P
                  \        P                  ,          un        W!3# V P                  P                  V4      '       d(   V;P
                  \        P                  ,          un        W!3# r    )r!   _maybe_cow_with_namer   r   r   r   r	   r   r   r,   r   )r#   rq   r;   r$   s   && r   r   $WritableVersion._maybe_cow_with_name   s     w3D9D$??4  JJ)***J | %%d++JJ)..(J|r   c                R   < V ^8  d   QhRS[ P                  P                  RS[RR/# )r   rq   r,   rJ   Nr   )r   r   s   "r   r   r      s*     % %SXX]] %T %d %r   c                |   V P                   P                  4       pVP                  VR 4       . p VP                  4       pVf   EM]VP	                  4       pVP                  V4      '       g   EM4\        \        P                  P                  VP                  4       4      pW`P                  9  dn   V P                  P                  4       pV P                  Vn        VP                  P!                  VP                  4       V P                  P#                  V4       Tp\%        V\        4      '       g   Q hV'       d)   V;P&                  \(        P*                  ,          un        M(V;P&                  \(        P*                  ( ,          un        VP-                  Wg34       EKt  V F  w  rgWpP                   V&   K  	  R# FN)r   rx   ry   nextr{   r   r   r@   r;   r   valuechangedr   node_factoryr   r?   extendaddr   r   r	   r   append)	r#   rq   r,   rx   updateseltenamer;   new_nodes	   &&&      r   update_glue_flag WritableVersion.update_glue_flag   s0   ""$D% ++-C{GGIE%%d++syy{3DLL(99113"gg""))$..9  'dD))))

inn,


y~~o-

 NNE=)"KE $JJu #r   c                L   < V ^8  d   QhRS[ P                  P                  RR/# rp   )r@   rq   rr   )r   r   s   "r   r   r      s#     # # #$ #r   c                @   V P                  V4      pV P                  P                  V4      pVen   VP                  4       '       d.   V P                  P                  V4       V P                  VR4       V P                  V V P                  P                  V4       R # R # rw   )	_validate_namer   getr)   r   discardr   r   r   )r#   rq   r;   s   && r   delete_nodeWritableVersion.delete_node   s    ""4(zz~~d#!!##  ((.%%dE2

4 LLT" r   c                z   < V ^8  d   QhRS[ P                  P                  RS[ P                  P                  RR/# )r   rq   rA   rJ   N)r@   rq   rr   rA   rQ   )r   r   s   "r   r   r      s7     ( (HHMM(-0\\-B-B(	(r   c                   V P                  V4      w  r1VP                  \        P                  P                  8X  d{   VP                  4       '       ge   V;P                  \        P                  ,          un        WP                  9  d.   V P                  P                  V4       V P                  VR 4       VP                  V4       R# )TN)r   rG   r@   rN   NSr2   r   r	   r   r   r   r   rf   )r#   rq   rA   r;   s   &&& r   put_rdatasetWritableVersion.put_rdataset   s     006OOs}}///8N8N8P8PJJ)...J+++  $$T*%%dD1h'r   c                   < V ^8  d   QhRS[ P                  P                  RS[ P                  P                  RS[ P                  P                  RR/# )r   rq   rG   rH   rJ   N)r@   rq   rr   rN   rO   )r   r   s   "r   r   r      sO     ! !hhmm! ''! ''	!
 
!r   c                   V P                  V4      w  rAV\        P                  P                  8X  df   WP                  9   dV   V;P
                  \        P                  ( ,          un        V P                  P                  V4       V P                  VR 4       VP                  V P                  P                  W#4       \        V4      ^ 8X  d   V P                  V R# R# r   )r   r@   rN   r   r   r   r	   r   r   r   ra   r   rF   lenr   )r#   rq   rG   rH   r;   s   &&&& r   ra   WritableVersion.delete_rdataset   s     006S]]%%%$2B2B*BJJ9////J$$T*!!$.TYY..?t9>

4  r   )r   r   )F)r   r   r   r   r"   r   r   r   r   r   ra   r   r5   r6   r7   s   @@r   r   r      sP     
- 
-, ,	 	% %># #( (! ! !r   r   T)frozenc                   2   a  ] tR t^t o R tV 3R ltRtV tR# )Boundsc           
         V P                   '       d   R pMRpV P                  '       d   RpMRpV P                   RV RV P                   RV P                   V RV P
                   2
# )=<z zonecut  z < z; )is_equalr)   leftrq   rightclosest_encloser)r#   opzonecuts   &  r   __str__Bounds.__str__   sj    ===BB GGyyk2$a		{#djj\'"$$%'	
r   c                  < V ^8  d   Qh/ S[ P                  P                  ;R&   S[ P                  P                  ;R&   S[ P                  P                  R,          ;R&   S[ P                  P                  ;R&   S[;R&   S[;R&   # )r   rq   r   Nr   r   r   r)   r   )r   r   s   "r   r   Bounds.__annotate__   su     
((--  ((--  88==4	 
 hhmm#  N   r   r
   N)r   r   r   r   r   __annotate_func__r   r5   r   s   @r   r   r      s     
  r   r   c                   P   a a ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ImmutableVersioni
  c                H   < V ^8  d   QhRS[ P                  P                  /# )r   r   )r@   r   Version)r   r   s   "r   r   ImmutableVersion.__annotate__  s     * * 0 0 *r   c                  < \        V\        4      '       g   \        R 4      h\        SV `  VP
                  R4       VP                  V n        VP                  V n        VP                   F@  pVP                  P                  V4      pV'       g   K(  \        V4      VP                  V&   KB  	  \        \        \        P                  P                   \        P"                  P$                  3,          VP                  4      V n	        V P                  P'                  4        VP(                  V n        V P(                  P'                  4        R# )zIa dns.btreezone.ImmutableVersion requires a dns.btreezone.WritableVersionTN)r   r   
ValueErrorr!   r"   r   r   r   r   r   r   r9   r   r   r@   rq   rr   r;   r   make_immutabler   )r#   r   rq   r;   r$   s   &&  r   r"   ImmutableVersion.__init__  s    '?330  	t,**nnOOD==$$T*Dt&3D&9d# $
 .)EFV


!!#"..'')r   c                ^   < V ^8  d   QhRS[ P                  P                  S[,          RS[/# r   )r@   rq   rr   strr   )r   r   s   "r   r   r     s,     B
 B
388==3. B
6 B
r   c                :   V P                   f   Q hV P                  P                  V P                   4      pV P                  P                  V4      pV P                  P	                  V4      w  r4Ve   TpRpMTpRp\        \        P                  P                  V P                  4      P                  4       pVP                  VR4       VP                  4       pVf   Q hVP                  4         VP                  4       p	V	e'   V	P                  4       P                  4       '       d   K;   TP!                  4       P#                  T4      p
T	e#   T	P!                  4       pTP#                  T4      pM(\        P$                  P&                  R\)        T4      3pRp\        P$                  P+                  T\-        T
^,          T^,          4      ) R 4      p\/        TTP!                  4       TTT
^ ,          \        P$                  P0                  P2                  8H  T4      # )a  Return the 'bounds' of *name* in its zone.

The bounds information is useful when making an authoritative response, as
it can be used to determine whether the query name is at or beneath a delegation
point.  The other data in the ``Bounds`` object is useful for making on-the-fly
DNSSEC signatures.

The left bound of *name* is *name* itself if it is in the zone, or the greatest
predecessor which is in the zone.

The right bound of *name* is the least successor of *name*, or ``None`` if
no name in the zone is greater than *name*.

The closest encloser of *name* is *name* itself, if *name* is in the zone;
otherwise it is the name with the largest number of labels in common with
*name* that is in the zone, either explicitly or by the implied existence
of empty non-terminals.

The bounds *is_equal* field is ``True`` if and only if *name* is equal to
its left bound.

The bounds *is_delegation* field is ``True`` if and only if the left bound is a
delegation point.
NTFr   )r   r   r   r   r   r   r@   r   r   r   rx   ry   rz   r   r   r,   r{   r|   rq   NAMERELN_COMMONANCESTORr   rr   maxr   r}   r   )r#   rq   r   r   r   targetr)   cr   r   left_comparison	right_keyright_comparisonr   s   &&            r   boundsImmutableVersion.bounds  s   2 {{&&&))$++6yy''-!!006?F MF!M$$djj188:	vuvvx	FFHE}EKKM$9$9$;$;((*006		I(44T: 00F 
 I88==#oa(*:1*=>>@A
 HHJA#(("7"7"="==
 	
r   )r   r   r   r   )	r   r   r   r   r"   r   r   r5   r6   r7   s   @@r   r   r   
  s!     * *&B
 B
 B
r   r   c                      a  ] tR tRt o ]t]! ]. ]]	P                  P                  ]	P                  P                  3,          3,          ]	P                  P                  ]	P                  P                  ]3,          4      t]t]tV 3R ltRtV tR# )r   id  c                  < V ^8  d   Qh/ S[ . S[P                  P                  3,          ;R&   S[ . S[S[P
                  P                  S[P                  P                  3,          3,          ;R&   S[ S[P                  P                  S[	.S[P                  P                  3,          R,          ;R&   S[ S[P                  P                  .S[P                  P                  3,          R,          ;R&   # )r   r   map_factoryNwritable_version_factoryimmutable_version_factory)r   r@   r;   r   r   rq   rr   r   r   rP   r   )r   r   s   "r   r   Zone.__annotate__d  s     2sxx}},-4 "nSXX]]CHHMM-IJJK   	#((--&(8(889D@   ()9)9(:CHH<L<L(LMPTT  r   r
   N)r   r   r   r   r   r   r   r   r   r@   rq   rr   r;   r   r   r   r   r   r   r   r   r   r5   r   s   @r   r   r   d  sv     04LNR^CHHMM388==$@AAB		CHHMM4/0OK 	  	   r   r   )$enumdataclassesr   typingr   r   r   r   	dns.btreer@   dns.immutabledns.namedns.nodedns.rdataclassdns.rdatasetdns.rdatatypedns.versioneddns.zoneIntFlagr	   r;   r   rT   r9   r   BTreeSetrq   rr   rn   r   r   r   r   r   r   r   r
   r   r   <module>r     s    ! 8 8          G388== G4 +D + +\#))$$SXX]]3 @c!chh.. c!L $
 
 
. V
sxx'' V
 V
r3== r   