+
    AžÀjÀ@  ã                  ó�  € ^ RI Ht ^ RIt^ RIHt ^ RIHt ^RIH	t	 ^RI
Ht ^RI
Ht ^RI
Ht ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt  ^ RIHt ]P@                  '       dO   ^ RIt!^ RI"H#t# ]$]PJ                  ]&,          ]]']'3,          ]]']3,          3,          t( ! R R]!PR                  4      t*]PV                  ! R]PX                  R]PZ                  3,          R7      t.R&R R llt/R'RR/R R lllt0 ! R  R!4      t1 ! R" R#4      t2R$ R% lt3R#   ] d    ^ RIHt Rt LÒi ; i)(é    )ÚannotationsN)ÚBytesIO)Ú	parse_qsl)Ú
_plain_int)ÚFileStorage)ÚHeaders)Ú	MultiDict)ÚRequestEntityTooLarge)Úparse_options_header)ÚData)ÚEpilogue)ÚField)ÚFile)ÚMultipartDecoder)ÚNeedData)Úget_content_length)Úget_input_stream)ÚSpooledTemporaryFile)ÚTemporaryFile)ÚWSGIEnvironmentc                  ó&   € ] tR t^(tRR R lltRtR# )ÚTStreamFactoryNc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# ©	é   Útotal_content_lengthú
int | NoneÚcontent_typez
str | NoneÚfilenameÚcontent_lengthÚreturnút.IO[bytes]© )Úformats   "Úg/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.14/site-packages/werkzeug/formparser.pyÚ__annotate__ÚTStreamFactory.__annotate__)   s<   € ÷ 	ñ 	à",ð	ð %ð	ð !ð		ð
 'ð	ð ñ	ó    c                	ó   € R # ©Nr#   )Úselfr   r   r   r    s   &&&&&r%   Ú__call__ÚTStreamFactory.__call__)   s   € ñ r(   r#   r*   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r,   Ú__static_attributes__r#   r(   r%   r   r   (   s   † ÷	ó 	r(   r   ÚF.)Úboundc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# r   r#   )r$   s   "r%   r&   r&   5   s:   € ÷ ñ Ø$ðàðð ðð ð	ð
 ñr(   c                ó&  € Rp\         e<   \        P                  ! \        P                  \        ,          \        VRR7      4      # V e   W8”  d:   \        P                  ! \        P                  \        ,          \        R4      4      # \        4       # )i   zrb+)Úmax_sizeÚmodei Ð )r   ÚtÚcastÚIOÚbytesr   r   )r   r   r   r    r7   s   &&&& r%   Údefault_stream_factoryr=   5   sc   € ð €HäÒ'Ü�vŠv”a—d‘dœ5•kÔ#7ÀÐPUÔ#VÓWÐWØ	Ò	%Ð)=Ô)HÜ�vŠv”a—d‘dœ5•k¤=°Ó#7Ó8Ð8ä‹9Ðr(   Úmax_form_partsc               ó8   € V ^8„  d   QhRRRRRRRRRR	R
RRRRR/# )r   Úenvironr   Ústream_factoryúTStreamFactory | NoneÚmax_form_memory_sizer   Úmax_content_lengthÚclsú"type[MultiDict[str, t.Any]] | NoneÚsilentÚboolr>   r!   Út_parse_resultr#   )r$   s   "r%   r&   r&   E   sb   € ÷ C"ñ C"ØðC"à)ðC"ð %ðC"ð #ð	C"ð
 
,ðC"ð ðC"ð ðC"ð ñC"r(   c          	     óB   € \        VVVVVVR7      P                  V 4      # )a	  Parse the form data in the environ and return it as tuple in the form
``(stream, form, files)``.  You should only call this method if the
transport method is `POST`, `PUT`, or `PATCH`.

If the mimetype of the data transmitted is `multipart/form-data` the
files multidict will be filled with `FileStorage` objects.  If the
mimetype is unknown the input stream is wrapped and returned as first
argument, else the stream is empty.

This is a shortcut for the common usage of :class:`FormDataParser`.

:param environ: the WSGI environment to be used for parsing.
:param stream_factory: An optional callable that returns a new read and
                       writeable file descriptor.  This callable works
                       the same as :meth:`Response._get_file_stream`.
:param max_content_length: If the data is larger than this many bytes, raise
    :exc:`.RequestEntityTooLarge`. This is used by :meth:`parse_from_environ`
    to set up a limited stream. When using :meth:`parse`, you must get a
    limited stream with :func:`.get_input_stream`.
:param max_form_memory_size: If a ``multipart/form-data`` text part is larger
    than this many bytes, raise :exc:`~exceptions.RequestEntityTooLarge`.
    File parts are written to disk after this size. This is an additional
    check, it does not replace using a limited stream and
    ``max_content_length``.
:param max_form_parts: If more than this number of ``multipart/form-data``
    parts are received, raise :exc:`.RequestEntityTooLarge`. This is an
    additional check, it does not replace using a limited stream and
    ``max_content_length``.
:param cls: an optional dict class to use.  If this is not specified
                   or `None` the default :class:`MultiDict` is used.
:param silent: If set to False parsing errors will not be caught.
:return: A tuple in the form ``(stream, form, files)``.

.. versionchanged:: 3.1.9
    ``max_form_memory_size`` is not applied to
    ``application/x-www-form-urlencoded``.

.. versionchanged:: 3.0
    The ``charset`` and ``errors`` parameters were removed.

.. versionchanged:: 2.3
    Added the ``max_form_parts`` parameter.

.. versionadded:: 0.5.1
   Added the ``silent`` parameter.

.. versionadded:: 0.5
   Added the ``max_form_memory_size``, ``max_content_length``, and ``cls``
   parameters.
)rA   rC   rD   r>   rG   rE   )ÚFormDataParserÚparse_from_environ)r@   rA   rC   rD   rE   rG   r>   s   &&&&&&$r%   Úparse_form_datarM   E   s1   € ôx Ø%Ø1Ø-Ø%ØØô÷ Ñ˜Ó!ð"r(   c                  óf   € ] tR t^‹tRtRRR/R R llltR R ltRR R	 lltR
 R ltR R lt	Rt
