Ë
    o]j
 ã                   ó  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZmZmZ dd	lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d
Z% e&«       Z' e&«       Z(i Z) G d„ de«      Z*	 	 �dd„Z+�dd„Z, e+«       ee#d„ «       «       «       Z- e+d«       e+d«       e+d«       e+d«       e+d«       e+d«       e+d«       e+d«       e+d«       e+dd¬«       e+d«      e$d„ «       «       «       «       «       «       «       «       «       «       «       «       Z. e+«       e$d„ «       «       Z/ e+«       e#d „ «       «       Z0 e+«       e#d!„ «       «       Z1 e+d"«      e$d#„ «       «       Z2 e+d$d¬%«      ee$d&„ «       «       «       Z3 e+d'd¬%«      e$d(„ «       «       Z4 e+«       d)„ «       Z5 e+«       ed*„ «       «       Z6 e+«       ed+„ «       «       Z7 e+«       ed,„ «       «       Z8 e+«       ed-„ «       «       Z9 e+d.«       e+d/«      ee#d0„ «       «       «       «       Z: e+«       d1„ «       Z; e+d2«       e+d3«       e+d4«       e+d5«       e+d6«       e+d7«       e+d8«       e+d9«      d:„ «       «       «       «       «       «       «       «       Z< e+d;«       e+d<«       e+d=«       e+d>«       e+d?«       e+d@«       e+dA«       e+dB«       e+dCd¬«      e#dD„ «       «       «       «       «       «       «       «       «       «       Z= e+dE«       e+dF«      e#dG„ «       «       «       Z> e+«       e#dH„ «       «       Z? e+«       e#dI„ «       «       Z@ e+«       e$dJ„ «       «       ZA e+dKd¬«      e#dL„ «       «       ZB e+d¬«      e$dM„ «       «       ZC e+d¬«      e#dN„ «       «       ZD e+d¬«      e$dO„ «       «       ZE e+dPd¬«       e+dQd¬«       e+dRd¬«       e+dSd¬«      e$dT„ «       «       «       «       «       ZF e+d¬«      dU„ «       ZG e+dV«      e#dW„ «       «       ZH e+dX«       e+dY«       e+dZ«       e+d[«       e+d\«       e+d]«       e+d^«       e+d_«       e+d`d¬«       e+da«      e$db„ «       «       «       «       «       «       «       «       «       «       «       ZI e+dcd¬%«       e+ddd¬%«      e$de„ «       «       «       ZJ e+df«       e+dg«      dh„ «       «       ZK e+di«       e+dj«      dk„ «       «       ZL e+dl«       e+dm«      dn„ «       «       ZM e+do«       e+dp«      dq„ «       «       ZN e+«       e#dr„ «       «       ZO e+d¬«      e$ds„ «       «       ZP e+d¬«      e#dt„ «       «       ZQ e+«       e#du„ «       «       ZR e+«       e#dv„ «       «       ZS e+«       e#dw„ «       «       ZT e+«       e$dx„ «       «       ZU e+d¬%«      dy„ «       ZV e+«       dz„ «       ZW e+«       d{„ «       ZX e+«       d|„ «       ZYd}„ ZZ e+d~«       e+d«       e+d€«       e+d�«       e+d‚«       e+dƒ«       e+d„«       e+d…«       e+d†«       e+d‡«       e+dˆ«       e+d‰«       e+dŠ«       e+d‹«       e+dŒ«       e+d�«       e+dŽ«      e$d�„ «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       Z[ e+d�«       e+d‘«       e+d’«       e+d“«      e$d”„ «       «       «       «       «       Z\ e+d•d¬«       e+d–d¬«      e$d—„ «       «       «       Z] e+d¬«      e#d˜„ «       «       Z^ e+«       e#d™„ «       «       Z_ e+«       dš„ «       Z` e+d›«      e#dœ„ «       «       Za e+«       ed�„ «       «       Zb e+«       e#dž„ «       «       Zc e+«       e$dŸ„ «       «       Zd e+«       d „ «       Ze e+«       e#d¡„ «       «       Zf e+«       e#d¢„ «       «       Zg e+«       d£„ «       Zh e+«       d¤„ «       Zi e+«       e#d¥„ «       «       Zj e+«       d¦„ «       Zk e+«       d§„ «       Zl e+«       e$d¨„ «       «       Zm e+«       e#d©„ «       «       Zn e+«       e#dª„ «       «       Zo e+«       e$d«„ «       «       Zp e+«       e#d¬„ «       «       Zq e+d¬«      e$d­„ «       «       Zr e+d®«       e+d¯«      e$d°„ «       «       «       Zs e+«       e$d±„ «       «       Zt e+«       e$d²„ «       «       Zu e+«       e#d³„ «       «       Zv e+«       e$d´„ «       «       Zw e+dµ«       e+d¶«       e+d·«       e+d¸«      e$d¹„ «       «       «       «       «       Zx e+dº«       e+d»«       e+d¼«       e+d½«       e+d¾«       e+d¿«       e+dÀ«       e+dÁ«      e$dÂ„ «       «       «       «       «       «       «       «       «       Zy e+dÃ«       e+dÄ«       e+dÅ«       e+dÆ«      e$dÇ„ «       «       «       «       «       Zz e+«       e$dÈ„ «       «       Z{ e+«       e$dÉ„ «       «       Z| e+dÊ«       e+dË«      e$dÌ„ «       «       «       Z} e+d¬«      e$dÍ„ «       «       Z~ e+«       e#dÎ„ «       «       Z e+«       e#dÏ„ «       «       Z€ e+«       e$dÐ„ «       «       Z� e+«       dÑ„ «       Z‚ e+«       e#dÒ„ «       «       Zƒ e+«       e#dÓ„ «       «       Z„ e+«       e#dÔ„ «       «       Z… e+«       dÕ„ «       Z† e+«       e#dÖ„ «       «       Z‡ e+«       e$d×„ «       «       Zˆ e+«       e$dØ„ «       «       Z‰ e+«       e#dÙ„ «       «       ZŠ e+«       e$dÚ„ «       «       Z‹ e+«       e#dÛ„ «       «       ZŒ e+«       e#dÜ„ «       «       Z� e+«       e#dÝ„ «       «       ZŽ e+«       e#dÞ„ «       «       Z� e+«       e$dß„ «       «       Z� e+«       e#dà„ «       «       Z‘ e+dá«       e+dâ«      e$dã„ «       «       «       Z’dä„ Z“då„ Z”dæ„ Z•dç„ Z–dè„ Z— e+dé«       e+dê«      dë„ «       «       Z˜ e+«       dì„ «       Z™ e+dí«       e+dî«      dï„ «       «       Zš e+«       dð„ «       Z› e+dñ«       e+dò«       e+dó«       e+dô«      dõ„ «       «       «       «       Zœ e+«       e#dö„ «       «       Z� e+«       d÷„ «       Zž e+«       dø„ «       ZŸ e+«       dù„ «       Z  e+«       dú„ «       Z¡ e+«       dû„ «       Z¢ e+«       dü„ «       Z£ e+«       e$dý„ «       «       Z¤ e+d¬«      e#dþ„ «       «       Z¥ e+d¬«      dÿ„ «       Z¦ e+d¬«      �d „ «       Z§ e+d�¬«      e$�d„ «       «       Z¨ e+dd�¬«      e$�d„ «       «       Z© e+«       e$�d„ «       «       Zª e+d¬«      e$�d„ «       «       Z« e+d¬«      e$�d„ «       «       Z¬ e+d¬«      e$�d„ «       «       Z­ e+d¬«      �d	„ «       Z® e+d�¬«      e$�d
„ «       «       Z¯ e+dd�¬«      �d„ «       Z° e+d¬«      e$�d„ «       «       Z± e+d¬«      e#�d„ «       «       Z² e+d¬«      e#�d„ «       «       Z³ e+d¬«      e#�d„ «       «       Z´ e+dd�¬«      e�d„ «       «       Zµ e+«       �d„ «       Z¶ e+«       e$�d„ «       «       Z· e+«       �d„ «       Z¸y(  z^Validate properties.

See https://www.w3.org/TR/CSS21/propidx.html and various CSS3 modules.

é    )Úinf)Úparse_component_value_list©Úparse_coloré   )Úcomputed_values)ÚFunctionÚ	check_var)ÚKNOWN_PROPERTIESÚZERO_PIXELSÚ	Dimension)ÚInvalidValuesÚPendingÚcomma_separated_listÚ	get_angleÚget_content_listÚget_content_list_tokenÚget_custom_identÚ	get_imageÚget_keywordÚ
get_lengthÚ
get_numberÚget_percentageÚget_resolutionÚget_single_keywordÚget_urlÚparse_2d_positionÚparse_positionÚremove_whitespaceÚsingle_keywordÚsingle_tokenz-weasy-c                   ó   — e Zd ZdZd„ Zy)ÚPendingPropertyz>Property with validation done when defining calculated values.c                 ó:   — t        || j                  «      d   d   S )Nr   é   )Úvalidate_non_shorthandÚname)ÚselfÚtokensÚ
wanted_keys      ú[/var/www/zogu/zoguvenv/lib/python3.12/site-packages/weasyprint/css/validation/properties.pyÚvalidatezPendingProperty.validate$   s   € Ü% f¨d¯i©iÓ8¸Ñ;¸AÑ>Ð>ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r,   © r-   r+   r#   r#   "   s
   „ ÙHó?r-   r#   Nc                 ó   ‡ ‡‡‡— ˆ ˆˆˆfd„}|S )u@  Decorator adding a function to the ``PROPERTIES``.

    The name of the property covered by the decorated function is set to
    ``property_name`` if given, or is inferred from the function name
    (replacing underscores by hyphens).

    :param proprietary:
        Proprietary (vendor-specific, non-standard) are prefixed: anchors can
        for example be set using ``-weasy-anchor: attr(id)``.
        See https://www.w3.org/TR/CSS/#proprietary
    :param unstable:
        Mark properties that are defined in specifications that didn't reach
        the Candidate Recommandation stage. They can be used both
        vendor-prefixed or unprefixed.
        See https://www.w3.org/TR/CSS/#unstable-syntax
    :param wants_base_url:
        The function takes the stylesheetâ€™s base URL as an additional
        parameter.

    c                 ó  •— ‰€| j                   j                  dd«      }n‰}|t        v sJ |«       ‚|t        vsJ |«       ‚‰| _        | t        |<   ‰rt
        j                  |«       ‰rt        j                  |«       | S )z'Add ``function`` to the ``PROPERTIES``.Ú_ú-)r.   Úreplacer   Ú
PROPERTIESÚwants_base_urlÚPROPRIETARYÚaddÚUNSTABLE)Úfunctionr'   Úproperty_nameÚproprietaryÚunstabler9   s     €€€€r+   Ú	decoratorzproperty.<locals>.decorator@   s‚   ø€ àÐ Ø×$Ñ$×,Ñ,¨S°#Ó6‰Dà ˆDØÔ'Ñ'Ð-¨Ó-Ð'Øœ:Ñ%Ð+ tÓ+Ð%à"0ˆÔØ#Œ
�4ÑÙÜ�O‰O˜DÔ!ÙÜ�L‰L˜ÔØˆr-   r2   )r>   r?   r@   r9   rA   s   ```` r+   ÚpropertyrB   *   s   û€ ÷,ð  Ðr-   c                 ó˜  — |s$|t         vr|j                  d«      st        d«      ‚|s$|t        vr|j                  d«      st        d«      ‚| D ]  }t	        |«      sŒ|t        | |«      ffc S  |j                  d«      r|| ffS t        |   }t        | «      }|dv r|}n&|j                  r
 || |«      }n || «      }|€t        ‚||ffS )z'Validator for non-shorthand properties.z--zunknown propertyzproperty not supported yet)ÚinitialÚinherit)r   Ú
startswithr   r8   r
   r#   r   r9   )r)   r'   Úbase_urlÚrequiredÚtokenr=   ÚkeywordÚvalues           r+   r&   r&   S   så   € á˜Ô$4Ñ4¸T¿_¹_ÈTÔ=RÜÐ.Ó/Ð/á˜¤JÑ.°t·±ÀtÔ7LÜÐ8Ó9Ð9àò <ˆÜ�UÕàœ?¨6°4Ó8Ð9Ð;Ò;ð<ð
 ‡��tÔØ�v�Ð Ð ä˜$Ñ€HÜ  Ó(€GØÐ(Ñ(Ø‰à×"Ò"Ù˜V XÓ.‰Eá˜VÓ$ˆEØˆ=ÜÐØ�5ˆMÐÐr-   c                 ó
   — | dv S )z.``background-attachment`` property validation.)ÚscrollÚfixedÚlocalr2   ©rJ   s    r+   Úbackground_attachmentrQ   q   s   € ð
 Ð2Ð2Ð2r-   zbackground-colorzborder-top-colorzborder-right-colorzborder-bottom-colorzborder-left-colorzborder-block-start-colorzborder-block-end-colorzborder-inline-start-colorzborder-inline-end-colorzcolumn-rule-colorT)r@   ztext-decoration-colorc                 ó   — t        | «      r| S y ©Nr   ©rI   s    r+   Úother_colorsrU   y   s   € ô �5ÔØˆð r-   c                 ó<   — t        | «      dk(  ryt        | «      r| S y )NÚinvertÚcurrentcolor)r   r   rT   s    r+   Úoutline_colorrY   Š   s&   € ô �5Ó˜XÒ%ØÜ	�UÔ	Øˆð 
r-   c                 ó
   — | dv S )N)ÚseparateÚcollapser2   rP   s    r+   Úborder_collapser]   “   s   € ð Ð.Ð.Ð.r-   c                 ó
   — | dv S )z$``empty-cells`` property validation.)ÚshowÚhider2   rP   s    r+   Úempty_cellsra   ™   s   € ð Ð&Ð&Ð&r-   Úcolorc                 ó.   — t        | «      }|dk(  ry|r| S y)z0``*-color`` and ``color`` properties validation.rX   rE   Nr   )rI   Úresults     r+   rb   rb       s&   € ô ˜Ó€FØ�ÒØÙ	Øˆð 
