+
    i                       R t ^ RIHt ^ RIt^ RI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HtHtHtHtHtHtHtHtHtHtHtHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IH t  ^ R
I!H"t" ^ RI!H#t# ^ RI!H$t$ ^ RI!H%t% ^ RI!H&t& ^ RI!H't' ^ RI!H(t( ^ RI!H)t) ^ RI!H*t* ^ RI+H,t, ]	PZ                  ! ].4      t/Rt0Rt1Rt2Rt3Rt4Rt5Rt6Rt7Rt8Rt9Rt:Rt;^ t<R t=R!t>R" R# lt?R$ R% lt@R& R' ltAR( R) ltBR* R+ ltC ! R, R-]P                  ! R-R4      ]P                  4      tF ! R. R/]P                  4      tH ! R0 R1]H4      tI ! R2 R3]H4      tJ ! R4 R5]K4      tLR6 R7 ltMR8 R9 ltNR: R; ltOR< R= ltPR> R? ltQR@ RA ltRRB RC ltSRD RE ltTRF RG ltURH RI ltV ! RJ RK]P                  4      tX ! RL RM]K4      tYRN RO ltZRRP RQ llt[RR RS lt\RT RU lt]RV RW lt^RX RY lt_RZ R[ lt`R\ R] ltaR^ R_ ltbR` Ra ltcRb Rc ltdRd Re lteRf Rg ltfRh Ri ltgRj Rk lthRl Rm ltiRn Ro ltjRp Rq ltkRr Rs ltlRt Ru ltmRv Rw ltn]P                   ! Rx Ry]P                  4      4       tq ! Rz R{]K4      trR| R} ltsR~ R lttR R ltuR R ltvR R ltwR R ltxR R ltyR R ltzR R lt{R R lt|R R lt}R R lt~R R ltR R ltR R lt ! R R]EP                  4      tR R ltR# )z+Service-side implementation of gRPC Python.)annotationsN)futures)AnyCallableDictIterableIteratorListMappingOptionalSequenceSetTupleUnion)_common)_compression)_interceptor)_observability)cygrpc)ArityAgnosticMethodHandler)ChannelArgumentType)DeserializingFunction)MetadataType)NullaryCallbackType)ResponseType)SerializingFunction)ServerCallbackTag)ServerTagCallbackType)overrideshutdownrequest_callreceive_close_on_serversend_initial_metadatareceive_messagesend_messagez$send_initial_metadata * send_messagesend_status_from_serverz/send_initial_metadata * send_status_from_serveropenclosed	cancelledg      ?g    eAc                    V ^8  d   QhRRRR/# )   request_eventcygrpc.BaseEventreturnbytes )formats   "_/Users/igloo/.openclaw/workspace/scratch/fb_ad_env/lib/python3.14/site-packages/grpc/_server.py__annotate__r2   V   s     7 7'7 7E 7    c                D    V P                   ^ ,          P                  4       #     )batch_operationsmessage)r+   s   &r1   _serialized_requestr9   V   s    ))!,4466r3   c                    V ^8  d   QhRRRR/# )r*   codegrpc.StatusCoder-   cygrpc.StatusCoder/   )r0   s   "r1   r2   r2   Z   s     M MO M0A Mr3   c                    \         P                  P                  V 4      pVf   \        P                  P
                  # T# N)r   !STATUS_CODE_TO_CYGRPC_STATUS_CODEgetr   
StatusCodeunknown)r;   cygrpc_codes   & r1   _application_coderE   Z   s4    ;;??EK(3(;6$$LLr3   c                    V ^8  d   QhRRRR/# )r*   state	_RPCStater-   r=   r/   )r0   s   "r1   r2   r2   _   s     ) )I )*; )r3   c                |    V P                   f   \        P                  P                  # \	        V P                   4      # r?   )r;   r   rB   okrE   rG   s   &r1   _completion_coderL   _   s-    zz  ###UZZ((r3   c               $    V ^8  d   QhRRRRRR/# )r*   rG   rH   r;   r=   r-   r/   )r0   s   "r1   r2   r2   e   s$     ) ))-))r3   c                L    V P                   f   V# \        V P                   4      # r?   )r;   rE   )rG   r;   s   &&r1   _abortion_coderO   e   s"     zzUZZ((r3   c                    V ^8  d   QhRRRR/# )r*   rG   rH   r-   r.   r/   )r0   s   "r1   r2   r2   m   s     ; ;I ;% ;r3   c                :    V P                   f   R# V P                   # )Nr3   )detailsrK   s   &r1   _detailsrS   m   s    --'3:U]]:r3   c                      ] tR t^qtRtR# )_HandlerCallDetailsr/   N)__name__
__module____qualname____firstlineno____static_attributes__r/   r3   r1   rU   rU   q   s     	r3   rU   c                  j    ] tR t^~t]P
                  R R l4       t]P
                  R R l4       tRtR# )_Methodc                   V ^8  d   QhRR/# r*   r-   zOptional[str]r/   )r0   s   "r1   r2   _Method.__annotate__   s     $ $m $r3   c                	    \        4       hr?   NotImplementedErrorselfs   &r1   name_Method.name   s    !##r3   c                    V ^8  d   QhRRRR/# r*   handler_call_detailsrU   r-   Optional[grpc.RpcMethodHandler]r/   )r0   s   "r1   r2   r_      s     $ $$7$	($r3   c                	    \        4       hr?   ra   rd   ri   s   &&r1   handler_Method.handler   s     "##r3   r/   N)	rV   rW   rX   rY   abcabstractmethodre   rm   rZ   r/   r3   r1   r\   r\   ~   s4    $ $ 	$ $r3   r\   c                  N    ] tR t^tR R lt]R R l4       t]R R l4       tRtR# )	_RegisteredMethodc                    V ^8  d   QhRRRR/# )r*   re   strregistered_handlerrj   r/   )r0   s   "r1   r2   _RegisteredMethod.__annotate__   s     6 66 <6r3   c                	    Wn         W n        R # r?   _name_registered_handler)rd   re   ru   s   &&&r1   __init___RegisteredMethod.__init__   s    
 
#5 r3   c                   V ^8  d   QhRR/# r^   r/   )r0   s   "r1   r2   rv      s      m r3   c                	    V P                   # r?   )ry   rc   s   &r1   re   _RegisteredMethod.name   s    zzr3   c                    V ^8  d   QhRRRR/# rh   r/   )r0   s   "r1   r2   rv      s     ( ($7(	((r3   c                	    V P                   # r?   )rz   rl   s   &&r1   rm   _RegisteredMethod.handler   s     '''r3   rx   N	rV   rW   rX   rY   r{   r   re   rm   rZ   r/   r3   r1   rr   rr      s/    6   ( (r3   rr   c                  N    ] tR t^tR R lt]R R l4       t]R R l4       tRtR# )	_GenericMethodc                   V ^8  d   QhRR/# )r*   generic_handlersList[grpc.GenericRpcHandler]r/   )r0   s   "r1   r2   _GenericMethod.__annotate__   s     2 262r3   c                	    Wn         R # r?   _generic_handlers)rd   r   s   &&r1   r{   _GenericMethod.__init__   s
     "2r3   c                   V ^8  d   QhRR/# r^   r/   )r0   s   "r1   r2   r      s      m r3   c                	    R # r?   r/   rc   s   &r1   re   _GenericMethod.name   s    r3   c                    V ^8  d   QhRRRR/# rh   r/   )r0   s   "r1   r2   r      s     	 	$7		(	r3   c                	^    V P                    F  pVP                  V4      pVf   K  Vu # 	  R # r?   )r   service)rd   ri   generic_handlermethod_handlers   &&  r1   rm   _GenericMethod.handler   s6      $55O,445IJN)%%  6 r3   r   Nr   r/   r3   r1   r   r      s/    2   	 	r3   r   c                      ] tR t^t$ R]R&   R]R&   ]],          tR]R&   R]R&   R	]R
