§
    ¦”jum  ã                  ó’  — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZ d„ Zej        Z G d	„ d
¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ deej        ¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d e¦  «        Z G d!„ d"¦  «        Z G d#„ d$e¦  «        Z G d%„ d&e¦  «        Z  G d'„ d(e¦  «        Z! G d)„ d*e!e ¦  «        Z" G d+„ d,ej#        ¦  «        Z$ G d-„ d.ej%        ¦  «        Z%dS )/a’  
CSS-2.1 engine

Primary classes:
    * CSSElementInterfaceAbstract
        Provide a concrete implementation for the XML element model used.

    * CSSCascadeStrategy
        Implements the CSS-2.1 engine's attribute lookup rules.

    * CSSParser
        Parses CSS source forms into usable results using CSSBuilder and
        CSSMutableSelector.  You may want to override parseExternal()

    * CSSBuilder (and CSSMutableSelector)
        A concrete implementation for cssParser.CSSBuilderAbstract (and
        cssParser.CSSSelectorAbstract) to provide usable results to
        CSSParser requests.

Dependencies:
    sets, cssParser, re (via cssParser)
é    )ÚannotationsN)Úabstractmethod)ÚPath)ÚClassVar)Ú	cssParserÚ
cssSpecialc                ó   — t          | Ž ‚©N)ÚStopIteration©Úvalues    ú`/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/xhtml2pdf/w3c/css.pyÚstopIterr   .   s   € Ý
˜Ð
Ðó    c                  ó¤   — e Zd Zeefd„¦   «         Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Z	edd„¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zd
S )ÚCSSElementInterfaceAbstractc                ó   — t           ‚r
   ©ÚNotImplementedError)ÚselfÚnameÚdefaults      r   ÚgetAttrz#CSSElementInterfaceAbstract.getAttr?   ó   € å!Ð!r   c                ó.   — |                       dd¦  «        S )NÚidÚ ©r   ©r   s    r   Ú	getIdAttrz%CSSElementInterfaceAbstract.getIdAttrC   s   € Ø�|Š|˜D "Ñ%Ô%Ð%r   c                ó.   — |                       dd¦  «        S )NÚclassr   r   r   s    r   ÚgetClassAttrz(CSSElementInterfaceAbstract.getClassAttrF   s   € Ø�|Š|˜G RÑ(Ô(Ð(r   c                ó   — t           ‚r
   r   r   s    r   ÚgetInlineStylez*CSSElementInterfaceAbstract.getInlineStyleI   r   r   c                ó   — t           ‚r
   r   r   s    r   ÚmatchesNodez'CSSElementInterfaceAbstract.matchesNodeM   r   r   © c                ó   — t           ‚r
   r   ©r   r   Úparamss      r   ÚinPseudoStatez)CSSElementInterfaceAbstract.inPseudoStateQ   r   r   c                ó   — t           ‚)z<Results must be compatible with CSSElementInterfaceAbstract.r   r   s    r   ÚiterXMLParentsz*CSSElementInterfaceAbstract.iterXMLParentsU   s
   € õ "Ð!r   c                ó   — t           ‚r
   r   r   s    r   ÚgetPreviousSiblingz.CSSElementInterfaceAbstract.getPreviousSiblingZ   r   r   N©r(   )Ú__name__Ú
__module__Ú__qualname__r   ÚNotImplementedr   r    r#   r%   r'   r,   r.   r0   r(   r   r   r   r   >   sß   € € € € € ØØ$2ð "ð "ð "ñ „^ð"ð&ð &ð &ð)ð )ð )ð ð"ð "ñ „^ð"ð ð"ð "ñ „^ð"ð ð"ð "ð "ñ „^ð"ð ð"ð "ñ „^ð"ð ð"ð "ñ „^ð"ð "ð "r   r   c                  ón   — e Zd ZdZdZdZddd„Zdd„Zdd„Ze	fd„Z
e	fd„Zd	„ Zd
„ Zee	fd„¦   «         ZdS )ÚCSSCascadeStrategyNÚreturnÚNonec                ó@   — |�|| _         |�|| _        |�	|| _        d S d S r
   )ÚauthorÚuserÚ	userAgenr©r   r;   r<   Ú	userAgents       r   Ú__init__zCSSCascadeStrategy.__init__g   s5   € ØÐØ ˆDŒKØÐØˆDŒIØÐ Ø&ˆDŒNˆNˆNð !Ð r   c                ól   — |€| j         }|€| j        }|€| j        } t          | ¦  «        |||¦  «        S r
   )r;   r<   r=   Útyper>   s       r   ÚcopyWithUpdatez!CSSCascadeStrategy.copyWithUpdateo   sA   € Øˆ>Ø”[ˆFØˆ<Ø”9ˆDØÐØœˆIØ�t�D‰zŒz˜& $¨	Ñ2Ô2Ð2r   c              #  ó&  K  — | j         �| j         d         V — | j         d         V — | j        �| j        d         V — | j        �| j        d         V — | j        d         V — |r|d         V — |d         V — | j        �| j        d         V — d S d S ©Nr   é   )r=   r<   r;   )r   Úinlines     r   ÚiterCSSRulesetsz"CSSCascadeStrategy.iterCSSRulesetsz   sÄ   è è € ØŒ>Ð%Ø”. Ô#Ð#Ð#Ð#Ø”. Ô#Ð#Ð#Ð#àŒ9Ð Ø”)˜A”,ÐÐÐàŒ;Ð"Ø”+˜a”.Ð Ð Ð Ø”+˜a”.Ð Ð Ð àð 	Ø˜”)ˆOˆOˆOØ˜”)ˆOˆOˆOàŒ9Ð Ø”)˜A”,ÐÐÐÐÐð !Ð r   c                ó\   — |                       ||¦  «        }|                      |||¦  «        S )áV  
        Attempts to find the style setting for attrName in the CSSRulesets.

        Note: This method does not attempt to resolve rules that return
        "inherited", "default", or values that have units (including "%").
        This is left up to the client app to re-query the CSS in order to
        implement these semantics.
        )ÚfindCSSRulesForÚ_extractStyleForRule)r   ÚelementÚattrNamer   Úrules        r   ÚfindStyleForzCSSCascadeStrategy.findStyleFor�   s1   € ð ×#Ò# G¨XÑ6Ô6ˆØ×(Ò(¨¨x¸ÑAÔAÐAr   c                ót   ‡ ‡— ‰                       ||¦  «        }ˆˆ fd„|                     ¦   «         D ¦   «         S )rJ   c                óH   •— g | ]\  }}|‰                      ||‰¦  «        f‘ŒS r(   )rL   )Ú.0rN   rO   r   r   s      €€r   ú
<listcomp>z8CSSCascadeStrategy.findStylesForEach.<locals>.<listcomp>¥   sD   ø€ ð 
ð 
ð 
á�˜$ð �t×0Ò0°°xÀÑIÔIÐJð
ð 
ð 
r   )ÚfindCSSRulesForEachÚitems)r   rM   Ú	attrNamesr   Úruless   `  ` r   ÚfindStylesForEachz$CSSCascadeStrategy.findStylesForEach›   sS   øø€ ð ×(Ò(¨°)Ñ<Ô<ˆð
ð 
ð 
ð 
ð 
à"'§+¢+¡-¤-ð
ñ 
ô 
ð 	
r   c                óÂ  — g }|                      ¦   «         }| j        �H|| j        d                              ||¦  «        z  }|| j        d                              ||¦  «        z  }| j        �$|| j        d                              ||¦  «        z  }| j        �H|| j        d                              ||¦  «        z  }|| j        d                              ||¦  «        z  }|r>||d                              ||¦  «        z  }||d                              ||¦  «        z  }| j        �$|| j        d                              ||¦  «        z  }|                     ¦   «          |S rE   )r%   r=   ÚfindCSSRuleForr<   r;   Úsort)r   rM   rN   rX   rG   s        r   rK   z"CSSCascadeStrategy.findCSSRulesForª   sS  € Øˆà×'Ò'Ñ)Ô)ˆð Œ>Ð%Ø�T”^ AÔ&×5Ò5°g¸xÑHÔHÑHˆEØ�T”^ AÔ&×5Ò5°g¸xÑHÔHÑHˆEàŒ9Ð Ø�T”Y˜q”\×0Ò0°¸(ÑCÔCÑCˆEàŒ;Ð"Ø�T”[ ”^×2Ò2°7¸HÑEÔEÑEˆEØ�T”[ ”^×2Ò2°7¸HÑEÔEÑEˆEàð 	AØ�V˜A”Y×-Ò-¨g°xÑ@Ô@Ñ@ˆEØ�V˜A”Y×-Ò-¨g°xÑ@Ô@Ñ@ˆEàŒ9Ð Ø�T”Y˜q”\×0Ò0°¸(ÑCÔCÑCˆEà�
Š
‰ŒˆØˆr   c                ó2  — d„ |D ¦   «         }|                      ¦   «         }|                      |¦  «        D ]5}|                     ¦   «         D ]\  }}||                     ||¦  «        z  }ŒŒ6|                     ¦   «         D ]}|                     ¦   «          Œ|S )Nc                ó   — i | ]}|g “ŒS r(   r(   )rS   r   s     r   ú
<dictcomp>z:CSSCascadeStrategy.findCSSRulesForEach.<locals>.<dictcomp>É   s   € Ð0Ð0Ð0˜d��rÐ0Ð0Ð0r   )r%   rH   rV   r[   r\   )r   rM   rW   rX   rG   ÚrulesetrN   Ú	attrRuless           r   rU   z&CSSCascadeStrategy.findCSSRulesForEachÈ   s¶   € Ø0Ð0 iÐ0Ñ0Ô0ˆà×'Ò'Ñ)Ô)ˆØ×+Ò+¨FÑ3Ô3ð 	Gð 	GˆGØ',§{¢{¡}¤}ð Gð GÑ#�˜)Ø˜W×3Ò3°G¸XÑFÔFÑF�	�	ðGð Ÿš™œð 	ð 	ˆIØ�NŠNÑÔÐÐØˆr   c                óv   — | r| d         d         }||         S |t           ur|S d|› d| ›�}t          |¦  «        ‚)NéÿÿÿÿrF   zCould not find style for 'z' in )r5   ÚLookupError)rO   rN   r   ÚstyleÚmsgs        r   rL   z'CSSCascadeStrategy._extractStyleForRuleÖ   sV   € àð 	#ð ˜”H˜Q”KˆEØ˜”?Ð"Ø�.Ð(Ð(ØˆNØB¨8ÐBÐB¸$ÐBÐBˆÝ˜#ÑÔÐr   )NNN©r8   r9   r
   )r2   r3   r4   r;   r<   r=   r@   rC   rH   r5   rP   rY   rK   rU   ÚstaticmethodrL   r(   r   r   r7   r7   b   sÝ   € € € € € Ø€FØ€DØ€Ið'ð 'ð 'ð 'ð 'ð3ð 3ð 3ð 3ðð ð ð ð* 7Eð 
Bð 
Bð 
Bð 
Bð =Kð 
ð 
ð 
ð 
ðð ð ð<
ð 
ð 
ð Ø5Cð 	ð 	ð 	ñ „\ð	ð 	ð 	r   r7   c                  óÄ   — e Zd ZdZdZdZddd„Zd„ Zd„ Ze	d	„ ¦   «         Z
e	d
„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Zdd„Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ ZdS )ÚCSSSelectorBaseFNÚ*r8   r9   c                óH   — t          |t          ¦  «        sd d|f}|| _        d S ©Nrk   )Ú
isinstanceÚtupleÚcompleteName)r   rp   s     r   r@   zCSSSelectorBase.__init__í   s.   € Ý˜,­Ñ.Ô.ð 	5Ø  # |Ð4ˆLØ(ˆÔÐÐr   c                ól   — t          | j        |                      ¦   «         | j        f¦  «        | _        d S r
   )ÚhashÚfullNameÚspecificityÚ
qualifiersÚ_hashr   s    r   Ú_updateHashzCSSSelectorBase._updateHashò   s,   € Ý˜4œ=¨$×*:Ò*:Ñ*<Ô*<¸d¼oÐNÑOÔOˆŒ
ˆ
ˆ
r   c                óR   — | j         €t                               | ¦  «        S | j         S r
   )rv   ÚobjectÚ__hash__r   s    r   rz   zCSSSelectorBase.__hash__õ   s$   € ØŒ:ÐÝ—?’? 4Ñ(Ô(Ð(ØŒzÐr   c                ó   — | j         d         S )Nr   ©rp   r   s    r   ÚnsPrefixzCSSSelectorBase.nsPrefixú   ó   € àÔ  Ô#Ð#r   c                ó   — | j         d         S )Né   r|   r   s    r   r   zCSSSelectorBase.nameþ   r~   r   c                ó   — | j         d         S )NrF   r|   r   s    r   Ú	namespacezCSSSelectorBase.namespace  r~   r   c                ó    — | j         dd…         S )NrF   é   r|   r   s    r   rs   zCSSSelectorBase.fullName  s   € àÔ   1 Ô%Ð%r   Ústrc                óˆ   — t          | ¦  «        j        g|                      ¦   «         ¢|                      ¦   «         ‘R }d|z  S )Nz<%s %d:%d:%d:%d %s >)rB   r2   rt   ÚasString)r   ÚstrArgss     r   Ú__repr__zCSSSelectorBase.__repr__
  s?   € Ý˜‘:”:Ô&ÐM¨×)9Ò)9Ñ);Ô);ÐM¸T¿]º]¹_¼_ÐMÐMˆØ%¨Ñ/Ð/r   c                ó*   — |                       ¦   «         S r
   ©r‡   r   s    r   Ú__str__zCSSSelectorBase.__str__  ó   € Ø�}Š}‰ŒÐr   c                óD   — |                       ¦   «         | j        | j        fS r
   )rt   rs   ru   r   s    r   Ú_as_comparison_keyz"CSSSelectorBase._as_comparison_key  s   € Ø× Ò Ñ"Ô" D¤M°4´?ÐCÐCr   c                óV   — |                       ¦   «         |                      ¦   «         k    S r
   ©r�   ©r   Úothers     r   Ú__eq__zCSSSelectorBase.__eq__  s%   € Ø×&Ò&Ñ(Ô(¨E×,DÒ,DÑ,FÔ,FÒFÐFr   c                óV   — |                       ¦   «         |                      ¦   «         k     S r
   r‘   r’   s     r   Ú__lt__zCSSSelectorBase.__lt__  s%   € Ø×&Ò&Ñ(Ô(¨5×+CÒ+CÑ+EÔ+EÒEÐEr   c                óP   — | j         €|                      ¦   «         | _         | j         S r
   )Ú_specificityÚ_calcSpecificityr   s    r   rt   zCSSSelectorBase.specificity  s(   € ØÔÐ$Ø $× 5Ò 5Ñ 7Ô 7ˆDÔØÔ Ð r   c                óª  — d}d}t          | j        dk    ¦  «        }| j        D ]¥}|                     ¦   «         r|dz  }Œ|                     ¦   «         s|                     ¦   «         r|dz  }ŒJ|                     ¦   «         r|dz  }Œd|                     ¦   «         r-|j         	                    ¦   «         \  }}}}||z  }||z  }||z  }Œ¦| j
        |||fS )z9From http://www.w3.org/TR/CSS21/cascade.html#specificity.r   rk   rF   )Úintr   ru   ÚisHashÚisClassÚisAttrÚisPseudoÚ
isCombinerÚselectorrt   rG   )	r   Ú	hashCountÚqualifierCountÚelementCountÚ	qualifierÚiÚhÚqÚes	            r   r™   z CSSSelectorBase._calcSpecificity  s  € àˆ	ØˆÝ˜4œ9¨Ò+Ñ,Ô,ˆØœð 	"ð 	"ˆIØ×ÒÑ!Ô!ð 
"Ø˜Q‘�	�	Ø×"Ò"Ñ$Ô$ð "¨	×(8Ò(8Ñ(:Ô(:ð "Ø !Ñ#��Ø×#Ò#Ñ%Ô%ð "Ø Ñ!��Ø×%Ò%Ñ'Ô'ð "Ø&Ô/×;Ò;Ñ=Ô=‘
��1�a˜Ø˜Q‘�	Ø !Ñ#�Ø Ñ!�øØŒ{˜I ~°|ÐCÐCr   c                óÞ   ‡— ‰€dS | j         d         d‰j        j        hvrdS | j         d         dvr| j         d         ‰j        j        k    rdS t	          ˆfd„| j        D ¦   «         ¦  «        S )NFrF   rk   r   >   Nr   rk   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r
   ©Úmatches)rS   r¥   rM   s     €r   ú	<genexpr>z*CSSSelectorBase.matches.<locals>.<genexpr>?  s1   øè è € ÐOÐO°)�9×$Ò$ WÑ-Ô-ÐOÐOÐOÐOÐOÐOr   )rs   Ú
domElementÚtagNameÚnamespaceURIÚallru   ©r   rM   s    `r   r­   zCSSSelectorBase.matches2  s…   ø€ Øˆ?Ø�5ð Œ=˜Ô C¨Ô);Ô)CÐ#DÐDÐDØ�5àŒM˜!Ô OÐ3Ð3Ø”˜aÔ  GÔ$6Ô$CÒCÐCà�5åÐOÐOÐOÐO¸t¼ÐOÑOÔOÑOÔOÐOr   c                ó˜  — g }| j         �%|                     | j         › d| j        › �¦  «         n|                     | j        ¦  «         | j        D ]f}|                     ¦   «         r)|                     d|                     ¦   «         ¦  «         Œ?|                     |                     ¦   «         ¦  «         Œgd                     |¦  «        S )Nú|r   r   )r}   Úappendr   ru   r    Úinsertr‡   Újoin)r   Úresultr¨   s      r   r‡   zCSSSelectorBase.asStringA  s·   € ØˆØŒ=Ð$Ø�MŠM˜Tœ]Ð8Ð8¨T¬YÐ8Ð8Ñ9Ô9Ð9Ð9à�MŠM˜$œ)Ñ$Ô$Ð$à”ð 	,ð 	,ˆAØ�|Š|‰~Œ~ð ,Ø—’˜a §¢¡¤Ñ.Ô.Ð.Ð.à—’˜aŸjšj™lœlÑ+Ô+Ð+Ð+Ø�wŠw�v‰ŒÐr   )rk   rg   ©r8   r…   r
   )r2   r3   r4   rG   rv   r˜   r@   rw   rz   Úpropertyr}   r   r‚   rs   r‰   rŒ   r�   r”   r–   rt   r™   r­   r‡   r(   r   r   rj   rj   è   so  € € € € € Ø€FØ€EØ€Lð)ð )ð )ð )ð )ð
