
    ,hex              #          d Z ddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZmZmZmZmZ ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) e(rddl*Z*ejV                  jX                  Z-d Z.dFdZ/	 dFdej`                  jb                  d	eejd                  jf                  e4f   d
e
dee5   dee6e5f   f
dZ7	 	 	 	 	 	 	 	 	 	 dGdej`                  jb                  d
ee
   dee5   de8de8deeejr                  jt                  ejv                  jx                  f      dee4   de8de8de8deejd                  jf                     de
fdZ=	 	 	 	 	 	 	 	 	 	 	 dHdejd                  jf                  de>dee5   de6dee>   de6de8de8de8de8deej`                  jb                     deej`                  j~                     de8dejd                  jf                  fd Z@	 	 	 	 	 	 	 	 	 	 	 dIdejd                  jf                  de>dee5   de6dee>   de6de8de8de8d!eej`                  jb                     d"eej`                  j                     deej`                  j~                     de8deejd                  jf                  e8f   fd#ZB	 dFdej`                  j                  d	eejd                  jf                  e4f   dee5   dee6e5f   fd$ZCd% ZD	 	 	 	 	 dJdej`                  j                  dee5   de8deeejr                  jt                  ejv                  jx                  f      dee4   de8deejd                  jf                  e5f   fd&ZE	 	 	 	 	 	 	 	 dKdejd                  jf                  de>dee5   de6dee>   de6de8de8deej`                  j                     deej`                  j~                     dejd                  jf                  fd'ZF	 	 	 	 	 	 	 	 	 	 	 dLdejd                  jf                  de>dee5   de6dee>   de6de8de8deej`                  j                     deej`                  j~                     d)ee)j                     d*ee>   d+ee8e>f   dejd                  jf                  fd,ZHd-ed.   dd.fd/ZIdd0dddddd1d(d(ddej                  ej                  fdejd                  jf                  de>dee5   de6dee>   de6de8de8d2ed3   d4e>d5e8d+ee8e>f   d6ee>   d-ed.   d7e6d8edejd                  jf                  f"d9ZL	 	 	 	 	 	 	 	 	 	 dMdejd                  jf                  de>d:e>dee5   de6dee>   de6de8de8d+ee8e>f   deej`                  j~                     d;ee>   d5e8dejd                  jf                  fd<ZM	 	 	 	 	 	 	 	 	 	 	 dNdejd                  jf                  de>dee5   de6dee>   de6de8de8d=eej                  j                     d+ee8e>f   deej`                  j~                     d;ee>   d*ee>   dejd                  jf                  fd>ZNd?ej                  j                  d@ej`                  j                  dejd                  jf                  dAee6   dee5   de5de
fdBZSdddddde"j                  dfde>d?ej                  j                  deejd                  jf                     de6dee5   dCee5   dee>   de6dDe"deej`                  j~                     ddfdEZUy)OzTalk to a DNS server.    N)AnyDictOptionalTupleUnioncast)NullContext)BadResponseHTTPVersionNoDOHNoDOQUDPMode_check_status_compute_times_make_dot_ssl_context_matches_destination
_remaininghave_dohsslc                     |s|rF|@| t         j                  k(  rd}||fS | t         j                  k(  rd}||fS t        d|        ||fS y )Nz0.0.0.0z::zunknown address family )socketAF_INETAF_INET6NotImplementedError)afaddressports      P/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/dns/asyncquery.py_source_tupler   >   sl     $?V^^##
 	 v&  *,CB4*HII    c                 R    | %|st        j                          }t        | |z
  d      S y Nr   )timemax)
expirationnows     r   _timeoutr'   N   s+    ))+C:#Q''r    sockwhatdestinationr%   returnc                    K   t        |t        j                  j                        r|j	                         }t        j
                         }| j                  ||t        ||             d{   }||fS 7 w)a  Send a DNS message to the specified UDP socket.

    *sock*, a ``dns.asyncbackend.DatagramSocket``.

    *what*, a ``bytes`` or ``dns.message.Message``, the message to send.

    *destination*, a destination tuple appropriate for the address family
    of the socket, specifying where to send the query.

    *expiration*, a ``float`` or ``None``, the absolute time at which
    a timeout exception should be raised.  If ``None``, no timeout will
    occur.  The expiration value is meaningless for the asyncio backend, as
    asyncio's transport sendto() never blocks.

    Returns an ``(int, float)`` tuple of bytes sent and the sent time.
    N)