&   R]R&   R	]R&   R]R&   R]R&   R]R&   R	]R&   R]R&   R]R&   R	]R&   R tRt	R# )rH   zcontextvars.Contextcontextzthreading.Condition	conditionr   requestrt   clientboolinitial_metadata_allowedOptional[grpc.Compression]compression_algorithmdisable_next_compressionOptional[MetadataType]trailing_metadatazOptional[grpc.StatusCode]r;   Optional[bytes]rR   statusedzList[Exception]
rpc_errorsz#Optional[List[NullaryCallbackType]]	callbacksabortedc                	<   \         P                  ! 4       V n        \        P                  ! 4       V n        \        4       V n        R V n        \        V n
        RV n        R V n        RV n        R V n        R V n        R V n        RV n        . V n        . V n        RV n        R # )NTF)contextvarsContextr   	threading	Conditionr   setduer   _OPENr   r   r   r   r   r;   rR   r   r   r   r   rc   s   &r1   r{   _RPCState.__init__   s    "**,",,.5(,%%)"(-%!%	r3   )r   r   r   r;   r   r   r   rR   r   r   r   r   r   r   r   N)
rV   rW   rX   rY   __annotations__r   rt   r   r{   rZ   r/   r3   r1   rH   rH      s`      ""
c(CLK""55""--
##N22Mr3   rH   c                    V ^8  d   QhRRRR/# r*   rG   rH   r-   Noner/   )r0   s   "r1   r2   r2      s      I $ r3   c                f    \         P                  ! 4       pV P                  P                  V4       Vhr?   )grpcRpcErrorr   append)rG   	rpc_errors   & r1   _raise_rpc_errorr      s&    I	I&
Or3   c               $    V ^8  d   QhRRRRRR/# )r*   rG   rH   tokenrt   r-   r   r/   )r0   s   "r1   r2   r2      s$       r3   c                    V P                   P                  V4       \        V 4      '       g)   V P                   '       g   V P                  pR V n        W3# R# )NNr/   )r   remove_is_rpc_state_activer   )rG   r   r   s   && r1   _possibly_finish_callr      sG     
IIU&&uyyyOO	Or3   c               $    V ^8  d   QhRRRRRR/# r*   rG   rH   r   rt   r-   r   r/   )r0   s   "r1   r2   r2      s"     # #I #c #>O #r3   c                   a a V V3R  lpV# )c                   < SP                   ;_uu_ 4        \        SS4      uuR R R 4       #   + '       g   i     R # ; ir?   )r   r   )$unused_send_status_from_server_eventrG   r   s   &r1   r%   9_send_status_from_server.<locals>.send_status_from_server   s"    ___(6 ___s   ->	r/   )rG   r   r%   s   ff r1   _send_status_from_serverr      s    7 #"r3   c               $    V ^8  d   QhRRRRRR/# )r*   rG   rH   metadatar   r-   r/   )r0   s   "r1   r2   r2      s$       6r3   c                *   V P                   ;_uu_ 4        V P                  '       dN   \        P                  ! V P                  4      3pVf   VuuR R R 4       # V\	        V4      ,           uuR R R 4       # VuuR R R 4       #   + '       g   i     R # ; ir?   )r   r   r   !compression_algorithm_to_metadatatuple)rG   r   compression_metadatas   && r1   _get_initial_metadatar      sp     
&&&>>//$ 
 + 
 (%/9 
  
s   9BB5BB	c               $    V ^8  d   QhRRRRRR/# )r*   rG   rH   r   r   r-   zcygrpc.Operationr/   )r0   s   "r1   r2   r2     s$       6r3   c                N    \         P                  ! \        W4      \        4      pV# r?   )r   SendInitialMetadataOperationr   _EMPTY_FLAGS)rG   r   	operations   && r1   _get_initial_metadata_operationr     s&     33e.I r3   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r*   rG   rH   callcygrpc.Callr;   r=   rR   r.   r-   r   r/   )r0   s   "r1   r2   r2     s4      '/@KP	r3   c                   V P                   \        Jd   \        W4      pV P                  f   TMV P                  pV P                  '       d;   \        V R 4      \        P                  ! V P                  VV\        4      3p\        pM.\        P                  ! V P                  VV\        4      3p\        pVP                  V\        W4      4       RV n        V P                  P!                  V4       R # R # NT)r   
_CANCELLEDrO   rR   r   r   r   SendStatusFromServerOperationr   r   8_SEND_INITIAL_METADATA_AND_SEND_STATUS_FROM_SERVER_TOKEN_SEND_STATUS_FROM_SERVER_TOKENstart_server_batchr   r   r   add)rG   r   r;   rR   effective_codeeffective_details
operationsr   s   &&&&    r1   _abortr     s     ||:%'4',}}'<G%--)))/t<44++"% 	J ME 44++"% 	J 3E0>	
 		e9 &r3   c                    V ^8  d   QhRRRR/# r*   rG   rH   r-   r   r/   )r0   s   "r1   r2   r2   -  s     
# 
#I 
#2C 
#r3   c                   a  V 3R  lpV# )c                b  < SP                   ;_uu_ 4        V P                  ^ ,          P                  4       '       d   \        Sn        MSP                  \
        J d   \        Sn        SP                   P                  4        \        S\        4      uuRRR4       #   + '       g   i     R# ; i)r6   N)
r   r7   r(   r   r   r   _CLOSED
notify_allr   _RECEIVE_CLOSE_ON_SERVER_TOKEN)receive_close_on_server_eventrG   s   &r1   r!   9_receive_close_on_server.<locals>.receive_close_on_server.  sg    ___,==a@JJLL)&&OO&&((0NO ___s   A<BB.	r/   )rG   r!   s   f r1   _receive_close_on_serverr   -  s    P #"r3   c               (    V ^8  d   QhRRRRRRRR/# )	r*   rG   rH   r   r   request_deserializerOptional[DeserializingFunction]r-   r   r/   )r0   s   "r1   r2   r2   :  s0      
 : 	r3   c                   a aa VVV 3R  lpV# )c                f  < \        V 4      pVfi   SP                  ;_uu_ 4        SP                  \        J d   \        Sn        SP                  P                  4        \        S\        4      uuR R R 4       # \        P                  ! VS4      pSP                  ;_uu_ 4        Vf(   \        SS\        P                  P                  R4       MVSn        SP                  P                  4        \        S\        4      uuR R R 4       #   + '       g   i     R # ; i  + '       g   i     R # ; i)Ns    Exception deserializing request!)r9   r   r   r   r   r   r   _RECEIVE_MESSAGE_TOKENr   deserializer   r   rB   internalr   )receive_message_eventserialized_requestr   r   r   rG   s   &  r1   r#   )_receive_message.<locals>.receive_message?  s    01FG%<<5(#*EL**,,U4JK	 ! ))"$8G ?))22;	 %,EM**,,U4JK ! ! !s   A	D$ADD	D0	r/   )rG   r   r   r#   s   fff r1   _receive_messager   :  s    
L2 r3   c                    V ^8  d   QhRRRR/# r   r/   )r0   s   "r1   r2   r2   [  s     ! !) !0A !r3   c                   a  V 3R  lpV# )c                   < SP                   ;_uu_ 4        \        S\        4      uuR R R 4       #   + '       g   i     R # ; ir?   )r   r   _SEND_INITIAL_METADATA_TOKEN)"unused_send_initial_metadata_eventrG   s   &r1   r"   5_send_initial_metadata.<locals>.send_initial_metadata\  s#    ___(0LM ___s	   1A	r/   )rG   r"   s   f r1   _send_initial_metadatar  [  s    N ! r3   c               $    V ^8  d   QhRRRRRR/# r   r/   )r0   s   "r1   r2   r2   c  s"       3 3D r3   c                   a a V V3R  lpV# )c                   < SP                   ;_uu_ 4        SP                   P                  4        \        SS4      uuR R R 4       #   + '       g   i     R # ; ir?   )r   r   r   )unused_send_message_eventrG   r   s   &r1   r$   #_send_message.<locals>.send_messaged  s2    ___OO&&((6 ___s   &AA	r/   )rG   r   r$   s   ff r1   _send_messager  c  s    7
 r3   c                  >   ] tR tRt$ R]R&   R]R&   R]R&   R R	 ltR
 R ltR R ltR R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4tR5# )6_Contextil  r,   
_rpc_eventrH   _stater   r   c               $    V ^8  d   QhRRRRRR/# )r*   	rpc_eventr,   rG   rH   r   r   r/   )r0   s   "r1   r2   _Context.__annotate__q  s(     : :#: : >	:r3   c                	*    Wn         W n        W0n        R # r?   )r
  r  _request_deserializer)rd   r  rG   r   s   &&&&r1   r{   _Context.__init__q  s     $%9"r3   c                   V ^8  d   QhRR/# )r*   r-   r   r/   )r0   s   "r1   r2   r  {  s     5 54 5r3   c                	    V P                   P                  ;_uu_ 4        \        V P                   4      uuR R R 4       #   + '       g   i     R # ; ir?   )r  r   r   rc   s   &r1   	is_active_Context.is_active{  s-    [["""'4 #"""s	   ?A	c                   V ^8  d   QhRR/# )r*   r-   floatr/   )r0   s   "r1   r2   r    s     K K Kr3   c                	    \        V P                  P                  P                  \        P                  ! 4       ,
          ^ 4      # r5   )maxr
  call_detailsdeadlinetimerc   s   &r1   time_remaining_Context.time_remaining  s*    4??//88499;FJJr3   c                   V ^8  d   QhRR/# r*   r-   r   r/   )r0   s   "r1   r2   r    s     & & &r3   c                	N    V P                   P                  P                  4        R # r?   )r
  r   cancelrc   s   &r1   r"  _Context.cancel  s    ##%r3   c                    V ^8  d   QhRRRR/# )r*   callbackr   r-   r   r/   )r0   s   "r1   r2   r    s      %8 T r3   c                	   V P                   P                  ;_uu_ 4        V P                   P                  f    R R R 4       R# V P                   P                  P                  V4        R R R 4       R#   + '       g   i     R # ; i)NFT)r  r   r   r   )rd   r%  s   &&r1   add_callback_Context.add_callback  sY    [["""{{$$, #" KK!!((2	 #"""s   A3&A33B	c                   V ^8  d   QhRR/# r   r/   )r0   s   "r1   r2   r    s     8 8$ 8r3   c                	    V P                   P                  ;_uu_ 4        R V P                   n        RRR4       R#   + '       g   i     R# ; iTN)r  r   r   rc   s   &r1    disable_next_message_compression)_Context.disable_next_message_compression  s-    [["""37DKK0 #"""s	   ;A	c                   V ^8  d   QhRR/# r*   r-   r   r/   )r0   s   "r1   r2   r    s     3 3%; 3r3   c                	.    V P                   P                  # r?   )r
  invocation_metadatarc   s   &r1   r1  _Context.invocation_metadata  s    222r3   c                   V ^8  d   QhRR/# )r*   r-   rt   r/   )r0   s   "r1   r2   r    s     ; ;c ;r3   c                	r    \         P                  ! V P                  P                  P	                  4       4      # r?   )r   decoder
  r   peerrc   s   &r1   r6  _Context.peer  s$    ~~doo22779::r3   c                   V ^8  d   QhRR/# )r*   r-   zOptional[Sequence[bytes]]r/   )r0   s   "r1   r2   r    s     < <!: <r3   c                	V    \         P                  ! V P                  P                  4      # r?   )r   peer_identitiesr
  r   rc   s   &r1   r:  _Context.peer_identities  s    %%doo&:&:;;r3   c                   V ^8  d   QhRR/# r^   r/   )r0   s   "r1   r2   r    s     D D= Dr3   c                	    \         P                  ! V P                  P                  4      pVf   V# \        P
                  ! V4      # r?   )r   peer_identity_keyr
  r   r   r5  )rd   id_keys   & r1   r>  _Context.peer_identity_key  s4    ))$//*>*>?vCW^^F-CCr3   c                   V ^8  d   QhRR/# )r*   r-   zMapping[str, Sequence[bytes]]r/   )r0   s   "r1   r2   r    s     
 
; 
r3   c                	    \         P                  ! V P                  P                  4      pVf   / MTpVP	                  4        UUu/ uF  w  r4\
        P                  ! V4      VbK  	  upp# u uppi r?   )r   auth_contextr
  r   itemsr   r5  )rd   rC  auth_context_dictkeyvalues   &    r1   rC  _Context.auth_context  si    **4??+?+?@"."6BL 0557
7
 NN3&7
 	
 
s   "A,c                    V ^8  d   QhRRRR/# )r*   compressionzgrpc.Compressionr-   r   r/   )r0   s   "r1   r2   r    s     < <+; < <r3   c                	    V P                   P                  ;_uu_ 4        WP                   n        R R R 4       R #   + '       g   i     R # ; ir?   )r  r   r   )rd   rJ  s   &&r1   set_compression_Context.set_compression  s+    [["""0;KK- #"""	   :A	c                    V ^8  d   QhRRRR/# )r*   initial_metadatar   r-   r   r/   )r0   s   "r1   r2   r    s     , ,l ,t ,r3   c                	L   V P                   P                  ;_uu_ 4        V P                   P                  \        J d   \	        V P                   4       V P                   P
                  '       d   \        V P                   V4      pV P                  P                  P                  V3\        V P                   4      4       R V P                   n        V P                   P                  P                  \        4       MRp\        V4      h RRR4       R#   + '       g   i     R# ; i)Fz#Initial metadata no longer allowed!N)r  r   r   r   r   r   r   r
  r   r   r  r   r   r   
ValueError)rd   rP  r   	error_msgs   &&  r1   r"   _Context.send_initial_metadata  s    [["""{{!!Z/ -{{333;KK!1	 $$77L"8"E 8=4##$@AA	 ++ B #"""s   AD/BDD#	c                    V ^8  d   QhRRRR/# )r*   r   r   r-   r   r/   )r0   s   "r1   r2   r    s     > >| > >r3   c                	    V P                   P                  ;_uu_ 4        WP                   n        R R R 4       R #   + '       g   i     R # ; ir?   )r  r   r   )rd   r   s   &&r1   set_trailing_metadata_Context.set_trailing_metadata  s+    [[""",=KK) #"""rN  c                   V ^8  d   QhRR/# r/  r/   )r0   s   "r1   r2   r    s     - -#9 -r3   c                	.    V P                   P                  # r?   )r  r   rc   s   &r1   r   _Context.trailing_metadata  s    {{,,,r3   c               $    V ^8  d   QhRRRRRR/# )r*   r;   r<   rR   rt   r-   r   r/   )r0   s   "r1   r2   r    s!      / C D r3   c                	   V\         P                  P                  8X  d2   \        P	                  R 4       \         P                  P
                  pRpV P                  P                  ;_uu_ 4        WP                  n        \        P                  ! V4      V P                  n        RV P                  n        \        4       h  + '       g   i     R# ; i)z4abort() called with StatusCode.OK; returning UNKNOWN TN)r   rB   OK_LOGGERerrorUNKNOWNr  r   r;   r   encoderR   r   	Exception)rd   r;   rR   s   &&&r1   abort_Context.abort  s    4??%%%MMF ??**DG[["""#KK").."9DKK"&DKK+	 #""s   /AC  C	c                    V ^8  d   QhRRRR/# )r*   statuszgrpc.Statusr-   r   r/   )r0   s   "r1   r2   r    s     0 0 0 0r3   c                	    VP                   V P                  n         V P                  VP                  VP                  4       R # r?   )r   r  re  r;   rR   )rd   rh  s   &&r1   abort_with_status_Context.abort_with_status  s*    (.(@(@%

6;;/r3   c                    V ^8  d   QhRRRR/# )r*   r;   r<   r-   r   r/   )r0   s   "r1   r2   r    s     $ $_ $ $r3   c                	    V P                   P                  ;_uu_ 4        WP                   n        R R R 4       R #   + '       g   i     R # ; ir?   )r  r   r;   )rd   r;   s   &&r1   set_code_Context.set_code  s+    [["""#KK #"""rN  c                   V ^8  d   QhRR/# )r*   r-   r<   r/   )r0   s   "r1   r2   r    s        o  r3   c                	.    V P                   P                  # r?   )r  r;   rc   s   &r1   r;   _Context.code  s    {{r3   c                    V ^8  d   QhRRRR/# )r*   rR   rt   r-   r   r/   )r0   s   "r1   r2   r    s     : :3 :4 :r3   c                	    V P                   P                  ;_uu_ 4        \        P                  ! V4      V P                   n        R R R 4       R #   + '       g   i     R # ; ir?   )r  r   r   rc  rR   )rd   rR   s   &&r1   set_details_Context.set_details  s6    [["""").."9DKK #"""s   &AA 	c                   V ^8  d   QhRR/# )r*   r-   r.   r/   )r0   s   "r1   r2   r    s     # # #r3   c                	.    V P                   P                  # r?   )r  rR   rc   s   &r1   rR   _Context.details  s    {{"""r3   c                   V ^8  d   QhRR/# r   r/   )r0   s   "r1   r2   r    s       r3   c                	    R # r?   r/   rc   s   &r1   _finalize_state_Context._finalize_state  s    r3   )r  r
  r  N)rV   rW   rX   rY   r   r{   r  r  r"  r'  r,  r1  r6  r:  r>  rC  rL  r"   rW  r   re  rj  rn  r;   ru  rR   r|  rZ   r/   r3   r1   r	  r	  l  s      99:5K&83;<D
<,">-0$ :# r3   r	  c                      ] tR tRt$ R]R&   R]R&   R]R&   R R	 ltR
 R ltR R ltR R ltR R lt	R R lt
R R ltRtR# )_RequestIteratori  rH   r  r   _callr   r  c               $    V ^8  d   QhRRRRRR/# )r*   rG   rH   r   r   r   r   r/   )r0   s   "r1   r2   _RequestIterator.__annotate__  s(     : :: : >	:r3   c                	*    Wn         W n        W0n        R # r?   )r  r  r  )rd   rG   r   r   s   &&&&r1   r{   _RequestIterator.__init__  s     
%9"r3   c                   V ^8  d   QhRR/# r   r/   )r0   s   "r1   r2   r    s     8 8 8r3   c                	   V P                   P                  \        J d   \        V P                   4       R # \	        V P                   4      '       g   \        4       hV P                  P                  \        P                  ! \        4      3\        V P                   V P                  V P                  4      4       V P                   P                  P                  \        4       R # r?   )r  r   r   r   r   StopIterationr  r   r   ReceiveMessageOperationr   r   r  r   r   r   rc   s   &r1   _raise_or_start_receive_message0_RequestIterator._raise_or_start_receive_message  s    ;;+T[[)%dkk22/!JJ))//=? KKT-G-G KKOO 67r3   c                   V ^8  d   QhRR/# r*   r-   r   r/   )r0   s   "r1   r2   r    s      3 r3   c                	P   V P                   P                  \        J d    \        V P                   4       \        4       hV P                   P                  f*   \
        V P                   P                  9  d   \        4       hV P                   P                  pR V P                   n        V# r?   )	r  r   r   r   r   r   r   r  AssertionErrorrd   r   s   & r1   _look_for_request"_RequestIterator._look_for_request  su    ;;+T[[)  KK'&dkkoo=/!kk))G"&DKKNr3   c                   V ^8  d   QhRR/# r  r/   )r0   s   "r1   r2   r    s     # #s #r3   c                	   V P                   P                  ;_uu_ 4        V P                  4         V P                   P                  P                  4        V P	                  4       pVf   K;  VuuRRR4       #   + '       g   i     R# ; ir+  )r  r   r  waitr  r  s   & r1   _next_RequestIterator._next  s]    [["""002%%**,002&" #"""s   AA7+A77B	c                   V ^8  d   QhRR/# )r*   r-   r  r/   )r0   s   "r1   r2   r    s      * r3   c                	    V # r?   r/   rc   s   &r1   __iter___RequestIterator.__iter__  s    r3   c                   V ^8  d   QhRR/# r  r/   )r0   s   "r1   r2   r    s      # r3   c                	"    V P                  4       # r?   r  rc   s   &r1   __next___RequestIterator.__next__      zz|r3   c                   V ^8  d   QhRR/# r  r/   )r0   s   "r1   r2   r     s      c r3   c                	"    V P                  4       # r?   r  rc   s   &r1   next_RequestIterator.next   r  r3   )r  r  r  N)rV   rW   rX   rY   r   r{   r  r  r  r  r  r  rZ   r/   r3   r1   r  r    s<    :::8# r3   r  c               (    V ^8  d   QhRRRRRRRR/# )	r*   r  r,   rG   rH   r   r   r-   Callable[[], Any]r/   )r0   s   "r1   r2   r2   $  s0     % %%% :% 	%r3   c                   a aa VV V3R  lpV# )c            
     B  < SP                   ;_uu_ 4        \        S4      '       g    R R R 4       R # SP                  P                  \        P
                  ! \        4      3\        SSP                  S4      4       SP                  P                  \        4        SP                   P                  4        SP                  f   SP                  \        J du   RP                  SP                   P"                  4      p \%        SSP                  \        P&                  P(                  \*        P,                  ! V 4      4        R R R 4       R # SP                  \.        J d    R R R 4       R # K  SP                  pR Sn        VuuR R R 4       #   + '       g   i     R # ; i)Nz*"{}" requires exactly one request message.)r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r0   r  methodr   rB   unimplementedr   rc  r   )rR   r   r   r  rG   s     r1   unary_request%_unary_request.<locals>.unary_request)  s.   ___'.. _ NN--//=? 	8LM IIMM01$$&==(||w.HOO ) 6 6 = =  
 !%NN"--;;#NN73	  $/ _0 ||z1#3 _0 2 $mmG$(EM"; ___s   FDFF,FF	r/   )r  rG   r   r  s   fff r1   _unary_requestr  $  s    
#@ r3   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r*   r  r,   rG   rH   behaviorr   argumentr   r   r   send_response_callbackz(Optional[Callable[[ResponseType], None]]r-   z8Tuple[Union[ResponseType, Iterator[ResponseType]], bool]r/   )r0   s   "r1   r2   r2   L  sO     7 777 )7 	7
 :7 E7 >7r3   c                   ^ RI Hp V! WV4      ;_uu_ 4       p RpVe   V! W7V4      pMV! W74      pVR3uuRRR4       #   \         Edm   p	TP                  ;_uu_ 4        TP                  '       d2   \        TT P                  \        P                  P                  R4       MYP                  9  d    RP                  T	4      p
Mf  \         dY    Rp
\        P                  \        P                  ! \!        T	4      T	T	P"                  4      4       \        P$                  ! 4         Mi ; i\        P                  T
4       \        TT P                  \        P                  P                  \&        P(                  ! T
4      4       RRR4       M  + '       g   i     M; iRu Rp	?	uuRRR4       # Rp	?	ii ; i  + '       g   i     R# ; i)r6   )_create_servicer_contextNT   RPC Abortedz!Exception calling application: {}z1Calling application raised unprintable Exception!NF)r   r  rd  r   r   r   r   r   rB   rC   r   r0   r`  	exception	tracebackformat_exceptiontype__traceback__	print_excr   rc  )r  rG   r  r  r   r  r  r   response_or_iteratorr  rR   s   &&&&&&     r1   _call_behaviorr  L  s    .	!.
 
	*	#' %1'/'=($ (0'B$'-
 
  !	===!))11&	 &6&66."E"L"L%# % .O    ))%66 $Y ) ) 7 7 "++-. %%g.!))11w/	5 !@ [
 
!	
 
 
ss   F;A  F8F3 AF5C
FA D*'F)D**AF	F3F	F3#F8$F;3F88F;;G	c               (    V ^8  d   QhRRRRRRRR/# )	r*   r  r,   rG   rH   response_iteratorIterator[ResponseType]r-   zTuple[ResponseType, bool]r/   )r0   s   "r1   r2   r2     s0       . 	r3   c                J    \        V4      R 3#   \         d    Ru # \         d   pTP                  ;_uu_ 4        TP                  '       d2   \        TT P                  \        P                  P                  R4       MzY1P                  9  dk   RP                  T4      p\        P                  T4       \        TT P                  \        P                  P                  \        P                  ! T4      4       RRR4       M  + '       g   i     M; iRu Rp?# Rp?ii ; i)TNr  z!Exception iterating responses: {}r   r  )r  r  rd  r   r   r   r   r   rB   rC   r   r0   r`  r  r   rc  )r  rG   r  r  rR   s   &&&  r1   %_take_response_from_response_iteratorr    s    
%&,,  ___}}}NN%%--"	 "2"22=DDYO!!'*NN%%--NN7+	 ___" %s<    D"D"D"DB>D:	DD	DD"D"c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r*   r  r,   rG   rH   responser   response_serializerOptional[SerializingFunction]r-   r   r/   )r0   s   "r1   r2   r2     s:        7	
 r3   c                    \         P                  ! W#4      pVfP   VP                  ;_uu_ 4        \        VV P                  \
        P                  P                  R4       R R R 4       R # V#   + '       g   i     R # ; i)Ns   Failed to serialize response!)r   	serializer   r   r   r   rB   r   )r  rG   r  r  serialized_responses   &&&& r1   _serialize_responser    se     "++HJ"___!!**0	   _ s   1A,,A=	c                    V ^8  d   QhRRRR/# )r*   rG   rH   r-   zUnion[int, cygrpc.WriteFlag]r/   )r0   s   "r1   r2   r2     s      !r3   c                f    V P                   '       d   \        P                  P                  # \        # r?   )r   r   	WriteFlagno_compressr   rK   s   &r1   %_get_send_message_op_flags_from_stater    s(     %%%+++r3   c                    V ^8  d   QhRRRR/# r   r/   )r0   s   "r1   r2   r2     s     / /I /$ /r3   c                v    V P                   ;_uu_ 4        R V n        RRR4       R#   + '       g   i     R# ; i)FN)r   r   rK   s   &r1   _reset_per_message_stater    s    	).& 
