§
    |ØjèS  ã                  óP  — d Z ddlmZ ddlZddlZddlZddlmZmZm	Z	m
Z
mZmZmZmZ ddlmZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZmZmZm Z m!Z!m"Z"m#Z#  ej$        e%¦  «        Z&eeeege'f         Z(d3d„Z)d4d„Z*d5d„Z+dde)fd6d„Z,dde)fd7d!„Z-d8d#„Z.d9d'„Z/d:d+„Z0d;d/„Z1d<d2„Z2dS )=zŒAllows building all the variable fonts of a DesignSpace version 5 by
splitting the document into interpolable sub-space, then into each VF.
é    )ÚannotationsN)ÚAnyÚCallableÚDictÚIteratorÚListÚOptionalÚTupleÚcast)	ÚAxisDescriptorÚAxisMappingDescriptorÚDesignSpaceDocumentÚDiscreteAxisDescriptorÚInstanceDescriptorÚRuleDescriptorÚSimpleLocationDictÚSourceDescriptorÚVariableFontDescriptor)Ú	StatNamesÚgetStatNames)ÚConditionSetÚRangeÚRegionÚgetVFUserRegionÚlocationInRegionÚregionInRegionÚuserRegionToDesignRegionÚdocr   Úinstancer   Ú	statNamesr   ÚreturnÚstrc                ó–   — |j         p|j                             d¦  «        }|j        p|j                             d¦  «        }|› d|› d�S )zÿDefault callable to synthesize an instance filename
    when makeNames=True, for instances that don't specify an instance name
    in the designspace. This part of the name generation can be overriden
    because it's not specified by the STAT table.
    Úenú-z.ttf)Ú
familyNameÚfamilyNamesÚgetÚ	styleNameÚ
styleNames)r   r   r    r&   r)   s        ú“/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/fontTools/designspaceLib/split.pyÚdefaultMakeInstanceFilenamer,   )   sW   € ð Ô$ÐG¨	Ô(=×(AÒ(AÀ$Ñ(GÔ(G€JØÔ"ÐD iÔ&:×&>Ò&>¸tÑ&DÔ&D€IØÐ*Ð*˜9Ð*Ð*Ð*Ð*ó    úDict[str, str]ÚnameúOptional[str]c                ó<   — |                       d¦  «        |k    r| ni S )zIReturn the localised STAT names if they translate ``name``, else nothing.r$   )r(   )r    r/   s     r+   Ú_localisedNamesr2   6   s"   € à!Ÿš dÑ+Ô+¨tÒ3Ð3ˆ9ˆ9¸Ð;r-   ÚNonec                óä  — d„ | j         D ¦   «         }| j        D ]V}|                      |j        ¦  «        }t	          ||¦  «        s*t
                               d|j        p|j        pd|¦  «         ŒW| j	        D ]x}| 
                    | ¦  «        }t	          ||¦  «        sQt
                               d|j        p/|j        p(|j        pd› d|j        pd› �                     ¦   «         pd|¦  «         Œyd S )Nc                ó¢   — i | ]L}|j         t          |d ¦  «        rt          |j        ¦  «        nt	          |j        |j        |j        ¦  «        “ŒMS ©Úvalues)r/   ÚhasattrÚtupler7   r   ÚminimumÚmaximumÚdefault©Ú.0Úaxiss     r+   ú
<dictcomp>z"_warnOutOfAxes.<locals>.<dictcomp><   sc   € ð ð ð ð ð 	Œ	å�t˜XÑ&Ô&ðA�E�$”+ÑÔÐå�t”| T¤\°4´<Ñ@Ô@ð	ð ð r-   zBSource '%s' has location outside the document's axes, dropping: %sz<unnamed source>zDInstance '%s' has location outside the document's axes, dropping: %sÚ ú z<unnamed instance>)ÚaxesÚsourcesÚmap_backwardÚdesignLocationr   ÚLOGGERÚwarningr/   ÚfilenameÚ	instancesÚgetFullUserLocationr&   r)   Ústrip)r   ÚdocUserRegionÚsourceÚsourceUserLocationr   ÚinstanceUserLocations         r+   Ú_warnOutOfAxesrQ   ;   s=  € ðð ð ”Hðñ ô €Mð ”+ð ð ˆØ ×-Ò-¨fÔ.CÑDÔDÐÝÐ 2°MÑBÔBð 	Ý�NŠNØTØ”ÐD˜vœÐDÐ2DØ"ñô ð øð
 ”Mð 