r-   zbackground-image)r9   c                 ó8   — t        | «      dk(  ryt        | |«      S ©NÚnone©rg   N©r   r   ©rI   rG   s     r+   Úbackground_imagerk   «   ó!   € ô �5Ó˜VÒ#ØÜ�U˜HÓ%Ð%r-   zlist-style-imagec                 ó|   — t        | «      dk(  ryt        | |«      }|r|d   dk(  r|d   d   dk(  r
d|d   d   fS yyy)z)``list-style-image`` property validation.rg   rh   r   Úurlr%   ÚexternalN)r   r   )rI   rG   Ú
parsed_urls      r+   Úlist_style_imagerq   ´   sa   € ô �5Ó˜VÒ#ØÜ˜ Ó)€JÙØ�a‰=˜EÒ! j°¡m°AÑ&6¸*Ò&DØ˜* Q™-¨Ñ*Ð*Ð*ð 'EÐ!ð r-   c                 ó>   — t        | «      dk(  r| dd } t        | «      S )z)``transform-origin`` property validation.é   Nr   )Úlenr   ©r)   s    r+   Útransform_originrv   À   s&   € ô ˆ6ƒ{�aÒà˜˜�ˆÜ˜VÓ$Ð$r-   c                 ó   — t        | «      S )z,``background-position`` property validation.©r   ru   s    r+   Úbackground_positionry   É   ó   € ô ˜&Ó!Ð!r-   c                 ó   — t        | «      S )z(``object-position`` property validation.rx   ru   s    r+   Úobject_positionr|   Ð   rz   r-   c                 ó¦   — t        t        t        | «      «      }|dk(  ry|dk(  ry|dv r|dz  S t        |«      dk(  rt	        d„ |D «       «      r|S yy)	z*``background-repeat`` property validation.)zrepeat-x)Úrepeatú	no-repeat)zrepeat-y)r   r~   ))r   )r~   )Úspace)Úroundr   c              3   ó$   K  — | ]  }|d v –— Œ
 y­w))r   r~   r€   r�   Nr2   )Ú.0Úks     r+   ú	<genexpr>z$background_repeat.<locals>.<genexpr>â   s   è ø€ ò "àð Ð:Ô:ñ"ùó   ‚N)ÚtupleÚmapr   rt   Úall©r)   Úkeywordss     r+   Úbackground_repeatrŒ   ×   sm   € ô ”Sœ fÓ-Ó.€HØ�=Ò Ø&Ø�=Ò Ø&ØÐHÑHØ˜!‰|ÐÜ
ˆ8ƒ}˜Òœcñ "àô"ô ð ˆðÐr-   c                 óh  — t        | «      dk(  r1| d   }t        |«      }|dv r|S |dk(  ryt        |dd¬«      }|r|dfS y
t        | «      d	k(  reg }| D ]D  }t        |dd¬«      }|r|j                  |«       Œ%t        |«      dk(  sŒ4|j                  d«       ŒF t        |«      d	k(  rt	        |«      S y
y
)z#Validation for ``background-size``.r%   r   )ÚcontainÚcoverÚauto)r�   r�   FT©ÚnegativeÚ
percentager   N)rt   r   r   Úappendr‡   )r)   rI   rJ   ÚlengthÚvaluess        r+   Úbackground_sizer—   è   sÕ   € ô ˆ6ƒ{�aÒØ�q‘	ˆÜ˜eÓ$ˆØÐ*Ñ*ØˆNØ�fÒØ#Ü˜E¨E¸dÔCˆÙØ˜FÐ#Ð#ð ä	ˆV‹˜Ò	ØˆØò 	&ˆEÜ °À$ÔGˆFÙØ—‘˜fÕ%Ü˜UÓ# vÓ-Ø—‘˜fÕ%ð	&ô ˆv‹;˜!ÒÜ˜“=Ð ð ð 
r-   zbackground-clipzbackground-originc                 ó
   — | dv S )z\Validation for the ``<box>`` type used in ``background-clip``
    and ``background-origin``.)ú
border-boxúpadding-boxúcontent-boxr2   rP   s    r+   Úboxrœ     s   € ð ÐBÐBÐBr-   c                 ó¼   — | D �cg c]  }t        |d¬«      ‘Œ }}t        |«      r2t        |«      dk(  r
|d   |d   fS t        |«      dk(  rt        |«      S yyc c}w )z,Validator for the `border-spacing` property.F©r’   r%   r   r   N©r   r‰   rt   r‡   ©r)   rI   Úlengthss      r+   Úborder_spacingr¢     sk   € ð ?EÖE°UŒz˜%¨%Ö0ÐE€GÐEÜ
ˆ7„|Üˆw‹<˜1ÒØ˜A‘J ¨¡
Ð+Ð+Ü�‹\˜QÒÜ˜“>Ð!ð ð ùò Fs   …Azborder-top-right-radiuszborder-bottom-right-radiuszborder-bottom-left-radiuszborder-top-left-radiuszborder-start-start-radiuszborder-start-end-radiuszborder-end-start-radiuszborder-end-end-radiusc                 ó¾   — | D �cg c]  }t        |dd¬«      ‘Œ }}t        |«      r2t        |«      dk(  r
|d   |d   fS t        |«      dk(  rt        |«      S yyc c}w )z/Validator for the `border-*-radius` properties.FTr‘   r%   r   r   NrŸ   r    s      r+   Úborder_corner_radiusr¤     sn   € ð PVÖVÀeŒz˜%¨%¸DÖAÐV€GÐVÜ
ˆ7„|Üˆw‹<˜1ÒØ˜A‘J ¨¡
Ð+Ð+Ü�‹\˜QÒÜ˜“>Ð!ð ð ùò Ws   …Azborder-top-stylezborder-right-stylezborder-left-stylezborder-bottom-stylezborder-block-start-stylezborder-block-end-stylezborder-inline-start-stylezborder-inline-end-stylezcolumn-rule-stylec                 ó
   — | dv S )z)``border-*-style`` properties validation.)
rg   ÚhiddenÚdottedÚdashedÚdoubleÚinsetÚoutsetÚgrooveÚridgeÚsolidr2   rP   s    r+   Úborder_styler¯   )  s   € ð ð Fð Fð Fr-   zbreak-beforezbreak-afterc                 ó
   — | dv S )z;``break-before`` and ``break-after`` properties validation.)r�   Úavoidú
