Ë
    ^ãjÇT  ã                  ó¼  — 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jH                  e%«      Z&eeeege'f   Z(	 	 	 	 	 	 	 	 dd„Z)dd	„Z*dd
„Z+dde)f	 	 	 	 	 	 	 	 	 dd„Z,dde)f	 	 	 	 	 	 	 	 	 dd„Z-	 	 	 	 dd„Z.	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z/dd„Z0	 	 	 	 	 	 dd„Z1	 	 	 	 	 	 dd„Z2y)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ÚuserRegionToDesignRegionc                ó¶   — |j                   xs |j                  j                  d«      }|j                  xs |j                  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)ÚdocÚinstanceÚ	statNamesr!   r$   s        ú`/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/fontTools/designspaceLib/split.pyÚdefaultMakeInstanceFilenamer*   )   sY   € ð ×$Ñ$ÒG¨	×(=Ñ(=×(AÑ(AÀ$Ó(G€JØ×"Ñ"ÒD i×&:Ñ&:×&>Ñ&>¸tÓ&D€IØˆ\˜˜9˜+ TÐ*Ð*ó    c                ó2   — | j                  d«      |k(  r| S i S )zIReturn the localised STAT names if they translate ``name``, else nothing.r   )r#   )r(   Únames     r)   Ú_localisedNamesr.   6   s   € à!Ÿ™ dÓ+¨tÒ3ˆ9Ð;¸Ð;r+   c           	     óì  — | j                   D �ci c]Y  }|j                  t        |d«      rt        |j                  «      n*t        |j                  |j                  |j                  «      “Œ[ }}| j                  D ]]  }| j                  |j                  «      }t        ||«      rŒ+t        j                  d|j                  xs |j                  xs d|«       Œ_ | j                   D ]†  }|j#                  | «      }t        ||«      rŒ!t        j                  d|j                  xsC |j                  xs5 |j$                  xs d› d|j&                  xs d› �j)                  «       xs d|«       Œˆ y c c}w )NÚvalueszBSource '%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>)Úaxesr-   ÚhasattrÚtupler0   r   ÚminimumÚmaximumÚdefaultÚsourcesÚmap_backwardÚdesignLocationr   ÚLOGGERÚwarningÚfilenameÚ	instancesÚgetFullUserLocationr!   r$   Ústrip)r&   ÚaxisÚdocUserRegionÚsourceÚsourceUserLocationr'   ÚinstanceUserLocations          r)   Ú_warnOutOfAxesrG   ;   s[  € ð —H‘Höð ð 	�	‰	ä�t˜XÔ&ô �$—+‘+Ôä�t—|‘| T§\¡\°4·<±<Ó@ñ	Að€Mð ð —+‘+ò ˆØ ×-Ñ-¨f×.CÑ.CÓDÐÜÐ 2°MÕBÜ�N‰NØTØ—‘ÒD˜vŸ™ÒDÐ2DØ"õðð —M‘Mò 
ˆØ'×;Ñ;¸CÓ@ÐÜÐ 4°mÕDÜ�N‰NØVØ—‘ò (Ø×$Ñ$ò(à×)Ñ)Ò/¨RÐ0°°(×2DÑ2DÒ2JÈÐ1KÐL×RÑRÓTò(ð (Ø$õñ
ùò!s   �AE1Tc           	   #  ó8  K  — t        | «       g }i }| j                  D ]x  }t        |d«      r"t        t        |«      }|j                  |«       Œ1t        t        |«      }t        |j                  |j                  |j                  «      ||j                  <   Œz t        j                  |D �cg c]  }|j                  ‘Œ c}Ž }|D ]F  }t        ||«      D �	�
ci c]  \  }	}
|	j                  |
“Œ }}	}
t!        | i |¥|¥d|||¬«      }||f–— ŒH yc c}w c c}
}	w ­w)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
    r0   T©ÚkeepVFsÚ	makeNamesÚexpandLocationsÚmakeInstanceFilenameN)rG   r3   r4   r   r   Úappendr   r   r6   r7   r8   r-   Ú	itertoolsÚproductr0   ÚzipÚ_extractSubSpace)r&   rK   rL   rM   ÚdiscreteAxesÚinterpolableUserRegionrB   ÚvalueCombinationsr0   ÚdiscreteAxisÚvalueÚdiscreteUserLocationÚsubDocs                r)   ÚsplitInterpolablerZ   Y   s4  è ø€ ôD �3ÔØ€LØ%'ÐØ—‘ò ˆÜ�4˜Ô"ô Ô.°Ó5ˆDØ×Ñ Õ%äœ¨Ó-ˆDÜ05Ø—‘Ø—‘Ø—‘ó1Ð" 4§9¡9Ò-ðô "×)Ñ)ÀLÖ+Q¸D¨D¯K«KÒ+QÐRÐØ#ò +ˆô (+¨<¸Ó'@÷ 
á#�˜eð ×Ñ˜uÑ$ð 
Ðñ  
ô "ØØ>Ð%Ð>Ð)=Ð>ØØØ+Ø!5ô
ˆð # FÐ*Ó*ñ+ùò ,Rùó 
ùs   ‚B*DÂ,DÂ?DÃDÃ.,DFc           	   #  óv  K  — t        | «       | j                  «       D ]—  }t        | |«      }t        | |d|||¬«      }i |j                  ¥|j                  ¥|_        d| j                  v r;d|j                  v r-i | j                  d   ¥|j                  d   ¥|j                  d<   |j
                  |f–— Œ™ y­w)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
    FrI   zpublic.fontInfoN)rG   ÚgetVariableFontsr   rR   Úlibr-   )r&   rK   rL   rM   ÚvfÚvfUserRegionÚvfDocs          r)   ÚsplitVariableFontsra   �   sÈ   è ø€ ô, �3Ôà×"Ñ"Ó$ò ˆÜ& s¨BÓ/ˆÜ ØØØØØ+Ø!5ô
ˆð ,�u—y‘yÐ+ B§F¡FÐ+ˆŒ	Ø §¡Ñ'Ð,=ÀÇÁÑ,Gð,Ø—'‘'Ð+Ñ,ð,à—&‘&Ð*Ñ+ð,ˆE�I‰IÐ'Ñ(ð �g‰g�uˆnÓñ!ùs   ‚B7B9c                ón   — 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)rZ   ra   ÚformatVersion)r&   ÚvfsÚ	_locationrY   ÚvfNamer`   s         r)   Úconvert5to4rg   È   sR   € ð €CÜ.¨sÓ3ò  Ñˆ	�6Ü/°Ó7ò 	 ‰MˆF�EØ"'ˆEÔØˆC�ŠKñ	 ð ð €Jr+   c               óž  ‡ ‡‡— t        «       }ˆ ˆfd„}‰ j                  D �]  }||j                     }	t        |	t        «      sŒ$t        |d«      sŒ1t        t        |«      }|j                  t        |j                  |j                  |j                  |j                  t        |	j                  |j                  «      |	j                  t        |	j                   |j                   «      |j"                  D �
�cg c]+  \  }
}|	j                  |
cxk  r|	j                   k  rn n|
|f‘Œ- c}}
d d ¬«
      «       �Œ g x|_        }|j                  D �ch c]  }|j                  ’Œ c}Š‰ j$                  D �]»  }t'        ˆfd„|j(                  j+                  «       D «       «      sŒ1t'        ˆfd„|j,                  j+                  «       D «       «      s,t.        j1                  d|j(                  |j,                  «       Œ‰t3        «       }|j5                  |j(                  j+                  «       «       |j5                  |j,                  j+                  «       «       ‰ j                  D ]˜  }|j                  |vrŒ||j                     }	|	j                  |j                  k7  s?|	j                  �|	j                  |j                  k7  s|	j                   |j                   k7  sŒyt.        j1                  d|j                  «       Œš |j7                  t9        |j(                  |j,                  ¬«      «       �Œ¾ t;        ‰ |«      }t=        ‰ j>                  |«      |_        ‰ j@                  |_         ‰ jB                  D ]Á  }tE        ‰ jG                  |jH                  «      |«      sŒ)|jK                  tM        |jN                  |jP                  |jR                  |j                  tU        | ||«      «      |jV                  |jX                  |jZ                  |j\                  |j^                  |j`                  ¬	«      «       ŒÃ |jc                  «       }‰ jc                  «       }|�|�|jd                  |_2        |rŸ‰ jg                  «       D ]Œ  }ti        ‰ |«      }tk        ||«      sŒ|jm                  to        |j                  |jN                  |jp                  D �cg c]!  }t        ||j                     t        «      r|‘Œ# c}|jr                  ¬
«      «       ŒŽ ‰ jt                  D �]  }tE        |jw                  ‰ «      |«      sŒ |�rûty        ‰ |jw                  ‰ «      «      }|jX                  xs |jz                  j}                  d«      }|jZ                  xs |j~                  j}                  d«      }|jd                  xs t�        |jz                  |«      }|j‚                  xs t�        |j~                  |«      }|j„                  }|€$|jZ                  s|j‚                  s|j„                  }|j‡                  t‰        di d|jN                  xs
  |‰ ||«      “d|jP                  “d|jR                  “d|j                  xs |› d|› �“d‰ri n|jŠ                  “dtU        | ||«      «      “d|“d|“d|“d|jŒ                  xs |jŽ                  j}                  d«      “d|j�                  xs |j�                  “d|“d|“d|j’                  xs |jŽ                  “d|j”                  xs i “d|jr                  “Ž«       �Œ|j‡                  t‰        di d|jN                  “d|jP                  “d|jR                  “d|j                  “d‰ri n|jŠ                  “dtU        | ||«      «      “d|jX                  “d|jZ                  “d|j„                  “d|jŒ                  “d|j�                  “d|jd                  “d|j‚                  “d|j’                  “d|j”                  “d|jr                  “Ž«       �Œ ‰ jr                  |_9        |S c c}}
w c c}w c c}w )Nc                óB   •— ‰r| j                  ‰«      S | j                  S ©N)ÚgetFullDesignLocationr;   )Úobjectr&   rL   s    €€r)   ÚmaybeExpandDesignLocationz3_extractSubSpace.<locals>.maybeExpandDesignLocationì   s#   ø€ ÙØ×/Ñ/°Ó4Ð4à×(Ñ(Ð(r+   r6   )
Útagr-   Ú
labelNamesÚhiddenr6   r8   r7   ÚmapÚaxisOrderingÚ
axisLabelsc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wrj   © ©Ú.0rB   Ú
subDocAxess     €r)   ú	<genexpr>z#_extractSubSpace.<locals>.<genexpr>  s   øè ø€ ÒO¨$�4˜:Ô%ÑOùó   ƒc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wrj   ru   rv   s     €r)   ry   z#_extractSubSpace.<locals>.<genexpr>  s   øè ø€ ÒP¨$�4˜:Ô%ÑPùrz   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)r>   ÚpathÚfontr-   r;   Ú	layerNamer!   r$   ÚmuteKerningÚmuteInfoÚmutedGlyphNames)r-   r>   ÚaxisSubsetsr]   r   r>   r~   r   r-   r2   ÚuserLocationr;   r!   r$   ÚpostScriptFontNameÚstyleMapFamilyNameÚstyleMapStyleNameÚlocalisedFamilyNameÚlocalisedStyleNameÚlocalisedStyleMapFamilyNameÚlocalisedStyleMapStyleNamer]   ru   )Kr   r3   r-   Ú
isinstancer   r4   r   r   ÚaddAxisrn   ro   rp   Úmaxr6   r8   Úminr7   rq   ÚaxisMappingsÚallr|   Úkeysr}   r<   ÚerrorÚsetÚupdaterN   r   r   Ú_subsetRulesBasedOnConditionsÚrulesÚrulesProcessingLastr9   r   r:   r;   Ú	addSourcer   r>   r~   r   Ú_filterLocationr€   r!   r$   r�   r‚   rƒ   ÚfindDefaultr‰   r\   r   r   ÚaddVariableFontr   r„   r]   r?   r@   r   r"   r#   r%   r.   rŠ   r†   ÚaddInstancer   r…   r‡   ÚstyleMapFamilyNamesrˆ   r‹   rŒ   )r&   Ú
userRegionrJ   rK   rL   rM   rY   rm   rB   ÚrangeÚuserÚdesignÚmappingsÚmappingÚmappingAxesÚdesignRegionrD   Ú	vfDefaultÚ
oldDefaultr^   r_   Ú
axisSubsetr'   r(   r!   r$   r‰   rŠ   r†   rx   s   `   `                        @r)   rR   rR   Ù   sÉ  ú€ ô !Ó"€Fõ)ð —‘ó ˆØ˜4Ÿ9™9Ñ%ˆÜ�eœUÕ#¬°°iÕ(@ô œ¨Ó-ˆDØ�N‰NÜàŸ™ØŸ™Ø#Ÿ™ØŸ;™;ä §¡¨t¯|©|Ó<Ø!ŸM™MÜ §¡¨t¯|©|Ó<ð -1¯H©H÷á(˜D &Ø Ÿ=™=¨DÔA°E·M±MÕAð ˜všóð "&Ø#ô#öðð: &(Ð'€FÔ˜(Ø(.¯©Ö4 �$—)“)Ò4€JØ×#Ñ#ó "
ˆÜÓO°'×2GÑ2G×2LÑ2LÓ2NÔOÔOØÜÓP°'×2HÑ2H×2MÑ2MÓ2OÔPÔPÜ�L‰LØbØ×%Ñ%Ø×&Ñ&ôð
 ä“eˆØ×Ñ˜7×0Ñ0×5Ñ5Ó7Ô8Ø×Ñ˜7×1Ñ1×6Ñ6Ó8Ô9Ø—H‘Hò 	ˆDØ�y‰y Ñ+ØØ˜tŸy™yÑ)ˆEà—‘ §¡Ò-Ø—M‘MÐ-°%·-±-À4Ç<Á<Ò2OØ—=‘= D§L¡LÓ0ä—‘ØWØ—I‘Iôð ð	ð 	�‰Ü!Ø%×3Ñ3Ø&×5Ñ5ôö	
ð;"
ôP ,¨C°Ó<€LÜ0°·±¸LÓI€F„LØ!$×!8Ñ!8€FÔð —+‘+ò 
ˆÜ × 0Ñ 0°×1FÑ1FÓ GÈÔTØà×ÑÜØŸ™Ø—[‘[Ø—[‘[Ø—[‘[Ü.ØÑ 9¸&Ó Aó ð !×*Ñ*Ø!×,Ñ,Ø ×*Ñ*Ø"×.Ñ.ØŸ™Ø &× 6Ñ 6ôõ	
ð	
ð. ×"Ñ"Ó$€IØ—‘Ó"€JØÐ Ð!7Ø(2×(FÑ(Fˆ	Ô%ñ à×&Ñ&Ó(ò 	ˆBÜ*¨3°Ó3ˆLÜ˜l¨JÕ7Ø×&Ñ&Ü*ØŸW™WØ!#§¡ð /1¯n©nö%à *Ü)¨*°Z·_±_Ñ*EÄuÔMò 'ò%ð
 ŸF™Fô	õð	ð" —M‘Mó IˆÜ × <Ñ <¸SÓ AÀ:ÔNØâÜ$ S¨(×*FÑ*FÀsÓ*KÓLˆIð "×,Ñ,ÒO°	×0EÑ0E×0IÑ0IÈ$Ó0OˆJØ ×*Ñ*ÒL¨i×.BÑ.B×.FÑ.FÀtÓ.LˆIØ"*×">Ñ">ò #Ä/Ø×%Ñ% zóCÐð "*×!<Ñ!<ò "ÄØ×$Ñ$ ióAÐð "*×!<Ñ!<ÐØ!Ð)Ø×"Ò" h×&AÒ&Aà%.×%AÑ%AÐ"Ø×ÑÜ"ò Ø%×.Ñ.ò FÙ+¨C°¸9ÓEøðð "Ÿšðð "Ÿšð	ð
 "Ÿ™ÒE¨Z¨L¸¸)¸Ð*Eøðñ (7¡¸H×<QÑ<Qøðô $3Ø"Ñ$=¸hÓ$Gô$ðñ  *ðñ (ðñ (:ðð (0×'BÑ'Bò (?Ø ×4Ñ4×8Ñ8¸Ó>øðð '/×&@Ñ&@ò '3Ø ×2Ñ2øð!ñ" )<ð#ñ$ (:ð%ð& 19×0TÑ0Tò 15Ø ×4Ñ4øð)ð* 08×/RÑ/Rò 0Øøð-ð. !Ÿšð/öð8 ×ÑÜ"ò Ø%×.Ò.ðà!Ÿšðð "Ÿšðð "Ÿšð	ñ
 (7¡¸H×<QÑ<Qøðô $3Ø"Ñ$=¸hÓ$Gô$ðð  (×2Ò2ðð '×0Ò0ðð (0×'BÒ'Bðð (0×'BÒ'Bðð '/×&@Ò&@ðð )1×(DÒ(Dðð (0×'BÒ'Bðð  19×0TÒ0Tð!ð" 08×/RÒ/Rð#ð$ !Ÿšð%öðiIðV —‘€F„Jà€Mùóoùò 5ùòh%s   Ã50`?ÅaÓ&a