isinstancednsmessageMessageto_wirer#   sendtor'   )r(   r)   r*   r%   	sent_timens         r   send_udpr5   W   s^     . $++,||~		Ikk$Xj)-LMMAy> 	Ns   A)A6+A4,	A6Fignore_unexpectedone_rr_per_rrsetkeyringrequest_macignore_trailingraise_on_truncationignore_errorsqueryc                   K   d}	 | j                  dt        |             d{   \  }}t        | j                  |||      s@t	        j                         }	 t
        j                  j                  ||||||      }|	r|
|
j                  |      s|||fS 7 u# t
        j                  j                  $ r.}|	r&|
$|
j                  |j                               sY d}~܂ d}~wt        $ r |	rY  w xY ww)aj  Read a DNS message from a UDP socket.

    *sock*, a ``dns.asyncbackend.DatagramSocket``.

    See :py:func:`dns.query.receive_udp()` for the documentation of the other
    parameters, and exceptions.

    Returns a ``(dns.message.Message, float, tuple)`` tuple of the received message, the
    received time, and the address where the message arrived from.
    r      N)r8   r9   r7   r:   r;   )recvfromr'   r   familyr#   r.   r/   	from_wire	Truncatedis_response	Exception)r(   r*   r%   r6   r7   r8   r9   r:   r;   r<   r=   wirefrom_addressreceived_timeres                   r   receive_udprK   u   s    0 D
%)]]5(::N%OO|#KK{4E
 			%%'!1 /$7 & A. U.u7H7H7K=,//A  P {{$$ 		 %))!))+6 			sK   "C7B4C7%B ?C7C49#C"C7!C""C40C72C44C75   qwheretimeoutr   sourcesource_portbackendc                   K   | j                         }t        |      \  }}t        j                  j	                  |      }t        ||f|      }|
rt        |
      }no|st        j                  j                         }t        |||      }|j                         r||f}nd}|j                  |t        j                  d||       d{   }|4 d{   }t        ||||       d{    t        |||||| j                   | j"                  ||	||        d{   \  }}}||z
  |_        |s| j'                  |      st(        |cddd      d{    S 7 7 7 s7 D7 # 1 d{  7  sw Y   yxY ww)aF  Return the response obtained after sending a query via UDP.

    *sock*, a ``dns.asyncbackend.DatagramSocket``, or ``None``,
    the socket to use for the query.  If ``None``, the default, a
    socket is created.  Note that if a socket is provided, the
    *source*, *source_port*, and *backend* are ignored.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.udp()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    Nr   )r1   r   r.   inetaf_for_address_lltupler	   asyncbackendget_default_backendr   datagram_connection_requiredmake_socketr   
SOCK_DGRAMr5   rK   r8   macr#   rD   r
   )rM   rN   rO   r   rP   rQ   r6   r7   r:   r;   r(   rR   r<   rF   
begin_timer%   r   r*   cmstupledtuplesrI   rH   _s                            r   udprc      sw    8 99;D-g6Z		 	 	'BE4="-K5@5F&&::<Gr6;7//1T]FF&&r6+<+<aPP  Qq$Z888&1IIEE'
 !
M1 + q!1)   Q8!
   s~   CE6E