avoid-pageÚpageÚleftÚrightÚrectoÚversoúavoid-columnÚcolumnÚalwaysr2   rP   s    r+   Úbreak_before_afterr»   9  s   € ð
 ð Mð Mð Mr-   c                 ó
   — | dv S )z%``break-inside`` property validation.)r�   r±   r²   r¸   r2   rP   s    r+   Úbreak_insider½   B  s   € ð ÐEÐEÐEr-   c                 ó
   — | dv S )z-``box-decoration-break`` property validation.)ÚsliceÚcloner2   rP   s    r+   Úbox_decoration_breakrÁ   I  ó   € ð Ð(Ð(Ð(r-   c                 ó`   — | j                   dk(  rd| j                  fS t        | «      }|dv r|S y)z%``box-ellipsis`` property validation.Ústring©rg   r�   N)ÚtyperK   r   ©rI   rJ   s     r+   Úblock_ellipsisrÈ   P  s<   € ð ‡z�z�XÒØ˜%Ÿ+™+Ð&Ð&ä˜eÓ$ˆØÐ&Ñ&ØˆNð 'r-   Úcontinuec                 ó
   — | dv S )z!``continue`` property validation.)r�   Údiscardr2   rP   s    r+   Ú	continue_rÌ   \  ó   € ð Ð)Ð)Ð)r-   c                 óZ   — t        | dd¬«      x}r|j                  S t        | «      dk(  ryy )NFT©r’   Úintegerrg   ©r   rK   r   ©rI   Únumbers     r+   Ú	max_linesrÔ   c  s7   € ô ˜E¨E¸4Ô@Ð@€vÐ@Ø�|‰|ÐÜ	�UÓ	˜vÒ	%Øð 
&r-   c                 ó
   — | dv S )z%``margin-break`` property validation.)r�   ÚkeeprË   r2   rP   s    r+   Úmargin_breakr×   l  s   € ð Ð1Ð1Ð1r-   c                 ó\   — | j                   dk(  r| j                  dk(  rdS | j                  S y)z``page`` property validation.Úidentr�   N)rÆ   Úlower_valuerK   rT   s    r+   r³   r³   s  s1   € ð ‡z�z�WÒØ×*Ñ*¨fÒ4ˆvÐE¸%¿+¹+ÐEð r-   z
bleed-leftzbleed-rightz	bleed-topzbleed-bottomc                 ó6   — t        | «      dk(  ryt        | «      S )z``bleed`` property validation.r�   ©r   r   rT   s    r+   ÚbleedrÝ   {  s   € ô �5Ó˜VÒ#Øä˜%Ó Ð r-   c                 ó°   — t        | «      dk(  rt        d„ | D «       «      }d|v rd|v r|S y
y
t        | «      dk(  rt        | d   «      x}dv r|fS |dk(  ry	y
y
)z``marks`` property validation.r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   ©r   ©rƒ   rI   s     r+   r…   zmarks.<locals>.<genexpr>Œ  ó   è ø€ Ò@°œ U×+Ñ@ùó   ‚ÚcropÚcrossr%   r   )rä   rå   rg   r2   N)rt   r‡   r   )r)   r‹   rJ   s      r+   Úmarksræ   ˆ  s|   € ô ˆ6ƒ{�aÒÜÑ@¸Ô@Ó@ˆØ�XÑ '¨XÑ"5ØˆOð #6Ðä	ˆV‹˜Ò	Ü" 6¨!¡9Ó-Ð-ˆGÐ2CÑCØ�:ÐØ˜ÒØð ð 
r-   zoutline-stylec                 ó
   — | dv S )z(``outline-style`` properties validation.)	rg   r§   r¨   r©   rª   r«   r¬   r­   r®   r2   rP   s    r+   Úoutline_stylerè   –  s   € ð ð =ð =ð =r-   zborder-top-widthzborder-right-widthzborder-left-widthzborder-bottom-widthzborder-block-start-widthzborder-block-end-widthzborder-inline-start-widthzborder-inline-end-widthzcolumn-rule-widthzoutline-widthc                 óH   — t        | d¬«      x}r|S t        | «      x}dv r|S y)z=Border, column rule and outline widths properties validation.Frž   )ÚthinÚmediumÚthickN©r   r   ©rI   r•   rJ   s      r+   Úborder_widthrï   ž  s9   € ô ˜E¨EÔ2Ð2€vÐ2ØˆÜ˜uÓ%Ð%ˆÐ*EÑEØˆð Fr-   zborder-image-sourcezmask-border-sourcec                 ó8   — t        | «      dk(  ryt        | |«      S rf   ri   rj   s     r+   Úborder_image_sourcerñ   ±  rl   r-   zborder-image-slicezmask-border-slicec                 ó~  — g }d}t        | «      D ]~  \  }}t        |d¬«      x}r|j                  |«       Œ't        |«      dk(  r(|s&|dt	        | «      dz
  fv rd}|j                  d«       Œ]t        |d¬«      x}r|j                  |«       Œ~ y  dt	        |«      t        |«      z
  cxk  rdk  rt        |«      S  y y )NFrž   Úfillr   r%   Té   )Ú	enumerater   r”   r   rt   r   Úintr‡   )r)   r–   ró   ÚirI   r“   rÓ   s          r+   Úborder_image_slicerø   º  sÅ   € ð €FØ€DÜ˜fÓ%ò 
‰ˆˆ5ä'¨¸Ô>Ð>ˆ:Ð>Ø�M‰M˜*Õ%Ü˜Ó 6Ò)±$¸1ÀÄCÈÃKÐRSÁOÐ@TÑ;TØˆDØ�M‰M˜&Õ!Ü! %°%Ô8Ð8ˆVÐ8Ø�M‰M˜&Õ!áð
ð 	ŒC�‹Kœ#˜d›)Ñ#Ô( qÒ(Ü�V‹}Ðò )r-   zborder-image-widthzmask-border-widthc                 ó   — g }| D ]f  }t        |«      dk(  r|j                  d«       Œ#t        |d¬«      x}r|j                  |«       ŒDt        |dd¬«      x}r|j                  |«       Œf y  dt	        |«      cxk  rdk  rt        |«      S  y y )Nr�   Frž   Tr‘   r%   rô   )r   r”   r   r   rt   r‡   ©r)   r–   rI   rÓ   r•   s        r+   Úborder_image_widthrû   Ï  s”   € ð €FØò ˆÜ�uÓ Ò'Ø�M‰M˜&Õ!Ü! %°%Ô8Ð8ˆVÐ8Ø�M‰M˜&Õ!Ü! %°%ÀDÔIÐIˆVÐIØ�M‰M˜&Õ!áðð 	ŒC�‹KÔ˜1ÒÜ�V‹}Ðò r-   zborder-image-outsetzmask-border-outsetc                 óÞ   — g }| D ]E  }t        |d¬«      x}r|j                  |«       Œ$t        |d¬«      x}r|j                  |«       ŒE y  dt        |«      cxk  rdk  rt	        |«      S  y y )NFrž   r%   rô   )r   r”   r   rt   r‡   rú   s        r+   Úborder_image_outsetrý   á  sy   € ð €FØò ˆÜ °Ô6Ð6ˆ6Ð6Ø�M‰M˜&Õ!Ü! %°%Ô8Ð8ˆVÐ8Ø�M‰M˜&Õ!áðð 	ŒC�‹KÔ˜1ÒÜ�V‹}Ðò r-   zborder-image-repeatzmask-border-repeatc                 ó|   — dt        | «      cxk  rdk  r(n y t        d„ | D «       «      }t        |«      h d£k  r|S y y )Nr%   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   rà   rá   s     r+   r…   z&border_image_repeat.<locals>.<genexpr>õ  râ   rã   >   r�   r€   r~   Ústretch)rt   r‡   ÚsetrŠ   s     r+   Úborder_image_repeatr  ñ  sB   € ð 	ŒC�‹KÔ˜1ÕÜÑ@¸Ô@Ó@ˆÜˆx‹=ÒCÒCØˆOð Dð r-   c                 ó
   — | dv S )N)Ú	luminanceÚalphar2   rP   s    r+   Úmask_border_moder  ú  s   € ð Ð,Ð,Ð,r-   c                 óJ   — t        | d¬«      x}r|S t        | «      }|dk(  r|S y)z%``column-width`` property validation.Frž   r�   Nrí   rî   s      r+   Úcolumn_widthr     s7   € ô ˜E¨EÔ2Ð2€vÐ2ØˆÜ˜%Ó €GØ�&ÒØˆð r-   c                 ó
   — | dv S )z$``column-span`` property validation.)r‰   rg   r2   rP   s    r+   Úcolumn_spanr
    s   € ð �oÐ%Ð%r-   c                 ó
   — | dv S )z7Validation for the ``box-sizing`` property from css3-ui)rš   r™   r›   r2   rP   s    r+   Ú
box_sizingr    s   € ð ÐBÐBÐBr-   c                 ó
   — | dv S )z'``caption-side`` properties validation.)ÚtopÚbottomr2   rP   s    r+   Úcaption_sider    s   € ð Ð'Ð'Ð'r-   c                 ó
   — | dv S )z``clear`` property validation.)r´   rµ   úinline-startú
inline-endÚbothrg   r2   rP   s    r+   Úclearr     s   € ð ÐUÐUÐUr-   c                 ó:  — t        | «      }|j                  «       }|j                  dk(  rbt        |«      dk(  rTg }|D ]B  }t	        |«      dk(  r|j                  d«       Œ#t        |«      x}r|j                  |«       ŒB y t        |«      S t	        | «      dk(  ryy)z%Validation for the ``clip`` property.Úrectrô   r�   Nr2   )r	   Úsplit_commar'   rt   r   r”   r   r‡   )rI   r=   Ú	argumentsr–   Úargumentr•   s         r+   Úclipr  '  sŸ   € ô ˜‹€HØ×$Ñ$Ó&€IØ‡}�}˜Ò¤3 y£>°QÒ#6ØˆØ!ò 	ˆHÜ˜8Ó$¨Ò.Ø—‘˜fÕ%Ü% hÓ/Ð/�Ð/Ø—‘˜fÕ%áð	ô �V‹}ÐÜ	�UÓ	˜vÒ	%Øð 
&r-   c                 óê  — t        | «      } g }| rot        | «      dk\  r]| d   j                  dk(  rK| d   j                  dk(  r9| d   | dd } }t	        ||«      xs t        ||«      x}r|j                  |«       nyn| rŒot        | «      dk(  ryt        | «      dk\  r;| d   j                  d	k(  r)| d
   j                  dk(  r| d
   j                  dk(  r| dd
 } t        | «      }|dv r|fS t        | |«      S )z ``content`` property validation.r   r%   Úliteralú,r   Nrs   éÿÿÿÿrÄ   éþÿÿÿú/©Únormalrg   )	Úlistrt   rÆ   rK   r   r   r”   r   r   )r)   rG   Úparsed_tokensrI   Úparsed_tokenrJ   s         r+   Úcontentr'  ;  s
  € ô �&‹\€FØ€MÙ
Üˆv‹;˜!Ò  q¡	§¡°)Ò ;ÀÀqÁ	ÇÁÐSVÒ@VØ" 1™I v¨a¨b z�6ˆEÜ(¨°Ó9ÒU¼WÀUÈHÓ=UÐUˆ|ÐUØ×$Ñ$ \Õ2ààò ô ˆ6ƒ{�aÒØÜ
ˆ6ƒ{�aÒ˜F 2™JŸO™O¨xÒ7Ø�2‰J�O‰O˜yÒ(¨V°B©Z×-=Ñ-=ÀÒ-Dà˜˜�ˆÜ  Ó(€GØÐ$Ñ$ØˆzÐÜ˜F HÓ-Ð-r-   c                 ó   — t        | d¬«      S )z*``counter-increment`` property validation.r%   ©Údefault_integer©Úcounterru   s    r+   Úcounter_incrementr-  V  ó   € ô �6¨1Ô-Ð-r-   c                 ó   — t        | d¬«      S )z&``counter-reset`` property validation.r   r)  r+  ru   s    r+   Úcounter_resetr0  \  r.  r-   c                 ó   — t        | d¬«      S )z$``counter-set`` property validation.r   r)  r+  ru   s    r+   Úcounter_setr2  b  r.  r-   c                 óv  — t        | «      dk(  ryt        | «      } t        | d«      }|sJ d«       ‚g }|�||j                  dk7  ry|j                  }|dv rt        d|› �«      ‚t        | d«      }|r(t        |d¬	«      x}r|j                  }t        | d«      }n|}|j                  ||f«       |�Œ|t        |«      S )
zB``counter-increment`` and ``counter-reset`` properties validation.rg   r2   Nzgot an empty token listrÙ   )rg   rD   rE   zInvalid counter name: T©rÐ   )	r   ÚiterÚnextrÆ   rK   r   r   r”   r‡   )r)   r*  rI   ÚresultsÚcounter_namerÓ   rÐ   s          r+   r,  r,  h  sÕ   € ä˜&Ó! VÒ+ØÜ�&‹\€FÜ�˜Ó€EÙÐ+Ð+Ó+ˆ5Ø€GØ
Ð
Ø�:‰:˜Ò ØØ—{‘{ˆØÐ9Ñ9ÜÐ"8¸¸Ð GÓHÐHÜ�V˜TÓ"ˆÙ¤
¨5¸$Ô ?Ð?�fÐ?à—l‘lˆGÜ˜ Ó&‰Eð &ˆGØ�‰˜ gÐ.Ô/ð Ñ
ô  �‹>Ðr-   r  rµ   r´   r  zinset-block-startzinset-block-endzinset-inline-startzinset-inline-endz
margin-topzmargin-rightzmargin-bottomzmargin-leftzmargin-block-startzmargin-block-endzmargin-inline-startzmargin-inline-endztext-underline-offsetc                 óD   — t        | d¬«      x}r|S t        | «      dk(  ryy)z5``margin-*`` and various other properties validation.T©r“   r�   Nrí   ©rI   r•   s     r+   Úlenght_precentage_or_autor<  ƒ  s0   € ô( ˜E¨dÔ3Ð3€vÐ3ØˆÜ�5Ó˜VÒ#Øð $r-   ÚheightÚwidthz
block-sizezinline-sizec                 óF   — t        | dd¬«      x}r|S t        | «      dk(  ryy)z7Validation for the ``width`` and ``height`` properties.FTr‘   r�   Nrí   r;  s     r+   Úwidth_heightr@  �  s2   € ô ˜E¨E¸dÔCÐC€vÐCØˆÜ�5Ó˜VÒ#Øð $r-   z
column-gapzrow-gapc                 óL   — t        | dd¬«      x}r|S t        | «      }|dk(  r|S y)z=Validation for the ``column-gap`` and ``row-gap`` properties.TF)r“   r’   r#  Nrí   rî   s      r+   ÚgaprB  ª  s9   € ô
 ˜E¨d¸UÔCÐC€vÐCØˆÜ˜%Ó €GØ�(ÒØˆð r-   c                 ó
   — | dv S )z$``column-fill`` property validation.)r�   Úbalancer2   rP   s    r+   Úcolumn_fillrE  ¶  rÍ   r-   c                 ó
   — | dv S )z"``direction`` property validation.)ÚltrÚrtlr2   rP   s    r+   Ú	directionrI  ½  s   € ð �nÐ$Ð$r-   c                 ór  — | D ]  }|j                   dk7  sŒ y t        | «      dk(  r:| d   j                  }|dv r|fS |dv rt        |j	                  d«      «      S |dk(  ry	dx}x}}| D ]1  }|j                  }|d
v r|r y|}Œ|dv r|r y|}Œ%|dk(  r|r y|}Œ1 y |xs d}|xs d}|r
|dv r|||fS y||fS )z ``display`` property validation.rÙ   Nr%   r   )	rg   ztable-captionztable-row-groupz
table-cellztable-header-groupztable-footer-groupz	table-rowztable-column-groupztable-column)zinline-tablezinline-flexzinline-gridr6   zinline-block)Úinlineú	flow-root)ÚblockrK  )ÚflowrL  ÚtableÚflexÚgridz	list-itemrM  rN  )rN  rL  )rÆ   rt   rK   r‡   Úsplit)r)   rI   rK   ÚoutsideÚinsideÚ	list_items         r+   ÚdisplayrV  Ä  s!  € ð ò ˆØ�:‰:˜Ó Ùðô ˆ6ƒ{�aÒØ�q‘	—‘ˆØð 6ñ 6ð �8ˆOØÐDÑDÜ˜Ÿ™ SÓ)Ó*Ð*Ø�nÒ$Ø*à#'Ð'€GÐ'ˆf�yØò ˆØ—‘ˆØÐ'Ñ'ÙÙØ‰GØÐDÑDÙÙØ‰FØ�kÒ!ÙÙØ‰Iáðð" Ò ˜€GØÒ�v€FÙØÐ*Ñ*Ø˜V YÐ/Ð/ð +ð ˜Ð Ð r-   Úfloatc                 ó
   — | dv S )z``float`` property validation.)r´   rµ   r  r  Úfootnoterg   r2   rP   s    r+   Úfloat_rZ  ò  s   € ð ð Kð Kð Kr-   c                 ó¼   — t        | «      dk(  r!| d   j                  dk(  r| d   j                  S | r+t        d„ | D «       «      rdj	                  d„ | D «       «      S yy)z$``font-family`` property validation.r%   r   rÄ   c              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)rÙ   N©rÆ   rá   s     r+   r…   zfont_family.<locals>.<genexpr>   s   è ø€ ÒB°%˜Ÿ
™
 gÕ-ÑBùó   ‚ú c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrS   ©rK   rá   s     r+   r…   zfont_family.<locals>.<genexpr>  ó   è ø€ Ò8¨˜Ÿ�Ñ8ùó   ‚N)rt   rÆ   rK   r‰   Újoinru   s    r+   Úfont_familyre  ú  sZ   € ô ˆ6ƒ{�aÒ˜F 1™IŸN™N¨hÒ6Ø�a‰y�‰ÐÙ	”CÑB¸6ÔBÔBØ�x‰xÑ8°Ô8Ó8Ð8ð Cˆr-   c                 ó
   — | dv S )N)r�   r#  rg   r2   rP   s    r+   Úfont_kerningrg    ó   € ð Ð0Ð0Ð0r-   c                 ó^   — t        | «      }|dk(  r|S | j                  dk(  r| j                  S y )Nr#  rÄ   ©r   rÆ   rK   rÇ   s     r+   Úfont_language_overriderk  
  s6   € ô ˜%Ó €GØ�(ÒØˆØ	�‰�xÒ	Ø�{‰{Ðð 
 r-   c                 ó|  ‡‡— t        | «      dk(  rt        | d   «      }|dv r|S g Šd}g }|D ]  }|j                  |«       Œ | D ]h  Š‰j                  dk7  r y ‰j                  |v rFt        ˆfd„|D «       «      }t        ˆfd„|D «       «      r y ‰j                  ‰j                  «       Œh y  ‰rt        ‰«      S y )Nr%   r   r"  ))zcommon-ligatureszno-common-ligatures)zhistorical-ligatureszno-historical-ligatures)zdiscretionary-ligatureszno-discretionary-ligatures)Ú
contextualzno-contextualrÙ   c              3   ó@   •K  — | ]  }‰j                   |v sŒ|–— Œ y ­wrS   ra  ©rƒ   ÚcouplerI   s     €r+   r…   z)font_variant_ligatures.<locals>.<genexpr>'  ó#   øè ø€ ò %GØ!°·±¸vÒ0E”ñ%Gùó   ƒ—c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wrS   r2   ©rƒ   rK   r–   s     €r+   r…   z)font_variant_ligatures.<locals>.<genexpr>)  ó   øè ø€ ÒB u�5˜F”?ÑBùó   ƒ©	rt   r   ÚextendrÆ   rK   r6  Úanyr”   r‡   ©r)   rJ   ÚcouplesÚ
all_valuesrp  Úconcurrent_valuesrI   r–   s         @@r+   Úfont_variant_ligaturesr~    sÙ   ù€ ä
ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØÐ(Ñ(ØˆNØ€Fð)€Gð
 €JØò "ˆØ×Ñ˜&Õ!ð"àò ˆØ�:‰:˜Ò ÙØ�;‰;˜*Ñ$Ü $ó %GØ%,ô%Gó !GÐäÓBÐ0AÔBÔBÙà—‘˜eŸk™kÕ*áðñ Ü�V‹}Ðð r-   c                 ó
   — | dv S )N)r#  ÚsubÚsuperr2   rP   s    r+   Úfont_variant_positionr‚  3  rh  r-   c                 ó
   — | dv S )N)r#  z
small-capszall-small-capszpetite-capszall-petite-capsÚunicaseztitling-capsr2   rP   s    r+   Úfont_variant_capsr…  9  s   € ð ð 6ð 6ð 6r-   c                 ó~  ‡‡— t        | «      dk(  rt        | d   «      }|dk(  r|S g Šd}g }|D ]  }|j                  |«       Œ | D ]h  Š‰j                  dk7  r y ‰j                  |v rFt        ˆfd„|D «       «      }t        ˆfd„|D «       «      r y ‰j                  ‰j                  «       Œh y  ‰rt        ‰«      S y )Nr%   r   r#  ))zlining-numszoldstyle-nums)zproportional-numsztabular-nums)zdiagonal-fractionszstacked-fractions)Úordinal)zslashed-zerorÙ   c              3   ó@   •K  — | ]  }‰j                   |v sŒ|–— Œ y ­wrS   ra  ro  s     €r+   r…   z'font_variant_numeric.<locals>.<genexpr>T  rq  rr  c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wrS   r2   rt  s     €r+   r…   z'font_variant_numeric.<locals>.<genexpr>V  ru  rv  rw  rz  s         @@r+   Úfont_variant_numericrŠ  A  sØ   ù€ ä
ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØ�hÒØˆNØ€Fð)€Gð
 €JØò "ˆØ×Ñ˜&Õ!ð"àò ˆØ�:‰:˜Ò ÙØ�;‰;˜*Ñ$Ü $ó %GØ%,ô%Gó !GÐäÓBÐ0AÔBÔBÙà—‘˜eŸk™kÕ*áðñ Ü�V‹}Ðð r-   c                 ój   — t        | «      dk(  rt        | d   «      dk(  ryt        d„ «       } || «      S )z.``font-feature-settings`` property validation.r%   r   r#  c                 óÈ  — d\  }}t        | «      dk(  rU| d d | d   }} |j                  dk(  rdddœj                  |j                  «      }n-t	        |dd	¬
«      x}r|j                  }nt        | «      dk(  rd}t        | «      dk(  rS| \  }|j                  dk(  r@t        |j                  «      dk(  r(t        d„ |j                  D «       «      r|j                  }|�|�||fS y y )N©NNr   r  rÙ   r%   r   )ÚonÚoffFTrÏ   rÄ   rô   c              3   óN   K  — | ]  }d t        |«      cxk  xr dk  nc –— Œ y­w)é    é   N)Úord)rƒ   Úletters     r+   r…   zLfont_feature_settings.<locals>.font_feature_settings_list.<locals>.<genexpr>v  s!   è ø€ ÒM°v�tœs 6›{Ö2¨d×2Ð2ÑMùs   ‚#%)rt   rÆ   ÚgetrK   r   r‰   )r)   ÚfeaturerK   rI   rÓ   s        r+   Úfont_feature_settings_listz9font_feature_settings.<locals>.font_feature_settings_listf  sä   € à#‰ˆ�äˆv‹;˜!ÒØ" 3 B˜K¨°©�EˆFØ�z‰z˜WÒ$Ø ¨Ñ+×/Ñ/°·±Ó<‘Ü% e°eÀTÔJÐJ�ÐJØŸ™‘Ü�‹[˜AÒØˆEäˆv‹;˜!ÒØ‰FˆEØ�z‰z˜XÒ%¬#¨e¯k©kÓ*:¸aÒ*?ÜÑMÀÇÁÔMÔMØ#Ÿk™k�GàÐ 5Ð#4Ø˜E�>Ð!ð $5Ðr-   ©rt   r   r   )r)   r—  s     r+   Úfont_feature_settingsr™  `  sB   € ô ˆ6ƒ{�aÒœK¨¨q©	Ó2°hÒ>Øäñ"ó ð"ñ* & fÓ-Ð-r-   c                 ó
   — | dv S )N)r#  zhistorical-formsr2   rP   s    r+   Úfont_variant_alternatesr›    s   € ð
 Ð4Ð4Ð4r-   c                 ó~  ‡‡— t        | «      dk(  rt        | d   «      }|dk(  r|S g Šd}g }|D ]  }|j                  |«       Œ | D ]h  Š‰j                  dk7  r y ‰j                  |v rFt        ˆfd„|D «       «      }t        ˆfd„|D «       «      r y ‰j                  ‰j                  «       Œh y  ‰rt        ‰«      S y )Nr%   r   r#  ))Újis78Újis83Újis90Újis04Ú
