§
    ‚Ûg¯%  ã                   óÞ   — d dl mZmZ d dlmZ d dlmZ d dlmZ	 d dl
mZ d dlmZ d dlZ ej        d¦  «        Zd	„ Zd
„ Zdd„Zdd„Zedk    rd dlZ ej         e¦   «         ¦  «         dS dS )é    )Ú	_add_avarÚload_designspace)ÚVariationModel)ÚVarStoreInstancer)ÚfixedToFloat)ÚmakeOutputFileName)ÚproductNzfontTools.varLib.avarc                 óv   — | dk    r|j         | |j        |j         z
  z  z   S |j         | |j         |j        z
  z  z   S )Nr   )ÚdefaultValueÚmaxValueÚminValue)ÚvÚaxiss     úK/granary/edev/quantum/lib/python3.11/site-packages/fontTools/varLib/avar.pyÚ_denormalizer      sE   € ØˆA‚v€vØÔ  1¨¬¸Ô8IÑ(IÑ#JÑJÐJàÔ  1¨Ô(9¸D¼MÑ(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 n§ŒMt          |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Ð2 q�E�!—'’'‘)”)ÑÔ˜dÐ2Ð2Ð2r   ©éÿÿÿÿr   é   r   r   c                 ó"   — i | ]\  }\  }}}||“ŒS © r   )r   r   Ú_ÚdefaultVs       r   r   z#_pruneLocations.<locals>.<dictcomp>G   s2   € ð %ð %ð %Ù,?¨AÑ/?°°8¸Q˜A˜xð%ð %ð %r   FzNo pin foundc                 ó,   — g | ]}t          |¦  «        ‘ŒS r   ©Údict©r   Úts     r   ú
<listcomp>z#_pruneLocations.<locals>.<listcomp>O   s   € Ð)Ð)Ð)˜�D�‰GŒGÐ)Ð)Ð)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   Ú_pruneLocationsrB      s'  € õ" ˜9 hÑ/Ô/€EØ”=€LØ”N€MØ2Ð2¨EÐ2Ñ2Ô2€DØð &5ñ &5ˆØ�OŠO˜HÑ%Ô%ˆØ˜ŒOˆØ Ô"ˆÝ˜'Ÿ,š,™.œ.Ñ)Ô)ˆØ(/¯ª©¬ð !	5ñ !	5Ñ$ˆG‘_�d˜A˜tØ˜D�\ð  5ñ  5�Ø˜
�?�?ØØŸ9š9™;œ;ð 5ð 5�CÝ"& s¡)¤)�KÝ! +×"2Ò"2Ñ"4Ô"4Ñ5Ô5�GØ +Ò-Ð-Ø Ø gÐ-Ð-Ø Ø" 7Ô+¨qÒ0Ð0Ø˜ð 1õ ).¨a°!©e°R¸Ñ(<Ô(<ð 5ð 5˜Ø$1°,Ô$?˜	Ý(+¨I¯NªNÑ,<Ô,<Ñ(=Ô(=˜Ø(¨KÒ7Ð7Ø$Ø"¨-Ð7Ð7Ø$ð%ð %ØCLÇ?Â?ÑCTÔCTð%ñ %ô %˜	ð % WÔ-°Ò2Ð2Ø=A˜D¥ y§¢Ñ'8Ô'8Ñ!9Ô!9Ñ:Ø!˜Eð 3ð 5 nÑ4Ô4Ð4ùñA 5ñ!	5ðD *Ð)˜TŸYšY™[œ[Ð)Ñ)Ô)Ð)r   Tc                 óÄ  ‡ ‡!‡"‡#— | d         j         }d„ |D ¦   «         Š!d„ |D ¦   «         }d„ t          |¦  «        D ¦   «         Š d| vri i 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   ©r9   ©r   Úas     r   r   z&mappings_from_avar.<locals>.<dictcomp>T   s   € Ð.Ð.Ð. ˆqŒy˜!Ð.Ð.Ð.r   c                 ó   — g | ]	}|j         ‘Œ
S r   rF   rG   s     r   r'   z&mappings_from_avar.<locals>.<listcomp>U   s   € Ð,Ð,Ð,˜a�”	Ð,Ð,Ð,r   c                 ó$   — i | ]\  }}|j         |“ŒS r   rF   )r   r6   rH   s      r   r   z&mappings_from_avar.<locals>.<dictcomp>V   s    € Ð@Ð@Ð@¡D A q�1”9˜aÐ@Ð@Ð@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>Z   sG   € ð ð ð áˆC�Øðð ˜r a¨AÐ.Ð.Ò.Ð.ð 	ˆSà.Ð.Ð.r   ÚmajorVersionr   é   r   r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   r#   r%   s     r   r'   z&mappings_from_avar.<locals>.<listcomp>„   s.   € ð 
ð 
ð 
àõ �‰GŒGð
ð 
ð 
r   c                 óX   •— t          | ¦  «        t          ˆfd„| D ¦   «         ¦  «        fS )Nc              3   ó.   •K  — | ]\  }}‰|         V — Œd S r   r   )r   rM   r    ÚaxisIndexess      €r   ú	<genexpr>z7mappings_from_avar.<locals>.<lambda>.<locals>.<genexpr>ˆ   s,   øè è € Ð,NÐ,NÁ&À#Àq¨[¸Ô-=Ð,NÐ,NÐ,NÐ,NÐ,NÐ,Nr   )Úlenr   )r&   rT   s    €r   ú<lambda>z$mappings_from_avar.<locals>.<lambda>ˆ   s/   ø€ �s 1™vœv¥uÐ,NÐ,NÐ,NÐ,NÈAÐ,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   ÚaxisMaprM   s    €€r   rW   z$mappings_from_avar.<locals>.<lambda>ª   s   ø€ �|¨A¨w°s¬|Ñ<Ô<€ r   c                 ó@   •— i | ]\  }} ‰|¦  «         ‰|¦  «        “ŒS r   r   )r   r   r   Údenorms      €r   r   z&mappings_from_avar.<locals>.<dictcomp>«   s/   ø€ ÐJÐJÐJ±d°a¸˜V˜V A™YœY¨¨¨q©	¬	ÐJÐJÐJr   c                 óD   •— i | ]\  }}|t          |‰|         ¦  «        “ŒS r   r\   ©r   rM   Úvalr]   s      €r   r   z&mappings_from_avar.<locals>.<dictcomp>®   s:   ø€ ð ð ð Ù9A¸¸c�•\ # w¨s¤|Ñ4Ô4ðð ð r   c                 óD   •— i | ]\  }}|t          |‰|         ¦  «        “ŒS r   r\   ra   s      €r   r   z&mappings_from_avar.<locals>.<dictcomp>±   s:   ø€ ð ð ð Ù9A¸¸c�•\ # w¨s¤|Ñ4Ô4ðð ð r   ) ÚaxesÚ	enumerateÚsegmentsr   ÚgetattrÚtableÚVarStoreÚVarRegionListÚRegionr+   ÚVarDataÚVarRegionIndexÚVarRegionAxisÚ	PeakCoordÚappendÚ
StartCoordÚEndCoordr	   r   ÚaddÚupdateÚsortedr,   rB   ÚlistÚ	VarIdxMapr   ÚsetLocationÚgetÚfi2flÚpopÚ
ValueError)$ÚfontÚdenormalizeÚfvarAxesr0   rK   ÚaxisMapsÚmappingsÚvarStoreÚregionsr/   ÚinputLocationsÚvarDataÚregionIndicesÚregionIndexÚpeakLocationÚcornersÚregionÚ	axisIndexr   r9   ÚcornerÚ	varIdxMapÚ	instancerr5   ÚoutputLocationÚvarIdxÚdeltar   rN   r6   ÚinputLocÚ	outputLocrT   r]   r_   rM   s$                                   @@@@r   Úmappings_from_avarr”   R   sÛ  øøøø€ Ø�FŒ|Ô €HØ.Ð. XÐ.Ñ.Ô.€GØ,Ð, 8Ð,Ñ,Ô,€HØ@Ð@­I°hÑ,?Ô,?Ð@Ñ@Ô@€KØ�TÐÐØ�2ˆvˆØ�Œ<€Dðð àœ×+Ò+Ñ-Ô-ðñ ô €Hð
 €Håˆt�^ QÑ'Ô'¨1Ò,Ñ,Ø”:Ô&ˆØÔ(Ô/ˆð �T�
ˆÝ˜b˜T™œˆØÔ'ð 	/ñ 	/ˆGØ#Ô2ˆMØ,ð /ñ /�Ø!�Ø�Ø  Ô-�Ý'0°Ô1EÑ'FÔ'Fð 
+ð 
+‘O�I˜tØ”~¨Ò*Ð*Ø Ø& yÔ1�GØ ×'Ò'¨°$´.Ð(AÑBÔBÐBØ�FØ”¨!Ò+Ð+ØŸš w°´Ð&@ÑAÔAÐAØ”}¨Ò)Ð)ØŸš w°´Ð&>Ñ?Ô?Ð?Ø—N’N 6Ñ*Ô*Ð*Ð*Ý�g wÐ/Ñ0Ô0�Ý$ \Ñ2Ô2�Ø&*��lÑ#Ø×"Ò" <Ñ0Ô0Ð0Ø×%Ò% gÑ.Ô.Ð.Ñ.ñ'/ð,
ð 
åØØOÐOÐOÐOðñ ô ð
ñ 
ô 
ˆð 0Ð/ %§*¢*¡,¤,Ð/Ñ/Ô/ˆÝ(¨½¸e¹¼ÀhÑOÔOˆð ”JÔ(ˆ	Ý% h°Ñ9Ô9ˆ	Ø&ð 	8ð 	8ˆHØ×!Ò! (Ñ+Ô+Ð+ØˆNÝ&/°Ñ&9Ô&9ð 
0ð 
0Ñ"�	˜7Ø"�ØÐ(Ø& vÔ.�FØ! &Ô)�Ø˜A’:�:Ø Ÿš W¨aÑ0Ô0�AØ�E %¨Ñ,Ô,Ñ,�Að /0�N 7Ñ+øØ�OŠO˜X ~Ð6Ñ7Ô7Ð7Ð7ð ˜Œ{˜1Œ~ Ò#Ð#Ð#Ð#Ø�AŒ;�qŒ>˜RÒÐØ�LŠL˜‰OŒOˆOàð 0Ø ŸšÑ(Ô(ð 	Kð 	K‰HˆC�Ø˜'Ð!Ð!Ý Ð!:°SÐ!:Ð!:Ñ;Ô;Ð;Ø<Ð<Ð<Ð<Ð<ˆFØJÐJÐJÐJ¸c¿iºi¹k¼kÐJÑJÔJˆH�S‰MˆMå(1°(Ñ(;Ô(;ð 	0ð 	0Ñ$ˆAÑ$�˜)ðð ð ð ØEMÇ^Â^ÑEUÔEUðñ ô ˆHðð ð ð ØENÇ_Â_ÑEVÔEVðñ ô ˆIð $ YÐ/ˆH�Q‰KˆKà�XÐÐr   c                 ó@  — | €ddl }|j        dd…         } ddlm} ddlm} ddlm} ddl}| 	                    dd ¬¦  «        }| 
                    d	d
d¬¦  «         | 
                    ddddd¬¦  «         | 
                    ddt          d¬¦  «         | 
                    dddd¬¦  «         |                     | ¦  «        } ||j        rdnd¬¦  «          ||j        ¦  «        }d|vrt                               d¦  «         dS |j        €Mdd lm}	 t'          |¦  «        \  }
} |	|
¦  «          |	|¦  «         t)          t+          |¦  «        d!¦  «         dS d"„ |d         j        D ¦   «         }t/          |j        d#¬$¦  «        }d%|v rt                               d&¦  «         |d%= t3          ||j        |j        |¦  «         |j        €t9          |j        d'd(¬)¦  «        }n|j        }|r2t                               d*|¦  «         |                     |¦  «         dS dS )+z8Add `avar` table from designspace file to variable font.Nr   r   )ÚconfigLogger)ÚTTFont)ÚDesignSpaceDocumentzfonttools varLib.avar)Údescriptionr}   zvarfont.ttfzVariable-font file.)ÚmetavarÚhelpÚdesignspacezfamily.designspacezDesignspace file.ú?)rš   r›   ÚnargsÚdefaultz-oz--output-filezOutput font file name.)Útyper›   z-vz	--verboseÚ
store_truezRun more verbosely.)Úactionr›   ÚINFOÚWARNING)ÚlevelrD   zNot a variable font.)Úpprintr�   c                 ó   — g | ]	}|j         ‘Œ
S r   rF   rG   s     r   r'   zmain.<locals>.<listcomp>î   s   € Ð5Ð5Ð5˜a�”	Ð5Ð5Ð5r   F)Úrequire_sourcesrK   z(avar table already present, overwriting.Tz.avar)Ú	overWriteÚsuffixz	Saving %s)ÚsysÚargvÚ	fontToolsr–   ÚfontTools.ttLibr—   ÚfontTools.designspaceLibr˜   ÚargparseÚArgumentParserÚadd_argumentÚstrÚ
parse_argsÚverboser}   ÚlogÚerrorrœ   r¦   r”   ÚprintrV   rd   r   Úwarningr   ÚaxisMappingsÚoutput_filer   ÚinfoÚsave)Úargsr«   r–   r—   r˜   r°   ÚparserÚoptionsr}   r¦   rf   r�   r0   ÚdsÚoutfiles                  r   ÚmainrÃ   ¹   s¼  € ð €|Øˆ
ˆ
ˆ
àŒx˜˜˜Œ|ˆà&Ð&Ð&Ð&Ð&Ð&Ø&Ð&Ð&Ð&Ð&Ð&Ø<Ð<Ð<Ð<Ð<Ð<Ø€O€O€Oà×$Ò$ØØNð %ñ ô €Fð ×Ò˜¨Ð<QÐÑRÔRÐRØ
×ÒØØ$Ø ØØð ñ ô ð ð ×ÒØØÝØ%ð	 ñ ô ð ð ×ÒØˆk ,Ð5Jð ñ ô ð ð ×Ò Ñ%Ô%€Gà€L '¤/Ð@˜˜°yÐBÑBÔBÐBàˆ6�'”,ÑÔ€DØ�Tˆ>ˆ>Ý�	Š	Ð(Ñ)Ô)Ð)ØˆqàÔÐ"Ø!Ð!Ð!Ð!Ð!Ð!å/°Ñ5Ô5Ñˆ�(ØˆˆxÑÔÐØˆˆxÑÔÐÝ�c�(‰mŒm˜ZÑ(Ô(Ð(Øˆà5Ð5 4¨¤<Ô#4Ð5Ñ5Ô5€Hå	˜'Ô-¸uÐ	EÑ	EÔ	E€Bà�€~€~Ý�ŠÐ>Ñ?Ô?Ð?Ø�ˆLåˆd�B”G˜Rœ_¨hÑ7Ô7Ð7àÔÐ"Ý$ W¤\¸TÈ'ÐRÑRÔRˆˆàÔ%ˆØð Ý�Š�˜gÑ&Ô&Ð&Ø�	Š	�'ÑÔÐÐÐðð r   Ú__main__)Tr   )ÚfontTools.varLibr   r   ÚfontTools.varLib.modelsr   ÚfontTools.varLib.varStorer   ÚfontTools.misc.fixedToolsr   rz   ÚfontTools.misc.cliToolsr   Ú	itertoolsr	   ÚloggingÚ	getLoggerr¶   r   rB   r”   rÃ   Ú__name__r«   Úexitr   r   r   ú<module>rÏ      s#  ðØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð Ø €€€à€gÔÐ/Ñ0Ô0€ðKð Kð Kð<*ð <*ð <*ð~dð dð dð dðNEð Eð Eð EðP ˆzÒÐØ€J€J€Jà€C„HˆTˆT‰VŒVÑÔÐÐÐð Ðr   