E6EE6E!'E(0E!E,E!E6EE6E6E!E!E6!E3'E*(E3/E6udp_socktcp_sockc                    K   	 t        | ||||||||d|	||       d{   }|dfS 7 # t        j                  j                  $ r$ t	        | ||||||||
|
       d{  7  }|dfcY S w xY ww)a  Return the response to the query, trying UDP first and falling back
    to TCP if UDP results in a truncated response.

    *udp_sock*, a ``dns.asyncbackend.DatagramSocket``, or ``None``,
    the socket to use for the UDP query.  If ``None``, the default, a
    socket is created.  Note that if a socket is provided the *source*,
    *source_port*, and *backend* are ignored for the UDP query.

    *tcp_sock*, a ``dns.asyncbackend.StreamSocket``, or ``None``, the
    socket to use for the TCP query.  If ``None``, the default, a
    socket is created.  Note that if a socket is provided *where*,
    *source*, *source_port*, and *backend*  are ignored for the TCP query.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.udp_with_fallback()` for the documentation
    of the other parameters, exceptions, and return type of this
    method.
    TNF)rc   r.   r/   rC   tcp)rM   rN   rO   r   rP   rQ   r6   r7   r:   rd   re   rR   r<   responses                 r   udp_with_fallbackri      s     F 
 
 %  
  ;;    
 
 
 $ s=   A-) ') A-) 4A*A 	A*'A-)A**A-c                 B  K   t        |t        j                  j                        r|j	                  d      }nt        |      j                  dd      |z   }t        j                         }| j                  |t        ||             d{    t        |      |fS 7 w)zSend a DNS message to the specified TCP socket.

    *sock*, a ``dns.asyncbackend.StreamSocket``.

    See :py:func:`dns.query.send_tcp()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    T)prepend_length   bigN)
r-   r.   r/   r0   r1   lento_bytesr#   sendallr'   )r(   r)   r%   tcpmsgr3   s        r   send_tcprr   8  s      $++,T2
 T##Au-4		I
,,vx
I>
???K## @s   B	BBBc                    K   d}|dkD  rL| j                  |t        |             d{   }|dk(  rt        d      |t        |      z
  }||z   }|dkD  rL|S 7 /w)z|Read the specified number of bytes from stream.  Keep trying until we
    either get the desired amount, or we hit EOF.
    r    r   NEOF)recvr'   EOFErrorrn   )r(   countr%   ra   r4   s        r   _read_exactlyrx   Q  sh      	A
!)))E8J#78885/!AE !) H 9s   &AA,AAc                   K   t        | d|       d{   }t        j                  d|      \  }t        | ||       d{   }t        j                         }	t        j
                  j                  |||||      }
|
|	fS 7 m7 Bw)zRead a DNS message from a TCP socket.

    *sock*, a ``dns.asyncbackend.StreamSocket``.

    See :py:func:`dns.query.receive_tcp()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    rl   N!Hr8   r9   r7   r:   )rx   structunpackr#   r.   r/   rB   )r(   r%   r7   r8   r9   r:   ldatalrF   rH   rI   s              r   receive_tcpr   _  s        a44E==u%DQtQ
33DIIKM)' 	 	A } 53s"   BB,B BABBc
           	        K   | j                         }
t        |      \  }}|r$|j                          d{    t        |      }n|t        j
                  j                  |      }t        |||      }||f}|	st        j                  j                         }	|	j                  |t        j                  d|||       d{   }|4 d{   }t        ||
|       d{    t        |||| j                  | j                   |       d{   \  }}||z
  |_        | j%                  |      st&        |cddd      d{    S 7 7 7 7 n7 D7 # 1 d{  7  sw Y   yxY ww)aO  Return the response obtained after sending a query via TCP.

    *sock*, a ``dns.asyncbacket.StreamSocket``, or ``None``, the
    socket to use for the query.  If ``None``, the default, a socket
    is created.  Note that if a socket is provided
    *where*, *port*, *source*, *source_port*, and *backend* are ignored.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.tcp()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    Nr   )r1   r   getpeernamer	   r.   rT   rU   r   rW   rX   rZ   r   SOCK_STREAMrr   r   r8   r\   r#   rD   r
   )rM   rN   rO   r   rP   rQ   r7   r:   r(   rR   rF   r]   r%   r^   r   r_   r`   ra   rI   rH   s                       r   rg   rg   }  s_    4 99;D-g6Z    5@5F XX$$U+r6;7&&::<G&&""Avvw
 
   Qq$