simplifiedÚtraditional)ú
full-widthzproportional-width)ÚrubyrÙ   c              3   ó@   •K  — | ]  }‰j                   |v sŒ|–— Œ y ­wrS   ra  ro  s     €r+   r…   z*font_variant_east_asian.<locals>.<genexpr>™  rq  rr  c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wrS   r2   rt  s     €r+   r…   z*font_variant_east_asian.<locals>.<genexpr>›  ru  rv  rw  rz  s         @@r+   Úfont_variant_east_asianr§  ‡  sØ   ù€ ä
ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØ�hÒØˆNØ€Fð€Gð €JØò "ˆØ×Ñ˜&Õ!ð"àò ˆØ�:‰:˜Ò ÙØ�;‰;˜*Ñ$Ü $ó %GØ%,ô%Gó !GÐäÓBÐ0AÔBÔBÙà—‘˜eŸk™kÕ*áðñ Ü�V‹}Ðð r-   c                 ój   — t        | «      dk(  rt        | d   «      dk(  ryt        d„ «       } || «      S )z0``font-variation-settings`` property validation.r%   r   r#  c                 óš   — t        | «      dk(  r=| \  }}|j                  dk(  r(|j                  dk(  r|j                  |j                  fS y y y )Nr   rÄ   rÓ   )rt   rÆ   rK   )r)   ÚkeyrK   s      r+   Úfont_variation_settings_listz=font_variation_settings.<locals>.font_variation_settings_list«  sN   € äˆv‹;˜!ÒØ‰JˆC�Ø�x‰x˜8Ò#¨¯
©
°hÒ(>Ø—y‘y %§+¡+Ð-Ð-ð )?Ð#ð r-   r˜  )r)   r«  s     r+   Úfont_variation_settingsr¬  ¥  sB   € ô ˆ6ƒ{�aÒœK¨¨q©	Ó2°hÒ>Øäñ.ó ð.ñ (¨Ó/Ð/r-   c                 ór   — t        | dd¬«      x}r|S t        | «      }|dv r|S |t        j                  v r|S y)z"``font-size`` property validation.FTr‘   )ÚsmallerÚlargerN)r   r   r   ÚFONT_SIZE_KEYWORDS)rI   r•   Úfont_size_keywords      r+   Ú	font_sizer²  µ  sP   € ô ˜E¨E¸dÔCÐC€vÐCØˆÜ# EÓ*ÐØÐ1Ñ1Ø Ð ØœO×>Ñ>Ñ>Ø Ð ð ?r-   c                 ó
   — | dv S )z#``font-style`` property validation.)r#  ÚitalicÚobliquer2   rP   s    r+   Ú
font_styler¶  Â  s   € ð Ð5Ð5Ð5r-   c                 ó
   — | dv S )z-Validation for the ``font-stretch`` property.)	zultra-condensedzextra-condensedÚ	condensedzsemi-condensedr#  zsemi-expandedÚexpandedzextra-expandedzultra-expandedr2   rP   s    r+   Úfont_stretchrº  É  s   € ð ð Ið Ið Ir-   c                 ó”   — t        | «      }|dv r|S | j                  dk(  r(| j                  �| j                  dv r| j                  S yyy)z$``font-weight`` property validation.)r#  ÚboldÚbolderÚlighterrÓ   N)	éd   éÈ   i,  i�  iô  iX  i¼  i   i„  )r   rÆ   Ú	int_valuerÇ   s     r+   Úfont_weightrÂ  Ó  sV   € ô ˜%Ó €GØÐ9Ñ9ØˆØ‡z�z�XÒ %§/¡/Ð"=Ø�?‰?ÐKÑKØ—?‘?Ð"ð Lð #>Ðr-   c                 ó
   — | dv S )N)ró   rŽ   r�   rg   z
scale-downr2   rP   s    r+   Ú
object_fitrÄ  ß  s   € ð ÐHÐHÐHr-   c                 ó   — t        | «      S rS   )r   rT   s    r+   Úimage_resolutionrÆ  è  s   € ô ˜%Ó Ð r-   zletter-spacingzword-spacingc                 ó@   — t        | «      dk(  ryt        | «      x}r|S y)z7Validation for ``letter-spacing`` and ``word-spacing``.r#  NrÜ   r;  s     r+   ÚspacingrÈ  ï  s.   € ô
 �5Ó˜XÒ%ØÜ˜EÓ"Ð"€vÐ"Øˆð #r-   c                 ó"   — t        | «      x}r|S y)z"Validation for ``outline-offset``.N©r   r;  s     r+   Úoutline_offsetrË  ú  s   € ô ˜EÓ"Ð"€vÐ"Øˆð #r-   c                 óh   — t        | «      dk(  ryt        | d¬«      x}r|S t        | dd¬«      x}r|S y)z$``line-height`` property validation.r#  Frž   Tr‘   N)r   r   r   )rI   rÓ   r•   s      r+   Úline_heightrÍ    sJ   € ô �5Ó˜XÒ%ØÜ˜e¨eÔ4Ð	4ˆÐ	4ØˆÜ˜e¨eÀÔEÐ	EˆÐ	EØˆð 
Fr-   c                 ó
   — | dv S )z,``list-style-position`` property validation.)rT  rS  r2   rP   s    r+   Úlist_style_positionrÏ    s   € ð Ð+Ð+Ð+r-   c                 óž  — | j                   dk(  r| j                  S | j                   dk(  rd| j                  fS | j                   dk(  �r| j                  dk(  rõd}t        | j                  «      x}syg }|d   j                   dk(  r3|d   j                  |v r!d}|j                  |d   j                  «       ny|j                  d	«       d}t        |«      |dz   k  ryt        |t        |«      «      D ]4  }||   j                   dk7  r y|j                  ||   j                  «       Œ6 |d   d
v rt        |«      dk  rydt        |«      fS yy)z(``list-style-type`` property validation.rÙ   rÄ   r=   Úsymbols)ÚcyclicÚnumericÚ
alphabeticÚsymbolicrN   Nr   r%   rÕ  )rÔ  rÓ  rs   z	symbols())	rÆ   rK   r'   r   r  r”   rt   Úranger‡   )rI   Úallowed_typesÚfunction_argumentsr  Úindexr÷   s         r+   Úlist_style_typerÚ    s`  € ð ‡z�z�WÒØ�{‰{ÐØ	�‰�xÒ	Ø˜%Ÿ+™+Ð&Ð&Ø	�‰�zÓ	! e§j¡j°IÒ&=ØPˆÜ&7¸¿¹Ó&HÐHÐ"ÐHØØˆ	Ø˜aÑ ×%Ñ%¨Ò0Ø! !Ñ$×*Ñ*¨mÑ;Ø�Ø× Ñ Ð!3°AÑ!6×!<Ñ!<Õ=àà×Ñ˜ZÔ(ØˆEÜÐ!Ó" U¨Q¡YÒ.ØÜ�uœcÐ"4Ó5Ó6ò 	:ˆAØ! !Ñ$×)Ñ)¨XÒ5ÙØ×ÑÐ/°Ñ2×8Ñ8Õ9ð	:ð �Q‰<Ð4Ñ4Ü�9‹~ Ò!ØØœU 9Ó-Ð.Ð.ð/ '>Ð	!r-   z	min-widthz
min-heightzmin-block-sizezmin-inline-sizec                 ó8   — t        | «      dk(  ryt        | g«      S )z7``min-width`` and ``min-height`` properties validation.r�   )r   Úlength_or_precentagerT   s    r+   Úmin_width_heightrÝ  7  s!   € ô �5Ó˜VÒ#Øä# U GÓ,Ð,r-   zpadding-topzpadding-rightzpadding-bottomzpadding-leftzpadding-block-startzpadding-block-endzpadding-inline-startzpadding-inline-endc                 ó(   — t        | dd¬«      x}r|S y)z$``padding-*`` properties validation.FTr‘   NrÊ  r;  s     r+   rÜ  rÜ  E  s#   € ô ˜E¨E¸dÔCÐC€vÐCØˆð Dr-   z	max-widthz
max-heightzmax-block-sizezmax-inline-sizec                 ód   — t        | dd¬«      x}r|S t        | «      dk(  rt        t        d«      S y)z'Validation for max-width and max-heightFTr‘   rg   ÚpxN)r   r   r   r   r;  s     r+   Úmax_width_heightrá  T  s<   € ô ˜E¨E¸dÔCÐC€vÐCØˆÜ�5Ó˜VÒ#Üœ˜dÓ#Ð#ð $r-   c                 ó¾   — t        | «      x}r t        dt        d|j                  «      «      S t	        | «      x}r#t        dt        d|j                  dz  «      «      S y)z(Validation for the ``opacity`` property.r%   r   r¿  N)r   ÚminÚmaxrK   r   )rI   rÓ   r“   s      r+   Úopacityrå  a  s`   € ô ˜EÓ"Ð"€vÐ"Ü�1”c˜!˜VŸ\™\Ó*Ó+Ð+Ü% eÓ,Ð	,ˆÐ	,Ü�1”c˜!˜Z×-Ñ-°Ñ3Ó4Ó5Ð5ð 
-r-   c                 óX   — t        | «      dk(  ryt        | d¬«      x}r|j                  S y)z(Validation for the ``z-index`` property.r�   Tr4  N)r   r   rK   rÒ   s     r+   Úz_indexrç  k  s5   € ô �5Ó˜VÒ#ØÜ˜e¨TÔ2Ð	2ˆÐ	2Ø�|‰|Ðð 
3r-   ÚorphansÚwidowsc                 ó\   — t        | dd¬«      x}r|j                  dk\  r|j                  S yy)z9Validation for the ``orphans`` and ``widows`` properties.FTrÏ   r%   N©r   rK   rÒ   s     r+   Úorphans_widowsrì  u  s9   € ô
 ˜E¨E¸4Ô@Ð@€vÐ@Ø�<‰<˜1ÒØ—<‘<Ðð ð Ar-   c                 óz   — t        | dd¬«      x}r|j                  dk\  r|j                  S yt        | «      dk(  ryy)z-Validation for the ``column-count`` property.FTrÏ   r%   r�   NrÑ   rÒ   s     r+   Úcolumn_countrî    óH   € ô ˜E¨E¸4Ô@Ð@€vÐ@Ø�<‰<˜1ÒØ—<‘<Ðð ä	�UÓ	˜vÒ	%Øð 
&r-   c                 ó
   — | dv S )z)Validation for the ``overflow`` property.)r�   Úvisibler¦   rM   r2   rP   s    r+   Úoverflowrò  Š  s   € ð Ð=Ð=Ð=r-   c                 ó
   — | dv S )z.Validation for the ``text-overflow`` property.)r  Úellipsisr2   rP   s    r+   Útext_overflowrõ  ‘  s   € ð Ð*Ð*Ð*r-   c                 ó  — | j                   dk(  r^| j                  dk(  rOt        | j                  «      dk(  r7| j                  d   j                   dk(  rd| j                  d   j                  fS t        | g«      }|dv r|S y)	z!``position`` property validation.r=   Úrunningr%   r   rÙ   z	running())ÚstaticÚrelativeÚabsoluterN   N)rÆ   r'   rt   r  rK   r   rÇ   s     r+   Úpositionrû  ˜  s{   € ð ‡z�z�ZÒ E§J¡J°)Ò$;Üˆu�‰Ó 1Ò$¨¯©¸Ñ);×)@Ñ)@ÀGÒ)KØ §¡°Ñ!3×!9Ñ!9Ð:Ð:Ü  % Ó)€GØÐ=Ñ=Øˆð >r-   c                 óÚ   — t        | «      dk(  rt        | d   «      x}dv r|S | rGt        | «      dz  dk(  r5t        d„ | D «       «      r"t        d„ | D «       «      }|ddd…   |ddd…   fS yyy)z``quotes`` property validation.r%   r   )r�   rg   r   c              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)rÄ   Nr]  rá   s     r+   r…   zquotes.<locals>.<genexpr>«  s   è ø€ Ò;¨5�—
