+
    j                     h    ^ RI t ^ RIt^ RIt^ RIHt ^ RIHtHt Rt ! R R4      t	 ! R R]	4      t
R# )	    N)Request)SocketUnreaderIterUnreaderc                   D   a  ] tR t^t o RtR tR tRR ltR t]t	Rt
V tR# )ParserNc                    Wn         \        VR 4      '       d   \        V4      V n        M\	        V4      V n        RV n        W0n        ^ V n        R# )recvN)cfghasattrr   unreaderr   mesgsource_addr	req_count)selfr
   sourcer   s   &&&&I/var/www/idalgo/venv/lib/python3.14/site-packages/gunicorn/http/parser.py__init__Parser.__init__   sB    66""*62DM(0DM	&     c                    V # )N r   s   &r   __iter__Parser.__iter__#   s    r   c                   V P                   '       g   R# Vf   Ve   \        p\        V P                  RR4      pVe8   \	        VR4      '       d&   \	        VR4      '       d   TpVP                  4       pMRpRp^ p  VeT   VeP   V\        P                  ! 4       ,
          pV^ 8:  d    Ve    VP                  V4       R# R# VP                  V4        V P                   P                  P                  R4      pT'       g    Te    TP                  T4       R# R# T\#        T4      ,          pTf   K  Yb8  g   K   Te    TP                  T4       R# R#   \         d     R# i ; i  \        P                  \        3 d/     Te'    TP                  T4       R#   \         d     R# i ; iR# \        P                    d/     Te'    TP                  T4       R#   \         d     R# i ; iR# i ; i  \         d     R# i ; i  \         d     R# i ; i  Te%    TP                  T4       i   \         d     i i ; ii ; i)a  Discard any unread body of the current message.

Called before returning a keepalive connection to the poller so the
socket does not appear readable due to leftover body bytes.

``deadline`` is an absolute ``time.monotonic()`` value; when set the
socket read timeout is bounded by the remaining time before each read.
``max_bytes`` caps the total drained bytes; when a deadline is given
and ``max_bytes`` is left at the default, ``_DRAIN_MAX_BYTES`` applies
to defend against a slow client that keeps trickling under it.  When
called without a deadline (the default invocation from ``__next__``),
no byte cap is applied so the prior unbounded drain semantics are
preserved for callers that don't know how to react to a partial drain.

Returns ``True`` when the body was fully drained, ``False`` when the
drain was abandoned (deadline, byte cap, or socket timeout).  Callers
that observe ``False`` MUST close the connection rather than serve
another request on it.
TNsock
gettimeout
settimeoutFi   )r   _DRAIN_MAX_BYTESgetattrr   r   r   time	monotonicr   OSErrorbodyreadsockettimeoutTimeoutErrorsslSSLWantReadErrorlen)	r   deadline	max_bytesr   timeoutable_sockprior_timeoutdrained	remainingdatas	   &&&      r   finish_bodyParser.finish_body&   sQ   ( yyy!5(It}}fd3 l ; ;l@[@[# OO-M# M	',<,H (4>>+; ;I A~$  +$//> , %//	: 99>>..t4D 
  +$//> ,	 3t9$(W-A +$//> ,   5 !   +$//>  , ++    +$//>  ,   w   +$//>  ,s   <,H .E H %E* :H G7 H 5H H	 E'&E'*G4H F F-,F-2G4G4H G G.-G.3G44H 7HH	HHI!H32I3I>I IIc                   V P                   '       d+   V P                   P                  4       '       d   \        4       hV P                  4        V ;P                  ^,          un        V P                  V P                  V P                  V P                  V P                  4      V n         V P                   '       g   \        4       hV P                   # )   )	r   should_closeStopIterationr3   r   
mesg_classr
   r   r   r   s   &r   __next__Parser.__next__e   s    999//11/! 	 	!OODHHdmmT=M=Mt~~^	yyy/!yyr   )r
   r   r   r   r   )NN)__name__
__module____qualname____firstlineno__r9   r   r   r3   r:   next__static_attributes____classdictcell__)__classdict__s   @r   r   r      s&     J
=~ Dr   r   c                       ] tR t^wt]tRtR# )RequestParserr   N)r<   r=   r>   r?   r   r9   rA   r   r   r   rE   rE   w   s    Jr   rE   i   )r&   r)   r!   gunicorn.http.messager   gunicorn.http.unreaderr   r   r   r   rE   r   r   r   <module>rH      s7   
  
  ) ?  a aHF r   