+++#.z+QYY$
 
M +}}Q   	!
+
   s   4E(EBE(>E	?
E(	E
E(EE+E
E)E4E( EE(	E(E(EEE(E%EE%!E(Tssl_contextserver_hostnameverifyc                 Z  K   t        |      \  }}|rt        |      }n|
t        ||      }
t        j                  j                  |      }t        |||      }||f}|	st        j                  j                         }	|	j                  |t        j                  d||||
|       d{   }|4 d{   }t        |      }t        | |||||||||	
       d{   }t        j                         }||z
  |_        |cddd      d{    S 7 g7 ^7 97 # 1 d{  7  sw Y   yxY ww)a  Return the response obtained after sending a query via TLS.

    *sock*, an ``asyncbackend.StreamSocket``, or ``None``, the socket
    to use for the query.  If ``None``, the default, a socket is
    created.  Note that if a socket is provided, it must be a
    connected SSL stream socket, and *where*, *port*,
    *source*, *source_port*, *backend*, *ssl_context*, and *server_hostname*
    are ignored.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.tls()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    Nr   )r   r	   r   r.   rT   rU   r   rW   rX   rZ   r   r   r'   rg   r#   )rM   rN   rO   r   rP   rQ   r7   r:   r(   rR   r   r   r   r]   r%   r^   r   r_   r`   ra   rh   end_times                         r   tlsr     sE    <  .g6Z5@5F/HKXX$$U+r6;7&&::<G&&	
 	
   Q:&
 
 99; :-!  	

   sl   B$D+&D'
