
    <`/                         d dl mZ d dlmZ d Zd Zd Zd ZddZ	e	ej
        _        dd
Zd Zeej
        _        ddZd Zd Zd ZdS )    )ttLib)otTablesc                 j    t          j                    }d | D             \  |_        |_        |_        |S )Nc                 ,    g | ]}t          |          S  )float).0vs     8lib/python3.11/site-packages/fontTools/varLib/builder.py
<listcomp>z&buildVarRegionAxis.<locals>.<listcomp>   s    2Q2Q2Q5882Q2Q2Q    )otVarRegionAxis
StartCoord	PeakCoordEndCoord)axisSupportselfs     r   buildVarRegionAxisr      s5    
2Q2Q[2Q2Q2Q/$.$-r   c           	      0   t          fd|                                 D                       sJ d| f            t          j                    }g |_        D ]=}|j                            t          |                     |d                               >|S )Nc              3       K   | ]}|v V  	d S Nr   )r	   tagaxisTagss     r   	<genexpr>z!buildVarRegion.<locals>.<genexpr>   s'      66C8O666666r   zUnknown axis tag found.)r   r   r   )allkeysr   	VarRegionr   appendr   get)supportr   r   r   s    `  r   buildVarRegionr"      s    6666w||~~66666ff9RT[]e8ffff
 K KS.w{{3/H/HIIJJJJr   c                     t          j                    }t          |          |_        g |_        | D ]*}|j                            t          ||                     +t          |j                  |_        |S r   )r   VarRegionListlenRegionAxisCountRegionr   r"   RegionCount)supportsr   r   r!   s       r   buildVarRegionListr*      sn    
H 8 8W+^GX667777$$r   c                        fd|D             S )Nc                      g | ]
}|         S r   r   )r	   ilsts     r   r   z _reorderItem.<locals>.<listcomp>   s    !!!AQ!!!r   r   )r.   mappings   ` r   _reorderItemr0      s    !!!!!!!!r   Fc                    | j         }| j        }dg|z  }|D ](}d |D             }d t          ||          D             })d |D             }t          d |D                       }|rg }	|	                    d t          |          D                        |	                    d t          |          D                        |	                    d t          |          D                        t          ||	          }t          | j        |	          | _        t          | j                  | _         t          t          |                    D ]}
t          ||
         |	          ||
<   |rAt          d	 t          |          D             d
          dz   | _        | xj        dz  c_        n0t          d t          |          D             d
          dz   | _        t          | j                  | _         | S )Nr   c                 D    g | ]}||d k     z                                    S ))
bit_length)r	   r-   s     r   r   z.VarData_calculateNumShorts.<locals>.<listcomp>*   s,    222a"f!!##222r   c                      g | ]}t          | S r   )max)r	   pairs     r   r   z.VarData_calculateNumShorts.<locals>.<listcomp>+   s    ===d===r   c                 &    g | ]}|r|d z   dz	  ndS )      r   r   r	   bs     r   r   z.VarData_calculateNumShorts.<locals>.<listcomp>5   s)    AAA1+1q5Q,,!AAAr   c              3   "   K   | ]
}|d k    V  dS    Nr   r;   s     r   r   z-VarData_calculateNumShorts.<locals>.<genexpr>8   s&      --1Q------r   c              3   ,   K   | ]\  }}|d k    |V  dS r>   r   r	   r-   r<   s      r   r   z-VarData_calculateNumShorts.<locals>.<genexpr>=   s*      ??sqQ??r   c              3   ,   K   | ]\  }}|d k    |V  dS r>   r   rA   s      r   r   z-VarData_calculateNumShorts.<locals>.<genexpr>>   *      @@sqa@@r   c              3   ,   K   | ]\  }}|d k    |V  dS    Nr   rA   s      r   r   z-VarData_calculateNumShorts.<locals>.<genexpr>?   rC   r   c              3   ,   K   | ]\  }}|d k    |V  dS r>   r   rA   s      r   r   z-VarData_calculateNumShorts.<locals>.<genexpr>H   *      FFcaAFFr   r3   )defaultrF      c              3   ,   K   | ]\  }}|d k    |V  dS rE   r   rA   s      r   r   z-VarData_calculateNumShorts.<locals>.<genexpr>K   rH   r   )VarRegionCountItemzipanyextend	enumerater0   VarRegionIndexr%   ranger6   	NumShorts)r   optimizecountitemsbit_lengthsitemblbyte_lengths	longWordsr/   r-   s              r   VarData_calculateNumShortsr]       s   			sU{ > >T 32T222"==B(<(<===++ BA[AAA ------- .'	..??i55??????	..@@i55@@@@@@	..@@i55@@@@@@lG44,$T%8'BB$D/00$U . .a58W--588 XFFY|%<%<FFFPRSSSVWW$...F...FFY|%<%<FFFPRSSSVWW$.4.//r   Tc                 $    t          | |          S )zDeprecated name for VarData_calculateNumShorts() which
	defaults to optimize=True.  Use varData.calculateNumShorts()
	or varData.optimize().rU   r]   )r   rU   s     r   VarData_CalculateNumShortsra   R   s     	#4(;;;;r   c                 $    t          | d          S )NTr_   r`   )r   s    r   VarData_optimizerc   X   s    "4$7777r   c                 v   t          j                    }t          |           |_        t	          |j                  x}|_        g x}|_        |r<|D ]9}t	          |          |k    sJ |                    t          |                     :t	          |j                  |_        |	                    |           |S )Nr_   )
r   VarDatalistrR   r%   rL   rM   r   	ItemCountcalculateNumShorts)varRegionIndicesrW   rU   r   regionCountrecordsrY   s          r   buildVarDatarl   ^   s    

,--%()<%=%==t"49	   d
d)){
"
"
"
"
>>$t**di..(+++r   c                     t          j                    }d|_        | |_        t	          |          |_        t          |j                  |_        |S )NrF   )r   VarStoreFormatr$   rf   re   r%   VarDataCount)varRegionListvarDataListr   s      r   buildVarStorers   l   sB    
#[!!&&r   c                 j    t          j                    }d t          ||           D             |_        |S )Nc                     i | ]\  }}||	S r   r   )r	   gr
   s      r   
<dictcomp>z"buildVarIdxMap.<locals>.<dictcomp>y   s    :::11:::r   )r   	VarIdxMaprN   r/   )varIdxes
glyphOrderr   s      r   buildVarIdxMapr{   w   s1    
::J 9 9:::r   c                 b    t          j                    }d|_        | dz	  |_        | dz  |_        |S )NrJ      i  )r   DeviceDeltaFormat	StartSizeEndSize)varIdxr   s     r   buildVarDevTabler   |   s0    
	B,r   N)F)T)	fontToolsr   fontTools.ttLib.tablesr   r   r   r"   r*   r0   r]   re   rh   ra   rc   rU   rl   rs   r{   r   r   r   r   <module>r      s          1 1 1 1 1 1  
    " " ". . . .` !;
 < < < <8 8 8 '
        
    r   