Ë
    7¾ªj‰5  ã                  ó(  — U d dl 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Zd dlZd dlmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZ erLd d
lm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. e"e$z  e(z  e&z  e z  e.z  e*z  e,z  Z/de0d<   e	jb                  e	jd                  fZ3ej                  dk(  re3e	jh                  fz  Z3 ejj                  d«      Z6 G d„ d«      Z7 G d„ d«      Z8y)é    )ÚannotationsN)Ú	GeneratorÚSequence)Ú
formatdate)Ú	FrameType)ÚTYPE_CHECKINGÚ	TypeAlias)Ústyle)Úasyncio_run)ÚSTARTUP_FAILUREÚConfig)ÚAutoZttpProtocol)ÚH11Protocol)ÚHttpToolsProtocol)ÚZttpH2Protocol)ÚZttpProtocol)ÚWebSocketProtocol)ÚWebSocketsSansIOProtocol)Ú
WSProtocolr	   Ú	ProtocolsÚwin32zuvicorn.errorc                  ó   — e Zd ZdZdd„Zy)ÚServerStatezP
    Shared servers state that is available between all protocol instances.
    c                ó\   — d| _         t        «       | _        t        «       | _        g | _        y ©Nr   )Útotal_requestsÚsetÚconnectionsÚtasksÚdefault_headers©Úselfs    úM/var/www/html/serviGia/entorno/lib/python3.12/site-packages/uvicorn/server.pyÚ__init__zServerState.__init__<   s%   € ØˆÔÜ+.«5ˆÔÜ.1«eˆŒ
Ø:<ˆÕó    N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   © r%   r#   r   r   7   s   „ ñô=r%   r   c                  óº   — e Zd Zdd„Zej
                  dd„«       Zddd„Zddd„Zddd„Z	ddd„Z
dd„Zdd	„Zdd
„Zddd„Zdd„Zej"                  dd„«       Zdd„Zy)ÚServerc                óv   — || _         t        «       | _        d| _        d| _        d| _        d| _        g | _        y )NFg        )Úconfigr   Úserver_stateÚstartedÚshould_exitÚ
force_exitÚlast_notifiedÚ_captured_signals)r"   r1   s     r#   r$   zServer.__init__D   s9   € ØˆŒÜ'›MˆÔàˆŒØ ˆÔØˆŒØ ˆÔà,.ˆÕr%   c                ó²   — | j                   j                  €y | j                   j                  t        j                  d| j                   j                  «      z   S r   )r1   Úlimit_max_requestsÚrandomÚrandintÚlimit_max_requests_jitterr!   s    r#   r9   zServer.limit_max_requestsO   s?   € à�;‰;×)Ñ)Ð1ØØ�{‰{×-Ñ-´·±¸qÀ$Ç+Á+×BgÑBgÓ0hÑhÐhr%   Nc                ól   — t        | j                  |¬«      | j                  j                  «       ¬«      S )N©Úsockets)Úloop_factory)r   Úserver1   Úget_loop_factory©r"   r?   s     r#   Úrunz
Server.runU   s'   € Ü˜4Ÿ:™:¨g˜:Ó6ÀTÇ[Á[×EaÑEaÓEcÔdÐdr%   c              ƒ  óŒ   K  — | j                  «       5  | j                  |«      ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­w©N)Úcapture_signalsÚ_serverC   s     r#   rA   zServer.serveX   sA   è ø€ Ø×!Ñ!Ó#ñ 	'Ø—+‘+˜gÓ&×&Ð&÷	'ð 	'Ø&ø÷	'ð 	'üs$   ‚A“8¨6©8­	A¶8¸A½Ac              ƒ  óB  K  — t        j                  «       }| j                  }|j                  s|j	                  «        |j                  |«      | _        d}dt        dd¬«      z   dz   }t        j                  ||d|i¬«       | j                  |¬	«      ƒ d {  –—†  | j                  s| j                  «       ƒ d {  –—†  | j                  rJ| j                  |¬	«      ƒ d {  –—†  d
}dt        dd¬«      z   dz   }t        j                  ||d|i¬«       y y 7 Œ7 Œ]7 Œ9­w)NzStarted server process [%d]zStarted server process [z%dÚcyan)Úfgú]Úcolor_message©Úextrar>   zFinished server process [%d]zFinished server process [)ÚosÚgetpidr1   ÚloadedÚloadÚlifespan_classÚlifespanr
   ÚloggerÚinfoÚstartupr4   Ú	main_loopr3   Úshutdown)r"   r?   Ú
