ó
    …Bh   ã                   óB   • S SK JrJrJr  SSKJr    SS jr   SS jrg)	é    )ÚUTF8ÚdecodeÚlookupé   )Úparse_stylesheetNc                 ó¸  • U(       a  [        U5      nU(       a  [        X5      $ U R                  S5      (       a  U R                  SSS5      nUS:w  af  U R                  SU5      (       aO  [        U SU R                  S5      5      nU(       a+  UR                  S;   a  [        U [
        5      $ [        X5      $ U(       a  [        X5      $ [        U [
        5      $ )	a  Determine the character encoding of a CSS stylesheet and decode it.

This is based on the presence of a :abbr:`BOM (Byte Order Mark)`,
a ``@charset`` rule, and encoding meta-information.

:type css_bytes: :obj:`bytes`
:param css_bytes: A CSS byte string.
:type protocol_encoding: :obj:`str`
:param protocol_encoding:
    The encoding label, if any, defined by HTTP or equivalent protocol.
    (e.g. via the ``charset`` parameter of the ``Content-Type`` header.)
:type environment_encoding: :class:`webencodings.Encoding`
:param environment_encoding:
    The `environment encoding
    <https://www.w3.org/TR/css-syntax/#environment-encoding>`_, if any.
:returns:
    A 2-tuple of a decoded Unicode string and the
    :class:`webencodings.Encoding` object that was used.

s
   @charset "ó   "é
   éd   éÿÿÿÿs   ";Úlatin1)zutf-16bezutf-16le)r   r   Ú
startswithÚfindÚnamer   )Ú	css_bytesÚprotocol_encodingÚenvironment_encodingÚfallbackÚ	end_quotes        Ú@/var/www/html/env/lib/python3.13/site-packages/tinycss2/bytes.pyÚdecode_stylesheet_bytesr      s½   € ö. ÜÐ+Ó,ˆÞÜ˜)Ó.Ð.Ø×Ñ˜M×*Ñ*ð —N‘N 4¨¨SÓ1ˆ	Ø˜‹?˜y×3Ñ3°E¸9×EÑEÜ˜i¨¨9Ð5×<Ñ<¸XÓFÓGˆHÞØ—=‘=Ð$<Ó<Ü! )¬TÓ2Ð2Ü˜iÓ2Ð2ÞÜiÓ6Ð6Ü)œTÓ"Ð"ó    c                 ó<   • [        XU5      u  pV[        XSU5      nXv4$ )a±  Parse :diagram:`stylesheet` from bytes,
determining the character encoding as web browsers do.

This is used when reading a file or fetching a URL.
The character encoding is determined from the initial bytes
(a :abbr:`BOM (Byte Order Mark)` or a ``@charset`` rule)
as well as the parameters. The ultimate fallback is UTF-8.

:type css_bytes: :obj:`bytes`
:param css_bytes: A CSS byte string.
:type protocol_encoding: :obj:`str`
:param protocol_encoding:
    The encoding label, if any, defined by HTTP or equivalent protocol.
    (e.g. via the ``charset`` parameter of the ``Content-Type`` header.)
:type environment_encoding: :class:`webencodings.Encoding`
:param environment_encoding:
    The `environment encoding`_, if any.
:type skip_comments: :obj:`bool`
:param skip_comments:
    Ignore CSS comments at the top-level of the stylesheet.
    If the input is a string, ignore all comments.
:type skip_whitespace: :obj:`bool`
:param skip_whitespace:
    Ignore whitespace at the top-level of the stylesheet.
    Whitespace is still preserved
    in the :attr:`~tinycss2.ast.QualifiedRule.prelude`
    and the :attr:`~tinycss2.ast.QualifiedRule.content` of rules.
:returns:
    A ``(rules, encoding)`` tuple.

    * ``rules`` is a list of
      :class:`~tinycss2.ast.QualifiedRule`,
      :class:`~tinycss2.ast.AtRule`,
      :class:`~tinycss2.ast.Comment` (if ``skip_comments`` is false),
      :class:`~tinycss2.ast.WhitespaceToken`
      (if ``skip_whitespace`` is false),
      and :class:`~tinycss2.ast.ParseError` objects.
    * ``encoding`` is the :class:`webencodings.Encoding` object
      that was used.
      If ``rules`` contains an ``@import`` rule, this is
      the `environment encoding`_ for the imported stylesheet.

.. _environment encoding:
        https://www.w3.org/TR/css-syntax/#environment-encoding

.. code-block:: python

    response = urlopen('http://example.net/foo.css')
    rules, encoding = parse_stylesheet_bytes(
        css_bytes=response.read(),
        # Python 3.x
        protocol_encoding=response.info().get_content_type().get_param('charset'),
        # Python 2.x
        protocol_encoding=response.info().gettype().getparam('charset'),
    )
    for rule in rules:
        ...

)r   r   )r   r   r   Úskip_commentsÚskip_whitespaceÚcss_unicodeÚencodingÚ
stylesheets           r   Úparse_stylesheet_bytesr   0   s-   € ô| 4ØÐ&:ó<Ñ€Kä! +¸oÓN€JØÐÐr   )NN)NNFF)Úwebencodingsr   r   r   Úparserr   r   r   © r   r   Ú<module>r#      s-   ðß -Ñ -å $ð :>Ø15ô'#ðT 9=Ø04Ø@EõA r   