+
     Bim                        R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t . R1Ot
]! ]R4      '       d   ]
P                  . R2O4       ]! ]R4      '       d6   ]
P                  . R3O4       ]! ]R4      '       d   ]
P                  RR.4       ]! ]R4      '       d   ]P                  tM]P                  t ! R R4      t ! R R]4      t ! R R]4      t]! ]R4      '       d    ! R R4      t ! R R]4      t ! R R 4      t ! R! R4      t]! ]R4      '       d    ! R" R]]4      t ! R# R]]4      t ! R$ R]]4      t ! R% R]]4      t]! ]R4      '       dV    ! R& R]4      t ! R' R]4      t ! R( R]]4      t ! R) R]]4      t]! ]R4      '       d    ! R* R]]4      t  ! R+ R]]4      t! ! R, R	4      t" ! R- R
]"4      t# ! R. R/]4      t$ ! R0 R]"4      t%R# )4z0.4N)BufferedIOBase)	monotonic
BaseServer	TCPServer	UDPServerThreadingUDPServerThreadingTCPServerBaseRequestHandlerStreamRequestHandlerDatagramRequestHandlerThreadingMixInforkForkingUDPServerForkingTCPServerForkingMixInAF_UNIXUnixStreamServerUnixDatagramServerThreadingUnixStreamServerThreadingUnixDatagramServerForkingUnixStreamServerForkingUnixDatagramServerPollSelectorc                      a  ] tR t^t o RtR tR tRR ltR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tRtV tR# )r   Nc                `    Wn         W n        \        P                  ! 4       V n        R V n        R# )FN)server_addressRequestHandlerClass	threadingEvent_BaseServer__is_shut_down_BaseServer__shutdown_request)selfr   r   s   &&&#/usr/lib/python3.14/socketserver.py__init__BaseServer.__init__   s%    ,#6 'oo/"'    c                    R # N r!   s   &r"   server_activateBaseServer.server_activate        	r%   c                &   V P                   P                  4         \        4       ;_uu_ 4       pVP                  V \        P
                  4       V P                  '       gO   VP                  V4      pV P                  '       d   M*V'       d   V P                  4        V P                  4        K`  R R R 4       RV n        V P                   P                  4        R #   + '       g   i     L3; i  RT n        T P                   P                  4        i ; i)NF)r   clear_ServerSelectorregister	selectors
