+
    is&              
      $   ^ RI H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HtHtHtHt ^RIHtHtHt RRRR	/t]P+                  ]! ^ 4       U u/ uF#  q ^8w  g   K  ]! V 4      R
P1                  V 4      bK%  	  up 4       ]P2                  ! RP5                  ]P7                  4        U u. uF  p ]P9                  V 4      NK  	  up 4      4      tR R ltR R ltR R lt  ! R R4      t! ! R R4      t" ! R R]]
4      t#R# u up i u up i )    )annotationsN)Path)AsyncByteStreamFileContent	FileTypesRequestDataRequestFilesSyncByteStream)peek_filelike_lengthprimitive_value_to_strto_bytes"z%22\z\\z%{:02X}|c               $    V ^8  d   QhRRRRRR/# )   namestrvaluereturnbytes )formats   "c/Users/igloo/.openclaw/workspace/scratch/fb_ad_env/lib/python3.14/site-packages/httpx/_multipart.py__annotate__r   !   s!     	( 	(S 	( 	( 	(    c                d    R R lp\         P                  W!4      pV  RV R2P                  4       # )z3
Encode a name/value pair within a multipart form.
c                    V ^8  d   QhRRRR/# )r   matchztyping.Match[str]r   r   r   )r   s   "r   r   (_format_form_param.<locals>.__annotate__&   s     A A) Ac Ar   c                :    \         V P                  ^ 4      ,          # )r   )!_HTML5_FORM_ENCODING_REPLACEMENTSgroup)r   s   &r   replacer$_format_form_param.<locals>.replacer&   s    0Q@@r   z="r   )_HTML5_FORM_ENCODING_REsubencode)r   r   r$   s   && r   _format_form_paramr)   !   s6    
A $''8EV2eWA%%''r   c                    V ^8  d   QhRRRR/# )r   filenamez
str | Noner   r   )r   s   "r   r   r   -   s      *  r   c                d    V '       d(   \         P                  ! V 4      ^ ,          ;'       g    R# R# )z
Guesses the mimetype based on a filename. Defaults to `application/octet-stream`.

Returns `None` if `filename` is `None` or empty.
zapplication/octet-streamN)	mimetypes
guess_type)r+   s   &r   _guess_content_typer/   -   s)     ##H-a0NN4NNr   c                    V ^8  d   QhRRRR/# )r   content_typebytes | Noner   r   )r   s   "r   r   r   8   s      r   c                F   V '       d   V P                  R 4      '       g   R# RV 9   dy   V P                  R4       Fc  pVP                  4       P                  4       P                  R4      '       g   K8  VP                  4       \	        R4      R P                  R4      u # 	  R# )s   multipart/form-dataN   ;s	   boundary=   ")
startswithsplitstriplowerlen)r1   sections   & r   (get_multipart_boundary_from_content_typer<   8   s     |667MNN |#))$/G}}$$&11,??}}s<'8':;AA$GG 0 r   c                  V    ] tR t^FtRtR R ltR R ltR R ltR R	 ltR
 R lt	Rt
R# )	DataFieldz:
A single form field item, within a multipart form field.
c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   z str | bytes | int | float | Noner   Noner   )r   s   "r   r   DataField.__annotate__K   s"     
 
S 
)I 
d 
r   c                	\   \        V\        4      '       g   \        R \        V4       RV: 24      hVeB   \        V\        \        \
        \        34      '       g   \        R\        V4       RV: 24      hWn        \        V\        4      '       d
   VV n	        R# \        V4      V n	        R# )z)Invalid type for name. Expected str, got : Nz5Invalid type for value. Expected primitive type, got )

isinstancer   	TypeErrortyper   intfloatr   r   r   )selfr   r   s   &&&r   __init__DataField.__init__K   s    $$$;DJ<r$R  ZUC7O%P%PU}Bui1  	u--E 	
3I%3P 	
r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   rA   Z   s       r   c                	    \        V R 4      '       g0   \        RV P                  4      pRP                  RVR.4      V n        V P                  # )_headersr   r       Content-Disposition: form-data;    

)hasattrr)   r   joinrO   )rI   r   s   & r   render_headersDataField.render_headersZ   sE    tZ((%fdii8DHH4dKHDM }}r   c                   V ^8  d   QhRR/# rM   r   )r   s   "r   r   rA   c   s      U r   c                	r    \        V R 4      '       g   \        V P                  4      V n        V P                  # )_data)rR   r   r   rX   rI   s   &r   render_dataDataField.render_datac   s)    tW%%!$**-DJzzr   c                   V ^8  d   QhRR/# )r   r   rG   r   )r   s   "r   r   rA   i   s     ( (C (r   c                	x    V P                  4       pV P                  4       p\        V4      \        V4      ,           # N)rT   rZ   r:   )rI   headersdatas   &  r   
get_lengthDataField.get_lengthi   s1    %%'!7|c$i''r   c                   V ^8  d   QhRR/# r   r   ztyping.Iterator[bytes]r   )r   s   "r   r   rA   n   s     ! !. !r   c              #  	V   "   V P                  4       x  V P                  4       x  R # 5ir^   rT   rZ   rY   s   &r   renderDataField.rendern   s#     !!##  s   '))rX   rO   r   r   N)__name__
__module____qualname____firstlineno____doc__rJ   rT   rZ   ra   rg   __static_attributes__r   r   r   r>   r>   F   s%    
(
! !r   r>   c                  Z    ] tR t^stRtRtR R ltR R ltR R ltR R	 lt	R
 R lt