c                óÊ   — i }| D ][  }|j                  d«      |j                  d«      }}t        |�|nt        j                   |�|nt        j                  «      ||d   <   Œ] |S )Nr6   r7   r-   )r#   r   ÚmathÚinf)ÚconditionSetÚcÚ	conditionr6   r7   s        r)   Ú_conditionSetFromr±   ¾  sj   € Ø€AØ!ò 
ˆ	Ø$Ÿ=™=¨Ó3°Y·]±]À9Ó5M�ˆÜ$ØÐ*‰G´·±°	ØÐ*‰G´·±ó 
ˆˆ)�FÑ
Òð
ð €Hr+   c           	     ó(  — g }| D �]	  }t        |j                  g |j                  ¬«      }|j                  D ]·  }t	        |«      }g }d}|j                  «       D ]u  \  }	}
|	|vrŒt        |
t        t        f«      r|
||	   v rŒ)d}Œ,|
||	   v rŒ4||	   j                  |
«      }|�*|j                  |	|j                  |j                  dœ«       Œtd}Œw |rŒ�|j                  j                  |«       Œ¹ |j                  sŒù|j                  |«       �Œ |S )N)r-   ÚconditionSetsÚsubsFT)r-   r6   r7   )r   r-   r´   r³   r±   Úitemsr�   ÚfloatÚintÚintersectionrN   r6   r7   )r˜   r§   ÚnewRulesÚruleÚnewRuleÚconditionsetÚcsÚnewConditionsetÚdiscardConditionsetÚselectionNameÚselectionValuer¸   s               r)   r—   r—   É  sC  € ð$ &(€HØó )%ˆÜ"0Ø—‘¨"°4·9±9ô#
ˆð !×.Ñ.ò #	>ˆLÜ" <Ó0ˆBØ46ˆOØ"'ÐØ1=×1CÑ1CÓ1Eò 7Ñ-�˜~à ¨Ñ*àÜ˜n¬u´c¨lÔ;à%¨¨MÑ):Ñ:Øð /3Ñ+ð &¨¨MÑ):Ñ:Øà')¨-Ñ'8×'EÑ'EÀnÓ'U˜à'Ð3Ø+×2Ñ2à,9Ø/;×/CÑ/CØ/;×/CÑ/Cñ!"õð 37Ñ/ð;7ò< 'Ø×%Ñ%×,Ñ,¨_Õ=ðG#	>ðH × Ó Ø�O‰O˜GÖ$ðS)%ðV €Or+   c                ó„   — |j                  «       D ��ci c]  \  }}|| v rt        | |   t        «      r||“Œ! c}}S c c}}w rj   )rµ   r�   r   )r    Úlocationr-   rW   s       r)   r›   r›   
  sI   € ð $Ÿ>™>Ó+÷áˆD�%Ø�:Ñ¤*¨Z¸Ñ-=¼uÔ"Eð 	ˆe‰óð ùó s   ”$<)r&   r   r'   r   r(   r   ÚreturnÚstr)r(   úDict[str, str]r-   zOptional[str]rÄ   rÆ   )r&   r   rÄ   ÚNone)
