
    ,hhm                    T   S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  \R                  S;   a  S SK
Jr  OSrS SKrS SKJrJrJrJr  1 Skr\" \ S5      (       a6  \R)                  \ R*                  5        \R)                  \ R,                  5        Sr\r\" \S	5      =(       d    \R2                  R4                  rS,S
 jr\  S-S j5       rS r \R@                  r  \RD                  r" " S S\RJ                  S9r&\RL                  RO                  \&5         " S S\&5      r(\RP                  RO                  \(5         " S S\&5      r)\RR                  RO                  \)5         " S S\)5      r* " S S\)5      r+ " S S\*5      r, " S S\*5      r- " S S\)5      r. " S  S!\-\,5      r/ " S" S#\(5      r0 " S$ S%\&5      r1\Rb                  RO                  \15         " S& S'\Rd                  5      r3 " S( S)\15      r4 " S* S+\45      r5g! \! a    \r  GN2f = f! \! a     " S S\#\$5      r" GN>f = f).    N)allocate_lock>   win32cygwin)setmode)__all__SEEK_SETSEEK_CURSEEK_END>   r         	SEEK_HOLEi    gettotalrefcountc                     U ca  [         R                  R                  (       a  Sn OSn [         R                  R                  (       a  SS KnUR                  S[        US-   5        U $ )Nutf-8localer   z"'encoding' argument not specified.r   )sysflags	utf8_modewarn_default_encodingwarningswarnEncodingWarning)encoding