ð 
ˆØ'×;Ò;¸CÑ@Ô@ÐÝÐ 4°mÑDÔDð 	Ý�NŠNØVØ”ð (ØÔ$ð(àÔ)Ð/¨RÐLÐL°(Ô2DÐ2JÈÐLÐL×RÒRÑTÔTð(ð (Ø$ñô ð øð
ð 
r-   TÚ	makeNamesÚboolÚexpandLocationsÚmakeInstanceFilenameÚMakeInstanceFilenameCallableú8Iterator[Tuple[SimpleLocationDict, DesignSpaceDocument]]c           	   #  óà  K  — t          | ¦  «         g }i }| j        D ]z}t          |d¦  «        r+t          t          |¦  «        }|                     |¦  «         Œ=t          t          |¦  «        }t          |j        |j	        |j
        ¦  «        ||j        <   Œ{t          j        d„ |D ¦   «         Ž }|D ];}d„ t          ||¦  «        D ¦   «         }	t          | i |¥|	¥d|||¬¦  «        }
|	|
fV — Œ<dS )aì  Split the given DS5 into several interpolable sub-designspaces.
    There are as many interpolable sub-spaces as there are combinations of
    discrete axis values.

    E.g. with axes:
        - italic (discrete) Upright or Italic
        - style (discrete) Sans or Serif
        - weight (continuous) 100 to 900

    There are 4 sub-spaces in which the Weight axis should interpolate:
    (Upright, Sans), (Upright, Serif), (Italic, Sans) and (Italic, Serif).

    The sub-designspaces still include the full axis definitions and STAT data,
    but the rules, sources, variable fonts, instances are trimmed down to only
    keep what falls within the interpolable sub-space.

    Args:
      - ``makeNames``: Whether to compute the instance family and style
        names using the STAT data.
      - ``expandLocations``: Whether to turn all locations into "full"
        locations, including implicit default axis values where missing.
      - ``makeInstanceFilename``: Callable to synthesize an instance filename
        when makeNames=True, for instances that don't specify an instance name
        in the designspace. This part of the name generation can be overridden
        because it's not specified by the STAT table.

    .. versionadded:: 5.0
    r7   c                ó   — g | ]	}|j         ‘Œ
S © r6   r=   s     r+   ú
<listcomp>z%splitInterpolable.<locals>.<listcomp>Œ   s   € Ð+QÐ+QÐ+Q¸D¨D¬KÐ+QÐ+QÐ+Qr-   c                ó$   — i | ]\  }}|j         |“ŒS rZ   ©r/   )r>   ÚdiscreteAxisÚvalues      r+   r@   z%splitInterpolable.<locals>.<dictcomp>Ž   s1   € ð  
ð  
ð  
á#�˜eð Ô˜uð 
ð  
ð  
r-   T©ÚkeepVFsrR   rT   rU   N)rQ   rC   r8   r   r   Úappendr   r   r:   r;   r<   r/   Ú	itertoolsÚproductÚzipÚ_extractSubSpace)r   rR   rT   rU   ÚdiscreteAxesÚinterpolableUserRegionr?   ÚvalueCombinationsr7   ÚdiscreteUserLocationÚsubDocs              r+   ÚsplitInterpolablerl   Y   sQ  è è € õD �3ÑÔÐØ€LØ%'ÐØ”ð ð ˆÝ�4˜Ñ"Ô"ð 	õ Õ.°Ñ5Ô5ˆDØ×Ò Ñ%Ô%Ð%Ð%å�¨Ñ-Ô-ˆDÝ05Ø”Ø”Ø”ñ1ô 1Ð" 4¤9Ñ-Ð-õ
 "Ô)Ð+QÐ+QÀLÐ+QÑ+QÔ+QÐRÐØ#ð +ð +ˆð 
