ó
    _š‘hce  ã                   ó¼  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
  S SKJr  S SKJr  S SKJrJr  S SKJr  S SKJrJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJ r   S SK!J"r"  S SK#J$r$  S SK%J&r&J'r'  S SK(J)r)  \)" S\RT                  5      r+ " S S\ 5      r, " S S\-5      r. " S S5      r/ " S S\/5      r0 " S S\/5      r1 " S S\15      r2 " S S\05      r3 " S  S!\35      r4 " S" S#\35      r5 " S$ S%\05      r6 " S& S'\05      r7 " S( S)\05      r8 " S* S+\05      r9 " S, S-\05      r: " S. S/\05      r; " S0 S1\05      r< " S2 S3\=5      r> " S4 S5\05      r?g)6é    N)ÚHeader)Ú	responses)Úurlsplit)Úasync_to_syncÚsync_to_async)Úsettings)ÚsignalsÚsigning)ÚDisallowedRedirect)ÚDjangoJSONEncoder)ÚSimpleCookie)Útimezone)ÚCaseInsensitiveMapping)Ú
iri_to_uri)Úcached_property)Úcontent_disposition_headerÚ	http_date)Ú_lazy_re_compilez ;\s*charset=(?P<charset>[^\s;]+)c                   ó@   • \ rS rSrS rS
S jrS rS rSS jrS r	S	r
g)ÚResponseHeadersé!   c                 ó^   • 0 U l         U(       a  U R                  U5       H	  u  p#X0U'   M     gg)zU
Populate the initial data using __setitem__ to ensure values are
correctly encoded.
N)Ú_storeÚ_unpack_items)ÚselfÚdataÚheaderÚvalues       ÚXC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\django/http/response.pyÚ__init__ÚResponseHeaders.__init__"   s1   € ð
 ˆŒÞØ!%×!3Ñ!3°DÖ!9‘�Ø$�V“ò ":ð ó    c                 óz  •  [        U[        5      (       a  UR                  U5        OC[        U[        5      (       a  UR	                  U5      nO[        U5      nUR                  U5        SU;   d  SU;   a  [        SU< S35      e U$ ! [         a¥  n[        U[        5      (       a  SU;   d'  SU;   d!  [        U[        5      (       a  SU;   d  SU;   a  [        SU< S35      UeU(       a-  [        US[        R                  S9R                  5       n S
nAU$ U=R                  S	U-  -  sl
        e S