process_idr1   ÚmessagerM   s         r#   rH   zServer._serve\   sû   è ø€ Ü—Y‘Y“[ˆ
à—‘ˆØ�}Š}Ø�K‰KŒMà×-Ñ-¨fÓ5ˆŒà/ˆØ2´U¸4ÀFÔ5KÑKÈcÑQˆÜ�‰�G˜Z°ÀÐ/OˆÔPà�l‰l 7ˆlÓ+×+Ð+Ø×ÒØ—.‘.Ó"×"Ð"Ø�<Š<Ø—-‘-¨�-Ó0×0Ð0à4ˆGØ7¼%ÀÈÔ:PÑPÐSVÑVˆMÜ�K‰K˜ °OÀ]Ð3SˆKÕTð ð 	,øà"øà0ús6   ‚BDÂDÂ#DÂ=DÂ>%DÃ#DÃ$6DÄDÄDc              ƒ  ó2  ‡ ‡K  — ‰ j                   j                  «       ƒ d {  –—†  ‰ j                   j                  rt        j                  t
        «       ‰ j                  Š	 d
	 	 	 dˆˆ fd„}t        j                  «       }|�–	 	 	 	 dd„}g ‰ _	        |D ]~  }t        j                  «       dk(  }‰j                  dkD  r
|r ||«      }|j                  ||‰j                  ‰j                  ¬«      ƒ d {  –—† }‰ j                  j!                  |«       Œ€ |}�nå‰j"                  �’t%        j&                  ‰j"                  t$        j(                  t$        j*                  «      }|j                  ||‰j                  ‰j                  ¬«      ƒ d {  –—† }|j,                  €J ‚|j,                  }|g‰ _	        �nG‰j.                  �Òd}	t0        j2                  j5                  ‰j.                  «      r)t1        j6                  ‰j.                  «      j8                  }	|j;                  |‰j.                  ‰j                  ‰j                  ¬«      ƒ d {  –—† }t1        j<                  ‰j.                  |	«       |j,                  €J ‚|j,                  }|g‰ _	        ni	 |j                  |‰j>                  ‰j@                  ‰j                  ‰j                  ¬«      ƒ d {  –—† }j,                  €J ‚|j,                  }|g‰ _	        |€‰ jK                  |«       d	‰ _&        y 	 d	‰ _&        y 7 �Œ7 �Œ27 �Œš7 ŒÝ7 ŒU# tB        $ r[}
tD        jG                  |
«       ‰ j                   jI                  «       ƒ d {  –—†7   t        j                  t
        «       Y d }