‘
˜hÕ&Ñ;ùr^  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrS   ra  rá   s     r+   r…   zquotes.<locals>.<genexpr>¬  rb  rc  N)rt   r   r‰   r‡   )r)   rJ   Ústringss      r+   Úquotesr   ¤  s‡   € ô ˆ6ƒ{�aÒÜ" 6¨!¡9Ó-Ð-ˆGÐ2BÑBØˆNÙ”3�v“; ‘? aÒ'ÜÑ;°FÔ;Ô;ÜÑ8°Ô8Ó8ˆð ‘s˜�s‰|˜W Q T¨ T™]Ð*Ð*ð	 <ð (ˆr-   c                 ó   — | dv r| S y)z,Validation for the ``table-layout`` property)rN   r�   Nr2   rP   s    r+   Útable_layoutr  ²  s   € ð Ð#Ñ#Øˆð $r-   c                 ó
   — | dv S )z'``text-align-all`` property validation.)r´   rµ   ÚcenterÚjustifyÚstartÚendr2   rP   s    r+   Útext_align_allr  º  s   € ð ÐLÐLÐLr-   c                 ó
   — | dv S )z(``text-align-last`` property validation.)r�   r´   rµ   r  r  r  r  r2   rP   s    r+   Útext_align_lastr
  Á  ó   € ð ÐTÐTÐTr-   c                 ó¬   — | D �ch c]  }t        |«      ’Œ c}x}dhk(  ryh d£}t        | «      t        |«      k(  r|j                  |«      r|S yyc c}w )z-``text-decoration-line`` property validation.rg   >   úline-throughÚblinkÚoverlineÚ	underlineN)r   rt   Úissubset)r)   rI   r‹   Úallowed_valuess       r+   Útext_decoration_liner  È  s[   € ð 6<Ö<¨E”[ Õ'Ò<Ð<ˆÀ&ÀÒIØÚG€NÜ
ˆ6ƒ{”c˜(“mÒ#¨×(9Ñ(9¸.Ô(IØˆð )JÐ#ùò =s   …Ac                 ó   — | dv r| S y)z.``text-decoration-style`` property validation.)r®   r©   r§   r¨   ÚwavyNr2   rP   s    r+   Útext_decoration_styler  Ò  s   € ð ÐAÑAØˆð Br-   c                 óH   — t        | d¬«      x}r|S t        | «      x}dv r|S y)z2``text-decoration-thickness`` property validation.Tr:  )r�   z	from-fontNrí   rî   s      r+   Útext_decoration_thicknessr  Ú  s9   € ô ˜E¨dÔ3Ð3€vÐ3ØˆÜ  Ó'Ð
'ˆ'Ð,AÑ	AØˆð 
Br-   c                 ó&   — t        | d¬«      x}r|S y)z$``text-indent`` property validation.Tr:  NrÊ  r;  s     r+   Útext_indentr  ä  s    € ô ˜E¨dÔ3Ð3€vÐ3Øˆð 4r-   c                 ó
   — | dv S )z#``text-align`` property validation.)rg   Ú	uppercaseÚ	lowercaseÚ
capitalizer£  r2   rP   s    r+   Útext_transformr  ì  r  r-   c                 óH   — t        | d¬«      x}r|S t        | «      }|dv r|S y)z.Validation for the ``vertical-align`` propertyTr:  )ÚbaselineÚmiddler€  r�  ztext-topztext-bottomr  r  Nrí   rî   s      r+   Úvertical_alignr#  ó  s<   € ô ˜E¨dÔ3Ð3€vÐ3ØˆÜ˜%Ó €GØð ?ñ ?àˆð?r-   c                 ó
   — | dv S )ú$``white-space`` property validation.)rñ  r¦   r\   r2   rP   s    r+   Ú
visibilityr&  ÿ  s   € ð Ð7Ð7Ð7r-   c                 ó
   — | dv S )r%  )r#  ÚpreÚnowrapzpre-wrapzpre-liner2   rP   s    r+   Úwhite_spacer*    s   € ð ÐIÐIÐIr-   c                 ó
   — | dv S )z&``overflow-wrap`` property validation.)Úanywherer#  z
break-wordr2   rP   s    r+   Úoverflow_wrapr-    ó   € ð Ð:Ð:Ð:r-   c                 ó
   — | dv S )z#``word-break`` property validation.)r#  z	break-allr2   rP   s    r+   Ú
word_breakr0    s   € ð Ð-Ð-Ð-r-   c                 óB   — t        | g«      x}�|S t        | «      dk(  ryy)z#``flex-basis`` property validation.Nr'  )r@  r   )rI   Úbasiss     r+   Ú
flex_basisr3    s0   € ô ˜u˜gÓ&Ð&ˆÐ3ØˆÜ	�UÓ	˜yÒ	(Øð 
)r-   c                 ó
   — | dv S )z'``flex-direction`` property validation.)Úrowzrow-reverser¹   zcolumn-reverser2   rP   s    r+   Úflex_directionr6  %  s   € ð ÐHÐHÐHr-   z	flex-growzflex-shrinkc                 ó6   — t        | «      x}r|j                  S y rS   rë  rÒ   s     r+   Úflex_grow_shrinkr8  ,  s#   € ô ˜EÓ"Ð"€vÐ"Ø�|‰|Ðð #r-   c                 óP   — t        | «      x}dv r|S |ryt        | dd¬«      x}r|S y)zParse ``inflexible-breadth``.)r�   úmin-contentúmax-contentNFTr‘   rÜ   )rI   rJ   r•   s      r+   Ú_inflexible_breadthr<  4  s?   € ä˜uÓ%Ð%ˆÐ*PÑPØˆÙ	ØÜ˜e¨eÀÔEÐ	EˆÐ	EØˆð 
Fr-   c                 óê   — | j                   dk(  rZ| j                  dk\  rK| j                  j                  «       dk(  r.t	        | j                  | j                  j                  «       «      S t        | «      S )zParse ``track-breadth``.Ú	dimensionr   Úfr)rÆ   rK   ÚunitÚlowerr   r<  rT   s    r+   Ú_track_breadthrB  >  sW   € à‡z�z�[Ò  U§[¡[°AÒ%5¸%¿*¹*×:JÑ:JÓ:LÐPTÒ:TÜ˜Ÿ™ e§j¡j×&6Ñ&6Ó&8Ó9Ð9Ü˜uÓ%Ð%r-   c                 óN  — t        | «      x}r|S t        | «      }|j                  «       }|j                  dk(  r6t	        |«      dk(  r't        |d   «      }t        |d   «      }|r|rd||fS yyy|j                  dk(  r't	        |«      dk(  rt        |d   dd¬	«      x}rd
|fS yyy)zParse ``track-size``.Úminmaxr   r   r%   úminmax()zfit-contentFTr‘   zfit-content()N)rB  r	   r  r'   rt   r<  r   )rI   Útrack_breadthr=   r  Úinflexible_breadthr•   s         r+   Ú_track_sizerH  E  sÑ   € ä& uÓ-Ð-€}Ð-ØÐÜ˜‹€HØ×$Ñ$Ó&€IØ‡}�}˜Ò Üˆy‹>˜QÒÜ!4°Y¸q±\Ó!BÐÜ*¨9°Q©<Ó8ˆMÙ!¡mØ"Ð$6¸ÐFÐFð '4Ð!ð ð
 
�‰˜-Ò	'Üˆy‹>˜QÒÜ# I¨a¡L¸5ÈTÔRÐRˆvÐRØ'¨Ð0Ð0ð Sð ð 
(r-   c                 óN  — t        | dd¬«      x}r|S t        | «      }|j                  «       }|j                  dk(  rit	        |«      dk(  rZt        |d   dd¬«      x}rt        |d   «      }|rd||fS t        |d   «      }|d	v s|rt        |d   dd¬«      }|r	d|xs ||fS y
y
y
y
)zParse ``fixed-size``.FTr‘   rD  r   r   r%   rE  )r:  r;  r�   N)r   r	   r  r'   rt   rB  r   )rI   r•   r=   r  rF  rJ   Úfixed_breadths          r+   Ú_fixed_sizerK  W  sÔ   € ä˜E¨E¸dÔCÐC€vÐCØˆÜ˜‹€HØ×$Ñ$Ó&€IØ‡}�}˜Ò ¤S¨£^°qÒ%8Ü 	¨!¡°uÈÔNÐNˆ6ÐNÜ*¨9°Q©<Ó8ˆMÙØ" F¨MÐ:Ð:Ü˜i¨™lÓ+ˆØÐ<Ñ<ÁÜ& y°¡|¸eÐPTÔUˆMÙØ" FÒ$5¨g°}ÐEÐEð ð AGð &9Ð r-   c                 óÖ   — g }| j                   dk(  rX| j                  D ]>  } | j                   dk(  r|j                  | j                  «       Œ.| j                   dk7  sŒ> y t	        |«      S y)zParse ``line-names``.z[] blockrÙ   Ú
whitespaceN)rÆ   r'  r”   rK   r‡   )rI   Úreturn_line_namess     r+   Ú_line_namesrO  i  sg   € àÐØ‡z�z�ZÒØ—]‘]ò 	ˆEØ�z‰z˜WÒ$Ø!×(Ñ(¨¯©Õ5Ø—‘˜|Ó+Ùð		ô
 Ð&Ó'Ð'ð  r-   zgrid-auto-columnszgrid-auto-rowsc                 ój   — g }| D ]"  }t        |«      x}r|j                  |«       Œ" y t        |«      S )zC``grid-auto-columns`` and ``grid-auto-rows`` properties validation.N)rH  r”   r‡   )r)   Úreturn_tokensrI   Ú
track_sizes       r+   Ú	grid_autorS  u  sI   € ð €MØò ˆÜ$ UÓ+Ð+ˆ:Ð+Ø× Ñ  Ô,ØÙð	ô
 �ÓÐr-   c                 óæ   — t        | «      dk(  rt        | d   «      }|dv r|fS |dk(  r|dfS yt        | «      dk(  r1| D �cg c]  }t        |«      ‘Œ }}d|v rd|v sd|v rt        |«      S yyyc c}w )	z'``grid-auto-flow`` property validation.r%   r   )r5  r¹   Údenser5  r   r¹   N©rt   r   r‡   )r)   rJ   rI   r‹   s       r+   Úgrid_auto_flowrW  ‚  sœ   € ô ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØÐ'Ñ'Ø�:ÐØ˜ÒØ˜UÐ#Ð#ð  ä	ˆV‹˜Ò	Ø4:Ö;¨5”K Õ&Ð;ˆÐ;Ø�hÑ E¨XÑ$5¸ÀXÑ9MÜ˜“?Ð"ð :NÐð 