nAff = f)zÉ
Convert headers key/value to ascii/latin-1 native strings.
`charset` must be 'ascii' or 'latin-1'. If `mime_encode` is True and
`value` can't be represented in the given charset, apply MIME-encoding.
Ú
Úz*Header values can't contain newlines (got Ú)ó   
ó   úutf-8)Ú
maxlinelenz,, HTTP response headers must be in %s formatN)Ú
isinstanceÚstrÚencodeÚbytesÚdecodeÚBadHeaderErrorÚUnicodeErrorr   ÚsysÚmaxsizeÚreason)r   r   ÚcharsetÚmime_encodeÚes        r   Ú_convert_to_charsetÚ#ResponseHeaders._convert_to_charset,   s$  € ð	Ü˜%¤×%Ñ%à—‘˜WÕ%Ü˜E¤5×)Ñ)àŸ™ WÓ-‘ä˜E›
�à—‘˜WÔ%Ø�u‹} ¨£Ü$Ø@ÀÁ	ÈÐKóð ð !.ð( ˆøô! ó 	ô
 ˜5¤%×(Ñ(¨e°u«nÀÈÃÜ˜5¤#×&Ñ&¨D°E«M¸TÀU»]ä$Ø@ÀÁ	ÈÐKóàðö Ü˜u g¼#¿+¹+ÑF×MÑMÓO”ð ˆð —’ÐJÈWÑTÑT•Øûð	ús   ‚BB Â
D:ÂBD5ÄD5Ä5D:c                 ó&   • U R                  U5        g ©N)Úpop)r   Úkeys     r   Ú__delitem__ÚResponseHeaders.__delitem__S   s   € Ø�‰��r"   c                 ó†   • U R                  US5      nU R                  USSS9nX4U R                  UR                  5       '   g )NÚasciiúlatin-1T)r6   )r8   r   Úlower©r   r=   r   s      r   Ú__setitem__ÚResponseHeaders.__setitem__V   sA   € Ø×&Ñ& s¨GÓ4ˆØ×(Ñ(¨°	ÀtÐ(ÐLˆØ$' <ˆ�‰�C—I‘I“KÒ r"   Nc                 óV   • U R                   R                  UR                  5       U5      $ r;   )r   r<   rC   )r   r=   Údefaults      r   r<   ÚResponseHeaders.pop[   s   € Ø�{‰{�‰˜sŸy™y›{¨GÓ4Ð4r"   c                 ó   • X;  a  X U'   g g r;   © rD   s      r   Ú
setdefaultÚResponseHeaders.setdefault^   s   € Ø‹?Ø�ŠIð r"   )r   ©Fr;   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r    r8   r>   rE   r<   rL   Ú__static_attributes__rK   r"   r   r   r   !   s!   † ò%ô%òNò0ô
5õr"   r   c                   ó   • \ rS rSrSrg)r0   éc   rK   N©rO   rP   rQ   rR   rS   rK   r"   r   r0   r0   c   ó   † Úr"   r0   c                   ó@  • \ rS rSrSrSr S S jr\S 5       r\R                  S 5       r\S 5       r
\
R                  S	 5       r
S
 r\r\S 5       rS rS rS rS r\rS rS!S jr        S"S jrS rS#S jrS$S jrS rS rS rS rS rS rS rS r S r!Sr"g)%ÚHttpResponseBaseég   zÆ
An HTTP response base class with dictionary-accessed headers.

This class doesn't handle content. It should not be used directly.
Use the HttpResponse and StreamingHttpResponse subclasses instead.
éÈ   Nc                 ó¸  • [        U5      U l        X@l        SU R                  ;  a!  Uc  SU R                   3nXR                  S'   OU(       a  [	        S5      e/ U l        S U l        [        5       U l        SU l	        Ub5   [        U5      U l        SU R                  s=::  a  S::  d  O  [	        S5      eX0l        g ! [        [        4 a    [        S5      ef = f)	NúContent-Typeztext/html; charset=zX'headers' must not contain 'Content-Type' when the 'content_type' parameter is provided.Fz$HTTP status code must be an integer.éd   iW  z4HTTP status code must be an integer from 100 to 599.)r   ÚheadersÚ_charsetr5   Ú
ValueErrorÚ_resource_closersÚ_handler_classr   ÚcookiesÚclosedÚintÚstatus_codeÚ	TypeErrorÚ_reason_phrase)r   Úcontent_typeÚstatusr4   r5   r_   s         r   r    ÚHttpResponseBase.__init__q   sß   € ô ' wÓ/ˆŒØŒØ §¡Ó-ØÑ#Ø!4°T·\±\°NÐC�Ø+7�L‰L˜Ò(ÞÜð8óð ð "$ˆÔð #ˆÔÜ#“~ˆŒØˆŒØÑðHÜ#& v£;�Ô ð ˜$×*Ñ*Õ1¨cÕ1Ü Ð!WÓXÐXØ$Õøô ¤	Ð*ó HÜÐ FÓGÐGðHús   ÂB= Â=Cc                 óv   • U R                   b  U R                   $ [        R                  " U R                  S5      $ )NzUnknown Status Code)ri   r   Úgetrg   ©r   s    r   Úreason_phraseÚHttpResponseBase.reason_phrase�   s4   € à×ÑÑ*Ø×&Ñ&Ð&ô �}Š}˜T×-Ñ-Ð/DÓEÐEr"   c                 ó   • Xl         g r;   )ri   ©r   r   s     r   rp   rq   —   s   € à#Õr"   c                 óú   • U R                   b  U R                   $ U R                  R                  S5      =n(       a1  [        R	                  U5      =n(       a  US   R                  SS5      $ [        R                  $ )Nr]   r5   Ú"Ú )r`   r_   rn   Ú_charset_from_content_type_reÚsearchÚreplacer   ÚDEFAULT_CHARSET)r   rj   Úmatcheds      r   r5   ÚHttpResponseBase.charset›   sn   € à�=‰=Ñ$Ø—=‘=Ð ð  Ÿ<™<×+Ñ+¨NÓ;Ð;ˆ<Õ;Ü7×>Ñ>¸|ÓLÐLˆwÕLð
 ˜yÑ)×1Ñ1°#°rÓ:Ð:Ü×'Ñ'Ð'r"   c                 ó   • Xl         g r;   )r`   rs   s     r   r5   r|   ª   s   € à�r"   c           
      óÒ   • SR                  U R                  R                  5        VVs/ s H+  u  pUR                  S5      S-   UR                  S5      -   PM-     snn5      $ s  snnf )zHTTP headers as a bytestring.s   
rA   s   : rB   )Újoinr_   Úitemsr-   rD   s      r   Úserialize_headersÚ"HttpResponseBase.serialize_headers®   s`   € à�|‰|ð #'§,¡,×"4Ñ"4Ô"6ôâ"6‘J�Cð —
‘
˜7Ó# eÑ+¨e¯l©l¸9Ó.EÔEÙ"6òó
ð 	
ùós   ©2A#
c                 óJ   • SU R                   ;   a  SU R                   S   -  $ S$ )Nr]   z, "%s"rv   ©r_   ro   s    r   Ú_content_type_for_reprÚ'HttpResponseBase._content_type_for_repr¹   s2   € ð  §¡Ó-ð �t—|‘| NÑ3Ñ3ð	
ð ð	
r"   c                 ó    • X R                   U'   g r;   r„   )r   r   r   s      r   rE   ÚHttpResponseBase.__setitem__Á   s   € Ø$�‰�VÒr"   c                 ó   • U R                   U	 g r;   r„   ©r   r   s     r   r>   ÚHttpResponseBase.__delitem__Ä   s   € Ø�L‰L˜Ñ r"   c                 ó    • U R                   U   $ r;   r„   rŠ   s     r   Ú__getitem__ÚHttpResponseBase.__getitem__Ç   s   € Ø�|‰|˜FÑ#Ð#r"   c                 ó   • XR                   ;   $ )z$Case-insensitive check for a header.r„   rŠ   s     r   Ú
has_headerÚHttpResponseBase.has_headerÊ   s   € àŸ™Ñ%Ð%r"   c                 ó6   • U R                   R                  5       $ r;   )r_   r€   ro   s    r   r€   ÚHttpResponseBase.itemsÐ   s   € Ø�|‰|×!Ñ!Ó#Ð#r"   c                 ó8   • U R                   R                  X5      $ r;   )r_   rn   )r   r   Ú	alternates      r   rn   ÚHttpResponseBase.getÓ   s   € Ø�|‰|×Ñ Ó2Ð2r"   c
                 ó|  • X R                   U'   UGb  [        U[        R                  5      (       aÐ  [        R                  " U5      (       a/  [        R
                  " U[        R                  R                  5      nU[        R                  R                  [        R                  R                  S9-
  n