EVENT_READr    select_handle_request_noblockservice_actionsset)r!   poll_intervalselectorreadys   &&  r"   serve_foreverBaseServer.serve_forever   s     	!!#	&
 !""h!!$	(<(<=111$OOM:E...446((* # ',D###% #" ',D###%s4   C- 2C!"CC"C/C- C*	%C- -#Dc                H    R V n         V P                  P                  4        R# )TN)r    r   waitr)   s   &r"   shutdownBaseServer.shutdown   s     #'  "r%   c                    R # r'   r(   r)   s   &r"   r5   BaseServer.service_actions  r,   r%   c                .   V P                   P                  4       pVf   V P                  pM#V P                  e   \        WP                  4      pVe   \	        4       V,           p\        4       ;_uu_ 4       pVP                  V \        P                  4        VP                  V4      '       d   V P                  4       uuR R R 4       # Vf   K8  X\	        4       ,
          pV^ 8  g   KR  V P                  4       uuR R R 4       #   + '       g   i     R # ; ir'   )socket
gettimeouttimeoutmintimer/   r0   r1   r2   r3   r4   handle_timeout)r!   rE   deadliner8   s   &   r"   handle_requestBaseServer.handle_request  s     ++((*?llG\\%'<<0Gv'H (dI$8$89??7++779  *"*TV"3"Q;#'#6#6#8 s$   68D/D	DD)DD	c                T    V P                  4       w  rT P                  Y4      '       d    T P                  Y4       R # T P                  T4       R #   \         d     R # i ; i  \         d'    T P                  Y4       T P                  T4        R #  T P                  T4       h ; ir'   )get_requestOSErrorverify_requestprocess_request	Exceptionhandle_errorshutdown_requestr!   requestclient_addresss   &  r"   r4   "BaseServer._handle_request_noblock1  s    	&*&6&6&8#G w77$$W= !!'*  		
  /!!':%%g.%%g.s"   A A$ A! A!$-B'B'c                    R # r'   r(   r)   s   &r"   rH   BaseServer.handle_timeoutH  s    
 	r%   c                    R # Tr(   rT   s   &&&r"   rO   BaseServer.verify_requestO  s     r%   c                J    V P                  W4       V P                  V4       R # r'   )finish_requestrS   rT   s   &&&r"   rP   BaseServer.process_requestW  s      	G4g&r%   c                    R # r'   r(   r)   s   &r"   server_closeBaseServer.server_close`  r,   r%   c                *    V P                  WV 4       R # r'   )r   rT   s   &&&r"   r^   BaseServer.finish_requesth  s      $?r%   c                (    V P                  V4       R # r'   close_requestr!   rU   s   &&r"   rS   BaseServer.shutdown_requestl      7#r%   c                    R # r'   r(   rh   s   &&r"   rg   BaseServer.close_requestp      r%   c                    \        R\        P                  R7       \        RV\        P                  R7       ^ RIpVP	                  4        \        R\        P                  R7       R# )-)filez4Exception occurred during processing of request fromNz(----------------------------------------)printsysstderr	traceback	print_exc)r!   rU   rV   rt   s   &&& r"   rR   BaseServer.handle_errort  sC     	f3::&D	-f3::&r%   c                    V # r'   r(   r)   s   &r"   	__enter__BaseServer.__enter__  s    r%   c                &    V P                  4        R # r'   )ra   )r!   argss   &*r"   __exit__BaseServer.__exit__  s    r%   )r   __is_shut_down__shutdown_requestr   )g      ?)__name__
__module____qualname____firstlineno__rE   r#   r*   r:   r>   r5   rJ   r4   rH   rO   rP   ra   r^   rS   rg   rR   rx   r|   __static_attributes____classdictcell____classdict__s   @r"   r   r      sh     \ G(&:#&9:+.'@$' r%   c                      a  ] tR tRt o ]P
                  t]P                  t^t	Rt
RtRR ltR tR tR tR tR tR	 tR
 tRtV tR# )r   i  Fc                   \         P                  WV4       \        P                  ! V P                  V P                  4      V n        V'       d$    V P                  4        V P                  4        R # R #    T P                  4        h ; ir'   )r   r#   rC   address_familysocket_typeserver_bindr*   ra   )r!   r   r   bind_and_activates   &&&&r"   r#   TCPServer.__init__  so    D2EFmmD$7$7$($4$46  "$$& !!#s    A4 4Bc                p   V P                   '       dP   \        \        R 4      '       d:   V P                  P                  \        P                  \        P
                  ^4       V P                  '       d   \        \        R4      '       di   V P                  \        P                  \        P                  39   d:   V P                  P                  \        P                  \        P                  ^4       V P                  P                  V P                  4       V P                  P                  4       V n        R# )SO_REUSEADDRSO_REUSEPORTN)allow_reuse_addresshasattrrC   
setsockopt
SOL_SOCKETr   allow_reuse_portr   AF_INETAF_INET6r   bindr   getsocknamer)   s   &r"   r   TCPServer.server_bind  s     ###(G(GKK""6#4#4f6I6I1M !!!gfn&E&E##'HHKK""6#4#4f6I6I1M,,-"kk557r%   c                P    V P                   P                  V P                  4       R # r'   )rC   listenrequest_queue_sizer)   s   &r"   r*   TCPServer.server_activate  s     	4223r%   c                :    V P                   P                  4        R # r'   )rC   closer)   s   &r"   ra   TCPServer.server_close  s     	r%   c                6    V P                   P                  4       # r'   )rC   filenor)   s   &r"   r   TCPServer.fileno       {{!!##r%   c                6    V P                   P                  4       # r'   )rC   acceptr)   s   &r"   rM   TCPServer.get_request  r   r%   c                     VP                  \        P                  4       V P	                  V4       R #   \         d     L i ; ir'   )r>   rC   SHUT_WRrN   rg   rh   s   &&r"   rS   TCPServer.shutdown_request  s?    	 V^^, 	7#  		s   4 AAc                &    VP                  4        R # r'   )r   rh   s   &&r"   rg   TCPServer.close_request  s    r%   )r   rC   Nr[   )r   r   r   r   rC   r   r   SOCK_STREAMr   r   r   r   r#   r   r*   ra   r   rM   rS   rg   r   r   r   s   @r"   r   r     s[     ` ^^N$$K8$4$$$ r%   c                   \   a  ] tR tRt o RtRt]P                  tRt	R t
R tR tR tRtV tR	# )
r   i  Fi    c                n    V P                   P                  V P                  4      w  rWP                   3V3# r'   )rC   recvfrommax_packet_size)r!   dataclient_addrs   &  r"   rM   UDPServer.get_request  s1     KK001E1EFkk"K//r%   c                    R # r'   r(   r)   s   &r"   r*   UDPServer.server_activate   rm   r%   c                (    V P                  V4       R # r'   rf   rh   s   &&r"   rS   UDPServer.shutdown_request$  rj   r%   c                    R # r'   r(   rh   s   &&r"   rg   UDPServer.close_request(  rm   r%   r(   N)r   r   r   r   r   r   rC   
SOCK_DGRAMr   r   rM   r*   rS   rg   r   r   r   s   @r"   r   r     s<       ##KO0$ r%   c                   b   a a ] tR tRt oRtRt^(tRtRR/R ltR t	R	 t
R
 tV 3R ltRtVtV ;t# )r   i-  i,  NTblockingFc                  V P                   f   R # \        V P                   4      V P                  8  d8    \        P                  ! R^ 4      w  r#V P                   P                  V4       K[  V P                   P                  4        FQ  p V'       d   ^ M\        P                  p\        P                  ! W$4      w  r#V P                   P                  V4       KS  	  R #   \         d    T P                   P                  4         K  \         d     K  i ; i  \         d     T P                   P                  T4        K  \         d     K  i ; i)N)active_childrenlenmax_childrenoswaitpiddiscardChildProcessErrorr.   rN   copyWNOHANG)r!   r   pid_flagss   &$   r"   collect_childrenForkingMixIn.collect_children6  s   ##+ d**+t/@/@@ZZA.FC((005 ++002
!)ArzzEZZ3FC ((005 3 ) 1((..0  ) 6((005 s<   4C 
AD%DDDD&E?EEEc                &    V P                  4        R # r'   r   r)   s   &r"   rH   ForkingMixIn.handle_timeoutY      
 !!#r%   c                &    V P                  4        R # r'   r   r)   s   &r"   r5   ForkingMixIn.service_actions`  r   r%   c                \   \         P                  ! 4       pV'       dL   V P                  f   \        4       V n        V P                  P	                  V4       V P                  V4       R # ^p V P                  W4       ^ p V P                  V4       \         P                  ! V4       R #   \         d    T P                  Y4        LHi ; i  \         P                  ! T4       i ; i   T P                  T4       \         P                  ! T4       i   \         P                  ! T4       i ; i; ir'   )r   r   r   r6   addrg   r^   rQ   rR   rS   _exit)r!   rU   rV   r   statuss   &&&  r"   rP   ForkingMixIn.process_requestg  s    '')C''/+.5D($$((-""7+ 	)''@F)--g6( ! ?%%g>? ()--g6((sH   ,B)  C )CC& CC& C#&D+(D9D+D((D+c                \   < \         SV `  4        V P                  V P                  R 7       R# ))r   N)superra   r   block_on_closer!   	__class__s   &r"   ra   ForkingMixIn.server_close  s%    G "!!4+>+>!?r%   )r   )r   r   r   r   rE   r   r   r   r   rH   r5   rP   ra   r   r   __classcell__r   r   s   @@r"   r   r   -  sC      !	u !	F	$	$	)2	@ 	@r%   c                   D   a a ] tR tRt oV 3R ltR tR tR tRtVt	V ;t
# )_Threadsi  c                n   < V P                  4        VP                  '       d   R # \        SV `  V4       R # r'   )reapdaemonr   append)r!   threadr   s   &&r"   r   _Threads.append  s$    		===vr%   c                $    . V R ,          uV R &   pV# )NNNr(   )r!   results   & r"   pop_all_Threads.pop_all  s    d1gQr%   c                T    V P                  4        F  pVP                  4        K  	  R # r'   )r   joinr!   r   s   & r"   r   _Threads.join  s    llnFKKM %r%   c                    R  V  4       V R&   R# )c              3   T   "   T F  qP                  4       '       g   K  Vx  K   	  R # 5ir'   )is_alive).0r   s   & r"   	<genexpr> _Threads.reap.<locals>.<genexpr>  s     Bf0A66s   (
(r   Nr(   r)   s   &r"   r   _Threads.reap  s    BBQr%   r(   )r   r   r   r   r   r   r   r   r   r   r   r   s   @@r"   r   r     s      C Cr%   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )
_NoThreadsi  c                    R # r'   r(   r   s   &&r"   r   _NoThreads.append      r%   c                    R # r'   r(   r)   s   &r"   r   _NoThreads.join  r   r%   r(   N)r   r   r   r   r   r   r   r   r   s   @r"   r   r     s      r%   r   c                   T   a a ] tR tRt oRtRt]! 4       tR tR t	V 3R lt
RtVtV ;t# )r   i  FTc                     V P                  W4       V P                  V4       R #   \         d    T P                  Y4        L1i ; i  T P                  T4       i ; ir'   )r^   rQ   rR   rS   rT   s   &&&r"   process_request_thread%ThreadingMixIn.process_request_thread  sU    	+8 !!'*  	7g6	7 !!'*s!   & AA AA Ac                .   V P                   '       d$   \        V 4      P                  R \        4       4       \        P
                  ! V P                  W3R7      pV P                  Vn        V P                  P                  V4       VP                  4        R# )_threads)targetr{   N)r   vars
setdefaultr   r   Threadr  daemon_threadsr   r  r   start)r!   rU   rV   ts   &&& r"   rP   ThreadingMixIn.process_request  sj    J!!*hj9d&A&A%,$=?&&Q		r%   c                X   < \         SV `  4        V P                  P                  4        R # r'   )r   ra   r  r   r   s   &r"   ra   ThreadingMixIn.server_close  s    r%   r(   )r   r   r   r   r  r   r   r  r  rP   ra   r   r   r   r   s   @@r"   r   r     s.     
 NN |H+ r%   c                       ] tR tRtRtR# )r   i  r(   Nr   r   r   r   r   r(   r%   r"   r   r         Tr%   c                       ] tR tRtRtR# )r   i  r(   Nr  r(   r%   r"   r   r     r  r%   c                       ] tR tRtRtR# )r   i  r(   Nr  r(   r%   r"   r   r     r  r%   c                       ] tR tRtRtR# )r   i  r(   Nr  r(   r%   r"   r   r     r  r%   c                   .    ] tR tRt]P
                  tRtR# )r   i  r(   Nr   r   r   r   rC   r   r   r   r(   r%   r"   r   r         r%   c                   .    ] tR tRt]P
                  tRtR# )r   i  r(   Nr  r(   r%   r"   r   r     r  r%   c                       ] tR tRtRtR# )r   i  r(   Nr  r(   r%   r"   r   r         tr%   c                       ] tR tRtRtR# )r   i  r(   Nr  r(   r%   r"   r   r         4r%   c                       ] tR tRtRtR# )r   i  r(   Nr  r(   r%   r"   r   r     r  r%   c                       ] tR tRtRtR# )r   i  r(   Nr  r(   r%   r"   r   r     r  r%   c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )r	   i  c                    Wn         W n        W0n        V P                  4         V P	                  4        V P                  4        R #   T P                  4        i ; ir'   )rU   rV   serversetuphandlefinish)r!   rU   rV   r$  s   &&&&r"   r#   BaseRequestHandler.__init__  s<    ,

	KKMKKMDKKMs   A Ac                    R # r'   r(   r)   s   &r"   r%  BaseRequestHandler.setup  r   r%   c                    R # r'   r(   r)   s   &r"   r&  BaseRequestHandler.handle  r   r%   c                    R # r'   r(   r)   s   &r"   r'  BaseRequestHandler.finish  r   r%   )rV   rU   r$  N)
r   r   r   r   r#   r%  r&  r'  r   r   r   s   @r"   r	   r	     s     $ r%   c                   <   a  ] tR tRt o Rt^ tRtRtR tR t	Rt
V tR# )r
   i  NFc                *   V P                   V n        V P                  e&   V P                  P                  V P                  4       V P                  '       d:   V P                  P                  \        P                  \        P                  R4       V P                  P                  RV P                  4      V n        V P                  ^ 8X  d   \        V P                  4      V n        R # V P                  P                  RV P                  4      V n        R # )NTrbwb)rU   
connectionrE   
settimeoutdisable_nagle_algorithmr   rC   IPPROTO_TCPTCP_NODELAYmakefilerbufsizerfilewbufsize_SocketWriterwfiler)   s   &r"   r%  StreamRequestHandler.setup)  s    ,,<<#OO&&t||4'''OO&&v'9'9'-'9'94A__--dDMMB
==A&t7DJ11$FDJr%   c                   V P                   P                  '       g    V P                   P                  4        V P                   P                  4        V P                  P                  4        R #   \        P                   d     LMi ; ir'   )r=  closedflushrC   errorr   r:  r)   s   &r"   r'  StreamRequestHandler.finish6  sc    zz   

  "
 	



 <<  s   A. .BB)r3  r:  r=  r   )r   r   r   r   r9  r;  rE   r5  r%  r'  r   r   r   s   @r"   r
   r
     s0      HH G $G	 	r%   c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )r<  iA  c                    Wn         R # r'   _sock)r!   socks   &&r"   r#   _SocketWriter.__init__F  s    
