o
    ¼Çhg  ã                   @   s,   d gZ dd „ Zdd„ Zd
dd„Zdd„ Zd	S )Ú
maxCtxFontc                 C   sX   d}dD ]%}|| vrq| | j }|jsq|jjD ]}|jD ]
}t|||j|ƒ}qqq|S )z4Calculate the usMaxContext value for an entire font.é    )ÚGSUBÚGPOS)ÚtableÚ
LookupListÚLookupÚSubTableÚmaxCtxSubtableÚ
LookupType)ÚfontÚmaxCtxÚtagr   ÚlookupÚst© r   ús/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/fontTools/otlLib/maxContextCalc.pyr      s   

ÿÿc                 C   s\  |dkr|dks|dkr|dv rt | dƒ} | S |dkr&|dkr&t | dƒ} | S |dkrC|dkrC|j ¡ D ]}|D ]}t | |jƒ} q7q3| S |dkrK|dksS|dkrd|dkrdt| ||dkr_d	ƒ} | S d
ƒ} | S |dkrl|dkst|dkrƒ|dkrƒt| ||dkr}d	nd
dƒ} | S |dkr‹|dks“|dkrž|dkržt| ||j|jƒ} | S |dkr¬|dkr¬t| |dƒ} | S )z[Calculate usMaxContext based on a single lookup table (and an existing
    max value).
    r   é   r   )r   é   é   r   é   é   é   ÚPosÚSubé   é   ÚChainé	   ÚReverse)	ÚmaxÚ	ligaturesÚvaluesÚ	CompCountÚmaxCtxContextualSubtabler	   ÚExtensionLookupTypeÚExtSubTableÚmaxCtxContextualRule)r   r   Ú
lookupTyper   r    Úligaturer   r   r   r	      s:   
å
éÿ ïð óÿ ùýr	   Ú c                 C   sÖ   |j dkr/t|d||f ƒD ]}|du rqt|d||f ƒD ]}|du r%qt| ||ƒ} qq| S |j dkr^t|d||f ƒD ]}|du rDq=t|d||f ƒD ]}|du rTqMt| ||ƒ} qMq=| S |j dkrit| ||ƒ} | S )	z>Calculate usMaxContext based on a contextual feature subtable.r   z%s%sRuleSetNz%s%sRuler   z%s%sClassSetz%s%sClassRuler   )ÚFormatÚgetattrr&   )r   r   ÚruleTypeÚchainÚrulesetÚruler   r   r   r#   >   s.   
ý
ôý
ýr#   c                 C   s:   |st | |jƒS |dkrt | d|j ƒS t | |j|j ƒS )z:Calculate usMaxContext based on a contextual feature rule.r   r   )r   Ú
GlyphCountÚLookAheadGlyphCountÚInputGlyphCount)r   r   r-   r   r   r   r&   Y   s
   r&   N)r)   )Ú__all__r   r	   r#   r&   r   r   r   r   Ú<module>   s
    
*