ó
    0/¡jJ(  ã                   óÊ   • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	rS SK
rS SKrS SKrS SKrS SKJrJrJrJrJr   " S S\5      r " S S\5      r " S S\5      rg)	é    N)ÚQUIC_MAX_DATAGRAMÚAsyncQuicConnectionÚAsyncQuicManagerÚBaseQuicStreamÚUnexpectedEOFc                   óf   ^ • \ rS rSrU 4S jrS rS rS rSS jrSS jr	S r
S	 rS
 rS rSrU =r$ )ÚAsyncioQuicStreamé   c                 óX   >• [         TU ]  X5        [        R                  " 5       U l        g ©N)ÚsuperÚ__init__ÚasyncioÚ	ConditionÚ_wake_up)ÚselfÚ
connectionÚ	stream_idÚ	__class__s      €Új/var/www/html/health-monitoring.indevconsultancy.in/venv/lib/python3.13/site-packages/dns/quic/_asyncio.pyr   ÚAsyncioQuicStream.__init__   s    ø€ Ü‰Ñ˜Ô/Ü×)Ò)Ó+ˆ�ó    c              ƒ   óÚ   #   • U R                    IS h  v•N   U R                   R                  5       I S h  v•N   S S S 5      IS h  v•N   g  N7 N N	! , IS h  v•N  (       d  f       g = f7fr   )r   Úwait©r   s    r   Ú_wait_for_wake_upÚ#AsyncioQuicStream._wait_for_wake_up    s;   é € Ø—=—=“=Ø—-‘-×$Ñ$Ó&×&Ð&÷ !—=’=Ù&÷ !—=—=�=üsS   ‚A+“A”A+—AµA¶AºA+ÁAÁA+ÁAÁA+ÁA(ÁAÁA(Á$A+c              ƒ   ó>  #   •  U R                  U5      nU R                  R                  U5      (       a  g Xl         [        R
                  " U R                  5       U5      I S h  v•N   SU l        Mo   N! [         a    [        R                  R                  ef = f7f)Nr   )Ú_timeout_from_expirationÚ_bufferÚhaveÚ
