Ë
    m]jG  ã            
       ól  — d dl Z d„ Zd„ Zd„ Zddddd	d
œZdj                  d„ eD «       «      Z e j                  de› d�e j                  «      Zd„ Z	d„ Z
d„ Zd„ Z edD � �cg c]  } dD ]  }| |f‘Œ Œ c}} dD � �cg c]  } dD ]  }| |f‘Œ Œ c}} z   dD � �cg c]  } dD ]  }| |f‘Œ Œ c}} z   dD � �cg c]  } dD ]  }| |f‘Œ Œ c}} z   dD �cg c]  }d|f‘Œ c}z   dD �cg c]  }d|f‘Œ c}z   dD � cg c]  } | d f‘Œ c} z   g d!¢z   «      Zyc c}} w c c}} w c c}} w c c}} w c c}w c c}w c c} w )"é    Nc                 óT   — g }t        | |j                  «       dj                  |«      S )aã  Serialize nodes to CSS syntax.

    This should be used for :term:`component values`
    instead of just :meth:`tinycss2.ast.Node.serialize` on each node
    as it takes care of corner cases such as ``;`` between declarations,
    and consecutive identifiers
    that would otherwise parse back as the same token.

    :type nodes: :term:`iterable`
    :param nodes: An iterable of :class:`tinycss2.ast.Node` objects.
    :returns: A :obj:`string <str>` representing the nodes.

    Ú )Ú_serialize_toÚappendÚjoin)ÚnodesÚchunkss     úJ/var/www/zogu/zoguvenv/lib/python3.12/site-packages/tinycss2/serializer.pyÚ	serializer      s%   € ð €FÜ�%˜Ÿ™Ô'Ø�7‰7�6‹?Ðó    c                 ó  — | dk(  ry| dd dk(  rdt        | dd «      z   S | d   dk(  rd}| dd } nd}| d   }||d	v st        |«      d
kD  r|n+|dk(  rdn$|dk(  rdn|dk(  rdn|dv rdt        |«      z  nd|z   z  }|t        | dd «      z  }|S )aX  Serialize any string as a CSS identifier

    :type value: :obj:`str`
    :param value: A string representing a CSS value.
    :returns:
        A :obj:`string <str>` that would parse as an
        :class:`tinycss2.ast.IdentToken` whose
        :attr:`tinycss2.ast.IdentToken.value` attribute equals the passed
        ``value`` argument.

    ú-z\-Né   z--r   é   r   Ú5abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZé   ú
ú\A úú\D úú\C Ú
0123456789z\%X ú\)Úserialize_nameÚord)ÚvalueÚresultÚcs      r
   Úserialize_identifierr       sÓ   € ð �‚|ØàˆRˆa€y�DÒØ”n U¨1¨2 YÓ/Ñ/Ð/àˆQ�x�3‚ØˆØ�a�b�	‰àˆØˆa‰€AØ
