+
    ~j5                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHtHtHt ^ RIH t H!t! ^RI"H#t# ^R	I$H%t%H&t&H't' ^R
I(H)t)H*t*H+t+H,t,H-t- ^RI.H/t/H0t0H1t1H2t2 ^RI3H4t4 ^RI5H6t6 ^RI7H8t8 ^RI9H:t:H;t;H<t<H=t=H>t>H?t?H@t@ ^RIAHBtB ]P                  R+8  d   ^ RIHDtD M^ RIHEtE ]E! RRR7      tDR,tF]'       d   ^RIGHHtH  ! R R]I4      tJ ! R R]I4      tKR R ltLR-R R  lltM ! R! R"4      tN ! R# R4      tO]@! ]O]<P                  R$7       ! R% R&]=4      4       tQ ! R' R4      tR]]=]S]S3,          tT ! R( R]=4      tU ! R) R*4      tVR# ).    N)deque)MappingSequence)TracebackType)TYPE_CHECKINGAnyAsyncIteratorDequeDictIteratorListOptionalTupleTypeUnioncast)	parse_qslunquote	urlencode)CIMultiDictCIMultiDictProxyAbstractStreamWriter)DEFAULT_MAX_DECOMPRESS_SIZEZLibCompressorZLibDecompressor)CONTENT_DISPOSITIONCONTENT_ENCODINGCONTENT_LENGTHCONTENT_TRANSFER_ENCODINGCONTENT_TYPE)CHARTOKENparse_mimetypereify)HeadersParser)BadHttpMessage)internal_logger)JsonPayloadLookupErrorOrderPayloadStringPayloadget_payloadpayload_type)StreamReaderSelf)TypeVarr2   BodyPartReader)boundMultipartReaderMultipartWriterBadContentDispositionHeaderBadContentDispositionParam)ClientResponsec                       ] tR t^OtRtR# )r8    N__name__
__module____qualname____firstlineno____static_attributes__r<       f/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/aiohttp/multipart.pyr8   r8   O       rC   c                       ] tR t^StRtR# )r9   r<   Nr=   r<   rC   rD   r9   r9   S   rE   rC   c                    V ^8  d   QhR\         \        ,          R\        \         \        ,          \        \        \        3,          3,          /# )   headerreturn)r   strr   r   )formats   "rD   __annotate__rM   W   s:     d$ d$SMd$
8C=$sCx.()d$rC   c                   a R  R loR R lpR V3R llpR R lpR R	 lpR
RP                  \        \        P                  \        4      4      /R R llpV '       g   R/ 3# V P                  R4      vrgS! V4      '       g$   \        P                  ! \        V 4      4       R/ 3# / pV'       Ed   VP                  ^ 4      p	V	'       g"   \        P                  ! \        V 4      4       KC  RV	9  d$   \        P                  ! \        V 4      4       R/ 3# V	P                  R^4      w  rV
P                  4       P                  4       p
VP                  4       pW9   d$   \        P                  ! \        V 4      4       R/ 3# S! V
4      '       g#   \        P                  ! \        V	4      4       EK  V! V
4      '       dN   V! V4      '       d   V! V^R 4      pEMZS! V4      '       g#   \        P                  ! \        V	4      4       EKa  EM(V! V
4      '       da   V! V4      '       d#   VP                  R^4      w  rpT;'       g    RpM"\        P                  ! \        V	4      4       EK   \        WR4      pMRpV! V4      '       d   RpV! V^R P                  R4      4      pMbS! V4      '       d   RpMQV'       dJ   V RV^ ,           2pV! V4      '       d.   VP                  ^ 4       V! V^R P                  R4      4      pRpV'       d$   \        P                  ! \        V 4      4       R/ 3# WV
&   EK  VP                  4       V3#   \         d%    \        P                  ! \        T	4      4        EK  i ; i)c                0    V ^8  d   QhR\         R\        /# rH   stringrJ   rK   bool)rL   s   "rD   rM   /parse_content_disposition.<locals>.__annotate__Z   s     5 5 5 5rC   c                 L    \        V 4      ;'       d    \        \        V 4      8  # N)rS   r#   setrQ   s   &rD   is_token+parse_content_disposition.<locals>.is_tokenZ   s    F|44V 44rC   c                0    V ^8  d   QhR\         R\        /# rP   rR   )rL   s   "rD   rM   rT   ]   s     . .# .$ .rC   c                 J    V ^ ,          V R,          u;8H  ;'       d    R8H  # u # )r   "r<   rX   s   &rD   	is_quoted,parse_content_disposition.<locals>.is_quoted]   s#    ayF2J--#----rC   c                0    V ^8  d   QhR\         R\        /# rP   rR   )rL   s   "rD   rM   rT   `   s     ; ;3 ;4 ;rC   c                 L   < S! V 4      ;'       d    V P                  R 4      ^8H  # )')count)rQ   rY   s   &rD   
is_rfc5987-parse_content_disposition.<locals>.is_rfc5987`   s$    ::FLL$5$::rC   c                0    V ^8  d   QhR\         R\        /# rP   rR   )rL   s   "rD   rM   rT   c   s     $ $# $$ $rC   c                 $    V P                  R 4      # )*)endswithrX   s   &rD   is_extended_param4parse_content_disposition.<locals>.is_extended_paramc   s    s##rC   c                0    V ^8  d   QhR\         R\        /# rP   rR   )rL   s   "rD   rM   rT   f   s     # #C #D #rC   c                     V P                  R 4      ^,           pV'       g   R# V P                  R 4      '       d   WR MWR pVP                  4       # )ri   FNr^   )findrj   isdigit)rQ   pos	substrings   &  rD   is_continuous_param6parse_content_disposition.<locals>.is_continuous_paramf   sG    kk#"&,ooc&:&:FrNt	  ""rC   chars c                <    V ^8  d   QhR\         R\         R\         /# )rH   textru   rJ   rK   )rL   s   "rD   rM   rT   m   s!     7 7s 7c 7c 7rC   c                :    \         P                  ! R V R2RV 4      # )z\\([z])z\1)resub)rx   ru   s   &$rD   unescape+parse_content_disposition.<locals>.unescapem   s    vvugR(%66rC   N;=rc   utf-8strictTFz\/r^   )joinmapr{   escaper"   splitwarningswarnr8   poplowerstriplstripr9   r   UnicodeDecodeError)rI   r_   re   rk   rs   r}   disptypepartsparamsitemkeyvalueencoding_failed_valuerY   s   &               @rD   parse_content_dispositionr   W   s   5.; ;$#7BGGC		44H,I 7 Rx||C(HH1&9:RxF
%yy|MM5f=>d?MM5f=>8OZZQ'
iik!=MM5f=>8O}}MM4T:; %% q-e__8>? % s##%  %*[[a%8"U#..w8>?: F q!3!3E!:;% "7!E!H:.V$$IIaL$VAb\%8%8%?@E"F9&ABRxs>>V##5 & 8>?s   -M *M<;M<c                t    V ^8  d   QhR\         \        \        3,          R\        R\        \        ,          /# )rH   r   namerJ   )r   rK   r   )rL   s   "rD   rM   rM      s1      CH%(c]rC   c                 &  a
 R V,          o
V '       g   R# S
V 9   d
   V S
,          # W9   d	   W,          # . p\        V
3R lV P                  4        4       4      p\        V4       F[  w  pw  rVVP                  R^4      w  rxVP	                  R4      '       d   VRR pV\        V4      8X  d   VP                  V4       K[   M	  V'       g   R# RP                  V4      pRV9   d.   VP                  R^4      w  rpT	;'       g    Rp	\        WiR4      # V# )	z%s*Nc              3   `   <"   T F#  w  rVP                  S4      '       g   K  W3x  K%  	  R # 5irV   )
startswith).0r   r   name_sufs   &  rD   	<genexpr>/content_disposition_filename.<locals>.<genexpr>   s%      
+9ZSS^^H=ULSL>s   ..ri   rv   rc   r   r   r^   )	sorteditems	enumerater   rj   rK   appendr   r   )r   r   r   fnparamsnumr   r   r   tailr   r   s   &&        @rD   content_disposition_filenamer      s    t|H	V	h	| 
+1<<>
 
 "+8!4C#iiQ'GA}}S!!CRys3xU# "5 %<!&S!!4H**7H5H55rC   c                      a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