~
Œ²d }
~
ww xY w­w)Nc                ój   •— ‰j                  ‰‰j                  ‰j                  j                  | ¬«      S )N)r1   r2   Ú	app_stateÚ_loop)Úhttp_protocol_classr2   rU   Ústate)r`   r1   r"   s    €€r#   Úcreate_protocolz'Server.startup.<locals>.create_protocolz   s9   ø€ ð ×-Ñ-ØØ!×.Ñ.ØŸ-™-×-Ñ-Øð	 .ó ð r%   c                ód   — ddl m} | j                  t        j                  «       «      } ||«      S )Nr   )Ú	fromshare)Úsocketre   ÚsharerP   rQ   )Úsockre   Ú	sock_datas      r#   Ú_share_socketz%Server.startup.<locals>._share_socket‹   s&   € õ
 -à ŸJ™J¤r§y¡y£{Ó3�	Ù  Ó+Ð+r%   ÚWindowsé   )rh   ÚsslÚbacklogi¶  )Úpathrm   rn   )ÚhostÚportrm   rn   TrF   )r`   z asyncio.AbstractEventLoop | Noner'   zasyncio.Protocol)rh   úsocket.SocketTyper'   rr   )'rU   rX   r4   ÚsysÚexitr   r1   ÚasyncioÚget_running_loopÚserversÚplatformÚsystemÚworkersÚcreate_serverrm   rn   ÚappendÚfdrf   ÚfromfdÚAF_UNIXÚSOCK_STREAMr?   ÚudsrP   ro   ÚexistsÚstatÚst_modeÚcreate_unix_serverÚchmodrp   rq   ÚOSErrorrV   ÚerrorrZ   Ú_log_started_messager3   )r"   r?   rc   Úlooprj   rh   Ú