s   '8	c               (    V ^8  d   QhRRRRRRRR/# )	r*   r  r,   rG   rH   r  r.   r-   r   r/   )r0   s   "r1   r2   r2     s,      3  3 3(1 3HM 3	 3r3   c           	        VP                   ;_uu_ 4        \        V4      '       g    R R R 4       R# VP                  '       d;   \        VR 4      \        P
                  ! V\        V4      4      3pRVn        \        pM'\        P
                  ! V\        V4      4      3p\        pV P                  P                  V\        W4      4       VP                  P                  V4       \        V4        VP                   P                  4        WAP                  9  g   K-  \        V4      uuR R R 4       #   + '       g   i     R # ; ir  )r   r   r   r   r   SendMessageOperationr  -_SEND_INITIAL_METADATA_AND_SEND_MESSAGE_TOKEN_SEND_MESSAGE_TOKENr   r   r  r   r   r  r  )r  rG   r  r   r   s   &&&  r1   _send_responser    s     
#E** 
 )))/t<++'9%@J .3E*AE ++'9%@J (E))e3	
 			e 'OO  "II%+E2; 
s   D2D2CD2
D22E	c               (    V ^8  d   QhRRRRRRRR/# )	r*   r  r,   rG   rH   r  r   r-   r   r/   )r0   s   "r1   r2   r2     s0     : ::: ): 
	:r3   c           
        VP                   ;_uu_ 4        VP                  \        Jd   \        V4      p\	        V4      p\
        P                  ! VP                  W4\        4      .pVP                  '       d   VP                  \        VR 4      4       Ve0   VP                  \
        P                  ! V\        V4      4      4       V P                  P                  V\!        V\"        4      4       RVn        \'        V4       VP(                  P+                  \"        4       R R R 4       R #   + '       g   i     R # ; ir   )r   r   r   rL   rS   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r  r   r   )r  rG   r  r;   rR   r   s   &&&   r1   _statusr    s    
 
<<z)#E*DuoG44++TLJ
 ---!!"A%"NO".!!//+=eD NN--(0NO "EN$U+IIMM891 