R# )rK   a  This class implements parsing of form data for Werkzeug.  By itself
it can parse multipart and url encoded form data.  It can be subclassed
and extended but for most mimetypes it is a better idea to use the
untouched stream and expose it as separate attributes on a request
object.

:param stream_factory: An optional callable that returns a new read and
                       writeable file descriptor.  This callable works
                       the same as :meth:`Response._get_file_stream`.
:param max_content_length: If the data is larger than this many bytes, raise
    :exc:`.RequestEntityTooLarge`. This is used by :meth:`parse_from_environ`
    to set up a limited stream. When using :meth:`parse`, you must get a
    limited stream with :func:`.get_input_stream`.
:param max_form_memory_size: If a ``multipart/form-data`` text part is larger
    than this many bytes, raise :exc:`~exceptions.RequestEntityTooLarge`.
    File parts are written to disk after this size. This is an additional
    check, it does not replace using a limited stream and
    ``max_content_length``.
:param max_form_parts: If more than this number of ``multipart/form-data``
    parts are received, raise :exc:`.RequestEntityTooLarge`. This is an
    additional check, it does not replace using a limited stream and
    ``max_content_length``.
:param cls: an optional dict class to use.  If this is not specified
                   or `None` the default :class:`MultiDict` is used.
:param silent: If set to False parsing errors will not be caught.

.. versionchanged:: 3.0
    The ``charset`` and ``errors`` parameters were removed.

.. versionchanged:: 3.0
    The ``parse_functions`` attribute and ``get_parse_func`` methods were removed.

.. versionchanged:: 2.2.3
    Added the ``max_form_parts`` parameter.

.. versionadded:: 0.8
Nr>   c               ó4   € V ^8„  d   QhRRRRRRRRRR	R
RRR/# )r   rA   rB   rC   r   rD   rE   rF   rG   rH   r>   r!   ÚNoner#   )r$   s   "r%   r&   ÚFormDataParser.__annotate__²   sP   € ÷ ñ à-ðð )ðð 'ð	ð
 0ðð ðð #ðð 