Pð Pð Pðð ð ð
 ð$ð $ñ „Xð$ð ð$ð $ñ „Xð$ð ð$ð $ñ „Xð$ð ð&ð &ñ „Xð&ð0ð 0ð 0ð 0ðð ð ð ðDð Dð DðGð Gð GðFð Fð Fð!ð !ð !ð
Dð Dð Dð&Pð Pð Pð Pðð ð ð ð r   rj   c                  ó   — e Zd ZdZdS )ÚCSSInlineSelectorTN)r2   r3   r4   rG   r(   r   r   r½   r½   S  s   € € € € € Ø€F€F€Fr   r½   c                  ój   — e Zd ZU g Zded<   d„ Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ ZdS )ÚCSSMutableSelectorzClassVar[list]ru   c                óJ   — t          | j        d„ | j        D ¦   «         ¦  «        S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r(   ©ÚasImmutable)rS   r¨   s     r   rT   z2CSSMutableSelector.asImmutable.<locals>.<listcomp>_  s    € ÐIÐIÐI°A §¢¡¤ÐIÐIÐIr   )ÚCSSImmutableSelectorrp   ru   r   s    r   rÃ   zCSSMutableSelector.asImmutable]  s-   € Ý#ØÔÐIÐI¸¼ÐIÑIÔIñ
ô 
ð 	
r   c                ó2   — |                      || ¦  «         |S r
   )ÚaddCombination)Ú	selectorAÚopÚ	selectorBs      r   ÚcombineSelectorsz#CSSMutableSelector.combineSelectorsb  s   € à× Ò   YÑ/Ô/Ð/ØÐr   c                óL   — |                       t          ||¦  «        ¦  «         d S r
   )Ú_addQualifierÚCSSSelectorCombinationQualifier)r   rÈ   r“   s      r   rÆ   z!CSSMutableSelector.addCombinationg  s'   € Ø×ÒÕ:¸2¸uÑEÔEÑFÔFÐFÐFÐFr   c                óJ   — |                       t          |¦  «        ¦  «         d S r
   )rÌ   ÚCSSSelectorHashQualifier©r   ÚhashIds     r   Ú	addHashIdzCSSMutableSelector.addHashIdj  s%   € Ø×ÒÕ3°FÑ;Ô;Ñ<Ô<Ð<Ð<Ð<r   c                óJ   — |                       t          |¦  «        ¦  «         d S r
   )rÌ   ÚCSSSelectorClassQualifier)r   Úclass_s     r   ÚaddClasszCSSMutableSelector.addClassm  s%   € Ø×ÒÕ4°VÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r   c                óJ   — |                       t          |¦  «        ¦  «         d S r
   ©rÌ   ÚCSSSelectorAttributeQualifier)r   rN   s     r   ÚaddAttributezCSSMutableSelector.addAttributep  s%   € Ø×ÒÕ8¸ÑBÔBÑCÔCÐCÐCÐCr   c                óN   — |                       t          |||¦  «        ¦  «         d S r
   rØ   ©r   rN   rÈ   Ú
