
    @OOf              	       \    d dl Z d dlZdedeeeeeef   f   dz  fdZd Zd	dededefdZy)
    Ncreturnc                    | j                  dd      }|d   j                  dd      }t        |      dk7  ryt        j                         }t        |      dk(  ra|d   j                  d      D ]J  }|j                  dd      }t        |      dk(  s$|d   j	                         ||d   j	                         <   L |d   j                         |d   j                         |fS )aU  
    A simple parser for content-type values. Returns a (type, subtype,
    parameters) tuple, where type and subtype are strings, and parameters
    is a dict. If the string could not be parsed, return None.

    E.g. the following string:

        text/html; charset=UTF-8

    Returns:

        ("text", "html", {"charset": "UTF-8"})
    ;   r   /   N=)splitlencollectionsOrderedDictstriplower)r   partstsdiclauses         [/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/net/http/headers.pyparse_content_typer      s     GGCOE	qQ	B
2w!|!A
5zQq$ 	9AWWS!_F6{a'-ay'8&)//#$	9 a5;;="Q%++-**    c                 t    |s|  d| S dj                  d |j                         D              }|  d| d| S )Nr   z; c              3   0   K   | ]  \  }}| d |   yw)r
   N ).0kvs      r   	<genexpr>z(assemble_content_type.<locals>.<genexpr>#   s     Ada!AaSzAs   )joinitems)typesubtype
parametersparamss       r   assemble_content_typer&       sJ    q	""YYAj.>.>.@AAFV1WIRx((r   content_typecontentc                    t        |       }|r|d   j                  d      nd}|sd| v rd}|sLd| v rHt        j                  d|t        j                        }|r!|j                  d      j                  d	d
      }|sLd| v rHt        j                  d|t        j                        }|r!|j                  d      j                  d	d
      }|sd}|j                         dv rd}|S )zE
    Infer the encoding of content from the content-type header.
    r	   charsetNjsonutf8htmls    <meta[^>]+charset=['"]?([^'">]+)r   asciiignoreztext/csss   @charset "([^"]+)";zlatin-1)gb2312gbkgb18030)	r   getresearch
IGNORECASEgroupdecodematchr   )r'   r(   parsed_content_typeencmeta_charsetcss_charsets         r   infer_content_encodingr>   '   s    
 -\:3F
a
 
$
$Y
/DC 6\)6\)yy4gr}}
 $$Q'..wAC:-hh:GR]]S##A&--gx@C  yy{''Jr   )r   )	r   r4   strtupledictr   r&   bytesr>   r   r   r   <module>rC      sV     	+# +%S$sCx.(@"AD"H +6)! !u !s !r   