s   DD,,D=	c               4    V ^8  d   QhRRRRRRRRR	R
RR
RR/# )r*   r  r,   rG   rH   r  r   argument_thunkr  r   r  r  r-   r   r/   )r0   s   "r1   r2   r2     sN     # ### )# &	#
 8# 7# 
#r3   c                Z   \         P                  ! V 4        V! 4       pVe4   \        WW&V4      w  rxV'       d   \        WWu4      p	V	e   \	        WV	4       \         P                  ! 4        R #   \
         d    \        P                  ! 4         L9i ; i  \         P                  ! 4        i ; ir?   )	r   'install_context_from_request_call_eventr  r  r  rd  r  r  uninstall_context)
r  rG   r  r  r   r  r  r  proceedr  s
   &&&&&&    r1   _unary_response_in_poolr    s     229=#!# .(6J!H &9h'# '2I.AB 	  "   	  "s#   >A- - BB BB B*c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r*   r  r,   rG   rH   r  r   r  r  r   r   r  r  r-   r   r/   )r0   s   "r1   r2   r2   #  sN     .# .#.#.# ).# &	.#
 :.# 7.# 
.#r3   c           	       a aa \         P                  ! S 4       R  VV V3R llp V! 4       pVe\   \        VR4      '       d%   VP                  '       d   \	        S SVVVVR7       M%\	        S SW'V4      w  rV	'       d   \        S SWh4       \         P                  ! 4        R#   \         d    \        P                  ! 4         L9i ; i  \         P                  ! 4        i ; i)c                    V ^8  d   QhRRRR/# )r*   r  r   r-   r   r/   )r0   s   "r1   r2   ._stream_response_in_pool.<locals>.__annotate__-  s     F F F Fr3   c                p   < V f   \        SSR 4       R # \        SSV S4      pVe   \        SSV4       R # R # r?   )r  r  r  )r  r  r  r  rG   s   & r1   send_response/_stream_response_in_pool.<locals>.send_response-  sD    Iud+"55(,?# #.y%1DE /r3   Nexperimental_non_blocking)r  )
r   r  hasattrr  r  3_send_message_callback_to_blocking_iterator_adapterrd  r  r  r  )
r  rG   r  r  r   r  r  r  r  r  s
   ff&&&f    r1   _stream_response_in_poolr  #  s     229=F F#!#"=>>666(+8 .<uh:N.*! G!5- 	  "   	  "s5   .B# B# &C	 '%B# # CC	 CC	 	C c                    V ^8  d   QhRRRR/# )r*   rG   rH   r-   r   r/   )r0   s   "r1   r2   r2   T  s     A A	 Ad Ar3   c                X    V P                   \        J;'       d    V P                  '       * # r?   )r   r   r   rK   s   &r1   r   r   T  s     <<z)@@%...@@r3   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r*   r  r,   rG   rH   r  zCallable[[ResponseType], None]r  r  r-   r   r/   )r0   s   "r1   r2   r2   X  s:       ; .	
 
