+
    Di 3                      a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIt^ RIHt ^ RIHt ]'       dB   ^ R	IHt ^ R
IHt ^ RI H!t! ^ RI"H#t# ^ RI$H%t% ]],          ]%,          ]!,          ]#,          t&R]'R&   ]PP                  ]PR                  3t*]
P                  R8X  d   ]*]PV                  3,          t*]PX                  ! R4      t- ! R R4      t. ! R R4      t/R# )    )annotationsN)	GeneratorSequence)
formatdate)	FrameType)TYPE_CHECKING	TypeAlias)asyncio_run)Config)H11Protocol)HttpToolsProtocol)WebSocketProtocol)WebSocketsSansIOProtocol)
WSProtocolr	   	Protocolswin32zuvicorn.errorc                  &    ] tR t^*tRtR R ltRtR# )ServerStatezH
Shared servers state that is available between all protocol instances.
c                   V ^8  d   QhRR/#    returnNone )formats   "l/Users/tonyclaw/.openclaw/workspace/services/omi-webhook/venv/lib/python3.14/site-packages/uvicorn/server.py__annotate__ServerState.__annotate__/   s     = =$ =    c                	^    ^ V n         \        4       V n        \        4       V n        . V n        R# )r   N)total_requestssetconnectionstasksdefault_headers)selfs   &r   __init__ServerState.__init__/   s%    +.5.1e
:<r   )r#   r%   r$   r!   N)__name__
__module____qualname____firstlineno____doc__r'   __static_attributes__r   r   r   r   r   *   s    = =r   r   c                      ] tR t^6tR R ltRR R lltRR R lltRR R	 lltRR
 R lltR R lt	R R lt
R R ltRR R lltR R lt]P                  R R l4       tR R ltRtR# )Serverc                    V ^8  d   QhRRRR/# )r   configr   r   r   r   )r   s   "r   r   Server.__annotate__7   s     	/ 	/v 	/$ 	/r   c                	v    Wn         \        4       V n        R V n        R V n        R V n        RV n        . V n        R# )Fg        N)r2   r   server_statestartedshould_exit
force_exitlast_notified_captured_signals)r&   r2   s   &&r   r'   Server.__init__7   s7    'M  ,.r   Nc                    V ^8  d   QhRRRR/# r   socketszlist[socket.socket] | Noner   r   r   )r   s   "r   r   r3   B   s     e e5 e er   c                	l    \        V P                  VR 7      V P                  P                  4       R7      # )r>   )loop_factory)r
   server2   get_loop_factoryr&   r>   s   &&r   run
Server.runB   s'    4::g:6T[[EaEaEcddr   c                    V ^8  d   QhRRRR/# r=   r   )r   s   "r   r   r3   E   s     ' '#= ' 'r   c                	   "   V P                  4       ;_uu_ 4        V P                  V4      G R j  xL
  R R R 4       R #  L  + '       g   i     R # ; i5iN)capture_signals_serverD   s   &&r   rB   Server.serveE   s<     !!##++g&&& $#& $##s)   AA?A
AAA		Ac                    V ^8  d   QhRRRR/# r=   r   )r   s   "r   r   r3   I   s     Q Q$> Q$ Qr   c                	  "   \         P                  ! 4       pV P                  pVP                  '       g   VP	                  4        VP                  V4      V n        R pR\        P                  ! RRR7      ,           R,           p\        P                  WBRV/R7       V P                  VR7      G R	j  xL
  V P                  '       d   R	# V P                  4       G R	j  xL
  V P                  VR7      G R	j  xL
  R