D+1D2D+5#DD#D<D+D	D+D+DD+D(DD($D+resolverzdns.asyncresolver.Resolverc                 F    | dd l }|j                  j                         } | S r"   )dns.asyncresolverasyncresolverResolver)r   r.   s     r   _maybe_get_resolverr     s&      $$--/Or    i  z
/dns-queryclientzhttpx.AsyncClientpathpostbootstrap_addressrA   http_versionc                 $	  K   	 t         j                  j                  |      }|[t         j                  j	                  |      r<|t
        j                  k(  rd| d| |	 }n |t
        j                  k(  rd| d| |	 }n|}i }|t        j                  j                        }|j                  t        d      t         j                  j	                  |j                        r|j                  }|j                  |d<   |j                  |j                  }|t        j                  k(  s|t        j                  k(  rt         s|it#        |      }j                  J |j%                  |j                  |       d{   }t'        j(                  t+        |j-                                     }t/        | |||||||||
       d{   S t         st0        |r%t3        |t4        j6                        st        d	      | j9                         }d
di}|t        j:                  t        j                  fv }|t        j<                  t        j                  fv }t         j>                  jA                         }|d}d}n|}|}|rtC        |      }n7 |jE                         ||||||||      }t5        j6                  ||||      }|4 d{   }|
rT|jG                  dtI        tK        |            d       |jM                  |jO                  |||      |       d{   }nctQ        jR                  |      jU                  d      }|jW                         } |jM                  |jY                  |d| i|      |       d{   }ddd      d{    jZ                  dk  s|jZ                  dkD  r't        | d|jZ                   d|j\                        t         j^                  ja                  |j\                  | jb                  | jd                  ||      }!|jf                  ji                         |!_5        | jm                  |!      stn        |!S # t        $ r d}Y Dw xY w7 7 7 7 S7 7 # 1 d{  7  sw Y   xY ww)a  Return the response obtained after sending a query via DNS-over-HTTPS.

    *client*, a ``httpx.AsyncClient``.  If provided, the client to use for
    the query.

    Unlike the other dnspython async functions, a backend cannot be provided
    in this function because httpx always auto-detects the async backend.

    See :py:func:`dns.query.https()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    Nzhttps://:z	https://[z]:zno hostname in URLsni_hostname)r   r   z.session parameter must be an httpx.AsyncClientacceptzapplication/dns-messager   )local_addresshttp1http2r   
local_portr   r   rA   )r   r   r   	transport)zcontent-typezcontent-length)headerscontent
extensions   =r.   )r   paramsr      i+  z responded with status code z
Response body: r{   )8r.   rT   rU   
ValueError
is_addressr   r   r   urllibparseurlparsehostnamer   r   H3DEFAULTr   r   resolve_namerandomchoicelist	addresses_http3r   r-   httpxAsyncClientr1   H1H2rW   rX   r	   get_transport_classupdatestrrn   wait_forr   base64urlsafe_b64encoderstripdecodegetstatus_coder   r/   rB   r8   r9   elapsedtotal_secondsr#   rD   r
   )"rM   rN   rO   r   rP   rQ   r7   r:   r   r   r   r   r   r   rA   r   r   urlr   parsedanswersrF   r   h1h2rR   r   r   r^   r   
the_clientrh   twirerI   s"                                     r   httpsr   	  sf    <XX$$U+ 
~#((--e4UG1TF4&1C6??"eWBtfTF3CJ &&s+??"12288v/ &)/J~&;;";;D{~~%+++H$*84H??..$11&//6JJG &d73D3D3F.G H
 
 	
 j):):;IJJ 99;D23G	+..+*=*=>	>B	+..+*=*=>	>B224G~
 
5@5H1G//1'!/	
	 Rr&IV  Z NN$=&)#d)n %--# )	     H ++D188>DKKME$--#!5>)	    H- D c!X%9%9C%?g1(2F2F1G 0 035
 	
 			MM)' 	 	A ++-AF==HG  8 K
h-   s   RQ ER>Q+?A	RQ.	DRQ1RAQ;!Q4"A#Q;Q7Q;
RQ9CRQ($R'Q((R.R1R4Q;7Q;9R;RRR	Rr   r   c           	        K   t         j                  j                  st        d      t        j
                  j                  |      }|j                  }|j                  |j                  }d| _	        | j                         }t         j                  j                  |
      \  }} |       4 d {   } |||	|d      4 d {   }|j                  ||||      }t        |      \  }}|j                  |       d {   }|4 d {    |j                  |||       |j!                  t#        |             d {   }t%        |j'                         ||       d d d       d {    t)        j(                         }d d d       d {    t         j*                  j-                  || j.                  | j0                  ||      }d d d       d {    t3        z
  d      _        | j5                  |      st6        |S 7 Y7 G7 7 7 7 # 1 d {  7  sw Y   xY w7 # 1 d {  7  sw Y   xY w7 m# 1 d {  7  sw Y   }xY ww)Nz DNS-over-HTTP3 is not available.r   T)verify_modeserver_nameh3r{           )r.   quic	have_quicr   r   r   r   r   r   idr1   factories_for_backendconnectr   make_streamsend_h3receiver   r   r   r#   r/   rB   r8   r9   r$   rD   r
   )rM   rN   r   rO   r   rP   rQ   r7   r:   r   rR   r   r   	url_partsrF   cfactorymfactorycontextthe_managerthe_connectionstartr%   streamfinishrI   s                            r   r   r     s     88677%%c*I!!H~~!~~AD99;D8899'BXxz 
 
WX$
 	! 	!(00fkRN"0"9UJ)55g>>F = =sD$/#^^Jz,BCCfnn.t<	= =
 YY[F	! 	! KK!!II-+ " 

 
( %%AF==H/
	!
 ?= D= = = =	! 	! 	! 	!
 
 
 
s   B-I/H0I3IHI7H/?H 
H/
H
H/1H?H
 HH/*H+H/IH-<III2IIH/H/HH/H*H!H*&H/-I/I	5H86I	=IIIIII
connectionc           	        K   t         j                  j                  st        d      |||}d| _        | j                         }|r7t         j                  j                  }t         j                  j                  }|}n"t         j                  j                  |
      \  }} |       4 d{   } |||	|      4 d{   }|s|j                  ||||      }t        |      \  }}j                  |       d{   }|4 d{    |j                  |d       d{    |j                  t        |             d{   }ddd      d{    t        j                         }ddd      d{    t         j                  j!                  || j"                  | j$                  ||      }ddd      d{    t'        z
  d      _        | j)                  |      st*        |S 7 F7 57 7 7 7 7 # 1 d{  7  sw Y   xY w7 # 1 d{  7  sw Y   xY w7 m# 1 d{  7  sw Y   }xY ww)ai  Return the response obtained after sending an asynchronous query via
    DNS-over-QUIC.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.quic()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    zDNS-over-QUIC is not available.Nr   )r   r   Tr{   r   )r.   r   r   r   r   r1   null_factoryr   r   r   r   sendr   r   r#   r/   rB   r8   r9   r$   rD   r
   )rM   rN   rO   r   rP   rQ   r7   r:   r   r   rR   r   r   rF   r   r   r   r   r   r   r%   r   r   rI   s                           r   r   r     s    2 88566"x'7"AD99;D88((88((#"xx==gF8z 
 
W'
 	! 	! !,!4!4UD&+!V"0"9UJ)55g>>F D Dkk$---#^^Jz,BCCD D YY[F	! 	! KK!!II-+ " 

 
* %%AF==H1
	! ?D-CD D D D	! 	! 	! 	!
 
 
 
s  B)I+G1,I/H/?G4 H/9H<G7=
HG9
HH!G;
"!HG=
HHG?H,H/7H8<H/4I?H- 2I4H/7H9H;H=H?HHH
HHH/H*	H!H*	&H/-I/I5H86I=Itxn_managerra   serialc                  K   |j                   d   j                  }|t        j                  j                  k(  }| j                         }|j                         }	|j                  t        j                  k(  }
|
rIt        t        j                  j                  |      }|j                  |	dt        |             d{    n`t        t        j                  j                  |      }t!        j"                  dt%        |	            |	z   }|j'                  ||       d{    t        j(                  j+                  | |||
      5 }d}d}|st-        |      \  }}||||kD  r|}|