U
[        R                  " SS9-  n
SnUb  [        S5      e[        SU
R                  S-  U
R                  -   5      nO$X@R                   U   S'   OS	U R                   U   S'   Ub‚  [        U[        R                  5      (       a  UR                  5       n[        U5      U R                   U   S
'   U(       d1  [        [         R                   " 5       U-   5      U R                   U   S'   Ub  XPR                   U   S'   Ub  X`R                   U   S'   U(       a  SU R                   U   S'   U(       a  SU R                   U   S'   U	(       a1  U	R#                  5       S;  a  [        S5      eX�R                   U   S'   gg)aI  
Set a cookie.

``expires`` can be:
- a string in the correct format,
- a naive ``datetime.datetime`` object in UTC,
- an aware ``datetime.datetime`` object in any time zone.
If it is a ``datetime.datetime`` object then calculate ``max_age``.

``max_age`` can be:
- int/float specifying seconds,
- ``datetime.timedelta`` object.
N)Útzé   )Úsecondsz/'expires' and 'max_age' can't be used together.r   i€Q Úexpiresrv   zmax-ageÚpathÚdomainTÚsecureÚhttponly)ÚlaxÚnoneÚstrictz,samesite must be "lax", "none", or "strict".Úsamesite)rd   r+   Údatetimer   Úis_naiveÚ
make_awareÚutcÚnowÚ	timedeltara   ÚmaxÚdaysrš   Útotal_secondsrf   r   ÚtimerC   )r   r=   r   Úmax_ager›   rœ   r�   rž   rŸ   r£   Údeltas              r   Ú
set_cookieÚHttpResponseBase.set_cookieÖ   så  € ð2 "�‰�SÑØÒÜ˜'¤8×#4Ñ#4×5Ñ5Ü×$Ò$ W×-Ñ-Ü&×1Ò1°'¼8×;LÑ;L×;PÑ;PÓQ�GØ¤(×"3Ñ"3×"7Ñ"7¼8×;LÑ;L×;PÑ;PÐ"7Ð"QÑQ�ð œ×+Ò+°AÑ6Ñ6�à�ØÑ&Ü$Ð%VÓWÐWÜ˜a §¡¨eÑ!3°e·m±mÑ!CÓD‘à/6—‘˜SÑ! )Ò,à+-ˆD�L‰L˜Ñ˜iÑ(ØÑÜ˜'¤8×#5Ñ#5×6Ñ6Ø!×/Ñ/Ó1�Ü+.¨w«<ˆD�L‰L˜Ñ˜iÑ(æÜ/8¼¿º»ÀwÑ9NÓ/O�—‘˜SÑ! )Ñ,ØÑØ(,�L‰L˜Ñ˜fÑ%ØÑØ*0�L‰L˜Ñ˜hÑ'ÞØ*.ˆD�L‰L˜Ñ˜hÑ'ÞØ,0ˆD�L‰L˜Ñ˜jÑ)ÞØ�~‰~ÓÐ'@Ó@Ü Ð!OÓPÐPØ,4�L‰L˜Ñ˜jÒ)ð r"   c                 ó:   • U R                   R                  X5        g)z,Set a header unless it has already been set.N)r_   rL   rD   s      r   rL   ÚHttpResponseBase.setdefault  s   € à�‰×Ñ Õ+r"   c                 ór   • [         R                  " X-   S9R                  U5      nU R                  " X40 UD6$ )N)Úsalt)r
   Úget_cookie_signerÚsignr°   )r   r=   r   rµ   Úkwargss        r   Úset_signed_cookieÚ"HttpResponseBase.set_signed_cookie  s3   € Ü×)Ò)¨s©zÑ:×?Ñ?ÀÓFˆØ�Š˜sÑ4¨VÑ4Ð4r"   c           
      ó–   • UR                  S5      =(       d    U=(       a    UR                  5       S:H  nU R                  USUUUSUS9  g )N)z	__Secure-z__Host-r¡   r   zThu, 01 Jan 1970 00:00:00 GMT)r®   rœ   r�   rž   r›   r£   )Ú
startswithrC   r°   )r   r=   rœ   r�   r£   rž   s         r   Údelete_cookieÚHttpResponseBase.delete_cookie  sW   € ð
 —‘Ð 8Ó9÷ 
Ø×3˜Ÿ™Ó)¨VÑ3ð 	ð 	�‰ØØØØØØ3Øð 	ò 	
r"   c                 ó  • [        U[        [        45      (       a  [        U5      $ [        U[        5      (       a$  [        UR	                  U R
                  5      5      $ [        U5      R	                  U R
                  5      $ )z=Turn a value into a bytestring encoded in the output charset.)r+   r.   Ú
memoryviewr,   r-   r5   rs   s     r   Ú
make_bytesÚHttpResponseBase.make_bytes2  s^   € ô �eœe¤ZÐ0×1Ñ1Ü˜“<ÐÜ�eœS×!Ñ!Ü˜Ÿ™ d§l¡lÓ3Ó4Ð4ä�5‹z× Ñ  §¡Ó.Ð.r"   c                 óì   • U R                    H  n U" 5         M     U R                   R                  5         SU l        [        R
                  R                  U R                  S9  g ! [         a     Me  f = f)NT)Úsender)rb   Ú	ExceptionÚclearre   r	   Úrequest_finishedÚsendrc   )r   Úclosers     r   ÚcloseÚHttpResponseBase.closeG  sh   € Ø×,Ô,ˆFðÙ–ñ -ð 	×Ñ×$Ñ$Ô&ØˆŒÜ× Ñ ×%Ñ%¨T×-@Ñ-@Ð%ÒAøô ó Úðús   ‘A%Á%
