
     i)                         d dl mZ d dlmZ d dlmZ d dlmZ d dl	Z	d Z
d Zdd	Ze	j        fd
ZddZedk    rd dl	Z	 e	j         e                       dS dS )    )VariationModel)VarStoreInstancer)fixedToFloat)productNc                 v    | dk    r|j         | |j        |j         z
  z  z   S |j         | |j         |j        z
  z  z   S )Nr   )defaultValuemaxValueminValue)vaxiss     g/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/fontTools/varLib/avar/unbuild.py_denormalizer      sE    Avv 18I(I#JJJ 1(9DM(I#JJJ    c           
         t          | |          }|j        }|j        }d |D             }|D ]~}|                     |          }||         }||         }	t	          |	                                          }
|	                                D ]\  }\  }}}||fD ]}|dv r|                                D ]L}t          |          }t	          |                                          }||
k    r9||vr>||         |k    r nMt          |dz
  dd          D ]}||         }t	          |                                          }||
k    r2||vr7d |                                D             }||         |k    r&d |t          |                                          <    nJ d            !d |                                D             S )	Nc                 R    i | ]$}t          |                                          d %S N)tupleitems).0ks     r   
<dictcomp>z#_pruneLocations.<locals>.<dictcomp>#   s*    222qE!''))d222r   r      r   r   c                 "    i | ]\  }\  }}}||S  r   )r   r   _defaultVs       r   r   z#_pruneLocations.<locals>.<dictcomp>C   s2     % % %,?A/?8QAx% % %r   FzNo pin foundc                 ,    g | ]}t          |          S r   dictr   ts     r   
<listcomp>z#_pruneLocations.<locals>.<listcomp>K   s    )))DGG)))r   )
r   mappingsupportsindexsetkeysr   r!   ranger   )	locationspolesaxisTagsmodelmodelMappingmodelSupportspinslocationisupportsupportAxesaxisTagminVr   maxVr   pinpinLocationpinAxescandidateIdx	candidatecandidateAxess                         r   _pruneLocationsr?      s'   " 9h//E=LNM22E222D &5 &5OOH%%O"',,..))(/ !	5 !	5$G_dAtD\  5  5
??99;; 5 5C"&s))K!+"2"2"4"455G+-- g-- "7+q00 1 ).a!eR(<(< 5 5$1,$?	(+INN,<,<(=(=(K77$"-77$% %CL??CTCT% % %	 %W-22=ADy'8'8!9!9:!E 3 5n444A 5!	5D *)TYY[[))))r   Tc                    !"# | d         j         }d |D             !d |D             }d t          |          D              d| vri g fS | d         }d |j                                        D             }g }t	          |dd          d	k    r|j        j        }|j        j        }d
d i}	t          d
h          }
|j
        D ] }|j        }|D ]}g }g }||         }t          |j                  D ]\  }}|j        dk    r||         }|                    ||j        f           g }|j        dk    r|                    ||j        f           |j        dk    r|                    ||j        f           |                    |           t          t#          |           }t%          |          }d |	|<   |
                    |           |
                    |           "d t+          |
 fd          D             }
d |	                                D             }	t/          |
t1          |	          |          }
|j        j        }t5          ||          }|
D ]}|                    |           i }t          |          D ]M\  }}|}|||         }||         }|dk    r.|                    |d          }|t;          |d          z   }|||<   N|                    ||f           |d         d         i k    sJ |d         d         i k    r|                    d           |r|                                D ]D\  #}#!vrt?          d#           !#fd""fd|                                D             |#<   Et          |          D ]O\  }\  }}!fd|                                D             }!fd|                                D             }||f||<   P||fS )Nfvarc                     i | ]
}|j         |S r   r6   r   as     r   r   z&mappings_from_avar.<locals>.<dictcomp>P   s    ...qy!...r   c                     g | ]	}|j         
S r   rC   rD   s     r   r$   z&mappings_from_avar.<locals>.<listcomp>Q   s    ,,,a	,,,r   c                 $    i | ]\  }}|j         |S r   rC   )r   r3   rE   s      r   r   z&mappings_from_avar.<locals>.<dictcomp>R   s     @@@DAq19a@@@r   avarc                 2    i | ]\  }}|r|d dddk    ||S )r   r   r   r   r   )r   tagsegs      r   r   z&mappings_from_avar.<locals>.<dictcomp>V   sG       C raA.... 	S...r   majorVersionr      r   r   c                 ,    g | ]}t          |          S r   r    r"   s     r   r$   z&mappings_from_avar.<locals>.<listcomp>   s.     
 
 
 GG
 
 