ñr(   c               	ó    € Vf   \         pWn        W0n        W n        W`n        Vf   \
        P                  ! R\        4      pW@n        WPn	        R # ©Nztype[MultiDict[str, t.Any]])
r=   rA   rD   rC   r>   r9   r:   r	   rE   rG   )r+   rA   rC   rD   rE   rG   r>   s   &&&&&&$r%   Ú__init__ÚFormDataParser.__init__²   sG   € ð Ò!Ü3ˆNà,ÔØ"4ÔØ$8Ô!Ø,ÔàŠ;Ü—&’&Ð6¼	ÓBˆCàŒØŽr(   c               ó    € V ^8„  d   QhRRRR/# )r   r@   r   r!   rI   r#   )r$   s   "r%   r&   rQ   Ê   s   € ÷ 
ñ 
¨/ð 
¸nñ 
r(   c                ó¦   € \        WP                  R7      p\        V4      p\        VP	                  R4      4      w  rEV P                  VVVVR7      # )z°Parses the information from the environment as form data.

:param environ: the WSGI environment to be used for parsing.
:return: A tuple in the form ``(stream, form, files)``.
)rD   ÚCONTENT_TYPE)r    ÚmimetypeÚoptions)r   rD   r   r   ÚgetÚparse)r+   r@   Ústreamr    rY   rZ   s   &&    r%   rL   Ú!FormDataParser.parse_from_environÊ   sV   € ô " '×>UÑ>UÔVˆÜ+¨GÓ4ˆÜ0°·±¸^Ó1LÓMÑˆØ�z‰zØØ)ØØð	 ó 
ð 	
r(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r]   r"   rY   Ústrr    r   rZ   zdict[str, str] | Noner!   rI   r#   )r$   s   "r%   r&   rQ   Ú   s<   € ÷ '.ñ '.àð'.ð ð'.ð #ð	'.ð
 'ð'.ð 
ñ'.r(   c                ó:  € VR8X  d   V P                   pM4VR8X  d   V P                  pM WP                  4       V P                  4       3# Vf   / p V! WW44      #   \         d    T P                  '       g   h  Mi ; iYP                  4       T P                  4       3# )a¹  Parses the information from the given stream, mimetype,
content length and mimetype parameters.

:param stream: A limited input stream, from :meth:`.get_input_stream`.
:param mimetype: The mimetype used to choose how to parse the form.
    ``multipart/form-data`` and ``application/x-www-form-urlencoded``
    are supported.
:param content_length: the content length of the incoming data
:param options: optional mimetype parameters (used for
                the multipart boundary for instance)
:return: A tuple in the form ``(stream, form, files)``.

.. versionchanged:: 3.0
    The invalid ``application/x-url-encoded`` content type is not
    treated as ``application/x-www-form-urlencoded``.
zmultipart/form-dataz!application/x-www-form-urlencoded)Ú_parse_multipartÚ_parse_urlencodedrE   Ú
ValueErrorrG   )r+   r]   rY   r    rZ   Ú
parse_funcs   &&&&& r%   r\   ÚFormDataParser.parseÚ   s˜   € ð. Ð,Ô,Ø×.Ñ.‰JØÐ<Ô<Ø×/Ñ/‰JàŸ8™8›: t§x¡x£zÐ1Ð1àŠ?ØˆGð	Ù˜f°ÓHÐHøÜô 	Ø—;—;�;Øñ ð	úð —x‘x“z 4§8¡8£:Ð-Ð-s   ÁA ÁA:Á6A:Á9A:c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# ©r   r]   r"   rY   r`   r    r   rZ   zdict[str, str]r!   rI   r#   )r$   s   "r%   r&   rQ     s<   € ÷ #ñ #àð#ð ð#ð #ð	#ð
  ð#ð 
ñ#r(   c                	ó  € \        V P                  V P                  V P                  V P                  R 7      pVP                  RR4      P                  R4      pV'       g   \        R4      hVP                  WV4      w  rxWV3# ))rA   rC   r>   rE   ÚboundaryÚ ÚasciizMissing boundary)	ÚMultiPartParserrA   rC   r>   rE   r[   Úencoderd   r\   )	r+   r]   rY   r    rZ   Úparserrj   ÚformÚfiless	   &&&&&    r%   rb   ÚFormDataParser._parse_multipart  sy   € ô !Ø×.Ñ.Ø!%×!:Ñ!:Ø×.Ñ.Ø—‘ô	
ˆð —;‘;˜z¨2Ó.×5Ñ5°gÓ>ˆçÜÐ/Ó0Ð0à—l‘l 6°^ÓD‰ˆØ˜UÐ"Ð"r(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# rh   r#   )r$   s   "r%   r&   rQ     s<   € ÷ 3ñ 3àð3ð ð3ð #ð	3ð
  ð3ð 
ñ3r(   c                	ó˜   € \        VP                  4       P                  4       R RR7      pWP                  V4      V P                  4       3# )Tzwerkzeug.url_quote)Úkeep_blank_valuesÚerrors)r   ÚreadÚdecoderE   )r+   r]   rY   r    rZ   Úitemss   &&&&& r%   rc   Ú FormDataParser._parse_urlencoded  sA   € ô Ø�K‰K‹M× Ñ Ó"Ø"Ø'ô
ˆð
 —x‘x “¨¯©«
Ð2Ð2r(   )rE   rD   rC   r>   rG   rA   ©NNNNTr*   )r.   r/   r0   r1   Ú__doc__rT   rL   r\   rb   rc   r2   r#   r(   r%   rK   rK   ‹   s6   † ñ$ñLð &*÷ð õ0
÷ '.õR#÷*3ñ 3r(   rK   c                  óV   € ] tR 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t	R# )rm   i-  Nc               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r   rA   rB   rC   r   rE   rF   Úbuffer_sizeÚintr>   r!   rP   r#   )r$   s   "r%   r&   ÚMultiPartParser.__annotate__.  sF   € ÷ 'ñ 'à-ð'ð )ð'ð 0ð	'ð
 ð'ð #ð'ð 
ñ'r(   c                	ó”   € W n         WPn        Vf   \        pWn        Vf   \        P
                  ! R\        4      pW0n        W@n        R # rS   )	rC   r>   r=   rA   r9   r:   r	   rE   r   )r+   rA   rC   rE   r   r>   s   &&&&&&r%   rT   ÚMultiPartParser.__init__.  sB   € ð %9Ô!Ø,ÔàÒ!Ü3ˆNà,ÔàŠ;Ü—&’&Ð6¼	ÓBˆCàŒØ&Ör(   c               ó    € V ^8„  d   QhRRRR/# )r   Úmessager`   r!   zte.NoReturnr#   )r$   s   "r%   r&   r�   D  s   € ÷ "ñ "˜Cð " Kñ "r(   c                	ó   € \        V4      hr*   )rd   )r+   r…   s   &&r%   ÚfailÚMultiPartParser.failD  s   € Ü˜Ó!Ð!r(   c               ó    € V ^8„  d   QhRRRR/# )r   Úheadersr   r!   r`   r#   )r$   s   "r%   r&   r�   G  s   € ÷ ñ ¨ð °Cñ r(   c                	ó®   € VP                  R 4      pV'       d<   \        V4      ^,          pVP                  RR4      P                  4       pVR9   d   V# R# )úcontent-typeÚcharsetrk   úutf-8>   rl   rŽ   úus-asciiú
iso-8859-1)r[   r   Úlower)r+   rŠ   r   Ú
parametersÚ
ct_charsets   &&   r%   Úget_part_charsetÚ MultiPartParser.get_part_charsetG  sO   € à—{‘{ >Ó2ˆçÜ-¨lÓ;¸AÕ>ˆJØ#Ÿ™¨	°2Ó6×<Ñ<Ó>ˆJð ÐIÔIØ!Ð!ár(   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úeventr   r   r   r!   r"   r#   )r$   s   "r%   r&   r�   V  s$   € ÷ ñ ØðØ1;ðà	ñr(   c                	óæ   € VP                   P                  R 4      p \        VP                   R,          4      pV P                  VVP                  VVR7      pV#   \        \        3 d    ^ p L6i ; i)rŒ   zcontent-length)r   r   r   r    )rŠ   r[   r   ÚKeyErrorrd   rA   r   )r+   r—   r   r   r    Ú	containers   &&&   r%   Ústart_file_streamingÚ$MultiPartParser.start_file_streamingV  s{   € ð —}‘}×(Ñ(¨Ó8ˆð	Ü'¨¯©Ð6FÕ(GÓHˆNð ×'Ñ'Ø!5Ø—^‘^Ø%Ø)ð	 (ó 
ˆ	ð Ðøô œ*Ð%ô 	ØŠNð	ús   �A ÁA0Á/A0c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r]   r"   rj   r<   r    r   r!   z7tuple[MultiDict[str, str], MultiDict[str, FileStorage]]r#   )r$   s   "r%   r&   r�   h  s2   € ÷ @1ñ @1Ø!ð@1Ø-2ð@1ØDNð@1à	@ñ@1r(   c                	ó@  € R p\        VV P                  V P                  R7      p. p. p\        VP                  V P
                  4       EF0  pVP                  V4       VP                  4       p	\        V	\        \        34      '       d   KC  \        V	\        4      '       d   T	p
^ p. pVP                  pEM³\        V	\        4      '       d$   T	p
R pV P                  W“4      pVP                  pEMz\        V	\         4      '       Edd   V P                  e;   Ve7   V\#        V	P$                  4      ,          pW@P                  8”  d   \'        4       hX! V	P$                  4       V	P(                  '       gø   \        X
\        4      '       dY   RP+                  X4      P-                  V P/                  V
P0                  4      R4      pVP                  V
P2                  V34       M‰\4        P6                  ! \4        P8                  \:        ,          X4      pVP=                  ^ 4       VP                  V
P2                  \?        VV
P@                  V
P2                  V
P0                  R7      34       VP                  4       p	EK  	  V PC                  V4      V PC                  V4      3# )N)rC   Ú	max_partsr(   Úreplace)rŠ   )"r   rC   r>   Ú_chunk_iterrw   r   Úreceive_dataÚ
next_eventÚ
isinstancer   r   r   Úappendr   r›   Úwriter   ÚlenÚdatar
   Ú	more_dataÚjoinrx   r”   rŠ   Únamer9   r:   r;   r<   Úseekr   r   rE   )r+   r]   rj   r    Ú