RtV tR# )MultipartResponseWrapperznWrapper around the MultipartReader.

It takes care about
underlying connection and close it when it needs in.
c                &   < V ^8  d   QhRRRRRR/# )rH   respr:   streamr6   rJ   Nr<   )rL   __classdict__s   "rD   rM   %MultipartResponseWrapper.__annotate__   s)       " 
	rC   c                    Wn         W n        R # rV   r   r   )selfr   r   s   &&&rD   __init__!MultipartResponseWrapper.__init__   s    
 	rC   c                   < V ^8  d   QhRR/# )rH   rJ   r   r<   )rL   r   s   "rD   rM   r      s      5 rC   c                    V # rV   r<   r   s   &rD   	__aiter__"MultipartResponseWrapper.__aiter__       rC   c                .   < V ^8  d   QhRS[ R,          /# rH   rJ   )r6   r4   )r   )rL   r   s   "rD   rM   r      s      	2	3rC   c                V   "   V P                  4       G R j  xL
 pVf   \        hV#  L5irV   nextStopAsyncIterationr   parts   & rD   	__anext__"MultipartResponseWrapper.__anext__   *      YY[ <$$ !   )')c                    < V ^8  d   QhRS[ /# rH   rJ   rS   )rL   r   s   "rD   rM   r      s     * * *rC   c                J    V P                   P                  P                  4       # )z2Returns True when all response data had been read.)r   contentat_eofr   s   &rD   r   MultipartResponseWrapper.at_eof   s    yy  ''))rC   c                >   < V ^8  d   QhRS[ S[R,          ,          /# r   )r   r   )rL   r   s   "rD   rM   r      s       	%;<	=rC   c                   "   V P                   P                  4       G Rj  xL
 pV P                   P                  4       '       d   V P                  4       G Rj  xL
  V#  L> L5i)z#Emits next multipart reader object.N)r   r   r   releaser   r   s   & rD   r   MultipartResponseWrapper.next   sK      [[%%'';;,,.   ( s'   A#A#A#A#A!A#!A#c                   < V ^8  d   QhRR/# rH   rJ   Nr<   )rL   r   s   "rD   rM   r     s     " "t "rC   c                V   "   V P                   P                  4       G Rj  xL
  R#  L5i)zORelease the connection gracefully.

All remaining content is read to the void.
N)r   r   r   s   &rD   r    MultipartResponseWrapper.release  s     
 ii!!!s   )')r   N)r>   r?   r@   rA   __doc__r   r   r   r   r   r   rB   __classdictcell__r   s   @rD   r   r      sF        * * " "rC   r   c                   "  a  ] tR tRt o RtRtRRRRR]/V 3R	 lR
 lltV 3R lR ltV 3R lR lt	V 3R lR lt
RR/V 3R lR llt]3V 3R lR lltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRR/V 3R  lR! lltRR/V 3R" lR# lltRR/V 3R$ lR% lltV 3R& lR' ltV 3R( lR) ltV 3R* lR+ ltV 3R, lR- ltV 3R. lR/ ltV 3R0 lR1 ltV 3R2 lR3 ltV 3R4 lR5 ltV 3R6 lR7 lt]V 3R8 lR9 l4       t]V 3R: lR; l4       tR<t V t!R# )=r4   i  z&Multipart reader for single body part.i    subtypemixeddefault_charsetNmax_decompress_sizec                P   < V ^8  d   QhRS[ RRRS[RS[RS[S[,          RS[RR	/# )
rH   boundaryheadersCIMultiDictProxy[str]r   r   r   r   rJ   N)bytesr0   rK   r   int)rL   r   s   "rD   rM   BodyPartReader.__annotate__  sU     8 88 )8 	8 8 "#8 !8 
8rC   c               |   W n         Wn        \        V4      ^,           V n        W0n        WPn        RV n        VR8H  V n        V P                  '       d   RMV P                   P                  \        R4      pVe   \        V4      MRV n        ^ V n        \        4       V n        RV n        ^ V n        / V n        W`n        R# )rH   F	form-dataN)r   	_boundarylen_boundary_len_content_default_charset_at_eof_is_form_datagetr   r   _length_read_bytesr   _unread_prev_chunk_content_eof_cache_max_decompress_size)r   r   r   r   r   r   r   lengths   &&&&$$$ rD   r   BodyPartReader.__init__  s     ! ]Q. /$3+++1A1A.RV1W&,&8s6{d%*W,0&($7!rC   c                &   < V ^8  d   QhRS[ RS[ /# rH   r   rJ   r1   )rL   r   s   "rD   rM   r   .          rC   c                    V # rV   r<   r   s   &rD   r   BodyPartReader.__aiter__.  r   rC   c                    < V ^8  d   QhRS[ /# r   r   )rL   r   s   "rD   rM   r   1  s       rC   c                V   "   V P                  4       G R j  xL
 pVf   \        hV#  L5irV   r   r   s   & rD   r   BodyPartReader.__anext__1  s(     YY[ <$$ !r   c                0   < V ^8  d   QhRS[ S[,          /# r   )r   r   )rL   r   s   "rD   rM   r   7  s      HUO rC   c                V   "   V P                  4       G R j  xL
 pV'       g   R # V#  L5irV   )readr   s   & rD   r   BodyPartReader.next7  s#     YY[  !s   )'))decodeFc                &   < V ^8  d   QhRS[ RS[/# )rH   r  rJ   )rS   r   )rL   r   s   "rD   rM   r   =  s      D U rC   c               d  "   V P                   '       d   R# \        4       pV P                   '       g5   TP                  V P                  V P                  4      G Rj  xL
 4       KF  V'       d9   \        4       pV P                  V4        Rj  xL
  pVP                  V4       K  V#  LL LDT# 5i)zReads body part data.

decode: Decodes data following by encoding
        method from Content-Encoding header. If it missed
        data remains untouched
rC   N)r   	bytearrayextend
read_chunk
chunk_sizedecode_iter)r   r  datadecoded_datads   &$   rD   r  BodyPartReader.read=  s      <<<{,,,KKdoodoo>>?$;L++D1 ' 'a##A& ?'1s@   0B0)B0B)B0/B0
B-B+B-B0+B--B0c                &   < V ^8  d   QhRS[ RS[/# rH   sizerJ   r   r   )rL   r   s   "rD   rM   r   P  s     * *S *% *rC   c                  "   V P                   '       d   R# V P                  '       d   V P                  V4      G Rj  xL
 pMV P                  V4      G Rj  xL
 pV P                  P                  \        4      pV'       EdI   VP                  4       R8X  Ed3   RP                  VP                  4       4      p\        V4      ^,          pV^ 8w  d   V P                  4       '       g   ^V,
          pRpV P                  '       d-   V P                  RV pV P                  \        V4      R V n        \        V4      V8w  d:   YpP                  P                  ^\        V4      ,
          4      G Rj  xL
 ,          pV'       g   RV n         VRP                  VP                  4       4      ,          pW',          p\        V4      ^,          pEK  V ;P                  \        V4      ,          un        V P                  V P                  8X  d   RV n         V P                   '       d3   V P                  P!                  4       G Rj  xL
 R8w  d   \#        R4      hV#  EL EL L L5i)zGReads body part content chunk of the specified size.

size: chunk size
rC   Nbase64T   
z3Reader did not read all the data or it is malformed)r   r   _read_chunk_from_length_read_chunk_from_streamr   r   r    r   r   r   r   r   r   r   r  r   readline
ValueError)r   r  chunkr   stripped_chunk	remainderover_chunk_size
over_chunks   &&      rD   r  BodyPartReader.read_chunkP  s    
 <<<<<<66t<<E66t<<E <<##$=>8(H4 XXekkm4NN+a/Iq."#i- 
###!%!1!12B?!CJ'+'7'7J8I'JD$z?o5(:(:1s:;N(O"OOJ!#'DL#((:+;+;+=">>#/!3	CJ&t||+DL<<<$--"8"8"::gERSSE =<$ #P ;sk   &I I II I+I A#I (I A*I /I0I BI "I ?I I I I I c                &   < V ^8  d   QhRS[ RS[/# r  r  )rL   r   s   "rD   rM   r   |  s      # % rC   c                  "   V P                   f   Q R4       h\        WP                   V P                  ,
          4      pV P                  P	                  V4      G R j  xL
 pV P                  P                  4       '       d   RV n        V#  L-5i)Nz(Content-Length required for chunked readT)r   minr   r   r  r   r   )r   r  r  r  s   &&  rD   r  &BodyPartReader._read_chunk_from_length|  sq      ||'S)SS'||d.>.>>?
