
    Wh/                     Z   d dl T d dlmZmZ g dZ ed          Z ed          Z ed          Z ed          Z ed          Z	 ed	          Z
 ed
          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Zeeee	eeie	ee	ee
ie
eeieeeieeeiei ei ei ieeeeee	eefeieeeee	eefeeefeie	ee	ee
ie
eeieeeieeeiei ei iiZeefeeiee
feeieefeeiee
feeie
efeeieefeeie
efeeiiZ G d d          ZdS )   )*)LocalProtocolErrormake_sentinel)CLIENTSERVERIDLESEND_RESPONSE	SEND_BODYDONE
MUST_CLOSECLOSEDMIGHT_SWITCH_PROTOCOLSWITCHED_PROTOCOLERRORr   r   r   r	   r
   r   r   r   r   r   r   _SWITCH_UPGRADE_SWITCH_CONNECTc                   @    e Zd Zd Zd Zd Zd Zd
dZd Zd Z	d	 Z
dS )ConnectionStatec                 x    d| _         t                      | _        t          t          t
          t          i| _        d S )NT)
keep_alivesetpending_switch_proposalsr   r   r   statesselfs    P/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/h11/_state.py__init__zConnectionState.__init__   s-    
  ),%tVT2    c                 L    t           | j        |<   |                                  d S N)r   r   !_fire_state_triggered_transitions)r   roles     r   process_errorzConnectionState.process_error   s&    !D..00000r   c                 <    d| _         |                                  d S )NF)r   r!   r   s    r   process_keep_alive_disabledz+ConnectionState.process_keep_alive_disabled   s!    ..00000r   c                 b    | j                             |           |                                  d S r    )r   addr!   )r   switch_events     r   process_client_switch_proposalz.ConnectionState.process_client_switch_proposal   s1    %)),777..00000r   Nc                    |:|t           u sJ || j        vr"t          d                    |                    ||f}||t          u rt                      | _        |                     ||           |t          u r2|t          u sJ |                     t           t          t          f           | 	                                 d S )Nz3Received server {} event without a pending proposal)
r   r   r   formatResponser   !_fire_event_triggered_transitionsRequestr   r!   )r   r"   
event_typeserver_switch_events       r   process_eventzConnectionState.process_event   s    *6>>>>"$*GGG(IPP+   
 %&9:J&:+A+A,/EED)..tZ@@@   6>>>>226GV;LMMM..00000r   c           	          | j         |         }	 t          |         |         |         }nB# t          $ r5 t          d                    |j        || j         |                             w xY w|| j         |<   d S )Nz4can't handle event type {} when role={} and state={})r   EVENT_TRIGGERED_TRANSITIONSKeyErrorr   r+   __name__)r   r"   r/   state	new_states        r   r-   z1ConnectionState._fire_event_triggered_transitions   s    D!	3D9%@LII 	 	 	$FMM't{4/@   	 &Ds	   ) ?A(c                 B   	 t          | j                  }| j        r-| j        t                   t          u rt
          | j        t          <   | j        s-| j        t                   t
          u rt          | j        t          <   | j        s4t          t          fD ]%}| j        |         t          u rt          | j        |<   &| j        t                   | j        t                   f}t          
                    |i           }| j                            |           | j        |k    rd S r    )dictr   r   r   r   r   r   r   r   STATE_TRIGGERED_TRANSITIONSgetupdate)r   start_statesr"   joint_statechangess        r   r!   z1ConnectionState._fire_state_triggered_transitions  s   $	,,L , @;v&$..*?DK'0 /;v&*???*.DK'? 7#V, 7 7D{4(D00,6D)  ;v.F0CDK155k2FFGKw'''{l**I$	r   c                     | j         t          t          t          t          ik    r't	          d                    | j                             | j        sJ | j        rJ t          t          t          t          i| _         d S )Nz'not in a reusable state. self.states={})	r   r   r   r   r   r+   r   r   r   r   s    r   start_next_cyclez ConnectionState.start_next_cycle*  so    ;64666$9@@MM  
 0000tVT2r   r    )r5   
__module____qualname__r   r#   r%   r)   r1   r-   r!   rA    r   r   r   r      s        3 3 31 1 11 1 11 1 11 1 1 1(
& 
& 
&& & &P	3 	3 	3 	3 	3r   r   N)_events_utilr   r   __all__r   r   r   r	   r
   r   r   r   r   r   r   r   r   r.   ConnectionClosedDataEndOfMessager,   InformationalResponser3   r:   r   rD   r   r   <module>rL      s  d     4 4 4 4 4 4 4 4   
x	 	 	x	 	  }Vo..M+&&	}V]<((
	x	 	 g &&=>> !M"566 - 122- 122 w	#3V<D)\48(%v.!6*r2r	 fif}	
 	!=i"O46G'):	
 	D)\48(%v.!6*2r% L -.9J0KTNVZ(TNVZ(
DMFJ'	6NVZ(	6NVZ(	5MFJ' k3 k3 k3 k3 k3 k3 k3 k3 k3 k3r   