
    h(                         S SK Jr  S SKJr  S SKJr  S SKJr  S SK	r	S r
S rSS jr\	R                  4S	 jrSS
 jr\S:X  a  S SK	r	\	R"                  " \" 5       5        gg)    )VariationModel)VarStoreInstancer)fixedToFloat)productNc                     U S:  a(  UR                   XR                  UR                   -
  -  -   $ UR                   XR                   UR                  -
  -  -   $ )Nr   )defaultValuemaxValueminValue)vaxiss     W/var/www/fran/franai/venv/lib/python3.13/site-packages/fontTools/varLib/avar/unbuild.py_denormalizer      sO    Av  18I8I(I#JJJ  1(9(9DMM(I#JJJ    c                    [        X5      nUR                  nUR                  nU Vs0 s H  n[        UR	                  5       5      S _M     nnU GH[  nU R                  U5      n	XI   n	XY   n
[        U
R                  5       5      nU
R	                  5        GH  u  nu  pnX4 H  nUS;   a  M  UR                  5        HC  n[        U5      n[        UR                  5       5      nUU:w  a  M/  UU;  a  M7  UU   U:X  d  MB    M`     [        U	S-
  SS5       H  nUU   n[        UR                  5       5      nUU:w  a  M)  UU;  a  M1  UR	                  5        VVVs0 s H  u  nu  nnoU_M     nnnnUU   U:X  d  Mg  S U[        UR	                  5       5      '     M      S5       e   GM     GM^     UR                  5        Vs/ s H  n[        U5      PM     sn$ s  snf s  snnnf s  snf )Nr      r   r   zNo pin found)
r   mappingsupportstupleitemsindexsetkeysdictrange)	locationspolesaxisTagsmodelmodelMappingmodelSupportskpinslocationisupportsupportAxesaxisTagminV_maxVr   pinpinLocationpinAxescandidateIdx	candidatecandidateAxesdefaultVts                            r   _pruneLocationsr5      s   " 9/E==LNNM,12EqE!'')d"ED2OOH%O"',,.)(/$G_dt\
?99;C"&s)K!+"2"2"45G+- g- "7+q0 ' ).a!eR(<$1,$?	(+INN,<(=(K7$"-7$CL??CT%CT,?A/?8QxKCT " % %W-2=ADy'8!9:! )= 5n4uA " )8 N "YY[)[DG[))Q 3@% *s   $GGG&c                 \	  ^^&^' U S   R                   nU Vs0 s H  o3R                  U_M     snm'U Vs/ s H  o3R                  PM     nn[        U5       VVs0 s H  u  pSUR                  U_M     snnm&SU ;  a  0 0 4$ U S   nUR                  R	                  5        VVs0 s H  u  pxU(       d  M  USSSS.:w  d  M  Xx_M     n	nn/ n
[        USS5      S:X  Ga  UR                  R                  nUR                  R                  nS	S 0n[        S	15      nUR                   GH'  nUR                  nU GH  n/ n/ nUU   n[        UR                  5       H  u  nnUR                  S:X  a  M  UU   nUR                  UUR                  45        / nUR                   S:w  a  UR                  UUR                   45        UR"                  S:w  a  UR                  UUR"                  45        UR                  U5        M     [        [%        U6 5      n['        U5      nS UU'   UR)                  U5        UR+                  U5        GM     GM*     [-        UU&4S
 jS9 Vs/ s H  n[/        U5      PM     nnUR1                  5        Vs/ s H  n[/        U5      PM     nn[3        U[5        U5      U5      nUR                  R6                  n[9        X5      nU H{  nUR;                  U5        0 n[        U5       HC  u  nnUnUb  UU   nUU   nUS:w  d  M  UR=                  US5      n U [?        US5      -   n U UU'   ME     U
R                  UU45        M}     U
S   S   0 :X  d   eU
S   S   0 :X  a  U
RA                  S5        U(       a  U	R	                  5        HW  u  mnTT';  a  [C        ST 35      eU'U4S jn!UR	                  5        V"V s0 s H  u  n"n U!" U"5      U!" U 5      _M     sn n"U	T'   MY     [        U
5       Hu  u  nu  n#n$U#R	                  5        VV%s0 s H  u  nn%U[E        U%T'U   5      _M     n#nn%U$R	                  5        VV%s0 s H  u  nn%U[E        U%T'U   5      _M     n$nn%U#U$4X'   Mw     X4$ s  snf s  snf s  snnf s  snnf s  snf s  snf s  sn n"f s  sn%nf s  sn%nf )Nfvaravarr   r   r   r   majorVersion    c                 D   > [        U 5      [        U4S jU  5       5      4$ )Nc              3   2   >#    U  H  u  pTU   v   M     g 7fNr;   ).0tagr+   axisIndexess      r   	<genexpr>7mappings_from_avar.<locals>.<lambda>.<locals>.<genexpr>   s     ,NA&#[-=As   )lenr   )r4   rA   s    r   <lambda>$mappings_from_avar.<locals>.<lambda>   s    s1vu,NA,N'NOr   )key   zUnknown axis tag c                 "   > [        U TT   5      $ r>   )r   )r   axisMapr@   s    r   rE   rF      s    |Aws|<r   )#axesr)   	enumeratesegmentsr   getattrtableVarStoreVarRegionListRegionr   VarDataVarRegionIndexVarRegionAxis	PeakCoordappend
StartCoordEndCoordr   r   addupdatesortedr   r   r5   list	VarIdxMapr   setLocationgetfi2flpop
ValueErrorr   )(fontdenormalizefvarAxesar   r&   r8   r@   segaxisMapsmappingsvarStoreregionsr   inputLocationsvarDataregionIndicesregionIndexpeakLocationcornersregion	axisIndexr   r)   cornerr4   	varIdxMap	instancerr%   outputLocationvarIdxdeltar   denormr#   inputLoc	outputLocvalrA   rJ   s(          `                              @@r   mappings_from_avarr   N   s   F|  H%-.Xyy!|X.G#+,8a		8H,,5h,?@,?DA199a<,?@KT2v<D ++--HC 	raA.. 	-  
 Ht^Q'1,::&&((// T
bT''G#22M,! -'01E1E'FOIt~~* &y1G ''$..(ABF!+w&@A}})w&>?NN6* (G gw/0$\2&*l#""<0%%g.'  - (4 O
 G 	 
 #(**,/,Qa,/(ehO JJ((	%h9	&H!!(+N&/&9"	7"(&v.F!&)A: Wa0AE%,,A /0N7+ ': OOX~67 '" {1~###A;q>RLLO (HC'! #4SE!:;;<F>AiikJkdaVAYq	1kJHSM	 ) )2((;$A$)EM^^EUEUc\#ws|44EU   FO__EVEVc\#ws|44EV   $Y/HK )< E /,@T
 0@ Ks@   Q<RR"R3R?R R	RRR"R(c                    U S   nUR                   n[        U 5      u  pESU ;   a;  U S   nU Vs0 s H(  owR                  UR                  UR                  5      _M*     nnO&U V	s0 s H  oR                  U	R                  _M     nn	[        SUS9  [        SUS9  [        SUS9  U GH-  nXR                     n
UR                  UR                  UR                  4nU Vs/ s H  o[        U5      :X  a  [        U5      OUPM      nnUR                  UR                  5      nUc  SOSn[        S	UR                   S
U
 SUS    SUS    SUS    SU 3US9  Uc  M  [        UR                  5       5       HP  nX   nU[        U5      :X  a  [        U5      OUnU[        U5      :X  a  [        U5      OUn[        SU SU S3US9  MR     [        SUS9  GM0     U(       Ga  [        SUS9  U H  u  nn[        SUS9  [        SUS9  [        UR                  5       5       H8  nUU   nU[        U5      :X  a  [        U5      OUn[        SUU    SU S3US9  M:     [        SUS9  [        SUS9  [        UR                  5       5       H8  nUU   nU[        U5      :X  a  [        U5      OUn[        SUU    SU S3US9  M:     [        SUS9  [        SUS9  M     [        SUS9  [        S US9  [        S!US9  g s  snf s  sn	f s  snf )"Nr7   namez&<?xml version='1.0' encoding='UTF-8'?>filez<designspace format="5.1">z  <axes>z/>>z    <axis tag="z" name="z" minimum="r   z" maximum="r:   z" default="r   "z      <map input="z
" output="z"/>z    </axis>z    <mappings>z      <mapping>z        <input>z          <dimension name="z
" xvalue="z        </input>z        <output>z        </output>z      </mapping>z    </mappings>z	  </axes>z</designspace>)rK   r   r)   getDebugName
axisNameIDprintr
   r   r	   intr`   r\   r   )rd   fr7   rK   rM   rj   r   r   	axisNamesrg   axisNametripletr   rJ   closingr#   r|   r}   r@   s                      r   unbuildr      s2   <D99D+D1H~F|RVWRV$\\4#4#4T__#EERV	W	3784aYY		)4	8	
2;	
&Q/	*1\\*==$"3"3T]]C9@AA#a&[3q6a/A,,t||,!/$sdll^8H:[QRT_`ghi`j_kkvw~  @A  xB  wC  CD  EL  DM  N	
 GLLN+J3q6kCFq3q6kCFq*1#Zs#>QG	 ,
 -a() * Q'#+Hi#!,#!,hmmo.SM3q6kCFq1)C.1AA3cR / $1-$1-inn./cN3q6kCFq1)C.1AA3cR 0 %A.$1-) $,* 	a(	+A	
#k X8 Bs   /K;$ L %Lc                     U c  [         R                  SS n SSKJn  SSKnUR                  SS S9nUR                  SSS	S
9  UR                  U 5      nU" UR                  5      nSU;  a  [        S[         R                  S9  g[        U5        g)z,Print `avar` table as a designspace snippet.Nr   r   )TTFontzfonttools varLib.avar.unbuild)descriptionrd   zvarfont.ttfzVariable-font file.)metavarhelpr7   zNot a variable font.r   )sysargvfontTools.ttLibr   argparseArgumentParseradd_argument
parse_argsrd   r   stderrr   )argsr   r   parseroptionsrd   s         r   mainr      s     |xx|&$$'B % F <QR%G',,DT$3::6DMr   __main__)Tr>   )fontTools.varLib.modelsr   fontTools.varLib.varStorer   fontTools.misc.fixedToolsr   ra   	itertoolsr   r   r   r5   r   stdoutr   r   __name__exitr;   r   r   <module>r      s[    2 7 ;  
K<*~dN JJ <$~0 zHHTV r   