L iddlmZddlmZdZdZdZdZdZ dZ d Z dd Z e ej_dd Zd Zeej_dd ZdZdZdZdZdZdZy))ttLib)otTablesctj}|Dcgc] }t|c}\|_|_|_|Scc}wN)ot VarRegionAxisfloat StartCoord PeakCoordEndCoord) axisSupportselfvs ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/varLib/builder.pybuildVarRegionAxisrs<   DHS5T1eAh5T2DOT^T] K6UsActj}||_|Dcgc] }t|c}\|_|_|_|Scc}wr)rSparseVarRegionAxis AxisIndexr r r r ) axisIndexr rrs rbuildSparseVarRegionAxisr sC ! ! #DDNHS5T1eAh5T2DOT^T] K6UsA c  tfd|jDs Jd|ftj}g|_D]6}|jj t |j|d8|S)Nc3&K|]}|v ywr.0tagaxisTagss r z!buildVarRegion..93sh9Unknown axis tag found.rrr)allkeysr VarRegionrappendrget)supportrrrs ` rbuildVarRegionr)s 9',,.9 9!< 9 <<>DDS !!"4W[[i5P"QRS Kc dtfd|jDs Jd|ftj}g|_t D]?\}}||vr |jj t||j|dAt|j|_ |S)Nc3&K|]}|v ywrrrs rrz'buildSparseVarRegion.."rr r!r") r#r$rSparseVarRegionr enumerater&rr'lenSparseRegionCount)r(rrirs ` rbuildSparseVarRegionr2!s 9',,.9 9!< 9    D!DH% 3 g     '' $Q C(C D  !!9!9:D Kr*ctj}t||_g|_|D]'}|jj t ||)t|j|_|Sr)r VarRegionListr/RegionAxisCountRegionr&r) RegionCountsupportsrrr(s rbuildVarRegionListr:3sa   Dx=DDK> >'8<=>4;;'D Kr*ctj}t||_g|_|D]'}|jj t ||)t|j|_|Sr)rSparseVarRegionListr/r5r6r&r2r7r8s rbuildSparseVarRegionListr==sd ! ! #Dx=DDKD /BCD4;;'D Kr*c2|Dcgc]}|| c}Scc}wrr)lstmappingr1s r _reorderItemrAGs# $qCF $$ $s c|j}|j}dg|z}|D]D}|Dcgc]}||dkzj}}t||Dcgc] }t | }}F|D cgc]} | r| dzdz nd} } t d| D} |rg} | j dt| D| j dt| D| j dt| Dt| | } t|j| |_ t|j|_tt|D]}t||| ||<| r;t d t| Dd d z|_ |xjd zc_ n%t d t| Dd d z|_ t|j|_|Scc}wcc}wcc} w)Nrc3&K|] }|dkD ywNr)rbs rrz-VarData_calculateNumShorts..cs0aAE0sc32K|]\}}|dkDs |ywrGrrr1rIs rrz-VarData_calculateNumShorts..hsFTQAqF c32K|]\}}|dk(s |ywrGrrKs rrz-VarData_calculateNumShorts..iGTQQqGrLc32K|]\}}|dk(s |ywNrrKs rrz-VarData_calculateNumShorts..jrNrLc32K|]\}}|dkDs |ywrGrrKs rrz-VarData_calculateNumShorts..t@tq!!a%@rL)defaultrQc32K|]\}}|dkDs |ywrPrrKs rrz-VarData_calculateNumShorts..yrSrL) VarRegionCountItem bit_lengthzipmaxanyextendr.rAVarRegionIndexr/range NumShorts) roptimizecountitems bit_lengthsitemr1blpairrI byte_lengths longWordsr@s rVarData_calculateNumShortsrjKs   E IIE#+KD 48 8aqAF|'') 8 8.1"k.BCdsDzC CD"9DD1aa!e\Q.DLD0<00IFY|%<FFGY|%<GGGY|%<GG#L': *4+>+>H!$"5"56s5z" 7A#E!Hg6E!H 7 @y6@" MPQ Q  &  @y6@" MPQ Q d112D KQ9CEsG$G),G.ct||S)zDeprecated name for VarData_calculateNumShorts() which defaults to optimize=True. Use varData.calculateNumShorts() or varData.optimize().rarj)rras rVarData_CalculateNumShortsrns &dX >>r*ct|dS)NTrlrm)rs rVarData_optimizerps %dT ::r*cVtj}t||_t |jx}|_gx}|_|r1|D],}t ||k(sJ|jt|.t |j |_|j||S)Nrl) rVarDatalistr^r/rWrXr& ItemCountcalculateNumShorts)varRegionIndicesrcrar regionCountrecordsres r buildVarDatarys :: ;;=DDK&D $DLDLL)D Kr*c@tj}d|_t||_t |jx}|_gx}|_|r1|D],}t ||k(sJ|jt|.t |j|_ |Sr{) r MultiVarDatar}rsr^r/rWrXr&rt)rvrcrrwrxres rbuildMultiVarDatars ?? DDK/0D(+D,?,?(@@K$%Gdi  'Dt9 + ++ NN4: & '^DN Kr*ctj}d|_||_t ||_t |j |_|Sr{)r MultiVarStorer}r<rsrr/MultiVarDataCount)rmultiVarDataListrs rbuildMultiVarStorersE   DDK,D-.D !2!23D Kr*ctj}t||Dcic]\}}|| c}}|_|Scc}}wr)r VarIdxMaprZr@)varIdxes glyphOrderrgrs rbuildVarIdxMaprs9 <<>D%(X%>?TQAqD?DL K@s <ct|}tdt|Drytj}||_t |dkDr d|_|Sd|_|S)Nc3,K|] \}}||k(ywrr)rr1rs rrz(buildDeltaSetIndexMap..s 1da16 1srQr)rsr#r.rDeltaSetIndexMapr@r/r})rr@rs rbuildDeltaSetIndexMaprs[8nG 1i0 11   DDL7|f,!DK K34DK Kr*cdtj}d|_|dz |_|dz|_|S)NrUr)rDevice DeltaFormat StartSizeEndSize)varIdxrs rbuildVarDevTablers0 99;DDr\DNF?DL Kr*N)F)T) fontToolsrfontTools.ttLib.tablesrrrrr)r2r:r=rArjrrrurnrpraryrrrrrrrr*rrs}1   $%2j!; ?;'    r*