attr_values       r   ÚaddAttributeOperationz(CSSMutableSelector.addAttributeOperations  s)   € Ø×ÒÕ8¸À2ÀzÑRÔRÑSÔSÐSÐSÐSr   c                óJ   — |                       t          |¦  «        ¦  «         d S r
   ©rÌ   ÚCSSSelectorPseudoQualifier©r   r   s     r   Ú	addPseudozCSSMutableSelector.addPseudov  s%   € Ø×ÒÕ5°dÑ;Ô;Ñ<Ô<Ð<Ð<Ð<r   c                óL   — |                       t          ||¦  «        ¦  «         d S r
   rà   r*   s      r   ÚaddPseudoFunctionz$CSSMutableSelector.addPseudoFunctiony  s'   € Ø×ÒÕ5°d¸FÑCÔCÑDÔDÐDÐDÐDr   c                ó\   — | j         r| j                              |¦  «         d S |g| _         d S r
   )ru   r¶   )r   r¥   s     r   rÌ   z CSSMutableSelector._addQualifier~  s5   € ØŒ?ð 	*ØŒO×"Ò" 9Ñ-Ô-Ð-Ð-Ð-à(˜kˆDŒOˆOˆOr   N)r2   r3   r4   ru   Ú__annotations__rÃ   rh   rÊ   rÆ   rÒ   rÖ   rÚ   rÞ   rã   rå   rÌ   r(   r   r   r¿   r¿   Z  sÕ   € € € € € € Ø!#€JÐ#Ð#Ð#Ñ#ð
ð 
ð 
ð
 ðð ñ „\ððGð Gð Gð=ð =ð =ð>ð >ð >ðDð Dð DðTð Tð Tð=ð =ð =ðEð Eð Eð
*ð *ð *ð *ð *r   r¿   c                  ó8   ‡ — e Zd Zddˆ fd„Zed„ ¦   «         Zˆ xZS )	rÄ   rk   r(   r8   r9   c                óš   •— t          |¦  «        | _        t          ¦   «                              |¦  «         |                      ¦   «          d S r
   )ro   ru   Úsuperr@   rw   )r   rp   ru   Ú	__class__s      €r   r@   zCSSImmutableSelector.__init__‰  sB   ø€ å 