ð  
å'*¨<¸Ñ'@Ô'@ð 
ñ  
ô  
Ðõ "ØØ>Ð%Ð>Ð)=Ð>ØØØ+Ø!5ð
ñ 
ô 
ˆð # FÐ*Ð*Ð*Ð*Ð*ð+ð +r-   Fú)Iterator[Tuple[str, DesignSpaceDocument]]c           	   #  óà   K  — t          | ¦  «         |                      ¦   «         D ]G}t          | |¦  «        }t          | |d|||¬¦  «        }i |j        ¥|j        ¥|_        |j        |fV — ŒHdS )a$  Convert each variable font listed in this document into a standalone
    designspace. This can be used to compile all the variable fonts from a
    format 5 designspace using tools that can only deal with 1 VF at a time.

    Args:
      - ``makeNames``: Whether to compute the instance family and style
        names using the STAT data.
      - ``expandLocations``: Whether to turn all locations into "full"
        locations, including implicit default axis values where missing.
      - ``makeInstanceFilename``: Callable to synthesize an instance filename
        when makeNames=True, for instances that don't specify an instance name
        in the designspace. This part of the name generation can be overridden
        because it's not specified by the STAT table.

    .. versionadded:: 5.0
    Fr`   N)rQ   ÚgetVariableFontsr   rf   Úlibr/   )r   rR   rT   rU   ÚvfÚvfUserRegionÚvfDocs          r+   ÚsplitVariableFontsrt   �   sœ   è è € õ, �3ÑÔÐà×"Ò"Ñ$Ô$ð ð ˆÝ& s¨BÑ/Ô/ˆÝ ØØØØØ+Ø!5ð
ñ 
ô 
ˆð ,�u”yÐ+ B¤FÐ+ˆŒ	ØŒg�uˆnÐÐÐÐðð r-   úDict[str, DesignSpaceDocument]c                óv   — i }t          | ¦  «        D ]&\  }}t          |¦  «        D ]\  }}d|_        |||<   ŒŒ'|S )züConvert each variable font listed in this document into a standalone
    format 4 designspace. This can be used to compile all the variable fonts
    from a format 5 designspace using tools that only know about format 4.

    .. versionadded:: 5.0
    z4.1)rl   rt   ÚformatVersion)r   ÚvfsÚ	_locationrk   ÚvfNamers   s         r+   Úconvert5to4r{   Ã   s_   € ð €CÝ.¨sÑ3Ô3ð  ð  Ñˆ	�6Ý/°Ñ7Ô7ð 	 ð 	 ‰MˆF�EØ"'ˆEÔØˆC�‰KˆKð	 ð €Jr-   Ú
userRegionr   ra   c               óž  ‡ ‡‡‡‡— t          ¦   «         }ˆ ˆfd„}‰ j        D ]Ï}‰|j                 Št          ‰t          ¦  «        r«t          |d¦  «        r›t          t          |¦  «        }|                     t          |j	        |j        |j
        |j        t          ‰j        |j        ¦  «        ‰j        t          ‰j        |j        ¦  «        ˆfd„|j        D ¦   «         d d ¬¦
  «
        ¦  «         ŒÐg x|_        }	d„ |j        D ¦   «         Š‰ j        D �]œ}
t'          ˆfd„|
j                             ¦   «         D ¦   «         ¦  «        sŒ6t'          ˆfd„|
j                             ¦   «         D ¦   «         ¦  «        s't.                               d|
j        |
j        ¦  «         Œ�t3          ¦   «         }|                     |
j                             ¦   «         ¦  «         |                     |
j                             ¦   «         ¦  «         ‰ j        D ]q}|j        |vrŒ‰|j                 Š‰j        |j        k    s'‰j        �‰j        |j        k    s‰j        |j        k    r!t.                               d	|j        ¦  «         ŒqŒr|	                     t9          |
j        |
j        ¬
¦  «        ¦  «         �Œžt;          ‰ ‰¦  «        }t=          ‰ j        |¦  «        |_        ‰ j         |_         ‰ j!        D ]¡}tE          ‰  #                    |j$        ¦  «        ‰¦  «        sŒ+| %                    tM          |j'        |j(        |j)        |j        tU          ‰ ||¦  «        ¦  «        |j+        |j,        |j-        |j.        |j/        |j0        ¬¦  «        ¦  «         Œ¢| 1                    ¦   «         }‰  1                    ¦   «         }|�|�|j2        |_2        |r}‰  3                    ¦   «         D ]h}ti          ‰ |¦  «        }tk          |‰¦  «        rF| 6                    to          |j        |j'        ˆfd„|j8        D ¦   «         |j9        ¬¦  «        ¦  «         Œi‰ j:        D �]r}tE          | ;                    ‰ ¦  «        ‰¦  «        sŒ'|�r•ty          ‰ | ;                    ‰ ¦  «        ¦  «        }|j,        p|j=         >                    d¦  «        }|j-        p|j?         >                    d¦  «        }|j2        pt�          |j=        |¦  «        }|jA        pt�          |j?        |¦  «        }|jB        }|€|j-        s|jA        s|jB        }| C                    t‰          d i d|j'        p |‰ ||¦  «        “d|j(        “d|j)        “d|j        p|› d|› �“d‰ri n|jE        “dtU          ‰ ||¦  «        ¦  «        “d|“d|“d|“d|jF        p|jG         >                    d¦  «        “d|jH        p|jH        “d|“d|“d|jI        p|jG        “d|jJ        pi “d|j9        “Ž¦  «         �Œ¿| C                    t‰          d i d|j'        “d|j(        “d|j)        “d|j        “d‰ri n|jE        “dtU          ‰ ||¦  «        ¦  «        “d|j,        “d|j-        “d|jB        “d|jF        “d|jH        “d|j2        “d|jA        “d|jI        “d|jJ        “d|j9        “Ž¦  «         �Œt‰ j9        |_9        |S )!Nc                ó@   •— ‰r|                       ‰¦  «        S | j        S ©N)ÚgetFullDesignLocationrF   )Úobjectr   rT   s    €€r+   ÚmaybeExpandDesignLocationz3_extractSubSpace.<locals>.maybeExpandDesignLocationç   s(   ø€ Øð 	)Ø×/Ò/°Ñ4Ô4Ð4àÔ(Ð(r-   r:   c                óR   •— g | ]#\  }}‰j         |cxk    r‰j        k    ¯n n||f‘Œ$S rZ   )r:   r;   )r>   ÚuserÚdesignÚranges      €r+   r[   z$_extractSubSpace.<locals>.<listcomp>ÿ   sQ   ø€ ð ð ð á(˜D &Ø œ=¨DÐAÐAÒAÐA°E´MÒAÐAÐAÐAÐAð ˜v˜àAÐAÐAr-   )
Útagr/   Ú
labelNamesÚhiddenr:   r<   r;   ÚmapÚaxisOrderingÚ
axisLabelsc                ó   — h | ]	}|j         ’Œ
S rZ   r]   r=   s     r+   ú	<setcomp>z#_extractSubSpace.<locals>.<setcomp>  s   € Ð4Ð4Ð4 �$”)Ð4Ð4Ð4r-   c              3  ó    •K  — | ]}|‰v V — Œ	d S r   rZ   ©r>   r?   Ú
subDocAxess     €r+   ú	<genexpr>z#_extractSubSpace.<locals>.<genexpr>  s(   øè è € ÐOÐO¨$�4˜:Ð%ÐOÐOÐOÐOÐOÐOr-   c              3  ó    •K  — | ]}|‰v V — Œ	d S r   rZ   r�   s     €r+   r’   z#_extractSubSpace.<locals>.<genexpr>  s(   øè è € ÐPÐP¨$�4˜:Ð%ÐPÐPÐPÐPÐPÐPr-   zPIn axis mapping from input %s, some output axes are not in the variable-font: %szALimiting axis ranges used in <mapping> elements not supported: %s)ÚinputLocationÚoutputLocation)rI   ÚpathÚfontr/   rF   Ú	layerNamer&   r)   ÚmuteKerningÚmuteInfoÚmutedGlyphNamesc                óT   •— g | ]$}t          ‰|j                 t          ¦  «        ¯"|‘Œ%S rZ   )Ú
isinstancer/   r   )r>   Ú
axisSubsetr|   s     €r+   r[   z$_extractSubSpace.<locals>.<listcomp>_  s@   ø€ ð %ð %ð %à *Ý)¨*°Z´_Ô*EÅuÑMÔMð%Ø&ð%ð %ð %r-   )r/   rI   ÚaxisSubsetsrp   r$   rI   r–   r—   r/   rB   ÚuserLocationrF   r&   r)   ÚpostScriptFontNameÚstyleMapFamilyNameÚstyleMapStyleNameÚlocalisedFamilyNameÚlocalisedStyleNameÚlocalisedStyleMapFamilyNameÚlocalisedStyleMapStyleNamerp   rZ   )Kr   rC   r/   r�   r   r8   r   r   ÚaddAxisr‡   rˆ   r‰   Úmaxr:   r<   Úminr;   rŠ   ÚaxisMappingsÚallr”   Úkeysr•   rG   ÚerrorÚsetÚupdaterb   r   r   Ú_subsetRulesBasedOnConditionsÚrulesÚrulesProcessingLastrD   r   rE   rF   Ú	addSourcer   rI   r–   r—   Ú_filterLocationr˜   r&   r)   r™   rš   r›   ÚfindDefaultr¤   ro   r   r   ÚaddVariableFontr   rŸ   rp   rJ   rK   r   r'   r(   r*   r2   r¥   r¡   ÚaddInstancer   r    r¢   ÚstyleMapFamilyNamesr£   r¦   r§   )r   r|   ra   rR   rT   rU   rk   r‚   r?   ÚmappingsÚmappingÚmappingAxesÚdesignRegionrN   Ú	vfDefaultÚ
oldDefaultrq   rr   r   r    r&   r)   r¤   r¥   r¡   r†   r‘   s   ``  `                    @@r+   rf   rf   Ô   sÁ  øøøøø€ õ !Ñ"Ô"€Fð)ð )ð )ð )ð )ð )ð ”ð ð ˆØ˜4œ9Ô%ˆÝ�e�UÑ#Ô#ð 	­°°iÑ(@Ô(@ð 	õ �¨Ñ-Ô-ˆDØ�NŠNÝàœØœØ#œØœ;å ¤¨t¬|Ñ<Ô<Ø!œMÝ ¤¨t¬|Ñ<Ô<ðð ð ð à,0¬Hðñ ô ð "&Ø#ð#ñ ô ñô ð øð, &(Ð'€FÔ˜(Ø4Ð4¨¬Ð4Ñ4Ô4€JØÔ#ð "
ñ "
ˆÝÐOÐOÐOÐO°'Ô2G×2LÒ2LÑ2NÔ2NÐOÑOÔOÑOÔOð 	ØÝÐPÐPÐPÐP°'Ô2H×2MÒ2MÑ2OÔ2OÐPÑPÔPÑPÔPð 	Ý�LŠLØbØÔ%ØÔ&ñô ð ð
 å‘e”eˆØ×Ò˜7Ô0×5Ò5Ñ7Ô7Ñ8Ô8Ð8Ø×Ò˜7Ô1×6Ò6Ñ8Ô8Ñ9Ô9Ð9Ø”Hð 	ð 	ˆDØŒy Ð+Ð+ØØ˜tœyÔ)ˆEà” ¤Ò-Ð-Ø”MÐ-°%´-À4Ä<Ò2OÐ2OØ”= D¤LÒ0Ð0å—’ØWØ”Iñô ð ð ð 1ð 	�ŠÝ!Ø%Ô3Ø&Ô5ðñ ô ñ	