pR\        P                  ! RRR7      ,           R,           p\        P                  WBRV/R7       R	#  L Lc LK5i)zStarted server process [%d]zStarted server process [z%dcyan)fg]color_messageextrar@   NzFinished server process [%d]zFinished server process [)osgetpidr2   loadedloadlifespan_classlifespanclickstyleloggerinfostartupr7   	main_loopshutdown)r&   r>   
process_idr2   messagerR   s   &&    r   rK   Server._serveI   s     YY[
}}}KKM--f5/2U[[&5QQTWWG/OPll7l+++nnmmGm,,,03ekk$66RRUXXG/OP 	, 	,s=   B0E2E 3E	EEE8E9AEEEc                    V ^8  d   QhRRRR/# r=   r   )r   s   "r   r   r3   `   s     [ [%? [4 [r   c                	N  a a"   S P                   P                  4       G R j  xL
  S P                   P                  '       d
   RS n        R # S P                  oRR VV 3R lllp\        P
                  ! 4       pVe   R R lp. S n        V F  p\        P                  ! 4       R8H  pSP                  ^8  d   V'       d	   V! V4      pVP                  W%SP                  SP                  R7      G R j  xL
 pS P                  P                  V4       K  	  TpEMSP                  e   \        P                   ! SP                  \        P"                  \        P$                  4      pVP                  W%SP                  SP                  R7      G R j  xL
 pVP&                  f   Q hVP&                  pV.S n        EMUSP(                  e   Rp	\*        P,                  P/                  SP(                  4      '       d+   \*        P0                  ! SP(                  4      P2                  p	VP5                  VSP(                  SP                  SP                  R	7      G R j  xL
 p\*        P6                  ! SP(                  V	4       VP&                  f   Q hVP&                  pV.S n        Mk VP                  VSP8                  SP:                  SP                  SP                  R
7      G R j  xL
 pXP&                  f   Q hVP&                  pV.S n        Vf   S PI                  V4       M RS n%        R #  EL ELB EL L LS  \<         dY   p
\>        PA                  T
4       S P                   PC                  4       G R j  xL 
  \D        PF                  ! ^4        R p
?
LR p
?
ii ; i5i)NTc                    V ^8  d   QhRRRR/# )r   _loopz asyncio.AbstractEventLoop | Noner   zasyncio.Protocolr   )r   s   "r   r   $Server.startup.<locals>.__annotate__h   s     	 	3		r   c                j   < SP                  SSP                  SP                  P                  V R 7      # ))r2   r5   	app_staterh   )http_protocol_classr5   rZ   state)rh   r2   r&   s   &r   create_protocol'Server.startup.<locals>.create_protocolh   s9     --!..----	 .  r   c                    V ^8  d   QhRRRR/# )r   sockzsocket.SocketTyper   r   )r   s   "r   r   ri   y   s     , ,',",r   c                f    ^ RI Hp V P                  \        P                  ! 4       4      pV! V4      # )r   )	fromshare)socketrs   sharerU   rV   )rq   rs   	sock_datas   &  r   _share_socket%Server.startup.<locals>._share_sockety   s&    
 - JJryy{3	 ++r   Windows)rq   sslbacklogi  )pathrz   r{   )hostportrz   r{   rI   )&rZ   r_   r7   r2   asyncioget_running_loopserversplatformsystemworkerscreate_serverrz   r{   appendfdrt   fromfdAF_UNIXSOCK_STREAMr>   udsrU   r|   existsstatst_modecreate_unix_serverchmodr}   r~   OSErrorr]   errorra   sysexit_log_started_messager6   )r&   r>   rn   looprw   rq   
is_windowsserver	listeners	uds_permsexcr2   s   f&         @r   r_   Server.startup`   s    mm##%%%==$$$#D	 	 '') , >@DL%__.);
>>A%*(.D#11/RXR\R\flftft1uu##F+    IYY"==FNNF<N<NOD--ofjjbhbpbp-qqF>>---I"8DLZZ#Iww~~fjj))GGFJJ/77	22fjjfjj&.. 3  F HHVZZ+>>---I"8DL#11#

"NN  2    >>---I"8DL?%%i0 u 	&N v r  S!mm,,...s   N%L2N%A<N% 3N%3L54BN%L8A(N%<A N%L;A
N%(AL? )L=*L? .AN%5N%8N%;N%=L? ?N"
2N<M?=NN%N""N%c                    V ^8  d   QhRRRR/# )r   r   zSequence[socket.SocketType]r   r   r   )r   s   "r   r   r3      s     ! !.I !d !r   c                	d   V P                   pVP                  e0   V^ ,          p\        P                  RVP	                  4       4       R # VP
                  e#   \        P                  RVP
                  4       R # RpVP                  f   RMVP                  pRV9   d   RpVP                  pV^ 8X  d   V^ ,          P	                  4       ^,          pVP                  '       d   RMRpR	V R
2pR	\        P                  ! VRR7      ,           R
,           p	\        P                  VVVVRV	/R7       R # )Nz3Uvicorn 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]:%dhttpshttpzUvicorn running on z (Press CTRL+C to quit)T)boldrR   rS   )r2   r   r]   r^   getsocknamer   r}   r~   rz   r[   r\   )
r&   r   r2   rq   addr_formatr}   r~   protocol_namerc   rR   s
   &&        r   r   Server._log_started_message   s   99 Q<DKKE  "
 ZZ#KKRTZT^T^_ 'K & 39Dd{,;;Dqy |//1!4'-zzzGvM+K=8OPG1EKKRV4WWZssMKK&6  r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r3      s     6 6 6r   c                	   "   ^ pV P                  V4      G Rj  xL
 pV'       gL   V^,          pVR,          p\        P                  ! R4      G Rj  xL
  V P                  V4      G Rj  xL
 pKS  R#  LY L# L5i)r   Ni / 皙?)on_tickr   sleep)r&   counterr7   s   &  r   r`   Server.main_loop   sf      LL11qLG&G--$$$ $W 55K	  2 %5s8   A9A3A9+A9A5A9*A7+	A95A97A9c                    V ^8  d   QhRRRR/# )r   r   intr   boolr   )r   s   "r   r   r3      s      S T r   c                	  "   V^
,          ^ 8X  d   \         P                   ! 4       p\        VRR7      P                  4       pV P                  P                  '       d   RV3.pM. pW@P                  P
                  ,           V P                  n        V P                  P                  eT   W P                  ,
          V P                  P                  8  d)   W n	        V P                  P                  4       G Rj  xL
  V P                  '       d   R# V P                  P                  pVe7   V P                  P                  V8  d   \        P                  RV R24       R# R#  Lj5i)
   T)usegmts   dateNzMaximum request limit of z exceeded. Terminating process.F)timer   encoder2   date_headerencoded_headersr5   r%   callback_notifyr9   timeout_notifyr7   limit_max_requestsr!   r]   warning)r&   r   current_timecurrent_dater   max_requestss   &&    r   r   Server.on_tick   s    R<199;L%l4@GGIL{{&&& '67 0;kk>Y>Y0YD- {{**6"4"44t{{7Q7QQ)5&++55777 {{55#(9(9(H(HL(XNN6|nDcde 8s   C4E#6E!7E#AE#c                    V ^8  d   QhRRRR/# r=   r   )r   s   "r   r   r3     s     + +&@ +D +r   c                	d  "   \         P                  R 4       V P                   F  pVP                  4        K  	  T;'       g    .  F  pVP                  4        K  	  \	        V P
                  P                  4       F  pVP                  4        K  	  \        P                  ! R4      G Rj  xL
   \        P                  ! V P                  4       V P                  P                  R7      G Rj  xL
  V P&                  '       g%   V P(                  P                  4       G Rj  xL
  R# R#  L L>  \        P                   df    \         P                  R\!        T P
                  P"                  4      4       T P
                  P"                   F  pTP%                  RR7       K  	   Li ; i L5i)zShutting downr   N)timeoutz=Cancel %s running task(s), timeout graceful shutdown exceededz2Task cancelled, timeout graceful shutdown exceeded)msg)r]   r^   r   closelistr5   r#   ra   r   r   wait_for_wait_tasks_to_completer2   timeout_graceful_shutdownTimeoutErrorr   lenr$   cancelr8   rZ   )r&   r>   r   rq   
connectionts   &&    r   ra   Server.shutdown  sO    O$ llFLLN #MMrMDJJL " t00<<=J! >mmC   	S"",,.==   --((*** # 	! ## 	SLLOD%%++, &&,,QR -	S +sb   AF0A)F0-D-.F03=D1 0D/1D1 5F0F0$F.%	F0/D1 1A7F+(F0*F++F0c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r3   '  s     ' 't 'r   c                	  "   V P                   P                  '       dx   V P                  '       gf   R p\        P	                  V4       V P                   P                  '       d3   V P                  '       g!   \
        P                  ! R4      G Rj  xL
  KN  V P                   P                  '       dx   V P                  '       gf   Rp\        P	                  V4       V P                   P                  '       d3   V P                  '       g!   \
        P                  ! R4      G Rj  xL
  KN  V P                   F  pVP                  4       G Rj  xL
  K  	  R#  L L5 L5i)z8Waiting for connections to close. (CTRL+C to force quit)r   Nz@Waiting for background tasks to complete. (CTRL+C to force quit))
r5   r#   r8   r]   r^   r   r   r$   r   wait_closed)r&   r   r   s   &  r   r   Server._wait_tasks_to_complete'  s     (((LCKK##///mmC((( """4???TCKK##)))$///mmC(((llF$$&&& # ) ) 's^   .E2E$E6EE!E2E2E7E	E"E#(EEEEEc                   V ^8  d   QhRR/# )r   r   zGenerator[None, None, None]r   )r   s   "r   r   r3   :  s     1 1!< 1r   c              #  	  "   \         P                  ! 4       \         P                  ! 4       Jd   R x  R # \         Uu/ uF#  q\        P                  ! WP
                  4      bK%  	  pp R x  VP                  4        F  w  r\        P                  ! W4       K  	  \        V P                  4       F  p\        P                  ! V4       K  	  R # u upi   TP                  4        F  w  r\        P                  ! Y4       K  	  i ; i5irI   )
	threadingcurrent_threadmain_threadHANDLED_SIGNALSsignalhandle_exititemsreversedr:   raise_signal)r&   sigoriginal_handlershandlercaptured_signals   &    r   rJ   Server.capture_signals9  s      ##%Y-B-B-DD SbbRa3&--5E5E"FFRab	, 1 7 7 9c+ !:
  ((>(>?O0  @ c !2 7 7 9c+ !:s)   ;D	)C&D	)C -A(D	1DD	c               $    V ^8  d   QhRRRRRR/# )r   r   r   framezFrameType | Noner   r   r   )r   s   "r   r   r3   M  s"     $ $s $+; $ $r   c                	    V P                   P                  V4       V P                  '       d   V\        P                  8X  d
   R V n        R# R V n        R# )TN)r:   r   r7   r   SIGINTr8   )r&   r   r   s   &&&r   r   Server.handle_exitM  s<    %%c*v}} 4"DO#Dr   )	r:   r2   r8   r9   rZ   r5   r   r7   r6   rI   )r)   r*   r+   r,   r'   rE   rB   rK   r_   r   r`   r   ra   r   
contextlibcontextmanagerrJ   r   r.   r   r   r   r0   r0   6   s^    	/e'Q.[z!F6<+@'$ 1 1&$ $r   r0   )0__conditional_annotations__
__future__r   r   r   loggingrU   r   r   rt   r   r   r   collections.abcr   r   email.utilsr   typesr   typingr   r	   r[   uvicorn._compatr
   uvicorn.configr   uvicorn.protocols.http.h11_implr   %uvicorn.protocols.http.httptools_implr   ,uvicorn.protocols.websockets.websockets_implr   3uvicorn.protocols.websockets.websockets_sansio_implr   )uvicorn.protocols.websockets.wsproto_implr   r   __annotations__r   SIGTERMr   SIGBREAK	getLoggerr]   r   r0   )r   s   @r   <module>r      s    " "    	    
   / "  +  ' !;GN\D&)::ZGJ[[^vvIyv MM
NN <<7))O			?	+	= 	=\$ \$r   