Øð 0ñ 1Ü47¸³F¸T²Mñ 	
à�t’)‰Ø�t’)‰Ø�t’)‰Ø Ñ-ˆ”#�a“&ÒØˆq‰ñ€Fð Œn˜U 1 2˜YÓ'Ñ'€FØ€Mr   c                 ó2   — dj                  d„ | D «       «      S )Nr   c              3   óx   K  — | ]2  }|d v st        |«      dkD  r|n|dk(  rdn|dk(  rdn|dk(  rdnd|z   –— Œ4 y	­w)
z@abcdefghijklmnopqrstuvwxyz-_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZr   r   r   r   r   r   r   r   N)r   ©Ú.0r   s     r
   ú	<genexpr>z!serialize_name.<locals>.<genexpr>=   s[   è ø€ ò ð ð ð 0ñ 1Ü47¸³F¸T²Mñ 	
à�t’)‰Ø�t’)‰Ø�t’)‰Øˆq‰ó	ñùs   ‚8:©r   ©r   s    r
   r   r   <   s"   € Ø�7‰7ñ ð ôó ð r   ú\"ú\\r   r   r   )ú"r   r   r   r   r   c              #   óF   K  — | ]  }t        j                  |«      –— Œ y ­w©N)ÚreÚescape)r$   Úchars     r
   r%   r%   O   s   è ø€ ÒQ¨tœ2Ÿ9™9 TŸ?ÑQùs   ‚!ú[ú]c                 ó2   — t         | j                  d«         S )Nr   )Ú_replacement_string_valueÚgroup)Úmatchs    r
   Ú_serialize_string_value_matchr6   Q   s   € Ü$ U§[¡[°£^Ñ4Ð4r   c                 ó6   — t         j                  t        | «      S r,   )Ú_re_string_valueÚsubr6   r'   s    r
   Úserialize_string_valuer:   S   s   € Ü×ÑÔ =¸uÓEÐEr   c                 ó2   — dj                  d„ | D «       «      S )Nr   c              3   ó¬   K  — | ]L  }|d k(  rdn@|dk(  rdn9|dk(  rdn2|dk(  rdn+|dk(  rd	n$|d
k(  rdn|dk(  rdn|dk(  rdn|dk(  rdn|dk(  rdn|–— ŒN y­w)ú'z\'r*   r(   r   r)   ú z\ ú	z\9 r   r   r   r   r   r   ú(z\(ú)z\)N© r#   s     r
   r%   z serialize_url.<locals>.<genexpr>X   sy   è ø€ ò ð ð �c’‰Ø�c’‰Ø�d’‰Ø�c’‰Ø�t’)‰Ø�t’)‰Ø�t’)‰Ø�t’)‰Ø�c’‰Ø�c’‰Ø	ó
	
ñùs   ‚AAr&   r'   s    r
   Úserialize_urlrC   W   s"   € Ø�7‰7ñ ð ôó ð r   c                 ó(  — t         }d}| D ]…  }|j                  dk7  r|j                  n|j                  }||f|v r	 |d«       n-|dk(  r(|dk(  r|j                  j                  d«      s |d«       |j	                  |«       |dk(  r |d«       |}Œ‡ y)	z€Serialize an iterable of nodes to CSS syntax.

    White chunks as a string by calling the provided :obj:`write` callback.

    NÚliteralz/**/r   Ú
whitespacer   Údeclarationú;)Ú	BAD_PAIRSÚtyper   Ú
startswithr   )r   ÚwriteÚ	bad_pairsÚprevious_typeÚnodeÚserialization_types         r
   r   r   i   s›   € ô €IØ€MØò +ˆØ+/¯9©9¸	Ò+A˜dŸišiØ#'§:¡:ð 	àÐ-Ð.°)Ñ;Ù�&�MØ˜dÒ"Ø" lÒ2Ø—
‘
×%Ñ% dÔ+Ù�$ŒKØ×Ñ˜5Ô!Ø Ò.Ù�#ŒJØ*‰ñ+r   )Úidentú
at-keywordÚhashÚ	dimensionú#r   Únumber)rQ   ÚfunctionÚurlrV   Ú
percentagerT   úunicode-range)rQ   rR   rS   rT   )r   z-->)rU   r   rV   ú@)rQ   rW   rX   )rZ   ú.ú+)rV   rY   rT   )rQ   rW   rX   rZ   r   r[   )rQ   rW   ú?rZ   z$*^~|ú=))rQ   z() block)ú|r`   )ú/Ú*)r-   r   r    r   r3   r   r8   ÚcompileÚ	MULTILINEr6   r:   rC   r   ÚsetrI   )ÚaÚbs   00r
   ú<module>rh      sË  ðÛ 	òò&"òJ	ð 
Ø
Ø
Ø
Ø
ñÐ ð —7‘7ÑQÐ7PÔQÓQÐ Ø�2—:‘: Ð"2Ð!3°1Ð5°r·|±|ÓDÐ ò5òFòò$+ñ. àQ÷1Øð0ò1àð ˆ‚Vð 1€Vó 1ð
 >÷ØØòàð ˆ‚Vð €Vó ñ	ð +÷/ØØ-ò/àð ˆ‚Vð /€Vó /ñ	/ð -÷8ØØ6ò8àð ˆ‚Vð 8€Vó 8ñ8ð JÖJ�!€cˆ1‚XÒJñKð $>Ö>˜a€o�qÒÒ>ñ?ð Ö�!€aˆ‚XÒñ ò  4ñ!4ó�	ùó1ùóùó/ùó8ùò KùÚ>ùÚs*   Á"D
Á<DÂDÂ4D!ÃD'
Ã"D,
Ã5D1