ùÚ;s   Á A.zgrid-template-columnszgrid-template-rowsc                 ó  — g }t        | «      dk(  rt        | d   «      dk(  ryt        | d   «      dk(  �rr|j                  d«       g }| dd D �]1  }t        |«      }|�|j                  |«       Œ#t	        |«      }|j                  d¬«      }|�t        |«      dk7  r y|\  }}t        |«      dk7  s|s y|\  }|j                  d	k(  r¶t        |«      dk\  r¨|j                  d
k(  r?t        |j                  «      j                  «       r|j                  dk\  r|j                  }	nt        |«      dk(  rd}	n yg }
|D ]!  }t        |«      }|€Œ|
j                  |«       Œ# |j                  d|	t        |
«      f«       �Œ2 y |j                  t        |«      «       t        |«      S d}d}d}| D �]-  }t        |«      }|�|r yd}|j                  |«       Œ)t        |«      }|r'|s|j                  d«       d}|j                  |«       Œ]t        |«      }|r)|s|j                  d«       d}|j                  |«       d}Œ“t	        |«      }|j                  d¬«      }|�t        |«      dk7  r y|\  }}t        |«      dk7  s|s y|\  }|j                  d	k(  �rAt        |«      dk\  �r2t        |dd¬«      x}	r|	j                  dk\  r/|	j                  }	n"t        |«      dv r|r y|j                  }	d}n yg }d}|D ]”  }t        |«      }|�|r  y|j                  |«       d}Œ)t        |«      }|r'|s|j                  d«       d}|j                  |«       Œ]t        |«      }|r)d}|s|j                  d«       d}|j                  |«       Œ“  y |s|j                  d«       d}|s|j                  d«       |j                  d|	t        |«      f«       �Œ. y |r|ry|s|j                  d«       t        |«      S )z@``grid-template-columns`` and ``grid-template-rows`` validation.r%   r   rg   ÚsubgridNF)Úsingle_tokensr   r~   rÓ   ú	auto-fillzrepeat()Tr2   rÏ   )r[  zauto-fit)rt   r   r”   rO  r	   r  r'   rÆ   rW  rK   Ú
is_integerrÁ  r‡   rK  rH  r   )r)   rQ  Úsubgrid_tokensrI   Ú
line_namesr=   r  r~   ÚtracksrÓ   Úline_names_listr  Úincludes_auto_repeatÚincludes_trackÚlast_is_line_nameÚ
fixed_sizerR  Únames_and_sizesÚrepeat_last_is_line_nameÚargs                       r+   Úgrid_templaterh  ‘  sP  € ð €MÜ
ˆ6ƒ{�aÒœK¨¨q©	Ó2°fÒ<ØÜ�6˜!‘9Ó Ó*Ø×Ñ˜YÔ'ØˆØ˜A˜B�Zó 	ˆEÜ$ UÓ+ˆJØÐ%Ø×%Ñ% jÔ1ØÜ “ˆHØ ×,Ñ,¸5Ð,ÓAˆIØÐ ¤C¨	£N°aÒ$7ÙØ&‰NˆF�FÜ�6‹{˜aÒ¡vÙØ‰GˆFØ�}‰} Ò(¬S°«^¸qÒ-@Ø—K‘K 8Ò+´°f·l±lÓ0C×0NÑ0NÔ0PØŸ™¨Ò)Ø#×-Ñ-‘FÜ  Ó(¨KÒ7Ø(‘FáØ"$�Ø &ò ;�HÜ!,¨XÓ!6�JØ!Ñ-Ø'×.Ñ.¨zÕ:ð;ð ×%Ñ% z°6¼5ÀÓ;QÐ&RÔSÙÙð9	ð: 	×ÑœU >Ó2Ô3ôp �ÓÐðm  %ÐØˆØ!ÐØó N	ˆEÜ$ UÓ+ˆJØÐ%Ù$ÙØ$(Ð!Ø×$Ñ$ ZÔ0ØÜ$ UÓ+ˆJÙÙ(Ø!×(Ñ(¨Ô,Ø$)Ð!Ø×$Ñ$ ZÔ0ØÜ$ UÓ+ˆJÙÙ(Ø!×(Ñ(¨Ô,Ø$)Ð!Ø×$Ñ$ ZÔ0Ø!%�ØÜ “ˆHØ ×,Ñ,¸5Ð,ÓAˆIØÐ ¤C¨	£N°aÒ$7ÙØ&‰NˆF�FÜ�6‹{˜aÒ¡vÙØ‰GˆFØ�}‰} Ó(¬S°«^¸qÓ-@Ü'¨¸ÈÔMÐM�6ÐMØ—|‘| qÒ(Ø!'§¡™Ü  Ó(Ð,EÑEá+ÙØ#Ÿ\™\�FØ+/Ñ(áØ"$�Ø+0Ð(Ø!ò �CÜ!,¨SÓ!1�JØ!Ð-Ù3Ú"Ø'×.Ñ.¨zÔ:Ø37Ð0Ø ä!,¨SÓ!1�JÙ!Ù7Ø+×2Ñ2°2Ô6Ø38Ð0Ø'×.Ñ.¨zÔ:Ø ä!,¨SÓ!1�JÙ!Ø)-˜Ù7Ø+×2Ñ2°2Ô6Ø38Ð0Ø'×.Ñ.¨zÔ:Ø Úð3ñ4 )Ø!×(Ñ(¨Ô,Ø$)Ð!Ù/Ø#×*Ñ*¨2Ô.Ø×$Ñ$ j°&¼%ÀÓ:PÐ%QÔRÙÙð]N	ñ^  ¡NØÙ Ø× Ñ  Ô$Ü�ÓÐr-   c                 ó:  — t        | «      dk(  rt        | d   «      dk(  ryg }| D ]Ç  }|j                  dk7  r yt        |j                  «      }g }d}|D ]x  }|j                  dk(  r|j                  |j                  «       d}Œ0|j                  dk(  r&|j                  d	k(  r|rŒQ|j                  d«       d
}Œe|j                  dk(  rd}Œw  y |s y|j                  t        |«      «       ŒÉ t        t        d„ |D «       «      «      dk(  �rt        «       }t        «       }t        |«      D ]á  \  }	}t        |«      D ]Î  \  }
}|
|	f|v s|€Œ||v r  y|j                  |«       |j                  |
|	f«       |
}t        ||
dz   d |
dz   ¬«      D ]  \  }}||k7  r n|j                  ||	f«       Œ! |dz  }t        ||	dz   d |	dz   ¬«      D ]=  \  }}t        ||
| «      |hk(  r%t        |
|«      D ]  }|j                  ||f«       Œ Œ= ŒÎ ŒÐ Œã t        |«      S y)z,``grid-template-areas`` property validation.r%   r   rg   rÄ   NFrÙ   r  ú.TrM  c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   )rt   )rƒ   r5  s     r+   r…   z&grid_template_areas.<locals>.<genexpr>0  s   è ø€ Ò.˜CŒs�3�xÑ.ùrã   )r  )rt   r   rÆ   r   rK   r”   r‡   r  rõ   r;   rÖ  )r)   Ú
grid_areasrI   Úcomponent_valuesr5  Úlast_is_dotrK   ÚcoordinatesÚareasÚyÚxÚareaÚnxÚnareaÚnyÚnrowÚnnxs                    r+   Úgrid_template_areasry    sE  € ô ˆ6ƒ{�aÒœK¨¨q©	Ó2°fÒ<ØØ€JØò &ˆØ�:‰:˜Ò!ÙÜ5°e·k±kÓBÐØˆØˆØ%ò 	ˆEØ�z‰z˜WÒ$Ø—
‘
˜5Ÿ;™;Ô'Ø#‘Ø—‘˜yÒ(¨U¯[©[¸CÒ-?ÙØØ—
‘
˜4Ô Ø"‘Ø—‘˜|Ò+Ø#‘âð	ñ ÙØ×Ñœ% ›*Õ%ð+&ô. Œ3Ñ. :Ô.Ó.Ó/°1Ó4ä“eˆÜ“ˆÜ 
Ó+ò 	‰FˆAˆsÜ$ S›>ò ‘��4Ø�q�6˜[Ñ(¨D¨LØØ˜5‘=ÚØ—	‘	˜$”Ø—‘  A Ô'Ø�Ü!*¨3¨q°©s¨t¨9¸A¸a¹CÔ!@ò ‘I�B˜Ø ’}ÙØ—O‘O R¨ GÕ,ðð
 ˜!‘G�BÜ )¨*°Q°q±S°TÐ*:À!ÀAÁ#Ô Fò ‘H�B˜Ü˜4  "˜:“¨4¨&Ò0Ü#(¨¨B£<ò 7˜CØ'ŸO™O¨S°"¨IÕ6ñ7ñ ññð	ô* �ZÓ Ð ð3 5r-   zgrid-row-startzgrid-row-endzgrid-column-startzgrid-column-endc                 ó  — t        | «      dk(  r\| d   }t        |«      x}r|dk(  r|S |dk7  rdd|j                  fS yt        |d¬«      x}r|j                  dk7  rd|j                  dfS ydx}x}}| D ]a  }t        |«      x}r$|dk(  r y|dk(  r|€d}Œ!|r|€|j                  }Œ2 yt        |d¬«      x}r|j                  dk7  r|€|j                  }Œa y |r t	        |t
        «      r|dk  ry|s|r|||fS y|r|||fS y)u:   ``grid-[row|column]-[startâ€”end]`` properties validation.r%   r   r�   ÚspanNTr4  )rt   r   rK   r   Ú
isinstancerö   )r)   rI   rJ   rÓ   rÙ   r{  Úitems          r+   Ú	grid_liner~  L  sd  € ô ˆ6ƒ{�aÒØ�q‘	ˆÜ! %Ó(Ð(ˆ7Ð(Ø˜&Ò Ø�Ø˜FÒ"Ø˜d E§K¡KÐ0Ð0ð 	ô " %°Ô6Ð6ˆVÐ6Ø�|‰|˜qÒ Ø˜fŸl™l¨DÐ1Ð1ØØ Ð €FÐ ˆU�TØò ˆÜ! %Ó(Ð(ˆ7Ð(Ø˜&Ò ÙØ˜&Ò Ø�<Ø!�DØÙ˜U˜]ØŸ™�Øñ
 	ô	   ¨tÔ4Ð4ˆTÐ4Ø�z‰z˜QŠ 6 >ØŸ™�ØÙðñ  Ü�fœcÔ" v°¢zØÙ‘fØ˜& %Ð(Ð(ð á	Ø�f˜eÐ$Ð$ð 
r-   c                 ó
   — | dv S )z"``flex-wrap`` property validation.)r)  Úwrapzwrap-reverser2   rP   s    r+   Ú	flex_wrapr�  w  s   € ð Ð8Ð8Ð8r-   c                 ó°   — t        | «      dk(  rt        | d   «      }|dv r|fS yt        | «      dk(  r$t        d„ | D «       «      }|d   dv r
|d   dv r|S yyy)	z(``justify-content`` property validation.r%   r   )r  úspace-betweenúspace-aroundúspace-evenlyr   r#  ú
flex-startúflex-endr  r  r´   rµ   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   rà   rá   s     r+   r…   z"justify_content.<locals>.<genexpr>‰  râ   rã   ©ÚsafeÚunsafe)r  r  r  r†  r‡  r´   rµ   NrV  ©r)   rJ   r‹   s      r+   Újustify_contentr�  ~  sŒ   € ô ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØð 1ñ 1ð �:Ðð	1ô
 
ˆV‹˜Ò	ÜÑ@¸Ô@Ó@ˆØ�A‰;Ð,Ñ,Ø˜‰{ð ñ ð  �ðð -ð 
r-   c                 ó  — t        | «      dk(  rt        | d   «      }|dv r|fS |dk(  rd|fS yt        | «      dk(  rJt        d„ | D «       «      }|d   dv r
|d   d	v r|S yd|v rd|v sd
|v r|S yd|v rt        |«      h d£z  r|S yyy)z&``justify-items`` property validation.r%   r   )r#  r   r  r  r  ú
self-startúself-endr†  r‡  r´   rµ   Úlegacyr!  Úfirstr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   rà   rá   s     r+   r…   z justify_items.<locals>.<genexpr>ž  râ   rã   r‰  ©	r  r  r  r�  r�  r†  r‡  r´   rµ   Úlastr‘  >   r´   rµ   r  N)rt   r   r‡   r  rŒ  s      r+   Újustify_itemsr–  ‘  sß   € ô ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØð ñ ð �:ÐØ˜
Ò"Ø˜WÐ%Ð%ð #ä	ˆV‹˜Ò	ÜÑ@¸Ô@Ó@ˆØ�A‰;Ð,Ñ,Ø˜‰{ð ?ñ ?ð  �ð?ð ˜8Ñ#Ø˜(Ñ" f°Ñ&8Ø�ð '9à˜Ñ!Ü�8‹}Ò:Ò:Ø�ð ;ð "ð 
r-   c                 óà   — t        | «      dk(  rt        | d   «      }|dv r|fS |dk(  rd|fS yt        | «      dk(  r3t        d„ | D «       «      }|d   dv r
|d   d	v r|S yd|v rd|v sd
|v r|S yyy)z%``justify-self`` property validation.r%   r   )r�   r#  r   r  r  r  r�  r�  r†  r‡  r´   rµ   r!  r’  r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   rà   rá   s     r+   r…   zjustify_self.<locals>.<genexpr>¹  râ   rã   r‰  r”  r•  NrV  rŒ  s      r+   Újustify_selfr™  ¬  sÀ   € ô ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØð ñ ð �:ÐØ˜
Ò"Ø˜WÐ%Ð%ð #ä	ˆV‹˜Ò	ÜÑ@¸Ô@Ó@ˆØ�A‰;Ð,Ñ,Ø˜‰{ð ?ñ ?ð  �ð?ð ˜8Ñ#Ø˜(Ñ" f°Ñ&8Ø�ð '9ð $ð 
r-   c                 óà   — t        | «      dk(  rt        | d   «      }|dv r|fS |dk(  rd|fS yt        | «      dk(  r3t        d„ | D «       «      }|d   dv r
|d   d	v r|S yd|v rd|v sd
|v r|S yyy)z$``align-items`` property validation.r%   r   )	r#  r   r  r  r  r�  r�  r†  r‡  r!  r’  r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   rà   rá   s     r+   r…   zalign_items.<locals>.<genexpr>Ð  râ   rã   r‰  ©r  r  r  r�  r�  r†  r‡  r•  NrV  rŒ  s      r+   Úalign_itemsr�  Ä  sÀ   € ô ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØð 6ñ 6ð �:ÐØ˜
Ò"Ø˜WÐ%Ð%ð #ä	ˆV‹˜Ò	ÜÑ@¸Ô@Ó@ˆØ�A‰;Ð,Ñ,Ø˜‰{ð .ñ .ð  �ð.ð ˜8Ñ#Ø˜(Ñ" f°Ñ&8Ø�ð '9ð $ð 
r-   c                 óà   — t        | «      dk(  rt        | d   «      }|dv r|fS |dk(  rd|fS yt        | «      dk(  r3t        d„ | D «       «      }|d   dv r
|d   d	v r|S yd|v rd|v sd
|v r|S yyy)z#``align-self`` property validation.r%   r   )
r�   r#  r   r  r  r  r�  r�  r†  r‡  r!  r’  r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   rà   rá   s     r+   r…   zalign_self.<locals>.<genexpr>ç  râ   rã   r‰  rœ  r•  NrV  rŒ  s      r+   Ú
align_selfr   Û  sÂ   € ô ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØð Dñ Dð �:ÐØ˜
Ò"Ø˜WÐ%Ð%ð #ä	ˆV‹˜Ò	ÜÑ@¸Ô@Ó@ˆØ�A‰;Ð,Ñ,Ø˜‰{ð .ñ .ð  �ð.ð ˜8Ñ#Ø˜(Ñ" f°Ñ&8Ø�ð '9ð $ð 
r-   c                 óà   — t        | «      dk(  rt        | d   «      }|dv r|fS |dk(  rd|fS yt        | «      dk(  r3t        d„ | D «       «      }|d   dv r
|d   d	v r|S yd|v rd|v sd
|v r|S yyy)z&``align-content`` property validation.r%   r   )
r  rƒ  r„  r…  r   r#  r†  r‡  r  r  r!  r’  r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   rà   rá   s     r+   r…   z align_content.<locals>.<genexpr>ÿ  râ   rã   r‰  )r  r  r  r†  r‡  r•  NrV  rŒ  s      r+   Úalign_contentr£  ò  sÁ   € ô ˆ6ƒ{�aÒÜ˜f Q™iÓ(ˆØð  ñ  ð �:ÐØ˜
Ò"Ø˜WÐ%Ð%ð #ä	ˆV‹˜Ò	ÜÑ@¸Ô@Ó@ˆØ�A‰;Ð,Ñ,Ø˜‰{ð Hñ Hà�ðHð ˜8Ñ#Ø˜(Ñ" f°Ñ&8Ø�ð '9ð $ð 
r-   c                 ó:   — t        | d¬«      x}r|j                  S y )NTr4  rë  rÒ   s     r+   Úorderr¥  	  s%   € ô ˜E¨4Ô0Ð0€vÐ0Ø�|‰|Ðð 1r-   c                 ó
   — | dv S )z#Validation for ``image-rendering``.)r�   zcrisp-edgesÚ	pixelatedr2   rP   s    r+   Úimage_renderingr¨    r.  r-   c                 ó¬   — t        | «      }|dv r|S d\  }}| D ]*  }t        |«      }|dk(  r|� yd}Œ|€t        |«      }|�Œ* y |€dn|}|€dn|}||fS )z%Validation for ``image-orientation``.)rg   z