r   c                 X    t          |           t          fd| D                       fS )Nc              3   .   K   | ]\  }}|         V  d S r   r   )r   rJ   r   axisIndexess      r   	<genexpr>z7mappings_from_avar.<locals>.<lambda>.<locals>.<genexpr>   s,      ,N,N&#q[-=,N,N,N,N,N,Nr   )lenr   )r#   rQ   s    r   <lambda>z$mappings_from_avar.<locals>.<lambda>   s/    s1vvu,N,N,N,NA,N,N,N'N'NO r   )keyc                 ,    g | ]}t          |          S r   r    r"   s     r   r$   z&mappings_from_avar.<locals>.<listcomp>   s    ///Qa///r      zUnknown axis tag c                 0    t          |                    S r   r   )r   axisMaprJ   s    r   rT   z$mappings_from_avar.<locals>.<lambda>   s    |Aws|<< r   c                 @    i | ]\  }} |           |          S r   r   )r   r   r   denorms      r   r   z&mappings_from_avar.<locals>.<dictcomp>   s/    JJJdaVVAYYq		JJJr   c                 D    i | ]\  }}|t          ||                   S r   rY   r   rJ   valrZ   s      r   r   z&mappings_from_avar.<locals>.<dictcomp>   s:       9Ac\#ws|44  r   c                 D    i | ]\  }}|t          ||                   S r   rY   r^   s      r   r   z&mappings_from_avar.<locals>.<dictcomp>   s:       9Ac\#ws|44  r   ) axes	enumeratesegmentsr   getattrtableVarStoreVarRegionListRegionr(   VarDataVarRegionIndexVarRegionAxis	PeakCoordappend
StartCoordEndCoordr   r   addupdatesortedr)   r?   list	VarIdxMapr   setLocationgetfi2flpop
ValueError)$fontdenormalizefvarAxesr-   rH   axisMapsmappingsvarStoreregionsr,   inputLocationsvarDataregionIndicesregionIndexpeakLocationcornersregion	axisIndexr   r6   corner	varIdxMap	instancerr2   outputLocationvarIdxdeltar   rK   r3   inputLoc	outputLocrQ   rZ   r\   rJ   s$                                   @@@@r   mappings_from_avarr   N   s   F| H..X...G,,8,,,H@@Ih,?,?@@@KT2v<D ++--  H
 Ht^Q''1,,:&(/ T
bT' 	/ 	/G#2M, / /! -'01E'F'F 
+ 
+OIt~** &y1G ''$.(ABBBF!++w&@AAA}))w&>???NN6****gw/00$\22&*l#""<000%%g....'/,
 
OOOO  
 
 
 0/%**,,///(ehOO J(	%h99	& 	8 	8H!!(+++N&/&9&9 
0 
0"	7"(&v.F!&)A:: Wa00AE%,,,A /0N7+OOX~67777 {1~####A;q>RLLOOO 0 (( 	K 	KHC'!! !:S!:!:;;;<<<<<FJJJJciikkJJJHSMM(1((;(; 	0 	0$A$)   EM^^EUEU  H   EN__EVEV  I $Y/HQKKXr   c                 ~   | d         }|j         }t          |           \  }}d| v r| d         fd|D             }nd |D             }t          d|           t          d|           t          d|           |D ])}||j                 }|j        |j        |j        f}	d	 |	D             }	|                    |j                  }
|
d
nd}t          d|j         d| d|	d          d|	d          d|	d          d| |           |
t          |
	                                          D ]j}|
|         }|t          |          k    rt          |          n|}|t          |          k    rt          |          n|}t          d| d| d|           kt          d|           +|rnt          d|           |D ]H\  }}t          d|           t          d|           t          |	                                          D ]L}||         }|t          |          k    rt          |          n|}t          d||          d| d|           Mt          d|           t          d|           t          |	                                          D ]L}||         }|t          |          k    rt          |          n|}t          d||          d| d|           Mt          d |           t          d!|           Jt          d"|           t          d#|           t          d$|           d S )%NrA   namec                 ^    i | ])}|j                             |j                  p|j         *S r   )r6   getDebugName
axisNameID)r   r   r   s     r   r   zunbuild.<locals>.<dictcomp>   sD     
 
 
 L$++DO<<L
 
 
r   c                 (    i | ]}|j         |j         S r   rC   rD   s     r   r   zunbuild.<locals>.<dictcomp>   s    888aQY	888r   z&<?xml version='1.0' encoding='UTF-8'?>filez<designspace format="5.1">z  <axes>c                 V    g | ]&}|t          |          k    rt          |          n|'S r   )int)r   r   s     r   r$   zunbuild.<locals>.<listcomp>   s0    AAAAQ#a&&[[3q666aAAAr   z/>>z    <axis tag="z" name="z" minimum="r   z" maximum="rM   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>)ra   r   printr6   r
   r   r	   rv   rr   r)   r   )rz   frA   ra   rc   r~   	axisNamesr   axisNametripletrZ   closingr   r   r   r   rJ   r   s                    @r   unbuildr      s@   <D9D+D11Hh~~F|
 
 
 

 
 
		
 984888		
2;;;;	
&Q////	*1 ) )T\*=$"3T]CAAAAA,,t|,,!/$$s Ndl  N  NH  N  NQR  N  N`ghi`j  N  Nw~  @A  xB  N  N  EL  N  N	
 	
 	
 	
 GLLNN++ H HAJ3q66kkCFFFq3q66kkCFFFq>1>>>>>QGGGGG-a(((( )Q''''#+ 	. 	.Hi#!,,,,#!,,,,hmmoo..  SM3q66kkCFFFqR)C.RRARRR     $1----$1----inn..//  cN3q66kkCFFFqR)C.RRARRR     %A....$1-----a((((	+A	
######r   c                 N   | t           j        dd         } ddlm} ddl}|                    dd           }|                    ddd	
           |                    |           } ||j                  }d|vrt          dt           j
                   dS t          |           dS )z,Print `avar` table as a designspace snippet.Nr   r   )TTFontzfonttools varLib.avar.unbuild)descriptionrz   zvarfont.ttfzVariable-font file.)metavarhelprA   zNot a variable font.r   )sysargvfontTools.ttLibr   argparseArgumentParseradd_argument
parse_argsrz   r   stderrr   )argsr   r   parseroptionsrz   s         r   mainr      s     |x|&&&&&&OOO$$'B %  F <QRRR%%G6',DT$3:6666qDMMMMMr   __main__)Tr   )fontTools.varLib.modelsr   fontTools.varLib.varStorer   fontTools.misc.fixedToolsr   rw   	itertoolsr   r   r   r?   r   stdoutr   r   __name__exitr   r   r   <module>r      s    2 2 2 2 2 2 7 7 7 7 7 7 ; ; ; ; ; ;       



K K K<* <* <*~d d d dN J ?$ ?$ ?$ ?$D   0 zJJJCHTTVV r   