A3Á2A3c                 óF   • [        SU R                  R                  -  5      e©Nz This %s instance is not writable©ÚOSErrorÚ	__class__rO   ©r   Úcontents     r   ÚwriteÚHttpResponseBase.writeR  ó   € ÜÐ8¸4¿>¹>×;RÑ;RÑRÓSÐSr"   c                 ó   • g r;   rK   ro   s    r   ÚflushÚHttpResponseBase.flushU  s   € Ør"   c                 óF   • [        SU R                  R                  -  5      e)Nz)This %s instance cannot tell its positionrÎ   ro   s    r   ÚtellÚHttpResponseBase.tellX  s!   € ÜØ7¸$¿.¹.×:QÑ:QÑQó
ð 	
r"   c                 ó   • g©NFrK   ro   s    r   ÚreadableÚHttpResponseBase.readable`  ó   € Ør"   c                 ó   • grÝ   rK   ro   s    r   ÚseekableÚHttpResponseBase.seekablec  rà   r"   c                 ó   • grÝ   rK   ro   s    r   ÚwritableÚHttpResponseBase.writablef  rà   r"   c                 óF   • [        SU R                  R                  -  5      erÍ   rÎ   )r   Úliness     r   Ú
writelinesÚHttpResponseBase.writelinesi  rÕ   r"   )r`   rc   ri   rb   re   rd   r_   rg   )NNNNNr;   )rv   NNÚ/NFFN)rv   )rë   NN)#rO   rP   rQ   rR   Ú__doc__rg   r    Úpropertyrp   Úsetterr5   r�   Ú	__bytes__r…   rE   r>   r�   r�   Ú__contains__r€   rn   r°   rL   r¹   r½   rÁ   rÊ   rÓ   r×   rÚ   rÞ   râ   rå   ré   rS   rK   r"   r   rY   rY   g   s  † ñð €Kð RVô%ð< ñFó ðFð ×Ññ$ó ð$ð ñ(ó ð(ð ‡^�^ñó ðò
ð "€Iàñ
ó ð
ò%ò!ò$ò&ð €Lò$ô3ð ØØØØØØØô>5ò@,ô5ô
ò(/ò*	BòTòò
òòòõTr"   rY   c                   ó¬   ^ • \ rS rSrSrSrSU 4S jjrS rS r\r	\
S 5       r\R                  S 5       r\S	 5       rS
 rS rS rS rS rS rSrU =r$ )ÚHttpResponseim  zg
An HTTP response class with a string as content.

This content can be read, appended to, or replaced.
Fc                 ó2   >• [         TU ]  " U0 UD6  Xl        g r;   )Úsuperr    rÒ   )r   rÒ   Úargsr¸   rÐ   s       €r   r    ÚHttpResponse.__init__v  s   ø€ Ü‰Ò˜$Ð) &Ò)à�r"   c                 ód   • SU R                   R                  U R                  U R                  S.-  $ ©Nz5<%(cls)s status_code=%(status_code)d%(content_type)s>)Úclsrg   rj   ©rÐ   rO   rg   r…   ro   s    r   Ú__repr__ÚHttpResponse.__repr__{  s4   € ØFØ—>‘>×*Ñ*Ø×+Ñ+Ø ×7Ñ7ñJ
ñ 
ð 	
r"   c                 óB   • U R                  5       S-   U R                  -   $ )z6Full HTTP message, including headers, as a bytestring.s   

)r�   rÒ   ro   s    r   Ú	serializeÚHttpResponse.serialize‚  s   € à×%Ñ%Ó'¨+Ñ5¸¿¹ÑDÐDr"   c                 ó8   • SR                  U R                  5      $ ©Nr"   )r   Ú
_containerro   s    r   rÒ   ÚHttpResponse.contentˆ  s   € à�x‰x˜Ÿ™Ó(Ð(r"   c                 óp  ^ • [        US5      (       a_  [        U[        [        [        45      (       d?  SR                  U 4S jU 5       5      n[        US5      (       a   UR                  5         OOT R                  U5      nU/T l	        T R                  R                  SS 5        g ! [         a     N1f = f)NÚ__iter__r"   c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7fr;   ©rÁ   )Ú.0Úchunkr   s     €r   Ú	<genexpr>Ú'HttpResponse.content.<locals>.<genexpr>’  s   øé € ÐIÂ5¸%˜tŸ™¨u×5Ð5Â5ùs   ƒ!rÊ   Útext)Úhasattrr+   r.   rÀ   r,   r   rÊ   rÅ   rÁ   r  Ú__dict__r<   )r   r   rÒ   s   `  r   rÒ   r  Œ  s¡   ø€ ô �5˜*×%Ñ%¬jØ”Eœ:¤sÐ+÷/
ñ /
ð —h‘hÔIÁ5ÓIÓIˆGÜ�u˜g×&Ñ&ðØ—K‘K•Mð 'ð —o‘o eÓ,ˆGà"˜)ˆŒØ�‰×Ñ˜& $Õ'øô !ó Ùðús   Á B( Â(
B5Â4B5c                 ó^   • U R                   R                  U R                  =(       d    S5      $ )Nr)   )rÒ   r/   r5   ro   s    r   r  ÚHttpResponse.textž  s    € à�|‰|×"Ñ" 4§<¡<×#:°7Ó;Ð;r"   c                 ó,   • [        U R                  5      $ r;   )Úiterr  ro   s    r   r  ÚHttpResponse.__iter__¢  s   € Ü�D—O‘OÓ$Ð$r"   c                 óX   • U R                   R                  U R                  U5      5        g r;   )r  ÚappendrÁ   rÑ   s     r   rÓ   ÚHttpResponse.write¥  s   € Ø�‰×Ñ˜tŸ™¨wÓ7Õ8r"   c                 ó,   • [        U R                  5      $ r;   )ÚlenrÒ   ro   s    r   rÚ   ÚHttpResponse.tell¨  s   € Ü�4—<‘<Ó Ð r"   c                 ó   • U R                   $ r;   )rÒ   ro   s    r   ÚgetvalueÚHttpResponse.getvalue«  s   € Ø�|‰|Ðr"   c                 ó   • g)NTrK   ro   s    r   rå   ÚHttpResponse.writable®  s   € Ør"   c                 ó8   • U H  nU R                  U5        M     g r;   )rÓ   )r   rè   Úlines      r   ré   ÚHttpResponse.writelines±  s   € ÛˆDØ�J‰J�tÖò r"   )r  rÒ   )r"   )rO   rP   rQ   rR   rì   Ú	streamingr    rû   rþ   rï   rí   rÒ   rî   r   r  r  rÓ   rÚ   r  rå   ré   rS   Ú__classcell__©rÐ   s   @r   rò   rò   m  s‡   ø† ñð €I÷ò

òEð €Iàñ)ó ð)ð ‡^�^ñ(ó ð(ð" ñ<ó ð<ò%ò9ò!òò÷ð r"   rò   c                   ó¦   ^ • \ rS rSrSrSrSU 4S jjrS r\S 5       r	\S 5       r
\S 5       r\R                  S	 5       rS
 rS rS rS rSrU =r$ )ÚStreamingHttpResponsei¶  a  
A streaming HTTP response class with an iterator as content.

This should only be iterated once, when the response is streamed to the
client. However, it can be appended to or replaced with a new iterator
that wraps the original content (or yields entirely new content).
Tc                 ó2   >• [         TU ]  " U0 UD6  Xl        g r;   )rô   r    Ústreaming_content)r   r(  rõ   r¸   rÐ   s       €r   r    ÚStreamingHttpResponse.__init__Á  s   ø€ Ü‰Ò˜$Ð) &Ò)ð "3Õr"   c                 ód   • SU R                   R                  U R                  U R                  S.-  $ rø   )rÐ   rQ   rg   r…   ro   s    r   rû   ÚStreamingHttpResponse.__repr__Ç  s4   € ØFØ—>‘>×.Ñ.Ø×+Ñ+Ø ×7Ñ7ñJ
ñ 
ð 	
r"   c                 óF   • [        SU R                  R                  -  5      e)NzMThis %s instance has no `content` attribute. Use `streaming_content` instead.©ÚAttributeErrorrÐ   rO   ro   s    r   rÒ   ÚStreamingHttpResponse.contentÎ  s'   € äð+Ø-1¯^©^×-DÑ-DñEó
ð 	
r"   c                 óF   • [        SU R                  R                  -  5      e)Nz)This %s instance has no `text` attribute.r-  ro   s    r   r  ÚStreamingHttpResponse.textÕ  s!   € äØ7¸$¿.¹.×:QÑ:QÑQó
ð 	
r"   c                 óœ   ^ ^• T R                   (       a  T R                  mUU 4S jnU" 5       $ [        T R                  T R                  5      $ )Nc                 óV   >#   • T  S h  v•N n TR                  U 5      7v •  M   N
 g 7fr;   r  )ÚpartÚ	_iteratorr   s    €€r   ÚawrapperÚ9StreamingHttpResponse.streaming_content.<locals>.awrapperâ  s&   øé € Ù"+÷ 0˜$ØŸ/™/¨$Ó/Õ/ñ0¡)ùs   ƒ)†'Š%‹'Ž)¥'§))Úis_asyncr5  ÚmaprÁ   )r   r6  r5  s   ` @r   r(  Ú'StreamingHttpResponse.streaming_contentÛ  s9   ù€ à�=�=ð Ÿ™ˆIö0ñ “:Ðä�t—‘¨¯©Ó7Ð7r"   c                 ó&   • U R                  U5        g r;   )Ú_set_streaming_contentrs   s     r   r(  r:  ê  s   € à×#Ñ# EÕ*r"   c                 óð   •  [        U5      U l        SU l        [        US5      (       a&  U R                  R                  UR                  5        g g ! [         a    [	        U5      U l        SU l         N[f = f)NFTrÊ   )	r  r5  r8  rh   Úaiterr  rb   r  rÊ   rs   s     r   r<  Ú,StreamingHttpResponse._set_streaming_contentî  sh   € ð	!Ü! %›[ˆDŒNØ!ˆDŒMô �5˜'×"Ñ"Ø×"Ñ"×)Ñ)¨%¯+©+Õ6ð #øô ó 	!Ü" 5›\ˆDŒNØ ˆDŽMð	!ús   ‚A Á!A5Á4A5c           	      óø   •  [        U R                  5      $ ! [         aX    [        R                  " S[
        SS9  S n[        U R                  [        [        U5      " U R                  5      5      5      s $ f = f)NzƒStreamingHttpResponse must consume asynchronous iterators in order to serve them synchronously. Use a synchronous iterator instead.é   ©Ú
stacklevelc              “   óT   #   • / nU   S h  v•N nUR                  U5        M   N
 U$ 7fr;   )r  )r5  Úas_listr	  s      r   Úto_listÚ/StreamingHttpResponse.__iter__.<locals>.to_list  s,   é € Ø�Ù#,÷ *˜%Ø—N‘N 5Ö)ñ* 9à�ùs   ‚(‡%‹#Œ%�(£%¥()
r  r(  rh   ÚwarningsÚwarnÚWarningr9  rÁ   r   r5  )r   rF  s     r   r  ÚStreamingHttpResponse.__iter__ù  sm   € ð	VÜ˜×.Ñ.Ó/Ð/øÜó 	VÜ�MŠMðPäØò	òô �t—‘¬¬]¸7Ô-CÀDÇNÁNÓ-SÓ(TÓUÒUð	Vús   ‚ —AA9Á8A9c                ó  #   •  U R                     S h  v•N nU7v •  M   N
 g ! [         aQ    [        R                  " S[        SS9  [        [        5      " U R                   5      I S h  v•N   H  nU7v •  M
      g f = f7f)Nz…StreamingHttpResponse must consume synchronous iterators in order to serve them asynchronously. Use an asynchronous iterator instead.rA  rB  )r(  rh   rH  rI  rJ  r   Úlist)r   r4  s     r   Ú	__aiter__ÚStreamingHttpResponse.__aiter__  su   é € ð	Ø"×4Ò4÷ �dØ•
ñÑ4øäó 
	Ü�MŠMðSäØò	ô ,¬DÔ1°$×2HÑ2HÓI×IÓI�Ø•
ó Jð
	üsJ   ‚B„$ �"” •"˜$  "¢$ £B¤AA?Á*A-Á+A?Á<BÁ>A?Á?Bc                 ó8   • SR                  U R                  5      $ r  )r   r(  ro   s    r   r  ÚStreamingHttpResponse.getvalue  s   € Ø�x‰x˜×.Ñ.Ó/Ð/r"   )r5  r8  r(  )rK   )rO   rP   rQ   rR   rì   r"  r    rû   rí   rÒ   r  r(  rî   r<  r  rN  r  rS   r#  r$  s   @r   r&  r&  ¶  s‰   ø† ñð €I÷3ò