r%   c                    R # r[   r(   r)   s   &r"   writable_SocketWriter.writableI  s    r%   c                    V P                   P                  V4       \        V4      ;_uu_ 4       pVP                  uuR R R 4       #   + '       g   i     R # ; ir'   )rG  sendall
memoryviewnbytes)r!   bviews   && r"   write_SocketWriter.writeL  s2    

1]]d;; ]]]s   AA	c                6    V P                   P                  4       # r'   )rG  r   r)   s   &r"   r   _SocketWriter.filenoQ  s    zz  ""r%   rF  N)
r   r   r   r   r#   rK  rS  r   r   r   r   s   @r"   r<  r<  A  s     

# #r%   r<  c                   ,   a  ] tR tRt o R tR tRtV tR# )r   iT  c                    ^ RI Hp V P                  w  V n        V n        V! V P                  4      V n        V! 4       V n        R# )    )BytesION)iorZ  rU   packetrC   r:  r=  )r!   rZ  s   & r"   r%  DatagramRequestHandler.setupX  s0    #'<< T[T[[)
Y
r%   c                    V P                   P                  V P                  P                  4       V P                  4       R # r'   )rC   sendtor=  getvaluerV   r)   s   &r"   r'  DatagramRequestHandler.finish^  s)    4::..0$2E2EFr%   )r\  r:  rC   r=  N)r   r   r   r   r%  r'  r   r   r   s   @r"   r   r   T  s     G Gr%   )	r   r   r   r   r   r	   r
   r   r   )r   r   r   )r   r   r   r   )&__version__rC   r1   r   rr   r   r[  r   rG   r   __all__r   extendr   r/   SelectSelectorr   r   r   r   listr   r   r   r   r   r   r   r   r   r   r   r   r   r	   r
   r<  r   r(   r%   r"   <module>rg     s  v    	 
   "7 2vNNJK
69NN 3 4 r613NOP 9n%%,,O..Oj jZE
 EP	 8 2vU@ U@pCt C, % %P 2v9<99<9 9 9 9 9
69(9 ((Y ( LN4DKOn6HOr6Kl4DKO6HO# #\+- +Z#N #&G/ Gr%   