Ñ+Ô+ˆŒÝ‰Œ×Ò˜Ñ&Ô&Ð&Ø×ÒÑÔÐÐÐr   c                ó.   —  | |j         |j        ¦  «        S r
   )rp   ru   )Úclsr¡   s     r   ÚfromSelectorz!CSSImmutableSelector.fromSelector�  s   € àˆs�8Ô(¨(Ô*=Ñ>Ô>Ð>r   )rk   r(   rg   )r2   r3   r4   r@   Úclassmethodrî   Ú__classcell__©rë   s   @r   rÄ   rÄ   ˆ  s]   ø€ € € € € ðð ð ð ð ð ð ð ð?ð ?ñ „[ð?ð ?ð ?ð ?ð ?r   rÄ   c                  ó    — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	e
d„ ¦   «         Zdd
„ZdS )ÚCSSSelectorQualifierBasec                 ó   — dS ©NFr(   r(   r   r   rœ   zCSSSelectorQualifierBase.isHashœ  ó   € àˆur   c                 ó   — dS rõ   r(   r(   r   r   r�   z CSSSelectorQualifierBase.isClass   rö   r   c                 ó   — dS rõ   r(   r(   r   r   rž   zCSSSelectorQualifierBase.isAttr¤  rö   r   c                 ó   — dS rõ   r(   r(   r   r   rŸ   z!CSSSelectorQualifierBase.isPseudo¨  rö   r   c                 ó   — dS rõ   r(   r(   r   r   r    z#CSSSelectorQualifierBase.isCombiner¬  rö   r   c                ó   — | S r
   r(   r   s    r   rÃ   z$CSSSelectorQualifierBase.asImmutable°  s   € Øˆr   c                ó   — t           ‚r
   r   r   s    r   r‡   z!CSSSelectorQualifierBase.asString³  r   r   r8   r…   c                ó*   — |                       ¦   «         S r
   r‹   r   s    r   rŒ   z CSSSelectorQualifierBase.__str__·  r�   r   Nrº   )r2   r3   r4   rh   rœ   r�   rž   rŸ   r    rÃ   r   r‡   rŒ   r(   r   r   ró   ró   ›  s×   € € € € € Øðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ððð ð ð ð"ð "ñ „^ð"ðð ð ð ð ð r   ró   c                  óJ   — e Zd Zdd„Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
S )rÏ   r8   r9   c                ó   — || _         d S r
   ©rÑ   rÐ   s     r   r@   z!CSSSelectorHashQualifier.__init__¼  s   € ØˆŒˆˆr   c                 ó   — dS ©NTr(   r(   r   r   rœ   zCSSSelectorHashQualifier.isHash¿  ó   € àˆtr   c                ó,   — t          | j        f¦  «        S r
   )rr   rÑ   r   s    r   rz   z!CSSSelectorHashQualifier.__hash__Ã  s   € Ý�T”[�NÑ#Ô#Ð#r   c                ó   — d| j         › �S )Nú#r   r   s    r   r‡   z!CSSSelectorHashQualifier.asStringÆ  s   € Ø �4”;Ð Ð Ð r   c                ó<   — |                      ¦   «         | j        k    S r
   )r    rÑ   r³   s     r   r­   z CSSSelectorHashQualifier.matchesÉ  s   € Ø× Ò Ñ"Ô" d¤kÒ1Ð1r   c                ó"   — | j         |j         k    S r
   r   r’   s     r   r”   zCSSSelectorHashQualifier.__eq__Ì  s   € ØŒ{˜eœlÒ*Ð*r   c                ó"   — | j         |j         k     S r
   r   r’   s     r   r–   zCSSSelectorHashQualifier.__lt__Ï  s   € ØŒ{˜Uœ\Ò)Ð)r   Nrg   )r2   r3   r4   r@   rh   rœ   rz   r‡   r­   r”   r–   r(   r   r   rÏ   rÏ   »  sŽ   € € € € € ðð ð ð ð ðð ñ „\ðð$ð $ð $ð!ð !ð !ð2ð 2ð 2ð+ð +ð +ð*ð *ð *ð *ð *r   rÏ   c                  óJ   — e Zd Zdd„Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
S )rÔ   r8   r9   c                ó   — || _         d S r
   ©ÚclassId)r   r  s     r   r@   z"CSSSelectorClassQualifier.__init__Ô  ó   € ØˆŒˆˆr   c                 ó   — dS r  r(   r(   r   r   r�   z!CSSSelectorClassQualifier.isClass×  r  r   c                ó,   — t          | j        f¦  «        S r
   )rr   r  r   s    r   rz   z"CSSSelectorClassQualifier.__hash__Û  s   € Ý�T”\�OÑ$Ô$Ð$r   c                ó   — d| j         › �S )Nú.r  r   s    r   r‡   z"CSSSelectorClassQualifier.asStringÞ  s   € Ø!�4”<Ð!Ð!Ð!r   c                óˆ   — |j         j                             d¦  «        }|� | j        |j                             ¦   «         v S dS )Nr"   F)r¯   Ú
attributesÚgetr  r   Úsplit)r   rM   rÝ   s      r   r­   z!CSSSelectorClassQualifier.matchesá  sB   € àÔ'Ô2×6Ò6°wÑ?Ô?ˆ
ØÐ!Ø”< :Ô#3×#9Ò#9Ñ#;Ô#;Ð;Ð;Øˆur   c                ó"   — | j         |j         k    S r
   r  r’   s     r   r”   z CSSSelectorClassQualifier.__eq__è  s   € ØŒ|˜uœ}Ò,Ð,r   c                ó"   — | j         |j         k     S r
   r  r’   s     r   r–   z CSSSelectorClassQualifier.__lt__ë  s   € ØŒ|˜eœmÒ+Ð+r   Nrg   )r2   r3   r4   r@   rh   r�   rz   r‡   r­   r”   r–   r(   r   r   rÔ   rÔ   Ó  sŽ   € € € € € ðð ð ð ð ðð ñ „\ðð%ð %ð %ð"ð "ð "ðð ð ð-ð -ð -ð,ð ,ð ,ð ,ð ,r   rÔ   c                  óR   — e Zd ZddecZZZdefd	d„Zed„ ¦   «         Z	d„ Z
d„ Zd„ ZdS )
rÙ   Nr8   r9   c                óX   — || _         || j        ur|| _        || j        ur	|| _        d S d S r
   )r   rÈ   r   rÜ   s       r   r@   z&CSSSelectorAttributeQualifier.__init__ò  s=   € ØˆŒ	Ø�T”WÐÐØˆDŒGØ˜TœZÐ'Ð'Ø#ˆDŒJˆJˆJð (Ð'r   c                 ó   — dS r  r(   r(   r   r   rž   z$CSSSelectorAttributeQualifier.isAttrù  r  r   c                óD   — t          | j        | j        | j        f¦  «        S r
   )rr   r   rÈ   r   r   s    r   rz   z&CSSSelectorAttributeQualifier.__hash__ý  s   € Ý�T”Y ¤¨¬Ð4Ñ5Ô5Ð5r   c                óf   — | j         t          u rd| j        › d�S d| j        › | j        › | j         › d�S )Nú[ú])r   r5   r   rÈ   r   s    r   r‡   z&CSSSelectorAttributeQualifier.asString   sC   € ØŒ:�Ð'Ð'Ø#�t”yÐ#Ð#Ð#Ð#Ø4�4”9Ð4˜dœgÐ4 t¤zÐ4Ð4Ð4Ð4r   c                óP  — | j         €)|                     | j        t          ¦  «        t          k    S | j         dk    r)| j        |                     | j        t          ¦  «        k    S | j         dk    rH|j        j                             | j        ¦  «        }|� | j        |j                             ¦   «         v S dS | j         dk    rI|j        j                             | j        ¦  «        }|�!| j        |j                             d¦  «        v S dS d| j         ›d| ›�}t          |¦  «        ‚)Nú=z~=Fz|=ú-zUnknown operator z for )
