+
    Nj                    T   ^ 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 ]P                  ! R
4      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_etagz&([Ww]/)?(?:"(.*?)"|(.*?))(?:\s*,\s*|$)c               @    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   "V/data/cameron/venvs/serve_omidlab/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   \        V4      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                  4      P                  V4      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
Nzboth data and etag givenF)microsecondT)r   	TypeError
isinstancestrr   r   replacer	   dater
   r   r   contains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 |(T"		233J-%%"=1  "=#8#8Q#8#GHHz5 )7 9*2--#$:;-M,K
t$HMM$=$X]]3<<TBJ  > ((:;M +88>

 #=1H!)!3!3D!99
>r   zr
    ([^=;]*)
    (?:\s*=\s*
      (
        "(?:[^\\"]|\\.)*"
      |
        .*?
      )
    )?
    \s*;\s*
    )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
1v{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&     , ,,	,, ,r   c                   Vf&   \         P                  ! R\        P                  4      pV '       g   V! 4       # V  R2p . p\        P                  V 4       F  w  r4VP                  4       pVP                  4       pV'       g   K/  \        V4      ^8  d\   V^ ,          VR,          u;8X  d   R8X  d?   M M;\        P                  \        V^R P                  4       4      P                  RR7      pVP                  W43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#   )errors)tcastds	MultiDict
_cookie_refindallstripr7   _cookie_unslash_resubr;   encodedecodeappend)r=   r>   outckcvs   &&   r   parse_cookierS   z   s    ( {ff3R\\Buxq\F
C$$V,XXZXXZr7a<BqERV2s2#'''Ab):fIf&  	

B8 - s8Or   )datastructures)	NNNNNNNNT)NN)
__future__r   retypingrD   r   	_internalr   httpr   r   r   r	   r
   compile_etag_rer.   ASCIIVERBOSErH   rK   r;   rS    rT   rF   r   r   r   <module>r_      s    " 	   "     ( ::?@L^ ZZ
 ((RZZ

 ZZ 78 (,` $r   