+
    Nj                     D   ^ RI t ^ RIHtHt ^RIHtHtHtHtH	t	H
t
  ! R R] P                  4      t ! R R] P                  4      t ! R R	] P                  4      t ! R
 R]] P                   4      t ! R R]] P"                  4      tR R lt] P&                  ! ]4       R# )    N)AnyOptional)	IDNAError_unicode_dots_realabeldecodeencodeulabelc                   P   a  ] tR t^t o RtRV 3R lR lltRV 3R lR lltRtV tR# )	CodecaN  Stateless IDNA 2008 codec.

Implements the :class:`codecs.Codec` protocol so that the whole-domain
encoder (:func:`idna.encode`) and decoder (:func:`idna.decode`) are
accessible through the standard codec machinery as ``"idna2008"``.

Only the ``"strict"`` error handler is supported; any other handler
raises :exc:`~idna.IDNAError`.
c                B   < V ^8  d   QhRS[ RS[ RS[S[S[3,          /#    dataerrorsreturn)strtuplebytesint)format__classdict__s   "L/data/cameron/venvs/serve_omidlab/lib/python3.14/site-packages/idna/codec.py__annotate__Codec.__annotate__   s+     ' '3 ' '5;L '    c                n    VR 8w  d   \        RV R24      hV'       g   R# \        V4      \        V4      3# )strictUnsupported error handling ""r   r   )r   r	   lenselfr   r   s   &&&r   r	   Codec.encode   s:    X:6(!DEEMd|SY&&r   c                B   < V ^8  d   QhRS[ RS[RS[S[S[3,          /# r   )r   r   r   r   )r   r   s   "r   r   r      s*     ' '5 '# 'U38_ 'r   c                n    VR 8w  d   \        RV R24      hV'       g   R# \        V4      \        V4      3# )r   r   r     r   )r   r   r"   r#   s   &&&r   r   Codec.decode   s:    X:6(!DEELd|SY&&r    N)r   )	__name__
__module____qualname____firstlineno____doc__r	   r   __static_attributes____classdictcell__r   s   @r   r   r      s#     ' '' ' 'r   r   c                   6   a  ] tR t^%t o RtV 3R lR ltRtV tR# )IncrementalEncodera  Incremental IDNA 2008 encoder.

Buffers a partial trailing label across calls until either the next
label separator is seen or ``final=True``, so that streamed input is
encoded one whole label at a time. Any of the four Unicode label
separators (``U+002E``, ``U+3002``, ``U+FF0E``, ``U+FF61``) ends a
label; the result always uses ``U+002E`` as the separator.

Only the ``"strict"`` error handler is supported.
c          
      H   < V ^8  d   QhRS[ RS[ RS[RS[S[S[3,          /# r   r   r   finalr   )r   boolr   r   r   )r   r   s   "r   r   IncrementalEncoder.__annotate__1   s3     " "3 " "D "U5RU:EV "r   c                   VR 8w  d   \        RV R24      hV'       g   R# \        P                  ! V4      pRpV'       d+   VR,          '       g   RpVR MV'       g   VR V'       d   Rp. p^ pV F@  pVP                  \	        V4      4       V'       d
   V^,          pV\        V4      ,          pKB  	  RP                  V4      V,           p	V\        V4      ,          pW3# )r   r   r    r      .r!   )r   r   splitappendr   r"   join)
r$   r   r   r8   labelstrailing_dotresultsizelabelresult_bytess
   &&&&      r   _buffer_encode!IncrementalEncoder._buffer_encode1   s    X:6(!DEEM!''-"::#2J2J#'LEMM&-(	CJD	  yy(<7L!!!!r   r+   N)r,   r-   r.   r/   r0   rG   r1   r2   r3   s   @r   r5   r5   %   s     	" "r   r5   c                   6   a  ] tR t^Rt o RtV 3R lR ltRtV tR# )IncrementalDecoderzIncremental IDNA 2008 decoder.

Buffers a partial trailing label across calls until either the next
label separator is seen or ``final=True``, so that streamed input is
decoded one whole label at a time.

Only the ``"strict"`` error handler is supported.
c          
      H   < V ^8  d   QhRS[ RS[RS[RS[S[S[3,          /# r7   )r   r   r9   r   r   )r   r   s   "r   r   IncrementalDecoder.__annotate__\   s2      "  "3  "  "D  "U3PS8_  "r   c                   VR 8w  d   \        RV R24      hV'       g   R# \        V\        4      '       g   \        VR4      p\        P                  ! V4      pRpV'       d+   VR,          '       g   RpVR MV'       g   VR V'       d   Rp. p^ pV F@  pVP                  \        V4      4       V'       d
   V^,          pV\        V4      ,          pKB  	  RP                  V4      V,           p	V\        V4      ,          pW3# )r   r   r    r)   ascii.r(   r=   )	r   
isinstancer   r   r>   r?   r
   r"   r@   )
r$   r   r   r8   rA   rB   rC   rD   rE   
result_strs
   &&&&      r   _buffer_decode!IncrementalDecoder._buffer_decode\   s    X:6(!DEEN$$$tW%D!''-"::"2J2J#&LEMM&-(	CJD	  XXf%4
L!!!!r   r+   N)r,   r-   r.   r/   r0   rR   r1   r2   r3   s   @r   rJ   rJ   R   s      "  "r   rJ   c                       ] tR t^tRtR# )StreamWriterr+   Nr,   r-   r.   r/   r1   r+   r   r   rU   rU          r   rU   c                       ] tR t^tRtR# )StreamReaderr+   NrV   r+   r   r   rY   rY      rW   r   rY   c                Z    V ^8  d   QhR\         R\        \        P                  ,          /# )r   namer   )r   r   codecs	CodecInfo)r   s   "r   r   r      s%      # (6+;+;"< r   c           
         V R8w  d   R# \         P                  ! V \        4       P                  \        4       P                  \
        \        \        \        R7      # )a  Codec search function registered with :mod:`codecs`.

Returns a :class:`codecs.CodecInfo` for the ``"idna2008"`` codec name
so that ``str.encode("idna2008")`` and ``bytes.decode("idna2008")``
invoke the IDNA 2008 codec defined in this module.

:param name: The codec name being looked up.
:returns: A :class:`codecs.CodecInfo` instance if ``name`` is
    ``"idna2008"``, otherwise ``None``.
idna2008N)r[   r	   r   incrementalencoderincrementaldecoderstreamwriterstreamreader)	r\   r]   r   r	   r   r5   rJ   rU   rY   )r[   s   &r   search_functionrd      sC     zw~~w~~--!! r   )r\   typingr   r   corer   r   r   r   r	   r
   r   BufferedIncrementalEncoderr5   BufferedIncrementalDecoderrJ   rU   rY   rd   registerr+   r   r   <module>rj      s       M M'FLL '<*":: *"Z*":: *"Z	5&-- 		5&-- 	0   r   