+
    AžÀj@  ã                  ó0  € ^ RI Ht ^ RI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R
 R llt]P                  ! R]P                   ]P"                  ,          R7      t]P                  ! R4      tR R ltRR R llt^RIHt R# )é    )ÚannotationsN)Údatetime)Ú
_dt_as_utc)Úgenerate_etag)Ú
parse_date)Úparse_etags)Úparse_if_range_header)Úunquote_etagc               ó@   € V ^8„  d   QhRRRRRRRRRRRRRR	R
RRRRR/
# )é   Ú
http_rangeú
str | NoneÚhttp_if_rangeÚhttp_if_modified_sinceÚhttp_if_none_matchÚhttp_if_matchÚetagÚdatazbytes | NoneÚlast_modifiedzdatetime | str | NoneÚignore_if_rangeÚboolÚreturn© )Úformats   "Úh/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.14/site-packages/werkzeug/sansio/http.pyÚ__annotate__r      sx   € ÷ Lñ LØðLàðLð 'ðLð #ð	Lð
 ðLð ðLð ðLð )ðLð ðLð 
ñLó    c	                ó¬  € Vf   Ve   R\        V4       R2pMVe   \        R4      hRp	\        V\        4      '       d   \	        V4      pVe   \        VP                  ^ R7      4      pRp
V'       g   V e   \        V4      p
V
e   V
P                  e   V
P                  pM\	        V4      pV'       d   V'       d	   W{8:  d   Rp	V'       dƒ   \        V4      w  r\V
e%   V
P                  e   V
P                  V8H  p	V	'       * # \        V4      pV'       d   VP                  V4      p	\        V4      pV'       d   VP                  V4      '       * p	V	'       * # )a×  Convenience method for conditional requests.
:param http_range: Range HTTP header
:param http_if_range: If-Range HTTP header
:param http_if_modified_since: If-Modified-Since HTTP header
:param http_if_none_match: If-None-Match HTTP header
:param http_if_match: If-Match HTTP header
:param etag: the etag for the response for comparison.
:param data: or alternatively the data of the response to automatically
             generate an etag using :func:`generate_etag`.
:param last_modified: an optional date of the last modification.
:param ignore_if_range: If `False`, `If-Range` header will be taken into
                        account.
:return: `True` if the resource was modified, otherwise `False`.

.. versionadded:: 2.2
NÚ"zboth data and etag givenF)ÚmicrosecondT)r   Ú	TypeErrorÚ
isinstanceÚstrr   r   Úreplacer	   Údater
   r   r   Úcontains_weakÚ	is_strong)r   r   r   r   r   r   r   r   r   Ú
unmodifiedÚif_rangeÚmodified_sinceÚ_Úif_none_matchÚif_matchs   &&&&&&&&&      r   Úis_resource_modifiedr.      s=  € ð6 ‚|˜Ò(Ø”= Ó&Ð' qÐ)‰Ø	Ò	ÜÐ2Ó3Ð3à€JÜ�-¤×%Ò%Ü" =Ó1ˆð Ò Ü" =×#8Ñ#8ÀQÐ#8Ó#GÓHˆà€Hß˜zÒ5ô )¨Ó7ˆàÒ §¡Ò 9Ø*2¯-©-‰ä#Ð$:Ó;ˆçŸ-¨MÔ,KØˆ
çÜ˜tÓ$‰ˆàÒ H§M¡MÒ$=Ø!Ÿ™¨$Ñ.ˆJð  Œ>Ðô (Ð(:Ó;ˆMßð +×8Ñ8¸Ó>�
ô
 # =Ó1ˆHßØ!)×!3Ñ!3°DÓ!9Ô9�
àŒ>Ðr   ah  
    [ \t]*  # ignore leading space
    ([^ \t=";]+)  # key
    (?:[ \t]*=[ \t]*  # optional =value, ignoring invalid space
        (
            "(?:[^\\"]|\\.)*"  # quoted value with backslash escapes
        |
            [^ \t";]*  # token value
        )
    )?
    [ \t]*  # ignore trailing space
    (?:;|\Z)  # only if followed by semicolon or end
    )Úflagss   \\([0-3][0-7]{2}|.)c               ó    € V ^8„  d   QhRRRR/# )r   Úmzt.Match[bytes]r   Úbytesr   )r   s   "r   r   r   q   s   € ÷ (ñ (˜~ð (°%ñ (r   c                ó€   € V P                  ^4      p\        V4      ^8X  d   V# \        V^4      P                  ^R4      # )é   Úbig)ÚgroupÚlenÚintÚto_bytes)r1   Úvs   & r   Ú_cookie_unslash_replacer;   q   s8   € Ø	�‰�‹
€Aä
ˆ1ƒv�„{Øˆäˆq�!‹9×Ñ˜a Ó'Ð'r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úcookier   Úclsz#type[ds.MultiDict[str, str]] | Noner   zds.MultiDict[str, str]r   )r   s   "r   r   r   z   s&   € ÷ 3ñ 3Øð3à	,ð3ð ñ3r   c                óN  € Vf&   \         P                  ! R\        P                  4      pV '       g   V! 4       # . p^ p \        P                  W4      ;pf$   V P                  RV4      ^,           ;p^ 8X  d   M§K=  VP                  4       w  rVVP                  4       pVf   RpVP                  R4      '       dS   VP                  R4      '       d<   \        P                  \        V^R P                  4       4      P                  RR7      pVP!                  WV34       Kâ  V! V4      # )aý  Parse a cookie from a string.

The same key can be provided multiple times, the values are stored
in-order. The default :class:`MultiDict` will have the first value
first, and all values can be retrieved with
:meth:`MultiDict.getlist`.

:param cookie: The cookie header as a string.
:param cls: A dict-like class to store the parsed cookies in.
    Defaults to :class:`MultiDict`.

.. versionchanged:: 3.0
    Passing bytes, and the ``charset`` and ``errors`` parameters, were removed.

.. versionadded:: 2.2
ztype[ds.MultiDict[str, str]]Ú;Ú r   r$   )Úerrorséÿÿÿÿ)ÚtÚcastÚdsÚ	MultiDictÚ
_cookie_reÚmatchÚfindÚgroupsÚendÚ
startswithÚendswithÚ_cookie_unslash_reÚsubr;   ÚencodeÚdecodeÚappend)r=   r>   ÚoutÚposr1   ÚckÚcvs   &&     r   Úparse_cookierX   z   s÷   € ð( ‚{Ü�fŠfÐ3´R·\±\ÓBˆçÙ‹uˆà
€CØ
€Cà
Ü×!Ñ! &Ó.Ð.ˆAÒ7à—{‘{ 3¨Ó,¨qÕ0Ð0�°QÔ6Øáà—‘“‰ˆØ�e‰e‹gˆàŠ:ØˆBà�=‰=˜×Ò "§+¡+¨c×"2Ò"2ä#×'Ñ'Ü'¨¨A¨b¨¯©Ó):óç‰f˜IˆfÓ&ð ð 	�
‰
�B�8Öáˆs‹8€Or   )Údatastructures)	NNNNNNNNT)NN)Ú
__future__r   ÚreÚtypingrD   r   Ú	_internalr   Úhttpr   r   r   r	   r
   r.   ÚcompileÚASCIIÚVERBOSErH   rO   r;   rX   rA   rY   rF   r   r   r   Ú<module>rb      ss   ðÝ "ã 	Û Ý å "Ý  Ý Ý Ý (Ý ÷Lð^ �ZŠZðð �(‰(�R—Z‘ZÕ
ô€
ð  —Z’ZÐ 7Ó8Ð õ(÷3÷n $r   