_expectingr   Úwait_forr   ÚTimeoutErrorÚdnsÚ	exceptionÚTimeout)r   ÚamountÚ
expirationÚtimeouts       r   r#   ÚAsyncioQuicStream.wait_for$   s‹   é € ØØ×3Ñ3°JÓ?ˆGØ�|‰|× Ñ  ×(Ñ(ØØ$ŒOð,Ü×&Ò& t×'=Ñ'=Ó'?ÀÓI×IÐIð  ˆDŒOñ ñ JøÜó ,Ü—m‘m×+Ñ+Ð+ð,üs.   ‚:B½(A5 Á%A3Á&A5 Á*	BÁ3A5 Á5%BÂBc              ƒ   ó"  #   •  U R                  U5      nU R                  R                  5       (       a  g  [        R                  " U R                  5       U5      I S h  v•N   Ma   N! [         a    [        R                  R                  ef = f7fr   )
r   r    Úseen_endr   r#   r   r$   r%   r&   r'   )r   r)   r*   s      r   Úwait_for_endÚAsyncioQuicStream.wait_for_end0   s{   é € ØØ×3Ñ3°JÓ?ˆGØ�|‰|×$Ñ$×&Ñ&Øð,Ü×&Ò& t×'=Ñ'=Ó'?ÀÓI×IÐIñ ñ
 JøÜó ,Ü—m‘m×+Ñ+Ð+ð,üs.   ‚3B¶(A' ÁA%ÁA' Á#BÁ%A' Á'%BÂBc              ƒ   óÜ  #   • U R                  U5      nU R                  R                  5       (       a3  U R                  U5      I S h  v•N   U R                  R                  5       $ U R                  SU5      I S h  v•N   [        R                  " SU R                  R                  S5      5      u  nU R                  X25      I S h  v•N   U R                  R                  U5      $  Nž Nl N#7f)Né   z!H)
Ú_expiration_from_timeoutÚ_connectionÚis_h3r.   r    Úget_allr#   ÚstructÚunpackÚget)r   r*   r)   Úsizes       r   ÚreceiveÚAsyncioQuicStream.receive:   sº   é € Ø×2Ñ2°7Ó;ˆ
Ø×Ñ×!Ñ!×#Ñ#Ø×#Ñ# JÓ/×/Ð/Ø—<‘<×'Ñ'Ó)Ð)à—-‘-  :Ó.×.Ð.Ü—m’m D¨$¯,©,×*:Ñ*:¸1Ó*=Ó>‰GˆTØ—-‘- Ó1×1Ð1Ø—<‘<×#Ñ# DÓ)Ð)ñ 0ñ /á1ùs7   ‚AC,ÁC&Á3C,Á;C(Á<A
C,ÃC*Ã C,Ã(C,Ã*C,c              ƒ   óŽ   #   • U R                  U5      nU R                  R                  U R                  X25      I S h  v•N   g  N7fr   )Ú_encapsulater3   ÚwriteÚ
_stream_id)r   ÚdatagramÚis_endÚdatas       r   ÚsendÚAsyncioQuicStream.sendE   s5   é € Ø× Ñ  Ó*ˆØ×Ñ×$Ñ$ T§_¡_°dÓC×CÓCùs   ‚;A½A¾Ac              ƒ   óô   #   • U R                  X5      (       a@  U R                   IS h  v•N   U R                  R                  5         S S S 5      IS h  v•N   g g  N0 N! , IS h  v•N  (       d  f       g = f7fr   )Ú_common_add_inputr   Únotify)r   rB   rA   s      r   Ú
_add_inputÚAsyncioQuicStream._add_inputI   sF   é € Ø×!Ñ! $×/Ñ/Ø—}—}“}Ø—‘×$Ñ$Ô&÷ %—}�}ð 0ß$—}—}’}üsD   ‚'A8©AªA8­AÁA8ÁAÁA8ÁA8ÁA5Á$A'Á%A5Á1A8c              ƒ   ó,   #   • U R                  5         g 7fr   )Ú_closer   s    r   ÚcloseÚAsyncioQuicStream.closeN   s   é € Ø�‰�ùs   ‚c              ƒ   ó   #   • U $ 7fr   © r   s    r   Ú
__aenter__ÚAsyncioQuicStream.__aenter__S   ó
   é € Øˆùó   ‚c              ƒ   óú   #   • U R                  5       I S h  v•N   U R                   IS h  v•N   U R                  R                  5         S S S 5      IS h  v•N   g ND N1 N	! , IS h  v•N  (       d  f       g= f7f©NF)rL   r   rG   )r   Úexc_typeÚexc_valÚexc_tbs       r   Ú	__aexit__ÚAsyncioQuicStream.__aexit__V   sH   é € Ø�j‰j‹l×ÐØ—=—=“=Ø�M‰M× Ñ Ô"÷ !—=àñ 	ß —=—=‘=àüsT   ‚A;–A—A;«A¬A;¯A!Á
A;ÁAÁA;ÁA;ÁA;Á!A8Á'A*Á(A8Á4A;)r"   r   r   ©F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r#   r.   r:   rC   rH   rL   rP   rY   Ú__static_attributes__Ú__classcell__©r   s   @r   r	   r	      s;   ø† õ,ò'ò
 ò,ô	*ôDò'ò