rÈ   r   r   r5   r   r¯   r  r  r  ÚRuntimeError)r   rM   rÝ   rf   s       r   r­   z%CSSSelectorAttributeQualifier.matches  s  € ØŒ7ˆ?Ø—?’? 4¤9­nÑ=Ô=ÅÒOÐOØŒ7�cŠ>ˆ>Ø”: §¢°´½NÑ!KÔ!KÒKÐKØŒ7�dŠ?ˆ?à Ô+Ô6×:Ò:¸4¼9ÑEÔEˆJØÐ%Ø”z ZÔ%5×%;Ò%;Ñ%=Ô%=Ð=Ð=Ø�5ØŒ7�dŠ?ˆ?à Ô+Ô6×:Ò:¸4¼9ÑEÔEˆJØÐ%Ø”z ZÔ%5×%;Ò%;¸CÑ%@Ô%@Ð@Ð@Ø�5Ø: $¤'Ð:Ð:°$Ð:Ð:ˆÝ˜3ÑÔÐr   rg   )r2   r3   r4   r5   r   rÈ   r   r@   rh   rž   rz   r‡   r­   r(   r   r   rÙ   rÙ   ï  s‰   € € € € € Ø˜D .€O€Dˆ"ˆeà$(°^ð $ð $ð $ð $ð $ð ðð ñ „\ðð6ð 6ð 6ð5ð 5ð 5ð
 ð  ð  ð  ð  r   rÙ   c                  ó@   — e Zd Zd
dd„Zed„ ¦   «         Zd„ Zd„ Zd„ Zd	S )rá   r(   r8   r9   c                ó<   — || _         t          |¦  «        | _        d S r
   )r   ro   r+   )r   rN   r+   s      r   r@   z#CSSSelectorPseudoQualifier.__init__  s   € ØˆŒ	Ý˜F‘m”mˆŒˆˆr   c                 ó   — dS r  r(   r(   r   r   rŸ   z#CSSSelectorPseudoQualifier.isPseudo  r  r   c                ó8   — t          | j        | j        f¦  «        S r
   )rr   r   r+   r   s    r   rz   z#CSSSelectorPseudoQualifier.__hash__#  s   € Ý�T”Y ¤Ð,Ñ-Ô-Ð-r   c                óJ   — | j         r
d| j        › �S d| j        › d| j         › d�S )Nú:ú(ú))r+   r   r   s    r   r‡   z#CSSSelectorPseudoQualifier.asString&  s7   € ØŒ;ð 	#Ø"�t”y�?�?Ð"Ø-�4”9Ð-Ð-˜tœ{Ð-Ð-Ð-Ð-r   c                óB   — |                      | j        | j        ¦  «        S r
   )r,   r   r+   r³   s     r   r­   z"CSSSelectorPseudoQualifier.matches+  s   € Ø×$Ò$ T¤Y°´Ñ<Ô<Ð<r   Nr1   rg   )	r2   r3   r4   r@   rh   rŸ   rz   r‡   r­   r(   r   r   rá   rá     su   € € € € € ð$ð $ð $ð $ð $ð ðð ñ „\ðð.ð .ð .ð.ð .ð .ð
=ð =ð =ð =ð =r   rá   c                  óD   — e Zd Zd
d„Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d	S )rÍ   r8   r9   c                ó"   — || _         || _        d S r
   )rÈ   r¡   )r   rÈ   r¡   s      r   r@   z(CSSSelectorCombinationQualifier.__init__0  s   € ØˆŒØ ˆŒˆˆr   c                 ó   — dS r  r(   r(   r   r   r    z*CSSSelectorCombinationQualifier.isCombiner4  r  r   c                ó8   — t          | j        | j        f¦  «        S r
   )rr   rÈ   r¡   r   s    r   rz   z(CSSSelectorCombinationQualifier.__hash__8  s   € Ý�T”W˜dœmÐ,Ñ-Ô-Ð-r   c                ól   —  t          | ¦  «        | j        | j                             ¦   «         ¦  «        S r
   )rB   rÈ   r¡   rÃ   r   s    r   rÃ   z+CSSSelectorCombinationQualifier.asImmutable;  s*   € Ø�t�D‰zŒz˜$œ' 4¤=×#<Ò#<Ñ#>Ô#>Ñ?Ô?Ð?r   c                óF   — | j                              ¦   «         › | j        › �S r
   )r¡   r‡   rÈ   r   s    r   r‡   z(CSSSelectorCombinationQualifier.asString>  s#   € Ø”-×(Ò(Ñ*Ô*Ð5¨D¬GÐ5Ð5Ð5r   c                óh  ‡— | j         | j        c}Š|dk    r-t          ˆfd„|                     ¦   «         D ¦   «         ¦  «        S |dk    r;t	          |                     ¦   «         d ¦  «        }|€dS ‰                     |¦  «        S |dk    r'‰                     |                     ¦   «         ¦  «        S d S )Nú c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r
   r¬   )rS   Úparentr¡   s     €r   r®   z:CSSSelectorCombinationQualifier.matches.<locals>.<genexpr>D  s1   øè è € ÐWÐW°F�x×'Ò'¨Ñ/Ô/ÐWÐWÐWÐWÐWÐWr   ú>Fú+)rÈ   r¡   Úanyr.   Únextr­   r0   )r   rM   rÈ   r6  r¡   s       @r   r­   z'CSSSelectorCombinationQualifier.matchesA  sº   ø€ Ø”w ¤ˆˆˆHØ�Š9ˆ9ÝÐWÐWÐWÐW¸g×>TÒ>TÑ>VÔ>VÐWÑWÔWÑWÔWÐWØ�Š9ˆ9Ý˜'×0Ò0Ñ2Ô2°DÑ9Ô9ˆFØˆ~Ø�uØ×#Ò# FÑ+Ô+Ð+Ø�Š9ˆ9Ø×#Ò# G×$>Ò$>Ñ$@Ô$@ÑAÔAÐAØˆtr   Nrg   )
r2   r3   r4   r@   rh   r    rz   rÃ   r‡   r­   r(   r   r   rÍ   rÍ   /  s‚   € € € € € ð!ð !ð !ð !ð ðð ñ „\ðð.ð .ð .ð@ð @ð @ð6ð 6ð 6ðð ð ð ð r   rÍ   c                  ó   — e Zd Zdd„Zdd„ZdS )	ÚCSSTerminalFunctionr8   r9   c                ó6   — || _         d„ |D ¦   «         | _        d S )Nc                óZ   — g | ](}t          |t          ¦  «        r|nt          |¦  «        ‘Œ)S r(   )rn   r…   )rS   Úparams     r   rT   z0CSSTerminalFunction.__init__.<locals>.<listcomp>W  s>   € ð 
ð 
ð 
Ø@E•Z ¥sÑ+Ô+Ð;ˆEˆEµ°U±´ð
ð 
ð 
r   )r   r+   r*   s      r   r@   zCSSTerminalFunction.__init__U  s-   € ØˆŒ	ð
ð 
ØIOð
ñ 
ô 
ˆŒˆˆr   r…   c                óh   — d                      | j        d                     | j        ¦  «        ¦  «        S )Nz<CSS function: {}({})>z, )Úformatr   r¸   r+   r   s    r   r‰   zCSSTerminalFunction.__repr__[  s(   € Ø'×.Ò.¨t¬y¸$¿)º)ÀDÄKÑ:PÔ:PÑQÔQÐQr   Nrg   rº   )r2   r3   r4   r@   r‰   r(   r   r   r<  r<  T  sB   € € € € € ð
ð 
ð 
ð 
ðRð Rð Rð Rð Rð Rr   r<  c                  ó    — e Zd ZdZd„ Zdd„ZdS )ÚCSSTerminalOperatorr(   c                ó8   — t                                | |¦  «        S r
   )ro   Ú__new__)rí   Úargss     r   rE  zCSSTerminalOperator.__new__b  s   € Ý�}Š}˜S $Ñ'Ô'Ð'r   r8   r…   c                ó<   — dt                                | ¦  «        z   S )NrÈ   )ro   r‰   r   s    r   r‰   zCSSTerminalOperator.__repr__e  s   € Ø•e—n’n TÑ*Ô*Ñ*Ð*r   Nrº   )r2   r3   r4   Ú	__slots__rE  r‰   r(   r   r   rC  rC  _  s<   € € € € € Ø€Ið(ð (ð (ð+ð +ð +ð +ð +ð +r   rC  c                  ó   — e Zd Zd„ Zd„ ZdS )ÚCSSDeclarationsc                ó   — dS rõ   r(   r’   s     r   r”   zCSSDeclarations.__eq__o  ó   € Øˆur   c                ó   — dS rõ   r(   r’   s     r   r–   zCSSDeclarations.__lt__r  rL  r   N)r2   r3   r4   r”   r–   r(   r   r   rJ  rJ  n  s2   € € € € € ðð ð ðð ð ð ð r   rJ  c                  ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú
CSSRulesetc                ót   ‡‡— ˆˆfd„|                       ¦   «         D ¦   «         }|                     ¦   «          |S )Nc                óP   •— g | ]"\  }}‰|v ¯	|                      ‰¦  «        ¯||f‘Œ#S r(   r¬   )rS   Ú
nodeFilterÚdeclarationsrN   rM   s      €€r   rT   z.CSSRuleset.findCSSRulesFor.<locals>.<listcomp>x  sJ   ø€ ð 
ð 
ð 
á(�
˜LØ˜LÐ(Ð(¨z×/AÒ/AÀ'Ñ/JÔ/JÐ(ð ˜Ð&à(Ð(Ð(r   )rV   r\   )r   rM   rN   ÚruleResultss    `` r   rK   zCSSRuleset.findCSSRulesForw  sS   øø€ ð
ð 
ð 
ð 
ð 
à,0¯JªJ©L¬Lð
ñ 
ô 
ˆð
 	×ÒÑÔÐØÐr   c                ó>   — |                       ||¦  «        dd …         S ©Nrc   ©rK   ©r   rM   rN   s      r   r[   zCSSRuleset.findCSSRuleFor€  s#   € ð ×#Ò# G¨XÑ6Ô6°r°s°sÔ;Ð;r   c                óÎ   — |                      ¦   «         D ]O\  }}|| v rA| |         r9t          j        | |         ¦  «        | |<   | |                              |¦  «         ŒJ|| |<   ŒPdS )zXXX Bugfix for use in PISA.N)rV   ÚcopyÚupdate)r   ÚstylesÚkÚvs       r   ÚmergeStyleszCSSRuleset.mergeStyles…  ss   € à—L’L‘N”Nð 	ð 	‰DˆAˆqØ�Dˆyˆy˜T !œWˆyÝœ) D¨¤GÑ,Ô,��Q‘Ø�Q”—’˜qÑ!Ô!Ð!Ð!à��Q‘�ð	ð 	r   N)r2   r3   r4   rK   r[   r_  r(   r   r   rO  rO  v  sA   € € € € € ðð ð ð<ð <ð <ð
ð ð ð ð r   rO  c                  ó   — e Zd Zd„ Zd„ ZdS )ÚCSSInlineRulesetc                ó0   — || v rt          ¦   «         | fgS g S r
   )r½   rX  s      r   rK   z CSSInlineRuleset.findCSSRulesFor�  s&   € Ø�tÐÐÝ&Ñ(Ô(¨$Ð/Ð0Ð0Øˆ	r   c                ó,   —  | j         |i |¤Ždd …         S rV  rW  )r   rF  Úkws      r   r[   zCSSInlineRuleset.findCSSRuleFor•  s%   € ð $ˆtÔ# TÐ0¨RÐ0Ð0°°°Ô5Ð5r   N)r2   r3   r4   rK   r[   r(   r   r   ra  ra  �  s2   € € € € € ðð ð ð
6ð 6ð 6ð 6ð 6r   ra  c                  óÖ  — e Zd ZU eZeZeZe	Z
eZeZi Zded<   dZdZdZeefd9d„Zd„ Zd	„ Zd
„ Zd„ Zd„ Zddœd„Zd„ Zd„ Zd:d„Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#e$d„ ¦   «         Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d;d(„Z-d)„ Z.e$d*„ ¦   «         Z/d+„ Z0d,„ Z1d-d.œd/„Z2d0„ Z3e$d1„ ¦   «         Z4e$d:d2„¦   «         Z5e$d3„ ¦   «         Z6e$d4„ ¦   «         Z7e$d5„ ¦   «         Z8e$d6„ ¦   «         Z9d7„ Z:e$d8„ ¦   «         Z;dS )<Ú
CSSBuilderzClassVar[dict]ÚxmlnsSynonymsNTr8   r9   c                ó\   — |                       |¦  «         |                      |¬¦  «         d S )N©ÚtrackImportance)ÚsetMediumSetÚsetTrackImportance)r   Ú	mediumSetrj  s      r   r@   zCSSBuilder.__init__¬  s3   € Ø×Ò˜)Ñ$Ô$Ð$Ø×Ò°ÐÑ@Ô@Ð@Ð@Ð@r   c                ó¨   — |sdS d|v rdS |                       |¦  «        }t          |                      ¦   «                              |¦  «        ¦  «        S )NFr²   T)ÚMediumSetFactoryÚboolÚgetMediumSetÚintersection)r   Úmediumss     r   ÚisValidMediumzCSSBuilder.isValidMedium°  sZ   € Øð 	Ø�5Ø�GÐÐØ�4à×'Ò'¨Ñ0Ô0ˆÝ�D×%Ò%Ñ'Ô'×4Ò4°WÑ=Ô=Ñ>Ô>Ð>r   c                ó   — | j         S r
   )rm  r   s    r   rq  zCSSBuilder.getMediumSet¹  s
   € ØŒ~Ðr   c                ó:   — |                       |¦  «        | _        d S r
   )ro  rm  ©r   rm  s     r   rk  zCSSBuilder.setMediumSet¼  s   € Ø×.Ò.¨yÑ9Ô9ˆŒˆˆr   c                óT   — |                       ¦   «                              |¦  «         d S r
   )rq  r[  rw  s     r   ÚupdateMediumSetzCSSBuilder.updateMediumSet¿  s(   € Ø×ÒÑÔ×"Ò" 9Ñ-Ô-Ð-Ð-Ð-r   c                ó   — | j         S r
   ri  r   s    r   ÚgetTrackImportancezCSSBuilder.getTrackImportanceÂ  s   € ØÔ#Ð#r   ri  c               ó   — || _         d S r
   ri  )r   rj  s     r   rl  zCSSBuilder.setTrackImportanceÅ  s   € Ø.ˆÔÐÐr   c                ól   — | j         }| j                              ¦   «         | _         || _        i | _        d S r
   )Ú__dict__rZ  Ú_restoreStateÚ