r)t        |      }j/                  d|       d{   \  }}nBt1        d|       d{   }t!        j2                  d|      \  }t1        |||       d{   }t        j4                  j7                  ||j8                  |j:                  d|||
 |      }|j=                  |      }| |j>                  }|s|j8                  r+j@                  st        jB                  jE                  d	      ddd       y7 7 X7 7 7 # 1 sw Y   yxY ww)
z'Given a socket, does the zone transfer.r   Nrz   Fr?   rl   T)r8   r9   xfrorigintsig_ctxmultir7   zmissing TSIG)#questionrdtyper.   	rdatatypeIXFRfrom_wire_originr1   typer   r[   r   rW   DatagramSocketr2   r'   StreamSocketr|   packrn   rp   r   Inboundr   r@   rx   r}   r/   rB   r8   r\   process_messager   had_tsig	exception	FormError)r   ra   r=   r   rO   r%   r   is_ixfrr   rF   is_udprd   re   rq   inbounddoner   rb   mexpirationrwirer~   r   rI   s                          r   _inbound_xfrr   (  s9     ^^A%%F***G))+F==?DVVv(((F((77;oodD(:*>???((55q9T3t9-4vz222	fff	= :-g6Q"&;+C(";/#+#4#4UG#DD
+HaEE}}T51+HaEE%%!II!!z!( & 	A **1-DGzzH3 4 ==--)).99=: : 	@ 	3 EEE: :s{   B9J	;I1<A J	I4&J	AI=I7I=I9,I=I;A$I=17I=(
J	4J	7I=9I=;I==JJ	lifetimeudp_modec
           
        K   |#t         j                  j                  |      \  }}
nt         j                  j                  |      }
t         j                  j                  |       }t        |||      }| |f}|	st         j                  j                         }	t        |      \  }}|j                  d   j                  t         j                  j                  k(  rn|t        j                  k7  r[|	j!                  |t"        j$                  d||t'        |             d{   }|4 d{    	 t)        ||||
||      2 3 d{   }
|	j!                  |t"        j.                  d||t'        |             d{   }|4 d{    t)        ||||
||      2 3 d{   }
7 7 {7 c6 	 ddd      d{  7   y# t         j                  j*                  $ r |t        j,                  k(  r Y nw xY wddd      d{  7   # 1 d{  7  sw Y   xY w7 7 7 6 ddd      d{  7   y# 1 d{  7  sw Y   yxY ww)am  Conduct an inbound transfer and apply it via a transaction from the
    txn_manager.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.inbound_xfr()` for the documentation of
    the other parameters, exceptions, and return type of this method.
    Nr   )r.   r   
make_queryextract_serial_from_queryrT   rU   r   rW   rX   r   r   r   r   r   r   NEVERrZ   r   r[   r'   r   UseTCPONLYr   )rN   r   r=   r   rO   r   rP   rQ   r  rR   r   r   r_   r`   rb   r%   ra   s                    r   inbound_xfrr  ^  s    * }'',,[92259		 	 	'B2v{3FT]F""668$X.OQ
~~a3==#5#55(gmm:S%%!!1ffhz6J
 
  		 		+E67J   !  !!
F668J3G 	A   #KE67JW 	 	!'
		   		 		 		 77>> w||+ ,		 		 		 		 				W    s&  DIF!
I'F#(I+H-F;=F'F%F'F;0I7H8
IHIH2HHHH2!I#I%F''F;)I4F75I;1G/,H.G//H2I=H >IH
HHIIHH2 I+H.,I2I8H;9I I)N)
NNFFNr    FFFN)NrL   Nr   FFFFNNF)NrL   Nr   FFFNNNF)NFNr    F)NrL   Nr   FFNN)NU  Nr   FFNNNNT)
Nr	  Nr   FFTNNT)Nr	  Nr   FFNTNNN)V__doc__r   
contextlibr   r   r|   r#   urllib.parser   typingr   r   r   r   r   r   dns.asyncbackendr.   dns.exceptiondns.inetdns.messagedns.namedns.quic	dns.rcodedns.rdataclassdns.rdatatypedns.transactiondns._asyncbackendr	   	dns.queryr
   r   r   r   r   r   r   r   r   r   r   r   r   rT   low_level_address_tuplerV   r   r'   rW   r   r/   r0   bytesfloatintr5   boolnameNametsigKeyrK   r   Backendrc   r   ri   rr   rx   r   rg   