r3   c                n     \        WV4      w  rEV'       d   V! V4       \        V4      '       g   R# K4  R# r+  )r  r   )r  rG   r  r  r  r  s   &&&&  r1   r  r  X  s?     A/
 "8,'.. / r3   c               $    V ^8  d   QhRRRRRR/# )r*   r  r   default_thread_poolfutures.ThreadPoolExecutorr-   r/   )r0   s   "r1   r2   r2   j  s&      (3  r3   c                    \        V R 4      '       d7   \        V P                  \        P                  4      '       d   V P                  # V# )experimental_thread_pool)r  
isinstancer  r   ThreadPoolExecutor)r  r  s   &&r1    _select_thread_pool_for_behaviorr  j  sC     x344))7+E+E: : 000r3   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r*   r  r,   rG   rH   r   grpc.RpcMethodHandlerr  r  r-   futures.Futurer/   )r0   s   "r1   r2   r2   u  :       * 4	
 r3   c           
         \        WVP                  4      p\        VP                  V4      pVP	                  VP
                  P                  \        V VVP                  VVP                  VP                  4      # r?   )	r  r   r  unary_unarysubmitr   runr  r  r  rG   r   r  r  thread_pools   &&&&  r1   _handle_unary_unaryr  u  sz     #.==M 3""$7K ""++**	 	r3   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r  r/   )r0   s   "r1   r2   r2     r  r3   c           
         \        WVP                  4      p\        VP                  V4      pVP	                  VP
                  P                  \        V VVP                  VVP                  VP                  4      # r?   )	r  r   r  unary_streamr  r   r  r  r  r  s   &&&&  r1   _handle_unary_streamr	    sz     #.==M 3##%8K  ##++**	 	r3   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r  r/   )r0   s   "r1   r2   r2     r  r3   c           
       a \        WP                  VP                  4      o\        VP                  V4      pVP                  VP                  P                  \        V VVP                  V3R  lVP                  VP                  4      # )c                    < S # r?   r/   request_iterators   r1   <lambda>&_handle_stream_unary.<locals>.<lambda>       r3   )