namespaces)r   r  s     r   Ú
_pushStatezCSSBuilder._pushStateÊ  s1   € ØœˆØœ×*Ò*Ñ,Ô,ˆŒØ*ˆÔØˆŒˆˆr   c                ó   — | j         | _        d S r
   )r  r~  r   s    r   Ú	_popStatezCSSBuilder._popStateÐ  s   € ØÔ*ˆŒˆˆr   c                óü   — |p| j         }| j        rbg g }}|D ]E}|d         r|                     |d d…         ¦  «         Œ(|                     |d d…         ¦  «         ŒF ||¦  «         ||¦  «        fS  ||¦  «        S rV  )ÚDeclarationsFactoryrj  r¶   )r   rS  r…  ÚnormalÚ	importantÚds         r   Ú_declarationszCSSBuilder._declarationsÓ  s¯   € Ø1ÐM°TÔ5MÐØÔð 	OØ " B�IˆFØ!ð *ð *�Ø�R”5ð *Ø×$Ò$ Q s¨ s¤VÑ,Ô,Ð,Ð,à—M’M ! C R C¤&Ñ)Ô)Ð)Ð)Ø&Ð& vÑ.Ô.Ð0CÐ0CÀIÑ0NÔ0NÐNÐNØ"Ð" <Ñ0Ô0Ð0r   c                ó@   — | j                              |pd |¦  «        pd S r
   )rg  r  )r   Úuris     r   Ú_xmlnsGetSynonymzCSSBuilder._xmlnsGetSynonymß  s$   € àÔ!×%Ò% c k¨T°3Ñ7Ô7Ð?¸4Ð?r   c                ó.   — |                       ¦   «          d S r
   ©r�  r   s    r   ÚbeginStylesheetzCSSBuilder.beginStylesheetå  ó   € Ø�ŠÑÔÐÐÐr   c                ó.   — |                       ¦   «          d S r
   ©rƒ  r   s    r   ÚendStylesheetzCSSBuilder.endStylesheetè  ó   € Ø�ŠÑÔÐÐÐr   c                óÄ  — | j         r�|                      ¦   «         |                      ¦   «         }}|D ]/\  }}|                     |¦  «         |                     |¦  «         Œ0|D ]/\  }}|                     |¦  «         |                     |¦  «         Œ0||fS |                      ¦   «         }	|D ]}
|	                     |
¦  «         Œ|D ]}|	                     |¦  «         Œ|	S r
   )rj  ÚRulesetFactoryr_  )r   ÚstylesheetElementsÚstylesheetImportsr†  r‡  ÚnormalStylesheetÚimportantStylesheetÚnormalStyleElementÚimportantStyleElementr¹   Ú
stylesheetÚstyleElements               r   r�  zCSSBuilder.stylesheetë  s!  € àÔð 	%Ø $× 3Ò 3Ñ 5Ô 5°t×7JÒ7JÑ7LÔ7L�IˆFØ9Jð ;ð ;Ñ5Ð Ð"5Ø×"Ò"Ð#3Ñ4Ô4Ð4Ø×%Ò%Ð&9Ñ:Ô:Ð:Ð:Ø=Oð =ð =Ñ9Ð"Ð$9Ø×"Ò"Ð#5Ñ6Ô6Ð6Ø×%Ò%Ð&;Ñ<Ô<Ð<Ð<Ø˜9Ð$Ð$Ø×$Ò$Ñ&Ô&ˆØ+ð 	+ð 	+ˆJØ×Ò˜zÑ*Ô*Ð*Ð*à.ð 	-ð 	-ˆLØ×Ò˜|Ñ,Ô,Ð,Ð,Øˆr   c                ó.   — |                       ¦   «          d S r
   rŽ  r   s    r   ÚbeginInlinezCSSBuilder.beginInlineþ  r�  r   c                ó.   — |                       ¦   «          d S r
   r’  r   s    r   Ú	endInlinezCSSBuilder.endInline  r”  r   c                ó*   — t          j        | ¦  «        S r
   )r   ÚparseSpecialRules)rS  s    r   ÚspecialRuleszCSSBuilder.specialRules  s   € åÔ+¨LÑ9Ô9Ð9r   c                ób   — |                       |¦  «        }|                      |t          ¦  «        S r
   )r¥  r‰  ra  ©r   rS  s     r   rG   zCSSBuilder.inline  s,   € Ø×(Ò(¨Ñ6Ô6ˆØ×!Ò! ,Õ0@ÑAÔAÐAr   c                ó‚  ‡— |                       ‰¦  «        Š| j        rk|                      ‰¦  «        \  }}|                      ¦   «         |                      ¦   «         }}|D ]$}|                     ¦   «         }|r|||<   |r|||<   Œ%||fS |                      ‰¦  «        Šˆfd„|D ¦   «         }|                      |¦  «        S )Nc                ó<   •— g | ]}|                      ¦   «         ‰f‘ŒS r(   rÂ   )rS   ÚsrS  s     €r   rT   z&CSSBuilder.ruleset.<locals>.<listcomp>  s&   ø€ ÐEÐEÐE°a�1—=’=‘?”? LÐ1ÐEÐEÐEr   )r¥  rj  r‰  r–  rÃ   )	r   Ú	selectorsrS  Ú
normalDeclÚimportantDeclr†  r‡  rª  r¹   s	     `      r   r`   zCSSBuilder.ruleset  sæ   ø€ à×(Ò(¨Ñ6Ô6ˆð Ôð 		%Ø(,×(:Ò(:¸<Ñ(HÔ(HÑ%ˆJ˜Ø $× 3Ò 3Ñ 5Ô 5°t×7JÒ7JÑ7LÔ7L�IˆFØð 1ð 1�Ø—M’M‘O”O�Øð +Ø *�F˜1‘IØ ð 1Ø#0�I˜a‘LøØ˜9Ð$Ð$Ø×)Ò)¨,Ñ7Ô7ˆØEÐEÐEÐE¸9ÐEÑEÔEˆØ×"Ò" 6Ñ*Ô*Ð*r   c                ó‚   — |dk    r|d|fS | j                              |d ¦  «        }|                      |¦  «        }|||fS rm   )r€  r  rŒ  )r   r}   r   Úxmlnss       r   ÚresolveNamespacePrefixz!CSSBuilder.resolveNamespacePrefix!  sO   € Ø�sŠ?ˆ?Ø˜c 4Ð(Ð(Ø”×#Ò# H¨dÑ3Ô3ˆØ×%Ò% eÑ,Ô,ˆØ˜% Ð&Ð&r   c                ó   — || _         d S r
   )Úcharset)r   r²  s     r   Ú	atCharsetzCSSBuilder.atCharset*  r  r   c                óP   — |                       |¦  «        r |j        |¦  «        S d S r
   )rt  ÚparseExternal)r   Úimport_rs  r   s       r   ÚatImportzCSSBuilder.atImport-  s0   € Ø×Ò˜gÑ&Ô&ð 	4Ø*�9Ô*¨7Ñ3Ô3Ð3Øˆtr   c                ó   — || j         |<   d S r
   )r€  )r   Únsprefixr‹  s      r   ÚatNamespacezCSSBuilder.atNamespace2  s   € Ø$'ˆŒ˜Ñ!Ð!Ð!r   c                ó4   — |                       |¦  «        r|S d S r
   )rt  )r   rs  r`   s      r   ÚatMediazCSSBuilder.atMedia5  s"   € Ø×Ò˜gÑ&Ô&ð 	ØˆNØˆtr   r   r…   Ú
pseudopageú
str | NoneÚdataÚdictÚisLandscaperp  c               ó   — t           ‚)ú7This is overridden by xhtml2pdf.context.pisaCSSBuilder.r   )r   r   r½  r¿  rÁ  Ú
pageBorders         r   ÚatPagezCSSBuilder.atPage:  s
   € õ "Ð!r   c                óV   — |                       |                      d¦  «        g|¦  «        S )rÃ  rk   )r`   r¡   r§  s     r   Ú
atFontFacezCSSBuilder.atFontFaceF  s%   € à�|Š|˜TŸ]š]¨3Ñ/Ô/Ð0°,Ñ?Ô?Ð?r   c                ó   — |t           fS r
   ©r5   )Ú_atIdentÚ