from-imager�  ÚflipNTr   F)r   r   r   )r)   rJ   Úanglerª  rI   s        r+   Úimage_orientationr¬    s”   € ô ! Ó(€GØÐ(Ñ(ØˆØ�K€Eˆ4Øò ˆÜ˜eÓ$ˆØ�fÒØÐÙØˆDØØˆ=Ü˜eÓ$ˆEØÐ ØÙðð �‰A E€EØ�L‰5 d€DØ�4ˆ=Ðr-   c                 ó‚  — | D �cg c]  }t        |d¬«      ‘Œ }}t        |«      r1t        |«      dk(  r
|d   |d   fS t        |«      dk(  rt        |«      S | D �cg c]  }t	        |«      ‘Œ }}t        |«      dk(  rY|d   }|t
        j                  v rt
        j                  |   S |dv rt
        j                  S |dk(  rt
        j                  ddd	…   S t        |«      dk(  rR|d   d
v r|\  }}n|d   d
v r|\  }}nd}|t
        j                  v r#t
        j                  |   }dk(  r|S |\  }}	|	|fS yyc c}w c c}w )z]``size`` property validation.

    See https://www.w3.org/TR/css-page-3/#page-size-prop

    Frž   r%   r   r   )r�   ÚportraitÚ	landscapeNr  )r®  r¯  r®  )r   r‰   rt   r‡   r   r   Ú
PAGE_SIZESÚINITIAL_PAGE_SIZE)
r)   rI   r¡   r‹   rJ   ÚorientationÚ	page_sizer@  r=  r>  s
             r+   Úsizer´  /  sl  € ð ?EÖE°UŒz˜%¨%Ö0ÐE€GÐEÜ
ˆ7„|Üˆw‹<˜1ÒØ˜A‘J ¨¡
Ð+Ð+Ü�‹\˜QÒÜ˜“>Ð!à06Ö7 u”˜EÕ"Ð7€HÐ7Ü
ˆ8ƒ}˜ÒØ˜1‘+ˆØ”o×0Ñ0Ñ0Ü"×-Ñ-¨gÑ6Ð6ØÐ,Ñ,Ü"×4Ñ4Ð4Ø˜Ò#Ü"×4Ñ4±T°r°TÑ:Ð:ä
ˆ8ƒ}˜ÒØ�A‰;Ð3Ñ3Ø%-Ñ"ˆK™Ø�a‰[Ð5Ñ5Ø%-Ñ"ˆI‘{àˆIØœ×2Ñ2Ñ2Ü*×5Ñ5°iÑ@ˆLØ˜jÒ(Ø#Ð#à ,‘�˜Ø˜f�}Ð$ð 3ð ùò# Fùò 8s   …D7ÁD<)r?   c                 óæ   — t        | «      dk(  ryt        | «      }|j                  «       x}r@|j                  |D �cg c]  }|j                  ‘Œ c}f}|ddgfk(  rd|d   j
                  fS yyc c}w )zValidation for ``anchor``.rg   ÚattrrÙ   úattr()r   N©r   r	   Úsplit_spacer'   rÆ   rK   ©rI   r=   r  r  Ú	prototypes        r+   Úanchorr¼  W  s   € ô �5Ó˜VÒ#ØÜ˜‹€HØ×(Ñ(Ó*Ð*€yÐ*Ø—]‘]À9Ö$M°x X§]£]Ò$MÐNˆ	Ø˜ ' Ð+Ò+Ø˜i¨™l×0Ñ0Ð1Ð1ð ,ð +ùÚ$Ms   ¼A.)r?   r9   c                 ó  — t        | «      dk(  ryt        | |«      }|r|S t        | «      }|j                  «       x}r@|j                  |D �cg c]  }|j
                  ‘Œ c}f}|ddgfk(  rd|d   j                  fS yyc c}w )zValidation for ``link``.rg   r¶  rÙ   r·  r   N)r   r   r	   r¹  r'   rÆ   rK   )rI   rG   rp   r=   r  r  r»  s          r+   Úlinkr¾  d  s”   € ô �5Ó˜VÒ#ØÜ˜ Ó)€JÙØÐÜ˜‹€HØ×(Ñ(Ó*Ð*€yÐ*Ø—]‘]À9Ö$M°x X§]£]Ò$MÐNˆ	Ø˜ ' Ð+Ò+Ø˜i¨™l×0Ñ0Ð1Ð1ð ,ð +ùÚ$Ms   ÁA>c                 ór   — | j                   dk(  r| j                  �| j                  x}r|S t        | d¬«      S )zVValidation for ``tab-size``.

    See https://www.w3.org/TR/css-text-3/#tab-size

    rÓ   Frž   )rÆ   rÁ  r   )rI   rK   s     r+   Útab_sizerÀ  t  s:   € ð ‡z�z�XÒ %§/¡/Ð"=Ø—O‘OÐ#ˆ5Ð#ØˆLÜ�e eÔ,Ð,r-   c                 ó&   — t        | «      x}dv r|S y)zValidation for ``hyphens``.)rg   Úmanualr�   Nrà   rÇ   s     r+   ÚhyphensrÃ  ‚  s"   € ô ˜uÓ%Ð%ˆÐ*DÑDØˆð Er-   c                 óX   — t        | «      dk(  ry| j                  dk(  r| j                  S y)z'Validation for ``hyphenate-character``.r�   u   â€�rÄ   Nrj  rT   s    r+   Úhyphenate_characterrÅ  Š  s/   € ô �5Ó˜VÒ#ØØ	�‰�xÒ	Ø�{‰{Ðð 
 r-   c                 ó   — t        | dd¬«      S )z(Validation for ``hyphenate-limit-zone``.FTr‘   rÊ  rT   s    r+   Úhyphenate_limit_zonerÇ  ”  s   € ô �e e¸Ô=Ð=r-   c                 óê  — t        | «      dk(  r4| \  }t        |«      }|dk(  ryt        |d¬«      x}r|j                  ddfS y	t        | «      dk(  r¦| \  }}t        |«      }t        |«      }t        |d¬«      x}rFt        |d¬«      x}	r#|j                  |	j                  |	j                  fS |dk(  rD|j                  ddfS |dk(  r/t        |d¬«      x}	rd|	j                  |	j                  fS |dk(  ryy	y	y	t        | «      dk(  ro| \  }}}
g }|||
fD ]T  }t        |«      dk(  r|j	                  ||u rdnd«       Œ)t        |d¬«      x}r|j	                  |j                  «       ŒT y	 t        |«      S y	)
z)Validation for ``hyphenate-limit-chars``.r%   r�   )é   r   r   Tr4  r   rÉ  rs   N)rt   r   r   rK   r”   r‡   )r)   rI   rJ   rÓ   Útotalr´   Útotal_keywordÚleft_keywordÚtotal_numberÚleft_numberrµ   rd   s               r+   Úhyphenate_limit_charsrÏ  ›  s´  € ô ˆ6ƒ{�aÒØ‰ˆÜ˜eÓ$ˆØ�fÒØÜ! %°Ô6Ð6ˆVÐ6Ø—L‘L ! QÐ'Ð'ð 7ä	ˆV‹˜Ò	Ø‰ˆˆtÜ# EÓ*ˆÜ" 4Ó(ˆÜ% e°TÔ:Ð:ˆ<Ð:Ü(¨°tÔ<Ð<ˆ{Ð<Ø$×*Ñ*¨K×,=Ñ,=¸{×?PÑ?PÐQÐQØ Ò'Ø$×*Ñ*¨A¨qÐ1Ð1Ø˜fÒ$Ü(¨°tÔ<Ð<ˆ{Ð<Ø˜;×,Ñ,¨k×.?Ñ.?Ð@Ð@Ø Ò'Ø ð (ð %ð (ô 
ˆV‹˜Ò	Ø#Ñˆˆt�UØˆØ˜D %Ð'ò 	ˆEÜ˜5Ó! VÒ+Ø—‘ 5¨E¡>™a°qÕ9Ü% e°TÔ:Ð:�Ð:Ø—‘˜fŸl™lÕ+áð	ô �V‹}Ðð 
r-   c                 ó   — t        | «      dk(  ryt        | «      }|j                  «       x}r@|j                  |D �cg c]  }|j                  ‘Œ c}f}|ddgfk(  rd|d   j
                  fS y| j                  dk(  rd| j
                  fS yc c}w )zValidation for ``lang``.rg   r¶  rÙ   r·  r   rÄ   Nr¸  rº  s        r+   ÚlangrÑ  À  s�   € ô �5Ó˜VÒ#ØÜ˜‹€HØ×(Ñ(Ó*Ð*€yÐ*Ø—]‘]À9Ö$M°x X§]£]Ò$MÐNˆ	Ø˜ ' Ð+Ò+Ø˜i¨™l×0Ñ0Ð1Ð1ð ,à	�‰�xÒ	Ø˜%Ÿ+™+Ð&Ð&ð 
 ùò %Ns   ¼B)r@   r9   c                 ó:   ‡— t        ˆfd„| D «       «      }d|vr|S y)z"Validation for ``bookmark-label``.c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrS   ©r   ©rƒ   rI   rG   s     €r+   r…   z!bookmark_label.<locals>.<genexpr>Ò  s   øè ø€ ÒVÀeÔ0°¸×AÑVùó   ƒN)r‡   )r)   rG   r%  s    ` r+   Úbookmark_labelr×  Ï  s(   ø€ ô ÓVÈvÔVÓV€MØ�=Ñ ØÐð !r-   c                 óz   — t        | dd¬«      x}r|j                  dk\  r|j                  S yt        | «      dk(  ryy)z"Validation for ``bookmark-level``.FTrÏ   r%   rg   NrÑ   rÒ   s     r+   Úbookmark_levelrÙ  ×  rï  r-   c                 ó
   — | dv S )z"Validation for ``bookmark-state``.)ÚopenÚclosedr2   rP   s    r+   Úbookmark_staterÝ  â  rÂ   r-   c                 ó
   — | dv S )z$Validation for ``footnote-display``.)rM  rK  Úcompactr2   rP   s    r+   Úfootnote_displayrà  é  s   € ð Ð4Ð4Ð4r-   c                 ó
   — | dv S )z#Validation for ``footnote-policy``.)r�   ÚlinerM  r2   rP   s    r+   Úfootnote_policyrã  ð  s   € ð Ð/Ð/Ð/r-   c                 ó®   ‡— t        | «      dk\  r1t        | d   «      }|€yt        ˆfd„| dd D «       «      }d|vr||fS y| rt        | d   «      dk(  ryyy)zValidation for ``string-set``.r   r   Nc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrS   rÔ  rÕ  s     €r+   r…   zstring_set.<locals>.<genexpr>   s    øè ø€ ò MØ8=Ô" 5¨(×3ñMùrÖ  r%   rg   )rg   r2   )rt   r   r‡   r   )r)   rG   Úvar_namer%  s    `  r+   Ú
string_setrç  ÷  s}   ø€ ô
 ˆ6ƒ{�aÒÜ# F¨1¡IÓ.ˆØÐØÜó MØAGÈÈÀôMó Mˆà�}Ñ$Ø˜mÐ,Ð,ð %á	”K  q¡	Ó*¨fÒ4Øð 5ˆr-   c                 ó˜  — t        | «      dk(  ryg }| D �]$  }t        |«      }|j                  «       }|€ y|D �ch c]  }|j                  ’Œ c}dhk(  }t	        |«      dk(  �r”t        |d   «      }t        |d   d¬«      }|j                  d	k(  r |�|j                  |j                  |f«       Œ�|j                  d
v r|�|j                  d|dff«       ŒÃ|j                  dk(  r|�|j                  dd|ff«       Œê|j                  dv r|r|j                  d|t        ff«       �Œ|j                  dk(  r|r|j                  dt        |ff«       �ŒA|j                  dk(  r&|r$|j                  d|d   j                  dff«       �Œv|j                  dk(  r&|r$|j                  dd|d   j                  ff«       �Œ«|j                  dk(  r(|r&|j                  d|d   j                  fdz  f«       �Œâ yt	        |«      dk(  rå|j                  dk(  r3|r1t        d„ |D «       «      }	|j                  |j                  |	f«       �Œ4|j                  dk(  r>t        d„ |D «       «      }
t        |
«      r|j                  |j                  |
f«       �Œ y|j                  dk(  rEt        d„ |D «       «      }t        d„ |D «       «      r|j                  |j                  |f«       �ŒÓ y yt	        |«      dk(  r@|j                  dk(  r1|r/|j                  |j                  t        d„ |D «       «      f«       �Œ% y t        |«      S c c}w )zValidation for ``transform``.rg   r2   NrÓ   r%   r   Tr:  Úrotate)ÚskewxÚskewrë  Úskewy)Ú
translatexÚ	translaterî  Ú
translateyÚscalexÚscaleÚscaleyr   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrS   ra  ©rƒ   r  s     r+   r…   ztransform.<locals>.<genexpr>-  s   è ø€ Ò"L°h 8§>¥>Ñ"Lùrc  c              3   ó6   K  — | ]  }t        |d ¬«      –— Œ y­w)Tr:  NrÊ  rá   s     r+   r…   ztransform.<locals>.<genexpr>0  s!   è ø€ ò $SØ?Dœ
 5°T×:Ð:ñ$Sùs   ‚c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrS   )r   rá   s     r+   r…   ztransform.<locals>.<genexpr>7  s   è ø€ Ò"K¸¤9¨U×#3Ñ"Kùrã   c              3   ó$   K  — | ]  }|d u–— Œ
 y ­wrS   r2   )rƒ   r«  s     r+   r…   ztransform.<locals>.<genexpr>8  s   è ø€ ÒA°˜5¨Ô,ÑAùr†   é   Úmatrixc              3   ó4   K  — | ]  }|j                   –— Œ y ­wrS   ra  rô  s     r+   r…   ztransform.<locals>.<genexpr>@  s   è ø€ Ò)S¸X¨(¯.­.Ñ)Sùrc  )r   r	   r  rÆ   rt   r   r   r'   r”   r   rK   r‡   r‰   )r)   Ú
