
    Evg                     l    d dl mZ d dlmZ d dlmZ d dlmZmZ  ed          Z	 G d de          Z
dS )	    )patch_vary_headers)MiddlewareMixin)_lazy_re_compile)compress_sequencecompress_stringz\bgzip\bc                       e Zd ZdZdZd ZdS )GZipMiddlewarez
    Compress content if the browser allows gzip compression.
    Set the Vary header accordingly, so that caches will base their storage
    on the Accept-Encoding header.
    d   c                     |j         st          |j                  dk     r|S |                    d          r|S t	          |d           |j                            dd          }t                              |          s|S |j         rM|j	        r|j
         fd} |            |_
        n t          |j
         j                  |_
        |j        d= nrt          |j         j                  }t          |          t          |j                  k    r|S ||_        t          t          |j                            |j        d<   |                    d	          }|r"|                    d
          rd|z   |j        d	<   d|j        d<   |S )N   zContent-Encoding)zAccept-EncodingHTTP_ACCEPT_ENCODING c                 T   K   2 3 d {V } t          | j                  W V  !6 d S )Nmax_random_bytes)r   r   )chunkorignal_iteratorselfs    S/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/middleware/gzip.pygzip_wrapperz5GZipMiddleware.process_response.<locals>.gzip_wrapper'   sn      '7       e-!-1-B        (8'7'7s   'r   zContent-LengthETag"zW/gzip)	streaminglencontent
has_headerr   METAgetre_accepts_gzipsearchis_asyncstreaming_contentr   r   headersr   str
startswith)r   requestresponseaer   compressed_contentetagr   s   `      @r   process_responsezGZipMiddleware.process_response   s   ! 	c(*:&;&;c&A&AO 122 	O8%9:::\4b99%%b)) 	O 	L   $,#=       .:\^^**->.%)%:. . .*  !122 "1 !%!6" " " %&&#h.>*?*???1H14S9I5J5J1K1KH-.
 ||F## 	3DOOC(( 	3'+d{HV$/5+,    N)__name__
__module____qualname____doc__r   r,    r-   r   r	   r	   	   s5          8 8 8 8 8r-   r	   N)django.utils.cacher   django.utils.deprecationr   django.utils.regex_helperr   django.utils.textr   r   r    r	   r2   r-   r   <module>r7      s    1 1 1 1 1 1 4 4 4 4 4 4 6 6 6 6 6 6 @ @ @ @ @ @ @ @"";//A A A A A_ A A A A Ar-   