ò
÷ð r   r	   c                   ój   ^ • \ rS rSrSU 4S jjrS rS rS rS rS r	SS jr
S	 rSS
 jrS rSrU =r$ )ÚAsyncioQuicConnectioné]   c                 óü   >• [         TU ]  XX4XV5        S U l        [        R                  " 5       U l        [        R                  " 5       U l        [        R                  " 5       U l        S U l	        S U l
        SU l        g rU   )r   r   Ú_socketr   ÚEventÚ_handshake_completeÚ_socket_createdr   Ú_wake_timerÚ_receiver_taskÚ_sender_taskÚ_wake_pending)r   r   ÚaddressÚportÚsourceÚsource_portÚmanagerr   s          €r   r   ÚAsyncioQuicConnection.__init__^   s`   ø€ Ü‰Ñ˜¨d¸KÔQØˆŒÜ#*§=¢=£?ˆÔ Ü&Ÿ}š}›ˆÔÜ"×,Ò,Ó.ˆÔØ"ˆÔØ ˆÔØ"ˆÕr   c           	   ƒ   ó®  #   •  [         R                  R                  U R                  5      n[         R                  R                  S5      nUR                  U[        R                  SU R                  U R                  S   U R                  S   45      I S h  v•N U l        U R                  R                  5         U R                   IS h  v•N   U R                  (       d²  U R                  R                  [         S 5      I S h  v•N u  p4US   U R                  S   :w  d  US   U R                  S   :w  a  Mi  U R"                  R%                  X4[&        R&                  " 5       5        U R)                  5       I S h  v•N   U R                  (       d  M²  S S S 5      IS h  v•N   SU l        U R)                  5       I S h  v•N   U R,                  R                  5         g  GNF GN NÞ Ni NH! , IS h  v•N  (       d  f       N]= f! [*         a     Nlf = f NU! SU l        U R)                  5       I S h  v•N    U R,                  R                  5         f = f7f)Nr   r   é   T)r%   ÚinetÚaf_for_addressÚ_addressÚasyncbackendÚget_backendÚmake_socketÚsocketÚ
SOCK_DGRAMÚ_sourceÚ_peerrg   rj   ÚsetÚ_doneÚrecvfromr   r3   Úreceive_datagramÚtimeÚ_wakeupÚ	Exceptionri   )r   ÚafÚbackendr@   ro   s        r   Ú	_receiverÚAsyncioQuicConnection._receiverh   s¹  é € ð	+Ü—‘×(Ñ(¨¯©Ó7ˆBÜ×&Ñ&×2Ñ2°9Ó=ˆGð ")×!4Ñ!4Ø”F×%Ñ% q¨$¯,©,¸¿¹ÀA¹ÈÏ
É
ÐSTÉÐ8Vó"÷ ˆDŒLð × Ñ ×$Ñ$Ô&Ø—|—|“|ØŸ*Ÿ*Ø04·±×0EÑ0EÜ)¨4ó1÷ +Ñ'�Xð ˜q‘z T§Z¡Z°¡]Ó2°g¸a±jÀDÇJÁJÈqÁMÓ6QÙ Ø×$Ñ$×5Ñ5°hÌÏÊËÔUð Ÿ,™,›.×(Ð(ð Ÿ*Ÿ*™*÷ $—|ð ˆDŒJØ—,‘,“.× Ð Ø×$Ñ$×(Ñ(Õ*ò)ò $ñ+ñ )÷ $—|—|�|ûô ó 	Ùð	úñ !øð ˆDŒJØ—,‘,“.× Ñ Ø×$Ñ$×(Ñ(Õ*üsÞ   ‚I„BH ÂGÂ3H ÃG!ÃH Ã5G*ÄG$ÄA6G*Å<G&Å=G*ÆH ÆG(Æ H Æ$IÆ>HÆ?IÇH Ç!H Ç$G*Ç&G*Ç(H Ç*HÇ0G3Ç1HÇ=H È H ÈH È
HÈH ÈHÈH ÈIÈIÈ1H4È2 IÉIc              ƒ   óÔ   #   • SU l         U R                   IS h  v•N   U R                  R                  5         S S S 5      IS h  v•N   g  N/ N! , IS h  v•N  (       d  f       g = f7f)NT)rn   rk   Ú
notify_allr   s    r   r†   ÚAsyncioQuicConnection._wakeup„   s?   é € Ø!ˆÔØ×#×#Ó#Ø×Ñ×'Ñ'Ô)÷ $×#×#×#×#Ó#üsC   ‚A(šA
›A(žA¹A(ÁAÁA(ÁA(ÁA%ÁAÁA%Á!A(c              ƒ   ó
  #   • U R                    IS h  v•N   U R                  (       d"  U R                   R                  5       I S h  v•N   S S S 5      IS h  v•N   SU l        g  NO N N! , IS h  v•N  (       d  f       N%= f7frU   )rk   rn   r   r   s    r   Ú_wait_for_wake_timerÚ*AsyncioQuicConnection._wait_for_wake_timer‰   sZ   é € Ø×#×#Ó#Ø×%×%Ø×&Ñ&×+Ñ+Ó-×-Ð-÷ $×#ð #ˆÕñ $á-÷ $×#×#Ð#üsV   ‚B“A#”B—/A)ÁA%ÁA)ÁBÁA'ÁBÁ%A)Á'BÁ)B Á/A2Á0B Á<Bc              ƒ   ó°  #   • U R                   R                  5       I S h  v•N   U R                  (       Gd  U R                  R	                  [
        R
                  " 5       5      nU HS  u  p#X0R                  :X  d   eU R                  c   eU R                  R                  X R                  S 5      I S h  v•N   MU     U R                  5       u  pE [        R                  " U R                  5       U5      I S h  v•N   U R                  U5        U R                  5       I S h  v•N   U R                  (       d  GM  g g  GN NŠ NH! [         a     NRf = f N17fr   )rj   r   r‚   r3   Údatagrams_to_sendr…   r€   rg   ÚsendtoÚ_get_timer_valuesr   r#   r�   r‡   Ú_handle_timerÚ_handle_events)r   Ú	datagramsr@   ro   r)   Úintervals         r   Ú_senderÚAsyncioQuicConnection._sender�   s  é € Ø×"Ñ"×'Ñ'Ó)×)Ð)Ø—*—*�*Ø×(Ñ(×:Ñ:¼4¿9º9»;ÓGˆIÛ%.Ñ!�Ø§*¡*Ó,Ð,Ð,Ø—|‘|Ñ/Ð/Ð/Ø—l‘l×)Ñ)¨(·J±JÀÓE×EÒEñ &/ð &*×%;Ñ%;Ó%=Ñ"ˆZðÜ×&Ò& t×'@Ñ'@Ó'BÀHÓM×MÐMð ×Ñ˜zÔ*Ø×%Ñ%Ó'×'Ð'ð —*—*”*ò 	*ñ Fñ NøÜó Ùðúñ (ùsj   ‚E D=¡BEÂ5E Â6EÃ(E Ã9EÃ:E Ã>$EÄ"EÄ#EÄ;EÅ EÅE Å
EÅEÅEÅEc              ƒ   óŽ  #   • Sn U R                   R                  5       nUc  g [        U[        R                  R
                  R                  5      (       Ga	  U R                  5       (       Ga—  U R                  c   eU R                  R                  U5      nU GHd  n[        U[        R                  R
                  R                  5      (       aš  U R                  R                  UR                  5      nU(       al  UR                  c  UR                   Ul        OUR"                  c  UR                   Ul        UR$                  (       a  UR'                  SS5      I S h  v•N   MÍ  MÏ  MÑ  [        U[        R                  R
                  R(                  5      (       d  GM  U R                  R                  UR                  5      nU(       d  GM6  UR'                  UR*                  UR$                  5      I S h  v•N   GMg     GO…U R                  R                  UR                  5      nU(       a.  UR'                  UR*                  UR,                  5      I S h  v•N   GO)[        U[        R                  R
                  R.                  5      (       a  U R0                  R3                  5         OÛ[        U[        R                  R
                  R4                  5      (       a/  SU l        U R8                  b  U R8                  R;                  5         Oy[        U[        R                  R
                  R<                  5      (       aF  U R                  R                  UR                  5      nU(       a  UR'                  SS5      I S h  v•N   US-  nUS:”  a   Sn[>        R@                  " S5      I S h  v•N   GM²   GNX GNÂ GNd N; N7f)Nr   Tr   rv   é
   )!r3   Ú
next_eventÚ
isinstanceÚaioquicÚquicÚeventsÚStreamDataReceivedr4   Ú_h3_connÚhandle_eventÚh3ÚHeadersReceivedÚ_streamsr8   r   Ú_headersÚheadersÚ	_trailersÚstream_endedrH   ÚDataReceivedrB   Ú
end_streamÚHandshakeCompletedri   r�   ÚConnectionTerminatedr‚   rl   ÚcancelÚStreamResetr   Úsleep)r   ÚcountÚeventÚ	h3_eventsÚh3_eventÚstreams         r   r—   Ú$AsyncioQuicConnection._handle_eventsŸ   sº  é € ØˆØØ×$Ñ$×/Ñ/Ó1ˆEØ‰}ØÜ˜%¤§¡×!4Ñ!4×!GÑ!G×HÒHØ—:‘:—<’<ØŸ=™=Ñ4Ð4Ð4Ø $§¡× :Ñ :¸5Ó A�IÜ$-˜Ü% h´·
±
×0AÑ0A×0QÑ0Q×RÑRØ%)§]¡]×%6Ñ%6°u·±Ó%G˜FÞ%Ø#)§?¡?Ñ#:Ø6>×6FÑ6F F¥OØ%+×%5Ñ%5Ñ%=Ø7?×7GÑ7G FÔ$4Ø#+×#8×#8Ø*0×*;Ñ*;¸CÀÓ*F×$FÒ$Fñ $9ñ  &ô (¨´'·*±*×2CÑ2C×2PÑ2P×QÔQØ%)§]¡]×%6Ñ%6°u·±Ó%G˜Fß%™vØ&,×&7Ñ&7Ø$,§M¡M°8×3HÑ3Hó'"÷ !"ó !"ó %.ð" "Ÿ]™]×.Ñ.¨u¯©Ó?�FÞØ$×/Ñ/°·
±
¸E×<LÑ<LÓM×MÐMùÜ˜E¤7§<¡<×#6Ñ#6×#IÑ#I×JÑJØ×(Ñ(×,Ñ,Õ.Ü˜E¤7§<¡<×#6Ñ#6×#KÑ#K×LÑLØ!�”
Ø×&Ñ&Ñ2Ø×'Ñ'×.Ñ.Ô0øÜ˜E¤7§<¡<×#6Ñ#6×#BÑ#B×CÑCØŸ™×*Ñ*¨5¯?©?Ó;�ÞØ ×+Ñ+¨C°Ó6×6Ð6à�Q‰JˆEØ�r‹zà�Ü—m’m AÓ&×&Ð&òW ò" %Gò!"ò Nñ 7ñ 'ùsh   ‚EOÅ N8Å!;OÆ!*OÇ)OÇ9N;Ç:A OÉN>ÉD*OÎOÎ*OÎ0OÎ1OÎ;OÎ>OÏOÏOc              ƒ   óx   #   • U R                   R                  XU5        U R                  5       I S h  v•N   g  N7fr   )r3   Úsend_stream_datar†   )r   r¸   rB   rA   s       r   r>   ÚAsyncioQuicConnection.writeÎ   s*   é € Ø×Ñ×)Ñ)¨&¸Ô?Ø�l‰l‹n×Óùs   ‚0:²8³:c                 óÌ   • U R                   (       a  g [        R                  " U R                  5       5      U l        [        R                  " U R                  5       5      U l        g r   )Ú_closedr   ÚTaskrŠ   rl   rš   rm   r   s    r   ÚrunÚAsyncioQuicConnection.runÒ   s;   € Ø�<�<ØÜ%Ÿlšl¨4¯>©>Ó+;Ó<ˆÔÜ#ŸLšL¨¯©«Ó8ˆÕr   c              ƒ   óh  #   •  [         R                  " U R                  R                  5       U5      I S h  v•N   U R                  (       a  [        eU R                  R                  S5      n[        X5      nX0R                  U'   U$  NQ! [         a    [
        R                  R                  ef = f7frU   )r   r#   ri   r   r$   r%   r&   r'   r‚   r   r3   Úget_next_available_stream_idr	   r¨   )r   r*   r   r¸   s       r   Úmake_streamÚ!AsyncioQuicConnection.make_streamØ   s“   é € ð	(Ü×"Ò" 4×#;Ñ#;×#@Ñ#@Ó#BÀGÓL×LÐLð �:�:ÜÐØ×$Ñ$×AÑAÀ%ÓHˆ	Ü" 4Ó3ˆØ#)�‰�iÑ Øˆñ MøÜó 	(Ü—-‘-×'Ñ'Ð'ð	(üs,   ‚B2„2B
 ¶B·B
 »AB2ÂB
 Â
%B/Â/B2c              ƒ   ó¾  #   • U R                   (       Gd  U R                  b6  U R                  R                  U R                  S   U R                  S   5        SU l         U R                  R                  5         U R                  R                  5         U R                  5       I S h  v•N    U R                  b  U R                  I S h  v•N    U R                  b  U R                  I S h  v•N   U R                  b#  U R                  R                  5       I S h  v•N   g g g  Nz NZ! [        R                   a     Nnf = f NT! [        R                   a     Nhf = f NA7f)Nr   rv   T)r¾   Ú_managerÚclosedr€   r3   rL   rj   r�   r†   rl   r   ÚCancelledErrorrm   rg   r   s    r   rL   ÚAsyncioQuicConnection.closeä   s&  é € Ø�|�|ˆ|Ø�}‰}Ñ(Ø—‘×$Ñ$ T§Z¡Z°¡]°D·J±J¸q±MÔBØˆDŒLØ×Ñ×"Ñ"Ô$à× Ñ ×$Ñ$Ô&Ø—,‘,“.× Ð ðØ×&Ñ&Ñ2Ø×-Ñ-×-Ð-ðØ×$Ñ$Ñ0Ø×+Ñ+×+Ð+ð �|‰|Ñ'Ø—l‘l×(Ñ(Ó*×*Ñ*ð (ð% ñ !ñ .øÜ×)Ñ)ó Ùðúñ ,øÜ×)Ñ)ó Ùðúñ +ùs„   ‚B$EÂ&D!Â'EÂ,D% ÃD#Ã	D% ÃE Ã*D?Ã+E Ã/*EÄEÄEÄ#D% Ä%D<Ä9EÄ;D<Ä<EÄ?E ÅEÅEÅEÅE)	r¾   r‚   ri   rl   rm   rg   rj   rn   rk   r   r[   )r\   r]   r^   r_   r   rŠ   r†   r�   rš   r—   r>   rÀ   rÄ   rL   r`   ra   rb   s   @r   rd   rd   ]   s;   ø† ÷#ò+ò8*ò
#ò(ò -'ô^ò9ô
÷+ð +r   rd   c                   ó`   ^ • \ rS rSrS\R
                  SS4U 4S jjr S	S jrS rS r	Sr
U =r$ )
ÚAsyncioQuicManageréû   NFc                 ó0   >• [         TU ]  X[        X45        g r   )r   r   rd   )r   ÚconfÚverify_modeÚserver_namer¦   r   s        €r   r   ÚAsyncioQuicManager.__init__ü   s   ø€ ô 	‰Ñ˜Ô,AÀ;ÕSr   c                 ó^   • U R                  XX4U5      u  pgU(       a  UR                  5         U$ r   )Ú_connectrÀ   )r   ro   rp   rq   rr   Úwant_session_ticketr   Ústarts           r   ÚconnectÚAsyncioQuicManager.connect  s2   € ð #Ÿm™mØ˜6Ð0Có
Ñˆö Ø�N‰NÔØÐr   c              ƒ   ó   #   • U $ 7fr   rO   r   s    r   rP   ÚAsyncioQuicManager.__aenter__  rR   rS   c              ƒ   ó˜   #   • [        U R                  R                  5       5      nU H  nUR                  5       I S h  v•N   M     g N	7frU   )ÚlistÚ_connectionsÚvaluesrL   )r   rV   rW   rX   Úconnectionsr   s         r   rY   ÚAsyncioQuicManager.__aexit__  sD   é € ô ˜4×,Ñ,×3Ñ3Ó5Ó6ˆÛ%ˆJØ×"Ñ"Ó$×$Ò$ñ &àñ %ùs   ‚<A
¾A¿
A
rO   )iU  Nr   T)r\   r]   r^   r_   ÚsslÚCERT_REQUIREDr   r×   rP   rY   r`   ra   rb   s   @r   rÌ   rÌ   û   s3   ø† à S×%6Ñ%6ÀDÈU÷Tð RVôò÷ð r   rÌ   )r   r}   rá   r6   r…   Úaioquic.h3.connectionr    Úaioquic.h3.eventsÚaioquic.quic.configurationÚaioquic.quic.connectionÚaioquic.quic.eventsÚdns.asyncbackendr%   Údns.exceptionÚdns.inetÚdns.quic._commonr   r   r   r   r   r	   rd   rÌ   rO   r   r   Ú<module>rì      sb   ðó Û Û 
Û Û ã Û Û !Û Û ã Û Û ÷õ ô?˜ô ?ôD[+Ð/ô [+ô|Ð)õ r   