transformsrI   r=   r  r  Úall_numbersr«  r•   r–   r¡   Úangless               r+   Ú	transformrþ    s  € ô ˜&Ó! VÒ+Øàˆ
Øó 3	ˆEÜ “ˆHØ ×,Ñ,Ó.ˆIØÐ Ùà9BÖC¨X˜8Ÿ=›=ÒCÈÀzÑQˆKÜ�9‹~ Ó"Ü! )¨A¡,Ó/�Ü# I¨a¡L¸TÔB�Ø—=‘= HÒ,°Ð1BØ×%Ñ% x§}¡}°eÐ&<Õ=Ø—]‘]Ð&7Ñ7¸EÐ<MØ×%Ñ% v°°q¨zÐ&:Õ;Ø—]‘] gÒ-°%Ð2CØ×%Ñ% v°°5¨zÐ&:Õ;Ø—]‘]Ð&AÑAÁfØ×%Ñ% {°V¼[Ð4IÐ&JÖKØ—]‘] lÒ2±vØ×%Ñ% {´[À&Ð4IÐ&JÖKØ—]‘] hÒ.±;Ø×%Ñ% w°¸1±×1CÑ1CÀQÐ0GÐ&HÖIØ—]‘] hÒ.±;Ø×%Ñ% w°°I¸a±L×4FÑ4FÐ0GÐ&HÖIØ—]‘] gÒ-±+Ø×%Ñ% w°¸1±×1CÑ1CÐ0EÈÑ0IÐ&JÖKáÜ�Y“ 1Ò$Ø—=‘= GÒ+±Ü"Ñ"LÀ)Ô"LÓL�FØ×%Ñ% x§}¡}°fÐ&=Ö>Ø—]‘] kÒ1Ü#ñ $SØHQô$Só S�Gä˜7”|Ø"×)Ñ)¨8¯=©=¸'Ð*BÖCáØ—]‘] fÒ,Ü"Ñ"KÀÔ"KÓK�FÜÑA¸&ÔAÔAØ"×)Ñ)¨8¯=©=¸&Ð*AÖBááÜ�Y“ 1Ò$¨¯©¸(Ò)BÁ{Ø×!Ñ!Ø—]‘]¤EÑ)SÈÔ)SÓ$SÐTöVñ ðg3	ôh �ZÓ Ð ùò] Ds   »Mc                 ó&   — t        | «      x}dv r|S y)z#``appearance`` property validation.rÅ   Nrà   rÇ   s     r+   Ú
appearancer   F  s!   € ô ˜uÓ%Ð%ˆÐ*:Ñ:Øˆð ;r-   c                 óH  — t        | «      dk(  rt        | «      }|dk(  r|S |dk7  r|fS yg }d}t        | «      D ]J  \  }}t        |«      }|dk(  r|s|dt        | «      dz
  fvr yd}Œ/|dk(  r y|r|j	                  |«       ŒJ y |r|j	                  d«       t        |«      S )z%``color-scheme`` property validation.r%   r#  ÚonlyNFr   T)rt   r   rõ   r   r”   r‡   )r)   rJ   r‹   r  r÷   rI   s         r+   Úcolor_schemer  N  sÅ   € ô ˆ6ƒ{�aÒÜ$ VÓ,ˆØ�hÒØˆNØ˜ÒØ�:ÐààˆØˆÜ! &Ó)ò 	‰HˆAˆuÜ! %Ó(ˆGØ˜&Ò Ù˜1 Q¬¨F«°a©Ð$8Ñ8Ùà‘DØ˜HÒ$ÙÙØ—‘ Õ(áð	ñ Ø�O‰O˜FÔ#Ü�X‹Ðr-   )NFFF)NF)¹r1   Úmathr   Útinycss2r   Útinycss2.color5r   Ú r   Ú	functionsr	   r
   Ú
propertiesr   r   r   r)   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   ÚPREFIXr  r:   r<   r8   r#   rB   r&   rQ   rU   rY   r]   ra   rb   rk   rq   rv   ry   r|   rŒ   r—   rœ   r¢   r¤   r¯   r»   r½   rÁ   rÈ   rÌ   rÔ   r×   r³   rÝ   ræ   rè   rï   rñ   rø   rû   rý   r  r  r  r
  r  r  r  r  r'  r-  r0  r2  r,  r<  r@  rB  rE  rI  rV  rZ  re  rg  rk  r~  r‚  r…  rŠ  r™  r›  r§  r¬  r²  r¶  rº  rÂ  rÄ  rÆ  rÈ  rË  rÍ  rÏ  rÚ  rÝ  rÜ  rá  rå  rç  rì  rî  rò  rõ  rû  r   r  r  r
  r  r  r  r  r  r#  r&  r*  r-  r0  r3  r6  r8  r<  rB  rH  rK  rO  rS  rW  rh  ry  r~  r�  r�  r–  r™  r�  r   r£  r¥  r¨  r¬  r´  r¼  r¾  rÀ  rÃ  rÅ  rÇ  rÏ  rÑ  r×  rÙ  rÝ  rà  rã  rç  rþ  r   r  r2   r-   r+   ú<module>r     sÓ  ðñõ å /Ý 'å ß +ß AÑ A÷X÷ X÷ X÷ X÷ Xó Xð 
€Ù‹e€Ù‹5€ð €
ô?�gô ?ð >CØ!ô&ôRñ< 
ƒØØñ3ó ó ó ð3ñ
 
Ð
ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
Ó Ù	Ð
ÓÙ	Ð
$Ó%Ù	Ð
"Ó#Ù	Ð
%Ó&Ù	Ð
#Ó$Ù	Ð
¨Ô-Ù	Ð
!Ó"Øñó ó #ó .ó %ó 'ó $ó &ó ó !ó  ó ó ðñ
 
ƒØñó ó ðñ 
ƒØñ/ó ó ð/ñ 
ƒØñ'ó ó ð'ñ
 
ˆ'ÓØñó ó ðñ 
Ð
¨TÔ2ØØñ&ó ó ó 3ð&ñ 
Ð
¨TÔ2Øñ+ó ó 3ð+ñ 
ƒñ%ó ð%ñ 
ƒØñ"ó ó ð"ñ
 
ƒØñ"ó ó ð"ñ
 
ƒØñó ó ðñ 
ƒØñ!ó ó ð!ñ0 
Ð
ÓÙ	Ð
ÓØØñCó ó ó ó ðCñ 
ƒñ"ó ð"ñ 
Ð
#Ó$Ù	Ð
&Ó'Ù	Ð
%Ó&Ù	Ð
"Ó#Ù	Ð
%Ó&Ù	Ð
#Ó$Ù	Ð
#Ó$Ù	Ð
!Ó"ñ"ó #ó %ó %ó 'ó $ó 'ó (ó %ð"ñ 
Ð
ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
Ó Ù	Ð
$Ó%Ù	Ð
"Ó#Ù	Ð
%Ó&Ù	Ð
#Ó$Ù	Ð
¨Ô-ØñFó ó .ó %ó 'ó $ó &ó !ó ó  ó ðFñ 
ˆ.ÓÙ	ˆ-ÓØñMó ó ó ðMñ 
ƒØñFó ó ðFñ
 
ƒØñ)ó ó ð)ñ
 
ƒØñó ó ðñ 
ˆ*˜tÔ$Øñ*ó ó %ð*ñ
 
�4ÔØñó ó ðñ 
�4ÔØñ2ó ó ð2ñ
 
�4ÔØñFó ó ðFñ 
ˆ, Ô&Ù	ˆ- $Ô'Ù	ˆ+ Ô%Ù	ˆ. 4Ô(Øñ!ó ó )ó &ó (ó 'ð
!ñ 
�4Ôñ
ó ð
ñ 
ˆ/ÓØñ=ó ó ð=ñ 
Ð
ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
Ó Ù	Ð
$Ó%Ù	Ð
"Ó#Ù	Ð
%Ó&Ù	Ð
#Ó$Ù	Ð
¨Ô-Ù	ˆ/ÓØñó ó ó .ó %ó 'ó $ó &ó !ó ó  ó ðñ 
Ð
°Ô5Ù	Ð
¨tÔ4Øñ&ó ó 5ó 6ð&ñ 
Ð
ÓÙ	Ð
Óñó ó  ðñ& 
Ð
ÓÙ	Ð
Óñó ó  ðñ  
Ð
Ó Ù	Ð
Óñó  ó !ðñ 
Ð
Ó Ù	Ð
Óñó  ó !ðñ 
ƒØñ-ó ó ð-ñ 
�4ÔØñó ó ðñ 
�4ÔØñ&ó ó ð&ñ
 
ƒØñCó ó ðCñ
 
ƒØñ(ó ó ð(ñ
 
ƒØñVó ó ðVñ
 
ƒØñó ó ðñ$ 
˜Ôñ.ó ð.ñ4 
ƒñ.ó ð.ñ
 
ƒñ.ó ð.ñ
 
ƒñ.ó ð.ò
ñ6 
ˆ%ƒÙ	ˆ'ÓÙ	ˆ&ÓÙ	ˆ(ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
ÓÙ	ˆ,ÓÙ	ˆ.ÓÙ	ˆ/ÓÙ	ˆ-ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
Ó Ù	Ð
ÓÙ	Ð
!Ó"Øñó ó #ó ó !ó ó  ó ó ó ó ó ó  ó ó ó ó ó ó ð$ñ 
ˆ(ÓÙ	ˆ'ÓÙ	ˆ,ÓÙ	ˆ-ÓØñó ó ó ó ó ð
ñ 
ˆ, Ô&Ù	ˆ)˜dÔ#Øñó ó $ó 'ðñ 
�4ÔØñ*ó ó ð*ñ
 
ƒØñ%ó ó ð%ñ
 
ƒñ*!ó ð*!ñZ 
ˆ'ÓØñKó ó ðKñ 
ƒØñ9ó ó ð9ñ 
ƒØñ1ó ó ð1ñ 
ƒØñó ó ðñ 
ƒñó ðñ< 
ƒØñ1ó ó ð1ñ 
ƒØñ6ó ó ð6ñ 
ƒñó ðñ< 
ƒñ.ó ð.ñ< 
ƒØñ5ó ó ð5ñ 
ƒñó ðñ: 
ƒñ0ó ð0ñ 
ƒØñ!ó ó ð!ñ 
ƒØñ6ó ó ð6ñ
 
ƒØñIó ó ðIñ 
ƒØñ#ó ó ð#ñ 
ƒØñIó ó ðIñ 
�4ÔØñ!ó ó ð!ñ
 
Ð
ÓÙ	ˆ.ÓØñó ó ó ðñ 
ƒØñó ó ðñ 
ƒØñó ó ðñ 
ƒØñ,ó ó ð,ñ
 
ƒØñ/ó ó ð/ñ@ 
ˆ+ÓÙ	ˆ,ÓÙ	Ð
ÓÙ	Ð
ÓØñ-ó ó ó ó ó ð
-ñ 
ˆ-ÓÙ	ˆ/ÓÙ	Ð
ÓÙ	ˆ.ÓÙ	Ð
Ó Ù	Ð
ÓÙ	Ð
 Ó!Ù	Ð
ÓØñó ó  ó "ó ó !ó ó ó ó ðñ 
ˆ+ÓÙ	ˆ,ÓÙ	Ð
ÓÙ	Ð
ÓØñ$ó ó ó ó ó ð
$ñ 
ƒØñ6ó ó ð6ñ 
ƒØñó ó ðñ 
ˆ)ÓÙ	ˆ(ÓØñ ó ó ó ð ñ 
�4ÔØñó ó ðñ 
ƒØñ>ó ó ð>ñ
 
ƒØñ+ó ó ð+ñ
 
ƒØñó ó ðñ 
ƒñ
+ó ð
+ñ 
ƒØñó ó ðñ 
ƒØñMó ó ðMñ
 
ƒØñUó ó ðUñ
 
ƒñó ðñ 
ƒØñó ó ðñ 
ƒØñó ó ðñ 
ƒØñó ó ðñ 
ƒØñUó ó ðUñ
 
ƒØñó ó ðñ 
ƒØñ8ó ó ð8ñ
 
ƒØñJó ó ðJñ
 
ƒØñ;ó ó ð;ñ
 
ƒØñ.ó ó ð.ñ
 
ƒØñó ó ðñ 
ƒØñIó ó ðIñ
 
ˆ+ÓÙ	ˆ-ÓØñó ó ó ðò
ò&ò1ò$Fò$	(ñ 
Ð
ÓÙ	Ð
Óñ ó ó ð ñ 
ƒñ#ó ð#ñ 
Ð
!Ó"Ù	Ð
Óñ} ó  ó #ð} ñ@ 
ƒñ5!ó ð5!ñp 
Ð
ÓÙ	ˆ.ÓÙ	Ð
ÓÙ	Ð
Óñ$%ó ó ó ó ð$%ñN 
ƒØñ9ó ó ð9ñ
 
ƒñ ó ð ñ$ 
ƒñ ó ð ñ4 
ƒñ ó ð ñ. 
ƒñ ó ð ñ, 
ƒñ ó ð ñ, 
ƒñ ó ð ñ, 
ƒØñó ó ðñ
 
�4ÔØñ;ó ó ð;ñ
 
�4Ôñó ðñ. 
�4Ôò$%ó ð$%ñN 
�dÕØò2ó ó ð2ñ 
�d¨4Õ0Øò2ó ó 1ð2ñ 
ƒØò	-ó ó ð	-ñ 
�4ÔØòó ó ðñ 
�4ÔØòó ó ðñ 
�4ÔØò>ó ó ð>ñ
 
�4Ôò!ó ð!ñH 
�dÕØò
'ó ó ð
'ñ 
�4¨Õ-òó .ðñ 
�4ÔØòó ó ðñ 
�4ÔØò)ó ó ð)ñ
 
�4ÔØò5ó ó ð5ñ
 
�4ÔØò0ó ó ð0ñ
 
�4¨Õ-Øòó ó .ðñ 
ƒò:!ó ð:!ñz 
ƒØòó ó ðñ 
ƒòó ñr-   