mm((44==!!DL 5s   ABB
#B
Bc                &   < V ^8  d   QhRS[ RS[/# r  r  )rL   r   s   "rD   rM   r     s     + +# +% +rC   c           
     Z  "   WP                   8  g   Q R 4       hV P                  RJ pV'       d0   RV P                  P                  V4      G Rj  xL
 ,           V n        Rp\	        V4      V P                   8  d   Y0P                  P                  V4      G Rj  xL
 ,          pV ;P
                  \        V P                  P                  4       4      ,          un        V P
                  ^8  d   \        R4      hV P
                  '       g   K   \	        V4      V8  d#   V P                  P                  W1R 4       VRV pV P                  f   Q hV P                  V,           pRV P                  ,           pV'       d   VP                  V4      pM?VP                  V\        ^ \	        V P                  4      \	        V4      ,
          4      4      pV^ 8  d   \        P                  ! 4       ;_uu_ 4        \        P                  ! R\         R7       V P                  P                  WFR 4       RRR4       V P                  RV V n        V\	        V P                  4      V pV'       g   RV n        V P                  V'       d   ^M^ R pW0n        V#  ELC EL  + '       g   i     Lr; i5i)z<Chunk size must be greater or equal than boundary length + 2Nr  rC   zReading after EOFignore)categoryT)r   r   r   r  r   r   r   r   r  unread_datar   ro   maxr   catch_warningsfilterwarningsDeprecationWarningr   )r   r  first_chunkr  windowr|   idxresults   &&      rD   r  &BodyPartReader._read_chunk_from_stream  s     &&&	JI	J&&&$.&t}}/A/A$/G)GGD %j4---==--d333ET]]%9%9%;!<<  1$ !455   u:MM%%eEl3%4LE+++!!E)&++c"C++c3q#d.>.>*?#c(*J#KLC!8((**'';MN))&,7 +  $//5D3t//037E#!!{!";< E *H 4& +*sW   -J+J+JA	J+JA/J+A0J+?A5J+4:J.AJ+J+J+J(	#J+c                    < V ^8  d   QhRS[ /# r   r   )rL   r   s   "rD   rM   r     s       rC   c                  "   V P                   '       d   R# V P                  '       d   V P                  P                  4       pM"V P                  P	                  4       G Rj  xL
 pVP                  V P                  4      '       dd   VP                  R4      pV P                  pV P                  R,           pW#8X  g   W$8X  d%   RV n         V P                  P                  V4       R#  V# V P                  P	                  4       G Rj  xL
 pVP                  V P                  4      '       d   VRR pV P                  P                  V4       V#  L LI5i)z Reads body part by line by line.rC   Nr     --T)	r   r   popleftr   r  r   r   rstripr   )r   linesliner   last_boundary	next_lines   &     rD   r  BodyPartReader.readline  s    <<<<<<<<'')D//11D??4>>** KK(E~~H NNU2M E$:###D) %;  #mm4466I##DNN33CRyLL	*' 2 7s5   &E8E!E"$EB EE$E-#EEc                   < V ^8  d   QhRR/# r   r<   )rL   r   s   "rD   rM   r     s     3 3t 3rC   c                   "   V P                   '       d   R# V P                   '       g&   V P                  V P                  4      G Rj  xL
  K7  R#  L5i)z0Like read(), but reads all the data to the void.N)r   r  r  r   s   &rD   r   BodyPartReader.release  s8     <<<,,,//$//222 2s   &AAA	Ar   c                6   < V ^8  d   QhRS[ S[,          RS[/# rH   r   rJ   r   rK   )rL   r   s   "rD   rM   r     s     % %hsm %s %rC   c                  "   V P                  RR7      G Rj  xL
 pT;'       g    V P                  RR7      pVP                  V4      #  L15i)z;Like read(), but assumes that body part contains text data.Tr  Nr   default)r  get_charsetr  r   r   r  s   &$ rD   rx   BodyPartReader.text  sI     YYdY++ @@t///@{{8$$	 ,s   AA
A%Ac                \   < V ^8  d   QhRS[ S[,          RS[ S[S[S[3,          ,          /# rE  )r   rK   r   r   )rL   r   s   "rD   rM   r     s1     G Ghsm GxSRUX?W GrC   c                 "   V P                  RR7      G Rj  xL
 pV'       g   R# T;'       g    V P                  RR7      p\        \        \        \
        3,          \        P                  ! VP                  V4      4      4      #  Ln5i)z<Like read(), but assumes that body parts contains JSON data.TrH  Nr   rI  )	r  rK  r   r   rK   r   jsonloadsr  rL  s   &$ rD   rP  BodyPartReader.json  se     YYdY++@@t///@DcNDJJt{{8/D$EFF	 ,s   B	BB	
B	AB	c                \   < V ^8  d   QhRS[ S[,          RS[S[S[S[3,          ,          /# rE  )r   rK   r   r   )rL   r   s   "rD   rM   r     s,     
 
hsm 
tE#s(O?T 
rC   c               &  "   V P                  RR7      G Rj  xL
 pV'       g   . # Ve   TpMV P                  RR7      p VP                  4       P                  V4      p\        TRTR7      #  LU  \         d    \        RT,          4      hi ; i5i)zFLike read(), but assumes that body parts contain form urlencoded data.TrH  Nr   rI  z'data cannot be decoded with %s encoding)keep_blank_valuesr   )r  rK  r;  r  r   r  r   )r   r   r  real_encodingr  s   &$   rD   formBodyPartReader.form  s     YYdY++I$M ,,W,=M	X;;=//>L ""
 	
 , " 	XFVWW	Xs,   BA.BBA0  B0BBc                    < V ^8  d   QhRS[ /# r   r   )rL   r   s   "rD   rM   r            rC   c                    V P                   # )z<Returns True if the boundary was reached or False otherwise.r   r   s   &rD   r   BodyPartReader.at_eof      ||rC   c                &   < V ^8  d   QhRS[ RS[ /# rH   r  rJ   r   )rL   r   s   "rD   rM   r     s      U u rC   c                R    \         V P                  9   d   V P                  V4      # V# )z>Apply Content-Transfer-Encoding decoding if header is present.)r    r   _decode_content_transferr   r  s   &&rD    _apply_content_transfer_decoding/BodyPartReader._apply_content_transfer_decoding  s$    $40066rC   c                    < V ^8  d   QhRS[ /# r   r   )rL   r   s   "rD   rM   r     s     K K KrC   c                Z    V P                   '       * ;'       d    \        V P                  9   # )z5Check if Content-Encoding decoding should be applied.)r   r   r   r   s   &rD   _needs_content_decoding&BodyPartReader._needs_content_decoding  s%     %%%JJ*:dll*JJrC   c                &   < V ^8  d   QhRS[ RS[ /# r`  r   )rL   r   s   "rD   rM   r   
  s      5 U rC   c                v    V P                  V4      pV P                  4       '       d   V P                  V4      # V# )zDecodes data synchronously.

Decodes data according the specified Content-Encoding
or Content-Transfer-Encoding headers value.

Note: For large payloads, consider using decode_iter() instead
to avoid blocking the event loop during decompression.
)rd  rh  _decode_contentrc  s   &&rD   r  BodyPartReader.decode
  s9     44T:''))''--rC   c                6   < V ^8  d   QhRS[ RS[S[ ,          /# r`  r   r	   )rL   r   s   "rD   rM   r     s       e e0D rC   c                  "   V P                  V4      pV P                  4       '       d#   V P                  V4        Rj  xL
  pV5x  K  V5x  R#  LDR# 5i)zAsync generator that yields decoded data chunks.

Decodes data according the specified Content-Encoding
or Content-Transfer-Encoding headers value.

This method offloads decompression to an executor for large payloads
to avoid blocking the event loop.
N)rd  rh  _decode_content_async)r   r  r  s   && rD   r  BodyPartReader.decode_iter  sR      44T:''))55d;  aJ;s'   9AAA AAAAc                &   < V ^8  d   QhRS[ RS[ /# r`  r   )rL   r   s   "rD   rM   r   (  s     
D 
DE 
De 
DrC   c                    V P                   P                  \        R 4      P                  4       pVR8X  d   V# VR9   d(   \	        VRR7      P                  WP                  R7      # \        RV 24      h)rv   identityTr   suppress_deflate_header
max_lengthunknown content encoding: >   gzipdeflate)r   r   r   r   r   decompress_syncr   RuntimeErrorr   r  r   s   && rD   rl  BodyPartReader._decode_content(  su    <<##$4b9??Az!K**#!(, od/H/HoIJ
 7zBCCrC   c                6   < V ^8  d   QhRS[ RS[S[ ,          /# r`  ro  )rL   r   s   "rD   rM   r   4  s$     H H H-:N HrC   c                 "   V P                   P                  \        R 4      P                  4       pVR8X  d   V5x  R# VR9   d7   \	        VRR7      pVP                  WP                  R7      G Rj  xL
 5x  R# \        RV 24      h L5i)rv   ru  Trv  rx  Nrz  >   r{  r|  )r   r   r   r   r   
decompressr   r~  )r   r  r   r  s   &&  rD   rq  $BodyPartReader._decode_content_async4  s     <<##$4b9??Az!J,, !(,A T6O6OPPP!;H:FGG Qs   A0B2B
3Bc                &   < V ^8  d   QhRS[ RS[ /# r`  r   )rL   r   s   "rD   rM   r   A  s     
Q 
QU 
Qu 
QrC   c                    V P                   P                  \        R 4      P                  4       pVR8X  d   \        P
                  ! V4      # VR8X  d   \        P                  ! V4      # VR9   d   V# \        RV 24      h)rv   r  quoted-printable#unknown content transfer encoding: )binary8bit7bit)	r   r   r    r   r  	b64decodebinasciia2b_qpr~  r  s   && rD   rb  'BodyPartReader._decode_content_transferA  st    <<##$=rBHHJx##D))++??4((33K!DXJOPPrC   c                &   < V ^8  d   QhRS[ RS[ /# )rH   rJ  rJ   ry   )rL   r   s   "rD   rM   r   M  s     T T3 T3 TrC   c                    V P                   P                  \        R4      p\        V4      pVP                  P                  RV P
                  ;'       g    T4      # )z>Returns charset parameter from Content-Type header or default.rv   charset)r   r   r!   r$   
parametersr   )r   rJ  ctypemimetypes   &&  rD   rK  BodyPartReader.get_charsetM  sI      r2!%(""&&y$2G2G2R2R7SSrC   c                0   < V ^8  d   QhRS[ S[,          /# r   rF  )rL   r   s   "rD   rM   r   T  s     < <hsm <rC   c                n    \        V P                  P                  \        4      4      w  r\	        VR4      # )zlReturns name specified in Content-Disposition header.

If the header is missing or malformed, returns None.
r   r   r   r   r   r   r   r   r   s   &  rD   r   BodyPartReader.nameS  s-     .dll.>.>?R.ST	+FF;;rC   c                0   < V ^8  d   QhRS[ S[,          /# r   rF  )rL   r   s   "rD   rM   r   ]  s     @ @(3- @rC   c                n    \        V P                  P                  \        4      4      w  r\	        VR4      # )zoReturns filename specified in Content-Disposition header.

Returns None if the header is missing or malformed.
filenamer  r  s   &  rD   r  BodyPartReader.filename\  s-     .dll.>.>?R.ST	+FJ??rC   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )"r>   r?   r@   rA   r   r  r   r   r   r   r   r  r  r  r  r  r   rx   rP  rW  r   rd  rh  r  r  rl  rq  rb  rK  r%   r   r  rB   r   r   s   @rD   r4   r4     sa    0J8 8 *.8 $?8 86   5  & ,6 * *X + +Z :3 3%d % %Gd G G
d 
 
(  K K
   
D 
DH H
Q 
QT T < < @ @rC   )orderc                      a a ] tR tRt oV3R lV 3R lltRV3R lR lltRV3R lR lltV3R lR	 ltV3R
 ltRt	Vt
V ;t# )BodyPartReaderPayloadif  c                0   < V ^8  d   QhRS[ RS[RS[RR/# )rH   r   argskwargsrJ   N)r4   r   )rL   r   s   "rD   rM   "BodyPartReaderPayload.__annotate__k  s/     
G 
Gn 
GS 
GC 
GD 
GrC   c                   < \         SV `  ! V.VO5/ VB  / pVP                  e   VP                  VR&   VP                  e   VP                  VR&   V'       d   V P                  ! R/ VB  R # R # )Nr   r  )
attachmentT)superr   r   r  set_content_disposition)r   r   r  r  r   	__class__s   &&*, rD   r   BodyPartReaderPayload.__init__k  sg    000!#::!"ZZF6N>>%!&F:((FvF rC   c                ,   < V ^8  d   QhRS[ RS[ RS[ /# rH   r   errorsrJ   ry   )rL   r   s   "rD   rM   r  w  s"     - -s -c - -rC   c                    \        R 4      h)zUnable to decode.	TypeErrorr   r   r  s   &&&rD   r  BodyPartReaderPayload.decodew  s    +,,rC   c                ,   < V ^8  d   QhRS[ RS[ RS[/# r  rK   r   )rL   r   s   "rD   rM   r  z  s(     V Vs Vc VQV VrC   c                    "   \        R4      h5i)a*  Raises TypeError as body parts should be consumed via write().

This is intentional: BodyPartReader payloads are designed for streaming
large data (potentially gigabytes) and must be consumed only once via
the write() method to avoid memory exhaustion. They cannot be buffered
in memory for reuse.
z:Unable to read body part as bytes. Use write() to consume.r  r  s   &&&rD   as_bytesBodyPartReaderPayload.as_bytesz  s      TUUs   c                $   < V ^8  d   QhRS[ RR/# rH   writerrJ   Nr   )rL   r   s   "rD   rM   r    s     & &"6 &4 &rC   c                   "   V P                   pVP                  RR7      G Rj  xL
 ;p'       d7   VP                  V4        Rj  xL
  pVP                  V4      G Rj  xL
  K%  R#  LD L$ LD'Kc  5i)rH   )r  Ni   )r   r  r  write)r   r  fieldr  r  s   &&   rD   r  BodyPartReaderPayload.write  sj     "--5-999e9 ,,U3 & &all1o%% :9&% 4sJ   "A2A)A2A2A/A+A/
A2 A-!	A2+A/-A2/A2c                &   < V ^8  d   Qh/ S[ ;R&   # )rH   r   )r4   )rL   r   s   "rD   rM   r  f  s      rC   r<   r   r   )r>   r?   r@   rA   r   r  r  r  __annotate_func__rB   r   __classcell__r  r   s   @@rD   r  r  f  s8     

G 
G- -V V& &=  rC   r  c                   `  a  ] tR tRt o Rt]tRt]t	RRR^/V 3R lR llt
V 3R	 lR
 ltV 3R lR lt]V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR  ltV 3R! lR" ltV 3R# lR$ ltV 3R% ltR&tV tR# )'r6   i  zMultipart body reader.Nmax_field_sizei  max_headersc          
      L   < V ^8  d   QhRS[ S[S[3,          RS[RS[RS[RR/# )rH   r   r   r  r  rJ   N)r   rK   r0   r   )rL   r   s   "rD   rM   MultipartReader.__annotate__  sF     ' 'c"' '
 ' ' 
'rC   c                  \        V\        ,          4      V n        V P                  P                  R 8X  g   Q R4       hRV P                  P                  9  d   \        RV\        ,          ,          4      hWn        RV P                  4       ,           P                  4       V n	        W n
        RV n        RV n        W0n        W@n        RV n        RV n        . V n        R# )	multipartz!multipart/* content type expectedr   z$boundary missed for Content-Type: %s--NFT)r$   r!   	_mimetypetyper  r  r   _get_boundaryencoder   r   r   
_last_part_max_field_size_max_headersr   _at_bofr   )r   r   r   r  r  s   &&&$$rD   r   MultipartReader.__init__  s     ((=>~~""k1V3VV1T^^66669NN  !3!3!55==?,0CG-'$&rC   c                &   < V ^8  d   QhRS[ RS[ /# r   r1   )rL   r   s   "rD   rM   r    r   rC   c                    V # rV   r<   r   s   &rD   r   MultipartReader.__aiter__  r   rC   c                D   < V ^8  d   QhRS[ S[RS[3,          ,          /# rH   rJ   r6   r   r   r4   )rL   r   s   "rD   rM   r    s%      	%)>9:	;rC   c                V   "   V P                  4       G R j  xL
 pVf   \        hV#  L5irV   r   r   s   & rD   r   MultipartReader.__anext__  r   r   c                $   < V ^8  d   QhRRRS[ /# )rH   responser:   rJ   )r   )rL   r   s   "rD   rM   r    s      " 
"rC   c                ^    V P                  W! VP                  VP                  4      4      pV# )zrConstructs reader instance from HTTP response.

:param response: :class:`~aiohttp.client.ClientResponse` instance
)response_wrapper_clsr   r   )clsr  objs   && rD   from_responseMultipartReader.from_response  s3     &&c(**H,<,<=
 
rC   c                    < V ^8  d   QhRS[ /# r   r   )rL   r   s   "rD   rM   r    rZ  rC   c                    V P                   # )z@Returns True if the final boundary was reached, false otherwise.r\  r   s   &rD   r   MultipartReader.at_eof  r^  rC   c                D   < V ^8  d   QhRS[ S[RS[3,          ,          /# r  r  )rL   r   s   "rD   rM   r    s%     ! !	%)>9:	;!rC   c                n  "   V P                   '       d   R# V P                  4       G Rj  xL
  V P                  '       d!   V P                  4       G Rj  xL
  RV n        MV P	                  4       G Rj  xL
  V P                   '       d   R# V P                  4       G Rj  xL
 pV P                  f   V P                  P                  R8X  d   \        V\        4      '       d   \        VP                  P                  \        4      4      w  r#VP                  R4      R8X  dp   VP                  ^ 4      G Rj  xL
 p\!        V4      ^8  d   \#        R4      hVP%                  4       P'                  4       V n        V P                  4       G Rj  xL
 pWn        V P                  #  EL{ ELT EL7 EL Lx L$5i)z#Emits the next multipart body part.NFr   r   	_charset_zInvalid default charset)r   _maybe_release_last_partr  _read_until_first_boundary_read_boundaryfetch_next_partr  r  r   
isinstancer4   r   r   r   r   r  r   r~  r   r  r   )r   r   r   r   r  s   &    rD   r   MultipartReader.next  sL    
 <<<++---<<<11333 DL%%'''<<<))++ OO#&&+54001$,,2B2BCV2WXIAzz&![0 !% 33w<"$&'@AA(/(>(>(@%!11335 	.3 ( , 4 4sw   (F5F%F5F5F(F54F+5F5F5 F.!BF58F19AF5F3F5(F5+F5.F51F53F5c                   < V ^8  d   QhRR/# r   r<   )rL   r   s   "rD   rM   r    s     ! !t !rC   c                   "   V P                   '       g9   V P                  4       G Rj  xL
 pVf   R# VP                  4       G Rj  xL
  KJ  R#  L& L
5i)z=Reads all the body parts to the void till the final boundary.N)r   r   r   r   s   & rD   r   MultipartReader.release  s@     ,,,$D|,,.  	 $ !s&   AAAAA	AAc                4   < V ^8  d   QhRS[ RS[3,          /# r  r   r4   )rL   r   s   "rD   rM   r    s      . .	 .0	1.rC   c                `   "   V P                  4       G Rj  xL
 pV P                  V4      #  L5i)z"Returns the next body part reader.N)_read_headers_get_part_reader)r   r   s   & rD   r  MultipartReader.fetch_next_part  s.      **,,$$W-- -s   .,.c                8   < V ^8  d   QhRRRS[ RS[3,          /# )rH   r   r   rJ   r6   r  )rL   r   s   "rD   rM   r    s*      ( 
 .0	1rC   c                   VP                  \        R4      p\        V4      pVP                  R8X  d]   V P                  f   \        V 4      ! WP
                  4      # V P	                  VV P
                  V P                  V P                  R7      # V P                  V P                  VV P
                  V P                  P                  V P                  R7      # )zDispatches the response by the `Content-Type` header.

Returns a suitable reader instance.

:param dict headers: Response headers
rv   r  )r  r  )r   r   )r   r!   r$   r  multipart_reader_clsr   r  r  part_reader_clsr   r  r   r   )r   r   r  r  s   &&  rD   r   MultipartReader._get_part_reader  s     L"-!%(==K'((0Dz'==99,,#33 --	 -   ''.. $ 5 5 (  rC   c                    < V ^8  d   QhRS[ /# r   ry   )rL   r   s   "rD   rM   r    s      s rC   c                    V P                   P                  R ,          p\        V4      ^F8  d   \        RV,          4      hV# )r   z&boundary %r is too long (70 chars max))r  r  r   r  )r   r   s   & rD   r  MultipartReader._get_boundary  s8    >>,,Z8x=2EPQQrC   c                    < V ^8  d   QhRS[ /# r   r   )rL   r   s   "rD   rM   r  %  s     . . .rC   c                   "   V P                   '       d   V P                   P                  4       # V P                  P                  4       G R j  xL
 #  L5irV   )r   r   r   r  r   s   &rD   	_readlineMultipartReader._readline%  s:     <<<<<##%%]]++----s   A
AAAc                   < V ^8  d   QhRR/# r   r<   )rL   r   s   "rD   rM   r  *  s      $ rC   c                  "    V P                  4       G Rj  xL
 pVR8X  d   \        RV P                  ,          4      hVP                  4       pWP                  8X  d   R# WP                  R,           8X  g   Kw  R V n        R#  Lk5i)TNrC   z#Could not find starting boundary %rr8  )r  r  r   r;  r   r   r  s   & rD   r  *MultipartReader._read_until_first_boundary*  so     ..**E| 9T^^L  LLNE&..500# +s   BBAB:
Bc                   < V ^8  d   QhRR/# r   r<   )rL   r   s   "rD   rM   r  8  s     Y Yd YrC   c                  "   V P                  4       G R j  xL
 P                  4       pWP                  8X  d   R # WP                  R,           8X  d   RV n        V P                  4       G R j  xL
 pV P                  4       G R j  xL
 pVR,          R8X  d   V P                  P                  V4       R # V P                  P                  W2.4       R # \        RV: RV P                  : 24      h L L Ln5i)Nr8  T:NrH   NzInvalid boundary z, expected )r  r;  r   r   r   r   r  r  )r   r  epiloguer?  s   &   rD   r  MultipartReader._read_boundary8  s     ~~''//1NN"nnu,,DL!^^--H"nn..I }%##I.
 ##Y$9:0	T^^DVWXX) (
 ..s5   C5C/AC5,C1-C5C3A+C51C53C5c                   < V ^8  d   QhRR/# )rH   rJ   r   r<   )rL   r   s   "rD   rM   r  O  s      %< rC   c                j  "   . p V P                   P                  V P                  R7      G Rj  xL
 pVP                  R4      pVP	                  V4       V'       g   M'\        V4      V P                  8  g   Kv  \        R4      h\        V P                  R7      pVP                  V4      w  rEV#  L5i)T)max_line_lengthNr  zToo many headers received)r  )
r   r  r  r;  r   r   r  r'   r&   parse_headers)r   linesr  parserr   raw_headerss   &     rD   r  MultipartReader._read_headersO  s     --00AUAU0VVELL)ELL5zD---$%@AAd.B.BC%33E: Ws   -B3B1-B3B3;7B3c                   < V ^8  d   QhRR/# r   r<   )rL   r   s   "rD   rM   r  ]  s     # # #rC   c                "  "   V P                   e{   V P                   P                  4       '       g#   V P                   P                  4       G Rj  xL
  V P                  P	                  V P                   P                  4       RV n         R# R#  L>5i)z8Ensures that the last read body part is read completely.N)r  r   r   r   r  r   s   &rD   r  (MultipartReader._maybe_release_last_part]  sc     ??&??))++oo--///LL 7 78"DO	 '/s   .BBB?Bc                D   < V ^8  d   Qh/ S[ S[R,          ,          ;R&   # )rH   r6   r  )r   r   )rL   r   s   "rD   rM   r    s      #4(9#:;B rC   )r  r   r   r   r   r  r  r  r  r   r   )r>   r?   r@   rA   r   r   r  r  r4   r  r   r   r   classmethodr  r   r   r   r  r  r  r  r  r  r  r  r  rB   r   r   s   @rD   r6   r6     s       4 ?C$O'
 #' ' '4     ! !F! !. . > . .
 Y Y. # #e  rC   c                     a a ] tR tRt oRtRtR*V3R lV 3R llltV3R lR ltV3R lR	 ltV3R
 lR lt	V3R lR lt
V3R lR lt]P                  ! R4      t]P                  ! R4      t]V3R lR l4       t]V3R lR l4       tR+V3R lR lltV3R lR ltR+V3R lR lltR+V3R lR llt]V3R lR l4       tR,V3R  lR! lltR,V3R" lR# lltR-V3R$ lR% lltV3R& lR' ltV3R( ltR)tVtV ;t# ).r7   ii  zMultipart body writer.Tc                :   < V ^8  d   QhRS[ RS[S[ ,          RR/# )rH   r   r   rJ   N)rK   r   )rL   r   s   "rD   rM   MultipartWriter.__annotate__p  s'     4 4 4# 4RV 4rC   c                  < Ve   TM\         P                  ! 4       P                  p VP                  R4      V n        RT RT P                   2p\        ST `%  R TR7       . T n
        TR8H  T n        R #   \
         d    \        R4      R hi ; i)Nasciiz(boundary should contain ASCII only charsz
multipart/z; boundary=)content_typer   )uuiduuid4hexr  r   UnicodeEncodeErrorr  _boundary_valuer  r   _partsr   )r   r   r   r  r  s   &&& rD   r   MultipartWriter.__init__p  s    '389I9I	S%__W5DN WI[1E1E0FGE2#%$3 " 	SGHdR	Ss   A4 4Bc                   < V ^8  d   QhRR/# )rH   rJ   r7   r<   )rL   r   s   "rD   rM   r    s      , rC   c                    V # rV   r<   r   s   &rD   	__enter__MultipartWriter.__enter__  r   rC   c                p   < V ^8  d   QhRS[ S[S[,          ,          RS[ S[,          RS[ S[,          RR/# )rH   exc_typeexc_valexc_tbrJ   N)r   r   BaseExceptionr   )rL   r   s   "rD   rM   r    sG      4./ -( '	
 
rC   c                    R # rV   r<   )r   r/  r0  r1  s   &&&&rD   __exit__MultipartWriter.__exit__  s     	rC   c                0   < V ^8  d   QhRS[ S[,          /# r   )r   _Part)rL   r   s   "rD   rM   r    s     ! !(5/ !rC   c                ,    \        V P                  4      # rV   )iterr(  r   s   &rD   __iter__MultipartWriter.__iter__  s    DKK  rC   c                    < V ^8  d   QhRS[ /# r   )r   )rL   r   s   "rD   rM   r    s          rC   c                ,    \        V P                  4      # rV   )r   r(  r   s   &rD   __len__MultipartWriter.__len__  s    4;;rC   c                    < V ^8  d   QhRS[ /# r   r   )rL   r   s   "rD   rM   r    s      $ rC   c                    R # Tr<   r   s   &rD   __bool__MultipartWriter.__bool__  s    rC   s   \A[!#$%&'*+\-.^_`|~\w]+\Zs   [\x00-\x08\x0A-\x1F\x7F]c                    < V ^8  d   QhRS[ /# r   ry   )rL   r   s   "rD   rM   r    s     @ @ @rC   c                t   V P                   p\        P                  ! V P                  V4      '       d   VP	                  R4      # \        P
                  ! V P                  V4      '       d   \        R4      hVP                  RR4      pVP                  RR4      pRVP	                  R4      ,           R,           # )zjWrap boundary parameter value in quotes, if necessary.

Reads self.boundary and returns a unicode string.
r!  z*boundary value contains invalid characters   \s   \\   "s   \"r]   )	r   r{   match_valid_tchar_regexr  search_invalid_qdtext_char_regexr  replace)r   r   quoted_value_contents   &  rD   r'  MultipartWriter._boundary_value  s    & 88D++U33<<((99T44e<<IJJ  %}}UG<3;;D&I)0099C??rC   c                    < V ^8  d   QhRS[ /# r   ry   )rL   r   s   "rD   rM   r    s     . .# .rC   c                8    V P                   P                  R 4      # )r!  )r   r  r   s   &rD   r   MultipartWriter.boundary  s    ~~$$W--rC   c                R   < V ^8  d   QhRS[ RS[S[S[S[3,          ,          RS[/# rH   r  r   rJ   r   r   r   rK   r,   )rL   r   s   "rD   rM   r    s0     4 4# 4c1B(C 4w 4rC   c                    Vf   \        4       p\        V\        4      '       d-   VP                  P	                  V4       V P                  V4      #  \        WR7      pV P                  V4      #   \         d    \        RT,          4      hi ; i)Nr   zCannot create payload from %r)	r   r  r,   r   updateappend_payloadr.   r*   r  )r   r  r   payloads   &&& rD   r   MultipartWriter.append  s    ?!mGc7##KKw'&&s++4%c; **733  G ?# EFFGs   A/ /Bc                &   < V ^8  d   QhRS[ RS[ /# )rH   rZ  rJ   )r,   )rL   r   s   "rD   rM   r    s     $ $g $' $rC   c                   RpRpV P                   '       dz   \        \        \        0VP                  P                  4       ,          '       d   Q h\        VP                  9  d,   R\        V P                  4       2pVP                  RVR7       MVP                  P                  \        R4      P                  4       pV'       d   VR
9  d   \        RV 24      hVR8X  d   RpVP                  P                  \        R4      P                  4       pVR9  d   \        R	V 24      hVR8X  d   RpVP                  pVe-   V'       g%   V'       g   \        V4      VP                  \        &   V P                  P                  WV34       V# )z)Adds a new body part to multipart writer.Nzsection-r   )r   rv   ru  rz  r  r  )r|  r{  ru  )rv   r  r  r  )r   r   r   r    r   keysr   r   r(  r  r   r   r~  r  rK   r   )r   rZ  r   te_encodingr   r  s   &&    rD   rY  MultipartWriter.append_payload  s\   "&%) &~7PQ//&&() )) #'//9!#dkk"2!34//$/G **+;R@FFHHH,KK"%?z#JKK:% "//--.GLRRTK"NN"%H#VWWh&" <<D[25d)/G{;<rC   c                R   < V ^8  d   QhRS[ RS[S[S[S[3,          ,          RS[/# rT  rU  )rL   r   s   "rD   rM   r    s8     F FF!)'#s(*;!<F	FrC   c                T    Vf   \        4       pV P                  \        WR7      4      # )zHelper to append JSON part.rW  )r   rY  r)   )r   r  r   s   &&&rD   append_jsonMultipartWriter.append_json  s&     ?!mG"";s#DEErC   c                   < V ^8  d   QhRS[ S[S[S[S[3,          ,          S[S[S[3,          3,          RS[S[S[S[3,          ,          RS[/# rT  )r   r   r   rK   r   r   r,   )rL   r   s   "rD   rM   r    sW     
 
8E#s(O,gc3h.??@
 '#s(+,
 
	
rC   c                
   \        V\        \        34      '       g   Q hVf   \        4       p\        V\        4      '       d   \	        VP                  4       4      p\        VRR7      pV P                  \        W2RR7      4      # )z&Helper to append form urlencoded part.T)doseqz!application/x-www-form-urlencoded)r   r"  )	r  r   r   r   listr   r   rY  r-   )r   r  r   r  s   &&& rD   append_formMultipartWriter.append_form  sr     #'23333?!mGc7##syy{#CD)""4W
 	
rC   c                0   < V ^8  d   QhRS[ S[,          /# r   )r   r   )rL   r   s   "rD   rM   r    s      hsm rC   c                   ^ pV P                    F  w  r#pVP                  pV'       g   V'       g   Vf    R# V\        ^\        V P                  4      ,           ^,           V,           \        VP
                  4      ,           ^,           4      ,          pK  	  V^\        V P                  4      ,           ^,           ,          pV# )zSize of the payload.N)r(  r  r   r   r   _binary_headers)r   totalr   r   r_  	part_sizes   &     rD   r  MultipartWriter.size  s     +/;;'DK		I;)*;Sdnn%&  d**+	,
  E ,7 	S((1,,rC   c                ,   < V ^8  d   QhRS[ RS[ RS[ /# r  ry   )rL   r   s   "rD   rM   r  %  s"     
 
s 
c 
 
rC   c                V   a aa RP                  VVV 3R lS P                   4       4      # )zReturn string representation of the multipart data.

WARNING: This method may do blocking I/O if parts contain file payloads.
It should not be called in the event loop. Use as_bytes().decode() instead.
rv   c              3      <"   T FX  w  rpR SP                   ,           R,           VP                  P                  SS4      ,           VP                  4       ,           x  KZ  	  R# 5i)r  z
N)r   rm  r  )r   r   _e_ter   r  r   s   &   rD   r   )MultipartWriter.decode.<locals>.<genexpr>+  sf      
 "-# mm ""))(F;< kkm	 
 "-s   A A#)r   r(  r  s   fffrD   r  MultipartWriter.decode%  s)     ww 
 "&
 
 	
rC   c                ,   < V ^8  d   QhRS[ RS[ RS[/# r  r  )rL   r   s   "rD   rM   r  4  s#      s c QV rC   c                  "   . pV P                    F  w  rEpVP                  RV P                  ,           R,           4       VP                  VP                  4       VP	                  W4      G Rj  xL
 pVP                  V4       VP                  R4       K  	  VP                  RV P                  ,           R,           4       RP                  V4      #  Ld5i)zyReturn bytes representation of the multipart data.

This method is async-safe and calls as_bytes on underlying payloads.
r8  r  N   --
rC   )r(  r   r   rm  r  r   )r   r   r  r   r   rt  ru  
part_bytess   &&&     rD   r  MultipartWriter.as_bytes4  s     
   "[[MDcLL/'9: LL--.  $}}X>>JLL$ LL! ) 	UT^^+i78xx ?s   A-C/C0A%Cc                *   < V ^8  d   QhRS[ RS[RR/# )rH   r  close_boundaryrJ   N)r   rS   )rL   r   s   "rD   rM   r  O  s*     C C*C<@C	CrC   c                j  "   V P                    EFS  w  r4pV P                  '       d6   \        VP                  9   g   Q hRVP                  \        ,          9   g   Q hVP	                  RV P
                  ,           R,           4      G Rj  xL
  VP	                  VP                  4      G Rj  xL
  V'       g	   V'       dp   \        V4      pV'       d   VP                  V4       V'       d   VP                  V4       VP	                  V4      G Rj  xL
  VP                  4       G Rj  xL
  MVP	                  V4      G Rj  xL
  VP	                  R4      G Rj  xL
  EKV  	  V'       d4   VP	                  RV P
                  ,           R,           4      G Rj  xL
  R# R#  EL L L L Lh LQ L5i)zWrite body.zname=r8  r  Nrz  )r(  r   r   r   r  r   rm  MultipartPayloadWriterenable_compressionenable_encoding	write_eof)r   r  r~  r   r   r_  ws   &&&    rD   r  MultipartWriter.writeO  sD     ,0;;'DK!!!*dll:::$,,/B"CCCC,,ut~~5?@@@,,t33444;*62((2%%k2jjm##kkm##jj(((,,w''') ,7, ,,ut~~5	ABBB ! A4 $#(' Cs   BF3	F$
"F3,F'-F39F3+F3-%F3F)F3*F++F3F-F3F/F3/,F3F1	F3'F3)F3+F3-F3/F31F3c                   < V ^8  d   QhRR/# r   r<   )rL   r   s   "rD   rM   r  l  s      T rC   c           	     t  "   V P                   '       d   R# RV n         \        V P                  4       FK  w  pw  p pVP                  '       d   K  VP                  '       d   K2   VP                  4       G Rj  xL
  KM  	  R#  L
  \         d%   p\        P                  ! RYRR7        Rp?K}  Rp?ii ; i5i)z
Close all part payloads that need explicit closing.

IMPORTANT: This method must not await anything that might not finish
immediately, as it may be called during cleanup/cancellation. Schedule
any long-running operations without awaiting them.
NTz%Failed to close multipart part %d: %s)exc_info)		_consumedr   r(  	autocloseconsumedclose	Exceptionr(   error)r   r3  r   r   excs   &    rD   r  MultipartWriter.closel  s      >>> "+4;;!7C$1>>>$---**,&& "8 '  #))?TX sH   A
B8B8&B9B:B>B8BB5B0*B80B55B8c                $   < V ^8  d   Qh/ R;R&   # )rH   Nr   r<   )rL   r   s   "rD   rM   r  i  s      L rC   )r   r  r   r(  )r   NrV   r  rB  ) r>   r?   r@   rA   r   
_autocloser   r,  r4  r:  r>  rC  r{   compilerJ  rL  propertyr'  r   r   rY  rc  ri  r  r  r  r  r  r  rB   r   r  r  s   @@rD   r7   r7   i  s      J4 4$  ! !     $AB!#,H!I@ @> . .4 4$ $LF F
 
*  (
 
 6C C: G  rC   c                   ~   a  ] tR tRt o V 3R lR ltV 3R lR ltRV 3R lR lltV 3R	 lR
 ltV 3R lR ltRt	V t
R# )r  i  c                $   < V ^8  d   QhRS[ RR/# r  r   )rL   r   s   "rD   rM   #MultipartPayloadWriter.__annotate__  s     : :3 : :rC   c                <    Wn         R V n        R V n        R V n        R # rV   )_writer	_encoding	_compress_encoding_buffer)r   r  s   &&rD   r   MultipartPayloadWriter.__init__  s    (,3759rC   c                $   < V ^8  d   QhRS[ RR/# )rH   r   rJ   Nry   )rL   r   s   "rD   rM   r    s     0 0 0 0rC   c                b    VR 8X  d   Wn         \        4       V n        R# VR8X  d
   RV n         R# R# )r  r  N)r  r
  r  )r   r   s   &&rD   r  &MultipartPayloadWriter.enable_encoding  s.    x%N$-KD!++/DN ,rC   Nc                :   < V ^8  d   QhRS[ RS[S[,          RR/# )rH   r   strategyrJ   N)rK   r   r   )rL   r   s   "rD   rM   r    s)     
 

3;C=
	
rC   c                ,    \        VR VR7      V n        R# )T)r   rw  r  N)r   r  )r   r   r  s   &&&rD   r  )MultipartPayloadWriter.enable_compression  s     ($(
rC   c                   < V ^8  d   QhRR/# r   r<   )rL   r   s   "rD   rM   r    s     	R 	R 	RrC   c                  "   V P                   eC   V P                   P                  4       pV'       d!   R V n         V P                  V4      G R j  xL
  V P                  R8X  dX   V P                  '       dD   V P
                  P                  \        P                  ! V P                  4      4      G R j  xL
  R # R # R #  Ln L5i)Nr  )r  flushr  r  r  r  r  	b64encoder
  s   & rD   r   MultipartPayloadWriter.write_eof  s     >>%NN((*E!%jj'''>>X%$$$ll(()9)9$:O:O)PQQQ % & ( Rs.   0CCB=&C6<C2B?3C?Cc                $   < V ^8  d   QhRS[ RR/# )rH   r  rJ   Nr   )rL   r   s   "rD   rM   r    s     , , ,4 ,rC   c                  "   V P                   e6   V'       d.   V P                   P                  V4      G R j  xL
 pV'       g   R # V P                  R8X  d   V P                  pVf   Q hVP	                  V4       V'       dy   \        \        V4      ^4      w  r4VR V^,           W#^,          R  uqPn        V'       d<   \        P                  ! V4      pV P                  P                  V4      G R j  xL
  R # R # R # V P                  R8X  d:   V P                  P                  \        P                  ! V4      4      G R j  xL
  R # V P                  P                  V4      G R j  xL
  R #  EL4 L| L0 L5i)Nr  r  )r  compressr  r  r  divmodr   r  r  r  r  r  b2a_qp)r   r  bufdivmod	enc_chunkb64chunks   &&     rD   r  MultipartPayloadWriter.write  s    >>%"nn55e<<>>X%''C?"?JJu!#c(A.47	#'NCa	N0	0%//	:H,,,,X666   ^^11,,$$X__U%;<<<,,$$U+++% = 7<+sX   E4E4E+E4=E4A/E41E.2AE4?E0 $E4$E2%E4.E40E42E4)r  r  r  r  )r|  N)r>   r?   r@   rA   r   r  r  r  r  rB   r   r   s   @rD   r  r    s9     : :0 0
 
	R 	R, ,rC   r  )      )r6   r7   r4   r8   r9   r   r   )r  )Wr  r  rP  r{   sysr#  r   collectionsr   collections.abcr   r   typesr   typingr   r   r	   r
   r   r   r   r   r   r   r   r   urllib.parser   r   r   	multidictr   r   abcr   compression_utilsr   r   r   hdrsr   r   r   r    r!   helpersr"   r#   r$   r%   httpr&   http_exceptionsr'   logr(   rZ  r)   r*   r+   r,   r-   r.   r/   streamsr0   version_infor2   r3   __all__client_reqrepr:   RuntimeWarningr8   r9   r   r   r   r4   	try_firstr  r6   rK   r7  r7   r  r<   rC   rD   <module>r     sM      	 
    -     7 6 3 % 
  8 7  +     "w6!12D -	. 		 	d$NB," ,"^U@ U@p
 nEOO4!&G !& 5!&HX# X#v 	gsC Zg Zz7, 7,rC   