r&   r   rK   ÚboolrL   rÈ   rM   ÚMakeInstanceFilenameCallablerÄ   z8Iterator[Tuple[SimpleLocationDict, DesignSpaceDocument]])
r&   r   rK   rÈ   rL   rÈ   rM   rÉ   rÄ   z)Iterator[Tuple[str, DesignSpaceDocument]])r&   r   rÄ   zDict[str, DesignSpaceDocument])r&   r   r    r   rJ   rÈ   rK   rÈ   rL   rÈ   rM   rÉ   rÄ   r   )r®   zList[Dict[str, Any]]rÄ   r   )r˜   úList[RuleDescriptor]r§   r   rÄ   rÊ   )r    r   rÃ   úDict[str, float]rÄ   rË   )3Ú__doc__Ú
__future__r   rO   Ú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__r<   rÅ   rÉ   r*   r.   rG   rZ   ra   rg   rR   r±   r—   r›   ru   r+   r)   ú<module>rÕ      sÏ  ðñõ #ã Û Û ß M× MÓ M÷
÷ 
õ 
÷ G÷÷ ñ ð 
ˆ×	Ñ	˜8Ó	$€à'ØÐ,¨iÐ8¸#Ð=ñ Ð ð

+Ø	ð
+Ø(:ð
+ØGPð
+àó
+ó<ó
ð@ Ø Ø9Tð	A+Ø	ðA+àðA+ð ðA+ð 7ð	A+ð
 >óA+ðL Ø!Ø9Tð	(Ø	ð(àð(ð ð(ð 7ð	(ð
 /ó(ðVØ	ðà#óð"bØ	ðbàðbð ð	bð
 ðbð ðbð 7ðbð óbóJð>Øð>Ø/5ð>àó>ðBØðàðð ôr+   