Ë ����†£éf0Ö��ã������������!�������óÊ��—�d�Z�ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddlmZm Z mZmZmZ�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZd„�Zd„�Z ejB������������������jE������������������d«������Z#e#rUddl$Z%ddl&Z&e%jN������������������Z(e%jR������������������jT������������������jV������������������Z,�G�d„�de(«������Z-�G�d „�d e&j\������������������«������Z/n �G�d„�d «������Z/e#Z0 �ddl1Z1ej������������������Z3�G�d„�dejh������������������jj������������������«������Z6�G�d„�dejh������������������jn������������������«������Z8�G�d„�dejh������������������jj������������������«������Z9�G�d„�dejh������������������jj������������������«������Z:ejv������������������jx������������������Z<d„�Z=d„�Z>d„�Z?�e@ed«������r ej‚������������������aBnej†������������������aBd„�ZDd„�ZEd„�ZFd„�ZG �ded„ZHdfd „ZIdd!ddd"d"dd#ddddej”������������������f d$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd*ePd+ePd,ee���d-eMd.ePd/eeM���d0eePeMf���d1ed2���d3eeO���d4ej–������������������j˜������������������f d5„ZQd6„�ZRd7„�ZS �dgd8ed9eej–������������������j˜������������������eTf���d:ed;eeN���d4eeOeNf���f d<„ZU � � � � � � � � � �dhd8ed:ee���d;eeN���d=ePd*ePd>ee ej¬������������������j®������������������ej°������������������j²������������������f������d?eeT���d+ePd@ePdAePdBeej–������������������j˜���������������������d4efdC„ZZ � � � � � � � � � �did$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd=ePd*ePd+ePd@ePd8ee���dAePd4ej–������������������j˜������������������fdE„Z[ � � � � � � � � � �djd$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd=ePd*ePd+ePdFee���dGee���dAePd4eej–������������������j˜������������������ePf���fdH„Z\dI„�Z]dJ„�Z^ �dgd8ed9eej–������������������j˜������������������eTf���d;eeN���d4eeOeNf���fdK„Z_ � � � � �dkd8ed;eeN���d*ePd>ee ej¬������������������j®������������������ej°������������������j²������������������f������d?eeT���d+ePd4eej–������������������j˜������������������eNf���fdL„Z`dM„�Za � � � � � � �dld$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd*ePd+ePd8ee���d4ej–������������������j˜������������������fdN„ZbdO„�ZcdPeeM���d0eePeMf���d4e1jÈ������������������fdQ„Ze � � � � � � � � � �dmd$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd*ePd+ePd8ee1jÌ���������������������dRee1jÈ���������������������dPeeM���d0eePeMf���d4ej–������������������j˜������������������fdS„Zg � � � � � � � � �dnd$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd*ePd+ePdTeejÐ������������������jÒ���������������������d0eePeMf���dPeeM���d4ej–������������������j˜������������������fdU„ZhejÔ������������������jÖ������������������ejØ������������������jÚ������������������ddDdddddddd"ej°������������������jÜ������������������f d%eMdVeej¬������������������j®������������������eMf���dWeejÔ������������������jÞ������������������eMf���dXeejØ������������������jà������������������eMf���d&eeN���d'eOd>ee ej¬������������������j®������������������ej°������������������j²������������������f������dYeeej¬������������������j®������������������eMf������dZePd[eeN���d(eeM���d)eOd\eOd]ePd^eej¬������������������j®������������������eMf���d4ef d_„Z;�G�d`„�daejâ������������������«������ZrddDdddderjæ������������������fd%eMdbejè������������������jê������������������dBeej–������������������j˜���������������������d'eOd&eeN���d[eeN���d(eeM���d)eOdcerd4dfdd„Zvy#�e2$�r��G�d„�d «������Z1Y�Œkw�xY�w)ozTalk to a DNS server.é����N)ÚAnyÚDictÚOptionalÚTupleÚUnionc�����������������óx���—�|�€y�|�t��������j�������������������«�������z ��}|dk��rt��������j������������������j������������������‚|S�)Nç��������)ÚtimeÚdnsÚ exceptionÚTimeout)Ú expirationÚtimeouts��� úR/var/lib/jenkins/workspace/mettalog/venv/lib/python3.12/site-packages/dns/query.pyÚ _remainingr���/���s7���€�ØÐØØœ4Ÿ9™9›;Ñ&€GØ#‚~Üm‰m×#Ñ#Ð#Ø€Nó����c�����������������óJ���—�|€y�t��������t��������j������������������«�������|�z���|«������S�©N)Úminr ���)r���r���s��� r���Ú_expiration_for_this_attemptr���8���s#���€�ØÐØÜŒty‰y‹{˜WÑ$ jÓ1Ð1r���Údohc�������������������ó2���‡�—�e�Zd�Zˆ�fd„Z �dd„Z �dd„Zˆ�xZS�)Ú_NetworkBackendc�����������������óZ���•—�t���������‰|���«��������||�_��������||�_��������||�_��������||�_��������y�r���)ÚsuperÚ__init__Ú_local_portÚ _resolverÚ_bootstrap_addressÚ_family)ÚselfÚresolverÚ local_portÚbootstrap_addressÚfamilyÚ __class__s��� €r���r���z_NetworkBackend.__init__G���s,���ø€�܉GÑÔØ)ˆDÔØ%ˆDŒNØ&7ˆDÔ#Ø!ˆDLr���c�����������������ól��—�g�}t��������|«������\��}}t��������j������������������j������������������|«������r|j ������������������|«�������nŽ|�j ������������������|j ������������������|�j ������������������«�������nft ��������|«������}|�j������������������} |rt��������j������������������j������������������|«������} |�j������������������j������������������|| |¬«������} | j������������������«�������}|D�]Â��}t��������j������������������j������������������|«������}|€|�j������������������dk7��r-t��������j������������������j������������������||�j������������������f|«������} nd�} t��������|t��������j ������������������| «������}t#��������d|«������} �t%��������|t��������j������������������j������������������||f|«������|«�������t'��������|«������c�S��t*��������j,������������������‚#�t(��������$�r�Y�Œàw�xY�w)N)r%���Úlifetimer���g�������@)Ú_compute_timesr���ÚinetÚ is_addressÚappendr���r���r ���Úaf_for_addressr���Úresolve_nameÚ addressesr���Úlow_level_address_tupleÚ_make_socketÚsocketÚSOCK_STREAMr���Ú_connectÚ_CoreSyncStreamÚ ExceptionÚhttpcoreÚConnectError)r!���ÚhostÚportr���Ú local_addressÚsocket_optionsr/���Ú_r���r%���ÚanswersÚaddressÚafÚsourceÚsockÚattempt_expirations��� r���Úconnect_tcpz_NetworkBackend.connect_tcpN���sˆ��€�ð�ˆIÜ*¨7Ó3‰MˆAˆzÜx‰x×"Ñ" 4Ô(Ø× Ñ Õ&Ø×(Ñ(Ð4Ø× Ñ ×!8Ñ!8Õ9ä$ ZÓ0ØŸ™Ù Ü ŸX™X×4Ñ4°]ÓCFØŸ.™.×5Ñ5Ø °'ð�6ó�ð�$×-Ñ-Ó/ Û$Ü—X‘X×,Ñ,¨WÓ5Ø Ð,°×0@Ñ0@ÀAÒ0EÜ ŸX™X×=Ñ=Ø&¨×(8Ñ(8Ð9¸2ó‘Fð�"FÜ# B¬×(:Ñ(:¸FÓCÜ%AÀ#ÀzÓ%RÐ"ðÜØÜŸ™×8Ñ8¸'À4¸È"ÓMØ*ôô �+¨4Ó0Ò0ð!�%ô&�×'Ñ'Ð'øô�!ò�Ùðús���Å7F'Æ' F3Æ2F3c�����������������ó���—�t���������‚r���©ÚNotImplementedError)r!���Úpathr���r<���s��� r���Úconnect_unix_socketz#_NetworkBackend.connect_unix_socketu���s ���€�ô�&Ð%r���r���)Ú__name__Ú __module__Ú__qualname__r���rD���rI���Ú __classcell__©r&���s���@r���r���r���F���s���ø„�ô "ð�FJó% (ðP�15÷ &r���r���c�������������������ó>���‡�—�e�Zd�Zdddej������������������dœˆ�fd„ Zˆ�xZS�)Ú_HTTPTransportr���N)r#���r$���r"���r%���c����������������óž���•—�|€dd�l�}|j������������������j������������������«�������}t��������‰|���|i�|¤Ž�t��������||||«������|�j������������������_��������y�©Nr���)Údns.resolverr"���ÚResolverr���r���r���Ú_poolÚ_network_backend) r!���r#���r$���r"���r%���ÚargsÚkwargsr���r&���s ��� €r���r���z_HTTPTransport.__init__{���sM���ø€�ð�Ðã#àŸ<™<×0Ñ0Ó2܉GјdÐ- fÒ-Ü*9ؘ*Ð&7¸ó+ˆDJ‰JÕ'r���)rJ���rK���rL���r2���Ú AF_UNSPECr���rM���rN���s���@r���rP���rP���z���s!���ø„�ð�Ø"ØØ×#Ñ#÷ ò� r���rP���c�������������������ó���—�e�Zd�Zd„�Zy)rP���c�����������������ó���—�t���������‚r���rF���)r!���r9���r:���r���r;���s��� r���rD���z_HTTPTransport.connect_tcp‘���s���€�Ü%Ð%r���N)rJ���rK���rL���rD���©�r���r���rP���rP������s���„�ó &r���c�������������������ót���—�e�Zd�ZdZ�G�d„�de«������Z�G�d„�de«������Z�G�d„�d«������Z�G�d„�d «������Ze d „�«�������Z y)Ússlr���c�������������������ó���—�e�Zd�Zy)ússl.WantReadExceptionN©rJ���rK���rL���r\���r���r���ÚWantReadExceptionr`���ž���ó���„�Ør���rb���c�������������������ó���—�e�Zd�Zy)ússl.WantWriteExceptionNra���r\���r���r���ÚWantWriteExceptionre���¡���rc���r���rf���c�������������������ó���—�e�Zd�Zy)ússl.SSLContextNra���r\���r���r���Ú SSLContextrh���¤���rc���r���ri���c�������������������ó���—�e�Zd�Zy)ú ssl.SSLSocketNra���r\���r���r���Ú SSLSocketrk���§���rc���r���rl���c�����������������ó���—�t��������d«������‚)Nzno ssl support)r6���)ÚclsrW���rX���s��� r���Úcreate_default_contextzssl.create_default_contextª���s���€�äÐ,Ó-Ð-r���N)rJ���rK���rL���Ú CERT_NONEr6���rb���rf���ri���rl���Úclassmethodro���r\���r���r���r^���r^���›���sG���„�؈ ô ô� ô ô� ÷ ñ� ÷ ñ� ð� ñ .ó� ñ .r���r^���c�������������������ó���—�e�Zd�ZdZy)ÚUnexpectedSourcez=A DNS query response came from an unexpected address or port.N©rJ���rK���rL���Ú__doc__r\���r���r���rs���rs���´���s���„�ÚGr���rs���c�������������������ó���—�e�Zd�ZdZy)ÚBadResponsez<A DNS query response does not respond to the question asked.Nrt���r\���r���r���rw���rw���¸���s���„�ÚFr���rw���c�������������������ó���—�e�Zd�ZdZy)ÚNoDOHzMDNS over HTTPS (DOH) was requested but the httpx module is not available.Nrt���r\���r���r���ry���ry���¼���ó���„�òr���ry���c�������������������ó���—�e�Zd�ZdZy)ÚNoDOQzNDNS over QUIC (DOQ) was requested but the aioquic module is not available.Nrt���r\���r���r���r|���r|���Á���rz���r���r|���c�����������������óD���—�t��������j�������������������«�������}|�€|d�fS�|||�z���fS�r���)r ���)r���Únows��� r���r)���r)���Ê���s+���€�Ü )‰)‹+€CØ€ØTˆ{ÐàS˜7‘]Ð#Ð#r���c�����������������óÄ��—�|r.t��������|�t��������j������������������«������r|�j������������������«�������dkD��ryt ��������«�������}d}|r|t ��������j������������������z��}|r|t ��������j������������������z��}|r|j������������������|�|«�������|€d�}n6|t��������j������������������«�������z ��}|dk��rt��������j������������������j������������������‚|j������������������|«������st��������j������������������j������������������‚y�)Nr���Tr ���)Ú isinstancer^���rl���ÚpendingÚ_selector_classÚ selectorsÚ EVENT_READÚEVENT_WRITEÚregisterr ���r���r���r ���Úselect)ÚfdÚreadableÚwritabler=���r���ÚselÚeventsr���s��� r���Ú _wait_forr���Ò���s»���€�ñ�”J˜r¤3§=¡=Ô1°b·j±j³lÀQÒ6FØÜ Ó €CØ €FÙØ”)×&Ñ&Ñ&ˆÙØ”)×'Ñ'Ñ'ˆÙ ؉R˜Ô ØÐ؉àœtŸy™y›{Ñ*ˆØcŠ>Ü—-‘-×'Ñ'Ð'Ø:‰:gÔÜm‰m×#Ñ#Ð#ð�r���c�����������������ó���—�|�a�y�r���)r‚���)Úselector_classs��� r���Ú_set_selector_classr���î���s ���€�ð �%Or���ÚPollSelectorc�����������������ó"���—�t��������|�ddd|«�������y�)NTF©r���©Úsr���s��� r���Ú_wait_for_readabler–�����s���€�Ü ˆau˜d JÕ/r���c�����������������ó"���—�t��������|�ddd|«�������y�)NFTr“���r”���s��� r���Ú_wait_for_writabler˜�����s���€�Ü ˆa˜˜d JÕ/r���c�����������������óú���—� �t���������j������������������j������������������|�|d���«������}t���������j������������������j������������������|�|d���«������}||k(��xr�|dd��|dd��k(��S�#�t���������j������������������j������������������$�r�Y�yw�xY�w)Nr���Fé���)r���r*���Ú inet_ptonr���ÚSyntaxError)r@���Úa1Úa2Ún1Ún2s��� r���Ú_addresses_equalr¡��� ��s{���€�ðÜ X‰X× Ñ B q¡EÓ *ˆÜ X‰X× Ñ B q¡EÓ *ˆð�‰8Ò(˜˜1˜2˜ " Q R &Ñ(Ð(øô�=‰=×$Ñ$ò�Ùðús���‚AA�ÁA:Á9A:c�����������������ó¦���—�|syt��������|�||«������s-t��������j������������������j������������������|d���«������r|dd��|dd��k(��ry|ryt ��������d|›�d|›�«������‚)NTr���rš���Fzgot a response from z instead of )r¡���r���r*���Úis_multicastrs���)r@���Úfrom_addressÚdestinationÚignore_unexpecteds��� r���Ú_matches_destinationr§�����sh���€�ñ�Øܘ˜L¨+Ô6܉×јk¨!™nÔ-°,¸q¸rÐ2BÀkÐRSÐRTÀoÒ2UàÙ ØÜ Ø ˜|˜n¨L¸[¸MÐJóð�r���Tc�����������������óî��—�d�}d�} �t���������j������������������j������������������|�«������}|�}|r3t���������j������������������j������������������|«������}|r||k7��r t ��������d«������‚|}|r"|s �t���������j������������������j������������������|«������}|r"t���������j������������������j ������������������||f|«������}|r"t���������j������������������j ������������������||f|«������}|||fS�#�t��������$�r�|r‚�Y�Œ´w�xY�w#�t��������$�r�t ��������d«������‚w�xY�w)Nz5different address families for source and destinationz3source_port specified but address family is unknown)r���r*���r-���r6���Ú ValueErrorÚ any_for_afr0���)Úwherer:���rA���Úsource_portÚwhere_must_be_addressr@���r¥���Úsafs��� r���Ú_destination_and_sourcer¯���&��s ��€�ð � €BØ€KðÜ X‰X× $Ñ $ UÓ +ˆØˆñ �Üh‰h×%Ñ% fÓ-ˆÙ àbŠyÜ ØKóð�ð�ˆBÙ™6ð TÜ—X‘X×(Ñ(¨Ó,ˆFñ�Ü—h‘h×6Ñ6¸ÀTÐ7JÈBÓOˆÙ Ü—‘×1Ñ1°6¸;Ð2GÈÓLˆØ˜VÐ$Ð$øô?�ò�Ù Øñ�!ðûô,�ò� TäÐRÓSÐSð Tús���†!C �Á!C�à CÃCÃC4c�����������������óÐ���—�t��������|�|«������} �|j������������������d«�������||j������������������|«�������|r|j������������������|d|¬«������S�|S�#�t��������$�r�|j������������������«��������‚�w�xY�w)NF)Údo_handshake_on_connectÚserver_hostname)Úsocket_factoryÚsetblockingÚbindÚwrap_socketr6���Úclose)r@���ÚtyperA���Ússl_contextr²���r•���s��� r���r1���r1���R��sv���€�Ür˜4Ó €AðØ ‰ eÔØÐØ F‰F6ŒNÙà×*Ñ*ØØ(-Ø /ð�+ó�ð� ð�ˆHøÜò�Ø ‰Œ Ø ðús���Ž9A �ÁA �Á A%i»��Fz /dns-queryÚqr«���r���r:���rA���r¬���Úone_rr_per_rrsetÚignore_trailingÚsessionrH���Úpostr$���Úverifyr"���zdns.resolver.Resolverr%���Úreturnc����������� ������ó��—�t���������st��������‚|r%t��������|t��������j������������������«������st��������d«������‚|�j ������������������«�������}t��������||||d«������\��}}}d}ddi}|mt��������j������������������j������������������|«������rN|t��������j������������������k(��rdj������������������||| «������}n)|t��������j������������������k(��rdj������������������||| «������}n|}|€d}d}n |d���}|d ���}t��������|d d |||| |¬«������}|rt!��������j"������������������|«������}nt��������j������������������d d ||¬«������}|5�}| r<|j%������������������dt'��������t)��������|«������«������d œ«�������|j+������������������|||¬«������}nKt-��������j.������������������|«������j1������������������d«������}|j3������������������«�������}|j5������������������||d|i¬«������}ddd«�������j6������������������dk��s|j6������������������dkD��r0t��������dj������������������||j6������������������|j8������������������«������«������‚t��������j:������������������j=������������������|j8������������������|�j>������������������|�j@������������������||¬«������}|jB������������������jE������������������«�������|_#��������|�jI������������������|«������stJ��������‚|S�#�1�sw�Y���ŒÑxY�w)a´��Return the response obtained after sending a query via DNS-over-HTTPS. *q*, a ``dns.message.Message``, the query to send. *where*, a ``str``, the nameserver IP address or the full URL. If an IP address is given, the URL will be constructed using the following schema: https://<IP-address>:<port>/<path>. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, a ``int``, the port to send the query to. The default is 443. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *session*, an ``httpx.Client``. If provided, the client session to use to send the queries. *path*, a ``str``. If *where* is an IP address, then *path* will be used to construct the URL to send the DNS query to. *post*, a ``bool``. If ``True``, the default, POST method will be used. *bootstrap_address*, a ``str``, the IP address to use to bypass resolution. *verify*, a ``bool`` or ``str``. If a ``True``, then TLS certificate verification of the server is done using the default CA bundle; if ``False``, then no verification is done; if a `str` then it specifies the path to a certificate file or directory which will be used for verification. *resolver*, a ``dns.resolver.Resolver`` or ``None``, the resolver to use for resolution of hostnames in URLs. If not specified, a new resolver with a default configuration will be used; note this is *not* the default resolver as that resolver might have been configured to use DoH causing a chicken-and-egg problem. This parameter only has an effect if the HTTP library is httpx. *family*, an ``int``, the address family. If socket.AF_UNSPEC (the default), both A and AAAA records will be retrieved. Returns a ``dns.message.Message``. z)session parameter must be an httpx.ClientFNÚacceptzapplication/dns-messagezhttps://{}:{}{}zhttps://[{}]:{}{}r���rš���T)r;���Úhttp1Úhttp2r¿���r#���r$���r"���r%���)rÃ���rÄ���r¿���Ú transport)zcontent-typezcontent-length)ÚheadersÚcontentr���ó���=r���)rÆ���r���ÚparamséÈ���i+��z2{} responded with status code {} Response body: {}©ÚkeyringÚrequest_macr»���r¼���)&Úhave_dohry���r€���ÚhttpxÚClientr©���Úto_wirer¯���r���r*���r+���r2���ÚAF_INETÚformatÚAF_INET6rP���Ú contextlibÚnullcontextÚupdateÚstrÚlenr¾���Úbase64Úurlsafe_b64encodeÚrstripÚdecodeÚgetÚstatus_coderÇ���ÚmessageÚ from_wirerÌ���rÍ���ÚelapsedÚ total_secondsr ���Úis_responserw���)rº���r«���r���r:���rA���r¬���r»���r¼���r½���rH���r¾���r$���r¿���r"���r%���Úwirer@���r=���Ú the_sourcerÅ���rÆ���Úurlr;���r#���ÚcmÚresponseÚtwireÚrs��� r���Úhttpsrì���f��sz��€�õH�܈ٔz '¬5¯<©<Ô8ÜÐDÓEÐEà9‰9‹;€DÜ1Ø ˆtV˜[¨%óÑ€RˆˆJð�€IØÐ2Ð3€GØ €~œ#Ÿ(™(×-Ñ-¨eÔ4Ø ”—‘ÒØ#×*Ñ*¨5°$¸Ó=‰CØ ”6—?‘?Ò "Ø%×,Ñ,¨U°D¸$Ó?‰Càˆð�Ð؈ ؉ à" 1™ ˆ Ø ‘]ˆ ÜØ#ØØØØØ+ØØô €Iñ�Ü0:×0FÑ0FÀwÓ0O‰ä \‰\ ¨D¸È9Ô UˆØ ð�ˆwñ�ØN‰Nà$=Ü&)¬#¨d«)£nñô ð�—|‘| C°À$ÐPW|ÓX‰Hä×+Ñ+¨DÓ1×8Ñ8¸Ó>ˆDØ—K‘K“MˆEØ—{‘{ؘW¨g¸uÀe¸nð�#ó�ˆH÷ð(�×јcÒ! X×%9Ñ%9¸CÒ%?Üð "ß"(¡&¨°×0DÑ0DÀh×FVÑFVÓ"Wó ð� ô� ‰×ÑØ×ÑØ— ‘ Ø—M‘MØ)Ø'ð� ó� €Að�× Ñ × +Ñ +Ó -€A„FØ=‰=˜ÔÜÐØ€H÷Gð�ús ���Ä%B I?É?Jc�����������������ó`���—� � �|�j������������������|«������S�#�t��������$�r�t��������|�|«�������Y�nw�xY�wŒ.)z‹Reads a datagram from the socket. A Timeout exception will be raised if the operation is not completed by the expiration time. )ÚrecvfromÚBlockingIOErrorr–���)rB���Úmax_sizer���s��� r���Ú _udp_recvrñ���ú��s9���€�ð �ð 1Ø—=‘= Ó*Ð*øÜò� 1ܘt ZÖ0ð 1úð�s���ƒ�”,«,c�����������������óˆ���—� � �|r|�j������������������||«������S�|�j������������������|«������S�#�t��������$�r�t��������|�|«�������Y�nw�xY�wŒB)z¦Sends the specified datagram to destination over the socket. A Timeout exception will be raised if the operation is not completed by the expiration time. )ÚsendtoÚsendrï���r˜���)rB���Údatar¥���r���s��� r���Ú _udp_sendrö�����sL���€�ð �ð 1ÙØ—{‘{ 4¨Ó5Ð5à—y‘y “Ð&øÜò� 1ܘt ZÖ0ð 1úð �s���ƒ(�—(�¨A�¿A�rB���Úwhatr¥���r���c�����������������ó¶���—�t��������|t��������j������������������j������������������«������r|j ������������������«�������}t��������j ������������������«�������}t ��������|�|||«������}||fS�)aý��Send a DNS message to the specified UDP socket. *sock*, a ``socket``. *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. Returns an ``(int, float)`` tuple of bytes sent and the sent time. )r€���r���rà���ÚMessagerÑ���r ���rö���)rB���r÷���r¥���r���Ú sent_timeÚns��� r���Úsend_udprü�����sH���€�ô,�$œŸ™×+Ñ+Ô,Ø|‰|‹~ˆÜ— ‘ “€IÜ$˜˜k¨:Ó6€AØ ˆyˆ>Ðr���r¦���rÌ���rÍ���Úraise_on_truncationÚ ignore_errorsÚqueryc�����������������óÆ��—�d} �t��������|�d|«������\��}}t��������|�j������������������|||«������sŒ*t��������j������������������«�������} �t��������j ������������������j ������������������||||||¬«������}| r| | j������������������|«������sŒz|r|| fS�|| |fS�#�t��������j ������������������j������������������$�r.}| r&| $| j������������������|j������������������«�������«������sY�d}~ŒÊ‚�d}~wt��������$�r�| rY�ŒÛ‚�w�xY�w)a��Read a DNS message from a UDP socket. *sock*, a ``socket``. *destination*, a destination tuple appropriate for the address family of the socket, specifying where the message is expected to arrive from. When receiving a response, this would be where the associated query was sent. *expiration*, a ``float`` or ``None``, the absolute time at which a timeout exception should be raised. If ``None``, no timeout will occur. *ignore_unexpected*, a ``bool``. If ``True``, ignore responses from unexpected sources. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *keyring*, a ``dict``, the keyring to use for TSIG. *request_mac*, a ``bytes`` or ``None``, the MAC of the request (for TSIG). *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *raise_on_truncation*, a ``bool``. If ``True``, raise an exception if the TC bit is set. Raises if the message is malformed, if network errors occur, of if there is a timeout. If *destination* is not ``None``, returns a ``(dns.message.Message, float)`` tuple of the received message and the received time. If *destination* is ``None``, returns a ``(dns.message.Message, float, tuple)`` tuple of the received message, the received time, and the address where the message arrived from. *ignore_errors*, a ``bool``. If various format errors or response mismatches occur, ignore them and keep listening for a valid response. The default is ``False``. *query*, a ``dns.message.Message`` or ``None``. If not ``None`` and *ignore_errors* is ``True``, check that the received message is a response to this query, and if not keep listening for a valid response. r���éÿÿ��)rÌ���rÍ���r»���r¼���rý���N) rñ���r§���r%���r ���r���rà���rá���Ú Truncatedrä���r6���)rB���r¥���r���r¦���r»���rÌ���rÍ���r¼���rý���rþ���rÿ���rå���r¤���Ú received_timerë���Úes��� r���Úreceive_udpr��2��sý���€�ð|�€DØ Ü(¨¨u°jÓAшˆ|Ü#ØK‰K˜ {Ð4Eô ð� ÜŸ ™ ›ˆ ð Ü—‘×%Ñ%ØØØ'Ø!1Ø /Ø$7ð �&ó�ˆAñ6�˜UÐ.°u×7HÑ7HÈÔ7KØÙØ}Ð%Ð%à} lÐ3Ð3øô1�{‰{×$Ñ$ò� ñ�ØÐ%Ø×)Ñ)¨!¯)©)«+Ô6äàûÜò� ÙÙàð ús$���Á%B�ÂC Â%#Cà CÃC ÃC é5���c�����������������ó¼��—�|�j������������������«�������}t��������||||«������\��} }}t��������|«������\��}}| rt��������j������������������| «������}nt��������| t��������j������������������|«������}|5�}t��������||||«�������t��������||||||�j������������������|�j������������������|| ||�«������\��}}||z ��|_��������|s|�j������������������|«������st��������‚|cddd«�������S�#�1�sw�Y���nxY�w �J�‚)aý��Return the response obtained after sending a query via UDP. *q*, a ``dns.message.Message``, the query to send *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 53. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *ignore_unexpected*, a ``bool``. If ``True``, ignore responses from unexpected sources. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *raise_on_truncation*, a ``bool``. If ``True``, raise an exception if the TC bit is set. *sock*, a ``socket.socket``, 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 nonblocking datagram socket, and the *source* and *source_port* are ignored. *ignore_errors*, a ``bool``. If various format errors or response mismatches occur, ignore them and keep listening for a valid response. The default is ``False``. Returns a ``dns.message.Message``. N)rÑ���r¯���r)���rÕ���rÖ���r1���r2���Ú SOCK_DGRAMrü���r��rÌ���Úmacr ���rä���rw���)rº���r«���r���r:���rA���r¬���r¦���r»���r¼���rý���rB���rþ���rå���r@���r¥���Ú begin_timer���rè���r•���rë���r��s��� r���Úudpr��œ��sö���€�ðp� 9‰9‹;€DÜ 7Ø ˆtV˜[ó!Ñ€Rˆfô� .¨gÓ6Ñ€ZÙÜ0:×0FÑ0FÀtÓ0L‰ä ˜"œf×/Ñ/°Ó 8ˆØ ð�ˆqÜD˜+ zÔ2Ü(Ø ØØØØØ I‰IØ E‰EØØØØ ó шˆMð� Ñ+ˆŒñ� §¡¨qÔ!1ÜÐØ÷)÷�ò�úð,� ðØ s ���Á&ACÃCÚudp_sockÚtcp_sockc�����������������ó¬���—� �t��������|�||||||||d| |«������}|dfS�#�t��������j������������������j������������������$�r�t ��������|�|||||||| « ������}|dfcY�S�w�xY�w)a|��Return the response to the query, trying UDP first and falling back to TCP if UDP results in a truncated response. *q*, a ``dns.message.Message``, the query to send *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 53. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *ignore_unexpected*, a ``bool``. If ``True``, ignore responses from unexpected sources. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *udp_sock*, a ``socket.socket``, 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, it must be a nonblocking datagram socket, and the *source* and *source_port* are ignored for the UDP query. *tcp_sock*, a ``socket.socket``, or ``None``, the connected socket to use for the TCP query. If ``None``, the default, a socket is created. Note that if a socket is provided, it must be a nonblocking connected stream socket, and *where*, *source* and *source_port* are ignored for the TCP query. *ignore_errors*, a ``bool``. If various format errors or response mismatches occur while listening for UDP, ignore them and keep listening for a valid response. The default is ``False``. Returns a (``dns.message.Message``, tcp) tuple where tcp is ``True`` if and only if TCP was used. TF)r��r���rà���r��Útcp) rº���r«���r���r:���rA���r¬���r¦���r»���r¼���r��r ��rþ���ré���s ��� r���Úudp_with_fallbackr��÷��sŽ���€�ðr ÜØ ØØØØØØØØØØØó ˆð�˜%Ð Ð øÜ;‰;× Ñ ò� ÜØ ØØØØØØØØó ˆð�˜$ÐÒð ús���‚�œ4AÁAc�����������������ó��—�d}|dkD��r6 �|�j������������������|«������}|dk(��rt��������‚|t��������|«������z��}||z ��}|dkD��rŒ6|S�#�t��������t��������j ������������������f$�r�t ��������|�|«�������Y�Œ/t��������j������������������$�r�t��������|�|«�������Y�ŒOw�xY�w)zßRead the specified number of bytes from sock. Keep trying until we either get the desired amount, or we hit EOF. A Timeout exception will be raised if the operation is not completed by the expiration time. r���r���) ÚrecvÚEOFErrorrÙ���rï���r^���ÚSSLWantReadErrorr–���ÚSSLWantWriteErrorr˜���)rB���Úcountr���r•���rû���s��� r���Ú _net_readr��O��s“���€�ð� €AØ !Š)ð 1Ø— ‘ ˜%Ó ˆAØCŠxÜØ”S˜“V‰OˆEØ ‰FˆAð �!‹)ð� €Høô � ¤×!5Ñ!5Ð6ò� 1ܘt ZÖ0Ü×$Ñ$ò� 1ܘt ZÖ0ð 1ús���‰/A��Á�%BÁ'BÂBc�����������������óü���—�d}t��������|«������}||k��r �||�j������������������||d�«������z ��}||k��rŒyy#�t��������t��������j������������������f$�r�t��������|�|«�������Y�Œ/t��������j������������������$�r�t��������|�|«�������Y�ŒOw�xY�w)z‘Write the specified data to the socket. A Timeout exception will be raised if the operation is not completed by the expiration time. r���N)rÙ���rô���rï���r^���r��r˜���r��r–���)rB���rõ���r���ÚcurrentÚls��� r���Ú _net_writer��d��s~���€�ð �€G܈D‹ €AØ AŠ+ð 1Øt—y‘y g h Ó0Ñ0ˆGð�A+øô� ¤×!6Ñ!6Ð7ò� 1ܘt ZÖ0Ü×#Ñ#ò� 1ܘt ZÖ0ð 1ús���”3�³%A;ÁA;Á:A;c�����������������ó��—�t��������|t��������j������������������j������������������«������r|j ������������������d¬«������}nt��������|«������j ������������������dd«������|z���}t��������j������������������«�������}t��������|�||«�������t��������|«������|fS�)a{��Send a DNS message to the specified TCP socket. *sock*, a ``socket``. *what*, a ``bytes`` or ``dns.message.Message``, the message to send. *expiration*, a ``float`` or ``None``, the absolute time at which a timeout exception should be raised. If ``None``, no timeout will occur. Returns an ``(int, float)`` tuple of bytes sent and the sent time. T)Úprepend_lengthé���Úbig) r€���r���rà���rù���rÑ���rÙ���Úto_bytesr ���r��)rB���r÷���r���Útcpmsgrú���s��� r���Úsend_tcpr"��t��sk���€�ô$�$œŸ™×+Ñ+Ô,Ø—‘¨TÓ2‰ô �T“×#Ñ# A uÓ-°Ñ4ˆÜ— ‘ “€I܈tV˜ZÔ(Ü‹K˜Ð#Ð#r���c�����������������óÞ���—�t��������|�d|«������}t��������j������������������d|«������\��}t��������|�||«������}t��������j������������������«�������} t��������j ������������������j ������������������|||||¬«������} | | fS�)aó��Read a DNS message from a TCP socket. *sock*, a ``socket``. *expiration*, a ``float`` or ``None``, the absolute time at which a timeout exception should be raised. If ``None``, no timeout will occur. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *keyring*, a ``dict``, the keyring to use for TSIG. *request_mac*, a ``bytes`` or ``None``, the MAC of the request (for TSIG). *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. Raises if the message is malformed, if network errors occur, of if there is a timeout. Returns a ``(dns.message.Message, float)`` tuple of the received message and the received time. r��ú!HrË���)r��ÚstructÚunpackr ���r���rà���rá���)rB���r���r»���rÌ���rÍ���r¼���Úldatar��rå���r��rë���s��� r���Úreceive_tcpr(��’��ss���€�ôB� d˜A˜zÓ*€EÜ=‰=˜˜uÓ%D€QÜT˜1˜jÓ)€DÜ—I‘I“K€M܉×ÑØØØØ)Ø'ð� ó� €Að� ˆ}ÐÐr���c�����������������óP��—�|�j������������������|«������}|dk(��ry�|t��������j������������������t��������j������������������t��������j������������������fv�r:t��������|�|«�������|�j ������������������t��������j������������������t��������j������������������«������}|dk7��rt��������|t��������j������������������|«������«������‚y�rR���) Ú connect_exÚerrnoÚEINPROGRESSÚEWOULDBLOCKÚEALREADYr˜���Ú getsockoptr2���Ú SOL_SOCKETÚSO_ERRORÚOSErrorÚosÚstrerror)r•���r?���r���Úerrs��� r���r4���r4���Á��s���€�Ø ,‰,wÓ €CØ ˆa‚xØØ Œu× Ñ ¤%×"3Ñ"3´U·^±^ÐDÑDܘ1˜jÔ)Øl‰lœ6×,Ñ,¬f¯o©oÓ>ˆØ ˆa‚xÜcœ2Ÿ;™; sÓ+Ó,Ð,ð�r���c ����������� ������óÊ��—�|�j������������������«�������} t��������|«������\��} }|rt��������j������������������|«������}n-t ��������||||«������\��} }}t��������| t��������j������������������|«������}|5�}|s t��������||«�������t��������|| |«�������t��������||||�j������������������|�j������������������|«������\��}}|| z ��|_ ��������|�j������������������|«������st��������‚|cddd«�������S�#�1�sw�Y���nxY�w �J�‚)a¥��Return the response obtained after sending a query via TCP. *q*, a ``dns.message.Message``, the query to send *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 53. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *sock*, a ``socket.socket``, or ``None``, the connected 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 nonblocking connected stream socket, and *where*, *port*, *source* and *source_port* are ignored. Returns a ``dns.message.Message``. N)rÑ���r)���rÕ���rÖ���r¯���r1���r2���r3���r4���r"��r(��rÌ���r ��r ���rä���rw���)rº���r«���r���r:���rA���r¬���r»���r¼���rB���rå���r ��r���rè���r@���r¥���r•���rë���r��s��� r���r��r��Ì��sì���€�ðV� 9‰9‹;€DÜ-¨gÓ6Ñ€ZÙÜ0:×0FÑ0FÀtÓ0L‰ä$;Ø4˜ ó% Ñ!ˆˆ[˜&ô�˜"œf×0Ñ0°&Ó 9ˆØ ð� ˆqÙÜQ˜ ZÔ0ÜD˜*Ô%Ü(Ø ˆzÐ+¨Q¯Y©Y¸¿¹¸ó шˆMð� Ñ+ˆŒØ}‰}˜QÔÜÐØ÷ ÷� ò� úð� ðØ s ���Á&A&CÃCc�����������������ó´���—� � �|�j������������������«��������y�#�t��������j������������������$�r�t��������|�|«�������Y�n$t��������j������������������$�r�t��������|�|«�������Y�nw�xY�wŒXr���)Údo_handshaker^���r��r–���r��r˜���r”���s��� r���Ú_tls_handshaker9����sS���€�Ø ð .Ø N‰NÔØøÜ×#Ñ#ò� .ܘq *Ö-Ü×$Ñ$ò� .ܘq *Ö-ð .úð �s���ƒ�”AµAÁAr²���c�����������������ó ��—�d�}d�}t��������|t��������«������rOt��������j������������������j ������������������|«������r|}n-t��������j������������������j������������������|«������r|}nt ��������d«������‚t��������j������������������||¬«������}t��������j������������������j������������������|_��������|�€d|_��������|j������������������dg«�������|du�rt��������j������������������|_��������|S�)Nzinvalid verify string)ÚcafileÚcapathFÚdot)r€���rØ���r3��rH���ÚisfileÚisdirr©���r^���ro���Ú TLSVersionÚTLSv1_2Úminimum_versionÚcheck_hostnameÚset_alpn_protocolsrp���Úverify_mode)r²���r¿���r;��r<��r¹���s��� r���Ú_make_dot_ssl_contextrF����s©���€�ð�!€FØ €FÜ&œ#ÔÜ 7‰7>‰>˜&Ô!؉FÜ W‰W]‰]˜6Ô "؉FäÐ4Ó5Ð5Ü×,Ñ,°FÀ6ÔJ€KÜ"%§.¡.×"8Ñ"8€KÔØÐØ%*ˆÔ"Ø×"Ñ" E 7Ô+Ø Ü"%§-¡-ˆÔØÐr���r¹���c�����������������óú��—�|rt��������|�||||||||« ������S�|�j������������������«�������}t��������|«������\��} }t��������||||«������\��}}}| €|st ��������| |«������} t��������|t��������j������������������|| | ¬«������5�}t��������|||«�������t��������||«�������t��������|||«�������t��������||||�j������������������|�j������������������|«������\��}}|| z ��|_��������|�j������������������|«������st ��������‚|cddd«�������S�#�1�sw�Y���nxY�w �J�‚)ak��Return the response obtained after sending a query via TLS. *q*, a ``dns.message.Message``, the query to send *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 853. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *sock*, an ``ssl.SSLSocket``, 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 nonblocking connected SSL stream socket, and *where*, *port*, *source*, *source_port*, and *ssl_context* are ignored. *ssl_context*, an ``ssl.SSLContext``, the context to use when establishing a TLS connection. If ``None``, the default, creates one with the default configuration. *server_hostname*, a ``str`` containing the server's hostname. The default is ``None``, which means that no hostname is known, and if an SSL context is created, hostname checking will be disabled. *verify*, a ``bool`` or ``str``. If a ``True``, then TLS certificate verification of the server is done using the default CA bundle; if ``False``, then no verification is done; if a `str` then it specifies the path to a certificate file or directory which will be used for verification. Returns a ``dns.message.Message``. N)r¹���r²���)r��rÑ���r)���r¯���rF��r1���r2���r3���r4���r9��r"��r(��rÌ���r ��r ���rä���rw���)rº���r«���r���r:���rA���r¬���r»���r¼���rB���r¹���r²���r¿���rå���r ��r���r@���r¥���r•���rë���r��s��� r���ÚtlsrH��1��s,��€�ñz�ô�Ø ØØØØØØØØó ð� ð� 9‰9‹;€DÜ-¨gÓ6Ñ€ZÜ 7Ø ˆtV˜[ó!Ñ€Rˆfð�С4Ü+¨O¸VÓDˆä Ø Ü×ÑØØØ'ô ð�ð� ÜK Ô,Üq˜*Ô%ÜD˜*Ô%Ü(Ø ˆzÐ+¨Q¯Y©Y¸¿¹¸ó шˆMð� Ñ+ˆŒØ}‰}˜QÔÜÐØ÷!÷�ò�úð$� ðØ s ���Á4A0C.Ã.C7Ú connectionc�����������������ó���—�t���������j������������������j������������������st��������d«������‚d|�_��������|�j������������������«�������}|rt ��������j������������������d«������}|} n#t���������j������������������j������������������| | ¬«������}|}|5��|sj������������������||||«������} t��������|«������\��}} j������������������|«������5�}|j������������������|d«�������|j������������������t��������|«������«������}ddd«�������t��������j������������������«�������}ddd«�������t���������j ������������������j#������������������||�j$������������������|�j&������������������||¬«������}t)��������z ��d«������|_��������|�j+������������������|«������st,��������‚|S�#�1�sw�Y���ŒŠxY�w#�1�sw�Y���ŒzxY�w)aÎ��Return the response obtained after sending a query via DNS-over-QUIC. *q*, a ``dns.message.Message``, the query to send. *where*, a ``str``, the nameserver IP address. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, a ``int``, the port to send the query to. The default is 853. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *connection*, a ``dns.quic.SyncQuicConnection``. If provided, the connection to use to send the query. *verify*, a ``bool`` or ``str``. If a ``True``, then TLS certificate verification of the server is done using the default CA bundle; if ``False``, then no verification is done; if a `str` then it specifies the path to a certificate file or directory which will be used for verification. *server_hostname*, a ``str`` containing the server's hostname. The default is ``None``, which means that no hostname is known, and if an SSL context is created, hostname checking will be disabled. Returns a ``dns.message.Message``. zDNS-over-QUIC is not available.r���N)rE��Úserver_nameTrË���r ���)r���ÚquicÚ have_quicr|���ÚidrÑ���rÕ���rÖ���ÚSyncQuicManagerÚconnectr)���Úmake_streamrô���Úreceiver���r ���rà���rá���rÌ���rÍ���Úmaxrä���rw���)rº���r«���r���r:���rA���r¬���r»���r¼���rI��r¿���r²���rå���ÚmanagerÚthe_connectionÚthe_managerÚstartr���ÚstreamÚfinishrë���s��� r���rL��rL��œ��s_��€�ôd�8‰8×ÒÜÐ5Ó6Ð6à€A„DØ9‰9‹;€Dñ�Ü5?×5KÑ5KÈDÓ5QˆØ#‰ä—(‘(×*Ñ*بOð�+ó� ˆð�ˆà ñ�ÙØ(×0Ñ0°¸¸fÀkÓRˆNÜ,¨WÓ5ш Ø × 'Ñ '¨Ó 0ð� :°FØK‰K˜˜dÔ#Ø—>‘>¤*¨ZÓ"8Ó9ˆD÷ :ô�—‘“ˆ÷ô� ‰×ÑØØ— ‘ Ø—M‘MØ)Ø'ð� ó� €Aô�˜%‘ Ó %€A„FØ=‰=˜ÔÜÐØ€H÷ :ð� :ú÷ ð�ús$���Á<6E4Â2-E(ÃE4Å(E1 Å-E4Å4E=ÚzoneÚrdtypeÚrdclassÚkeynameÚ relativizer(���ÚserialÚuse_udpÚkeyalgorithmc��������������#���óî ��K��—�t��������|t��������«������rt��������j������������������j ������������������|«������}t��������j ������������������j������������������j������������������|«������}t��������j������������������j������������������|||«������}|t��������j ������������������j������������������k(��rAt��������j������������������j ������������������|dddd|z��«������}|j������������������j������������������|«�������||j������������������|||¬«�������|j������������������«�������}t!��������|�|| |«������\��}}} | r(|t��������j ������������������j������������������k7��rt#��������d«������‚| rt$��������j&������������������nt$��������j(������������������}t+��������||| «������5�}t-��������| «������\��}}t/��������|||«�������t1��������|«������}| rt3��������||d|«�������n&t5��������j6������������������d|«������|z���}t9��������|||«�������d }d }d }d}|r|}t��������j������������������j:������������������}nd}|}d} |sgt-��������|«������\��}}!|!||!|kD��r|}!| rt=��������|d|!«������\��}}n2t?��������|d|!«������}"t5��������j@������������������d|"«������\��}t?��������|||!«������}|t��������j ������������������j������������������k(��}#t��������j������������������jC������������������||jD������������������|jF������������������d || d |#¬ «������}$|$jI������������������«�������}%|%t��������jH������������������jJ������������������k7��rtM��������|%«������‚|$jN������������������} d}&|€ÿ|$jP������������������r|$jP������������������d���j������������������|k7��rt��������jR������������������jU������������������d«������‚|$jP������������������d���}|jV������������������t��������j ������������������jX������������������k7��rt��������jR������������������jU������������������d«������‚d}&|j[������������������«�������}|t��������j ������������������j������������������k(��r4t��������j\������������������j_������������������|d���j\������������������«������|k��rd }nd }|$jP������������������|&d�D�]��}|rt��������jR������������������jU������������������d«������‚|jV������������������t��������j ������������������jX������������������k(��r¬|j������������������|k(��r|r4|d���j\������������������|k7��rt��������jR������������������jU������������������d«������‚d }n |t��������j ������������������j������������������k(��r|�}||k(��sŒ·|t��������j ������������������j`������������������k(��s!|t��������j ������������������j������������������k(��sŒò|sŒõd }Œø|sŒût��������j ������������������j`������������������}d }Œ�|r7|jD������������������r+|$jb������������������st��������jR������������������jU������������������d«������‚|$–—�|sŒgddd«�������y#�1�sw�Y���yxY�ww)a³��Return a generator for the responses to a zone transfer. *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *zone*, a ``dns.name.Name`` or ``str``, the name of the zone to transfer. *rdtype*, an ``int`` or ``str``, the type of zone transfer. The default is ``dns.rdatatype.AXFR``. ``dns.rdatatype.IXFR`` can be used to do an incremental transfer instead. *rdclass*, an ``int`` or ``str``, the class of the zone transfer. The default is ``dns.rdataclass.IN``. *timeout*, a ``float``, the number of seconds to wait for each response message. If None, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 53. *keyring*, a ``dict``, the keyring to use for TSIG. *keyname*, a ``dns.name.Name`` or ``str``, the name of the TSIG key to use. *relativize*, a ``bool``. If ``True``, all names in the zone will be relativized to the zone origin. It is essential that the relativize setting matches the one specified to ``dns.zone.from_xfr()`` if using this generator to make a zone. *lifetime*, a ``float``, the total number of seconds to spend doing the transfer. If ``None``, the default, then there is no limit on the time the transfer may take. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *serial*, an ``int``, the SOA serial number to use as the base for an IXFR diff sequence (only meaningful if *rdtype* is ``dns.rdatatype.IXFR``). *use_udp*, a ``bool``. If ``True``, use UDP (only meaningful for IXFR). *keyalgorithm*, a ``dns.name.Name`` or ``str``, the TSIG algorithm to use. Raises on errors, and so does the generator. Returns a generator of ``dns.message.Message`` objects. r���ÚINÚSOAz. . %u 0 0 0 0N)Ú algorithmzcannot do a UDP AXFRr$��FTr��r��©rÌ���rÍ���ÚxfrÚoriginÚtsig_ctxÚmultir»���z No answer or RRset not for qnamezfirst RRset is not an SOArš���zanswers after final SOAzIXFR base serial mismatchúmissing TSIG)2r€���rØ���r���ÚnameÚ from_textÚ rdatatypeÚ RdataTypeÚmakerà���Ú make_queryÚIXFRÚrrsetÚ authorityr,���Úuse_tsigrÑ���r¯���r©���r2���r��r3���r1���r)���r4���rÙ���rö���r%��Úpackr��Úemptyrñ���r��r&��rá���rÌ���r ��ÚrcodeÚNOERRORÚ TransferErrorri��Úanswerr���Ú FormErrorr[��rd��Úcopyr_��ÚSerialÚAXFRÚhad_tsig)'r«���rZ��r[��r\��r���r:���rÌ���r]��r^��r(���rA���r¬���r_��r`��ra��rº���rs��rå���r@���r¥���Ú sock_typer•���r=���r���r��r!��ÚdoneÚdelete_modeÚ expecting_SOAÚ soa_rrsetrh��Úonameri��Úmexpirationr'��Úis_ixfrrë���rx��Úanswer_indexs'��� r���rg��rg��ó��s��è�ø€�ôJ�$œÔÜx‰x×!Ñ! $Ó'ˆÜ ]‰]× $Ñ $× )Ñ )¨&Ó 1€F܉×јt V¨WÓ5€AØ ”—‘×#Ñ#Ò#Ü— ‘ ×#Ñ# D¨!¨T°5Ð:JÈVÑ:SÓTˆØ ‰×ј5Ô!ØÐØ ‰ 7˜G¨|ˆ Ô<Ø9‰9‹;€DÜ 7Ø ˆtV˜[ó!Ñ€Rˆfñ�6œSŸ]™]×/Ñ/Ò/ÜÐ/Ó0Ð0Ù%,”×!Ò!´&×2DÑ2D€IÜ b˜) VÓ ,ð�b°Ü(¨Ó2‰ˆˆJÜK Ô,Ü‹IˆÙÜa˜˜t ZÕ0ä—[‘[ qÓ)¨DÑ0ˆFÜq˜& *Ô-؈؈؈ ؈ Ù؈FÜ—H‘H—N‘N‰EàˆF؈E؈ÚÜ-¨gÓ6шQØÐ"ØÐ&¨;¸Ò+Cà(ÙÜ% a¨°Ó<‘ ‘qä! ! Q¨Ó4Ü—}‘} T¨5Ó1‘Ü A {Ó3ؤ§ ¡ × 2Ñ 2Ñ2ˆGÜ—‘×%Ñ%ØØŸ ™ ØŸE™EØØØ!ØØ!(ð�&ó� ˆAð�—G‘G“IˆEØœŸ ™ ×)Ñ)Ò)Ü# EÓ*Ð*Ø—z‘zˆH؈LØÐ Ø—x’x 1§8¡8¨A¡;×#3Ñ#3°uÒ#<ÜŸ-™-×1Ñ1Ð2TÓUÐUØŸ™ ™Ø—<‘<¤3§=¡=×#4Ñ#4Ò4ÜŸ-™-×1Ñ1Ð2MÓNÐNØ Ø!ŸJ™J›L ØœSŸ]™]×/Ñ/Ò/Ü—z‘z×(Ñ(¨°1©×)<Ñ)<Ó=ÀÒGð� $™à(,˜ ð �Ÿ™ , -Ô0ÙÜŸ-™-×1Ñ1Ð2KÓLÐLØ—<‘<¤3§=¡=×#4Ñ#4Ò4¸¿¹ÀuÒ9LÙ$Ø ™8Ÿ?™?¨fÒ4Ü"%§-¡-×"9Ñ"9Ð:UÓ"VÐVØ(-™ ؤ3§=¡=×#5Ñ#5Ò5Ø*5 o˜ð� Ó)ؤ#§-¡-×"4Ñ"4Ò4Ø"¤c§m¡m×&8Ñ&8Ó8º[à#™Ú"ô�!Ÿ]™]×/Ñ/FØ$)’Mð7�1ñ8�˜Ÿ š ¨!¯*ª*Ü—m‘m×-Ñ-¨nÓ=Ð=ØŠGó]�÷)b÷�bñ�büs8���‚E)U5Å+MU)Ò<:U)Ó7U)Ó:U)Ô�AU)Õ U5Õ)U2Õ.U5c�������������������ó���—�e�Zd�ZdZdZdZdZy)ÚUDPModea��How should UDP be used in an IXFR from :py:func:`inbound_xfr()`? NEVER means "never use UDP; always use TCP" TRY_FIRST means "try to use UDP but fall back to TCP if needed" ONLY means "raise ``dns.xfr.UseTCP`` if trying UDP does not succeed" r���rš���r��N)rJ���rK���rL���ru���ÚNEVERÚ TRY_FIRSTÚONLYr\���r���r���r‹��r‹����s���„�ñð� €EØ€IØDr���r‹��Útxn_managerÚudp_modec �����������������óä��—�|€#t���������j������������������j������������������|«������\��}} nt���������j������������������j������������������|«������} |j������������������d���j ������������������} | t���������j������������������j������������������k(��}|j������������������«�������}|j������������������«�������} t��������|�|||«������\��}}}t��������|«������\��}}d}|rÉd}|r&|t��������j������������������k7��rt��������j������������������}d}nt��������j ������������������}d}t#��������|||«������5�}t%��������|||«�������|rt'��������|| d|«�������n/t)��������j*������������������dt-��������| «������«������| z���}t/��������|||«�������t���������j������������������j1������������������|| | |«������5�}d}d}|s»t��������|«������\��}}||||kD��r|}|rt3��������|d|«������\��}}n2t5��������|d|«������}t)��������j6������������������d|«������\��}t5��������|||«������}t���������j8������������������j;������������������||j<������������������|j>������������������d|||�|¬«������} �|jA������������������|«������}|jF������������������}|sŒ»|s7|j<������������������r+jH������������������st���������jJ������������������jM������������������d «������‚ddd«�������ddd«�������|rŒÈyy#�t���������j������������������jB������������������$�r0�|sJ�‚|t��������jD������������������k(��r‚�d}d}t��������j������������������}Y�ŒXw�xY�w#�1�sw�Y���ŒgxY�w#�1�sw�Y���ŒkxY�w) aŸ��Conduct an inbound transfer and apply it via a transaction from the txn_manager. *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *txn_manager*, a ``dns.transaction.TransactionManager``, the txn_manager for this transfer (typically a ``dns.zone.Zone``). *query*, the query to send. If not supplied, a default query is constructed using information from the *txn_manager*. *port*, an ``int``, the port send the message to. The default is 53. *timeout*, a ``float``, the number of seconds to wait for each response message. If None, the default, wait forever. *lifetime*, a ``float``, the total number of seconds to spend doing the transfer. If ``None``, the default, then there is no limit on the time the transfer may take. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *udp_mode*, a ``dns.query.UDPMode``, determines how UDP is used for IXFRs. The default is ``dns.UDPMode.NEVER``, i.e. only use TCP. Other possibilities are ``dns.UDPMode.TRY_FIRST``, which means "try UDP but fallback to TCP if needed", and ``dns.UDPMode.ONLY``, which means "try UDP and raise ``dns.xfr.UseTCP`` if it does not succeed. Raises on errors. Nr���TFr$��r��r��rf��rk��)'r���rg��rq��Úextract_serial_from_queryÚquestionr[��rn��rr��Úfrom_wire_originrÑ���r¯���r)���r‹��rŒ��r2���r��r3���r1���r4���rö���r%��rv��rÙ���r��ÚInboundrñ���r��r&��rà���rá���rÌ���r ��Úprocess_messageÚUseTCPrŽ��ri��r€��r���r|��)r«���r��rÿ���r:���r���r(���rA���r¬���r��r_��r[��rˆ��rh��rå���r@���r¥���r=���r���Úretryr��Úis_udpr•���r!��Úinboundr‚��ri��r‡��Úrwirer'��r��rë���s��� r���Úinbound_xfrrœ��º��sÁ��€�ð^� €}ÜŸ'™'×,Ñ,¨[Ó9‰ˆ‘ä—‘×2Ñ2°5Ó9ˆØ ^‰^˜AÑ × %Ñ %€FØœŸ ™ ×*Ñ*Ñ*€GØ × )Ñ )Ó +€FØ=‰=‹?€DÜ 7Ø ˆtV˜[ó!Ñ€Rˆfô�% XÓ.O€Qˆ Ø€EÚ ØˆÙx¤7§=¡=Ò0Ü×)Ñ)ˆI؉Fä×*Ñ*ˆI؈FÜ ˜"˜i¨Ó 0ð�, B°AÜQ˜ ZÔ0Ùܘ!˜T 4¨Õ4䟙 T¬3¨t«9Ó5¸Ñ<ܘ1˜f jÔ1Ü—‘—‘ ¨f°f¸fÓEð�% BÈØØÙÜ'5°gÓ'>Ñ$Q˜Ø"Ð*Ø"Ð.°;ÀÒ3Kà&0˜ÙÜ%.¨q°%¸Ó%E™ ˜¡ä )¨!¨Q°Ó <˜Ü%Ÿ}™}¨T°5Ó9™˜Ü )¨!¨Q°Ó <˜ÜŸ™×-Ñ-ØØ %§ ¡ Ø$)§I¡IØ Ø%Ø!)Ø#)˜zØ)0ð�.ó� Að !Ø&×6Ñ6°qÓ9˜ð� !Ÿz™zHòA�ñB� §¢°q·z²zÜŸ-™-×1Ñ1°.ÓAÐA÷K% B÷, Bõ�øôT�Ÿ7™7Ÿ>™>ò�!Ù%˜ ˜vØ#¤w§|¡|Ò3Ø!Ø#˜Ø $˜Ü#*§=¡=˜Ú ð!ú÷7% Bð�% Bú÷, Bð�, BúsQ���Ä A0K&Å9B!KÈJ È,KÈ;9KÉ4K&Ê A KËKËKËKËK# ËK&Ë&K/)T)NNr���) NNFFNr���FFFN) Nr��Nr���FFFFNF) Nr��Nr���FFFNNF)NFNr���F)Nr��Nr���FFN) NéU��Nr���FFNNNT) Nr��Nr���FFNTN)wru���rÚ���rÕ���Úenumr+��r3��Úos.pathrƒ���r2���r%��r ���Útypingr���r���r���r���r���Ú dns._featuresr���Ú dns.exceptionÚdns.inetÚdns.messageÚdns.nameÚdns.quicÚ dns.rcodeÚdns.rdataclassÚ dns.rdatatypeÚ dns.serialÚdns.transactionÚdns.tsigÚdns.xfrr���r���Ú _featuresÚhaveÚ_have_httpxÚhttpcore._backends.syncr7���rÏ���ÚNetworkBackendÚ_CoreNetworkBackendÚ _backendsÚsyncÚ SyncStreamr5���r���Ú HTTPTransportrP���rÎ���r^���ÚImportErrorr³���r���ÚDNSExceptionrs���r|��rw���ry���r|���rg��rz��r)���r���r���Úhasattrr‘���r‚���ÚSelectSelectorr–���r˜���r¡���r§���r¯���r1���rY���rà���rù���rØ���ÚfloatÚintÚboolrì���rñ���rö���Úbytesrü���rl��ÚNameÚtsigÚKeyr��r��r��r��r��r"��r(��r4���r��r9��ri���rF��rl���rH��rL��ÚSyncQuicConnectionrn��r��Ú rdataclassrc��Údefault_algorithmro��Ú RdataClassÚIntEnumr‹��rŒ��ÚtransactionÚTransactionManagerrœ��r\���r���r���ú<module>rÊ�����s¿��ðñ$�ã� Û�Û�Û�Û� Û�Û�Û� Û� Û�ß�4Õ�4ã�Û�Û�Û�Û�Û�Û�Û�Û�Û�Û�Û�Û�òò2ð�m‰m× Ñ Ó'€ÙÛ"Ûà"×1Ñ1ÐØ×(Ñ(×-Ñ-×8Ñ8€Oô2&Ð-ô�2&ôh˜×,Ñ,õ�÷,&ñ�&ð �€ð.Ûð2�—‘€ôHs—}‘}×1Ñ1ô�HôG#—-‘-×)Ñ)ô�GôˆCM‰M×&Ñ&ô�ô ˆCM‰M×&Ñ&ô�ð�—‘×%Ñ%€ ò$ò$ò8%ñ�ˆ9nÔ%ð� ×,Ñ,Oà×.Ñ.€Oò0ò0ò )ò ð"�=Aó)%óXð.� $ØØ ØØ"Ø!Ø!ØØØ'+Ø#Ø26Ø"×,Ñ,ñQ Ø ‡{{×ÑðQ àðQ ð�e‰_ðQ ð�ð Q ð � S‰MðQ ð�ð Q ð�ðQ ð�ðQ ð�c‰]ðQ ð�ðQ ð�ðQ ð� ‘}ðQ ð� $˜)ÑðQ ð�Ð.Ñ/ðQ ð� S‰MðQ ð � ‡[[×Ñó!Q òh 1ò1ð&�#'ñ Ø ðà —‘×#Ñ# UÐ*Ñ +ðð�ðð�˜‘ð ð �ˆ3ˆ:Ñóð>�"&Ø"&Ø#Ø"Ø;?Ø#&Ø!Ø %ØØ+/ñg4Ø ðg4à˜#‘ðg4ð�˜‘ðg4ð�ð g4ð �ðg4ð�d˜3Ÿ8™8Ÿ=™=¨#¯(©(¯,©,Ð6Ñ7Ñ 8ð g4ð�˜%‘ðg4ð�ðg4ð�ðg4ð�ðg4ð�C—K‘K×'Ñ'Ñ(ðg4ð� óg4ðZ� $ØØ ØØ#Ø"Ø!Ø %ØØñXØ ‡{{×ÑðXàðXð�e‰_ðXð�ð Xð � S‰MðXð�ð Xð�ðXð�ðXð�ðXð�ðXð�3‰-ðXð�ðXð� ‡[[×ÑóXð|� $ØØ ØØ#Ø"Ø!Ø"Ø"ØñU Ø ‡{{×ÑðU àðU ð�e‰_ðU ð�ð U ð � S‰MðU ð�ð U ð�ðU ð�ðU ð�ðU ð�s‰mðU ð�s‰mðU ð�ðU ð�ˆ3;‰;×Ñ Ð$Ñ%óU òp ò* 1ð&�#'ñ$Ø ð$à —‘×#Ñ# UÐ*Ñ +ð$ð�˜‘ð$ð�ˆ3ˆ:Ñó $ð@�#'Ø"Ø;?Ø#&Ø!ñ ,Ø ð,à˜‘ð,ð�ð,ð�d˜3Ÿ8™8Ÿ=™=¨#¯(©(¯,©,Ð6Ñ7Ñ 8ð ,ð �˜%‘ð,ð�ð ,ð�ˆ3;‰;×Ñ Ð%Ñ&ó,ò^-ð� $ØØ ØØ"Ø!ØñAØ ‡{{×ÑðAàðAð�e‰_ðAð�ð Að � S‰MðAð�ð Að�ðAð�ðAð�3‰-ðAð� ‡[[×ÑóAòH.ðؘc‘]ðØ,1°$¸°)Ñ,<ðà‡^^óð2� $ØØ ØØ"Ø!Ø$(Ø,0Ø%)Ø#ñhØ ‡{{×Ñðhàðhð�e‰_ðhð�ð hð � S‰Mðhð�ð hð�ðhð�ðhð�3—=‘=Ñ !ðhð�˜#Ÿ.™.Ñ)ðhð�˜c‘]ðhð� $˜)Ñðhð� ‡[[×Ñóhð\� $ØØ ØØ"Ø!Ø8<Ø#Ø%)ñT Ø ‡{{×ÑðT àðT ð�e‰_ðT ð�ð T ð � S‰MðT ð�ð T ð�ðT ð�ðT ð�˜Ÿ™×4Ñ4Ñ5ðT ð� $˜)ÑðT ð�˜c‘]ðT ð� ‡[[×ÑóT ðt�36·-±-×2DÑ2DØ58·^±^×5FÑ5FØ#ØØ;?Ø37ØØ $Ø ØØØØ.1¯h©h×.HÑ.HñwØðwà —‘— ‘ ˜sÐ"Ñ #ðwð� #—-‘-×)Ñ)¨3Ð.Ñ/ðwð�3—>‘>×,Ñ,¨cÐ1Ñ 2ð wð �e‰_ðwð�ð wð�d˜3Ÿ8™8Ÿ=™=¨#¯(©(¯,©,Ð6Ñ7Ñ 8ðwð�e˜CŸH™HŸM™M¨3Ð.Ñ/Ñ 0ðwð�ðwð�u‰oðwð� S‰Mðwð�ðwð� ðwð�ðwð�˜Ÿ™Ÿ ™ sÐ*Ñ+ðwð � ó!wôt ˆdl‰lô� ð �,0ØØ#Ø $Ø ØØŸ ™ ñpBØðpBà—‘×3Ñ3ðpBð�C—K‘K×'Ñ'Ñ(ðpBð�ð pBð �e‰_ðpBð�u‰oð pBð� S‰MðpBð�ðpBð�ðpBð� ôpBøðC)�ò�.÷.ô�.ð.ús���Ã2]�Ý]"Ý!]"