_cssParserÚsrcs      r   ÚatIdentzCSSBuilder.atIdentJ  ó   € à•NÐ"Ð"r   c                ó,   — |                       |¦  «        S r
   )ÚSelectorFactoryrâ   s     r   r¡   zCSSBuilder.selectorP  s   € Ø×#Ò# DÑ)Ô)Ð)r   c                ó:   — | j                              |||¦  «        S r
   )rÐ  rÊ   )r   rÇ   rÈ   rÉ   s       r   rÊ   zCSSBuilder.combineSelectorsS  s   € ØÔ#×4Ò4°YÀÀIÑNÔNÐNr   F)r‡  c               ó"   — | j         r|||fS ||fS r
   ri  )r   r   r   r‡  s       r   r»   zCSSBuilder.propertyX  s$   € ØÔð 	,Ø˜% Ð+Ð+Ø�eˆ}Ðr   c                ó  — |dv r0t          |t          ¦  «        r|                     |¦  «         |S ||gS |€|€|gS t          |t          ¦  «        r"|                      |d         ||¦  «        |d<   |S |                      |||¦  «        S )N>   r4  ú,rc   )rn   Úlistr¶   ÚcombineTermsÚTermOperatorFactory)r   ÚtermArÈ   ÚtermBs       r   rÖ  zCSSBuilder.combineTerms]  s    € Ø�ÐÐÝ˜%¥Ñ&Ô&ð Ø—’˜UÑ#Ô#Ð#Ø�Ø˜5�>Ð!Øˆ:˜%˜-Ø�7ˆNÝ�e�TÑ"Ô"ð 	ð ×)Ò)¨%°¬)°R¸Ñ?Ô?ˆE�"‰IØˆLØ×'Ò'¨¨r°5Ñ9Ô9Ð9r   c                ó   — | S r
   r(   r   s    r   Ú	termIdentzCSSBuilder.termIdentl  ó   € àˆr   c                ó   — |r| |fS | S r
   r(   )r   Úunitss     r   Ú
termNumberzCSSBuilder.termNumberp  s   € àð 	 Ø˜%�<ÐØˆr   c                ó   — | S r
   r(   r   s    r   ÚtermRGBzCSSBuilder.termRGBv  rÜ  r   c                ó   — | S r
   r(   r   s    r   ÚtermURIzCSSBuilder.termURIz  rÜ  r   c                ó   — | S r
   r(   r   s    r   Ú
termStringzCSSBuilder.termString~  rÜ  r   c                ó   — | S r
   r(   r   s    r   ÚtermUnicodeRangezCSSBuilder.termUnicodeRange‚  rÜ  r   c                ó.   — |                       ||¦  «        S r
   )ÚTermFunctionFactory)r   r   r   s      r   ÚtermFunctionzCSSBuilder.termFunction†  s   € Ø×'Ò'¨¨eÑ4Ô4Ð4r   c                ó   — | t           fS r
   rÉ  )rÌ  s    r   ÚtermUnknownzCSSBuilder.termUnknown‰  rÎ  r   rg   r
   )r   r…   r½  r¾  r¿  rÀ  rÁ  rp  )<r2   r3   r4   rO  r–  r¿   rÐ  Úsetro  rJ  r…  r<  ré  rC  r×  rg  rç   rm  rj  r²  r@   rt  rq  rk  ry  r{  rl  r�  rƒ  r‰  rŒ  r�  r“  r�  r   r¢  rh   r¥  rG   r`   r°  r³  r·  rº  r¼  rÅ  rÇ  rÍ  r¡   rÊ   r»   rÖ  rÛ  rß  rá  rã  rå  rç  rê  rì  r(   r   r   rf  rf     sZ  € € € € € € Ø€NØ(€OØÐØ)ÐØ-ÐØ-ÐØ$&€MÐ&Ð&Ð&Ñ&Ø€IØ€OØ€Gà!*¸Oð Að Að Að Að Að?ð ?ð ?ðð ð ð:ð :ð :ð.ð .ð .ð$ð $ð $ð 59ð /ð /ð /ð /ð /ð
ð ð ð+ð +ð +ð
1ð 
1ð 
1ð 
1ð@ð @ð @ðð ð ðð ð ðð ð ð&ð ð ðð ð ð ð:ð :ñ „\ð:ðBð Bð Bð+ð +ð +ð*'ð 'ð 'ðð ð ðð ð ð
(ð (ð (ðð ð ð

"ð 
"ð 
"ð 
"ð@ð @ð @ð ð#ð #ñ „\ð#ð
*ð *ð *ðOð Oð Oð
 27ð ð ð ð ð ð
:ð :ð :ð ðð ñ „\ðð ðð ð ñ „\ðð
 ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð5ð 5ð 5ð ð#ð #ñ „\ð#ð #ð #r   rf  c                  ó8   ‡ — e Zd ZeZd	ddœd
ˆ fd„Zd„ Zd„ Zˆ xZS )Ú	CSSParserNT)Úcreater8   r9   c               ót   •— |s|r|�J ‚ | j         di |¤Ž}t          ¦   «                              |¦  «         d S ©Nr(   )ÚcreateCSSBuilderrê   r@   )r   Ú
cssBuilderrð  rd  rë   s       €r   r@   zCSSParser.__init__–  sT   ø€ Øð 	5˜fð 	5ØÐ%Ð%Ð%Ø.˜Ô.Ð4Ð4°Ð4Ð4ˆJÝ‰Œ×Ò˜Ñ$Ô$Ð$Ð$Ð$r   c                ó   —  | j         di |¤ŽS rò  )ÚCSSBuilderFactory)r   rd  s     r   ró  zCSSParser.createCSSBuilderœ  s   € Ø%ˆtÔ%Ð+Ð+¨Ð+Ð+Ð+r   c                ó’   — t          |¦  «                             ¦   «         r|                      |¦  «        S t          d|z  ¦  «        ‚)Nz&Cannot resolve external CSS file: "%s")r   Úis_fileÚ	parseFiler#  )r   ÚcssResourceNames     r   rµ  zCSSParser.parseExternalŸ  sD   € Ý�Ñ Ô ×(Ò(Ñ*Ô*ð 	3Ø—>’> /Ñ2Ô2Ð2ÝÐCÀoÑUÑVÔVÐVr   r
   rg   )	r2   r3   r4   rf  rö  r@   ró  rµ  rð   rñ   s   @r   rï  rï  “  sy   ø€ € € € € Ø"Ðð%°$ð %ð %ð %ð %ð %ð %ð %ð %ð,ð ,ð ,ðWð Wð Wð Wð Wð Wð Wr   rï  )&Ú__doc__Ú
__future__r   rZ  Úabcr   Úpathlibr   Útypingr   Úxhtml2pdf.w3cr   r   r   ÚCSSParseErrorr   r7   rj   r½   ÚCSSSelectorAbstractr¿   rÄ   ró   rÏ   rÔ   rÙ   rá   rÍ   r<  ro   rC  rÀ  rJ  rO  ra  ÚCSSBuilderAbstractrf  rï  r(   r   r   ú<module>r     sõ  ððð ð. #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ð ð  ð  ð Ô'€ð"ð "ð "ð "ð "ñ "ô "ð "ðH~ð ~ð ~ð ~ð ~ñ ~ô ~ð ~ðLeð eð eð eð eñ eô eð eðVð ð ð ð ˜ñ ô ð ð(*ð (*ð (*ð (*ð (*˜¨)Ô*Gñ (*ô (*ð (*ð\	?ð 	?ð 	?ð 	?ð 	?˜?ñ 	?ô 	?ð 	?ð&ð ð ð ð ñ ô ð ð@*ð *ð *ð *ð *Ð7ñ *ô *ð *ð0,ð ,ð ,ð ,ð ,Ð 8ñ ,ô ,ð ,ð8( ð ( ð ( ð ( ð ( Ð$<ñ ( ô ( ð ( ðV=ð =ð =ð =ð =Ð!9ñ =ô =ð =ð*ð ð ð ð Ð&>ñ ô ð ðJRð Rð Rð Rð Rñ Rô Rð Rð+ð +ð +ð +ð +˜%ñ +ô +ð +ðð ð ð ð �dñ ô ð ðð ð ð ð �ñ ô ð ð2	6ð 	6ð 	6ð 	6ð 	6�z ?ñ 	6ô 	6ð 	6ð"k#ð k#ð k#ð k#ð k#�Ô-ñ k#ô k#ð k#ðfWð Wð Wð Wð W�	Ô#ñ Wô Wð Wð Wð Wr   