
    F\h7                         S r SSKrSSKr\R                  rSS jr " S S\R                  5      r " S S\R                  5      r " S S	\R                  5      r	 " S
 S\R                  5      r
S rg)z
Python 'utf-32' Codec
    Nc                 0    [         R                  " XS5      $ )NT)codecsutf_32_decode)inputerrorss     '/usr/lib/python3.13/encodings/utf_32.pydecoder	   
   s    t44    c                   :    \ rS rSrS	S jrS
S jrS rS rS rSr	g)IncrementalEncoder   c                 P    [         R                  R                  X5        S U l        g N)r   r   __init__encoderselfr   s     r   r   IncrementalEncoder.__init__   s    !!**48r
   c                 "   U R                   ce  [        R                  " XR                  5      S   n[        R
                  S:X  a  [        R                  U l         U$ [        R                  U l         U$ U R                  XR                  5      S   $ )Nr   little)r   r   utf_32_encoder   sys	byteorderutf_32_le_encodeutf_32_be_encode)r   r   finalresults       r   encodeIncrementalEncoder.encode   sq    <<))%=a@F}}(%66 M  &66M||E;;/22r
   c                 P    [         R                  R                  U 5        S U l        g r   )r   r   resetr   r   s    r   r!   IncrementalEncoder.reset   s    !!''-r
   c                 $    U R                   c  S$ S$ )N   r   r   r"   s    r   getstateIncrementalEncoder.getstate    s    
 \\)1q1r
   c                     U(       a  S U l         g [        R                  S:X  a  [        R                  U l         g [        R
                  U l         g Nr   )r   r   r   r   r   r   r   states     r   setstateIncrementalEncoder.setstate'   s2    DL}}(%66%66r
   r&   Nstrict)F)
__name__
__module____qualname____firstlineno__r   r   r!   r'   r-   __static_attributes__ r
   r   r   r      s    327r
   r   c                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
IncrementalDecoder0   c                 P    [         R                  R                  X5        S U l        g r   )r   BufferedIncrementalDecoderr   decoderr   s     r   r   IncrementalDecoder.__init__1   s    ))224@r
   c                 2   U R                   co  [        R                  " XSU5      u  pEnUS:X  a  [        R                  U l         XE4$ US:X  a  [        R                  U l         XE4$ US:  a  [        SUSSS5      eXE4$ U R                  XR                  U5      $ )Nr         utf-32Stream does not start with BOM)r<   r   utf_32_ex_decodeutf_32_le_decodeutf_32_be_decodeUnicodeDecodeErrorr   )r   r   r   r   outputconsumedr   s          r   _buffer_decode!IncrementalDecoder._buffer_decode5   s    <<''q%@ *VyB%66
 %%	 a%66 %% Q(5!Q@`aa%%||E;;66r
   c                 P    [         R                  R                  U 5        S U l        g r   )r   r;   r!   r<   r"   s    r   r!   IncrementalDecoder.resetB   s    ))//5r
   c                     [         R                  R                  U 5      S   nU R                  c  US4$ [	        [
        R                  S:H  U R                  [         R                  L :g  5      nX4$ )Nr   r%   big)r   r;   r'   r<   intr   r   rF   )r   r,   addstates      r   r'   IncrementalDecoder.getstateF   sl     11::4@C
 <<1:.(?(??A B  r
   c                 Z   [         R                  R                  X5        US   nUS:X  a:  [        R                  S:X  a  [         R
                  O[         R                  U l        g US:X  a:  [        R                  S:X  a  [         R                  O[         R
                  U l        g S U l        g )Nr@   r   rO   )r   r;   r-   r   r   rF   rE   r<   r+   s     r   r-   IncrementalDecoder.setstateT   s    ))224?aA:"}}5 #33!'!8!8 L aZ"}}5 #33!'!8!8 L  DLr
   )r<   Nr/   )
r1   r2   r3   r4   r   rJ   r!   r'   r-   r5   r6   r
   r   r8   r8   0   s    7! r
   r8   c                   .    \ rS rSrSS jrS rSS jrSrg)StreamWriterc   c                 R    S U l         [        R                  R                  XU5        g r   )r   r   rV   r   )r   streamr   s      r   r   StreamWriter.__init__d   s    $$T6:r
   c                 P    [         R                  R                  U 5        S U l        g r   )r   rV   r!   r   r"   s    r   r!   StreamWriter.reseth   s    !!$'r
   c                     U R                   cX  [        R                  " X5      n[        R                  S:X  a  [        R
                  U l         U$ [        R                  U l         U$ U R                  X5      $ r*   )r   r   r   r   r   r   r   )r   r   r   r   s       r   r   StreamWriter.encodel   s_    <<))%8F}}(%66 M  &66M<<..r
   r&   Nr/   )r1   r2   r3   r4   r   r!   r   r5   r6   r
   r   rV   rV   c   s    ;	/r
   rV   c                   $    \ rS rSrS rSS jrSrg)StreamReaderw   c                 h    [         R                  R                  U 5         U ?g ! [         a     g f = fr   )r   r`   r!   r	   AttributeErrorr"   s    r   r!   StreamReader.resety   s2    !!$'	 		s   $ 
11c                     [         R                  " XSS5      u  p4nUS:X  a  [         R                  U l        X44$ US:X  a  [         R                  U l        X44$ US:  a  [        SUSSS5      eX44$ )Nr   Fr?   r@   rA   rB   rC   )r   rD   rE   r	   rF   rG   )r   r   r   objectrI   r   s         r   r	   StreamReader.decode   s    ##E1e< 	&9? 11DK
 !!	 !^ 11DK !! ]$Xua<\]]!!r
   )r	   Nr/   )r1   r2   r3   r4   r!   r	   r5   r6   r
   r   r`   r`   w   s    	"r
   r`   c            
      f    [         R                  " S[        [        [        [
        [        [        S9$ )NrB   )namer   r	   incrementalencoderincrementaldecoderstreamreaderstreamwriter)r   	CodecInfor   r	   r   r8   r`   rV   r6   r
   r   getregentryro      s*    --!! r
   r/   )__doc__r   r   r   r   r	   r   r;   r8   rV   r`   ro   r6   r
   r   <module>rq      sp     
		5!722 !7F1 :: 1 f/6&& /("6&& ",	r
   