is_windowsÚserverÚ	listenersÚ	uds_permsÚexcr1   s   `          @r#   rX   zServer.startups   s  ùè ø€ Ø�m‰m×#Ñ#Ó%×%Ð%Ø�=‰=×$Ò$Ü�H‰H”_Ô%à—‘ˆð 7;ð	Ø3ð	àö	ô ×'Ñ'Ó)ˆð Ðð,Ø'ð,à"ó,ð >@ˆDŒLØò ,�Ü%Ÿ_™_Ó.°)Ñ;�
Ø—>‘> AÒ%©*Ù(¨Ó.�DØ#×1Ñ1°/ÈÐRX×R\ÑR\Ðfl×ftÑftÐ1Óu×u�Ø—‘×#Ñ# FÕ+ð,ð  ŠIà�Y‰YÐ"ä—=‘= §¡¬F¯N©N¼F×<NÑ<NÓOˆDØ×-Ñ-¨oÀDÈfÏjÉjÐbh×bpÑbpÐ-Óq×qˆFØ—>‘>Ð-Ð-Ð-ØŸ™ˆIØ"˜8ˆDŽLà�Z‰ZÐ#àˆIÜ�w‰w�~‰~˜fŸj™jÔ)ÜŸG™G F§J¡JÓ/×7Ñ7�	Ø×2Ñ2Ø f§j¡j°f·j±jÈ&Ï.É.ð 3ó ÷ ˆFô �H‰H�V—Z‘Z Ô+Ø—>‘>Ð-Ð-Ð-ØŸ™ˆIØ"˜8ˆD�Lð*Ø#×1Ñ1Ø#ØŸ™ØŸ™ØŸ
™
Ø"ŸN™Nð  2ó  ÷ �ð —>‘>Ð-Ð-Ð-ØŸ™ˆIØ"˜8ˆDŒLàˆ?Ø×%Ñ% iÔ0ð ˆ�ð àˆ�ðs 	&ùðL vùð rùðøðùô ò *Ü—‘˜SÔ!Ø—m‘m×,Ñ,Ó.×.Ñ.Ü—‘œ×)Ñ)ûð*üs“   „N¢L#£CNÃ4L&Ã5BNÆL)ÆB>NÉL,ÉANÊAL0 ËL.ËL0 ËANÌ&NÌ)NÌ,NÌ.L0 Ì0	NÌ92NÍ+M.Í,NÎ
NÎNÎNc                óþ  — | j                   }|j                  �*|d   }t        j                  d|j	                  «       «       y |j
                  �!t        j                  d|j
                  «       y d}|j                  €dn|j                  }d|v rd}|j                  }|dk(  r|d   j	                  «       d   }|j                  rd	nd
}d|› d�}dt        |d¬«      z   dz   }	t        j                  ||||d|	i¬«       y )Nr   z3Uvicorn running on socket %s (Press CTRL+C to quit)z8Uvicorn running on unix socket %s (Press CTRL+C to quit)z
%s://%s:%dz0.0.0.0ú:z%s://[%s]:%drl   ÚhttpsÚhttpzUvicorn running on z (Press CTRL+C to quit)T)ÚboldrM   rN   )
r1   r}   rV   rW   Úgetsocknamer�   rp   rq   rm   r
   )
r"   r�   r1   rh   Úaddr_formatrp   rq   Úprotocol_namer\   rM   s
             r#   r‰   zServer._log_started_messageÏ   s  € Ø—‘ˆà�9‰9Ð Ø˜Q‘<ˆDÜ�K‰KØEØ× Ñ Ó"õð
 �Z‰ZÐ#Ü�K‰KÐRÐTZ×T^ÑT^Õ_ð 'ˆKØ &§¡Ð 3‘9¸¿¹ˆDØ�d‰{à,�à—;‘;ˆDØ�qŠyØ  ‘|×/Ñ/Ó1°!Ñ4�à'-§z¢z™G°vˆMØ+¨K¨=Ð8OÐPˆGØ1´E¸+ÈDÔ4QÑQÐTmÑmˆMÜ�K‰KØØØØØ&¨Ð6ð õ r%   c              ƒ  óÚ   K  — d}| j                  |«      ƒ d {  –—† }|sD|dz  }|dz  }t        j                  d«      ƒ d {  –—†  | j                  |«      ƒ d {  –—† }|sŒCy y 7 ŒK7 Œ$7 Œ­w)Nr   rl   i / çš™™™™™¹?)Úon_tickru   Úsleep)r"   Úcounterr4   s      r#   rY   zServer.main_loopò   si   è ø€ ØˆØ ŸL™L¨Ó1×1ˆÙØ�q‰LˆGØ Ñ&ˆGÜ—-‘- Ó$×$Ð$Ø $§¡¨WÓ 5×5ˆKô	 ð 2øð %øØ5ús9   ‚A+™A%š(A+ÁA'ÁA+ÁA)ÁA+Á#A+Á'A+Á)A+c              ƒ  ój  K  — |dz  dk(  rÚt        j                   «       }t        |d¬«      j                  «       }| j                  j                  rd|fg}ng }|| j                  j
                  z   | j                  _        | j                  j                  �O|| j                  z
  | j                  j                  kD  r)|| _	        | j                  j                  «       ƒ d {  –—†  | j                  ry| j                  }|�0| j                  j                  |k\  rt        j                  d|«       yy7 ŒP­w)Né
   r   T)Úusegmts   datez:Maximum request limit of %d exceeded. Terminating process.F)Útimer   Úencoder1   Údate_headerÚencoded_headersr2   r    Úcallback_notifyr6   Útimeout_notifyr4   r9   r   rV   rW   )r"   rœ   Úcurrent_timeÚcurrent_dater¢   Úmax_requestss         r#   rš   zServer.on_tickû   s  è ø€ à�R‰<˜1ÒÜŸ9™9›;ˆLÜ% l¸4Ô@×GÑGÓIˆLà�{‰{×&Ò&Ø '¨Ð6Ð7‘à �à0;¸d¿k¹k×>YÑ>YÑ0YˆD×ÑÔ-ð �{‰{×*Ñ*Ð6Ø $×"4Ñ"4Ñ4°t·{±{×7QÑ7QÒQØ)5�DÔ&ØŸ+™+×5Ñ5Ó7×7Ð7ð ×ÒØà×.Ñ.ˆØÐ#¨×(9Ñ(9×(HÑ(HÈLÒ(XÜ�K‰KÐTÐVbÔcØàð 8ús   ‚CD3Ã D1Ã!AD3c              ƒ  ó0  K  — t         j                  d«       | j                  D ]  }|j                  «        Œ |xs g D ]  }|j                  «        Œ t	        | j
                  j                  «      D ]  }|j                  «        Œ t        j                  d«      ƒ d {  –—†  	 t        j                  | j                  «       | j                  j                  ¬«      ƒ d {  –—†  | j&                  s#| j(                  j                  «       ƒ d {  –—†  y y 7 Œv7 Œ6# t        j                  $ rc t         j                  dt!        | j
                  j"                  «      «       | j
                  j"                  D ]  }|j%                  d¬«       Œ Y Œ©w xY w7 Œƒ­w)NzShutting downr™   )Útimeoutz=Cancel %s running task(s), timeout graceful shutdown exceededz2Task cancelled, timeout graceful shutdown exceeded)Úmsg)rV   rW   rw   ÚcloseÚlistr2   r   rZ   ru   r›   Úwait_forÚ_wait_tasks_to_completer1   Útimeout_graceful_shutdownÚTimeoutErrorrˆ   Úlenr   Úcancelr5   rU   )r"   r?   rŒ   rh   Ú
connectionÚts         r#   rZ   zServer.shutdown  sa  è ø€ Ü�‰�OÔ$ð —l‘lò 	ˆFØ�L‰L�Nð	à’M˜rò 	ˆDØ�J‰J�Lð	ô ˜t×0Ñ0×<Ñ<Ó=ò 	"ˆJØ×ÑÕ!ð	"ä�m‰m˜CÓ × Ð ð	SÜ×"Ñ"Ø×,Ñ,Ó.ØŸ™×=Ñ=ô÷ ð ð �ŠØ—-‘-×(Ñ(Ó*×*Ñ*ð ð# 	!øðùô ×#Ñ#ò 	SÜ�L‰LØOÜ�D×%Ñ%×+Ñ+Ó,ôð ×&Ñ&×,Ñ,ò S�Ø—‘ÐQ�ÕRòSð	Súð +úsU   ‚BFÂ DÂ!FÂ&<D Ã"DÃ#D Ã')FÄFÄFÄD ÄA3FÆFÆFÆFc              ƒ  óÖ  K  — | j                   j                  r…| j                  syd}t        j	                  |«       | j                   j                  rL| j                  s@t        j                  d«      ƒ d {  –—†  | j                   j                  r| j                  sŒ@| j                   j                  r…| j                  syd}t        j	                  |«       | j                   j                  rL| j                  s@t        j                  d«      ƒ d {  –—†  | j                   j                  r| j                  sŒ@| j                  D ]  }|j                  «       ƒ d {  –—†  Œ y 7 Œì7 ŒS7 Œ­w)Nz8Waiting for connections to close. (CTRL+C to force quit)r™   z@Waiting for background tasks to complete. (CTRL+C to force quit))
r2   r   r5   rV   rW   ru   r›   r   rw   Úwait_closed)r"   r«   rŒ   s      r#   r¯   zServer._wait_tasks_to_complete9  s  è ø€ à×Ñ×(Ò(°·²ØLˆCÜ�K‰K˜ÔØ×#Ñ#×/Ò/¸¿ºÜ—m‘m CÓ(×(Ð(ð ×#Ñ#×/Ò/¸¿»ð ×Ñ×"Ò"¨4¯?ª?ØTˆCÜ�K‰K˜ÔØ×#Ñ#×)Ò)°$·/²/Ü—m‘m CÓ(×(Ð(ð ×#Ñ#×)Ò)°$·/³/ð —l‘lò 	'ˆFØ×$Ñ$Ó&×&Ñ&ñ	'ð )øð )øð 'úsC   ‚A4E)Á6E#Á7&E)ÂA3E)ÄE%Ä&E)Ä9"E)ÅE'ÅE)Å%E)Å'E)c              #  ó   K  — t        j                  «       t        j                  «       urd –— y t        D �ci c]#  }|t	        j                  || j
                  «      “Œ% }}	 d –— |j                  «       D ]  \  }}t	        j                  ||«       Œ 	 t        | j                  «      D ]  }t	        j                  |«       Œ y c c}w # |j                  «       D ]  \  }}t	        j                  ||«       Œ w xY w­wrF   )
Ú	threadingÚcurrent_threadÚmain_threadÚHANDLED_SIGNALSÚsignalÚhandle_exitÚitemsÚreversedr7   Úraise_signal)r"   ÚsigÚoriginal_handlersÚhandlerÚcaptured_signals        r#   rG   zServer.capture_signalsK  så   è ø€ ô ×#Ñ#Ó%¬Y×-BÑ-BÓ-DÑDÛØô SbÖbÈ3˜S¤&§-¡-°°T×5EÑ5EÓ"FÑFÐbÐÐbð	,Ûà 1× 7Ñ 7Ó 9ò ,‘��WÜ—‘˜c 7Õ+ñ,ô
  (¨×(>Ñ(>Ó?ò 	1ˆOÜ×Ñ Õ0ñ	1ùò cøð !2× 7Ñ 7Ó 9ò ,‘��WÜ—‘˜c 7Õ+ñ,üs)   ‚6C>¸(CÁ C>Á#C Á'A$C>Ã0C;Ã;C>c                ó–   — | j                   j                  |«       | j                  r|t        j                  k(  rd| _        y d| _        y )NT)r7   r|   r4   r½   ÚSIGINTr5   )r"   rÂ   Úframes      r#   r¾   zServer.handle_exit_  s9   € Ø×Ñ×%Ñ% cÔ*Ø×Ò ¤v§}¡}Ò 4Ø"ˆD�Oà#ˆDÕr%   )r1   r   r'   r(   )r'   z
int | NonerF   )r?   zlist[socket.socket] | Noner'   r(   )r�   zSequence[socket.SocketType]r'   r(   r&   )rœ   Úintr'   Úbool)r'   zGenerator[None, None, None])rÂ   rÉ   rÈ   zFrameType | Noner'   r(   )r)   r*   r+   r$   Ú	functoolsÚcached_propertyr9   rD   rA   rH   rX   r‰   rY   rš   rZ   r¯   Ú
contextlibÚcontextmanagerrG   r¾   r-   r%   r#   r/   r/   C   su   „ ó	/ð ×Ñòió ðiô
eô'ôUô.Zóx!óF6óô<+ó@'ð$ ×Ñò1ó ð1ô&$r%   r/   )9Ú
__future__r   ru   rÍ   rË   ÚloggingrP   rx   r:   r½   rf   rs   r¹   r    Úcollections.abcr   r   Úemail.utilsr   Útypesr   Útypingr   r	   Úuvicorn._ansir
   Úuvicorn._compatr   Úuvicorn.configr   r   Ú%uvicorn.protocols.http.auto_zttp_implr   Úuvicorn.protocols.http.h11_implr   Ú%uvicorn.protocols.http.httptools_implr   Ú#uvicorn.protocols.http.zttp_h2_implr   Ú uvicorn.protocols.http.zttp_implr   Ú,uvicorn.protocols.websockets.websockets_implr   Ú3uvicorn.protocols.websockets.websockets_sansio_implr   Ú)uvicorn.protocols.websockets.wsproto_implr   r   Ú__annotations__rÇ   ÚSIGTERMr¼   ÚSIGBREAKÚ	getLoggerrV   r   r/   r-   r%   r#   ú<module>rä      s  ðÞ "ã Û Û Û Û 	Û Û Û Û Û 
Û Û ß /Ý "Ý ß +å Ý 'ß 2áÝFÝ;ÝGÝBÝ=ÝNÝ\ÝDð 	Ø
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð #ñ	#ð ˆyó 	ð ‡M�MØ
‡N�Nð€ð ‡<�<�7ÒØ˜Ÿ™Ð)Ñ)€Oà	ˆ×	Ñ	˜?Ó	+€÷	=ñ 	=÷a$ò a$r%   