ó
    0/¡jæ*  ã                   óâ   • 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  \R                  r " S S\5      r " S S\5      r " S S\5      rg)	é    N)ÚQUIC_MAX_DATAGRAMÚBaseQuicConnectionÚBaseQuicManagerÚBaseQuicStreamÚUnexpectedEOFc                   ó`   ^ • \ rS rSrU 4S j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$ )ÚSyncQuicStreamé   c                 óŒ   >• [         TU ]  X5        [        R                  " 5       U l        [        R
                  " 5       U l        g ©N)ÚsuperÚ__init__Ú	threadingÚ	ConditionÚ_wake_upÚLockÚ_lock)ÚselfÚ
connectionÚ	stream_idÚ	__class__s      €Úg/var/www/html/health-monitoring.indevconsultancy.in/venv/lib/python3.13/site-packages/dns/quic/_sync.pyr   ÚSyncQuicStream.__init__    s.   ø€ Ü‰Ñ˜Ô/Ü!×+Ò+Ó-ˆŒÜ—^’^Ó%ˆ�
ó    c                 ó¦  •  U R                  U5      nU R                     U R                  R                  U5      (       a
   S S S 5        g Xl        S S S 5        U R
                     U R
                  R                  U5      (       d  [        R                  R                  e S S S 5        SU l        M¯  ! , (       d  f       Ng= f! , (       d  f       N(= f)Nr   )
Ú_timeout_from_expirationr   Ú_bufferÚhaveÚ
_expectingr   ÚwaitÚdnsÚ	exceptionÚTimeout)r   ÚamountÚ
expirationÚtimeouts       r   Úwait_forÚSyncQuicStream.wait_for%   s›   € ØØ×3Ñ3°JÓ?ˆGØ—“Ø—<‘<×$Ñ$ V×,Ñ,Ø÷ �ð #)”÷ ð —“Ø—}‘}×)Ñ)¨'×2Ñ2ÜŸ-™-×/Ñ/Ð/ð 3÷ ð  ˆDŒOñ ç•ú÷ •ús   Ÿ"B1Á
B1Á$;CÂ1
B?Ã
Cc                 óŒ  •  U R                  U5      nU R                     U R                  R                  5       (       a
   S S S 5        g  S S S 5        U R                     U R                  R                  U5      (       d  [        R                  R                  e S S S 5        M¢  ! , (       d  f       N`= f! , (       d  f       N!= fr   )	r   r   r   Úseen_endr   r    r!   r"   r#   )r   r%   r&   s      r   Úwait_for_endÚSyncQuicStream.wait_for_end1   sŒ   € ØØ×3Ñ3°JÓ?ˆGØ—“Ø—<‘<×(Ñ(×*Ñ*Ø÷ �Ø*÷ ð —“Ø—}‘}×)Ñ)¨'×2Ñ2ÜŸ-™-×/Ñ/Ð/ð 3÷ ñ ç•ú÷ •ús   Ÿ!B$Á;B5Â$
B2Â5
Cc                 ó‚  • U R                  U5      nU R                  R                  5       (       aA  U R                  U5        U R                     U R
                  R                  5       sS S S 5        $ U R                  SU5        U R                     [        R                  " SU R
                  R                  S5      5      u  nS S S 5        U R                  WU5        U R                     U R
                  R                  U5      sS S S 5        $ ! , (       d  f       g = f! , (       d  f       Nb= f! , (       d  f       g = f)Né   z!H)Ú_expiration_from_timeoutÚ_connectionÚis_h3r+   r   r   Úget_allr'   ÚstructÚunpackÚget)r   r&   r%   Úsizes       r   ÚreceiveÚSyncQuicStream.receive;   sÖ   € Ø×2Ñ2°7Ó;ˆ
Ø×Ñ×!Ñ!×#Ñ#Ø×Ñ˜jÔ)Ø—“Ø—|‘|×+Ñ+Ó-÷ ‘ð �M‰M˜!˜ZÔ(Ø—“Ü Ÿ-š-¨¨d¯l©l×.>Ñ.>¸qÓ.AÓB‘�÷ à�M‰M˜$ 
Ô+Ø—“Ø—|‘|×'Ñ'¨Ó-÷ ‘÷ •ú÷ •ú÷ •ús$   ÁDÂ3DÃ)D0Ä
DÄ
D-Ä0
D>c                 ór   • U R                  U5      nU R                  R                  U R                  X25        g r   )Ú_encapsulater0   ÚwriteÚ
_stream_id)r   ÚdatagramÚis_endÚdatas       r   ÚsendÚSyncQuicStream.sendI   s,   € Ø× Ñ  Ó*ˆØ×Ñ×Ñ˜tŸ™°Õ=r   c                 ó²   • U R                  X5      (       a0  U R                     U R                  R                  5         S S S 5        g g ! , (       d  f       g = fr   )Ú_common_add_inputr   Únotify)r   r?   r>   s      r   Ú
_add_inputÚSyncQuicStream._add_inputM   s<   € Ø×!Ñ! $×/Ñ/Ø—“Ø—‘×$Ñ$Ô&÷ �ð 0ß•ús   £AÁ
Ac                 óp   • U R                      U R                  5         S S S 5        g ! , (       d  f       g = fr   )r   Ú_close©r   s    r   ÚcloseÚSyncQuicStream.closeR   s   € Ø�Z‹ZØ�K‰KŒM÷ �ZŽZús   �'§
5c                 ó   • U $ r   © rI   s    r   Ú	__enter__ÚSyncQuicStream.__enter__V   ó   € Øˆr   c                 ó¤   • U R                  5         U R                     U R                  R                  5         S S S 5        g! , (       d  f       g= f©NF)rJ   r   rD   )r   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__ÚSyncQuicStream.__exit__Y   s5   € Ø�
‰
ŒØ�]‹]Ø�M‰M× Ñ Ô"÷ à÷ Œ]àús   �AÁ
A)r   r   r   r   ©F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r'   r+   r7   r@   rE   rJ   rN   rV   Ú__static_attributes__Ú__classcell__©r   s   @r   r	   r	      s5   ø† õ&ò

 ò0ô.ô>ò'ò
ò÷ð r   r	   c                   óŒ   ^ • \ rS rSrU 4S jrS rS rS rS rSS jr	SU 4S jjr
SU 4S	 jjrS
 rSS jrU 4S jrS rSrU =r$ )ÚSyncQuicConnectioné`   c                 óô  >• [         TU ]  XX4XV5        [        U R                  [        R
                  S5      U l        U R                  bN   U R                  R                  [        R                  R                  U R                  U R                  5      5        U R                  R                  U R                  5        [        R                   " 5       u  U l        U l        U R$                  R'                  S5        U R                  R'                  S5        [(        R*                  " 5       U l        S U l        [(        R0                  " 5       U l        g ! [         a    U R                  R                  5         e f = f)Nr   F)r   r   Úsocket_factoryÚ_afÚsocketÚ
SOCK_DGRAMÚ_socketÚ_sourceÚbindr!   ÚinetÚlow_level_address_tupleÚ	ExceptionrJ   ÚconnectÚ_peerÚ
socketpairÚ_send_wakeupÚ_receive_wakeupÚsetblockingr   ÚEventÚ_handshake_completeÚ_worker_threadr   r   )r   r   ÚaddressÚportÚsourceÚsource_portÚmanagerr   s          €r   r   ÚSyncQuicConnection.__init__a   s  ø€ Ü‰Ñ˜¨d¸KÔQÜ% d§h¡h´×0AÑ0AÀ1ÓEˆŒØ�<‰<Ñ#ðØ—‘×!Ñ!Ü—H‘H×4Ñ4°T·\±\À4Ç8Á8ÓLôð 	�‰×Ñ˜TŸZ™ZÔ(Ü4:×4EÒ4EÓ4GÑ1ˆÔ	˜DÔ0Ø×Ñ×(Ñ(¨Ô/Ø�‰× Ñ  Ô'Ü#,§?¢?Ó#4ˆÔ Ø"ˆÔÜ—^’^Ó%ˆ�
øô ó Ø—‘×"Ñ"Ô$Øðús   ÁAE Å&E7c                 óN  • SnUS:  a|  US-  n U R                   R                  [        5      nU R                     U R
                  R                  X R                  [        R                  " 5       5        S S S 5        US:  a  M{  g g ! [         a     g f = f! , (       d  f       N(= f)Nr   é
   é   )	rh   Úrecvr   ÚBlockingIOErrorr   r0   Úreceive_datagramro   Útime)r   Úcountr=   s      r   Ú_readÚSyncQuicConnection._readt   s‚   € ØˆØ�b‹jØ�Q‰JˆEðØŸ<™<×,Ñ,Ô->Ó?�ð —“Ø× Ñ ×1Ñ1°(¿J¹JÌÏ	Ê	ËÔT÷ ð �b�jøô #ó Ùðúç•ús   �B º:BÂ
BÂBÂ
B$c                 ó`   •   U R                   R                  S5        M  ! [         a     g f = f)Né    )rr   r€   r�   rI   s    r   Ú_drain_wakeupÚ SyncQuicConnection._drain_wakeup   s7   € ØðØ×$Ñ$×)Ñ)¨"Ô-ñ øô #ó Ùðús   ƒ   
-¬-c                 óT  •  [         R                  " 5        nUR                  U R                  [         R                  U R
                  5        UR                  U R                  [         R                  U R                  5        U R                  (       dò  U R                  S5      u  p#UR                  U5      nU H  u  pVUR                  5         M     U R                     U R                  U5        S S S 5        U R                  5         U R                     U R                  R!                  ["        R"                  " 5       5      nS S S 5        W H!  u  p† U R                  R%                  U5        M#     U R                  (       d  Mò  S S S 5        U R                     SU l        S S S 5        U R                  R+                  5         U R,                  R/                  5         g ! , (       d  f       Nô= f! , (       d  f       N²= f! [&         a     MÀ  f = f! , (       d  f       N’= f! [(         a     N¡f = f! , (       d  f       N—= f! U R                     SU l        S S S 5        O! , (       d  f       O= fU R                  R+                  5         U R,                  R/                  5         f = f)NFT)Ú	selectorsÚDefaultSelectorÚregisterrh   Ú
EVENT_READr…   rr   r‰   Ú_doneÚ_get_timer_valuesÚselectr?   r   Ú_handle_timerÚ_handle_eventsr0   Údatagrams_to_sendrƒ   r@   r�   rm   rJ   ru   Úset)	r   Úselr%   ÚintervalÚitemsÚkeyÚ_Ú	datagramsr=   s	            r   Ú_workerÚSyncQuicConnection._worker†   sÒ  € ð	+Ü×*Ò*Ô,°Ø—‘˜TŸ\™\¬9×+?Ñ+?ÀÇÁÔLØ—‘Ø×(Ñ(¬)×*>Ñ*>À×@RÑ@Rôð Ÿ*Ÿ*Ø-1×-CÑ-CÀEÓ-JÑ*�ZØŸJ™J xÓ0�EÛ"'™˜ØŸ™ž
ñ #(àŸ›Ø×*Ñ*¨:Ô6÷ $à×'Ñ'Ô)ØŸ›Ø$(×$4Ñ$4×$FÑ$FÄtÇyÂyÃ{Ó$S˜	÷ $ã'0™˜ð!Ø ŸL™L×-Ñ-¨hÖ7ñ (1ð Ÿ*Ÿ*™*÷ -ð4 —“Ø!�”
÷ à�L‰L×ÑÔ à×$Ñ$×(Ñ(Õ*÷) $�ú÷ $�ûô
  /ó !â ð!ú÷% -Õ,ûô* ó 	ñ ð	ú÷
 •û�—“Ø!�”
÷ —–úà�L‰L×ÑÔ à×$Ñ$×(Ñ(Õ*ús¿   ‚H" —CHÃGÃ0$HÄ/G/ÅHÅH Å.HÆH" ÆH2Ç
G,	Ç(HÇ/
G=	Ç9HÈ 
HÈ
HÈHÈHÈ
HÈH" ÈI ÈH" È"
H/È,I È.H/È/I È2
I ÉJ'ÉI!É	J'É!
I/É+<J'c                 óT  •  U R                      U R                  R                  5       nS S S 5        Wc  g [        U[        R
                  R                  R                  5      (       Ga0  U R                  5       (       Ga±  U R                  c   eU R                  R                  U5      nU GH~  n[        U[        R                  R                  R                  5      (       a§  U R                      U R                  R                  UR                  5      nS S S 5        W(       ad  UR                   c  UR"                  Ul        OUR$                  c  UR"                  Ul        UR&                  (       a  UR)                  SS5        MÚ  MÜ  MÞ  [        U[        R                  R                  R*                  5      (       d  GM  U R                      U R                  R                  UR                  5      nS S S 5        W(       d  GMX  UR)                  UR,                  UR&                  5        GM�     GO�U R                      U R                  R                  UR                  5      nS S S 5        W(       a&  UR)                  UR,                  UR.                  5        GO$[        U[        R
                  R                  R0                  5      (       a  U R2                  R5                  5         OÖ[        U[        R
                  R                  R6                  5      (       a  U R                      SU l        S S S 5        O†[        U[        R
                  R                  R:                  5      (       aS  U R                      U R                  R                  UR                  5      nS S S 5        W(       a  UR)                  SS5        GM¾  ! , (       d  f       GNž= f! , (       d  f       GNÅ= f! , (       d  f       GNú= f! , (       d  f       GN›= f! , (       d  f       NY= f! , (       d  f       Nƒ= f)NTr   )r   r0   Ú
next_eventÚ
isinstanceÚaioquicÚquicÚeventsÚStreamDataReceivedr1   Ú_h3_connÚhandle_eventÚh3ÚHeadersReceivedÚ_streamsr5   r   Ú_headersÚheadersÚ	_trailersÚstream_endedrE   ÚDataReceivedr?   Ú
end_streamÚHandshakeCompletedru   r–   ÚConnectionTerminatedr�   ÚStreamReset)r   ÚeventÚ	h3_eventsÚh3_eventÚstreams        r   r”   Ú!SyncQuicConnection._handle_events¨   sª  € ØØ—“Ø×(Ñ(×3Ñ3Ó5�÷ à‰}ØÜ˜%¤§¡×!4Ñ!4×!GÑ!G×HÒHØ—:‘:—<’<ØŸ=™=Ñ4Ð4Ð4Ø $§¡× :Ñ :¸5Ó A�IÜ$-˜Ü% h´·
±
×0AÑ0A×0QÑ0Q×RÑRØ!%§£Ø)-¯©×):Ñ):¸5¿?¹?Ó)K ÷ ",æ%Ø#)§?¡?Ñ#:Ø6>×6FÑ6F F¥OØ%+×%5Ñ%5Ñ%=Ø7?×7GÑ7G FÔ$4Ø#+×#8×#8Ø$*×$5Ñ$5°c¸4Ö$@ñ $9ñ  &ô (¨´'·*±*×2CÑ2C×2PÑ2P×QÔQØ!%§£Ø)-¯©×):Ñ):¸5¿?¹?Ó)K ÷ ",ç%™vØ &× 1Ñ 1°(·-±-À×AVÑAV× Wó %.ð" Ÿ›Ø!%§¡×!2Ñ!2°5·?±?Ó!C˜÷ $æØ×)Ñ)¨%¯*©*°e×6FÑ6FÔGùÜ˜E¤7§<¡<×#6Ñ#6×#IÑ#I×JÑJØ×(Ñ(×,Ñ,Õ.Ü˜E¤7§<¡<×#6Ñ#6×#KÑ#K×LÑLØ—Z“ZØ!%�D”J÷  �Zä˜E¤7§<¡<×#6Ñ#6×#BÑ#B×CÑCØ—Z“ZØ!Ÿ]™]×.Ñ.¨u¯©Ó?�F÷  æØ×%Ñ% c¨4Ô0òO ß–ú÷ ",¦ú÷ ",¦ú÷
 $žú÷  •Zú÷  •ZúsG   ŽO Ã.&OÇ&O$È<&O6Ì&PÍ6&PÏ 
OÏ
O!	Ï$
O3	Ï6
PÐ
PÐ
P'c                 ó¾   • U R                      U R                  R                  XU5        S S S 5        U R                  R	                  S5        g ! , (       d  f       N*= f©Nó   )r   r0   Úsend_stream_datarq   r@   )r   r·   r?   r>   s       r   r;   ÚSyncQuicConnection.writeÒ   s@   € Ø�Z‹ZØ×Ñ×-Ñ-¨f¸FÔC÷ à×Ñ×Ñ˜wÕ'÷ �Zús   �AÁ
Ac                 ó¸   >• U R                      [        TU ]	  XU5        S S S 5        U(       a  U R                  R	                  S5        g g ! , (       d  f       N2= frº   )r   r   Úsend_headersrq   r@   )r   r   r¬   r>   r   s       €r   r¿   ÚSyncQuicConnection.send_headers×   sB   ø€ Ø�Z‹ZÜ‰GÑ  °VÔ<÷ æØ×Ñ×"Ñ" 7Õ+ð ÷ �Zúó   ŽAÁ
Ac                 ó¸   >• U R                      [        TU ]	  XU5        S S S 5        U(       a  U R                  R	                  S5        g g ! , (       d  f       N2= frº   )r   r   Ú	send_datarq   r@   )r   r   r?   r>   r   s       €r   rÃ   ÚSyncQuicConnection.send_dataÝ   sB   ø€ Ø�Z‹ZÜ‰GÑ˜i¨vÔ6÷ æØ×Ñ×"Ñ" 7Õ+ð ÷ �ZúrÁ   c                 ó¢   • U R                   (       a  g [        R                  " U R                  S9U l        U R                  R                  5         g )N)Útarget)Ú_closedr   ÚThreadr�   rv   ÚstartrI   s    r   ÚrunÚSyncQuicConnection.runã   s5   € Ø�<�<ØÜ'×.Ò.°d·l±lÑCˆÔØ×Ñ×!Ñ!Õ#r   c                 ó^  • U R                   R                  U5      (       d  [        R                  R                  eU R
                     U R                  (       a  [        eU R                  R                  S5      n[        X5      nX0R                  U'   S S S 5        U$ ! , (       d  f       W$ = frR   )ru   r    r!   r"   r#   r   r�   r   r0   Úget_next_available_stream_idr	   rª   )r   r&   r   r·   s       r   Úmake_streamÚSyncQuicConnection.make_streamé   s„   € Ø×'Ñ'×,Ñ,¨W×5Ñ5Ü—-‘-×'Ñ'Ð'Ø�Z‹ZØ�z�zÜ#Ð#Ø×(Ñ(×EÑEÀeÓLˆIÜ# DÓ4ˆFØ'-�M‰M˜)Ñ$÷ ð ˆ÷ ŒZð ˆús   ÁABÂ
B,c                 óp   >• U R                      [        TU ]	  U5        S S S 5        g ! , (       d  f       g = fr   )r   r   Úclose_stream)r   r   r   s     €r   rÑ   ÚSyncQuicConnection.close_streamô   s!   ø€ Ø�Z‹ZÜ‰GÑ  Ô+÷ �ZŽZúó   Ž'§
5c                 óÔ  • U R                      U R                  (       a
   S S S 5        g U R                  b6  U R                  R                  U R                  S   U R                  S   5        SU l        U R
                  R                  5         U R                  R                  S5        S S S 5        U R                  b  U R                  R                  5         g g ! , (       d  f       N7= f)Nr   r   Tr»   )r   rÇ   Ú_managerÚclosedro   r0   rJ   rq   r@   rv   ÚjoinrI   s    r   rJ   ÚSyncQuicConnection.closeø   s©   € Ø�Z‹ZØ�|�|Ø÷ ˆZð �}‰}Ñ(Ø—‘×$Ñ$ T§Z¡Z°¡]°D·J±J¸q±MÔBØˆDŒLØ×Ñ×"Ñ"Ô$Ø×Ñ×"Ñ" 7Ô+÷ ð ×ÑÑ*Ø×Ñ×$Ñ$Õ&ð +÷ �Zús   �C©A?CÃ
C')rÇ   r�   ru   r   rr   rq   rh   rv   rX   r   )rY   rZ   r[   r\   r   r…   r‰   r�   r”   r;   r¿   rÃ   rÊ   rÎ   rÑ   rJ   r]   r^   r_   s   @r   ra   ra   `   sG   ø† õ&ò&	Uòò +òD(1ôT(÷
,÷,ò$ô	õ,÷
'ð 
'r   ra   c                   óŒ   ^ • \ rS rSrS\R
                  SS4U 4S jjr     SS jrU 4S jrU 4S jr	U 4S jr
S	 rS
 rSrU =r$ )ÚSyncQuicManageri  NFc                 ód   >• [         TU ]  X[        X45        [        R                  " 5       U l        g r   )r   r   ra   r   r   r   )r   ÚconfÚverify_modeÚserver_namer¨   r   s        €r   r   ÚSyncQuicManager.__init__  s%   ø€ ô 	‰Ñ˜Ô,>ÀÔPÜ—^’^Ó%ˆ�
r   c           	      ó¬   • U R                      U R                  XX4XV5      u  pxU(       a  UR                  5         UsS S S 5        $ ! , (       d  f       g = fr   )r   Ú_connectrÊ   )	r   rw   rx   ry   rz   Úwant_session_ticketÚ
want_tokenr   rÉ   s	            r   rn   ÚSyncQuicManager.connect  s@   € ð �Z‹ZØ"&§-¡-Ø˜vÐ4Gó#ÑˆZö Ø—‘Ô Ø÷ �Z�Zús   �.AÁ
Ac                 óp   >• U R                      [        TU ]	  X5        S S S 5        g ! , (       d  f       g = fr   )r   r   rÖ   )r   rw   rx   r   s      €r   rÖ   ÚSyncQuicManager.closed  s    ø€ Ø�Z‹ZÜ‰G‰N˜7Ô)÷ �ZŽZúrÓ   c                 ór   >• U R                      [        TU ]	  XU5        S S S 5        g ! , (       d  f       g = fr   )r   r   Úsave_session_ticket)r   rw   rx   Úticketr   s       €r   rè   Ú#SyncQuicManager.save_session_ticket!  s#   ø€ Ø�Z‹ZÜ‰GÑ'¨°vÔ>÷ �ZŽZúó   Ž(¨
6c                 ór   >• U R                      [        TU ]	  XU5        S S S 5        g ! , (       d  f       g = fr   )r   r   Ú
save_token)r   rw   rx   Útokenr   s       €r   rí   ÚSyncQuicManager.save_token%  s#   ø€ Ø�Z‹ZÜ‰GÑ˜w¨eÔ4÷ �ZŽZúrë   c                 ó   • U $ r   rM   rI   s    r   rN   ÚSyncQuicManager.__enter__)  rP   r   c                 ó|   • [        U R                  R                  5       5      nU H  nUR                  5         M     grR   )ÚlistÚ_connectionsÚvaluesrJ   )r   rS   rT   rU   Úconnectionsr   s         r   rV   ÚSyncQuicManager.__exit__,  s6   € ô ˜4×,Ñ,×3Ñ3Ó5Ó6ˆÛ%ˆJØ×ÑÖñ &àr   )r   )iU  Nr   TT)rY   rZ   r[   r\   ÚsslÚCERT_REQUIREDr   rn   rÖ   rè   rí   rN   rV   r]   r^   r_   s   @r   rÚ   rÚ     sK   ø† à S×%6Ñ%6ÀDÈU÷&ð ØØØ Øôõ"*õ?õ5ò÷ð r   rÚ   )rŒ   rf   rø   r3   r   rƒ   Úaioquic.h3.connectionr¢   Úaioquic.h3.eventsÚaioquic.quic.configurationÚaioquic.quic.connectionÚaioquic.quic.eventsÚdns.exceptionr!   Údns.inetÚdns.quic._commonr   r   r   r   r   rd   r	   ra   rÚ   rM   r   r   Ú<module>r     sl   ðó Û Û 
Û Û Û ã Û Û !Û Û ã Û ÷õ ð —‘€ô>�^ô >ôBb'Ð+ô b'ôJ-�oõ -r   