ô 	
ð 	
ñ 	
õ ,¨C°Ñ<Ô<€LÝ0°´¸LÑIÔI€F„LØ!$Ô!8€FÔð ”+ð 
ð 
ˆÝ × 0Ò 0°Ô1FÑ GÔ GÈÑTÔTð 	Øà×ÒÝØœØ”[Ø”[Ø”[Ý.ØÐ 9Ð 9¸&Ñ AÔ Añ ô  ð !Ô*Ø!Ô,Ø Ô*Ø"Ô.ØœØ &Ô 6ðñ ô ñ	
ô 	
ð 	
ð 	
ð& ×"Ò"Ñ$Ô$€IØ—’Ñ"Ô"€JØÐ Ð!7Ø(2Ô(Fˆ	Ô%ð ð à×&Ò&Ñ(Ô(ð 	ð 	ˆBÝ*¨3°Ñ3Ô3ˆLÝ˜l¨JÑ7Ô7ð Ø×&Ò&Ý*ØœWØ!#¤ð%ð %ð %ð %à.0¬nð%ñ %ô %ð
 œFð	ñ 	ô 	ñô ð øð ”Mð Iñ IˆÝ × <Ò <¸SÑ AÔ AÀ:ÑNÔNð 	Øàñ E	Ý$ S¨(×*FÒ*FÀsÑ*KÔ*KÑLÔLˆIð "Ô,ÐO°	Ô0E×0IÒ0IÈ$Ñ0OÔ0OˆJØ Ô*ÐL¨iÔ.B×.FÒ.FÀtÑ.LÔ.LˆIØ"*Ô">ð #Å/ØÔ% zñCô CÐð "*Ô!<ð "ÅØÔ$ iñAô AÐð "*Ô!<ÐØ!Ð)ØÔ"ð *Ø&.Ô&Að *ð &/Ô%AÐ"Ø×ÒÝ"ð ð ð Ø%Ô.ð FØ+Ð+¨C°¸9ÑEÔEøðð "œ˜ðð "œ˜ð	ð
 "œÐE¨ZÐ*EÐ*E¸)Ð*EÐ*Eøðð (7Ð!Q  ¸HÔ<Qøðõ $3Ø"Ð$=Ð$=¸hÑ$GÔ$Gñ$ô $ð $ðð  *˜zðð (˜iðð (:Ð'9ðð (0Ô'Bð (?Ø Ô4×8Ò8¸Ñ>Ô>øðð '/Ô&@ð '3Ø Ô2øð!ð" )<Ð(;ð#ð$ (:Ð'9ð%ð& 19Ô0Tð 15Ø Ô4øð)ð* 08Ô/Rð 0Øøð-ð. !œ˜ð/ñô ð ñ ð8 ×ÒÝ"ð ð ð Ø%Ô.Ð.ðà!œ˜ðð "œ˜ðð "œ˜ð	ð
 (7Ð!Q  ¸HÔ<Qøðõ $3Ø"Ð$=Ð$=¸hÑ$GÔ$Gñ$ô $ð $ðð  (Ô2Ð2ðð 'Ô0Ð0ðð (0Ô'BÐ'Bðð (0Ô'BÐ'Bðð '/Ô&@Ð&@ðð )1Ô(DÐ(Dðð (0Ô'BÐ'Bðð  19Ô0TÐ0Tð!ð" 08Ô/RÐ/Rð#ð$ !œ˜ð%ñô ð ñ ð. ”€F„Jà€Mr-   ÚconditionSetúList[Dict[str, Any]]r   c                óÔ   — i }| D ]b}|                      d¦  «        |                      d¦  «        }}t          |�|nt          j         |�|nt          j        ¦  «        ||d         <   Œc|S )Nr:   r;   r/   )r(   r   ÚmathÚinf)rÀ   ÚcÚ	conditionr:   r;   s        r+   Ú_conditionSetFromrÇ   ¹  sx   € Ø€AØ!ð 
ð 
ˆ	Ø$Ÿ=š=¨Ñ3Ô3°Y·]²]À9Ñ5MÔ5M�ˆÝ$ØÐ*ˆGˆGµ´°	ØÐ*ˆGˆGµ´ñ 
ô  
ˆˆ)�FÔ
ÑÐð €Hr-   r²   úList[RuleDescriptor]r½   c           	     ó(  — g }| D �]}t          |j        g |j        ¬¦  «        }|j        D ]È}t	          |¦  «        }g }d}|                     ¦   «         D ]‚\  }	}
|	|vrŒ
t          |
t          t          f¦  «        r|
||	         v rŒ1d}Œ4|
||	         v rŒ?||	          	                    |
¦  «        }|�$| 
                    |	|j        |j        dœ¦  «         Œ€d}Œƒ|s|j         
                    |¦  «         ŒÉ|j        r| 
                    |¦  «         �Œ|S )N)r/   ÚconditionSetsÚsubsFT)r/   r:   r;   )r   r/   rË   rÊ   rÇ   Úitemsr�   ÚfloatÚintÚintersectionrb   r:   r;   )r²   r½   ÚnewRulesÚruleÚnewRuleÚconditionsetÚcsÚnewConditionsetÚdiscardConditionsetÚselectionNameÚselectionValuerÏ   s               r+   r±   r±   Ä  s|  € ð$ &(€HØð )%ñ )%ˆÝ"0Ø”¨"°4´9ð#