r  r   r   r  stream_unaryr  r   r  r  r  r  rG   r   r  r  r  s   &&&& @r1   _handle_stream_unaryr    s     (~~~BB 3##%8K ## ++**	 	r3   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r  r/   )r0   s   "r1   r2   r2     r  r3   c           
       a \        WP                  VP                  4      o\        VP                  V4      pVP                  VP                  P                  \        V VVP                  V3R  lVP                  VP                  4      # )c                    < S # r?   r/   r  s   r1   r  '_handle_stream_stream.<locals>.<lambda>  r  r3   )
r  r   r   r  stream_streamr  r   r  r  r  r  s   &&&& @r1   _handle_stream_streamr    s     (~~~BB 3$$&9K  $$ ++**	 	r3   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r*   r  r,   rG   rH   method_with_handlerr\   interceptor_pipeline'Optional[_interceptor._ServicePipeline]r-   rj   r/   )r0   s   "r1   r2   r2     sB     C CCC !C B	C
 %Cr3   c                P  a R  V3R llpSP                  4       pV'       g+   \        P                  ! V P                  P                  4      p\        VV P                  4      pVe'   VP                  P                  VP                  WF4      # VP                  P                  WF4      # )c                    V ^8  d   QhRRRR/# rh   r/   )r0   s   "r1   r2   *_find_method_handler.<locals>.__annotate__  s      A A1A	(Ar3   c                &   < SP                  V 4      # r?   )rm   )ri   r  s   &r1   query_handlers,_find_method_handler.<locals>.query_handlers  s     #**+?@@r3   )
re   r   r5  r  r  rU   r1  r   r  execute)r  rG   r  r  r#  method_nameri   s   &&f&   r1   _find_method_handlerr'    s    A A
 &**,KnnY%;%;%B%BC.%%
 '}}   ((.
 	
 ==^BBr3   c               (    V ^8  d   QhRRRRRRRR/# )	r*   r  r,   	rpc_staterH   rh  r=   rR   r.   r/   )r0   s   "r1   r2   r2     s0        	r3   c                   a \        SR 4      \        P                  ! \        4      \        P                  ! R W#\        4      3pV P
                  P                  VV3R l4       R # )Nc                   < SR3# r   r/   )_ignored_eventr)  s   &r1   r  _reject_rpc.<locals>.<lambda>  s     
r3   )r   r   ReceiveCloseOnServerOperationr   r   r   r   )r  r)  rh  rR   r   s   &f&& r1   _reject_rpcr/    sU     	(	48,,\:,,&<	
J NN%%	
r3   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r*   r  r,   rG   rH   r   r  r  r  r-   r  r/   )r0   s   "r1   r2   r2     s:     
 


 *
 ,	

 
r3   c                *   VP                   ;_uu_ 4        V P                  P                  \        P                  ! \
        4      3\        V4      4       VP                  P                  \        4       VP                  '       d?   VP                  '       d   \        WW#4      uuR R R 4       # \        WW#4      uuR R R 4       # VP                  '       d   \        WW#4      uuR R R 4       # \        WW#4      uuR R R 4       #   + '       g   i     R # ; ir?   )r   r   r   r   r.  r   r   r   r   r   request_streamingresponse_streamingr  r  r	  r  )r  rG   r   r  s   &&&&r1   _handle_with_method_handlerr4    s     
))11,?A$U+	
 			45+++000,n 
 (. 
 ,,,'. 
$ #n
% 
s*   BDD-DDD+DD	c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r*   r  r,   r  r\   r  r  r  r  concurrency_exceededr   r-   z4Tuple[Optional[_RPCState], Optional[futures.Future]]r/   )r0   s   "r1   r2   r2   #  sE     = == = B= ,	=
 = :=r3   c                p   V P                   '       g   R# V P                  P                  '       g   VP                  4       '       d   \	        4       p \        V VVV4      pTf+   \        T T\        P                  P                  R4       TR3# T'       d+   \        T T\        P                  P                  R4       TR3# T\!        YYc4      3# R#   \         d[   pRP                  T4      p\        P                  T4       \        T T\        P                  P                  R4       TR3u Rp?# Rp?ii ; i)a  Handles RPC based on provided handlers.

  When receiving a call event from Core, registered method will have its
name as tag, we pass the tag as registered_method_name to this method,
then we can find the handler in registered_method_handlers based on
the method name.

  For call event with unregistered method, the method name will be included
in rpc_event.call_details.method and we need to query the generics handlers
to find the actual handler.
NzException servicing handler: {}s   Error in service handler!s   Method not found!s   Concurrent RPC limit exceeded!)NN)successr  r  re   rH   r'  rd  r0   r`  r  r/  r   rB   rC   r  resource_exhaustedr4  )	r  r  r  r  r6  r)  r   r  rR   s	   &&&&&    r1   _handle_callr:  #  s;   $ $$$(;(@(@(B(BK		#1#$	N  !!!//$	 d?"!!441	 d?"'n
 	
 A  		#7>>yIGg&!!)),	 d?"		#s   C D5AD0*D50D5c                  "    ] tR tRtRtRtRtRtR# )_ServerStageic  stoppedstartedgracer/   N)rV   rW   rX   rY   STOPPEDSTARTEDGRACErZ   r/   r3   r1   r<  r<  c  s    GGEr3   r<  c                      ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R  R! ltR"tR## )$_ServerStateij  zthreading.RLocklockcygrpc.CompletionQueuecompletion_queuecygrpc.Serverserverr   r    Dict[str, grpc.RpcMethodHandler]registered_method_handlersr  r  r  r  r<  stagethreading.Eventtermination_eventzList[threading.Event]shutdown_eventsOptional[int]maximum_concurrent_rpcsintactive_rpc_countzSet[_RPCState]