field_sizero   Úfieldsrq   r¨   r—   Úcurrent_partrš   Ú_writeÚvalues   &&&&          r%   r\   ÚMultiPartParser.parseh  s  € ð "&ˆ
ô "ØØ!%×!:Ñ!:Ø×)Ñ)ô
ˆð ˆØˆä §¡¨T×-=Ñ-=×>ˆDØ×Ñ Ô%Ø×%Ñ%Ó'ˆEÜ  ¬´8Ð(<×=Ô=Ü˜e¤U×+Ò+Ø#(�LØ!"�JØ "�IØ&×-Ñ-’FÜ ¤t×,Ò,Ø#(�LØ!%�JØ $× 9Ñ 9¸%Ó P�IØ&Ÿ_™_’FÜ ¤t×,Ó,Ø×0Ñ0Ò<ÀÒAWð #¤c¨%¯*©*£oÕ5˜
à%×(AÑ(AÔAÜ"7Ó"9Ð9á˜5Ÿ:™:Ô&Ø Ÿ?Ÿ?˜?Ü% l´E×:Ò:Ø$'§H¡H¨YÓ$7×$>Ñ$>Ø $× 5Ñ 5°l×6JÑ6JÓ KÈYó%˜Eð #ŸM™M¨<×+<Ñ+<¸eÐ*DÕEä()¯ª¬q¯t©t´E­{¸IÓ(F˜IØ%ŸN™N¨1Ô-Ø!ŸL™Là$0×$5Ñ$5Ü$/Ø(1Ø(4×(=Ñ(=Ø(4×(9Ñ(9Ø0<×0DÑ0Dô	%&ð!"ô
ð ×)Ñ)Ó+“ñ[ ?ð^ �x‰x˜Ó §¡¨%£Ð0Ð0r(   )r   rE   rC   r>   rA   )NNNi   N)
r.   r/   r0   r1   rT   r‡   r”   r›   r\   r2   r#   r(   r%   rm   rm   -  s"   † ÷'õ,"õõ÷$@1ñ @1r(   rm   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rw   zt.Callable[[int], bytes]Úsizer€   r!   zt.Iterator[bytes | None]r#   )r$   s   "r%   r&   r&   «  s#   € ÷ ñ Ð.ð °cð Ð>Vñ r(   c              #  óF   "  €  V ! V4      pV'       g   MVx € K  Rx € R# 5i)z‚Read data in chunks for multipart/form-data parsing. Stop if no data is read.
Yield ``None`` at the end to signal end of parsing.
Nr#   )rw   r´   r¨   s   && r%   r¡   r¡   «  s#   é € ð Ù�D‹zˆçØàŒ
à
„Jùs   ‚!”!r*   r{   )4Ú
__future__r   Útypingr9   Úior   Úurllib.parser   Ú	_internalr   Údatastructuresr   r   r	   Ú
exceptionsr
   Úhttpr   Úsansio.multipartr   r   r   r   r   r   Úwsgir   r   Útempfiler   ÚImportErrorr   ÚTYPE_CHECKINGÚteÚ_typeshed.wsgir   Útupler;   r<   r`   rI   ÚProtocolr   ÚTypeVarÚCallableÚAnyr3   r=   rM   rK   rm   r¡   r#   r(   r%   Ú<module>rÊ      s  ðÝ "ã Ý Ý "å !Ý 'Ý #Ý %Ý -Ý &Ý "Ý &Ý #Ý "Ý .Ý &Ý $Ý "ð Ý-ð ‡?‡?€?Ûå.àØ	�‰ˆU��Y˜s C˜xÕ(¨)°C¸Ð4DÕ*EÐEõ€Nô˜Ÿ™ô ð ‡I‚Iˆc˜Ÿ™ C¨¯© JÕ/Ô0€÷ñ C"ð "&÷C"ð C"÷L_3ñ _3÷D{1ñ {1÷|øðc ô  Ý&àÒð ús   Á,D3 Ä3EÅE