ð ñ
ó ð
ð ñ
ó ð
ð
 ñ8ó ð8ð ×Ññ+ó ð+ò	7òVò(÷ 0ð 0r"   r&  c                   óL   ^ • \ rS rSrSrSrSSS.U 4S jjrU 4S jrS	 rS
r	U =r
$ )ÚFileResponsei!  z6
A streaming HTTP response class optimized for files.
i   Frv   )Úas_attachmentÚfilenamec                ón   >• Xl         X l        SU;  =(       d    US   S L U l        [        TU ]  " U0 UD6  g )Nrj   )rT  rU  Ú_no_explicit_content_typerô   r    )r   rT  rU  rõ   r¸   rÐ   s        €r   r    ÚFileResponse.__init__(  sA   ø€ Ø*ÔØ Œà &Ñ(×J¨F°>Ñ,BÀdÐ,Jð 	Ô&ô 	‰Ò˜$Ð) &Ó)r"   c                 ó8  >^ ^• [        US5      (       d  S T l        [        TT ]  U5      $ U=T l        m[        TS5      (       a%  T R                  R                  TR                  5        [        UU 4S jS5      nT R                  T5        [        TT ]  U5        g )NÚreadrÊ   c                  ó:   >• T R                  TR                  5      $ r;   )rZ  Ú
block_size©Úfileliker   s   €€r   Ú<lambda>Ú5FileResponse._set_streaming_content.<locals>.<lambda>8  s   ø€ ˜XŸ]™]¨4¯?©?Ô;r"   r"   )	r  Úfile_to_streamrô   r<  rb   r  rÊ   r  Úset_headers)r   r   r^  rÐ   s   ` @€r   r<  Ú#FileResponse._set_streaming_content0  s‚   ú€ Ü�u˜f×%Ñ%Ø"&ˆDÔÜ‘7Ñ1°%Ó8Ð8à).Ð.ˆÔ˜hÜ�8˜W×%Ñ%Ø×"Ñ"×)Ñ)¨(¯.©.Ô9ÜÕ;¸SÓAˆØ×Ñ˜Ô"Ü‰Ñ& uÕ-r"   c                 ó€  ^ ^• [        TSS5      n[        U[        5      (       a  UOSn[        TS5      =(       a(    [        TS5      (       + =(       d    TR	                  5       n[        TS5      (       Ga  U(       ac  TR                  5       nTR                  S[        R                  5        TR                  5       U-
  T R                  S'   TR                  U5        GO[        TS5      (       a9  TR                  5       R                  TR                  5       -
  T R                  S'   OÇ[        R                  R                  U5      (       a=  [        R                  R                  U5      TR                  5       -
  T R                  S'   OeU(       a^  [!        [#        UU 4S	 jS5      5      T R                  S'   TR                  [%        T R                  S   5      * [        R                  5        [        R                  R'                  T R(                  =(       d    U5      nT R*                  (       a^  U(       aH  [,        R.                  " U5      u  pVS
SSSSS.R1                  Xe5      nU=(       d    ST R                  S'   OST R                  S'   [3        T R4                  U5      =n(       a  UT R                  S'   gg)z„
Set some common response headers (Content-Length, Content-Type, and
Content-Disposition) based on the `filelike` response content.
Únamerv   Úseekrâ   rÚ   r   zContent-LengthÚ	getbufferc                  óL   >• [        T R                  TR                  5      5      $ r;   )r  rZ  r\  r]  s   €€r   r_  Ú*FileResponse.set_headers.<locals>.<lambda>V  s   ø€ œS §¡¨t¯©Ó!?Ô@r"   zapplication/x-brotlizapplication/x-bzipzapplication/x-compresszapplication/gzipzapplication/x-xz)ÚbrÚbzip2ÚcompressÚgzipÚxzzapplication/octet-streamr]   zContent-DispositionN)Úgetattrr+   r,   r  râ   rÚ   rf  ÚioÚSEEK_ENDr_   rg  ÚnbytesÚosrœ   ÚexistsÚgetsizeÚsumr  rf   ÚbasenamerU  rW  Ú	mimetypesÚ
guess_typern   r   rT  )r   r^  rU  râ   Úinitial_positionrj   ÚencodingÚcontent_dispositions   ``      r   rb  ÚFileResponse.set_headers<  s4  ù€ ô
 ˜8 V¨RÓ0ˆÜ)¨(´C×8Ñ8‘8¸bˆÜ˜8 VÓ,÷ 
Ü˜ *Ó-Ô-×D°×1BÑ1BÓ1Dð 	ô �8˜V×$Ò$ÞØ#+§=¡=£?Ð Ø—‘˜a¤§¡Ô-Ø19·±³ÐCSÑ1S�—‘Ð-Ñ.Ø—‘Ð.Ö/Ü˜ ;×/Ñ/à×&Ñ&Ó(×/Ñ/°(·-±-³/ÑAð —‘Ð-Ò.ô —‘—‘ ×)Ñ)ä—G‘G—O‘O HÓ-°·±³Ñ?ð —‘Ð-Ñ.øö Ü-0ÜÕ@À!ÓDó.ˆD�L‰LÐ)Ñ*ð �M‰Mœ3˜tŸ|™|Ð,<Ñ=Ó>Ð>ÄÇÁÔLä—7‘7×#Ñ# D§M¡M×$=°XÓ>ˆØ×)×)ÞÜ)2×)=Ò)=¸hÓ)GÑ&�ð 1Ø1Ø 8Ø.Ø,ñ ÷ ‘#�hÓ-ð ð !×>Ð$>ð —‘˜^Ò,ð 0J�—‘˜^Ñ,ä"<Ø×Ñ ó#
ð 
Ðõ 
ð 3FˆD�L‰LÐ.Ò/ð
r"   )rW  rT  ra  rU  )rO   rP   rQ   rR   rì   r\  r    r<  rb  rS   r#  r$  s   @r   rS  rS  !  s/   ø† ñð €Jà,1¸B÷ *ð *õ
.÷4Fð 4Fr"   rS  c                   óL   ^ • \ rS rSr/ SQrSU 4S jjr\" S 5      rS rSr	U =r
$ )ÚHttpResponseRedirectBaseis  )ÚhttpÚhttpsÚftpc                 ó"  >• [         TU ]  " U0 UD6  [        U5      U S'   [        [	        U5      5      nU(       a  U R
                  U l        UR                  (       a3  UR                  U R                  ;  a  [        SUR                  -  5      eg g )NÚLocationz)Unsafe redirect to URL with protocol '%s')
rô   r    r   r   r,   Ústatus_code_preserve_requestrg   ÚschemeÚallowed_schemesr   )r   Úredirect_toÚpreserve_requestrõ   r¸   ÚparsedrÐ   s         €r   r    Ú!HttpResponseRedirectBase.__init__v  s}   ø€ Ü‰Ò˜$Ð) &Ò)Ü% kÓ2ˆˆZÑÜœ#˜kÓ*Ó+ˆÞØ#×@Ñ@ˆDÔØ�=�=˜VŸ]™]°$×2FÑ2FÓFÜ$Ø;¸f¿m¹mÑKóð ð Gˆ=r"   c                 ó   • U S   $ )Nr„  rK   ro   s    r   r_  Ú!HttpResponseRedirectBase.<lambda>�  s	   €   ZÒ 0r"   c                 óz   • SU R                   R                  U R                  U R                  U R                  S.-  $ )NzD<%(cls)s status_code=%(status_code)d%(content_type)s, url="%(url)s">)rù   rg   rj   Úurl)rÐ   rO   rg   r…   r�  ro   s    r   rû   Ú!HttpResponseRedirectBase.__repr__ƒ  s:   € àRà—~‘~×.Ñ.Ø#×/Ñ/Ø $× ;Ñ ;Ø—x‘xñ	ñð	
r"   )rg   rN   )rO   rP   rQ   rR   r‡  r    rí   r�  rû   rS   r#  r$  s   @r   r  r  s  s$   ø† Ú.€O÷	ñ Ñ0Ó
1€C÷	
ð 	
r"   r  c                   ó   • \ rS rSrSrSrSrg)ÚHttpResponseRedirecti�  i.  i3  rK   N©rO   rP   rQ   rR   rg   r…  rS   rK   r"   r   r’  r’  �  ó   † Ø€KØ#&Ó r"   r’  c                   ó   • \ rS rSrSrSrSrg)ÚHttpResponsePermanentRedirecti”  i-  i4  rK   Nr“  rK   r"   r   r–  r–  ”  r”  r"   r–  c                   ód   ^ • \ rS rSrSrU 4S jr\R                  R                  S 5       rSr	U =r
$ )ÚHttpResponseNotModifiedi™  i0  c                 ó,   >• [         TU ]  " U0 UD6  U S	 g )Nzcontent-type)rô   r    )r   rõ   r¸   rÐ   s      €r   r    Ú HttpResponseNotModified.__init__œ  s   ø€ Ü‰Ò˜$Ð) &Ò)Ø�Ñ r"   c                 ó6   • U(       a  [        S5      e/ U l        g )Nz7You cannot set content to a 304 (Not Modified) response)r.  r  rs   s     r   rÒ   ÚHttpResponseNotModified.content   s   € æÜ ØIóð ð ˆ�r"   )r  )rO   rP   rQ   rR   rg   r    rò   rÒ   rî   rS   r#  r$  s   @r   r˜  r˜  ™  s-   ø† Ø€Kõ!ð ×Ñ× Ñ ñó !ör"   r˜  c                   ó   • \ rS rSrSrSrg)ÚHttpResponseBadRequesti©  i�  rK   N©rO   rP   rQ   rR   rg   rS   rK   r"   r   rž  rž  ©  ó   † ØƒKr"   rž  c                   ó   • \ rS rSrSrSrg)ÚHttpResponseNotFoundi­  i”  rK   NrŸ  rK   r"   r   r¢  r¢  ­  r   r"   r¢  c                   ó   • \ rS rSrSrSrg)ÚHttpResponseForbiddeni±  i“  rK   NrŸ  rK   r"   r   r¤  r¤  ±  r   r"   r¤  c                   ó2   ^ • \ rS rSrSrU 4S jrS rSrU =r$ )ÚHttpResponseNotAllowediµ  i•  c                 óN   >• [         TU ]  " U0 UD6  SR                  U5      U S'   g )Nz, ÚAllow)rô   r    r   )r   Úpermitted_methodsrõ   r¸   rÐ   s       €r   r    ÚHttpResponseNotAllowed.__init__¸  s(   ø€ Ü‰Ò˜$Ð) &Ò)ØŸ	™	Ð"3Ó4ˆˆWŠr"   c                 ól   • SU R                   R                  U R                  U R                  U S   S.-  $ )NzC<%(cls)s [%(methods)s] status_code=%(status_code)d%(content_type)s>r¨  )rù   rg   rj   Úmethodsrú   ro   s    r   rû   ÚHttpResponseNotAllowed.__repr__¼  s;   € ØTØ—>‘>×*Ñ*Ø×+Ñ+Ø ×7Ñ7Ø˜G‘}ñ	X
ñ 
ð 	
r"   rK   )	rO   rP   rQ   rR   rg   r    rû   rS   r#  r$  s   @r   r¦  r¦  µ  s   ø† Ø€Kõ5÷
ð 
r"   r¦  c                   ó   • \ rS rSrSrSrg)ÚHttpResponseGoneiÅ  iš  rK   NrŸ  rK   r"   r   r¯  r¯  Å  r   r"   r¯  c                   ó   • \ rS rSrSrSrg)ÚHttpResponseServerErroriÉ  iô  rK   NrŸ  rK   r"   r   r±  r±  É  r   r"   r±  c                   ó   • \ rS rSrSrg)ÚHttp404iÍ  rK   NrV   rK   r"   r   r³  r³  Í  rW   r"   r³  c                   ó6   ^ • \ rS rSrSr\SS4U 4S jjrSrU =r$ )ÚJsonResponseiÑ  a   
An HTTP response class that consumes data to be serialized to JSON.

:param data: Data to be dumped into json. By default only ``dict`` objects
  are allowed to be passed due to a security flaw before ECMAScript 5. See
  the ``safe`` parameter for more information.
:param encoder: Should be a json encoder class. Defaults to
  ``django.core.serializers.json.DjangoJSONEncoder``.
:param safe: Controls if only ``dict`` objects may be serialized. Defaults
  to ``True``.
:param json_dumps_params: A dictionary of kwargs passed to json.dumps().
TNc                 óØ   >• U(       a   [        U[        5      (       d  [        S5      eUc  0 nUR                  SS5        [        R
                  " U4SU0UD6n[        TU ]  " SSU0UD6  g )NzTIn order to allow non-dict objects to be serialized set the safe parameter to False.rj   zapplication/jsonrù   rÒ   rK   )r+   Údictrh   rL   ÚjsonÚdumpsrô   r    )r   r   ÚencoderÚsafeÚjson_dumps_paramsr¸   rÐ   s         €r   r    ÚJsonResponse.__init__ß  ss   ø€ ö œ
 4¬×.Ñ.Üð+óð ð Ñ$Ø "ÐØ×Ñ˜.Ð*<Ô=Ü�zŠz˜$ÑA GÐAÐ/@ÑAˆÜ‰ÒÑ0 Ð0¨Ó0r"   rK   )	rO   rP   rQ   rR   rì   r   r    rS   r#  r$  s   @r   rµ  rµ  Ñ  s   ø† ñð  "ØØ÷1õ 1r"   rµ  )@r¤   rp  r¸  rx  rs  Úrer2   r­   rH  Úemail.headerr   Úhttp.clientr   Úurllib.parser   Úasgiref.syncr   r   Údjango.confr   Údjango.corer	   r
   Údjango.core.exceptionsr   Údjango.core.serializers.jsonr   Údjango.http.cookier   Údjango.utilsr   Údjango.utils.datastructuresr   Údjango.utils.encodingr   Údjango.utils.functionalr   Údjango.utils.httpr   r   Údjango.utils.regex_helperr   ÚIrw   r   ra   r0   rY   rò   r&  rS  r  r’  r–  r˜  rž  r¢  r¤  r¦  r¯  r±  rÅ   r³  rµ  rK   r"   r   Ú<module>rÏ     sN  ðÛ Û 	Û Û Û 	Û 	Û 
Û Û Ý Ý !Ý !ç 5å  ß (Ý 5Ý :Ý +Ý !Ý >Ý ,Ý 3ß CÝ 6á 0Ø'¨¯©ó!Ð ô
?Ð,ô ?ôD	�Zô 	÷CTñ CTôLFÐ#ô FôRh0Ð,ô h0ôVOFÐ(ô OFôd
˜|ô 
ô8'Ð3ô 'ô
'Ð$<ô 'ô
˜lô ô ˜\ô ô˜<ô ô˜Lô ô
˜\ô 
ô �|ô ô˜lô ô	ˆiô 	ô1�<õ 1r"   