ñ #
ô #
ˆð !Ô.ð #	>ð #	>ˆLÝ" <Ñ0Ô0ˆBØ46ˆOØ"'ÐØ1=×1CÒ1CÑ1EÔ1Eð 7ð 7Ñ-�˜~à ¨Ð*Ð*àÝ˜n­uµc¨lÑ;Ô;ð 7à%¨¨MÔ):Ð:Ð:Øð /3Ð+Ð+ð &¨¨MÔ):Ð:Ð:Øà')¨-Ô'8×'EÒ'EÀnÑ'UÔ'U˜à'Ð3Ø+×2Ò2à,9Ø/;Ô/CØ/;Ô/Cð!"ð !"ñô ð ð ð 37Ð/Ð/Ø&ð >ØÔ%×,Ò,¨_Ñ=Ô=Ð=øØÔ ð 	%Ø�OŠO˜GÑ$Ô$Ð$ùà€Or-   ÚlocationúDict[str, float]c                óD   ‡ — ˆ fd„|                      ¦   «         D ¦   «         S )Nc                óZ   •— i | ]'\  }}|‰v ¯	t          ‰|         t          ¦  «        ¯$||“Œ(S rZ   )r�   r   )r>   r/   r_   r|   s      €r+   r@   z#_filterLocation.<locals>.<dictcomp>	  sH   ø€ ð ð ð áˆD�%Ø�:ÐÐ¥*¨Z¸Ô-=½uÑ"EÔ"EÐð 	ˆeàÐÐr-   )rÌ   )r|   rÙ   s   ` r+   rµ   rµ     s8   ø€ ðð ð ð à#Ÿ>š>Ñ+Ô+ðñ ô ð r-   )r   r   r   r   r    r   r!   r"   )r    r.   r/   r0   r!   r.   )r   r   r!   r3   )
r   r   rR   rS   rT   rS   rU   rV   r!   rW   )
r   r   rR   rS   rT   rS   rU   rV   r!   rm   )r   r   r!   ru   )r   r   r|   r   ra   rS   rR   rS   rT   rS   rU   rV   r!   r   )rÀ   rÁ   r!   r   )r²   rÈ   r½   r   r!   rÈ   )r|   r   rÙ   rÚ   r!   rÚ   )3Ú__doc__Ú
__future__r   rc   ÚloggingrÃ   Útypingr   r   r   r   r   r	   r
   r   ÚfontTools.designspaceLibr   r   r   r   r   r   r   r   r   Ú"fontTools.designspaceLib.statNamesr   r   ÚfontTools.designspaceLib.typesr   r   r   r   r   r   r   Ú	getLoggerÚ__name__rG   r"   rV   r,   r2   rQ   rl   rt   r{   rf   rÇ   r±   rµ   rZ   r-   r+   ú<module>ræ      s�  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð GÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜8Ñ	$Ô	$€à'ØÐ,¨iÐ8¸#Ð=ô Ð ð

+ð 
+ð 
+ð 
+ð<ð <ð <ð <ð
ð ð ð ð@ Ø Ø9Tð	A+ð A+ð A+ð A+ð A+ðL Ø!Ø9Tð	#ð #ð #ð #ð #ðLð ð ð ð"bð bð bð bðJð ð ð ð>ð >ð >ð >ðBð ð ð ð ð r-   