RtR# )	FileFieldz:
A single file field item, within a multipart form field.
c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r   r@   r   )r   s   "r   r   FileField.__annotate__z   s!     / /S / /t /r   c           	     	t   Wn         / pR p\        V\        4      '       d2   \        V4      ^8X  d   Vw  rVMG\        V4      ^8X  d   Vw  rVpM1Vw  rVrCM+\	        \        \        VRR4      4      4      P                   pTpVf   \        V4      p\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      pVe   V'       g   WCR&   \        V\        P                  4      '       d   \        R4      h\        V\        P                  4      '       d   \        R4      hWPn        W`n        W0n        R # )	Nr   uploadc              3  H   "   T F  pR VP                  4       9   x  K  	  R# 5i)zcontent-typeN)r9   ).0keys   & r   	<genexpr>%FileField.__init__.<locals>.<genexpr>   s     %Wwn		&Cws    "TFContent-Typez?Multipart file uploads require 'io.BytesIO', not 'io.StringIO'.zDMultipart file uploads must be opened in binary mode, not text mode.)r   rD   tupler:   r   r   getattrr/   anyioStringIOrE   
TextIOBaser+   filer_   )rI   r   r   r_   r1   r+   fileobjhas_content_type_headers   &&&     r   rJ   FileField.__init__z   s   	 #%#' eU##5zQ %*!'Uq27/< <A8<Cvx @ABGGHG.x8L"%#%Ww%W###%Ww%W"W#,C '3N#gr{{++Q  gr}}--V  !	r   c                   V ^8  d   QhRR/# r   r   z
int | Noner   )r   s   "r   r   rr      s     * *J *r   c                	$   V P                  4       p\        V P                  \        \        34      '       d/   \        V4      \        \        V P                  4      4      ,           # \        V P                  4      pVf   R # \        V4      V,           # r^   )rT   rD   r   r   r   r:   r   r   )rI   r_   file_lengths   &  r   ra   FileField.get_length   sj    %%'dii#u..w<#htyy&9":::*4995 7|k))r   c                   V ^8  d   QhRR/# rM   r   )r   s   "r   r   rr      s       r   c                	   \        V R 4      '       g   R\        RV P                  4      .pV P                  '       d*   \        RV P                  4      pVP	                  RV.4       V P
                  P                  4        F:  w  r4RV R2P                  4       VP                  4       reVP	                  WV.4       K<  	  VP                  R4       RP                  V4      V n
        V P                  # )	rO   rP   r   r+   s   ; z
