+
    ÂHàjÏ  ã                  ó2   € ^ RI Ht ^ RIHt  ! R R4      tR# )é    )Úannotations)Ú	Generatorc                  óz   € ] tR t^tR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tR# )ÚStreamReaderz°
Generator-based stream reader.

This class doesn't support concurrent calls to :meth:`read_line`,
:meth:`read_exact`, or :meth:`read_to_eof`. Make sure calls are
serialized.

c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNone© )Úformats   "Ú”/home/ubuntu/.hermes/installs/5f0a1ff4045d044e/environments/50f6b671e3f94b538e344231dfcb664f/venv/lib/python3.14/site-packages/websockets/streams.pyÚ__annotate__ÚStreamReader.__annotate__   s   € ÷ ñ ˜$ñ ó    c                	ó2   € \        4       V n        R V n        R# )FN)Ú	bytearrayÚbufferÚeof©Úselfs   &r   Ú__init__ÚStreamReader.__init__   s   € Ü“kˆŒØˆŽr   c               ó    € V ^8„  d   QhRRRR/# ©r	   ÚmÚintr
   úGenerator[None, None, bytes]r   )r   s   "r   r   r      s   € ÷  ñ  ˜3ð  Ð#?ñ  r   c              #  ó‚  "  € ^ p^ p V P                   P                  RV4      ^,           pV^ 8”  d   MT\        V P                   4      pW18”  d   \        RV RV R24      hV P                  '       d   \        RV R24      hRx € K€  W!8”  d   \        RV RV R24      hV P                   RV pV P                   RV1 V# 5i)a=  
Read a LF-terminated line from the stream.

This is a generator-based coroutine.

The return value includes the LF character.

Args:
    m: Maximum number bytes to read; this is a security limit.

Raises:
    EOFError: If the stream ends without a LF.
    RuntimeError: If the stream ends in more than ``m`` bytes.

ó   
úread ú bytes, expected no more than ú bytesústream ends after z bytes, before end of lineN)r   ÚfindÚlenÚRuntimeErrorr   ÚEOFError)r   r   ÚnÚpÚrs   &&   r   Ú	read_lineÚStreamReader.read_line   sÌ   é € ð  ˆØˆØØ—‘× Ñ  ¨Ó*¨QÕ.ˆAØ�1ŒuØÜ�D—K‘KÓ ˆAØŒuÜ" U¨1¨#Ð-KÈAÈ3ÈfÐ#UÓVÐVØ�x�xˆxÜÐ!3°A°3Ð6PÐQÓRÐRÝØŒ5Ü  q cÐ)GÈÀsÈ&ÐQÓRÐRØ�K‰K˜˜ˆOˆØ�K‰K˜˜˜ˆOØˆùs   ‚A/B?Á2AB?c               ó    € V ^8„  d   QhRRRR/# )r	   r)   r   r
   r   r   )r   s   "r   r   r   6   s   € ÷ ñ ˜Cð Ð$@ñ r   c              #  ó  "  € V^ 8¼  g   Q h\        V P                  4      V8  d@   V P                  '       d(   \        V P                  4      p\        RV RV R24      hRx € KY  V P                  RV pV P                  RV1 V# 5i)zÀ
Read a given number of bytes from the stream.

This is a generator-based coroutine.

Args:
    n: How many bytes to read.

Raises:
    EOFError: If the stream ends in less than ``n`` bytes.

r$   z bytes, expected r#   N)r&   r   r   r(   )r   r)   r*   r+   s   &&  r   Ú
read_exactÚStreamReader.read_exact6   s|   é € ð �AŒvˆˆvÜ�$—+‘+Ó Ô"Ø�x�xˆxÜ˜Ÿ™Ó$�ÜÐ!3°A°3Ð6GÈÀsÈ&ÐQÓRÐRÝØ�K‰K˜˜ˆOˆØ�K‰K˜˜˜ˆOØˆùs   ‚5B¸ABc               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r   M   s   € ÷ ñ ˜Sð Ð%Añ r   c              #  óØ   "  € V P                   '       g4   \        V P                  4      pW!8”  d   \        RV RV R24      hRx € KE  V P                  R,          pV P                  R V# 5i)zÖ
Read all bytes from the stream.

This is a generator-based coroutine.

Args:
    m: Maximum number bytes to read; this is a security limit.

Raises:
    RuntimeError: If the stream ends in more than ``m`` bytes.

r!   r"   r#   NºNNN)r   r&   r   r'   )r   r   r*   r+   s   &&  r   Úread_to_eofÚStreamReader.read_to_eofM   s^   é € ð —(—(�(Ü�D—K‘KÓ ˆAØŒuÜ" U¨1¨#Ð-KÈAÈ3ÈfÐ#UÓVÐVÝØ�K‰K˜�NˆØ�K‰K˜ˆNØˆùs   ‚A*•AA*c               ó   € V ^8„  d   QhRR/# )r	   r
   zGenerator[None, None, bool]r   )r   s   "r   r   r   c   s   € ÷ ñ Ð3ñ r   c              #  óh   "  €  V P                   '       d   R# V P                  '       d   R# Rx € K/  5i)za
Tell whether the stream has ended and all data was read.

This is a generator-based coroutine.

TFN©r   r   r   s   &r   Úat_eofÚStreamReader.at_eofc   s'   é € ð Ø�{�{ˆ{ÙØ�x�xˆxÙõ ùs   ‚2–2ª2c               ó    € V ^8„  d   QhRRRR/# )r	   ÚdataÚbytesr
   r   r   )r   s   "r   r   r   s   s   € ÷ ñ ˜eð ¨ñ r   c                ór   € V P                   '       d   \        R4      hV ;P                  V,          un        R# )z¨
Write data to the stream.

:meth:`feed_data` cannot be called after :meth:`feed_eof`.

Args:
    data: Data to write.

Raises:
    EOFError: If the stream has ended.

ústream endedN)r   r(   r   )r   r=   s   &&r   Ú	feed_dataÚStreamReader.feed_datas   s&   € ð �8�8ˆ8Ü˜>Ó*Ð*Ø�Š�tÕ�r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   „   s   € ÷ ñ ˜$ñ r   c                óN   € V P                   '       d   \        R4      hRV n         R# )zu
End the stream.

:meth:`feed_eof` cannot be called more than once.

Raises:
    EOFError: If the stream has ended.

r@   TN)r   r(   r   s   &r   Úfeed_eofÚStreamReader.feed_eof„   s   € ð �8�8ˆ8Ü˜>Ó*Ð*ØˆŽr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   ’   s   € ÷ ñ ˜ñ r   c                ó    € V P                   R R# )z7
Discard all buffered data, but don't end the stream.

r4   N)r   r   s   &r   ÚdiscardÚStreamReader.discard’   s   € ð
 �K‰K˜ŠNr   r9   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r,   r0   r5   r:   rA   rE   rI   Ú__static_attributes__r   r   r   r   r      s5   † ñõõ õDõ.õ,õ õ"÷ñ r   r   N)Ú
__future__r   Úcollections.abcr   r   r   r   r   Ú<module>rS      s   ðÝ "å %÷Qó Qr   