SSLContextr   r   	AF_UNSPECr   r   r   r   AsyncQuicConnectiontransactionTransactionManagerSocketr   r  r   r    r   <module>r+     s  $         : :           )     88++  #'	



)
)
##U*
+  	
 3:@ "&"&#";?#&! %+/:0



)
):0#:0 :0 	:0
 :0 d388==#((,,678:0 %:0 :0 :0 :0 CKK''(:0 	:0@  $ #"! %6:26?
{{?? e_? 	?
 SM? ? ? ? ? ? 3##22
3? c&&../? ? 	[[?J  $ #"!:>8<26A 
{{A A  e_A  	A 
 SMA  A  A  A  A  s''667A  s''445A  c&&../A  A  3;;$%A N #'$



'
'$
##U*
+$ $ 3:	$2  #'";?#&!



'
'  d388==#((,,678	
 %  3;;%&B  $ "!48265
{{55 e_5 	5
 SM5 5 5 5 3##00
15 c&&../5 	[[5v  $ "!4826,0%)#C
{{CC e_C 	C
 SMC C C C 3##00
1C c&&../C #..)C c]C $)C 	[[CL34!"  $ "!,0#'+7;"" + 3 3!c
{{cc e_c 	c
 SMc c c c ()c c c $)c  }c 34c c  !c" 	[[#cT  $ "!#26"2
{{22 
2 e_	2
 2 SM2 2 2 2 $)2 c&&../2 sm2 2 	[[2p  $ "!9=#26"%)A
{{AA e_A 	A
 SMA A A A 556A $)A c&&../A smA c]A 	[[AH3:333:
3: ;;3: SM	3:
 e_3: 3: 	3:r ,0# $ 2633333 CKK''(3 	3
 e_3 uo3 SM3 3 3 c&&../3 
3r    