rC   rQ   r   )rR   r)   r   r+   extendr_   itemsr(   appendrS   rO   )rI   partsr+   header_nameheader_valuerw   vals   &      r   rT   FileField.render_headers   s    tZ((3"64995E }}}-j$--HeX./-1\\-?-?-A)!+b188:L<O<O<QScZ( .B LL%HHUODM}}r   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   rr      s     4 43 4r   c              #  	  "   \        V P                  \        \        34      '       d   \	        V P                  4      x  R # \        V P                  R4      '       d    V P                  P                  ^ 4       V P                  P                  V P                  4      pV'       d5   \	        V4      x  V P                  P                  V P                  4      pK<  R #   \        P                   d     Lzi ; i5i)Nseek)rD   r   r   r   r   rR   r   r~   UnsupportedOperationread
CHUNK_SIZErI   chunks   & r   rZ   FileField.render_data   s     dii#u..499%%499f%%		q! 		t/5/!IINN4??3E 	 ** s0   AC8C :,C8'6C8C52C84C55C8c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   rr      s     & &. &r   c              #  	f   "   V P                  4       x  V P                  4        R j  xL
  R #  L5ir^   rf   rY   s   &r   rg   FileField.render   s&     !!####%%%s   &1/1)rO   r   r+   r_   r   Ni   )ri   rj   rk   rl   rm   r   rJ   ra   rT   rZ   rg   rn   r   r   r   rp   rp   s   s-     J/b*"4 & &r   rp   c                  r    ] tR t^tRtRR R lltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltRtR# )MultipartStreamz;
Request content as streaming multipart encoded form data.
Nc               (    V ^8  d   QhRRRRRRRR/# )	r   r`   r   filesr	   boundaryr2   r   r@   r   )r   s   "r   r   MultipartStream.__annotate__   s2     ; ;; ; 	;
 
;r   c                	    Vf4   \         P                  ! ^4      P                  4       P                  R4      pW0n        RVP                  R4      ,          V n        \        V P                  W4      4      V n	        R # )Nasciiz multipart/form-data; boundary=%s)
osurandomhexr(   r   decoder1   list_iter_fieldsfields)rI   r`   r   r   s   &&&&r   rJ   MultipartStream.__init__   se     zz"~))+227;H >B
 
 4,,T9:r   c               $    V ^8  d   QhRRRRRR/# )r   r`   r   r   r	   r   z&typing.Iterator[FileField | DataField]r   )r   s   "r   r   r      s$     4 44(44	/4r   c              #  	\  "   VP                  4        FH  w  r4\        V\        \        34      '       d   V F  p\	        W5R 7      x  K  	  K:  \	        W4R 7      x  KJ  	  \        V\
        P                  4      '       d   VP                  4       MTpV F  w  r4\        W4R 7      x  K  	  R# 5i))r   r   N)r   rD   r{   r   r>   typingMappingrp   )rI   r`   r   r   r   item
file_itemss   &&&    r   r   MultipartStream._iter_fields   s       ::<KD%%//!D#:: "  T77 ( '1&G&GU[[]U
%KD33 &s   B*B,c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   r     s     , ,3 ,r   c              #  	   "   V P                    F4  pR V P                  ,          x  VP                  4        Rj  xL
  Rx  K6  	  RV P                  ,          x  R#  L#5i)s   --%s
Ns   
s   --%s--
)r   r   rg   )rI   fields   & r   iter_chunksMultipartStream.iter_chunks  sL     [[E--||~%%M ! dmm++ &s   8A A$A c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   	  s      J r   c                   \        V P                  4      p^ pV P                   FB  pVP                  4       pVf    R# V^V,           ^,           ,          pW$,          pV^,          pKD  	  V^V,           ^,           ,          pV# )z
Return the length of the multipart encoded content, or `None` if
any of the files have a length that cannot be determined upfront.
N)r:   r   r   ra   )rI   boundary_lengthlengthr   field_lengths   &    r   get_content_length"MultipartStream.get_content_length	  s|    
 dmm,[[E ++-L#a/)A--F"FaKF ! 	!o%))r   c                   V ^8  d   QhRR/# )r   r   zdict[str, str]r   )r   s   "r   r   r     s     U U^ Ur   c                	l    V P                  4       pV P                  pVf   RRRV/# R\        V4      RV/# )NzTransfer-Encodingchunkedrz   zContent-Length)r   r1   r   )rI   content_lengthr1   s   &  r   get_headersMultipartStream.get_headers  sD    002((!'NLQQ #n"5~|TTr   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   r   &  s      0 r   c              #  	D   "   V P                  4        F  pVx  K	  	  R # 5ir^   r   r   s   & r   __iter__MultipartStream.__iter__&  s     %%'EK (s    c                   V ^8  d   QhRR/# )r   r   ztyping.AsyncIterator[bytes]r   )r   s   "r   r   r   *  s      !< r   c               	F   "   V P                  4        F  pV5x  K
  	  R # 5ir^   r   r   s   & r   	__aiter__MultipartStream.__aiter__*  s     %%'EK (s   !)r   r1   r   r^   )ri   rj   rk   rl   rm   rJ   r   r   r   r   r   r   rn   r   r   r   r   r      s0    ;4,,U r   r   )$
__future__r   r~   r-   r   rer   pathlibr   _typesr   r   r   r   r	   r
   _utilsr   r   r   r"   updaterangechrr   compilerS   keysescaper&   r)   r/   r<   r>   rp   r   )cs   0r   <module>r      s   " 	  	 	     &)%v$> ! ! ( (*//G/Q$Y SVYa  /G **II%F%K%K%MN%Mryy|%MNO 
	(*! *!Zj& j&ZLno LM H Os   D#D/D