stacklevelr   s      ./opt/python-3.13.8/usr/lib/python3.13/_pyio.pytext_encodingr   (   sN     99HH99**MM>):>;O    c                    [        U [        5      (       d  [        R                  " U 5      n [        U [        [
        [        45      (       d  [        SU -  5      e[        U[        5      (       d  [        SU-  5      e[        U[        5      (       d  [        SU-  5      eUb#  [        U[        5      (       d  [        SU-  5      eUb#  [        U[        5      (       d  [        SU-  5      e[        U5      nU[        S5      -
  (       d  [        U5      [        U5      :  a  [        SU-  5      eSU;   n	SU;   n
S	U;   nS
U;   nSU;   nSU;   nSU;   nU(       a  U(       a  [        S5      eX-   U-   U-   S:  a  [        S5      eU	(       d   U
(       d  U(       d  U(       d  [        S5      eU(       a  Ub  [        S5      eU(       a  Ub  [        S5      eU(       a  Ub  [        S5      eU(       a!  US:X  a  SS K
nUR                  S[        S5        [        U U	=(       a    S=(       d    SU
=(       a    S=(       d    S-   U=(       a    S	=(       d    S-   U=(       a    S
=(       d    S-   U=(       a    S=(       d    S-   XgS9nUn SnUS:X  d  US:  a  UR                  5       (       a  SnSnUS:  a=  [        n [        R                   " UR#                  5       5      R$                  nUS:  a  UnUS:  a  [        S5      eUS:X  a  U(       a  U$ [        S5      eU(       a  [+        UU5      nODU	(       d  U(       d  U(       a  [-        UU5      nO"U
(       a  [/        UU5      nO[        SU-  5      eUnU(       a  U$ [1        U5      n[3        UX4UU5      nUnXl        U$ ! [&        [(        4 a     Nf = f!   UR7                  5         e = f) Nzinvalid file: %rzinvalid mode: %rzinvalid buffering: %rinvalid encoding: %rinvalid errors: %rzaxrwb+txrwa+tbz'can't have text and binary mode at oncer   z)can't have read/write/append mode at oncez/must have exactly one of read/write/append modez-binary mode doesn't take an encoding argumentz+binary mode doesn't take an errors argumentz+binary mode doesn't take a newline argumentr   zaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be usedr    )openerFTzinvalid buffering sizezcan't have unbuffered text I/Ozunknown mode: %r)
isinstanceintosfspathstrbytes	TypeErrorsetlen
ValueErrorr   r   RuntimeWarningFileIOisattyDEFAULT_BUFFER_SIZEfstatfileno
st_blksizeOSErrorAttributeErrorBufferedRandomBufferedWriterBufferedReaderr   TextIOWrappermodeclose)filerB   	bufferingr   errorsnewlineclosefdr)   modescreatingreadingwriting	appendingupdatingtextbinaryr   rawresultline_bufferingbsbuffers                         r   openrV   I   s   n dC  yydS%-..*T122dC  *T122i%%/);<<Jx$=$=.9::*VS"9"9,v566IEs9~TSZ!7+d233e|HUlGUlGuIe|H%<DE\FBCCG#i/!3DEE7iJKK(&HII&$FGG'%FGG)q. C$a	) "s(b/c'R)/c'R) #)r+ "s(b	*
 )C F&>Y]szz||I!Nq=+I#XXcjjl+66 6 "Iq=566>=>>#C3FI#C3F#C3F/$677M *VXwO	5 ^, 6s=   3N8 ;.N" )'N8 A-N8 ?"N8 "N52N8 4N55N8 8Oc                 P    SS K nUR                  S[        S5        [        U S5      $ )Nr   z(_pyio.open_code() may not be using hooksr   rb)r   r   r5   rV   )pathr   s     r   _open_code_with_warningrZ     s(     MM< !%dr   c                       \ rS rSrSrg)UnsupportedOperationi4   N)__name__
__module____qualname____firstlineno____static_attributes__r]   r   r   r\   r\   4  s    r   r\   c                       \ rS rSrS rSS jrS rSS jrS rSr	S	 r
S
 rS rSS jrS rSS jrS rSS jr\S 5       rSS jrS rS rS rS rSS jrS rS rSS jrS rSrg) IOBasei8  c                 P    [        U R                  R                  < SU< S35      e)N.z() not supported)r\   	__class__r^   )selfnames     r   _unsupportedIOBase._unsupportedZ  s&    "$(NN$;$;T$C D 	Dr   c                 &    U R                  S5        g )Nseekrj   rh   poswhences      r   rm   IOBase.seeka  s     	&!r   c                 &    U R                  SS5      $ Nr   r   )rm   rh   s    r   tellIOBase.tellq  s    yyAr   Nc                 &    U R                  S5        g Ntruncatern   rh   rp   s     r   rz   IOBase.truncateu       	*%r   c                 $    U R                  5         g N_checkClosedru   s    r   flushIOBase.flush  s    
 	r   Fc                 p    U R                   (       d   U R                  5         SU l         g g ! SU l         f = f)NT)_IOBase__closedr   ru   s    r   rC   IOBase.close  s0    
 }}%

 $	  !%s   , 	5c                      U R                   nU(       a  g [        U SS 5      =n(       a  U" U 5        U R                  5         g ! [         a     g f = fN_dealloc_warn)closedr=   getattrrC   )rh   r   dealloc_warns      r   __del__IOBase.__del__  sU    	[[F "4$??<? 	

  	 	s   A 
AAc                     gNFr]   ru   s    r   seekableIOBase.seekable  s     r   c                 V    U R                  5       (       d  [        Uc  S5      eU5      eg )NzFile or stream is not seekable.)r   r\   rh   msgs     r   _checkSeekableIOBase._checkSeekable  =     }}&*-+ (I @ @;>@ @ r   c                     gr   r]   ru   s    r   readableIOBase.readable      
 r   c                 V    U R                  5       (       d  [        Uc  S5      eU5      eg )NzFile or stream is not readable.)r   r\   r   s     r   _checkReadableIOBase._checkReadable  r   r   c                     gr   r]   ru   s    r   writableIOBase.writable  r   r   c                 V    U R                  5       (       d  [        Uc  S5      eU5      eg )NzFile or stream is not writable.)r   r\   r   s     r   _checkWritableIOBase._checkWritable  r   r   c                     U R                   $ r   )r   ru   s    r   r   IOBase.closed  s     }}r   c                 N    U R                   (       a  [        Uc  S5      eU5      eg NI/O operation on closed file.r   r4   r   s     r   r   IOBase._checkClosed  s4     ;; # = 6 6146 6 r   c                 &    U R                  5         U $ r   r   ru   s    r   	__enter__IOBase.__enter__  s    r   c                 $    U R                  5         g r   )rC   )rh   argss     r   __exit__IOBase.__exit__  s    

r   c                 &    U R                  S5        g )Nr:   rn   ru   s    r   r:   IOBase.fileno  s    
 	(#r   c                 $    U R                  5         gr   r   ru   s    r   r7   IOBase.isatty  s    
 	r   c                   ^ ^ [        T S5      (       a  U U4S jnOS nTc  SmO TR                  nU" 5       m[	        5       nTS:  d  [        U5      T:  aR  T R                  U" 5       5      nU(       d  O4XE-  nUR                  S5      (       a  OTS:  a  MA  [        U5      T:  a  MR  [        U5      $ ! [         a    [        T< S35      ef = f)Npeekc                     > TR                  S5      n U (       d  gU R                  S5      S-   =(       d    [        U 5      nTS:  a  [        UT5      nU$ )Nr      
r   )r   findr3   min)	readaheadnrh   sizes     r   
nreadahead#IOBase.readline.<locals>.nreadahead  sI     IIaL	 ^^E*Q.A3y>19AtAr   c                      gNr   r]   r]   r   r   r   r     s    r   r*    is not an integerr   r   )	hasattr	__index__r=   r1   	bytearrayr3   readendswithr0   )rh   r   r   
size_indexresr'   s   ``    r   readlineIOBase.readline  s     4  <D$!^^
 "|kQh#c(T/		*,'AHC||E"" Qh#c(T/ Sz " ?4(*< =>>?s   B5 5Cc                 &    U R                  5         U $ r   r   ru   s    r   __iter__IOBase.__iter__-  s    r   c                 @    U R                  5       nU(       d  [        eU$ r   )r   StopIterationrh   lines     r   __next__IOBase.__next__1  s    }}r   c                     Ub  US::  a  [        U 5      $ Sn/ nU  H*  nUR                  U5        U[        U5      -  nX!:  d  M)    U$    U$ Nr   )listappendr3   )rh   hintr   linesr   s        r   	readlinesIOBase.readlines7  sZ     <419:DLLTNAy 
 r   c                 X    U R                  5         U H  nU R                  U5        M     g r   )r   write)rh   r   r   s      r   
writelinesIOBase.writelinesI  s&     	DJJt r   )__closedr   r   r*   )r^   r_   r`   ra   rj   rm   rv   rz   r   r   rC   r   r   r   r   r   r   r   propertyr   r   r   r   r:   r7   r   r   r   r   r   rb   r]   r   r   rd   rd   8  s    DD" & H	%*@@@  6
$(T$r   rd   )	metaclassc                   0    \ rS rSrSS jrS rS rS rSrg)		RawIOBaseiV  c                     Uc  SnUS:  a  U R                  5       $ [        UR                  5       5      nU R                  U5      nUc  g X#S 2	 [	        U5      $ )Nr*   r   )readallr   r   readintor0   )rh   r   r'   r   s       r   r   RawIOBase.readd  sX     <D!8<<>!dnn&'MM!9bEQxr   c                     [        5       nU R                  [        5      =n(       a"  X-  nU R                  [        5      =n(       a  M"  U(       a  [        U5      $ U$ r   )r   r   r8   r0   )rh   r   datas      r   r   RawIOBase.readallu  sP    kii 344d4KC ii 344d4: Kr   c                 &    U R                  S5        g )Nr   rn   rh   r'   s     r   r   RawIOBase.readinto  r}   r   c                 &    U R                  S5        g Nr   rn   r   s     r   r   RawIOBase.write  s     	'"r   r]   Nr   )	r^   r_   r`   ra   r   r   r   r   rb   r]   r   r   r   r   V  s    "	&#r   r   c                   F    \ rS rSrSS jrSS jrS rS rS rS r	S r
S	rg
)BufferedIOBasei  c                 &    U R                  S5        g Nr   rn   rh   r   s     r   r   BufferedIOBase.read  s    $ 	&!r   c                 &    U R                  S5        g )Nread1rn   r   s     r   r   BufferedIOBase.read1  s     	'"r   c                 "    U R                  USS9$ )NFr   	_readintor   s     r   r   BufferedIOBase.readinto  s     ~~au~--r   c                 "    U R                  USS9$ )NTr  r  r   s     r   	readinto1BufferedIOBase.readinto1  s     ~~at~,,r   c                     [        U[        5      (       d  [        U5      nUR                  S5      nU(       a  U R                  [	        U5      5      nOU R                  [	        U5      5      n[	        U5      nX1S U& U$ NB)r+   
memoryviewcastr   r3   r   )rh   r'   r   r   r   s        r   r  BufferedIOBase._readinto  sc    !Z((1AFF3K::c!f%D99SV$DI"1r   c                 &    U R                  S5        g r   rn   r   s     r   r   BufferedIOBase.write  s     	'"r   c                 &    U R                  S5        g Ndetachrn   ru   s    r   r  BufferedIOBase.detach       	(#r   r]   Nr   )r^   r_   r`   ra   r   r   r   r  r  r   r  rb   r]   r   r   r   r     s%    ""(#.	-	#$r   r   c                       \ rS rSrS rSS jrS rSS jrS rS r	S	 r
S
 r\S 5       r\S 5       r\S 5       r\S 5       rS rS rS rS rS rSrg)_BufferedIOMixini  c                     Xl         g r   _rawrh   rQ   s     r   __init___BufferedIOMixin.__init__  s    	r   c                 ^    U R                   R                  X5      nUS:  a  [        S5      eU$ )Nr   z#seek() returned an invalid position)rQ   rm   r<   )rh   rp   rq   new_positions       r   rm   _BufferedIOMixin.seek  s.    xx}}S1!?@@r   c                 \    U R                   R                  5       nUS:  a  [        S5      eU$ )Nr   z#tell() returned an invalid position)rQ   rv   r<   r{   s     r   rv   _BufferedIOMixin.tell  s)    hhmmo7?@@
r   Nc                     U R                  5         U R                  5         U R                  5         Uc  U R                  5       nU R                  R                  U5      $ r   )r   r   r   rv   rQ   rz   r{   s     r   rz   _BufferedIOMixin.truncate  sL    
 	

;))+C xx  %%r   c                 p    U R                   (       a  [        S5      eU R                  R                  5         g )Nflush on closed file)r   r4   rQ   r   ru   s    r   r   _BufferedIOMixin.flush(  s#    ;;344r   c                     U R                   b>  U R                  (       d,   U R                  5         U R                   R                  5         g g g ! U R                   R                  5         f = fr   )rQ   r   r   rC   ru   s    r   rC   _BufferedIOMixin.close-  sH    88!

  )4
     A A)c                 |    U R                   c  [        S5      eU R                  5         U R                  nS U l        U$ )Nzraw stream already detached)rQ   r4   r   r  r  s     r   r  _BufferedIOMixin.detach5  s6    88:;;

ii	
r   c                 6    U R                   R                  5       $ r   )rQ   r   ru   s    r   r   _BufferedIOMixin.seekable?      xx  ""r   c                     U R                   $ r   r  ru   s    r   rQ   _BufferedIOMixin.rawB  s    yyr   c                 .    U R                   R                  $ r   )rQ   r   ru   s    r   r   _BufferedIOMixin.closedF  s    xxr   c                 .    U R                   R                  $ r   )rQ   ri   ru   s    r   ri   _BufferedIOMixin.nameJ      xx}}r   c                 .    U R                   R                  $ r   )rQ   rB   ru   s    r   rB   _BufferedIOMixin.modeN  r6  r   c                 J    [        SU R                  R                  < S35      eNzcannot pickle z objectr1   rg   r^   ru   s    r   __getstate___BufferedIOMixin.__getstate__R  !    .)@)@(C7KLLr   c                     U R                   R                  nU R                   R                  n U R                  nSR	                  XU5      $ ! [
         a    SR	                  X5      s $ f = f)Nz<{}.{} name={!r}>z<{}.{}>)rg   r_   r`   ri   formatr=   )rh   modnameclsnameri   s       r   __repr___BufferedIOMixin.__repr__U  sf    ..++..--	F99D '--gEE  	6##G55	6s   A A*)A*c                 R    [        U R                  SS 5      =n(       a	  U" U5        g g r   )r   rQ   rh   sourcer   s      r   r   _BufferedIOMixin._dealloc_warn_  s(    "488_dCC<C  Dr   c                 6    U R                   R                  5       $ r   )rQ   r:   ru   s    r   r:   _BufferedIOMixin.filenoe      xx  r   c                 6    U R                   R                  5       $ r   )rQ   r7   ru   s    r   r7   _BufferedIOMixin.isattyh  rK  r   r  r   r   )r^   r_   r`   ra   r  rm   rv   rz   r   rC   r  r   r   rQ   r   ri   rB   r<  rC  r   r:   r7   rb   r]   r   r   r  r    s    
&"
!#        MF!!!r   r  c                      ^  \ rS rSrSrSS jrS rS rS rU 4S jr	SS jr
SS	 jrS
 rSS jrS rSS jrS rS rS rSrU =r$ )BytesIOil  Nc                 @    [        5       nUb  X!-  nX l        SU l        g r   )r   _buffer_pos)rh   initial_bytesbufs      r   r  BytesIO.__init__t  s#    k$ C	r   c                 n    U R                   (       a  [        S5      eU R                  R                  5       $ )Nz__getstate__ on closed file)r   r4   __dict__copyru   s    r   r<  BytesIO.__getstate__{  s(    ;;:;;}}!!##r   c                 d    U R                   (       a  [        S5      e[        U R                  5      $ )Nzgetvalue on closed file)r   r4   r0   rQ  ru   s    r   getvalueBytesIO.getvalue  s&     ;;677T\\""r   c                 d    U R                   (       a  [        S5      e[        U R                  5      $ )Nzgetbuffer on closed file)r   r4   r  rQ  ru   s    r   	getbufferBytesIO.getbuffer  s&     ;;788$,,''r   c                 p   > U R                   b  U R                   R                  5         [        TU ]  5         g r   )rQ  clearsuperrC   rh   rg   s    r   rC   BytesIO.close  s&    <<#LL r   c                    U R                   (       a  [        S5      eUc  SnO UR                  nU" 5       nUS:  a  [        U R                  5      n[        U R                  5      U R                  ::  a  g[        [        U R                  5      U R                  U-   5      nU R                  U R                  U nX0l        [        U5      $ ! [         a    [	        U< S35      ef = f)Nread from closed filer*   r   r   r   )
r   r4   r   r=   r1   r3   rQ  rR  r   r0   )rh   r   r   newposr'   s        r   r   BytesIO.read  s    ;;455<D$!^^
 "|!8t||$Dt||		)S&		D(89LLV,	Qx " ?4(*< =>>?s   C C&c                 $    U R                  U5      $ r   )r   r   s     r   r   BytesIO.read1  s     yyr   c                    U R                   (       a  [        S5      e[        U[        5      (       a  [	        S5      e[        U5       nUR                  nS S S 5        WS:X  a  gU R                  nU[        U R                  5      :  a0  SU[        U R                  5      -
  -  nU =R                  U-  sl	        XR                  XDU-   & U =R                  U-  sl        U$ ! , (       d  f       N= f)Nwrite to closed file can't write str to binary streamr       )
r   r4   r+   r/   r1   r  nbytesrR  r3   rQ  )rh   r'   viewr   rp   paddings         r   r   BytesIO.write  s    ;;344a>??]dA 6iiT\\"" s4<<'8!89GLLG#L$%Sq!		Q	 ]s   C  
C.c                    U R                   (       a  [        S5      e UR                  nU" 5       nUS:X  a'  US:  a  [        SU< 35      eXl        U R
                  $ US:X  a*  [        SU R
                  U-   5      U l        U R
                  $ US:X  a3  [        S[        U R                  5      U-   5      U l        U R
                  $ [        S5      e! [         a    [	        U< S35      ef = f)Nzseek on closed filer   r   negative seek position r   r   zunsupported whence value)	r   r4   r   r=   r1   rR  maxr3   rQ  )rh   rp   rq   	pos_indexs       r   rm   BytesIO.seek  s    ;;233	I +CQ;Qw !EFFI yy q[Atyy3/DI
 yy	 q[As4<<0367DI yy 788  	:sg%7899	:s   C C,c                 R    U R                   (       a  [        S5      eU R                  $ )Ntell on closed file)r   r4   rR  ru   s    r   rv   BytesIO.tell  s    ;;233yyr   c                    U R                   (       a  [        S5      eUc  U R                  nO) UR                  nU" 5       nUS:  a  [        SU< 35      eU R                  US 2	 U$ ! [         a    [        U< S35      ef = f)Nztruncate on closed filer   r   znegative truncate position )r   r4   rR  r   r=   r1   rQ  )rh   rp   rv  s      r   rz   BytesIO.truncate  s    ;;677;))C"MM	  kQw C!IJJLL
 " >3'); <==>s   A' 'Bc                 <    U R                   (       a  [        S5      egNr   Tr   ru   s    r   r   BytesIO.readable      ;;<==r   c                 <    U R                   (       a  [        S5      egr~  r   ru   s    r   r   BytesIO.writable  r  r   c                 <    U R                   (       a  [        S5      egr~  r   ru   s    r   r   BytesIO.seekable  r  r   )rQ  rR  r   r   r   )r^   r_   r`   ra   rQ  r  r<  r[  r^  rC   r   r   r   rm   rv   rz   r   r   r   rb   __classcell__rg   s   @r   rO  rO  l  sU     G$
#(
*
&*
"

 r   rO  c                   t    \ rS rSr\4S jrS rS rSS jrSS jr	SS jr
SS	 jrSS
 jrS rS rSS jrSrg)r@   i  c                     UR                  5       (       d  [        S5      e[        R                  X5        US::  a  [	        S5      eX l        U R                  5         [        5       U l        g )Nz "raw" argument must be readable.r   invalid buffer size)	r   r<   r  r  r4   buffer_size_reset_read_bufLock
_read_lockrh   rQ   r  s      r   r  BufferedReader.__init__  sX     ||~~<==!!$,!233&&r   c                 6    U R                   R                  5       $ r   )rQ   r   ru   s    r   r   BufferedReader.readable  r/  r   c                      SU l         SU l        g )Nr   r   )	_read_buf	_read_posru   s    r   r  BufferedReader._reset_read_buf  s    r   Nc                     Ub  US:  a  [        S5      eU R                     U R                  U5      sS S S 5        $ ! , (       d  f       g = f)Nr*   zinvalid number of bytes to read)r4   r  _read_unlockedr   s     r   r   BufferedReader.read  s;     r	>??__&&t, __s	   <
A
c                 p   SnSnU R                   nU R                  nUb  US:X  a  U R                  5         [        U R                  S5      (       a1  U R                  R                  5       nUc  XES  =(       d    S $ XES  U-   $ XES  /nSn U R                  R                  5       nXc;   a  UnO!U[        U5      -  nUR                  U5        MC  SR                  U5      =(       d    U$ [        U5      U-
  n	X::  a  U =R                  U-  sl        XEXQ-    $ XES  /n[        U R                  U5      n
X:  aI  U R                  R                  U
5      nXc;   a  UnO&U	[        U5      -  n	UR                  U5        X:  a  MI  [        X5      nSR                  U5      nXS  U l         SU l        U(       a  US U $ U$ )Nr   )r   Nr*   r   r   )r  r  r  r   rQ   r   r   r3   r   joinru  r  r   )rh   r   
nodata_valempty_valuesrT  rp   chunkchunkscurrent_sizeavailwantedouts               r   r  BufferedReader._read_unlocked'  s   
"nnnn 9R  "txx++((*=t9,,t9u,,$i[FL(!&JE
*e$  88F#1z1 C3:NNaN35>! d)T%%q)iHHMM&)E$"
SZEMM%  i MhhvRs2Aw-:-r   c                     U R                  S5        U R                     U R                  U5      sS S S 5        $ ! , (       d  f       g = f)Nzpeek of closed file)r   r  _peek_unlockedr   s     r   r   BufferedReader.peek[  s2     	/0__&&t, __s	   9
Ac                 j   [        XR                  5      n[        U R                  5      U R                  -
  nX2:  d  US::  aY  U R                  U-
  nU R
                  R                  U5      nU(       a(  U R                  U R                  S  U-   U l        SU l        U R                  U R                  S  $ r   )r   r  r3   r  r  rQ   r   )rh   r   wanthaveto_readcurrents         r   r  BufferedReader._peek_unlockedf  s    1&&'4>>"T^^3;$!)&&-GhhmmG,G!%!@7!J!"~~dnno..r   c           	      <   U R                  S5        US:  a  U R                  nUS:X  a  gU R                     U R                  S5        U R	                  [        U[        U R                  5      U R                  -
  5      5      sS S S 5        $ ! , (       d  f       g = f)Nzread of closed filer   r   r   )	r   r  r  r  r  r   r3   r  r  r   s     r   r   BufferedReader.read1q  sy     	/0!8##D19__"&&D#dnn->?A __s   AB
Bc                 T   U R                  S5        [        U[        5      (       d  [        U5      nUR                  S:X  a  gUR	                  S5      nSnU R
                     U[        U5      :  Ga  [        [        U R                  5      U R                  -
  [        U5      5      nU(       aS  U R                  U R                  U R                  U-    XX4-   & U =R                  U-  sl	        X4-  nU[        U5      :X  a  O[        U5      U-
  U R                  :  a*  U R                  R                  XS  5      nU(       d  OKX5-  nO%U(       a  U(       d  U R                  S5      (       d  O!U(       a  U(       a  OU[        U5      :  a  GM  S S S 5        U$ ! , (       d  f       U$ = f)Nzreadinto of closed filer   r  r   )r   r+   r  ro  r  r  r3   r   r  r  r  rQ   r   r  )rh   rT  r   writtenr  r   s         r   r  BufferedReader._readinto  s]    	34
 #z**S/C::?hhsm__CH$ C/$..@#c(Kt~~dnnU6JK .NNe+N$G#c(* s8g%(8(88))#h-8ALG  G..q11 W9 CH$ > ? _> s   "D)F
F'c                     [        [        R                  U 5      [        U R                  5      -
  U R
                  -   S5      $ r   )ru  r  rv   r3   r  r  ru   s    r   rv   BufferedReader.tell  s3    #((.T^^1DDt~~UWXYYr   c                 B   U[         ;  a  [        S5      eU R                  S5        U R                     US:X  a%  U[	        U R
                  5      U R                  -
  -  n[        R                  XU5      nU R                  5         UsS S S 5        $ ! , (       d  f       g = f)Ninvalid whence valuezseek of closed filer   )
valid_seek_flagsr4   r   r  r3   r  r  r  rm   r  ro   s      r   rm   BufferedReader.seek  s{    ))344/0__{s4>>*T^^;;"''6:C  " __s   AB
B)r  r  r  r  r   r   r   )r^   r_   r`   ra   r8   r  r   r  r   r  r   r  r   r  rv   rm   rb   r]   r   r   r@   r@     sB     )< !#-2.h	-	/A&.`Z	r   r@   c                   X    \ rS rSr\4S jrS rS rSS jrS r	S r
S	 rSS
 jrS rSrg)r?   i  c                     UR                  5       (       d  [        S5      e[        R                  X5        US::  a  [	        S5      eX l        [        5       U l        [        5       U l	        g )Nz "raw" argument must be writable.r   r  )
r   r<   r  r  r4   r  r   
_write_bufr  _write_lockr  s      r   r  BufferedWriter.__init__  sT    ||~~<==!!$,!233&#+6r   c                 6    U R                   R                  5       $ r   )rQ   r   ru   s    r   r   BufferedWriter.writable  r/  r   c                 h   [        U[        5      (       a  [        S5      eU R                     U R                  (       a  [        S5      e[        U R                  5      U R                  :  a  U R                  5         [        U R                  5      nU R                  R                  U5        [        U R                  5      U-
  n[        U R                  5      U R                  :  a   U R                  5         UsS S S 5        $ ! [         a  n[        U R                  5      U R                  :  ae  [        U R                  5      U R                  -
  nX5-  nU R                  S U R                   U l        [        UR                  UR                  U5      e S nANS nAff = f! , (       d  f       g = f)Nrm  rl  )r+   r/   r1   r  r   r4   r3   r  r  _flush_unlockedextendBlockingIOErrorerrnostrerror)rh   r'   beforer  eoverages         r   r   BufferedWriter.write  sS   a>??{{ !788 4??#d&6&66 $$&)FOO""1%$//*V3G4??#d&6&66	L((* /  ' L4??+d.>.>> #&doo"69I9I"I**.//:K4;K;K*L-aggqzz7KK ?L s7   B;F#)D9F#
F BFF#F  F##
F1Nc                     U R                      U R                  5         Uc  U R                  R                  5       nU R                  R	                  U5      sS S S 5        $ ! , (       d  f       g = fr   )r  r  rQ   rv   rz   r{   s     r   rz   BufferedWriter.truncate  sI      "{hhmmo88$$S)	 s   AA
A-c                 p    U R                      U R                  5         S S S 5        g ! , (       d  f       g = fr   )r  r  ru   s    r   r   BufferedWriter.flush  s#      " s   '
5c                    U R                   (       a  [        S5      eU R                  (       a   U R                  R	                  U R                  5      nUc  [        [        R                  SS5      eU[        U R                  5      :  d  US:  a  [        S5      eU R                  S U2	 U R                  (       a  M  g g ! [
         a    [        S5      ef = f)Nr&  zHself.raw should implement RawIOBase: it should not raise BlockingIOErrorz)write could not complete without blockingr   z*write() returned incorrect number of bytes)r   r4   r  rQ   r   r  RuntimeErrorr  EAGAINr3   r<   rh   r   s     r   r  BufferedWriter._flush_unlocked  s    ;;344ooGHHNN4??3 y%LL?D D 3t''1q5JKK# ooo # G" $F G GGs   %C   Cc                 X    [         R                  U 5      [        U R                  5      -   $ r   )r  rv   r3   r  ru   s    r   rv   BufferedWriter.tell  s!    $$T*S-AAAr   c                     U[         ;  a  [        S5      eU R                     U R                  5         [        R                  XU5      sS S S 5        $ ! , (       d  f       g = f)Nr  )r  r4   r  r  r  rm   ro   s      r   rm   BufferedWriter.seek  sH    ))344  "#((F; s   &A
A c                    U R                      U R                  b  U R                  (       a
   S S S 5        g  S S S 5         U R                  5         U R                      U R                  R	                  5         S S S 5        g ! , (       d  f       NO= f! , (       d  f       g = f! U R                      U R                  R	                  5         S S S 5        f ! , (       d  f       f = f= fr   )r  rQ   r   r   rC   ru   s    r   rC   BufferedWriter.close  s    xx4;; #. 	!JJL!!  "!  "!!!  "!!s;    B  B" B 
B
B"C$/C
	C$
C!C$)r  r  r  r   r   )r^   r_   r`   ra   r8   r  r   r   rz   r   r  rv   rm   rC   rb   r]   r   r   r?   r?     s5     )< 	"#8*#$"B<!r   r?   c                   ~    \ rS rSr\4S jrSS jrS rS rSS jr	SS jr
S rS	 rS
 rS rS rS r\S 5       rSrg)BufferedRWPairi,  c                     UR                  5       (       d  [        S5      eUR                  5       (       d  [        S5      e[        X5      U l        [        X#5      U l        g )Nz#"reader" argument must be readable.z#"writer" argument must be writable.)r   r<   r   r@   readerr?   writer)rh   r  r  r  s       r   r  BufferedRWPair.__init__<  sN    
   ?@@  ?@@$V9$V9r   c                 B    Uc  SnU R                   R                  U5      $ Nr*   )r  r   r   s     r   r   BufferedRWPair.readJ  s!    <D{{%%r   c                 8    U R                   R                  U5      $ r   )r  r   r   s     r   r   BufferedRWPair.readintoO  s    {{##A&&r   c                 8    U R                   R                  U5      $ r   )r  r   r   s     r   r   BufferedRWPair.writeR  s    {{  ##r   c                 8    U R                   R                  U5      $ r   )r  r   r   s     r   r   BufferedRWPair.peekU  s    {{%%r   c                 8    U R                   R                  U5      $ r   )r  r   r   s     r   r   BufferedRWPair.read1X  s    {{  &&r   c                 8    U R                   R                  U5      $ r   )r  r  r   s     r   r  BufferedRWPair.readinto1[  s    {{$$Q''r   c                 6    U R                   R                  5       $ r   )r  r   ru   s    r   r   BufferedRWPair.readable^      {{##%%r   c                 6    U R                   R                  5       $ r   )r  r   ru   s    r   r   BufferedRWPair.writablea  r  r   c                 6    U R                   R                  5       $ r   )r  r   ru   s    r   r   BufferedRWPair.flushd  s    {{  ""r   c                      U R                   R                  5         U R                  R                  5         g ! U R                  R                  5         f = fr   )r  rC   r  ru   s    r   rC   BufferedRWPair.closeg  s8    	 KKKKDKKs	   7 Ac                 x    U R                   R                  5       =(       d    U R                  R                  5       $ r   )r  r7   r  ru   s    r   r7   BufferedRWPair.isattym  s'    {{!!#;t{{'9'9';;r   c                 .    U R                   R                  $ r   )r  r   ru   s    r   r   BufferedRWPair.closedp      {{!!!r   )r  r  Nr   r   )r^   r_   r`   ra   r8   r  r   r   r   r   r   r  r   r   r   rC   r7   r   r   rb   r]   r   r   r  r  ,  sX      4G :&
'$&'(&&# < " "r   r  c                   j    \ rS rSr\4S jrSS jrS rSS jrSS jr	S r
SS	 jrSS
 jrS rS rSrg)r>   iu  c                 |    UR                  5         [        R                  XU5        [        R                  XU5        g r   )r   r@   r  r?   r  s      r   r  BufferedRandom.__init__~  s.    ;7;7r   c                    U[         ;  a  [        S5      eU R                  5         U R                  (       aQ  U R                     U R
                  R                  U R                  [        U R                  5      -
  S5        S S S 5        U R
                  R                  X5      nU R                     U R                  5         S S S 5        US:  a  [        S5      eU$ ! , (       d  f       Na= f! , (       d  f       N2= f)Nr  r   r   z seek() returned invalid position)r  r4   r   r  r  rQ   rm   r  r3   r  r<   ro   s      r   rm   BufferedRandom.seek  s    ))344

>>dnns4>>/BBAF ! hhmmC(__  " 7<==
 !
 _s   =C/C,
C),
C:c                 x    U R                   (       a  [        R                  U 5      $ [        R                  U 5      $ r   )r  r?   rv   r@   ru   s    r   rv   BufferedRandom.tell  s+    ??!&&t,,!&&t,,r   Nc                 R    Uc  U R                  5       n[        R                  X5      $ r   )rv   r?   rz   r{   s     r   rz   BufferedRandom.truncate  s#    ;))+C&&t11r   c                 V    Uc  SnU R                  5         [        R                  X5      $ r  )r   r@   r   r   s     r   r   BufferedRandom.read  s&    <D

""4..r   c                 L    U R                  5         [        R                  X5      $ r   )r   r@   r   r   s     r   r   BufferedRandom.readinto  s    

&&t//r   c                 L    U R                  5         [        R                  X5      $ r   )r   r@   r   r   s     r   r   BufferedRandom.peek  s    

""4..r   c                 L    U R                  5         [        R                  X5      $ r   )r   r@   r   r   s     r   r   BufferedRandom.read1  s    

##D//r   c                 L    U R                  5         [        R                  X5      $ r   )r   r@   r  r   s     r   r  BufferedRandom.readinto1  s    

''00r   c                 2   U R                   (       aa  U R                     U R                  R                  U R                  [        U R                   5      -
  S5        U R                  5         S S S 5        [        R                  X5      $ ! , (       d  f       N#= fr   )	r  r  rQ   rm   r  r3   r  r?   r   r   s     r   r   BufferedRandom.write  s`    >>dnns4>>/BBAF$$& ! ##D,, !s   AB
Br]   r   r   r   )r^   r_   r`   ra   r8   r  rm   rv   rz   r   r   r   r   r  r   rb   r]   r   r   r>   r>   u  s9     )< 8
"-2/0/01-r   r>   c                      ^  \ rS rSrSrSrSrSrSrSr	Sr
SS jrS rS rS	 rS
 rSS jrSS jrS rS rS r\4S jrS rSS jrU 4S jrS rS rS rS rS r\S 5       r \S 5       r!Sr"U =r#$ )r6   i  r*   FNTc                 	   U R                   S:  a9   U R                  (       a   [        R                  " U R                   5        SU l         [	        U[
        5      (       a  [        S5      e[	        U[        5      (       aM  [	        U[        5      (       a$  SS K	nUR                  S[        SS9  [        U5      nUnUS:  a  [        S5      eOSn[	        U[        5      (       d  [        SU< 35      e[        U5      [        S	5      ::  d  [        SU< 35      e[        S
 U 5       5      S:w  d  UR!                  S5      S:  a  [        S5      eSU;   a0  SU l        SU l        [        R&                  [        R(                  -  nOtSU;   a
  SU l        SnOdSU;   a)  SU l        [        R(                  [        R,                  -  nO5SU;   a/  SU l        SU l        [        R0                  [        R(                  -  nSU;   a  SU l        SU l        U R*                  (       a%  U R$                  (       a  W[        R2                  -  nO8U R*                  (       a  W[        R4                  -  nOW[        R6                  -  nU[9        [        SS5      -  n[9        [        SS5      =(       d    [9        [        SS5      nXx-  nS n	 US:  a  U(       d  [        S5      eUc  [        R:                  " XS5      nO<U" X5      n[	        U[        5      (       d  [        S5      eUS:  a  [        SU 35      eUn	U(       d  [        R<                  " US5        X0l        [        R>                  " U5      n
 [@        RB                  " U
RD                  5      (       a=  [G        [H        RJ                  [        RL                  " [H        RJ                  5      U5      e [9        U
SS5      U l(        U RP                  S::  a  [R        U l(        [T        (       a  [U        U[        RV                  5        Xl,        U R.                  (       a   [        RZ                  " US[\        5        O X`l         g ! SU l         f = f! [N         a     Nf = f! [^         a)  nURH                  [H        R`                  :w  a  e  S nANQS nAff = f!   U	b  [        R                  " U	5        e = f)Nr   r*   z$integer argument expected, got floatz!bool is used as a file descriptorr   )r   znegative file descriptorzinvalid mode: zxrwab+c              3   *   #    U  H	  oS ;   v   M     g7f)rwaxNr]   ).0cs     r   	<genexpr>"FileIO.__init__.<locals>.<genexpr>  s     )DqF{Ds   r   r%   zKMust have exactly one of create/read/write/append mode and at most one plusr!   Tr"   r#   r$   O_BINARYO_NOINHERIT	O_CLOEXECz'Cannot use closefd=False with file namei  zexpected integer from openerzopener returned Fr;   )1_fd_closefdr-   rC   r+   floatr1   r,   boolr   r   r5   r4   r/   r2   sumcount_created	_writableO_EXCLO_CREAT	_readableO_TRUNC
_appendingO_APPENDO_RDWRO_RDONLYO_WRONLYr   rV   set_inheritabler9   statS_ISDIRst_modeIsADirectoryErrorr  EISDIRr  r=   _blksizer8   _setmoder  ri   lseekr
   r<   ESPIPE)rh   rD   rB   rH   r)   r   fdr   noinherit_flagowned_fdfdfstatr  s               r   r  FileIO.__init__  s    88q===HHTXX&dE""BCCdC  $%%A,  <4yBAv !;<<  B$$$$8994yCM)49::)D))Q.$**S/A2E 9 : : $; DM!DNII

*ED[!DNED[!DNJJ+ED[!DN"DOKK"**,E$;!DN!DN>>dnnRYYE^^R[[ ER[[ EZ++!"mQ7 6!"k15 	0	Av$%NOO>e4B,B%b#..'(FGGAv(+;B4)@AA%&&r51#MhhrlG<<00+ELL,.KK,EtM M 1 $G\1=DM}}! 3xR[[)IHHRH-  U ` "  &  ww%,,. /	#"sb   1Q ?B+R/ +A"Q) A*R/ 8Q9 	Q&)
Q63R/ 5Q66R/ 9
R,R'"R/ 'R,,R/ /Sc                     U R                   S:  aC  U R                  (       a1  U R                  (       d  SS KnUR	                  SU< 3[
        SU S9  g g g g )Nr   zunclosed file r   )r   rG  )r  r  r   r   r   ResourceWarning)rh   rG  r   s      r   r   FileIO._dealloc_warnG  sF    88q=T]]4;;MMN6*5%&t  5 4?]=r   c                 J    [        SU R                  R                  < S35      er:  r;  ru   s    r   r<  FileIO.__getstate__M  r>  r   c           	      d   U R                   R                  < SU R                   R                  < 3nU R                  (       a  SU-  $  U R                  nSU< SU< SU R
                  < SU R                  < S3	$ ! [         a)    SXR                  U R
                  U R                  4-  s $ f = f)	Nrf   z<%s [closed]><z name=z mode=z	 closefd=>z<%s fd=%d mode=%r closefd=%r>)	rg   r_   r`   r   ri   rB   r  r=   r  )rh   
class_nameri   s      r   rC  FileIO.__repr__P  s     $ 9 9 $ ; ;=
;;"Z//	B99D  tyy$--A B	  	F3499dmmDE F	Fs   	A< <0B/.B/c                 <    U R                   (       d  [        S5      eg )NzFile not open for reading)r#  r\   ru   s    r   r   FileIO._checkReadable^      ~~&'BCC r   c                 <    U R                   (       d  [        S5      eg )NzFile not open for writing)r   r\   r   s     r   r   FileIO._checkWritableb  rE  r   c                     U R                  5         U R                  5         Ub  US:  a  U R                  5       $  [        R                  " U R
                  U5      $ ! [         a     g f = fr   )r   r   r   r-   r   r  r  r   s     r   r   FileIO.readf  s_     	<4!8<<>!	77488T** 		s    A 
A)(A)c                 ^   U R                  5         U R                  5         [        n [        R                  " U R
                  S[        5      n[        R                  " U R
                  5      R                  nX2:  a  X2-
  S-   n[        5       n [        U5      U:  a  [        U5      nU[        U[        5      -  nU[        U5      -
  n [        R                  " U R
                  U5      nU(       d  OXF-  nMk  [        U5      $ ! [         a     Nf = f! [         a    U(       a   M/   g f = frt   )r   r   r8   r-   r2  r  r	   r9   st_sizer<   r   r3   ru  r   r  r0   )rh   bufsizerp   endrR   r   r  s          r   r   FileIO.readallv  s    	%	((488Q1C((488$,,Cz)a- 6{g%f+3w(;<<#f+%A!,
 OF  V}'  		 # s$   AD !D 
DDD,+D,c                     [        U5      R                  S5      nU R                  [        U5      5      n[        U5      nX2S U& U$ r
  )r  r  r   r3   )rh   r'   mr   r   s        r   r   FileIO.readinto  s?    qMs#yyQ I"1r   c                     U R                  5         U R                  5          [        R                  " U R                  U5      $ ! [
         a     g f = fr   )r   r   r-   r   r  r  r   s     r   r   FileIO.write  sH     		88DHHa(( 		s    A 
AAc                     [        U[        5      (       a  [        S5      eU R                  5         [        R
                  " U R                  X5      $ )Nzan integer is required)r+   r  r1   r   r-   r2  r  ro   s      r   rm   FileIO.seek  s>     c5!!455xx#..r   c                 n    U R                  5         [        R                  " U R                  S[        5      $ r   )r   r-   r2  r  r	   ru   s    r   rv   FileIO.tell  s'     	xx!X..r   c                     U R                  5         U R                  5         Uc  U R                  5       n[        R                  " U R
                  U5        U$ r   )r   r   rv   r-   	ftruncater  r   s     r   rz   FileIO.truncate  sC     	<99;D
TXXt$r   c                    > U R                   (       dQ   U R                  (       a0  U R                  S:  a   [        R                  " U R                  5        [
        TU ]  5         g g ! [
        TU ]  5         f = fr   )r   r  r  r-   rC   rb  rc  s    r   rC   FileIO.close  sM     {{ ==TXX]HHTXX& 
 s   AA% %A5c                     U R                  5         U R                  c$   U R                  5         SU l        U R                  $ U R                  $ ! [         a    SU l         U R                  $ f = f)NTF)r   	_seekablerv   r<   ru   s    r   r   FileIO.seekable  sf    >>!&		 "&~~t~~	  '!& ~~	's   A A-,A-c                 :    U R                  5         U R                  $ r   )r   r#  ru   s    r   r   FileIO.readable      ~~r   c                 :    U R                  5         U R                  $ r   )r   r   ru   s    r   r   FileIO.writable  rb  r   c                 :    U R                  5         U R                  $ r   )r   r  ru   s    r   r:   FileIO.fileno  s    xxr   c                 b    U R                  5         [        R                  " U R                  5      $ r   )r   r-   r7   r  ru   s    r   r7   FileIO.isatty  s!    yy""r   c                     U R                   $ r   )r  ru   s    r   rH   FileIO.closefd   s     }}r   c                     U R                   (       a  U R                  (       a  ggU R                  (       a  U R                  (       a  ggU R                  (       a  U R                  (       a  ggg)Nzxb+xbzab+abzrb+rX   wb)r  r#  r%  r   ru   s    r   rB   FileIO.mode  sC     ==~~__~~^^~~r   )	r%  r0  r  r  r  r#  r^  r   ri   )r"   TNr   )$r^   r_   r`   ra   r  r  r#  r   r%  r^  r  r  r   r<  rC  r   r   r   r   r   r   r   rm   rv   rz   rC   r   r   r   r:   r7   r   rH   rB   rb   r  r  s   @r   r6   r6     s    
CHIIJIH}~5MBDD !F  ( / / 



#
    r   r6   c                   j    \ rS rSrSS jrS rSS jrS rS r\	S 5       r
\	S	 5       r\	S
 5       rSrg)
TextIOBasei  c                 &    U R                  S5        g r   rn   r   s     r   r   TextIOBase.read#  s     	&!r   c                 &    U R                  S5        g r   rn   )rh   ss     r   r   TextIOBase.write-  s    '"r   Nc                 &    U R                  S5        g ry   rn   r{   s     r   rz   TextIOBase.truncate1  s    *%r   c                 &    U R                  S5        g )Nr   rn   ru   s    r   r   TextIOBase.readline5  s    
 	*%r   c                 &    U R                  S5        g r  rn   ru   s    r   r  TextIOBase.detach<  r  r   c                     g r   r]   ru   s    r   r   TextIOBase.encodingE  s     r   c                     g r   r]   ru   s    r   newlinesTextIOBase.newlinesJ  s     r   c                     g r   r]   ru   s    r   rF   TextIOBase.errorsT  s    
 r   r]   r   r   )r^   r_   r`   ra   r   r   rz   r   r  r   r   r  rF   rb   r]   r   r   rq  rq    sW    "#&&$      r   rq  c                   V    \ rS rSrSS jrSS jrS rS rS rSr	Sr
S	r\S
 5       rSrg)IncrementalNewlineDecoderi^  c                 r    [         R                  R                  XS9  X l        Xl        SU l        SU l        g )N)rF   r   F)codecsIncrementalDecoderr  	translatedecoderseennl	pendingcr)rh   r  r  rF   s       r   r  "IncrementalNewlineDecoder.__init__e  s1    !!**4*?"r   c                    U R                   c  UnOU R                   R                  XS9nU R                  (       a  U(       d  U(       a  SU-   nSU l        UR                  S5      (       a  U(       d  US S nSU l        UR	                  S5      nUR	                  S5      U-
  nUR	                  S5      U-
  nU =R
                  U=(       a    U R                  U=(       a    U R                  -  U=(       a    U R                  -  -  sl        U R                  (       a2  U(       a  UR                  SS5      nU(       a  UR                  SS5      nU$ )NfinalFr*   T

)r  decoder  r   r  r  _LF_CR_CRLFr  replace)rh   inputr  outputcrlfcrlfs          r   r   IncrementalNewlineDecoder.decodel  s   <<F\\(((<F>>vF]F"DN ??4  CR[F!DN ||F#\\$$&\\$$&txxBO488<*

, 	, >>5d3r   c                     U R                   c  SnSnOU R                   R                  5       u  pUS-  nU R                  (       a  US-  nX4$ )Nr   r   r   )r  getstater  )rh   rT  flags      r   r  "IncrementalNewlineDecoder.getstate  sK    <<CD--/IC
>>AIDyr   c                     Uu  p#[        US-  5      U l        U R                  b   U R                  R                  X#S-	  45        g g r   )r  r  r  setstate)rh   staterT  r  s       r   r  "IncrementalNewlineDecoder.setstate  s@    	dQh<<#LL!!3	"23 $r   c                 p    SU l         SU l        U R                  b  U R                  R                  5         g g )Nr   F)r  r  r  resetru   s    r   r  IncrementalNewlineDecoder.reset  s/    <<#LL  $r   r   r      c                      SU R                      $ )N)Nr  r  )r  r  r  )r  r  )r  r  )r  r  r  )r  ru   s    r   r  "IncrementalNewlineDecoder.newlines  s      	r   )r  r  r  r  N)strict)F)r^   r_   r`   ra   r  r  r  r  r  r  r  r  r   r  rb   r]   r   r   r  r  ^  s>    >	4! C
CE	 	r   r  c                      \ rS rSrSrSr  S,S jrS r  S,S jrS r	\
S 5       r\
S	 5       r\
S
 5       r\
S 5       r\
S 5       rSS\SSS.S jrS rS rS rS rS r\
S 5       r\
S 5       rS rS rS rS rS rS rS-S jrS r S r!S r"  S.S  jr#S! r$S" r%S-S# jr&S$ r'S/S% jr(S-S& jr)S' r*S-S( jr+\
S) 5       r,S* r-S+r.g)0rA   i  i   Nc                    U R                  U5        [        U5      nUS:X  a  U R                  5       n[        U[        5      (       d  [        SU-  5      e[        R                  " U5      R                  (       d  Sn[        Xr-  5      eUc  SnOD[        U[        5      (       d  [        SU-  5      e[        (       a  [        R                  " U5        Xl        SU l        SU l        S U l        U R                   R#                  5       =U l        U l        [)        U R                   S5      U l        U R-                  X#UXV5        g )	Nr   r   zG%r is not a text encoding; use codecs.open() to handle arbitrary codecsr  r    r(   r   r   )_check_newliner   _get_locale_encodingr+   r/   r4   r  lookup_is_text_encodingLookupError_CHECK_ERRORSlookup_errorrQ  _decoded_chars_decoded_chars_used	_snapshotrU   r   r^  _tellingr   
_has_read1
_configure)rh   rU   r   rF   rG   rS   write_throughr   s           r   r  TextIOWrapper.__init__  s   G$ *x002H(C((3h>??}}X&88BCcn-->Ffc** !5!>??}##F+ #$ )-)=)=)??!$++w7'&	7r   c                     Ub-  [        U[        5      (       d  [        S[        U5      < 35      eUS;  a  [	        SU< 35      eg )Nzillegal newline type: )Nr(   r  r  r  zillegal newline value: )r+   r/   r1   typer4   )rh   rG   s     r   r  TextIOWrapper._check_newline  sB    z'3'?'?$w-IJJ88GEFF 9r   c                    Xl         X l        S U l        S U l        SU l        U(       + U l        US L U l        X0l        US:g  U l        U=(       d    [        R                  U l        X@l        XPl        U R                  (       aX  U R                  5       (       aB  U R                   R#                  5       nUS:w  a!   U R%                  5       R'                  S5        g g g g ! [(         a     g f = f)N        r(   r   )	_encoding_errors_encoder_decoder	_b2cratio_readuniversal_readtranslate_readnl_writetranslater-   linesep_writenl_line_buffering_write_throughr^  r   rU   rv   _get_encoderr  r  )rh   r   rF   rG   rS   r  positions          r   r  TextIOWrapper._configure  s    !")k%o&"}-2::-+ >>dmmoo{{'')H1}%%'003  .>
 # s   8C 
C('C(c                 v   SR                  U R                  R                  U R                  R                  5      n U R                  nUSR                  U5      -  n U R                  nUSR                  U5      -  nUSR                  U R                  5      -   $ ! [
         a     NKf = f! [
         a     N:f = f)Nz<{}.{}z name={0!r}z mode={0!r}z encoding={0!r}>)r@  rg   r_   r`   ri   r=   rB   r   )rh   rR   ri   rB   s       r   rC  TextIOWrapper.__repr__  s    !:!:!%!<!<>	199D m**400F	199D m**400F*11$--@@@  		  		s#   B B+ 
B('B(+
B87B8c                     U R                   $ r   )r  ru   s    r   r   TextIOWrapper.encoding0  s    ~~r   c                     U R                   $ r   )r  ru   s    r   rF   TextIOWrapper.errors4      ||r   c                     U R                   $ r   )r  ru   s    r   rS   TextIOWrapper.line_buffering8  s    ###r   c                     U R                   $ r   )r  ru   s    r   r  TextIOWrapper.write_through<  s    """r   c                     U R                   $ r   )rQ  ru   s    r   rU   TextIOWrapper.buffer@  r  r   )r   rF   rG   rS   r  c                $   U R                   b  Uc  Uc	  U[        La  [        S5      eUc  Uc  U R                  nO&SnO#[	        U[
        5      (       d  [        SU-  5      eUc  U R                  nO9[	        U[
        5      (       d  [        SU-  5      eUS:X  a  U R                  5       nU[        L a  U R                  nU R                  U5        Uc  U R                  nUc  U R                  nU R                  5         U R                  XUXE5        g )NzPIt is not possible to set the encoding or newline of stream after the first readr  r    r   r   )r  Ellipsisr\   r  r+   r/   r1   r  r  r  r  rS   r  r   r  )rh   r   rF   rG   rS   r  s         r   reconfigureTextIOWrapper.reconfigureD  s    MM%)V-?x/&'( ( >!FC((069::~~Hh,, 6 ABB8#446hllGG$!!00N  ..M

'&	7r   c                 R    U R                   (       a  [        S5      eU R                  $ r   )r   r4   r^  ru   s    r   r   TextIOWrapper.seekableo  s    ;;<==~~r   c                 6    U R                   R                  5       $ r   )rU   r   ru   s    r   r   TextIOWrapper.readablet  r  r   c                 6    U R                   R                  5       $ r   )rU   r   ru   s    r   r   TextIOWrapper.writablew  r  r   c                 Z    U R                   R                  5         U R                  U l        g r   )rU   r   r^  r  ru   s    r   r   TextIOWrapper.flushz  s    r   c                     U R                   b>  U R                  (       d,   U R                  5         U R                   R                  5         g g g ! U R                   R                  5         f = fr   )rU   r   r   rC   ru   s    r   rC   TextIOWrapper.close~  sL    ;;"4;;$

!!#	 ,7" !!#r*  c                 .    U R                   R                  $ r   )rU   r   ru   s    r   r   TextIOWrapper.closed  r  r   c                 .    U R                   R                  $ r   )rU   ri   ru   s    r   ri   TextIOWrapper.name  s    {{r   c                 6    U R                   R                  5       $ r   )rU   r:   ru   s    r   r:   TextIOWrapper.fileno      {{!!##r   c                 6    U R                   R                  5       $ r   )rU   r7   ru   s    r   r7   TextIOWrapper.isatty  r  r   c                 :   U R                   (       a  [        S5      e[        U[        5      (       d"  [	        SUR
                  R                  -  5      e[        U5      nU R                  =(       d    U R                  =(       a    SU;   nU(       a=  U R                  (       a,  U R                  S:w  a  UR                  SU R                  5      nU R                  =(       d    U R                  5       nUR                  U5      nU R                  R!                  U5        U R                  (       a  U(       d  SU;   a  U R#                  5         U R$                  b  U R'                  S5        S U l        U R(                  (       a  U R(                  R+                  5         U$ )Nrl  zcan't write %s to text streamr  r  r(   )r   r4   r+   r/   r1   rg   r^   r3   r  r  r  r  r  r  encoderU   r   r   r  _set_decoded_charsr  r  )rh   ru  lengthhaslfencoderr'   s         r   r   TextIOWrapper.write  s"   ;;344!S!!;KK001 2 2Q%%=)=)=L419T))dmmt.C		$.A--64#4#4#6NN1!UdaiJJL>>%##B'!DN==MM!r   c                     [         R                  " U R                  5      nU" U R                  5      U l        U R                  $ r   )r  getincrementalencoderr  r  r  )rh   make_encoders     r   r  TextIOWrapper._get_encoder  s0    33DNNC$T\\2}}r   c                     [         R                  " U R                  5      nU" U R                  5      nU R                  (       a  [        X R                  5      nX l        U$ r   )r  getincrementaldecoderr  r  r  r  r  r  )rh   make_decoderr  s      r   _get_decoderTextIOWrapper._get_decoder  sG    33DNNCt||,/9L9LMGr   c                     Xl         SU l        g r   )r  r  )rh   charss     r   r   TextIOWrapper._set_decoded_chars  s    ##$ r   c                     U R                   nUc  U R                  US  nOU R                  X"U-    nU =R                   [        U5      -  sl         U$ r   )r  r  r3   )rh   r   offsetr	  s       r   _get_decoded_chars TextIOWrapper._get_decoded_chars  sR    ))9''0E''z:E  CJ. r   c                 L     SS K nUR                  5       $ ! [         a     gf = f)Nr   r   )r   getencodingImportError)rh   r   s     r   r  "TextIOWrapper._get_locale_encoding  s/    	(
 %%''	  		s    
##c                 d    U R                   U:  a  [        S5      eU =R                   U-  sl         g )Nz"rewind decoded_chars out of bounds)r  AssertionErrorr  s     r   _rewind_decoded_chars#TextIOWrapper._rewind_decoded_chars  s-    ##a' !EFF  A% r   c                 \   U R                   c  [        S5      eU R                  (       a  U R                   R                  5       u  pU R                  (       a&  U R
                  R                  U R                  5      nO%U R
                  R                  U R                  5      nU(       + nU R                   R                  X45      nU R                  U5        U(       a'  [        U5      [        U R                  5      -  U l        OSU l        U R                  (       a  WWU-   4U l        U(       + $ )Nz
no decoderr  )r  r4   r  r  r  rU   r   _CHUNK_SIZEr   r  r  r3   r  r  r  )rh   
dec_buffer	dec_flagsinput_chunkeofdecoded_charss         r   _read_chunkTextIOWrapper._read_chunk  s     == \**== %)MM$:$:$<!J
 ??++++D,<,<=K++**4+;+;<Ko,,[>. -D4G4G0HHDN DN== (k)ABDNwr   c                 F    XS-  -  US-  -  US-  -  [        U5      S-  -  $ )N@            )r  )rh   r  r  bytes_to_feedneed_eofchars_to_skips         r   _pack_cookieTextIOWrapper._pack_cookie	  s;     rM*mS.@As"$&*8nc&9: 	;r   c                     [        US5      u  p#[        US5      u  p$[        US5      u  p%[        US5      u  pgX4U[        U5      U4$ )Nl            )divmodr  )rh   bigintrestr  r  r%  r&  r'  s           r   _unpack_cookieTextIOWrapper._unpack_cookie	  sO    . u-$T51"(u"5M4>=PPr   c           
      `   U R                   (       d  [        S5      eU R                  (       d  [        S5      eU R	                  5         U R
                  R                  5       nU R                  nUb  U R                  c  U R                  (       a  [        S5      eU$ U R                  u  p4U[        U5      -  nU R                  nUS:X  a  U R                  X5      $ UR                  5       n [        U R                   U-  5      nSnUS:  aw  UR#                  SU45        [        UR%                  US U 5      5      n	X::  a1  UR                  5       u  pU
(       d  UnXY-  nO7U[        U
5      -  nSnO	Xx-  nUS-  nUS:  a  Mw  SnUR#                  SU45        X-   nUnUS:X  a"  U R                  X5      UR#                  U5        $ SnSnSn['        U[        U5      5       Ha  nUS-  nU[        UR%                  UUUS-    5      5      -  nUR                  5       u  nnU(       d  UU::  a  X-  nUU-  nUSSnpUU:  d  Ma    O1   U[        UR%                  SS	S
95      -  nS	nUU:  a  [        S5      eU R                  XXU5      UR#                  U5        $ ! UR#                  U5        f = f)N!underlying stream is not seekablez(telling position disabled by next() callzpending decoded textr   r   r   r   FTr  z'can't reconstruct logical file position)r^  r\   r  r<   r   rU   rv   r  r  r  r  r3   r  r(  r  r,   r  r  r  range)rh   r  r  r  
next_inputr'  saved_state
skip_bytes	skip_backr   r'   d	start_posstart_flags	bytes_fedr&  chars_decodedir  s                      r   rv   TextIOWrapper.tell	  s   ~~&'JKK}}DEE

;;##%--?dnn4""$%;<<O !%	C
O# 00A$$X99 &&(F	* T^^m;<JIq.  #y!12z+:'>?@%"++-DA$%	%*#a&(J !I +J )AI# q.& 
  #y!12 !-I#K!((@@ [)5 IHM:s:7Q	W^^Jq14E%F!GG(/(8(8(:%
I!m}&D*I!]2M<Eq!M M1 8 W^^Ct^%D!EE =0!"KLL $$	]L [)G[)s!   -BJ 1J A8J AJ J-c                 ~    U R                  5         Uc  U R                  5       nU R                  R                  U5      $ r   )r   rv   rU   rz   r{   s     r   rz   TextIOWrapper.truncatew	  s0    

;))+C{{##C((r   c                 |    U R                   c  [        S5      eU R                  5         U R                  nS U l        U$ )Nzbuffer is already detached)rU   r4   r   rQ  )rh   rU   s     r   r  TextIOWrapper.detach}	  s6    ;;9::

r   c                 Z  ^  U 4S jnT R                   (       a  [        S5      eT R                  (       d  [        S5      eU[        :X  a$  US:w  a  [        S5      eSnT R                  5       nOU[        :X  a  US:w  a  [        S5      eT R                  5         T R                  R                  SU5      nT R                  S5        S T l        T R                  (       a  T R                  R                  5         U" U5        U$ US:w  a  [        SU< S	35      eUS:  a  [        S
U< 35      eT R                  5         T R                  U5      u  pVpxn	T R                  R                  U5        T R                  S5        S T l        US:X  a,  T R                  (       a  T R                  R                  5         OmT R                  (       d  U(       d  U	(       aN  T R                  =(       d    T R                  5       T l        T R                  R!                  SU45        US4T l        U	(       ax  T R                  R#                  U5      n
T R                  T R                  R%                  X5      5        Xj4T l        ['        T R(                  5      U	:  a  [+        S5      eU	T l        U" U5        U$ )Nc                    >  TR                   =(       d    TR                  5       nU S:w  a  UR                  S5        g UR                  5         g ! [         a     g f = fr   )r  r  r  r  r  )r  r  rh   s     r   _reset_encoder*TextIOWrapper.seek.<locals>._reset_encoder	  sS    	$-->4+<+<+>
 q=$$Q'MMO  s   #A 
AAry  r1  r   z#can't do nonzero cur-relative seeksz#can't do nonzero end-relative seeksr(   zunsupported whence ()rt  r   z#can't restore logical file position)r   r4   r^  r\   r	   rv   r
   r   rU   rm   r  r  r  r  r.  r  r  r   r  r3   r  r<   r  )rh   cookierq   rD  r  r8  r  r%  r&  r'  r  s   `          r   rm   TextIOWrapper.seek	  s%   	$ ;;233~~&'JKKX{*+PQQ FYY[Fx{*+PQQJJL{{''62H##B'!DN}}##%8$OQ;&BCCA:FDEE


 ' 	E	m} 	## Q;4==MM!]]i= MM@T->->-@DMMM""C#34'-DN++**=9K##$$[;='5DN 4&&'-7CDD'4D$vr   c                    U R                  5         Uc  SnO UR                  nU" 5       nU R                  =(       d    U R                  5       nUS:  a`  U R                  5       UR                  U R                  R                  5       SS9-   nU R                  b  U R                  S5        S U l
        U$ SnU R                  U5      n[        U5      U:  aS  U(       dL  U R                  5       (       + nX@R                  U[        U5      -
  5      -  n[        U5      U:  a	  U(       d  ML  U$ ! [         a    [        U< S35      ef = f)Nr*   r   r   Tr  r(   F)r   r   r=   r1   r  r  r  r  rU   r   r  r  r3   r  )rh   r   r   r  rR   r  s         r   r   TextIOWrapper.read	  s1   <D$!^^
 "|--64#4#4#6!8--/nnT[[%5%5%7tnDEF~~)''+!%M C,,T2Ff+$S**,,11$V2DEE f+$SS M) " ?4(*< =>>?s   D+ +Ec                 ~    SU l         U R                  5       nU(       d  S U l        U R                  U l         [        eU$ r   )r  r   r  r^  r   r   s     r   r   TextIOWrapper.__next__	  s4    }}!DN NNDMr   c                    U R                   (       a  [        S5      eUc  SnO UR                  nU" 5       nU R                  5       nSnU R                  (       d  U R                  5         S =pV U R                  (       a+  UR                  SU5      nUS:  a  US-   nGO[[        U5      nOU R                  (       am  UR                  SU5      nUR                  SU5      nUS:X  a  US:X  a  [        U5      nOkUS-   nOUS:X  a  US-   nOXx:  a  US-   nOXxS-   :X  a  US-   nOUS-   nOUR                  U R                  5      nUS:  a  U[        U R                  5      -   nOUS:  a  [        U5      U:  a  UnOU R                  5       (       a)  U R                  (       a  OU R                  5       (       a  M)  U R                  (       a  X0R                  5       -  nOU R                  S	5        S U l        U$ GM  US:  a  Xa:  a  UnU R#                  [        U5      U-
  5        US U $ ! [         a    [	        U< S35      ef = f)
Nrf  r*   r   r   r  r   r  r   r(   )r   r4   r   r=   r1   r  r  r  r  r   r3   r  r  r  r  r  r  r  )	rh   r   r   r   startrp   endposnlposcrposs	            r   r   TextIOWrapper.readline	  sJ   ;;455<D$!^^
 "| &&(}}""iie,!8 1WFIE$$
 		$.		$.B;{ #D	 "'b["QYF]"QYFai'"QYF #QYF ii-!8 3t||#44FqySY$. ""$$&& ""$$ ""//11 ''+!%} @ 19F 	""3t9v#56GV}g " ?4(*< =>>?s   H( (Ic                 T    U R                   (       a  U R                   R                  $ S $ r   )r  r  ru   s    r   r  TextIOWrapper.newlinesS
  s    )-t}}%%@D@r   c                 R    [        U R                  SS 5      =n(       a	  U" U5        g g r   )r   rU   rF  s      r   r   TextIOWrapper._dealloc_warnW
  s(    "4;;FF<F  Gr   )r  rQ  r  r  r  r  r  r  r  r  r  r  r  r^  r  r  r  r  r  )NNNFFr   )r   r   Fr   r   )/r^   r_   r`   ra   r  rQ  r  r  r  rC  r   r   rF   rS   r  rU   r  r  r   r   r   r   rC   r   ri   r:   r7   r   r  r  r  r  r  r  r  r(  r.  rv   rz   r  rm   r   r   r   r  r   rb   r]   r   r   rA   rA     s~   0 K G
 DH5:7BG >B7<HA"     $ $ # #   "$#'t)7V
&&'$ " "    $$0
%
(&(T 01JK;Qa*F)IV:[z A A!r   rA   c                   ^   ^  \ rS rSrS	U 4S jjrS rS r\S 5       r\S 5       r	S r
SrU =r$ )
StringIOi\
  c                 "  > [         [        U ]  [        5       SSUS9  Uc  SU l        Ube  [        U[        5      (       d-  [        SR                  [        U5      R                  5      5      eU R                  U5        U R                  S5        g g )Nr   surrogatepass)r   rF   rG   Fz*initial_value must be str or None, not {0}r   )rb  rX  r  rO  r  r+   r/   r1   r@  r  r^   r   rm   )rh   initial_valuerG   rg   s      r   r  StringIO.__init__c
  s    h&wy07.=/6 	' 	8 ?#(D $mS11 L!'](;(D(D!EG GJJ}%IIaL %r   c                 H   U R                  5         U R                  =(       d    U R                  5       nUR                  5       nUR	                  5          UR                  U R                  R                  5       SS9UR                  U5        $ ! UR                  U5        f = f)NTr  )	r   r  r  r  r  r  rU   r[  r  )rh   r  	old_states      r   r[  StringIO.getvalues
  sx    

--64#4#4#6$$&		(>>$++"6"6"8>EY'GY's   'B B!c                 ,    [         R                  U 5      $ r   )objectrC  ru   s    r   rC  StringIO.__repr__}
  s     t$$r   c                     g r   r]   ru   s    r   rF   StringIO.errors
      r   c                     g r   r]   ru   s    r   r   StringIO.encoding
  re  r   c                 &    U R                  S5        g r  rn   ru   s    r   r  StringIO.detach
  s    (#r   )r  )r(   r  )r^   r_   r`   ra   r  r[  rC  r   rF   r   r  rb   r  r  s   @r   rX  rX  \
  sD     (%
    $ $r   rX  )r   )r"   r*   NNNTN)6r-   abcr  r  r+  r   _threadr   r  platformmsvcrtr   r1  ior   r   r	   r
   r  r   addr   	SEEK_DATAr8   r  r   dev_moder  r   staticmethodrV   rZ   	open_coder=   r\   r<   r4   ABCMetard   registerr   r   r  rO  r@   r?   r  r>   r6   rq  r  r  rA   rX  r]   r   r   <module>rv     sF  
 
 
    
 )<<&&*H 	 6 6 
2{&&   " 01GSYY5G5GB =A,0K K^ (I22Ys{{ Yv 		  6 8# 8#t   i  e$V e$N     > *l!~ l!^Ln L^F% FPf!% f!RF"^ F"RG-^^ G-TYY Yx
> >@   z "R 9 9 Rjf
!J f
!R0$} 0$cI  ('I(  w
 s$   H H HHH'&H'