
    ]Mh                     d    d dl mZ d dlmZ d dlZ ej        d          Zd Zd Z	d Z
d Zd	 ZdS )
    )otTables)deepcopyNzfontTools.varLib.instancerc                    g }| j         | j         j        ng }|D ]7}|j        dk    r dS |                    |j        |j        |j        f           8t          | j        j	        g|z             }||v rdS |
                    |           dS )N   TF)ConditionSetConditionTableFormatappend	AxisIndexFilterRangeMinValueFilterRangeMaxValue	frozensetFeatureTableSubstitutionVersionadd)recseenconditionSetconditionSetscond	recordKeys         f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/varLib/instancer/featureVars.py_featureVariationRecordIsUniquer   	   s    L+.+;+G''R   
 
;!44^T5t7OP	
 	
 	
 	
 37?@<OPPIDut    c                     | j         }| j        }||k    s|j        k    s|j        k     rd S t	          fd||fD                       S )Nc              3   F   K   | ]}                     |d           V  dS )F)extrapolateN)renormalizeValue).0v	axisLimits     r   	<genexpr>z7_limitFeatureVariationConditionRange.<locals>.<genexpr>.   sG        =>	""1%"88     r   )r   r   maximumminimumtuple)	conditionr!   minValuemaxValues    `  r   $_limitFeatureVariationConditionRanger)   "   s    ,H,H 	8i'''i''' 	    CKXBV     r   c                 n   d}d}g }ddl m}  |ddd          }	| j        0t          j                    | _        g | j        _        d| j        _        t          | j        j                  D ]#\  }
}|j        dk    r|j        }||         j	        }|j
        }|j        }|                    ||	          }||j        cxk    r|k    sn d}|j        |k    s|j        |k     rd } n||v rZ||         |_        t!          ||          }|r7|\  }}||_
        ||_        d}|dk    s|dk    r|                    |           d } nNt$                              d                    |
||j                             d}|                    |           %||r|| j        _        |sd | _        d}nd}|o| }|||fS )NTFr   ) NormalizedAxisTripleAndDistancesr   zWCondition table {0} of FeatureVariationRecord {1} has unsupported format ({2}); ignored)fontTools.varLib.instancerr+   r   otr   ConditionCount	enumerater	   r   axisTagr   r   getdefaultr$   r#   r)   r
   logwarningformat)recordrecIdx
axisLimitsfvarAxesaxisIndexMapapplies
shouldKeepnewConditionsr+   default_tripleir&   axisIdxr1   r'   r(   triplenewRanger$   r#   	universals                        r   "_instantiateFeatureVariationRecordrE   3   s?    GJMKKKKKK55b!R@@N" o//-/*-.*!&"5"DEE *, *,9q  )Gw'/G 4H 4H^^G^<<F::::(:::: ~((FNX,E,E $,&&&27&;	# @	6RR '/$GW4;I14;I1!%J"}}2%,,Y777 %)ME# '( KK44:F1fiFV4W4W   G  ++++ Z -:* 	'"&F


 0=0IJ	))r   c                    t          |                                          fd|D             fdD             }d}t                      }g }d }t          | j        j                  D ]\  }}	t          |	||||          \  }
}}|r%t          |	|          r|                    |	           |
r|s|	j        j	        dk    sJ t          |	j                  }t          |j        |	j        j                  D ]a\  }}t          | j        j        |j                 j                  |_        t          |j                  | j        j        |j                 _        bd}|r n|rc|ra|s_t#          j                    }t#          j                    |_        g |j        _        d|j        _        ||_        |                    |           |r'|| j        _        t+          |          | j        _        d S | `d| _	        d S )Nc                 0    g | ]}|j         v|j         S  )r1   )r   axis
pinnedAxess     r   
<listcomp>z1_instantiateFeatureVariations.<locals>.<listcomp>|   s'    UUU$dl*6T6T6T6T6Tr   c                 <    i | ]}|                     |          S rH   )index)r   r1   	axisOrders     r   
<dictcomp>z1_instantiateFeatureVariations.<locals>.<dictcomp>}   s'    OOO'GY__W55OOOr   Fi   Tr   )setpinnedLocationr0   FeatureVariationsFeatureVariationRecordrE   r   r
   r   r   r   zipSubstitutionRecordFeatureListFeatureRecordFeatureIndexFeaturer.   r   r   r/   lenFeatureVariationCount)tabler:   r9   r;   featureVariationApplieduniqueRecords
newRecordsdefaultsSubstsr@   r7   r<   r=   rD   r3   r   defaultRecordrN   rJ   s                   @@r   _instantiateFeatureVariationsrb   z   sQ   Z..0011JUUUU(UUUIOOOOYOOOL#EEMJNu6MNN  	6)KAz8\*
 *
&Y  	&9&-PP 	&f%%% 	+2 	+2:jHHHH%f&EFFN #1/B! ! 	 	 #+%3C4DEM# # MUKM M!/0@AII '+#  	E	  ): )i )133%'_%6%6"46"145"11?.-((( #9C68;J555#"r   c                 
   dD ]}|| vst          | |         j        dd           s#t                              d|           t	          | |         j        | d         j        |           | |                                          d S )N)GPOSGSUBrR   z+Instantiating FeatureVariations of %s tablefvar)getattrr\   r4   inforb   axesprune_lookups)varfontr9   tableTags      r   instantiateFeatureVariationsrm      s    $ 
* 
*7""'H#%8$+
 +
" >III%H#WV_%9:	
 	
 	
 	''))))
* 
*r   )fontTools.ttLib.tablesr   r.   copyr   logging	getLoggerr4   r   r)   rE   rb   rm   rH   r   r   <module>rr      s    1 1 1 1 1 1        g455  2  "D* D* D*N6# 6# 6#r* * * * *r   