rpc_stateszSet[str]r   r   server_deallocatedc               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r*   rG  rF  rI  rH  r    Sequence[grpc.GenericRpcHandler]r  r  r  r  rQ  rP  r/   )r0   s   "r1   r2   _ServerState.__annotate__|  sG     ( (0( ( ;	(
 F( 0( "/(r3   c                	~   \         P                  ! 4       V n        Wn        W n        \        V4      V n        W@n        WPn        \        P                  V n        \         P                  ! 4       V n        V P                  .V n        W`n        ^ V n        / V n        \%        4       V n        \%        4       V n        RV n        R# )r6   FN)r   RLockrE  rG  rI  listr   r  r  r<  r@  rL  EventrN  rO  rQ  rS  rK  r   rT  r   rU  )rd   rG  rI  r   r  r  rQ  s   &&&&&&&r1   r{   _ServerState.__init__|  s     OO%	 0 $%5 6$8!&!))
!*!2 $ 6 67'>$ !*,' %5 #(r3   )rS  rG  r   r   r  rE  rQ  rK  rT  rI  rU  rO  rL  rN  r  N)rV   rW   rX   rY   r   r{   rZ   r/   r3   r1   rD  rD  j  se    
,,22 @@AA++&&****	M( (r3   rD  c               $    V ^8  d   QhRRRRRR/# )r*   rG   rD  r    Iterable[grpc.GenericRpcHandler]r-   r   r/   )r0   s   "r1   r2   r2     s$     8 88+K8	8r3   c                    V P                   ;_uu_ 4        V P                  P                  V4       R R R 4       R #   + '       g   i     R # ; ir?   )rE  r   extend)rG   r   s   &&r1   _add_generic_handlersrb    s.     
%%&67 
	   ;A	c               $    V ^8  d   QhRRRRRR/# )r*   rG   rD  method_handlersrJ  r-   r   r/   )r0   s   "r1   r2   r2     s)     A AA*JA	Ar3   c                    V P                   ;_uu_ 4        V P                  P                  V4       R R R 4       R #   + '       g   i     R # ; ir?   )rE  rK  update)rG   re  s   &&r1   _add_registered_method_handlersrh    s-     
((//@ 
rc  c               $    V ^8  d   QhRRRRRR/# )r*   rG   rD  addressr.   r-   rR  r/   )r0   s   "r1   r2   r2     s!     4 4l 4U 4s 4r3   c                    V P                   ;_uu_ 4        V P                  P                  V4      uuR R R 4       #   + '       g   i     R # ; ir?   )rE  rI  add_http2_port)rG   rj  s   &&r1   _add_insecure_portrm    s)    	||**73 
s	   ;A	c               (    V ^8  d   QhRRRRRRRR/# )	r*   rG   rD  rj  r.   server_credentialsgrpc.ServerCredentialsr-   rR  r/   )r0   s   "r1   r2   r2     s0     
 


 /
 		
r3   c                    V P                   ;_uu_ 4        V P                  P                  WP                  4      uuR R R 4       #   + '       g   i     R # ; ir?   )rE  rI  rl  _credentials)rG   rj  ro  s   &&&r1   _add_secure_portrs    s4    
 
||**44
 
s   %AA	c                    V ^8  d   QhRRRR/# r*   rG   rD  r-   r   r/   )r0   s   "r1   r2   r2     s     % % %$ %r3   c                    V P                   P                  V P                  V P                  \        4       V P                  P                  \        4       R # r?   )rI  r    rG  _REQUEST_CALL_TAGr   r   rK   s   &r1   _request_callrx    s;    	LL 6 68I 
IIMM#$r3   c               $    V ^8  d   QhRRRRRR/# )r*   rG   rD  r  rt   r-   r   r/   )r0   s   "r1   r2   r2     s!     ' 'L '# '$ 'r3   c                    TpV P                   P                  V P                  V P                  VV4       V P                  P	                  V4       R # r?   )rI  request_registered_callrG  r   r   )rG   r  registered_call_tags   && r1   _request_registered_callr}    sE     	LL((	 
IIMM%&r3   c                    V ^8  d   QhRRRR/# )r*   rG   rD  r-   r   r/   )r0   s   "r1   r2   r2     s       $ r3   c                    V P                   '       gg   V P                  '       gU   V P                  P                  4        V P                   F  pVP                  4        K  	  \        P                  V n        R # R# )TF)	rT  r   rI  destroyrO  r   r<  r@  rL  )rG   shutdown_events   & r1   _stop_servingr    sU    EIII#33N  4"**r3   c                    V ^8  d   QhRRRR/# ru  r/   )r0   s   "r1   r2   r2     s     $ $l $t $r3   c                    V P                   ;_uu_ 4        V ;P                  ^,          un        RRR4       R#   + '       g   i     R# ; i)   N)rE  rS  rK   s   &r1   _on_call_completedr    s(    	!# 
s	   9A
	c               $    V ^8  d   QhRRRRRR/# )r*   rG   rD  eventr,   r-   r   r/   )r0   s   "r1   r2   r2     s)     A AA 0A	Ar3   c           	     8  a  R pVP                   \        J dR   S P                  ;_uu_ 4        S P                  P	                  \        4       \        S 4      '       d   RpRRR4       V# VP                   \        J g   VP                   S P                  9   Ed   RpVP                   S P                  9   d4   VP                   p\        VS P                  P                  VR4      4      pM\        S P                  4      pS P                  ;_uu_ 4        S P                  P	                  VP                   4       S P                  RJ;'       d    S P                  S P                  8  p\        VVS P                  S P                   V4      w  rgVe   S P"                  P%                  V4       Ve/   S ;P                  ^,          un        VP'                  V 3R l4       S P(                  \*        P,                  J d+   VS P                  9   d   \/        S V4       M\1        S 4       M\        S 4      '       d   RpRRR4       V# VP                  V4      w  rhV F  p	 V	! 4        K  	  VeN   S P                  ;_uu_ 4        S P"                  P	                  V4       \        S 4      '       d   RpRRR4       V# V#   + '       g   i     T# ; i  + '       g   i     T# ; i  \2         d    \4        P7                  R4        K  i ; i  + '       g   i     T# ; i)TFNc                   < \        S4      # r?   )r  )_unused_futurerG   s   &r1   r  -_process_event_and_continue.<locals>.<lambda>  s    +=e+Dr3   zException calling callback!)tag_SHUTDOWN_TAGrE  r   r   r  rw  rK  rr   rA   r   r   rQ  rS  r:  r  r  rT  r   add_done_callbackrL  r<  rA  r}  rx  rd  r`  r  )
rG   r  should_continueregistered_method_namer  r6  r)  
rpc_futurer   r%  s
   f&        r1   _process_event_and_continuer    s    OyyM!ZZZII]+U##"' x o 			&&99888!%99888%*YY""3&0044*D# #1&&# ZZZIIUYY'--T9 L L**e.K.KK ! %1#**!!$%!I $  $$Y/%&&!+&,,D {{l222)U-M-MM,U4JK!%(u%%"'5 N   %yy/	!HA
 "
    ''	2 ''&+O  ?y Zx O ZN   A!!"?@A  s6   3J9D&KK!>/L9K
	K	! LLL	c                    V ^8  d   QhRRRR/# ru  r/   )r0   s   "r1   r2   r2     s      , 4 r3   c                @    \         P                   ! 4       \        ,           pV P                  P                  V4      pV P                  '       d   \        V 4       VP                  \        P                  P                  8H  pV'       g   \        W4      '       g   R# RpK  r+  )r  "_DEALLOCATED_SERVER_CHECK_PERIOD_SrG  pollrU  _begin_shutdown_oncecompletion_typer   CompletionTypequeue_timeoutr  )rG   timeoutr  
is_timeouts   &   r1   _server    sy    
))+ BB&&++G4### '!!V%:%:%H%HH 	 "=e"K"K r3   c                    V ^8  d   QhRRRR/# ru  r/   )r0   s   "r1   r2   r2   0  s     ) ) ) )r3   c                `   V P                   ;_uu_ 4        V P                  \        P                  J d_   V P                  P                  V P                  \        4       \        P                  V n        V P                  P                  \        4       R R R 4       R #   + '       g   i     R # ; ir?   )rE  rL  r<  rA  rI  r   rG  r  rB  r   r   rK   s   &r1   r  r  0  s`    	;;,...LL!!%"8"8-H&,,EKIIMM-(	 
s   A=BB-	c               $    V ^8  d   QhRRRRRR/# )r*   rG   rD  r?  Optional[float]r-   rM  r/   )r0   s   "r1   r2   r2   8  s!       o / r3   c                V  a aa S P                   ;_uu_ 4        S P                  \        P                  J d2   \        P
                  ! 4       oSP                  4        SuuR R R 4       # \        S 4       \        P
                  ! 4       oS P                  P                  S4       Sf   S P                  P                  4        M;VVV 3R lp\        P                  ! VR7      pVP                  4        SuuR R R 4       #  R R R 4       SP                  4        S#   + '       g   i     L"; i)Nc                    < SP                  S R 7       SP                  ;_uu_ 4        SP                  P                  4        RRR4       R#   + '       g   i     R# ; i)r  N)r  rE  rI  cancel_all_calls)r?  r  rG   s   r1   cancel_all_calls_after_grace+_stop.<locals>.cancel_all_calls_after_graceE  s9    ##E#2ZZZLL113  ZZZs   AA	)target)rE  rL  r<  r@  r   r\  r   r  rO  r   rI  r  Threadstartr  )rG   r?  r  threadr  s   ff  @r1   _stopr  8  s    	;;,...&__.N !	 

 	U#"*$$^4=LL))+4
 %%-IJFLLN!' 
 , 
( + 
s   AD(B
DD(	c                    V ^8  d   QhRRRR/# ru  r/   )r0   s   "r1   r2   r2   Q  s      , 4 r3   c                   V P                   ;_uu_ 4        V P                  \        P                  Jd   R p\	        V4      hV P
                  P                  4        \        P                  V n        V P                   F  p\        W4       K  	  \        V 4       \        P                  ! \        V 3R7      pRVn        VP                  4        RRR4       R#   + '       g   i     R# ; i)z$Cannot start already-started server!)r  argsTN)rE  rL  r<  r@  rR  rI  r  rA  rK  r}  rx  r   r  r  daemon)rG   rS  r  r  s   &   r1   _startr  Q  s    	;;l222>IY''"**66F$U3 7 	e!!uh? 
s   B8CC(	c                    V ^8  d   QhRRRR/# r*   generic_rpc_handlersr_  r-   r   r/   )r0   s   "r1   r2   r2   b  s     
, 
,:
,	
,r3   c                \    V  F%  p\        VR R4      pVe   K  RV R2p\        V4      h	  R# )r   N"zP" must conform togrpc.GenericRpcHandler type but does not have "service" method!)getattrAttributeError)r  generic_rpc_handlerservice_attributerS  s   &   r1   _validate_generic_rpc_handlersr  b  sL      4#$7DI$'( )R R  !++  4r3   c               (    V ^8  d   QhRRRRRRRR/# )r*   base_optionsSequence[ChannelArgumentType]rJ  r   xdsr   r-   r/   )r0   s   "r1   r2   r2   o  s0      /+ 
 #	r3   c                    \         P                  ! V4      p\        P                  ! V4      p\	        V 4      V,           V,           # r?   )r   create_channel_optionr   (create_server_call_tracer_factory_optionr   )r  rJ  r  compression_option'maybe_server_call_tracer_factory_options   &&&  r1   _augment_optionsr  o  sG    
 &;;KH??D , 	l
	
1	2r3   c                      ] tR tRt$ R]R&   R R ltR R ltR R	 ltR
 R ltR R lt	R R lt
RR R lltR R ltR tRtR# )_Serveri  rD  r  c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r*   r  r  r   rW  interceptors Sequence[grpc.ServerInterceptor]optionsr  rQ  rP  rJ  r   r  r   r/   )r0   s   "r1   r2   _Server.__annotate__  sP     ! !/! ;! 7	!
 /! "/! 0! !r3   c                	    \         P                  ! 4       p\         P                  ! \        WFV4      V4      p	V	P	                  V4       \        VV	V\        P                  ! V4      VV4      V n        Wn	        R # r?   )
r   CompletionQueueServerr  register_completion_queuerD  r   service_pipeliner  
_cy_server)
rd   r  r   r  r  rQ  rJ  r  rG  rI  s
   &&&&&&&&  r1   r{   _Server.__init__  sj     "113/cJCP(()9:")),7#
 !r3   c                    V ^8  d   QhRRRR/# r  r/   )r0   s   "r1   r2   r    s      A A$DA	Ar3   c                	H    \        V4       \        V P                  V4       R # r?   )r  rb  r  )rd   r  s   &&r1   add_generic_rpc_handlers _Server.add_generic_rpc_handlers  s     	'';<dkk+?@r3   c               $    V ^8  d   QhRRRRRR/# )r*   service_namert   re  rJ  r-   r   r/   )r0   s   "r1   r2   r    s-     I II :I 
	Ir3   c                	   V P                   P                  ;_uu_ 4        V P                   P                  \        P                  J d    R R R 4       R #  R R R 4       VP                  4        UUu/ uF  w  r4\        P                  ! W4      VbK  	  pppV F  pV P                  P                  V4       K   	  \        V P                   V4       R #   + '       g   i     L; iu uppi r?   )r  rE  rL  r<  rA  rD  r   fully_qualified_methodr  register_methodrh  )rd   r  re  r  r   method_to_handlersr  s   &&&    r1   add_registered_method_handlers&_Server.add_registered_method_handlers  s     [[{{  L$8$88 8  +:*?*?*A
*A& **<@.P*A 	 
 '9"OO++,BC '9'5GH 

s   *C/"C#C 	c                    V ^8  d   QhRRRR/# )r*   rj  rt   r-   rR  r/   )r0   s   "r1   r2   r    s     
 
 
 
r3   c           	     	    \         P                  ! V\        V P                  \         P                  ! V4      4      4      # r?   )r   validate_port_binding_resultrm  r  rc  )rd   rj  s   &&r1   add_insecure_port_Server.add_insecure_port  s/    33'W^^G5LM
 	
r3   c               $    V ^8  d   QhRRRRRR/# )r*   rj  rt   ro  rp  r-   rR  r/   )r0   s   "r1   r2   r    s$     
 

0F
	
r3   c           	     	    \         P                  ! V\        V P                  \         P                  ! V4      V4      4      # r?   )r   r  rs  r  rc  )rd   rj  ro  s   &&&r1   add_secure_port_Server.add_secure_port  s7     33W^^G46H
 	
r3   c                   V ^8  d   QhRR/# r   r/   )r0   s   "r1   r2   r    s      t r3   c                	0    \        V P                  4       R # r?   )r  r  rc   s   &r1   r  _Server.start  s    t{{r3   Nc                    V ^8  d   QhRRRR/# )r*   r  r  r-   r   r/   )r0   s   "r1   r2   r    s     
 
O 
t 
r3   c                	    \         P                  ! V P                  P                  P                  V P                  P                  P                  VR 7      # )r  )r   r  r  rN  is_set)rd   r  s   &&r1   wait_for_termination_Server.wait_for_termination  s>     ||KK))..KK))00
 	
r3   c                    V ^8  d   QhRRRR/# )r*   r?  r  r-   rM  r/   )r0   s   "r1   r2   r    s     ) )/ )o )r3   c                	.    \        V P                  V4      # r?   )r  r  )rd   r?  s   &&r1   stop_Server.stop  s    T[[%((r3   c                	P    \        V R 4      '       d   RV P                  n        R# R# )r  TN)r  r  rU  rc   s   &r1   __del___Server.__del__  s"    4"" .2DKK* #r3   )r  r  r?   )rV   rW   rX   rY   r   r{   r  r  r  r  r  r  r  r  rZ   r/   r3   r1   r  r    s7    !.AI&



)2r3   r  c               8    V ^8  d   QhRRRRRRRRR	R
RRRRRR/# )r*   r  r  r  rW  r  r  r  r  rQ  rP  rJ  r   r  r   r-   r  r/   )r0   s   "r1   r2   r2     sX      +: 3 +	
 + , 
 r3   c           	     :    \        V4       \        V VVVVVV4      # r?   )r  r  )r  r  r  r  rQ  rJ  r  s   &&&&&&&r1   create_serverr    s/     ##78 r3   )r  r1  r?   )__doc__
__future__r   ro   collections
concurrentr   r   enumloggingr   r  r  typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   grpc._cythonr   grpc._typingr   r   r   r   r   r   r   r   r   typing_extensionsr   	getLoggerrV   r`  r  rw  r   r   r   r  r  r   r   r   r   r   r   r  _INF_TIMEOUTr9   rE   rL   rO   rS   
namedtupleHandlerCallDetailsrU   ABCr\   rr   r   objectrH   r   r   r   r   r   r   r   r   r  r  ServicerContextr	  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r	  r  r  r'  r/  r4  r:  uniqueEnumr<  rD  rb  rh  rm  rs  rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  r/   r3   r1   <module>r     s   2 " 
                  3 , . % , % , * . &


H
%" !: 6 * $ * . "; 5 9 	

%( "7M
));
		
 	
		$cgg 	$( ((W 0   F# D
#B!vt## vr<v <~%P7t<&/
 3F:@#8.#bA$0000C6,
:=@ 499  -(6 -(`8A4

%'$AH")2"
, W2dkk W2tr3   