aboutsummaryrefslogtreecommitdiff
path: root/Tests/varLib
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/varLib')
-rw-r--r--Tests/varLib/data/IncompatibleArrays.designspace22
-rw-r--r--Tests/varLib/data/IncompatibleFeatures.designspace22
-rw-r--r--Tests/varLib/data/IncompatibleLookupTypes.designspace22
-rw-r--r--Tests/varLib/data/master_cff2/TestCFF2_Black.ttx2
-rw-r--r--Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx2
-rw-r--r--Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx2
-rw-r--r--Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx2
-rw-r--r--Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx2
-rw-r--r--Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx2
-rw-r--r--Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Bold.ttx612
-rw-r--r--Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Regular.ttx626
-rw-r--r--Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Bold.ttx578
-rw-r--r--Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Regular.ttx626
-rw-r--r--Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx622
-rw-r--r--Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx626
-rw-r--r--Tests/varLib/data/master_kerning_merging/0.ttx6
-rw-r--r--Tests/varLib/data/master_kerning_merging/1.ttx6
-rw-r--r--Tests/varLib/data/master_kerning_merging/2.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx14
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx8
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx8
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx2
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx2
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx2
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx2
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx2
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx14
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx6
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx14
-rw-r--r--Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx14
-rw-r--r--Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx4
-rw-r--r--Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx10
-rw-r--r--Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx6
-rw-r--r--Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx4
-rw-r--r--Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx4
-rw-r--r--Tests/varLib/data/test_results/Build.ttx2
-rw-r--r--Tests/varLib/data/test_results/BuildMain.ttx2
-rw-r--r--Tests/varLib/data/test_results/BuildTestCFF2.ttx2
-rw-r--r--Tests/varLib/data/test_results/FeatureVars.ttx6
-rw-r--r--Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx6
-rw-r--r--Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx2
-rw-r--r--Tests/varLib/data/test_results/FeatureVars_rclt.ttx10
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayout.ttx14
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx6
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx6
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx6
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx4
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx4
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx4
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx4
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx4
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx4
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx8
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx8
-rw-r--r--Tests/varLib/data/test_results/InterpolateLayoutMain.ttx2
-rw-r--r--Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx2
-rw-r--r--Tests/varLib/data/test_results/Mutator.ttx2
-rw-r--r--Tests/varLib/data/test_results/SingleMaster.ttx2
-rw-r--r--Tests/varLib/data/test_results/SparseMasters.ttx8
-rw-r--r--Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx2
-rw-r--r--Tests/varLib/data/test_results/TestSparseCFF2VF.ttx8
-rw-r--r--Tests/varLib/data/test_results/test_vpal.ttx12
-rw-r--r--Tests/varLib/featureVars_test.py1
-rw-r--r--Tests/varLib/instancer/conftest.py13
-rw-r--r--Tests/varLib/instancer/data/PartialInstancerTest-VF.ttx (renamed from Tests/varLib/data/PartialInstancerTest-VF.ttx)12
-rw-r--r--Tests/varLib/instancer/data/PartialInstancerTest2-VF.ttx (renamed from Tests/varLib/data/PartialInstancerTest2-VF.ttx)16
-rw-r--r--Tests/varLib/instancer/data/PartialInstancerTest3-VF.ttx (renamed from Tests/varLib/data/PartialInstancerTest3-VF.ttx)0
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx)18
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx)16
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx)20
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx)18
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx)18
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx)16
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx)0
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx)0
-rw-r--r--Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx (renamed from Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx)0
-rw-r--r--Tests/varLib/instancer/instancer_test.py (renamed from Tests/varLib/instancer_test.py)43
-rw-r--r--Tests/varLib/instancer/names_test.py322
-rw-r--r--Tests/varLib/interpolatable_test.py1
-rw-r--r--Tests/varLib/interpolate_layout_test.py1
-rw-r--r--Tests/varLib/models_test.py1
-rw-r--r--Tests/varLib/mutator_test.py1
-rw-r--r--Tests/varLib/varLib_test.py59
98 files changed, 4408 insertions, 268 deletions
diff --git a/Tests/varLib/data/IncompatibleArrays.designspace b/Tests/varLib/data/IncompatibleArrays.designspace
new file mode 100644
index 00000000..399810ea
--- /dev/null
+++ b/Tests/varLib/data/IncompatibleArrays.designspace
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<designspace format="4.1">
+ <axes>
+ <axis tag="wght" name="Weight" minimum="200" maximum="700" default="200"/>
+ </axes>
+ <sources>
+ <source filename="master_incompatible_arrays/IncompatibleArrays-Regular.ttx" name="Simple Two Axis Regular" familyname="Simple Two Axis" stylename="Regular">
+ <lib copy="1"/>
+ <groups copy="1"/>
+ <features copy="1"/>
+ <info copy="1"/>
+ <location>
+ <dimension name="Weight" xvalue="200"/>
+ </location>
+ </source>
+ <source filename="master_incompatible_arrays/IncompatibleArrays-Bold.ttx" name="Simple Two Axis Bold" familyname="Simple Two Axis" stylename="Bold">
+ <location>
+ <dimension name="Weight" xvalue="700"/>
+ </location>
+ </source>
+ </sources>
+</designspace>
diff --git a/Tests/varLib/data/IncompatibleFeatures.designspace b/Tests/varLib/data/IncompatibleFeatures.designspace
new file mode 100644
index 00000000..ab275164
--- /dev/null
+++ b/Tests/varLib/data/IncompatibleFeatures.designspace
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<designspace format="4.1">
+ <axes>
+ <axis tag="wght" name="Weight" minimum="200" maximum="700" default="200"/>
+ </axes>
+ <sources>
+ <source filename="master_incompatible_features/IncompatibleFeatures-Regular.ttx" name="Simple Two Axis Regular" familyname="Simple Two Axis" stylename="Regular">
+ <lib copy="1"/>
+ <groups copy="1"/>
+ <features copy="1"/>
+ <info copy="1"/>
+ <location>
+ <dimension name="Weight" xvalue="200"/>
+ </location>
+ </source>
+ <source filename="master_incompatible_features/IncompatibleFeatures-Bold.ttx" name="Simple Two Axis Bold" familyname="Simple Two Axis" stylename="Bold">
+ <location>
+ <dimension name="Weight" xvalue="700"/>
+ </location>
+ </source>
+ </sources>
+</designspace>
diff --git a/Tests/varLib/data/IncompatibleLookupTypes.designspace b/Tests/varLib/data/IncompatibleLookupTypes.designspace
new file mode 100644
index 00000000..c7d35754
--- /dev/null
+++ b/Tests/varLib/data/IncompatibleLookupTypes.designspace
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<designspace format="4.1">
+ <axes>
+ <axis tag="wght" name="Weight" minimum="200" maximum="700" default="200"/>
+ </axes>
+ <sources>
+ <source filename="master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx" name="Simple Two Axis Regular" familyname="Simple Two Axis" stylename="Regular">
+ <lib copy="1"/>
+ <groups copy="1"/>
+ <features copy="1"/>
+ <info copy="1"/>
+ <location>
+ <dimension name="Weight" xvalue="200"/>
+ </location>
+ </source>
+ <source filename="master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx" name="Simple Two Axis Bold" familyname="Simple Two Axis" stylename="Bold">
+ <location>
+ <dimension name="Weight" xvalue="700"/>
+ </location>
+ </source>
+ </sources>
+</designspace>
diff --git a/Tests/varLib/data/master_cff2/TestCFF2_Black.ttx b/Tests/varLib/data/master_cff2/TestCFF2_Black.ttx
index 7270a161..8b633f1a 100644
--- a/Tests/varLib/data/master_cff2/TestCFF2_Black.ttx
+++ b/Tests/varLib/data/master_cff2/TestCFF2_Black.ttx
@@ -495,7 +495,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="dollar" out="dollar.a"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx b/Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx
index 41dbb750..aae43aac 100644
--- a/Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx
+++ b/Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx
@@ -495,7 +495,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="dollar" out="dollar.a"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx b/Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx
index 49d116ce..471eb248 100644
--- a/Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx
+++ b/Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx
@@ -493,7 +493,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="dollar" out="dollar.a"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx b/Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx
index 22f82758..3280eeac 100644
--- a/Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx
+++ b/Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx
@@ -487,7 +487,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="dollar" out="dollar.a"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx b/Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx
index e3a35f03..fbcf91a8 100644
--- a/Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx
+++ b/Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx
@@ -487,7 +487,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="dollar" out="dollar.a"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx b/Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx
index bf0a9623..757e5b89 100644
--- a/Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx
+++ b/Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx
@@ -485,7 +485,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="dollar" out="dollar.a"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Bold.ttx b/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Bold.ttx
new file mode 100644
index 00000000..c47ecbad
--- /dev/null
+++ b/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Bold.ttx
@@ -0,0 +1,612 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20">
+
+ <GlyphOrder>
+ <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
+ <GlyphID id="0" name=".notdef"/>
+ <GlyphID id="1" name="A"/>
+ <GlyphID id="2" name="Aacute"/>
+ <GlyphID id="3" name="O"/>
+ <GlyphID id="4" name="V"/>
+ <GlyphID id="5" name="space"/>
+ <GlyphID id="6" name="dollar"/>
+ <GlyphID id="7" name="dollar.bold"/>
+ <GlyphID id="8" name="acutecomb"/>
+ <GlyphID id="9" name="dollar.BRACKET.500"/>
+ </GlyphOrder>
+
+ <head>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="1.0"/>
+ <fontRevision value="1.0"/>
+ <checkSumAdjustment value="0x10cb3f3"/>
+ <magicNumber value="0x5f0f3cf5"/>
+ <flags value="00000000 00000011"/>
+ <unitsPerEm value="1000"/>
+ <created value="Fri Jan 15 14:37:13 2021"/>
+ <modified value="Mon Mar 15 12:57:03 2021"/>
+ <xMin value="-141"/>
+ <yMin value="-200"/>
+ <xMax value="906"/>
+ <yMax value="949"/>
+ <macStyle value="00000000 00000001"/>
+ <lowestRecPPEM value="6"/>
+ <fontDirectionHint value="2"/>
+ <indexToLocFormat value="0"/>
+ <glyphDataFormat value="0"/>
+ </head>
+
+ <hhea>
+ <tableVersion value="0x00010000"/>
+ <ascent value="1000"/>
+ <descent value="-200"/>
+ <lineGap value="0"/>
+ <advanceWidthMax value="911"/>
+ <minLeftSideBearing value="-141"/>
+ <minRightSideBearing value="-125"/>
+ <xMaxExtent value="906"/>
+ <caretSlopeRise value="1"/>
+ <caretSlopeRun value="0"/>
+ <caretOffset value="0"/>
+ <reserved0 value="0"/>
+ <reserved1 value="0"/>
+ <reserved2 value="0"/>
+ <reserved3 value="0"/>
+ <metricDataFormat value="0"/>
+ <numberOfHMetrics value="10"/>
+ </hhea>
+
+ <maxp>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="0x10000"/>
+ <numGlyphs value="10"/>
+ <maxPoints value="52"/>
+ <maxContours value="3"/>
+ <maxCompositePoints value="16"/>
+ <maxCompositeContours value="4"/>
+ <maxZones value="1"/>
+ <maxTwilightPoints value="0"/>
+ <maxStorage value="0"/>
+ <maxFunctionDefs value="0"/>
+ <maxInstructionDefs value="0"/>
+ <maxStackElements value="0"/>
+ <maxSizeOfInstructions value="0"/>
+ <maxComponentElements value="2"/>
+ <maxComponentDepth value="1"/>
+ </maxp>
+
+ <OS_2>
+ <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
+ will be recalculated by the compiler -->
+ <version value="4"/>
+ <xAvgCharWidth value="672"/>
+ <usWeightClass value="400"/>
+ <usWidthClass value="5"/>
+ <fsType value="00000000 00001000"/>
+ <ySubscriptXSize value="650"/>
+ <ySubscriptYSize value="600"/>
+ <ySubscriptXOffset value="0"/>
+ <ySubscriptYOffset value="75"/>
+ <ySuperscriptXSize value="650"/>
+ <ySuperscriptYSize value="600"/>
+ <ySuperscriptXOffset value="0"/>
+ <ySuperscriptYOffset value="350"/>
+ <yStrikeoutSize value="50"/>
+ <yStrikeoutPosition value="300"/>
+ <sFamilyClass value="0"/>
+ <panose>
+ <bFamilyType value="0"/>
+ <bSerifStyle value="0"/>
+ <bWeight value="0"/>
+ <bProportion value="0"/>
+ <bContrast value="0"/>
+ <bStrokeVariation value="0"/>
+ <bArmStyle value="0"/>
+ <bLetterForm value="0"/>
+ <bMidline value="0"/>
+ <bXHeight value="0"/>
+ </panose>
+ <ulUnicodeRange1 value="00000000 00000000 00000000 01000011"/>
+ <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
+ <achVendID value="NONE"/>
+ <fsSelection value="00000000 00100000"/>
+ <usFirstCharIndex value="32"/>
+ <usLastCharIndex value="769"/>
+ <sTypoAscender value="800"/>
+ <sTypoDescender value="-200"/>
+ <sTypoLineGap value="200"/>
+ <usWinAscent value="1000"/>
+ <usWinDescent value="200"/>
+ <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
+ <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
+ <sxHeight value="500"/>
+ <sCapHeight value="700"/>
+ <usDefaultChar value="0"/>
+ <usBreakChar value="32"/>
+ <usMaxContext value="2"/>
+ </OS_2>
+
+ <hmtx>
+ <mtx name=".notdef" width="500" lsb="50"/>
+ <mtx name="A" width="911" lsb="5"/>
+ <mtx name="Aacute" width="911" lsb="5"/>
+ <mtx name="O" width="715" lsb="15"/>
+ <mtx name="V" width="911" lsb="5"/>
+ <mtx name="acutecomb" width="0" lsb="-141"/>
+ <mtx name="dollar" width="600" lsb="1"/>
+ <mtx name="dollar.BRACKET.500" width="600" lsb="1"/>
+ <mtx name="dollar.bold" width="600" lsb="1"/>
+ <mtx name="space" width="300" lsb="0"/>
+ </hmtx>
+
+ <cmap>
+ <tableVersion version="0"/>
+ <cmap_format_4 platformID="0" platEncID="3" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ <cmap_format_4 platformID="3" platEncID="1" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ </cmap>
+
+ <loca>
+ <!-- The 'loca' table will be calculated by the compiler -->
+ </loca>
+
+ <glyf>
+
+ <!-- The xMin, yMin, xMax and yMax values
+ will be recalculated by the compiler. -->
+
+ <TTGlyph name=".notdef" xMin="50" yMin="-200" xMax="450" yMax="800">
+ <contour>
+ <pt x="50" y="-200" on="1"/>
+ <pt x="50" y="800" on="1"/>
+ <pt x="450" y="800" on="1"/>
+ <pt x="450" y="-200" on="1"/>
+ </contour>
+ <contour>
+ <pt x="100" y="-150" on="1"/>
+ <pt x="400" y="-150" on="1"/>
+ <pt x="400" y="750" on="1"/>
+ <pt x="100" y="750" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="A" xMin="5" yMin="0" xMax="906" yMax="700">
+ <contour>
+ <pt x="705" y="0" on="1"/>
+ <pt x="906" y="0" on="1"/>
+ <pt x="556" y="700" on="1"/>
+ <pt x="355" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="5" y="0" on="1"/>
+ <pt x="206" y="0" on="1"/>
+ <pt x="556" y="700" on="1"/>
+ <pt x="355" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="640" y="311" on="1"/>
+ <pt x="190" y="311" on="1"/>
+ <pt x="190" y="191" on="1"/>
+ <pt x="640" y="191" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="906" yMax="949">
+ <component glyphName="A" x="0" y="0" flags="0x204"/>
+ <component glyphName="acutecomb" x="479" y="124" flags="0x4"/>
+ </TTGlyph>
+
+ <TTGlyph name="O" xMin="15" yMin="-10" xMax="670" yMax="710">
+ <contour>
+ <pt x="342" y="-10" on="1"/>
+ <pt x="172" y="-10" on="0"/>
+ <pt x="15" y="163" on="0"/>
+ <pt x="15" y="350" on="1"/>
+ <pt x="15" y="538" on="0"/>
+ <pt x="172" y="710" on="0"/>
+ <pt x="342" y="710" on="1"/>
+ <pt x="513" y="710" on="0"/>
+ <pt x="670" y="538" on="0"/>
+ <pt x="670" y="350" on="1"/>
+ <pt x="670" y="163" on="0"/>
+ <pt x="513" y="-10" on="0"/>
+ </contour>
+ <contour>
+ <pt x="342" y="153" on="1"/>
+ <pt x="419" y="153" on="0"/>
+ <pt x="490" y="247" on="0"/>
+ <pt x="490" y="350" on="1"/>
+ <pt x="490" y="453" on="0"/>
+ <pt x="419" y="547" on="0"/>
+ <pt x="342" y="547" on="1"/>
+ <pt x="266" y="547" on="0"/>
+ <pt x="195" y="453" on="0"/>
+ <pt x="195" y="350" on="1"/>
+ <pt x="195" y="247" on="0"/>
+ <pt x="266" y="153" on="0"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="V" xMin="5" yMin="0" xMax="906" yMax="700">
+ <contour>
+ <pt x="355" y="0" on="1"/>
+ <pt x="705" y="700" on="1"/>
+ <pt x="906" y="700" on="1"/>
+ <pt x="556" y="0" on="1"/>
+ </contour>
+ <contour>
+ <pt x="355" y="0" on="1"/>
+ <pt x="5" y="700" on="1"/>
+ <pt x="206" y="700" on="1"/>
+ <pt x="556" y="0" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="825">
+ <contour>
+ <pt x="-118" y="756" on="1"/>
+ <pt x="-141" y="630" on="1"/>
+ <pt x="102" y="699" on="1"/>
+ <pt x="125" y="825" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="479" y="549" on="0"/>
+ <pt x="411" y="588" on="0"/>
+ <pt x="369" y="595" on="1"/>
+ <pt x="369" y="400" on="1"/>
+ <pt x="476" y="378" on="0"/>
+ <pt x="595" y="278" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="118" y="144" on="0"/>
+ <pt x="195" y="106" on="0"/>
+ <pt x="249" y="100" on="1"/>
+ <pt x="249" y="273" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="294" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <contour>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="480" on="0"/>
+ <pt x="166" y="453" on="0"/>
+ <pt x="208" y="434" on="0"/>
+ <pt x="249" y="424" on="1"/>
+ <pt x="249" y="595" on="1"/>
+ <pt x="199" y="587" on="0"/>
+ <pt x="152" y="538" on="0"/>
+ </contour>
+ <contour>
+ <pt x="369" y="100" on="1"/>
+ <pt x="426" y="107" on="0"/>
+ <pt x="471" y="150" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="201" on="0"/>
+ <pt x="456" y="225" on="0"/>
+ <pt x="412" y="243" on="0"/>
+ <pt x="369" y="252" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.BRACKET.500" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="468" y="560" on="0"/>
+ <pt x="374" y="600" on="0"/>
+ <pt x="308" y="600" on="1"/>
+ <pt x="227" y="600" on="0"/>
+ <pt x="152" y="548" on="0"/>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="479" on="0"/>
+ <pt x="168" y="450" on="0"/>
+ <pt x="217" y="431" on="0"/>
+ <pt x="264" y="421" on="1"/>
+ <pt x="363" y="401" on="1"/>
+ <pt x="473" y="379" on="0"/>
+ <pt x="595" y="279" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="112" y="150" on="0"/>
+ <pt x="176" y="114" on="0"/>
+ <pt x="256" y="97" on="0"/>
+ <pt x="310" y="97" on="1"/>
+ <pt x="402" y="97" on="0"/>
+ <pt x="471" y="143" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="203" on="0"/>
+ <pt x="453" y="228" on="0"/>
+ <pt x="399" y="247" on="0"/>
+ <pt x="345" y="256" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="293" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.bold" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="468" y="560" on="0"/>
+ <pt x="374" y="600" on="0"/>
+ <pt x="308" y="600" on="1"/>
+ <pt x="227" y="600" on="0"/>
+ <pt x="152" y="548" on="0"/>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="479" on="0"/>
+ <pt x="168" y="450" on="0"/>
+ <pt x="217" y="431" on="0"/>
+ <pt x="264" y="421" on="1"/>
+ <pt x="363" y="401" on="1"/>
+ <pt x="473" y="379" on="0"/>
+ <pt x="595" y="279" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="112" y="150" on="0"/>
+ <pt x="176" y="114" on="0"/>
+ <pt x="256" y="97" on="0"/>
+ <pt x="310" y="97" on="1"/>
+ <pt x="402" y="97" on="0"/>
+ <pt x="471" y="143" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="203" on="0"/>
+ <pt x="453" y="228" on="0"/>
+ <pt x="399" y="247" on="0"/>
+ <pt x="345" y="256" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="293" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="space"/><!-- contains no outline data -->
+
+ </glyf>
+
+ <name>
+ <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis
+ </namerecord>
+ <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
+ Bold
+ </namerecord>
+ <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
+ 1.000;NONE;SimpleTwoAxis-Bold
+ </namerecord>
+ <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis Bold
+ </namerecord>
+ <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
+ Version 1.000
+ </namerecord>
+ <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
+ SimpleTwoAxis-Bold
+ </namerecord>
+ </name>
+
+ <post>
+ <formatType value="2.0"/>
+ <italicAngle value="0.0"/>
+ <underlinePosition value="-100"/>
+ <underlineThickness value="50"/>
+ <isFixedPitch value="0"/>
+ <minMemType42 value="0"/>
+ <maxMemType42 value="0"/>
+ <minMemType1 value="0"/>
+ <maxMemType1 value="0"/>
+ <psNames>
+ <!-- This file uses unique glyph names based on the information
+ found in the 'post' table. Since these names might not be unique,
+ we have to invent artificial names in case of clashes. In order to
+ be able to retain the original information, we need a name to
+ ps name mapping for those cases where they differ. That's what
+ you see below.
+ -->
+ </psNames>
+ <extraNames>
+ <!-- following are the name that are not taken from the standard Mac glyph order -->
+ <psName name="dollar.bold"/>
+ <psName name="acutecomb"/>
+ <psName name="dollar.BRACKET.500"/>
+ </extraNames>
+ </post>
+
+ <GDEF>
+ <Version value="0x00010000"/>
+ <GlyphClassDef>
+ <ClassDef glyph="A" class="1"/>
+ <ClassDef glyph="Aacute" class="1"/>
+ <ClassDef glyph="acutecomb" class="3"/>
+ </GlyphClassDef>
+ </GDEF>
+ <GPOS>
+ <Version value="0x00010000"/>
+ <ScriptList>
+ </ScriptList>
+ <FeatureList>
+ <!-- FeatureCount=2 -->
+ <FeatureRecord index="0">
+ <FeatureTag value="kern"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="0"/>
+ </Feature>
+ </FeatureRecord>
+ <FeatureRecord index="1">
+ <FeatureTag value="mark"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="1"/>
+ </Feature>
+ </FeatureRecord>
+ </FeatureList>
+ <LookupList>
+ <!-- LookupCount=2 -->
+ <Lookup index="0">
+ <LookupType value="2"/>
+ <LookupFlag value="8"/><!-- ignoreMarks -->
+ <!-- SubTableCount=1 -->
+ <PairPos index="0" Format="1">
+ <Coverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ <Glyph value="V"/>
+ </Coverage>
+ <ValueFormat1 value="4"/>
+ <ValueFormat2 value="0"/>
+ <!-- PairSetCount=3 -->
+ <PairSet index="0">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="1">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="2">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="O"/>
+ <Value1 XAdvance="-20"/>
+ </PairValueRecord>
+ </PairSet>
+ </PairPos>
+ </Lookup>
+ <Lookup index="1">
+ <LookupType value="4"/>
+ <LookupFlag value="0"/>
+ <!-- SubTableCount=1 -->
+ <MarkBasePos index="0" Format="1">
+ <MarkCoverage>
+ <Glyph value="acutecomb"/>
+ </MarkCoverage>
+ <BaseCoverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ </BaseCoverage>
+ <!-- ClassCount=1 -->
+ <MarkArray>
+ <!-- MarkCount=1 -->
+ <MarkRecord index="0">
+ <Class value="0"/>
+ <MarkAnchor Format="1">
+ <XCoordinate value="4"/>
+ <YCoordinate value="623"/>
+ </MarkAnchor>
+ </MarkRecord>
+ </MarkArray>
+ <BaseArray>
+ <!-- BaseCount=2 -->
+ <BaseRecord index="0">
+ <BaseAnchor index="0" Format="1">
+ <XCoordinate value="406"/>
+ <YCoordinate value="753"/>
+ </BaseAnchor>
+ </BaseRecord>
+ <BaseRecord index="1">
+ <BaseAnchor index="0" Format="1">
+ <XCoordinate value="406"/>
+ <YCoordinate value="753"/>
+ </BaseAnchor>
+ </BaseRecord>
+ </BaseArray>
+ </MarkBasePos>
+ </Lookup>
+ </LookupList>
+ </GPOS>
+
+</ttFont>
diff --git a/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Regular.ttx b/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Regular.ttx
new file mode 100644
index 00000000..cabb69a4
--- /dev/null
+++ b/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Regular.ttx
@@ -0,0 +1,626 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20">
+
+ <GlyphOrder>
+ <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
+ <GlyphID id="0" name=".notdef"/>
+ <GlyphID id="1" name="A"/>
+ <GlyphID id="2" name="Aacute"/>
+ <GlyphID id="3" name="O"/>
+ <GlyphID id="4" name="V"/>
+ <GlyphID id="5" name="space"/>
+ <GlyphID id="6" name="dollar"/>
+ <GlyphID id="7" name="dollar.bold"/>
+ <GlyphID id="8" name="acutecomb"/>
+ <GlyphID id="9" name="dollar.BRACKET.500"/>
+ </GlyphOrder>
+
+ <head>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="1.0"/>
+ <fontRevision value="1.0"/>
+ <checkSumAdjustment value="0x3c7bc79b"/>
+ <magicNumber value="0x5f0f3cf5"/>
+ <flags value="00000000 00000011"/>
+ <unitsPerEm value="1000"/>
+ <created value="Fri Jan 15 14:37:13 2021"/>
+ <modified value="Mon Mar 15 12:57:03 2021"/>
+ <xMin value="-141"/>
+ <yMin value="-200"/>
+ <xMax value="751"/>
+ <yMax value="915"/>
+ <macStyle value="00000000 00000000"/>
+ <lowestRecPPEM value="6"/>
+ <fontDirectionHint value="2"/>
+ <indexToLocFormat value="0"/>
+ <glyphDataFormat value="0"/>
+ </head>
+
+ <hhea>
+ <tableVersion value="0x00010000"/>
+ <ascent value="1000"/>
+ <descent value="-200"/>
+ <lineGap value="0"/>
+ <advanceWidthMax value="756"/>
+ <minLeftSideBearing value="-141"/>
+ <minRightSideBearing value="-125"/>
+ <xMaxExtent value="751"/>
+ <caretSlopeRise value="1"/>
+ <caretSlopeRun value="0"/>
+ <caretOffset value="0"/>
+ <reserved0 value="0"/>
+ <reserved1 value="0"/>
+ <reserved2 value="0"/>
+ <reserved3 value="0"/>
+ <metricDataFormat value="0"/>
+ <numberOfHMetrics value="10"/>
+ </hhea>
+
+ <maxp>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="0x10000"/>
+ <numGlyphs value="10"/>
+ <maxPoints value="52"/>
+ <maxContours value="3"/>
+ <maxCompositePoints value="16"/>
+ <maxCompositeContours value="4"/>
+ <maxZones value="1"/>
+ <maxTwilightPoints value="0"/>
+ <maxStorage value="0"/>
+ <maxFunctionDefs value="0"/>
+ <maxInstructionDefs value="0"/>
+ <maxStackElements value="0"/>
+ <maxSizeOfInstructions value="0"/>
+ <maxComponentElements value="2"/>
+ <maxComponentDepth value="1"/>
+ </maxp>
+
+ <OS_2>
+ <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
+ will be recalculated by the compiler -->
+ <version value="4"/>
+ <xAvgCharWidth value="604"/>
+ <usWeightClass value="400"/>
+ <usWidthClass value="5"/>
+ <fsType value="00000000 00001000"/>
+ <ySubscriptXSize value="650"/>
+ <ySubscriptYSize value="600"/>
+ <ySubscriptXOffset value="0"/>
+ <ySubscriptYOffset value="75"/>
+ <ySuperscriptXSize value="650"/>
+ <ySuperscriptYSize value="600"/>
+ <ySuperscriptXOffset value="0"/>
+ <ySuperscriptYOffset value="350"/>
+ <yStrikeoutSize value="50"/>
+ <yStrikeoutPosition value="300"/>
+ <sFamilyClass value="0"/>
+ <panose>
+ <bFamilyType value="0"/>
+ <bSerifStyle value="0"/>
+ <bWeight value="0"/>
+ <bProportion value="0"/>
+ <bContrast value="0"/>
+ <bStrokeVariation value="0"/>
+ <bArmStyle value="0"/>
+ <bLetterForm value="0"/>
+ <bMidline value="0"/>
+ <bXHeight value="0"/>
+ </panose>
+ <ulUnicodeRange1 value="00000000 00000000 00000000 01000011"/>
+ <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
+ <achVendID value="NONE"/>
+ <fsSelection value="00000000 01000000"/>
+ <usFirstCharIndex value="32"/>
+ <usLastCharIndex value="769"/>
+ <sTypoAscender value="800"/>
+ <sTypoDescender value="-200"/>
+ <sTypoLineGap value="200"/>
+ <usWinAscent value="1000"/>
+ <usWinDescent value="200"/>
+ <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
+ <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
+ <sxHeight value="500"/>
+ <sCapHeight value="700"/>
+ <usDefaultChar value="0"/>
+ <usBreakChar value="32"/>
+ <usMaxContext value="2"/>
+ </OS_2>
+
+ <hmtx>
+ <mtx name=".notdef" width="500" lsb="50"/>
+ <mtx name="A" width="756" lsb="5"/>
+ <mtx name="Aacute" width="756" lsb="5"/>
+ <mtx name="O" width="664" lsb="30"/>
+ <mtx name="V" width="756" lsb="5"/>
+ <mtx name="acutecomb" width="0" lsb="-141"/>
+ <mtx name="dollar" width="600" lsb="29"/>
+ <mtx name="dollar.BRACKET.500" width="600" lsb="29"/>
+ <mtx name="dollar.bold" width="600" lsb="29"/>
+ <mtx name="space" width="200" lsb="0"/>
+ </hmtx>
+
+ <cmap>
+ <tableVersion version="0"/>
+ <cmap_format_4 platformID="0" platEncID="3" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ <cmap_format_4 platformID="3" platEncID="1" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ </cmap>
+
+ <loca>
+ <!-- The 'loca' table will be calculated by the compiler -->
+ </loca>
+
+ <glyf>
+
+ <!-- The xMin, yMin, xMax and yMax values
+ will be recalculated by the compiler. -->
+
+ <TTGlyph name=".notdef" xMin="50" yMin="-200" xMax="450" yMax="800">
+ <contour>
+ <pt x="50" y="-200" on="1"/>
+ <pt x="50" y="800" on="1"/>
+ <pt x="450" y="800" on="1"/>
+ <pt x="450" y="-200" on="1"/>
+ </contour>
+ <contour>
+ <pt x="100" y="-150" on="1"/>
+ <pt x="400" y="-150" on="1"/>
+ <pt x="400" y="750" on="1"/>
+ <pt x="100" y="750" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="A" xMin="5" yMin="0" xMax="751" yMax="700">
+ <contour>
+ <pt x="641" y="0" on="1"/>
+ <pt x="751" y="0" on="1"/>
+ <pt x="433" y="700" on="1"/>
+ <pt x="323" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="5" y="0" on="1"/>
+ <pt x="115" y="0" on="1"/>
+ <pt x="433" y="700" on="1"/>
+ <pt x="323" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="567" y="284" on="1"/>
+ <pt x="152" y="284" on="1"/>
+ <pt x="152" y="204" on="1"/>
+ <pt x="567" y="204" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="751" yMax="915">
+ <component glyphName="A" x="0" y="0" flags="0x204"/>
+ <component glyphName="acutecomb" x="402" y="130" flags="0x4"/>
+ </TTGlyph>
+
+ <TTGlyph name="O" xMin="30" yMin="-10" xMax="634" yMax="710">
+ <contour>
+ <pt x="332" y="-10" on="1"/>
+ <pt x="181" y="-10" on="0"/>
+ <pt x="30" y="169" on="0"/>
+ <pt x="30" y="350" on="1"/>
+ <pt x="30" y="531" on="0"/>
+ <pt x="181" y="710" on="0"/>
+ <pt x="332" y="710" on="1"/>
+ <pt x="484" y="710" on="0"/>
+ <pt x="634" y="531" on="0"/>
+ <pt x="634" y="350" on="1"/>
+ <pt x="634" y="169" on="0"/>
+ <pt x="484" y="-10" on="0"/>
+ </contour>
+ <contour>
+ <pt x="332" y="74" on="1"/>
+ <pt x="438" y="74" on="0"/>
+ <pt x="544" y="212" on="0"/>
+ <pt x="544" y="350" on="1"/>
+ <pt x="544" y="488" on="0"/>
+ <pt x="438" y="626" on="0"/>
+ <pt x="332" y="626" on="1"/>
+ <pt x="226" y="626" on="0"/>
+ <pt x="120" y="488" on="0"/>
+ <pt x="120" y="350" on="1"/>
+ <pt x="120" y="212" on="0"/>
+ <pt x="226" y="74" on="0"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="V" xMin="5" yMin="0" xMax="751" yMax="700">
+ <contour>
+ <pt x="323" y="0" on="1"/>
+ <pt x="641" y="700" on="1"/>
+ <pt x="751" y="700" on="1"/>
+ <pt x="433" y="0" on="1"/>
+ </contour>
+ <contour>
+ <pt x="323" y="0" on="1"/>
+ <pt x="5" y="700" on="1"/>
+ <pt x="115" y="700" on="1"/>
+ <pt x="433" y="0" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="785">
+ <contour>
+ <pt x="-118" y="716" on="1"/>
+ <pt x="-141" y="630" on="1"/>
+ <pt x="102" y="699" on="1"/>
+ <pt x="125" y="785" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar" xMin="29" yMin="-68" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="473" y="584" on="0"/>
+ <pt x="398" y="621" on="0"/>
+ <pt x="354" y="627" on="1"/>
+ <pt x="354" y="373" on="1"/>
+ <pt x="467" y="351" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-68" on="1"/>
+ <pt x="264" y="-68" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="123" y="110" on="0"/>
+ <pt x="207" y="73" on="0"/>
+ <pt x="264" y="69" on="1"/>
+ <pt x="264" y="301" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <contour>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="264" y="627" on="1"/>
+ <pt x="203" y="618" on="0"/>
+ <pt x="137" y="553" on="0"/>
+ </contour>
+ <contour>
+ <pt x="354" y="69" on="1"/>
+ <pt x="423" y="76" on="0"/>
+ <pt x="486" y="135" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="211" on="0"/>
+ <pt x="462" y="250" on="0"/>
+ <pt x="405" y="275" on="0"/>
+ <pt x="354" y="285" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.BRACKET.500" xMin="29" yMin="-76" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="464" y="592" on="0"/>
+ <pt x="370" y="630" on="0"/>
+ <pt x="308" y="630" on="1"/>
+ <pt x="226" y="630" on="0"/>
+ <pt x="137" y="562" on="0"/>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="360" y="372" on="1"/>
+ <pt x="469" y="350" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-76" on="1"/>
+ <pt x="264" y="-76" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="115" y="118" on="0"/>
+ <pt x="180" y="83" on="0"/>
+ <pt x="259" y="67" on="0"/>
+ <pt x="310" y="67" on="1"/>
+ <pt x="403" y="67" on="0"/>
+ <pt x="486" y="128" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="212" on="0"/>
+ <pt x="461" y="251" on="0"/>
+ <pt x="401" y="277" on="0"/>
+ <pt x="348" y="286" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.bold" xMin="29" yMin="-76" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="464" y="592" on="0"/>
+ <pt x="370" y="630" on="0"/>
+ <pt x="308" y="630" on="1"/>
+ <pt x="226" y="630" on="0"/>
+ <pt x="137" y="562" on="0"/>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="360" y="372" on="1"/>
+ <pt x="469" y="350" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-76" on="1"/>
+ <pt x="264" y="-76" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="115" y="118" on="0"/>
+ <pt x="180" y="83" on="0"/>
+ <pt x="259" y="67" on="0"/>
+ <pt x="310" y="67" on="1"/>
+ <pt x="403" y="67" on="0"/>
+ <pt x="486" y="128" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="212" on="0"/>
+ <pt x="461" y="251" on="0"/>
+ <pt x="401" y="277" on="0"/>
+ <pt x="348" y="286" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="space"/><!-- contains no outline data -->
+
+ </glyf>
+
+ <name>
+ <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis
+ </namerecord>
+ <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
+ Regular
+ </namerecord>
+ <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
+ 1.000;NONE;SimpleTwoAxis-Regular
+ </namerecord>
+ <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis Regular
+ </namerecord>
+ <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
+ Version 1.000
+ </namerecord>
+ <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
+ SimpleTwoAxis-Regular
+ </namerecord>
+ </name>
+
+ <post>
+ <formatType value="2.0"/>
+ <italicAngle value="0.0"/>
+ <underlinePosition value="-100"/>
+ <underlineThickness value="50"/>
+ <isFixedPitch value="0"/>
+ <minMemType42 value="0"/>
+ <maxMemType42 value="0"/>
+ <minMemType1 value="0"/>
+ <maxMemType1 value="0"/>
+ <psNames>
+ <!-- This file uses unique glyph names based on the information
+ found in the 'post' table. Since these names might not be unique,
+ we have to invent artificial names in case of clashes. In order to
+ be able to retain the original information, we need a name to
+ ps name mapping for those cases where they differ. That's what
+ you see below.
+ -->
+ </psNames>
+ <extraNames>
+ <!-- following are the name that are not taken from the standard Mac glyph order -->
+ <psName name="dollar.bold"/>
+ <psName name="acutecomb"/>
+ <psName name="dollar.BRACKET.500"/>
+ </extraNames>
+ </post>
+
+ <GDEF>
+ <Version value="0x00010000"/>
+ <GlyphClassDef>
+ <ClassDef glyph="A" class="1"/>
+ <ClassDef glyph="Aacute" class="1"/>
+ <ClassDef glyph="acutecomb" class="3"/>
+ </GlyphClassDef>
+ </GDEF>
+
+ <GPOS>
+ <Version value="0x00010000"/>
+ <ScriptList>
+ <!-- ScriptCount=1 -->
+ <ScriptRecord index="0">
+ <ScriptTag value="DFLT"/>
+ <Script>
+ <DefaultLangSys>
+ <ReqFeatureIndex value="65535"/>
+ <!-- FeatureCount=2 -->
+ <FeatureIndex index="0" value="0"/>
+ <FeatureIndex index="1" value="1"/>
+ </DefaultLangSys>
+ <!-- LangSysCount=0 -->
+ </Script>
+ </ScriptRecord>
+ </ScriptList>
+ <FeatureList>
+ <!-- FeatureCount=2 -->
+ <FeatureRecord index="0">
+ <FeatureTag value="kern"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="0"/>
+ </Feature>
+ </FeatureRecord>
+ <FeatureRecord index="1">
+ <FeatureTag value="mark"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="1"/>
+ </Feature>
+ </FeatureRecord>
+ </FeatureList>
+ <LookupList>
+ <!-- LookupCount=2 -->
+ <Lookup index="0">
+ <LookupType value="2"/>
+ <LookupFlag value="8"/><!-- ignoreMarks -->
+ <!-- SubTableCount=1 -->
+ <PairPos index="0" Format="1">
+ <Coverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ <Glyph value="V"/>
+ </Coverage>
+ <ValueFormat1 value="4"/>
+ <ValueFormat2 value="0"/>
+ <!-- PairSetCount=3 -->
+ <PairSet index="0">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="1">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="2">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="O"/>
+ <Value1 XAdvance="-20"/>
+ </PairValueRecord>
+ </PairSet>
+ </PairPos>
+ </Lookup>
+ <Lookup index="1">
+ <LookupType value="4"/>
+ <LookupFlag value="0"/>
+ <!-- SubTableCount=1 -->
+ <MarkBasePos index="0" Format="1">
+ <MarkCoverage>
+ <Glyph value="acutecomb"/>
+ </MarkCoverage>
+ <BaseCoverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ </BaseCoverage>
+ <!-- ClassCount=1 -->
+ <MarkArray>
+ <!-- MarkCount=1 -->
+ <MarkRecord index="0">
+ <Class value="0"/>
+ <MarkAnchor Format="1">
+ <XCoordinate value="4"/>
+ <YCoordinate value="623"/>
+ </MarkAnchor>
+ </MarkRecord>
+ </MarkArray>
+ <BaseArray>
+ <!-- BaseCount=2 -->
+ <BaseRecord index="0">
+ <BaseAnchor index="0" Format="1">
+ <XCoordinate value="406"/>
+ <YCoordinate value="753"/>
+ </BaseAnchor>
+ </BaseRecord>
+ <BaseRecord index="1">
+ <BaseAnchor index="0" Format="1">
+ <XCoordinate value="406"/>
+ <YCoordinate value="753"/>
+ </BaseAnchor>
+ </BaseRecord>
+ </BaseArray>
+ </MarkBasePos>
+ </Lookup>
+ </LookupList>
+ </GPOS>
+
+</ttFont>
diff --git a/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Bold.ttx b/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Bold.ttx
new file mode 100644
index 00000000..18aee9fa
--- /dev/null
+++ b/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Bold.ttx
@@ -0,0 +1,578 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20">
+
+ <GlyphOrder>
+ <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
+ <GlyphID id="0" name=".notdef"/>
+ <GlyphID id="1" name="A"/>
+ <GlyphID id="2" name="Aacute"/>
+ <GlyphID id="3" name="O"/>
+ <GlyphID id="4" name="V"/>
+ <GlyphID id="5" name="space"/>
+ <GlyphID id="6" name="dollar"/>
+ <GlyphID id="7" name="dollar.bold"/>
+ <GlyphID id="8" name="acutecomb"/>
+ <GlyphID id="9" name="dollar.BRACKET.500"/>
+ </GlyphOrder>
+
+ <head>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="1.0"/>
+ <fontRevision value="1.0"/>
+ <checkSumAdjustment value="0x10cb3f3"/>
+ <magicNumber value="0x5f0f3cf5"/>
+ <flags value="00000000 00000011"/>
+ <unitsPerEm value="1000"/>
+ <created value="Fri Jan 15 14:37:13 2021"/>
+ <modified value="Mon Mar 15 12:57:03 2021"/>
+ <xMin value="-141"/>
+ <yMin value="-200"/>
+ <xMax value="906"/>
+ <yMax value="949"/>
+ <macStyle value="00000000 00000001"/>
+ <lowestRecPPEM value="6"/>
+ <fontDirectionHint value="2"/>
+ <indexToLocFormat value="0"/>
+ <glyphDataFormat value="0"/>
+ </head>
+
+ <hhea>
+ <tableVersion value="0x00010000"/>
+ <ascent value="1000"/>
+ <descent value="-200"/>
+ <lineGap value="0"/>
+ <advanceWidthMax value="911"/>
+ <minLeftSideBearing value="-141"/>
+ <minRightSideBearing value="-125"/>
+ <xMaxExtent value="906"/>
+ <caretSlopeRise value="1"/>
+ <caretSlopeRun value="0"/>
+ <caretOffset value="0"/>
+ <reserved0 value="0"/>
+ <reserved1 value="0"/>
+ <reserved2 value="0"/>
+ <reserved3 value="0"/>
+ <metricDataFormat value="0"/>
+ <numberOfHMetrics value="10"/>
+ </hhea>
+
+ <maxp>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="0x10000"/>
+ <numGlyphs value="10"/>
+ <maxPoints value="52"/>
+ <maxContours value="3"/>
+ <maxCompositePoints value="16"/>
+ <maxCompositeContours value="4"/>
+ <maxZones value="1"/>
+ <maxTwilightPoints value="0"/>
+ <maxStorage value="0"/>
+ <maxFunctionDefs value="0"/>
+ <maxInstructionDefs value="0"/>
+ <maxStackElements value="0"/>
+ <maxSizeOfInstructions value="0"/>
+ <maxComponentElements value="2"/>
+ <maxComponentDepth value="1"/>
+ </maxp>
+
+ <OS_2>
+ <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
+ will be recalculated by the compiler -->
+ <version value="4"/>
+ <xAvgCharWidth value="672"/>
+ <usWeightClass value="400"/>
+ <usWidthClass value="5"/>
+ <fsType value="00000000 00001000"/>
+ <ySubscriptXSize value="650"/>
+ <ySubscriptYSize value="600"/>
+ <ySubscriptXOffset value="0"/>
+ <ySubscriptYOffset value="75"/>
+ <ySuperscriptXSize value="650"/>
+ <ySuperscriptYSize value="600"/>
+ <ySuperscriptXOffset value="0"/>
+ <ySuperscriptYOffset value="350"/>
+ <yStrikeoutSize value="50"/>
+ <yStrikeoutPosition value="300"/>
+ <sFamilyClass value="0"/>
+ <panose>
+ <bFamilyType value="0"/>
+ <bSerifStyle value="0"/>
+ <bWeight value="0"/>
+ <bProportion value="0"/>
+ <bContrast value="0"/>
+ <bStrokeVariation value="0"/>
+ <bArmStyle value="0"/>
+ <bLetterForm value="0"/>
+ <bMidline value="0"/>
+ <bXHeight value="0"/>
+ </panose>
+ <ulUnicodeRange1 value="00000000 00000000 00000000 01000011"/>
+ <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
+ <achVendID value="NONE"/>
+ <fsSelection value="00000000 00100000"/>
+ <usFirstCharIndex value="32"/>
+ <usLastCharIndex value="769"/>
+ <sTypoAscender value="800"/>
+ <sTypoDescender value="-200"/>
+ <sTypoLineGap value="200"/>
+ <usWinAscent value="1000"/>
+ <usWinDescent value="200"/>
+ <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
+ <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
+ <sxHeight value="500"/>
+ <sCapHeight value="700"/>
+ <usDefaultChar value="0"/>
+ <usBreakChar value="32"/>
+ <usMaxContext value="2"/>
+ </OS_2>
+
+ <hmtx>
+ <mtx name=".notdef" width="500" lsb="50"/>
+ <mtx name="A" width="911" lsb="5"/>
+ <mtx name="Aacute" width="911" lsb="5"/>
+ <mtx name="O" width="715" lsb="15"/>
+ <mtx name="V" width="911" lsb="5"/>
+ <mtx name="acutecomb" width="0" lsb="-141"/>
+ <mtx name="dollar" width="600" lsb="1"/>
+ <mtx name="dollar.BRACKET.500" width="600" lsb="1"/>
+ <mtx name="dollar.bold" width="600" lsb="1"/>
+ <mtx name="space" width="300" lsb="0"/>
+ </hmtx>
+
+ <cmap>
+ <tableVersion version="0"/>
+ <cmap_format_4 platformID="0" platEncID="3" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ <cmap_format_4 platformID="3" platEncID="1" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ </cmap>
+
+ <loca>
+ <!-- The 'loca' table will be calculated by the compiler -->
+ </loca>
+
+ <glyf>
+
+ <!-- The xMin, yMin, xMax and yMax values
+ will be recalculated by the compiler. -->
+
+ <TTGlyph name=".notdef" xMin="50" yMin="-200" xMax="450" yMax="800">
+ <contour>
+ <pt x="50" y="-200" on="1"/>
+ <pt x="50" y="800" on="1"/>
+ <pt x="450" y="800" on="1"/>
+ <pt x="450" y="-200" on="1"/>
+ </contour>
+ <contour>
+ <pt x="100" y="-150" on="1"/>
+ <pt x="400" y="-150" on="1"/>
+ <pt x="400" y="750" on="1"/>
+ <pt x="100" y="750" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="A" xMin="5" yMin="0" xMax="906" yMax="700">
+ <contour>
+ <pt x="705" y="0" on="1"/>
+ <pt x="906" y="0" on="1"/>
+ <pt x="556" y="700" on="1"/>
+ <pt x="355" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="5" y="0" on="1"/>
+ <pt x="206" y="0" on="1"/>
+ <pt x="556" y="700" on="1"/>
+ <pt x="355" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="640" y="311" on="1"/>
+ <pt x="190" y="311" on="1"/>
+ <pt x="190" y="191" on="1"/>
+ <pt x="640" y="191" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="906" yMax="949">
+ <component glyphName="A" x="0" y="0" flags="0x204"/>
+ <component glyphName="acutecomb" x="479" y="124" flags="0x4"/>
+ </TTGlyph>
+
+ <TTGlyph name="O" xMin="15" yMin="-10" xMax="670" yMax="710">
+ <contour>
+ <pt x="342" y="-10" on="1"/>
+ <pt x="172" y="-10" on="0"/>
+ <pt x="15" y="163" on="0"/>
+ <pt x="15" y="350" on="1"/>
+ <pt x="15" y="538" on="0"/>
+ <pt x="172" y="710" on="0"/>
+ <pt x="342" y="710" on="1"/>
+ <pt x="513" y="710" on="0"/>
+ <pt x="670" y="538" on="0"/>
+ <pt x="670" y="350" on="1"/>
+ <pt x="670" y="163" on="0"/>
+ <pt x="513" y="-10" on="0"/>
+ </contour>
+ <contour>
+ <pt x="342" y="153" on="1"/>
+ <pt x="419" y="153" on="0"/>
+ <pt x="490" y="247" on="0"/>
+ <pt x="490" y="350" on="1"/>
+ <pt x="490" y="453" on="0"/>
+ <pt x="419" y="547" on="0"/>
+ <pt x="342" y="547" on="1"/>
+ <pt x="266" y="547" on="0"/>
+ <pt x="195" y="453" on="0"/>
+ <pt x="195" y="350" on="1"/>
+ <pt x="195" y="247" on="0"/>
+ <pt x="266" y="153" on="0"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="V" xMin="5" yMin="0" xMax="906" yMax="700">
+ <contour>
+ <pt x="355" y="0" on="1"/>
+ <pt x="705" y="700" on="1"/>
+ <pt x="906" y="700" on="1"/>
+ <pt x="556" y="0" on="1"/>
+ </contour>
+ <contour>
+ <pt x="355" y="0" on="1"/>
+ <pt x="5" y="700" on="1"/>
+ <pt x="206" y="700" on="1"/>
+ <pt x="556" y="0" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="825">
+ <contour>
+ <pt x="-118" y="756" on="1"/>
+ <pt x="-141" y="630" on="1"/>
+ <pt x="102" y="699" on="1"/>
+ <pt x="125" y="825" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="479" y="549" on="0"/>
+ <pt x="411" y="588" on="0"/>
+ <pt x="369" y="595" on="1"/>
+ <pt x="369" y="400" on="1"/>
+ <pt x="476" y="378" on="0"/>
+ <pt x="595" y="278" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="118" y="144" on="0"/>
+ <pt x="195" y="106" on="0"/>
+ <pt x="249" y="100" on="1"/>
+ <pt x="249" y="273" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="294" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <contour>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="480" on="0"/>
+ <pt x="166" y="453" on="0"/>
+ <pt x="208" y="434" on="0"/>
+ <pt x="249" y="424" on="1"/>
+ <pt x="249" y="595" on="1"/>
+ <pt x="199" y="587" on="0"/>
+ <pt x="152" y="538" on="0"/>
+ </contour>
+ <contour>
+ <pt x="369" y="100" on="1"/>
+ <pt x="426" y="107" on="0"/>
+ <pt x="471" y="150" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="201" on="0"/>
+ <pt x="456" y="225" on="0"/>
+ <pt x="412" y="243" on="0"/>
+ <pt x="369" y="252" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.BRACKET.500" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="468" y="560" on="0"/>
+ <pt x="374" y="600" on="0"/>
+ <pt x="308" y="600" on="1"/>
+ <pt x="227" y="600" on="0"/>
+ <pt x="152" y="548" on="0"/>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="479" on="0"/>
+ <pt x="168" y="450" on="0"/>
+ <pt x="217" y="431" on="0"/>
+ <pt x="264" y="421" on="1"/>
+ <pt x="363" y="401" on="1"/>
+ <pt x="473" y="379" on="0"/>
+ <pt x="595" y="279" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="112" y="150" on="0"/>
+ <pt x="176" y="114" on="0"/>
+ <pt x="256" y="97" on="0"/>
+ <pt x="310" y="97" on="1"/>
+ <pt x="402" y="97" on="0"/>
+ <pt x="471" y="143" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="203" on="0"/>
+ <pt x="453" y="228" on="0"/>
+ <pt x="399" y="247" on="0"/>
+ <pt x="345" y="256" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="293" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.bold" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="468" y="560" on="0"/>
+ <pt x="374" y="600" on="0"/>
+ <pt x="308" y="600" on="1"/>
+ <pt x="227" y="600" on="0"/>
+ <pt x="152" y="548" on="0"/>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="479" on="0"/>
+ <pt x="168" y="450" on="0"/>
+ <pt x="217" y="431" on="0"/>
+ <pt x="264" y="421" on="1"/>
+ <pt x="363" y="401" on="1"/>
+ <pt x="473" y="379" on="0"/>
+ <pt x="595" y="279" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="112" y="150" on="0"/>
+ <pt x="176" y="114" on="0"/>
+ <pt x="256" y="97" on="0"/>
+ <pt x="310" y="97" on="1"/>
+ <pt x="402" y="97" on="0"/>
+ <pt x="471" y="143" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="203" on="0"/>
+ <pt x="453" y="228" on="0"/>
+ <pt x="399" y="247" on="0"/>
+ <pt x="345" y="256" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="293" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="space"/><!-- contains no outline data -->
+
+ </glyf>
+
+ <name>
+ <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis
+ </namerecord>
+ <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
+ Bold
+ </namerecord>
+ <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
+ 1.000;NONE;SimpleTwoAxis-Bold
+ </namerecord>
+ <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis Bold
+ </namerecord>
+ <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
+ Version 1.000
+ </namerecord>
+ <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
+ SimpleTwoAxis-Bold
+ </namerecord>
+ </name>
+
+ <post>
+ <formatType value="2.0"/>
+ <italicAngle value="0.0"/>
+ <underlinePosition value="-100"/>
+ <underlineThickness value="50"/>
+ <isFixedPitch value="0"/>
+ <minMemType42 value="0"/>
+ <maxMemType42 value="0"/>
+ <minMemType1 value="0"/>
+ <maxMemType1 value="0"/>
+ <psNames>
+ <!-- This file uses unique glyph names based on the information
+ found in the 'post' table. Since these names might not be unique,
+ we have to invent artificial names in case of clashes. In order to
+ be able to retain the original information, we need a name to
+ ps name mapping for those cases where they differ. That's what
+ you see below.
+ -->
+ </psNames>
+ <extraNames>
+ <!-- following are the name that are not taken from the standard Mac glyph order -->
+ <psName name="dollar.bold"/>
+ <psName name="acutecomb"/>
+ <psName name="dollar.BRACKET.500"/>
+ </extraNames>
+ </post>
+
+ <GDEF>
+ <Version value="0x00010000"/>
+ <GlyphClassDef>
+ <ClassDef glyph="A" class="1"/>
+ <ClassDef glyph="Aacute" class="1"/>
+ <ClassDef glyph="acutecomb" class="3"/>
+ </GlyphClassDef>
+ </GDEF>
+
+ <GPOS>
+ <Version value="0x00010000"/>
+ <ScriptList>
+ <!-- ScriptCount=1 -->
+ <ScriptRecord index="0">
+ <ScriptTag value="DFLT"/>
+ <Script>
+ <DefaultLangSys>
+ <ReqFeatureIndex value="65535"/>
+ <!-- FeatureCount=2 -->
+ <FeatureIndex index="0" value="0"/>
+ </DefaultLangSys>
+ <!-- LangSysCount=0 -->
+ </Script>
+ </ScriptRecord>
+ </ScriptList>
+ <FeatureList>
+ <!-- FeatureCount=2 -->
+ <FeatureRecord index="0">
+ <FeatureTag value="kern"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="0"/>
+ </Feature>
+ </FeatureRecord>
+ </FeatureList>
+ <LookupList>
+ <!-- LookupCount=2 -->
+ <Lookup index="0">
+ <LookupType value="2"/>
+ <LookupFlag value="8"/><!-- ignoreMarks -->
+ <!-- SubTableCount=1 -->
+ <PairPos index="0" Format="1">
+ <Coverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ <Glyph value="V"/>
+ </Coverage>
+ <ValueFormat1 value="4"/>
+ <ValueFormat2 value="0"/>
+ <!-- PairSetCount=3 -->
+ <PairSet index="0">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-120"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="1">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-120"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="2">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="O"/>
+ <Value1 XAdvance="-20"/>
+ </PairValueRecord>
+ </PairSet>
+ </PairPos>
+ </Lookup>
+ </LookupList>
+ </GPOS>
+
+</ttFont>
diff --git a/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Regular.ttx b/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Regular.ttx
new file mode 100644
index 00000000..cabb69a4
--- /dev/null
+++ b/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Regular.ttx
@@ -0,0 +1,626 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20">
+
+ <GlyphOrder>
+ <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
+ <GlyphID id="0" name=".notdef"/>
+ <GlyphID id="1" name="A"/>
+ <GlyphID id="2" name="Aacute"/>
+ <GlyphID id="3" name="O"/>
+ <GlyphID id="4" name="V"/>
+ <GlyphID id="5" name="space"/>
+ <GlyphID id="6" name="dollar"/>
+ <GlyphID id="7" name="dollar.bold"/>
+ <GlyphID id="8" name="acutecomb"/>
+ <GlyphID id="9" name="dollar.BRACKET.500"/>
+ </GlyphOrder>
+
+ <head>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="1.0"/>
+ <fontRevision value="1.0"/>
+ <checkSumAdjustment value="0x3c7bc79b"/>
+ <magicNumber value="0x5f0f3cf5"/>
+ <flags value="00000000 00000011"/>
+ <unitsPerEm value="1000"/>
+ <created value="Fri Jan 15 14:37:13 2021"/>
+ <modified value="Mon Mar 15 12:57:03 2021"/>
+ <xMin value="-141"/>
+ <yMin value="-200"/>
+ <xMax value="751"/>
+ <yMax value="915"/>
+ <macStyle value="00000000 00000000"/>
+ <lowestRecPPEM value="6"/>
+ <fontDirectionHint value="2"/>
+ <indexToLocFormat value="0"/>
+ <glyphDataFormat value="0"/>
+ </head>
+
+ <hhea>
+ <tableVersion value="0x00010000"/>
+ <ascent value="1000"/>
+ <descent value="-200"/>
+ <lineGap value="0"/>
+ <advanceWidthMax value="756"/>
+ <minLeftSideBearing value="-141"/>
+ <minRightSideBearing value="-125"/>
+ <xMaxExtent value="751"/>
+ <caretSlopeRise value="1"/>
+ <caretSlopeRun value="0"/>
+ <caretOffset value="0"/>
+ <reserved0 value="0"/>
+ <reserved1 value="0"/>
+ <reserved2 value="0"/>
+ <reserved3 value="0"/>
+ <metricDataFormat value="0"/>
+ <numberOfHMetrics value="10"/>
+ </hhea>
+
+ <maxp>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="0x10000"/>
+ <numGlyphs value="10"/>
+ <maxPoints value="52"/>
+ <maxContours value="3"/>
+ <maxCompositePoints value="16"/>
+ <maxCompositeContours value="4"/>
+ <maxZones value="1"/>
+ <maxTwilightPoints value="0"/>
+ <maxStorage value="0"/>
+ <maxFunctionDefs value="0"/>
+ <maxInstructionDefs value="0"/>
+ <maxStackElements value="0"/>
+ <maxSizeOfInstructions value="0"/>
+ <maxComponentElements value="2"/>
+ <maxComponentDepth value="1"/>
+ </maxp>
+
+ <OS_2>
+ <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
+ will be recalculated by the compiler -->
+ <version value="4"/>
+ <xAvgCharWidth value="604"/>
+ <usWeightClass value="400"/>
+ <usWidthClass value="5"/>
+ <fsType value="00000000 00001000"/>
+ <ySubscriptXSize value="650"/>
+ <ySubscriptYSize value="600"/>
+ <ySubscriptXOffset value="0"/>
+ <ySubscriptYOffset value="75"/>
+ <ySuperscriptXSize value="650"/>
+ <ySuperscriptYSize value="600"/>
+ <ySuperscriptXOffset value="0"/>
+ <ySuperscriptYOffset value="350"/>
+ <yStrikeoutSize value="50"/>
+ <yStrikeoutPosition value="300"/>
+ <sFamilyClass value="0"/>
+ <panose>
+ <bFamilyType value="0"/>
+ <bSerifStyle value="0"/>
+ <bWeight value="0"/>
+ <bProportion value="0"/>
+ <bContrast value="0"/>
+ <bStrokeVariation value="0"/>
+ <bArmStyle value="0"/>
+ <bLetterForm value="0"/>
+ <bMidline value="0"/>
+ <bXHeight value="0"/>
+ </panose>
+ <ulUnicodeRange1 value="00000000 00000000 00000000 01000011"/>
+ <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
+ <achVendID value="NONE"/>
+ <fsSelection value="00000000 01000000"/>
+ <usFirstCharIndex value="32"/>
+ <usLastCharIndex value="769"/>
+ <sTypoAscender value="800"/>
+ <sTypoDescender value="-200"/>
+ <sTypoLineGap value="200"/>
+ <usWinAscent value="1000"/>
+ <usWinDescent value="200"/>
+ <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
+ <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
+ <sxHeight value="500"/>
+ <sCapHeight value="700"/>
+ <usDefaultChar value="0"/>
+ <usBreakChar value="32"/>
+ <usMaxContext value="2"/>
+ </OS_2>
+
+ <hmtx>
+ <mtx name=".notdef" width="500" lsb="50"/>
+ <mtx name="A" width="756" lsb="5"/>
+ <mtx name="Aacute" width="756" lsb="5"/>
+ <mtx name="O" width="664" lsb="30"/>
+ <mtx name="V" width="756" lsb="5"/>
+ <mtx name="acutecomb" width="0" lsb="-141"/>
+ <mtx name="dollar" width="600" lsb="29"/>
+ <mtx name="dollar.BRACKET.500" width="600" lsb="29"/>
+ <mtx name="dollar.bold" width="600" lsb="29"/>
+ <mtx name="space" width="200" lsb="0"/>
+ </hmtx>
+
+ <cmap>
+ <tableVersion version="0"/>
+ <cmap_format_4 platformID="0" platEncID="3" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ <cmap_format_4 platformID="3" platEncID="1" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ </cmap>
+
+ <loca>
+ <!-- The 'loca' table will be calculated by the compiler -->
+ </loca>
+
+ <glyf>
+
+ <!-- The xMin, yMin, xMax and yMax values
+ will be recalculated by the compiler. -->
+
+ <TTGlyph name=".notdef" xMin="50" yMin="-200" xMax="450" yMax="800">
+ <contour>
+ <pt x="50" y="-200" on="1"/>
+ <pt x="50" y="800" on="1"/>
+ <pt x="450" y="800" on="1"/>
+ <pt x="450" y="-200" on="1"/>
+ </contour>
+ <contour>
+ <pt x="100" y="-150" on="1"/>
+ <pt x="400" y="-150" on="1"/>
+ <pt x="400" y="750" on="1"/>
+ <pt x="100" y="750" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="A" xMin="5" yMin="0" xMax="751" yMax="700">
+ <contour>
+ <pt x="641" y="0" on="1"/>
+ <pt x="751" y="0" on="1"/>
+ <pt x="433" y="700" on="1"/>
+ <pt x="323" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="5" y="0" on="1"/>
+ <pt x="115" y="0" on="1"/>
+ <pt x="433" y="700" on="1"/>
+ <pt x="323" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="567" y="284" on="1"/>
+ <pt x="152" y="284" on="1"/>
+ <pt x="152" y="204" on="1"/>
+ <pt x="567" y="204" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="751" yMax="915">
+ <component glyphName="A" x="0" y="0" flags="0x204"/>
+ <component glyphName="acutecomb" x="402" y="130" flags="0x4"/>
+ </TTGlyph>
+
+ <TTGlyph name="O" xMin="30" yMin="-10" xMax="634" yMax="710">
+ <contour>
+ <pt x="332" y="-10" on="1"/>
+ <pt x="181" y="-10" on="0"/>
+ <pt x="30" y="169" on="0"/>
+ <pt x="30" y="350" on="1"/>
+ <pt x="30" y="531" on="0"/>
+ <pt x="181" y="710" on="0"/>
+ <pt x="332" y="710" on="1"/>
+ <pt x="484" y="710" on="0"/>
+ <pt x="634" y="531" on="0"/>
+ <pt x="634" y="350" on="1"/>
+ <pt x="634" y="169" on="0"/>
+ <pt x="484" y="-10" on="0"/>
+ </contour>
+ <contour>
+ <pt x="332" y="74" on="1"/>
+ <pt x="438" y="74" on="0"/>
+ <pt x="544" y="212" on="0"/>
+ <pt x="544" y="350" on="1"/>
+ <pt x="544" y="488" on="0"/>
+ <pt x="438" y="626" on="0"/>
+ <pt x="332" y="626" on="1"/>
+ <pt x="226" y="626" on="0"/>
+ <pt x="120" y="488" on="0"/>
+ <pt x="120" y="350" on="1"/>
+ <pt x="120" y="212" on="0"/>
+ <pt x="226" y="74" on="0"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="V" xMin="5" yMin="0" xMax="751" yMax="700">
+ <contour>
+ <pt x="323" y="0" on="1"/>
+ <pt x="641" y="700" on="1"/>
+ <pt x="751" y="700" on="1"/>
+ <pt x="433" y="0" on="1"/>
+ </contour>
+ <contour>
+ <pt x="323" y="0" on="1"/>
+ <pt x="5" y="700" on="1"/>
+ <pt x="115" y="700" on="1"/>
+ <pt x="433" y="0" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="785">
+ <contour>
+ <pt x="-118" y="716" on="1"/>
+ <pt x="-141" y="630" on="1"/>
+ <pt x="102" y="699" on="1"/>
+ <pt x="125" y="785" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar" xMin="29" yMin="-68" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="473" y="584" on="0"/>
+ <pt x="398" y="621" on="0"/>
+ <pt x="354" y="627" on="1"/>
+ <pt x="354" y="373" on="1"/>
+ <pt x="467" y="351" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-68" on="1"/>
+ <pt x="264" y="-68" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="123" y="110" on="0"/>
+ <pt x="207" y="73" on="0"/>
+ <pt x="264" y="69" on="1"/>
+ <pt x="264" y="301" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <contour>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="264" y="627" on="1"/>
+ <pt x="203" y="618" on="0"/>
+ <pt x="137" y="553" on="0"/>
+ </contour>
+ <contour>
+ <pt x="354" y="69" on="1"/>
+ <pt x="423" y="76" on="0"/>
+ <pt x="486" y="135" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="211" on="0"/>
+ <pt x="462" y="250" on="0"/>
+ <pt x="405" y="275" on="0"/>
+ <pt x="354" y="285" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.BRACKET.500" xMin="29" yMin="-76" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="464" y="592" on="0"/>
+ <pt x="370" y="630" on="0"/>
+ <pt x="308" y="630" on="1"/>
+ <pt x="226" y="630" on="0"/>
+ <pt x="137" y="562" on="0"/>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="360" y="372" on="1"/>
+ <pt x="469" y="350" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-76" on="1"/>
+ <pt x="264" y="-76" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="115" y="118" on="0"/>
+ <pt x="180" y="83" on="0"/>
+ <pt x="259" y="67" on="0"/>
+ <pt x="310" y="67" on="1"/>
+ <pt x="403" y="67" on="0"/>
+ <pt x="486" y="128" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="212" on="0"/>
+ <pt x="461" y="251" on="0"/>
+ <pt x="401" y="277" on="0"/>
+ <pt x="348" y="286" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.bold" xMin="29" yMin="-76" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="464" y="592" on="0"/>
+ <pt x="370" y="630" on="0"/>
+ <pt x="308" y="630" on="1"/>
+ <pt x="226" y="630" on="0"/>
+ <pt x="137" y="562" on="0"/>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="360" y="372" on="1"/>
+ <pt x="469" y="350" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-76" on="1"/>
+ <pt x="264" y="-76" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="115" y="118" on="0"/>
+ <pt x="180" y="83" on="0"/>
+ <pt x="259" y="67" on="0"/>
+ <pt x="310" y="67" on="1"/>
+ <pt x="403" y="67" on="0"/>
+ <pt x="486" y="128" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="212" on="0"/>
+ <pt x="461" y="251" on="0"/>
+ <pt x="401" y="277" on="0"/>
+ <pt x="348" y="286" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="space"/><!-- contains no outline data -->
+
+ </glyf>
+
+ <name>
+ <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis
+ </namerecord>
+ <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
+ Regular
+ </namerecord>
+ <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
+ 1.000;NONE;SimpleTwoAxis-Regular
+ </namerecord>
+ <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis Regular
+ </namerecord>
+ <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
+ Version 1.000
+ </namerecord>
+ <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
+ SimpleTwoAxis-Regular
+ </namerecord>
+ </name>
+
+ <post>
+ <formatType value="2.0"/>
+ <italicAngle value="0.0"/>
+ <underlinePosition value="-100"/>
+ <underlineThickness value="50"/>
+ <isFixedPitch value="0"/>
+ <minMemType42 value="0"/>
+ <maxMemType42 value="0"/>
+ <minMemType1 value="0"/>
+ <maxMemType1 value="0"/>
+ <psNames>
+ <!-- This file uses unique glyph names based on the information
+ found in the 'post' table. Since these names might not be unique,
+ we have to invent artificial names in case of clashes. In order to
+ be able to retain the original information, we need a name to
+ ps name mapping for those cases where they differ. That's what
+ you see below.
+ -->
+ </psNames>
+ <extraNames>
+ <!-- following are the name that are not taken from the standard Mac glyph order -->
+ <psName name="dollar.bold"/>
+ <psName name="acutecomb"/>
+ <psName name="dollar.BRACKET.500"/>
+ </extraNames>
+ </post>
+
+ <GDEF>
+ <Version value="0x00010000"/>
+ <GlyphClassDef>
+ <ClassDef glyph="A" class="1"/>
+ <ClassDef glyph="Aacute" class="1"/>
+ <ClassDef glyph="acutecomb" class="3"/>
+ </GlyphClassDef>
+ </GDEF>
+
+ <GPOS>
+ <Version value="0x00010000"/>
+ <ScriptList>
+ <!-- ScriptCount=1 -->
+ <ScriptRecord index="0">
+ <ScriptTag value="DFLT"/>
+ <Script>
+ <DefaultLangSys>
+ <ReqFeatureIndex value="65535"/>
+ <!-- FeatureCount=2 -->
+ <FeatureIndex index="0" value="0"/>
+ <FeatureIndex index="1" value="1"/>
+ </DefaultLangSys>
+ <!-- LangSysCount=0 -->
+ </Script>
+ </ScriptRecord>
+ </ScriptList>
+ <FeatureList>
+ <!-- FeatureCount=2 -->
+ <FeatureRecord index="0">
+ <FeatureTag value="kern"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="0"/>
+ </Feature>
+ </FeatureRecord>
+ <FeatureRecord index="1">
+ <FeatureTag value="mark"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="1"/>
+ </Feature>
+ </FeatureRecord>
+ </FeatureList>
+ <LookupList>
+ <!-- LookupCount=2 -->
+ <Lookup index="0">
+ <LookupType value="2"/>
+ <LookupFlag value="8"/><!-- ignoreMarks -->
+ <!-- SubTableCount=1 -->
+ <PairPos index="0" Format="1">
+ <Coverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ <Glyph value="V"/>
+ </Coverage>
+ <ValueFormat1 value="4"/>
+ <ValueFormat2 value="0"/>
+ <!-- PairSetCount=3 -->
+ <PairSet index="0">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="1">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="2">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="O"/>
+ <Value1 XAdvance="-20"/>
+ </PairValueRecord>
+ </PairSet>
+ </PairPos>
+ </Lookup>
+ <Lookup index="1">
+ <LookupType value="4"/>
+ <LookupFlag value="0"/>
+ <!-- SubTableCount=1 -->
+ <MarkBasePos index="0" Format="1">
+ <MarkCoverage>
+ <Glyph value="acutecomb"/>
+ </MarkCoverage>
+ <BaseCoverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ </BaseCoverage>
+ <!-- ClassCount=1 -->
+ <MarkArray>
+ <!-- MarkCount=1 -->
+ <MarkRecord index="0">
+ <Class value="0"/>
+ <MarkAnchor Format="1">
+ <XCoordinate value="4"/>
+ <YCoordinate value="623"/>
+ </MarkAnchor>
+ </MarkRecord>
+ </MarkArray>
+ <BaseArray>
+ <!-- BaseCount=2 -->
+ <BaseRecord index="0">
+ <BaseAnchor index="0" Format="1">
+ <XCoordinate value="406"/>
+ <YCoordinate value="753"/>
+ </BaseAnchor>
+ </BaseRecord>
+ <BaseRecord index="1">
+ <BaseAnchor index="0" Format="1">
+ <XCoordinate value="406"/>
+ <YCoordinate value="753"/>
+ </BaseAnchor>
+ </BaseRecord>
+ </BaseArray>
+ </MarkBasePos>
+ </Lookup>
+ </LookupList>
+ </GPOS>
+
+</ttFont>
diff --git a/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx b/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx
new file mode 100644
index 00000000..6a282237
--- /dev/null
+++ b/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx
@@ -0,0 +1,622 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20">
+
+ <GlyphOrder>
+ <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
+ <GlyphID id="0" name=".notdef"/>
+ <GlyphID id="1" name="A"/>
+ <GlyphID id="2" name="Aacute"/>
+ <GlyphID id="3" name="O"/>
+ <GlyphID id="4" name="V"/>
+ <GlyphID id="5" name="space"/>
+ <GlyphID id="6" name="dollar"/>
+ <GlyphID id="7" name="dollar.bold"/>
+ <GlyphID id="8" name="acutecomb"/>
+ <GlyphID id="9" name="dollar.BRACKET.500"/>
+ </GlyphOrder>
+
+ <head>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="1.0"/>
+ <fontRevision value="1.0"/>
+ <checkSumAdjustment value="0x10cb3f3"/>
+ <magicNumber value="0x5f0f3cf5"/>
+ <flags value="00000000 00000011"/>
+ <unitsPerEm value="1000"/>
+ <created value="Fri Jan 15 14:37:13 2021"/>
+ <modified value="Mon Mar 15 12:57:03 2021"/>
+ <xMin value="-141"/>
+ <yMin value="-200"/>
+ <xMax value="906"/>
+ <yMax value="949"/>
+ <macStyle value="00000000 00000001"/>
+ <lowestRecPPEM value="6"/>
+ <fontDirectionHint value="2"/>
+ <indexToLocFormat value="0"/>
+ <glyphDataFormat value="0"/>
+ </head>
+
+ <hhea>
+ <tableVersion value="0x00010000"/>
+ <ascent value="1000"/>
+ <descent value="-200"/>
+ <lineGap value="0"/>
+ <advanceWidthMax value="911"/>
+ <minLeftSideBearing value="-141"/>
+ <minRightSideBearing value="-125"/>
+ <xMaxExtent value="906"/>
+ <caretSlopeRise value="1"/>
+ <caretSlopeRun value="0"/>
+ <caretOffset value="0"/>
+ <reserved0 value="0"/>
+ <reserved1 value="0"/>
+ <reserved2 value="0"/>
+ <reserved3 value="0"/>
+ <metricDataFormat value="0"/>
+ <numberOfHMetrics value="10"/>
+ </hhea>
+
+ <maxp>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="0x10000"/>
+ <numGlyphs value="10"/>
+ <maxPoints value="52"/>
+ <maxContours value="3"/>
+ <maxCompositePoints value="16"/>
+ <maxCompositeContours value="4"/>
+ <maxZones value="1"/>
+ <maxTwilightPoints value="0"/>
+ <maxStorage value="0"/>
+ <maxFunctionDefs value="0"/>
+ <maxInstructionDefs value="0"/>
+ <maxStackElements value="0"/>
+ <maxSizeOfInstructions value="0"/>
+ <maxComponentElements value="2"/>
+ <maxComponentDepth value="1"/>
+ </maxp>
+
+ <OS_2>
+ <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
+ will be recalculated by the compiler -->
+ <version value="4"/>
+ <xAvgCharWidth value="672"/>
+ <usWeightClass value="400"/>
+ <usWidthClass value="5"/>
+ <fsType value="00000000 00001000"/>
+ <ySubscriptXSize value="650"/>
+ <ySubscriptYSize value="600"/>
+ <ySubscriptXOffset value="0"/>
+ <ySubscriptYOffset value="75"/>
+ <ySuperscriptXSize value="650"/>
+ <ySuperscriptYSize value="600"/>
+ <ySuperscriptXOffset value="0"/>
+ <ySuperscriptYOffset value="350"/>
+ <yStrikeoutSize value="50"/>
+ <yStrikeoutPosition value="300"/>
+ <sFamilyClass value="0"/>
+ <panose>
+ <bFamilyType value="0"/>
+ <bSerifStyle value="0"/>
+ <bWeight value="0"/>
+ <bProportion value="0"/>
+ <bContrast value="0"/>
+ <bStrokeVariation value="0"/>
+ <bArmStyle value="0"/>
+ <bLetterForm value="0"/>
+ <bMidline value="0"/>
+ <bXHeight value="0"/>
+ </panose>
+ <ulUnicodeRange1 value="00000000 00000000 00000000 01000011"/>
+ <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
+ <achVendID value="NONE"/>
+ <fsSelection value="00000000 00100000"/>
+ <usFirstCharIndex value="32"/>
+ <usLastCharIndex value="769"/>
+ <sTypoAscender value="800"/>
+ <sTypoDescender value="-200"/>
+ <sTypoLineGap value="200"/>
+ <usWinAscent value="1000"/>
+ <usWinDescent value="200"/>
+ <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
+ <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
+ <sxHeight value="500"/>
+ <sCapHeight value="700"/>
+ <usDefaultChar value="0"/>
+ <usBreakChar value="32"/>
+ <usMaxContext value="2"/>
+ </OS_2>
+
+ <hmtx>
+ <mtx name=".notdef" width="500" lsb="50"/>
+ <mtx name="A" width="911" lsb="5"/>
+ <mtx name="Aacute" width="911" lsb="5"/>
+ <mtx name="O" width="715" lsb="15"/>
+ <mtx name="V" width="911" lsb="5"/>
+ <mtx name="acutecomb" width="0" lsb="-141"/>
+ <mtx name="dollar" width="600" lsb="1"/>
+ <mtx name="dollar.BRACKET.500" width="600" lsb="1"/>
+ <mtx name="dollar.bold" width="600" lsb="1"/>
+ <mtx name="space" width="300" lsb="0"/>
+ </hmtx>
+
+ <cmap>
+ <tableVersion version="0"/>
+ <cmap_format_4 platformID="0" platEncID="3" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ <cmap_format_4 platformID="3" platEncID="1" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ </cmap>
+
+ <loca>
+ <!-- The 'loca' table will be calculated by the compiler -->
+ </loca>
+
+ <glyf>
+
+ <!-- The xMin, yMin, xMax and yMax values
+ will be recalculated by the compiler. -->
+
+ <TTGlyph name=".notdef" xMin="50" yMin="-200" xMax="450" yMax="800">
+ <contour>
+ <pt x="50" y="-200" on="1"/>
+ <pt x="50" y="800" on="1"/>
+ <pt x="450" y="800" on="1"/>
+ <pt x="450" y="-200" on="1"/>
+ </contour>
+ <contour>
+ <pt x="100" y="-150" on="1"/>
+ <pt x="400" y="-150" on="1"/>
+ <pt x="400" y="750" on="1"/>
+ <pt x="100" y="750" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="A" xMin="5" yMin="0" xMax="906" yMax="700">
+ <contour>
+ <pt x="705" y="0" on="1"/>
+ <pt x="906" y="0" on="1"/>
+ <pt x="556" y="700" on="1"/>
+ <pt x="355" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="5" y="0" on="1"/>
+ <pt x="206" y="0" on="1"/>
+ <pt x="556" y="700" on="1"/>
+ <pt x="355" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="640" y="311" on="1"/>
+ <pt x="190" y="311" on="1"/>
+ <pt x="190" y="191" on="1"/>
+ <pt x="640" y="191" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="906" yMax="949">
+ <component glyphName="A" x="0" y="0" flags="0x204"/>
+ <component glyphName="acutecomb" x="479" y="124" flags="0x4"/>
+ </TTGlyph>
+
+ <TTGlyph name="O" xMin="15" yMin="-10" xMax="670" yMax="710">
+ <contour>
+ <pt x="342" y="-10" on="1"/>
+ <pt x="172" y="-10" on="0"/>
+ <pt x="15" y="163" on="0"/>
+ <pt x="15" y="350" on="1"/>
+ <pt x="15" y="538" on="0"/>
+ <pt x="172" y="710" on="0"/>
+ <pt x="342" y="710" on="1"/>
+ <pt x="513" y="710" on="0"/>
+ <pt x="670" y="538" on="0"/>
+ <pt x="670" y="350" on="1"/>
+ <pt x="670" y="163" on="0"/>
+ <pt x="513" y="-10" on="0"/>
+ </contour>
+ <contour>
+ <pt x="342" y="153" on="1"/>
+ <pt x="419" y="153" on="0"/>
+ <pt x="490" y="247" on="0"/>
+ <pt x="490" y="350" on="1"/>
+ <pt x="490" y="453" on="0"/>
+ <pt x="419" y="547" on="0"/>
+ <pt x="342" y="547" on="1"/>
+ <pt x="266" y="547" on="0"/>
+ <pt x="195" y="453" on="0"/>
+ <pt x="195" y="350" on="1"/>
+ <pt x="195" y="247" on="0"/>
+ <pt x="266" y="153" on="0"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="V" xMin="5" yMin="0" xMax="906" yMax="700">
+ <contour>
+ <pt x="355" y="0" on="1"/>
+ <pt x="705" y="700" on="1"/>
+ <pt x="906" y="700" on="1"/>
+ <pt x="556" y="0" on="1"/>
+ </contour>
+ <contour>
+ <pt x="355" y="0" on="1"/>
+ <pt x="5" y="700" on="1"/>
+ <pt x="206" y="700" on="1"/>
+ <pt x="556" y="0" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="825">
+ <contour>
+ <pt x="-118" y="756" on="1"/>
+ <pt x="-141" y="630" on="1"/>
+ <pt x="102" y="699" on="1"/>
+ <pt x="125" y="825" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="479" y="549" on="0"/>
+ <pt x="411" y="588" on="0"/>
+ <pt x="369" y="595" on="1"/>
+ <pt x="369" y="400" on="1"/>
+ <pt x="476" y="378" on="0"/>
+ <pt x="595" y="278" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="118" y="144" on="0"/>
+ <pt x="195" y="106" on="0"/>
+ <pt x="249" y="100" on="1"/>
+ <pt x="249" y="273" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="294" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <contour>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="480" on="0"/>
+ <pt x="166" y="453" on="0"/>
+ <pt x="208" y="434" on="0"/>
+ <pt x="249" y="424" on="1"/>
+ <pt x="249" y="595" on="1"/>
+ <pt x="199" y="587" on="0"/>
+ <pt x="152" y="538" on="0"/>
+ </contour>
+ <contour>
+ <pt x="369" y="100" on="1"/>
+ <pt x="426" y="107" on="0"/>
+ <pt x="471" y="150" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="201" on="0"/>
+ <pt x="456" y="225" on="0"/>
+ <pt x="412" y="243" on="0"/>
+ <pt x="369" y="252" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.BRACKET.500" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="468" y="560" on="0"/>
+ <pt x="374" y="600" on="0"/>
+ <pt x="308" y="600" on="1"/>
+ <pt x="227" y="600" on="0"/>
+ <pt x="152" y="548" on="0"/>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="479" on="0"/>
+ <pt x="168" y="450" on="0"/>
+ <pt x="217" y="431" on="0"/>
+ <pt x="264" y="421" on="1"/>
+ <pt x="363" y="401" on="1"/>
+ <pt x="473" y="379" on="0"/>
+ <pt x="595" y="279" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="112" y="150" on="0"/>
+ <pt x="176" y="114" on="0"/>
+ <pt x="256" y="97" on="0"/>
+ <pt x="310" y="97" on="1"/>
+ <pt x="402" y="97" on="0"/>
+ <pt x="471" y="143" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="203" on="0"/>
+ <pt x="453" y="228" on="0"/>
+ <pt x="399" y="247" on="0"/>
+ <pt x="345" y="256" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="293" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.bold" xMin="1" yMin="-98" xMax="595" yMax="789">
+ <contour>
+ <pt x="249" y="789" on="1"/>
+ <pt x="369" y="789" on="1"/>
+ <pt x="369" y="743" on="1"/>
+ <pt x="427" y="735" on="0"/>
+ <pt x="537" y="681" on="0"/>
+ <pt x="590" y="623" on="1"/>
+ <pt x="510" y="515" on="1"/>
+ <pt x="468" y="560" on="0"/>
+ <pt x="374" y="600" on="0"/>
+ <pt x="308" y="600" on="1"/>
+ <pt x="227" y="600" on="0"/>
+ <pt x="152" y="548" on="0"/>
+ <pt x="152" y="502" on="1"/>
+ <pt x="152" y="479" on="0"/>
+ <pt x="168" y="450" on="0"/>
+ <pt x="217" y="431" on="0"/>
+ <pt x="264" y="421" on="1"/>
+ <pt x="363" y="401" on="1"/>
+ <pt x="473" y="379" on="0"/>
+ <pt x="595" y="279" on="0"/>
+ <pt x="595" y="184" on="1"/>
+ <pt x="595" y="93" on="0"/>
+ <pt x="474" y="-32" on="0"/>
+ <pt x="369" y="-46" on="1"/>
+ <pt x="369" y="-98" on="1"/>
+ <pt x="249" y="-98" on="1"/>
+ <pt x="249" y="-47" on="1"/>
+ <pt x="176" y="-39" on="0"/>
+ <pt x="52" y="17" on="0"/>
+ <pt x="1" y="69" on="1"/>
+ <pt x="80" y="179" on="1"/>
+ <pt x="112" y="150" on="0"/>
+ <pt x="176" y="114" on="0"/>
+ <pt x="256" y="97" on="0"/>
+ <pt x="310" y="97" on="1"/>
+ <pt x="402" y="97" on="0"/>
+ <pt x="471" y="143" on="0"/>
+ <pt x="471" y="183" on="1"/>
+ <pt x="471" y="203" on="0"/>
+ <pt x="453" y="228" on="0"/>
+ <pt x="399" y="247" on="0"/>
+ <pt x="345" y="256" on="1"/>
+ <pt x="246" y="274" on="1"/>
+ <pt x="144" y="293" on="0"/>
+ <pt x="28" y="405" on="0"/>
+ <pt x="28" y="502" on="1"/>
+ <pt x="28" y="567" on="0"/>
+ <pt x="84" y="667" on="0"/>
+ <pt x="184" y="732" on="0"/>
+ <pt x="249" y="742" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="space"/><!-- contains no outline data -->
+
+ </glyf>
+
+ <name>
+ <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis
+ </namerecord>
+ <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
+ Bold
+ </namerecord>
+ <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
+ 1.000;NONE;SimpleTwoAxis-Bold
+ </namerecord>
+ <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis Bold
+ </namerecord>
+ <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
+ Version 1.000
+ </namerecord>
+ <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
+ SimpleTwoAxis-Bold
+ </namerecord>
+ </name>
+
+ <post>
+ <formatType value="2.0"/>
+ <italicAngle value="0.0"/>
+ <underlinePosition value="-100"/>
+ <underlineThickness value="50"/>
+ <isFixedPitch value="0"/>
+ <minMemType42 value="0"/>
+ <maxMemType42 value="0"/>
+ <minMemType1 value="0"/>
+ <maxMemType1 value="0"/>
+ <psNames>
+ <!-- This file uses unique glyph names based on the information
+ found in the 'post' table. Since these names might not be unique,
+ we have to invent artificial names in case of clashes. In order to
+ be able to retain the original information, we need a name to
+ ps name mapping for those cases where they differ. That's what
+ you see below.
+ -->
+ </psNames>
+ <extraNames>
+ <!-- following are the name that are not taken from the standard Mac glyph order -->
+ <psName name="dollar.bold"/>
+ <psName name="acutecomb"/>
+ <psName name="dollar.BRACKET.500"/>
+ </extraNames>
+ </post>
+
+ <GDEF>
+ <Version value="0x00010000"/>
+ <GlyphClassDef>
+ <ClassDef glyph="A" class="1"/>
+ <ClassDef glyph="Aacute" class="1"/>
+ <ClassDef glyph="acutecomb" class="3"/>
+ </GlyphClassDef>
+ </GDEF>
+
+ <GPOS>
+ <Version value="0x00010000"/>
+ <ScriptList>
+ <!-- ScriptCount=1 -->
+ <ScriptRecord index="0">
+ <ScriptTag value="DFLT"/>
+ <Script>
+ <DefaultLangSys>
+ <ReqFeatureIndex value="65535"/>
+ <!-- FeatureCount=2 -->
+ <FeatureIndex index="0" value="0"/>
+ <FeatureIndex index="1" value="1"/>
+ </DefaultLangSys>
+ <!-- LangSysCount=0 -->
+ </Script>
+ </ScriptRecord>
+ </ScriptList>
+ <FeatureList>
+ <!-- FeatureCount=2 -->
+ <FeatureRecord index="0">
+ <FeatureTag value="kern"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="0"/>
+ </Feature>
+ </FeatureRecord>
+ <FeatureRecord index="1">
+ <FeatureTag value="mark"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="1"/>
+ </Feature>
+ </FeatureRecord>
+ </FeatureList>
+ <LookupList>
+ <!-- LookupCount=2 -->
+ <Lookup index="0">
+ <LookupType value="2"/>
+ <LookupFlag value="8"/><!-- ignoreMarks -->
+ <!-- SubTableCount=1 -->
+ <PairPos index="0" Format="1">
+ <Coverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ <Glyph value="V"/>
+ </Coverage>
+ <ValueFormat1 value="4"/>
+ <ValueFormat2 value="0"/>
+ <!-- PairSetCount=3 -->
+ <PairSet index="0">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="1">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="2">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="O"/>
+ <Value1 XAdvance="-20"/>
+ </PairValueRecord>
+ </PairSet>
+ </PairPos>
+ </Lookup>
+ <Lookup index="1">
+ <LookupType value="4"/>
+ <LookupFlag value="0"/>
+ <!-- SubTableCount=1 -->
+ <PairPos index="0" Format="1">
+ <Coverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ <Glyph value="V"/>
+ </Coverage>
+ <ValueFormat1 value="4"/>
+ <ValueFormat2 value="0"/>
+ <!-- PairSetCount=3 -->
+ <PairSet index="0">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="1">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="2">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="O"/>
+ <Value1 XAdvance="-20"/>
+ </PairValueRecord>
+ </PairSet>
+ </PairPos>
+ </Lookup>
+ </LookupList>
+ </GPOS>
+
+</ttFont>
diff --git a/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx b/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx
new file mode 100644
index 00000000..dc6eb17c
--- /dev/null
+++ b/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx
@@ -0,0 +1,626 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20">
+
+ <GlyphOrder>
+ <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
+ <GlyphID id="0" name=".notdef"/>
+ <GlyphID id="1" name="A"/>
+ <GlyphID id="2" name="Aacute"/>
+ <GlyphID id="3" name="O"/>
+ <GlyphID id="4" name="V"/>
+ <GlyphID id="5" name="space"/>
+ <GlyphID id="6" name="dollar"/>
+ <GlyphID id="7" name="dollar.bold"/>
+ <GlyphID id="8" name="acutecomb"/>
+ <GlyphID id="9" name="dollar.BRACKET.500"/>
+ </GlyphOrder>
+
+ <head>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="1.0"/>
+ <fontRevision value="1.0"/>
+ <checkSumAdjustment value="0x3c7bc79b"/>
+ <magicNumber value="0x5f0f3cf5"/>
+ <flags value="00000000 00000011"/>
+ <unitsPerEm value="1000"/>
+ <created value="Fri Jan 15 14:37:13 2021"/>
+ <modified value="Mon Mar 15 12:57:03 2021"/>
+ <xMin value="-141"/>
+ <yMin value="-200"/>
+ <xMax value="751"/>
+ <yMax value="915"/>
+ <macStyle value="00000000 00000000"/>
+ <lowestRecPPEM value="6"/>
+ <fontDirectionHint value="2"/>
+ <indexToLocFormat value="0"/>
+ <glyphDataFormat value="0"/>
+ </head>
+
+ <hhea>
+ <tableVersion value="0x00010000"/>
+ <ascent value="1000"/>
+ <descent value="-200"/>
+ <lineGap value="0"/>
+ <advanceWidthMax value="756"/>
+ <minLeftSideBearing value="-141"/>
+ <minRightSideBearing value="-125"/>
+ <xMaxExtent value="751"/>
+ <caretSlopeRise value="1"/>
+ <caretSlopeRun value="0"/>
+ <caretOffset value="0"/>
+ <reserved0 value="0"/>
+ <reserved1 value="0"/>
+ <reserved2 value="0"/>
+ <reserved3 value="0"/>
+ <metricDataFormat value="0"/>
+ <numberOfHMetrics value="10"/>
+ </hhea>
+
+ <maxp>
+ <!-- Most of this table will be recalculated by the compiler -->
+ <tableVersion value="0x10000"/>
+ <numGlyphs value="10"/>
+ <maxPoints value="52"/>
+ <maxContours value="3"/>
+ <maxCompositePoints value="16"/>
+ <maxCompositeContours value="4"/>
+ <maxZones value="1"/>
+ <maxTwilightPoints value="0"/>
+ <maxStorage value="0"/>
+ <maxFunctionDefs value="0"/>
+ <maxInstructionDefs value="0"/>
+ <maxStackElements value="0"/>
+ <maxSizeOfInstructions value="0"/>
+ <maxComponentElements value="2"/>
+ <maxComponentDepth value="1"/>
+ </maxp>
+
+ <OS_2>
+ <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
+ will be recalculated by the compiler -->
+ <version value="4"/>
+ <xAvgCharWidth value="604"/>
+ <usWeightClass value="400"/>
+ <usWidthClass value="5"/>
+ <fsType value="00000000 00001000"/>
+ <ySubscriptXSize value="650"/>
+ <ySubscriptYSize value="600"/>
+ <ySubscriptXOffset value="0"/>
+ <ySubscriptYOffset value="75"/>
+ <ySuperscriptXSize value="650"/>
+ <ySuperscriptYSize value="600"/>
+ <ySuperscriptXOffset value="0"/>
+ <ySuperscriptYOffset value="350"/>
+ <yStrikeoutSize value="50"/>
+ <yStrikeoutPosition value="300"/>
+ <sFamilyClass value="0"/>
+ <panose>
+ <bFamilyType value="0"/>
+ <bSerifStyle value="0"/>
+ <bWeight value="0"/>
+ <bProportion value="0"/>
+ <bContrast value="0"/>
+ <bStrokeVariation value="0"/>
+ <bArmStyle value="0"/>
+ <bLetterForm value="0"/>
+ <bMidline value="0"/>
+ <bXHeight value="0"/>
+ </panose>
+ <ulUnicodeRange1 value="00000000 00000000 00000000 01000011"/>
+ <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
+ <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
+ <achVendID value="NONE"/>
+ <fsSelection value="00000000 01000000"/>
+ <usFirstCharIndex value="32"/>
+ <usLastCharIndex value="769"/>
+ <sTypoAscender value="800"/>
+ <sTypoDescender value="-200"/>
+ <sTypoLineGap value="200"/>
+ <usWinAscent value="1000"/>
+ <usWinDescent value="200"/>
+ <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
+ <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
+ <sxHeight value="500"/>
+ <sCapHeight value="700"/>
+ <usDefaultChar value="0"/>
+ <usBreakChar value="32"/>
+ <usMaxContext value="2"/>
+ </OS_2>
+
+ <hmtx>
+ <mtx name=".notdef" width="500" lsb="50"/>
+ <mtx name="A" width="756" lsb="5"/>
+ <mtx name="Aacute" width="756" lsb="5"/>
+ <mtx name="O" width="664" lsb="30"/>
+ <mtx name="V" width="756" lsb="5"/>
+ <mtx name="acutecomb" width="0" lsb="-141"/>
+ <mtx name="dollar" width="600" lsb="29"/>
+ <mtx name="dollar.BRACKET.500" width="600" lsb="29"/>
+ <mtx name="dollar.bold" width="600" lsb="29"/>
+ <mtx name="space" width="200" lsb="0"/>
+ </hmtx>
+
+ <cmap>
+ <tableVersion version="0"/>
+ <cmap_format_4 platformID="0" platEncID="3" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ <cmap_format_4 platformID="3" platEncID="1" language="0">
+ <map code="0x20" name="space"/><!-- SPACE -->
+ <map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
+ <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
+ <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
+ <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V -->
+ <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+ <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT -->
+ </cmap_format_4>
+ </cmap>
+
+ <loca>
+ <!-- The 'loca' table will be calculated by the compiler -->
+ </loca>
+
+ <glyf>
+
+ <!-- The xMin, yMin, xMax and yMax values
+ will be recalculated by the compiler. -->
+
+ <TTGlyph name=".notdef" xMin="50" yMin="-200" xMax="450" yMax="800">
+ <contour>
+ <pt x="50" y="-200" on="1"/>
+ <pt x="50" y="800" on="1"/>
+ <pt x="450" y="800" on="1"/>
+ <pt x="450" y="-200" on="1"/>
+ </contour>
+ <contour>
+ <pt x="100" y="-150" on="1"/>
+ <pt x="400" y="-150" on="1"/>
+ <pt x="400" y="750" on="1"/>
+ <pt x="100" y="750" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="A" xMin="5" yMin="0" xMax="751" yMax="700">
+ <contour>
+ <pt x="641" y="0" on="1"/>
+ <pt x="751" y="0" on="1"/>
+ <pt x="433" y="700" on="1"/>
+ <pt x="323" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="5" y="0" on="1"/>
+ <pt x="115" y="0" on="1"/>
+ <pt x="433" y="700" on="1"/>
+ <pt x="323" y="700" on="1"/>
+ </contour>
+ <contour>
+ <pt x="567" y="284" on="1"/>
+ <pt x="152" y="284" on="1"/>
+ <pt x="152" y="204" on="1"/>
+ <pt x="567" y="204" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="751" yMax="915">
+ <component glyphName="A" x="0" y="0" flags="0x204"/>
+ <component glyphName="acutecomb" x="402" y="130" flags="0x4"/>
+ </TTGlyph>
+
+ <TTGlyph name="O" xMin="30" yMin="-10" xMax="634" yMax="710">
+ <contour>
+ <pt x="332" y="-10" on="1"/>
+ <pt x="181" y="-10" on="0"/>
+ <pt x="30" y="169" on="0"/>
+ <pt x="30" y="350" on="1"/>
+ <pt x="30" y="531" on="0"/>
+ <pt x="181" y="710" on="0"/>
+ <pt x="332" y="710" on="1"/>
+ <pt x="484" y="710" on="0"/>
+ <pt x="634" y="531" on="0"/>
+ <pt x="634" y="350" on="1"/>
+ <pt x="634" y="169" on="0"/>
+ <pt x="484" y="-10" on="0"/>
+ </contour>
+ <contour>
+ <pt x="332" y="74" on="1"/>
+ <pt x="438" y="74" on="0"/>
+ <pt x="544" y="212" on="0"/>
+ <pt x="544" y="350" on="1"/>
+ <pt x="544" y="488" on="0"/>
+ <pt x="438" y="626" on="0"/>
+ <pt x="332" y="626" on="1"/>
+ <pt x="226" y="626" on="0"/>
+ <pt x="120" y="488" on="0"/>
+ <pt x="120" y="350" on="1"/>
+ <pt x="120" y="212" on="0"/>
+ <pt x="226" y="74" on="0"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="V" xMin="5" yMin="0" xMax="751" yMax="700">
+ <contour>
+ <pt x="323" y="0" on="1"/>
+ <pt x="641" y="700" on="1"/>
+ <pt x="751" y="700" on="1"/>
+ <pt x="433" y="0" on="1"/>
+ </contour>
+ <contour>
+ <pt x="323" y="0" on="1"/>
+ <pt x="5" y="700" on="1"/>
+ <pt x="115" y="700" on="1"/>
+ <pt x="433" y="0" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="785">
+ <contour>
+ <pt x="-118" y="716" on="1"/>
+ <pt x="-141" y="630" on="1"/>
+ <pt x="102" y="699" on="1"/>
+ <pt x="125" y="785" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar" xMin="29" yMin="-68" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="473" y="584" on="0"/>
+ <pt x="398" y="621" on="0"/>
+ <pt x="354" y="627" on="1"/>
+ <pt x="354" y="373" on="1"/>
+ <pt x="467" y="351" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-68" on="1"/>
+ <pt x="264" y="-68" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="123" y="110" on="0"/>
+ <pt x="207" y="73" on="0"/>
+ <pt x="264" y="69" on="1"/>
+ <pt x="264" y="301" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <contour>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="264" y="627" on="1"/>
+ <pt x="203" y="618" on="0"/>
+ <pt x="137" y="553" on="0"/>
+ </contour>
+ <contour>
+ <pt x="354" y="69" on="1"/>
+ <pt x="423" y="76" on="0"/>
+ <pt x="486" y="135" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="211" on="0"/>
+ <pt x="462" y="250" on="0"/>
+ <pt x="405" y="275" on="0"/>
+ <pt x="354" y="285" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.BRACKET.500" xMin="29" yMin="-76" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="464" y="592" on="0"/>
+ <pt x="370" y="630" on="0"/>
+ <pt x="308" y="630" on="1"/>
+ <pt x="226" y="630" on="0"/>
+ <pt x="137" y="562" on="0"/>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="360" y="372" on="1"/>
+ <pt x="469" y="350" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-76" on="1"/>
+ <pt x="264" y="-76" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="115" y="118" on="0"/>
+ <pt x="180" y="83" on="0"/>
+ <pt x="259" y="67" on="0"/>
+ <pt x="310" y="67" on="1"/>
+ <pt x="403" y="67" on="0"/>
+ <pt x="486" y="128" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="212" on="0"/>
+ <pt x="461" y="251" on="0"/>
+ <pt x="401" y="277" on="0"/>
+ <pt x="348" y="286" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="dollar.bold" xMin="29" yMin="-76" xMax="580" yMax="759">
+ <contour>
+ <pt x="264" y="759" on="1"/>
+ <pt x="354" y="759" on="1"/>
+ <pt x="354" y="715" on="1"/>
+ <pt x="415" y="709" on="0"/>
+ <pt x="519" y="662" on="0"/>
+ <pt x="562" y="620" on="1"/>
+ <pt x="509" y="548" on="1"/>
+ <pt x="464" y="592" on="0"/>
+ <pt x="370" y="630" on="0"/>
+ <pt x="308" y="630" on="1"/>
+ <pt x="226" y="630" on="0"/>
+ <pt x="137" y="562" on="0"/>
+ <pt x="137" y="502" on="1"/>
+ <pt x="137" y="470" on="0"/>
+ <pt x="160" y="428" on="0"/>
+ <pt x="214" y="402" on="0"/>
+ <pt x="261" y="392" on="1"/>
+ <pt x="360" y="372" on="1"/>
+ <pt x="469" y="350" on="0"/>
+ <pt x="580" y="263" on="0"/>
+ <pt x="580" y="184" on="1"/>
+ <pt x="580" y="102" on="0"/>
+ <pt x="459" y="-8" on="0"/>
+ <pt x="354" y="-18" on="1"/>
+ <pt x="354" y="-76" on="1"/>
+ <pt x="264" y="-76" on="1"/>
+ <pt x="264" y="-18" on="1"/>
+ <pt x="192" y="-12" on="0"/>
+ <pt x="72" y="34" on="0"/>
+ <pt x="29" y="74" on="1"/>
+ <pt x="81" y="146" on="1"/>
+ <pt x="115" y="118" on="0"/>
+ <pt x="180" y="83" on="0"/>
+ <pt x="259" y="67" on="0"/>
+ <pt x="310" y="67" on="1"/>
+ <pt x="403" y="67" on="0"/>
+ <pt x="486" y="128" on="0"/>
+ <pt x="486" y="183" on="1"/>
+ <pt x="486" y="212" on="0"/>
+ <pt x="461" y="251" on="0"/>
+ <pt x="401" y="277" on="0"/>
+ <pt x="348" y="286" on="1"/>
+ <pt x="249" y="304" on="1"/>
+ <pt x="148" y="323" on="0"/>
+ <pt x="43" y="420" on="0"/>
+ <pt x="43" y="502" on="1"/>
+ <pt x="43" y="559" on="0"/>
+ <pt x="99" y="650" on="0"/>
+ <pt x="199" y="707" on="0"/>
+ <pt x="264" y="715" on="1"/>
+ </contour>
+ <instructions/>
+ </TTGlyph>
+
+ <TTGlyph name="space"/><!-- contains no outline data -->
+
+ </glyf>
+
+ <name>
+ <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis
+ </namerecord>
+ <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
+ Regular
+ </namerecord>
+ <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
+ 1.000;NONE;SimpleTwoAxis-Regular
+ </namerecord>
+ <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
+ Simple Two Axis Regular
+ </namerecord>
+ <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
+ Version 1.000
+ </namerecord>
+ <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
+ SimpleTwoAxis-Regular
+ </namerecord>
+ </name>
+
+ <post>
+ <formatType value="2.0"/>
+ <italicAngle value="0.0"/>
+ <underlinePosition value="-100"/>
+ <underlineThickness value="50"/>
+ <isFixedPitch value="0"/>
+ <minMemType42 value="0"/>
+ <maxMemType42 value="0"/>
+ <minMemType1 value="0"/>
+ <maxMemType1 value="0"/>
+ <psNames>
+ <!-- This file uses unique glyph names based on the information
+ found in the 'post' table. Since these names might not be unique,
+ we have to invent artificial names in case of clashes. In order to
+ be able to retain the original information, we need a name to
+ ps name mapping for those cases where they differ. That's what
+ you see below.
+ -->
+ </psNames>
+ <extraNames>
+ <!-- following are the name that are not taken from the standard Mac glyph order -->
+ <psName name="dollar.bold"/>
+ <psName name="acutecomb"/>
+ <psName name="dollar.BRACKET.500"/>
+ </extraNames>
+ </post>
+
+ <GDEF>
+ <Version value="0x00010000"/>
+ <GlyphClassDef>
+ <ClassDef glyph="A" class="1"/>
+ <ClassDef glyph="Aacute" class="1"/>
+ <ClassDef glyph="acutecomb" class="3"/>
+ </GlyphClassDef>
+ </GDEF>
+
+ <GPOS>
+ <Version value="0x00010000"/>
+ <ScriptList>
+ <!-- ScriptCount=1 -->
+ <ScriptRecord index="0">
+ <ScriptTag value="DFLT"/>
+ <Script>
+ <DefaultLangSys>
+ <ReqFeatureIndex value="65535"/>
+ <!-- FeatureCount=2 -->
+ <FeatureIndex index="0" value="0"/>
+ <FeatureIndex index="1" value="1"/>
+ </DefaultLangSys>
+ <!-- LangSysCount=0 -->
+ </Script>
+ </ScriptRecord>
+ </ScriptList>
+ <FeatureList>
+ <!-- FeatureCount=2 -->
+ <FeatureRecord index="0">
+ <FeatureTag value="kern"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="0"/>
+ </Feature>
+ </FeatureRecord>
+ <FeatureRecord index="1">
+ <FeatureTag value="mark"/>
+ <Feature>
+ <!-- LookupCount=1 -->
+ <LookupListIndex index="0" value="1"/>
+ </Feature>
+ </FeatureRecord>
+ </FeatureList>
+ <LookupList>
+ <!-- LookupCount=2 -->
+ <Lookup index="0">
+ <LookupType value="2"/>
+ <LookupFlag value="8"/><!-- ignoreMarks -->
+ <!-- SubTableCount=1 -->
+ <PairPos index="0" Format="1">
+ <Coverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ <Glyph value="V"/>
+ </Coverage>
+ <ValueFormat1 value="4"/>
+ <ValueFormat2 value="0"/>
+ <!-- PairSetCount=3 -->
+ <PairSet index="0">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="1">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="V"/>
+ <Value1 XAdvance="-80"/>
+ </PairValueRecord>
+ </PairSet>
+ <PairSet index="2">
+ <!-- PairValueCount=1 -->
+ <PairValueRecord index="0">
+ <SecondGlyph value="O"/>
+ <Value1 XAdvance="-20"/>
+ </PairValueRecord>
+ </PairSet>
+ </PairPos>
+ </Lookup>
+ <Lookup index="1">
+ <LookupType value="4"/>
+ <LookupFlag value="0"/>
+ <!-- SubTableCount=1 -->
+ <MarkBasePos index="0" Format="1">
+ <MarkCoverage>
+ <Glyph value="acutecomb"/>
+ </MarkCoverage>
+ <BaseCoverage>
+ <Glyph value="A"/>
+ <Glyph value="Aacute"/>
+ </BaseCoverage>
+ <!-- ClassCount=1 -->
+ <MarkArray>
+ <!-- MarkCount=1 -->
+ <MarkRecord index="0">
+ <Class value="0"/>
+ <MarkAnchor Format="1">
+ <XCoordinate value="4"/>
+ <YCoordinate value="623"/>
+ </MarkAnchor>
+ </MarkRecord>
+ </MarkArray>
+ <BaseArray>
+ <!-- BaseCount=2 -->
+ <BaseRecord index="0">
+ <BaseAnchor index="0" Format="3">
+ <XCoordinate value="406"/>
+ <YCoordinate value="753"/>
+ </BaseAnchor>
+ </BaseRecord>
+ <BaseRecord index="1">
+ <BaseAnchor index="0" Format="1">
+ <XCoordinate value="406"/>
+ <YCoordinate value="753"/>
+ </BaseAnchor>
+ </BaseRecord>
+ </BaseArray>
+ </MarkBasePos>
+ </Lookup>
+ </LookupList>
+ </GPOS>
+
+</ttFont>
diff --git a/Tests/varLib/data/master_kerning_merging/0.ttx b/Tests/varLib/data/master_kerning_merging/0.ttx
index 1bc52ae9..1ca22f68 100644
--- a/Tests/varLib/data/master_kerning_merging/0.ttx
+++ b/Tests/varLib/data/master_kerning_merging/0.ttx
@@ -266,16 +266,16 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="B"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="A" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="C" class="1"/>
</ClassDef2>
<!-- Class1Count=2 -->
diff --git a/Tests/varLib/data/master_kerning_merging/1.ttx b/Tests/varLib/data/master_kerning_merging/1.ttx
index ea7c353c..9f6756d8 100644
--- a/Tests/varLib/data/master_kerning_merging/1.ttx
+++ b/Tests/varLib/data/master_kerning_merging/1.ttx
@@ -260,14 +260,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="B" class="2"/>
<ClassDef glyph="D" class="1"/>
</ClassDef2>
diff --git a/Tests/varLib/data/master_kerning_merging/2.ttx b/Tests/varLib/data/master_kerning_merging/2.ttx
index caf4275b..b8302e8b 100644
--- a/Tests/varLib/data/master_kerning_merging/2.ttx
+++ b/Tests/varLib/data/master_kerning_merging/2.ttx
@@ -266,16 +266,16 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="B"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="A" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="D" class="1"/>
</ClassDef2>
<!-- Class1Count=2 -->
diff --git a/Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx b/Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx
index a6a8e003..157043f0 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx
@@ -766,7 +766,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="A" out="A.sc"/>
</SingleSubst>
</Lookup>
@@ -774,7 +774,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="a" out="a.alt"/>
</SingleSubst>
</Lookup>
@@ -782,7 +782,7 @@
<LookupType value="2"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <MultipleSubst index="0" Format="1">
+ <MultipleSubst index="0">
<Substitution in="ampersand" out="a,n,d"/>
</MultipleSubst>
</Lookup>
@@ -790,7 +790,7 @@
<LookupType value="3"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <AlternateSubst index="0" Format="1">
+ <AlternateSubst index="0">
<AlternateSet glyph="a">
<Alternate glyph="a.alt"/>
<Alternate glyph="A.sc"/>
@@ -801,7 +801,7 @@
<LookupType value="4"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <LigatureSubst index="0" Format="1">
+ <LigatureSubst index="0">
<LigatureSet glyph="f">
<Ligature components="t" glyph="f_t"/>
</LigatureSet>
@@ -814,11 +814,11 @@
<ChainContextSubst index="0" Format="3">
<!-- BacktrackGlyphCount=0 -->
<!-- InputGlyphCount=1 -->
- <InputCoverage index="0" Format="1">
+ <InputCoverage index="0">
<Glyph value="a"/>
</InputCoverage>
<!-- LookAheadGlyphCount=1 -->
- <LookAheadCoverage index="0" Format="1">
+ <LookAheadCoverage index="0">
<Glyph value="t"/>
</LookAheadCoverage>
<!-- SubstCount=1 -->
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx
index 55d686e3..cf4b5dae 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx
@@ -305,7 +305,7 @@
<GDEF>
<Version value="0x00010000"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="dotabovecomb" class="3"/>
<ClassDef glyph="e" class="1"/>
</GlyphClassDef>
@@ -344,10 +344,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="dotabovecomb"/>
</MarkCoverage>
- <BaseCoverage Format="1">
+ <BaseCoverage>
<Glyph value="e"/>
</BaseCoverage>
<!-- ClassCount=1 -->
@@ -407,7 +407,7 @@
<LookupType value="4"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <LigatureSubst index="0" Format="1">
+ <LigatureSubst index="0">
<LigatureSet glyph="a">
<Ligature components="e,s,s" glyph="s"/>
</LigatureSet>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx
index e013e0b7..c93da2a8 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx
@@ -305,7 +305,7 @@
<GDEF>
<Version value="0x00010000"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="dotabovecomb" class="3"/>
<ClassDef glyph="e" class="1"/>
</GlyphClassDef>
@@ -344,10 +344,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="dotabovecomb"/>
</MarkCoverage>
- <BaseCoverage Format="1">
+ <BaseCoverage>
<Glyph value="e"/>
</BaseCoverage>
<!-- ClassCount=1 -->
@@ -407,7 +407,7 @@
<LookupType value="4"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <LigatureSubst index="0" Format="1">
+ <LigatureSubst index="0">
<LigatureSet glyph="a">
<Ligature components="e,s,s" glyph="s"/>
</LigatureSet>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx
index 6054e4bd..ca5a2e15 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx
@@ -519,7 +519,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx
index afd61de9..9076cf7e 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx
@@ -519,7 +519,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx
index 0ed2f4ac..9bec8c04 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx
@@ -503,7 +503,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx
index 5666541e..1cfdfd91 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx
@@ -503,7 +503,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx
index 87381873..1ae5d473 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx
@@ -503,7 +503,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx
index 13d48e74..d1a33935 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx
@@ -1081,7 +1081,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="A" out="A.sc"/>
</SingleSubst>
</Lookup>
@@ -1089,7 +1089,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="a" out="a.alt"/>
</SingleSubst>
</Lookup>
@@ -1097,7 +1097,7 @@
<LookupType value="2"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <MultipleSubst index="0" Format="1">
+ <MultipleSubst index="0">
<Substitution in="ampersand" out="a,n,d"/>
</MultipleSubst>
</Lookup>
@@ -1105,7 +1105,7 @@
<LookupType value="3"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <AlternateSubst index="0" Format="1">
+ <AlternateSubst index="0">
<AlternateSet glyph="a">
<Alternate glyph="a.alt"/>
<Alternate glyph="A.sc"/>
@@ -1116,7 +1116,7 @@
<LookupType value="4"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <LigatureSubst index="0" Format="1">
+ <LigatureSubst index="0">
<LigatureSet glyph="f">
<Ligature components="t" glyph="f_t"/>
</LigatureSet>
@@ -1129,11 +1129,11 @@
<ChainContextSubst index="0" Format="3">
<!-- BacktrackGlyphCount=0 -->
<!-- InputGlyphCount=1 -->
- <InputCoverage index="0" Format="1">
+ <InputCoverage index="0">
<Glyph value="a"/>
</InputCoverage>
<!-- LookAheadGlyphCount=1 -->
- <LookAheadCoverage index="0" Format="1">
+ <LookAheadCoverage index="0">
<Glyph value="t"/>
</LookAheadCoverage>
<!-- SubstCount=1 -->
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx
index 53e0dda0..0f9e97a5 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx
@@ -480,14 +480,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="T"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="T" class="4"/>
<ClassDef glyph="n" class="3"/>
<ClassDef glyph="o" class="2"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx
index 9b64f61e..f8ff9878 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx
@@ -486,14 +486,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="T"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="T" class="4"/>
<ClassDef glyph="n" class="3"/>
<ClassDef glyph="o" class="2"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx
index 5412599f..2b7264d1 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx
@@ -486,14 +486,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="T"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="T" class="4"/>
<ClassDef glyph="n" class="3"/>
<ClassDef glyph="o" class="2"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx
index 4315c6cc..d03abf5f 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx
@@ -486,14 +486,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="T"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="T" class="4"/>
<ClassDef glyph="n" class="3"/>
<ClassDef glyph="o" class="2"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx
index 526eb446..11892209 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx
@@ -486,14 +486,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="T"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="T" class="4"/>
<ClassDef glyph="n" class="3"/>
<ClassDef glyph="o" class="2"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx
index ddba5e44..3583c0d3 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx
@@ -486,14 +486,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="T"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="T" class="4"/>
<ClassDef glyph="n" class="3"/>
<ClassDef glyph="o" class="2"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx
index 07f9c155..bf68b167 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx
@@ -480,14 +480,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="T"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="T" class="4"/>
<ClassDef glyph="n" class="3"/>
<ClassDef glyph="o" class="2"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx
index 3674082e..96badb34 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx
@@ -486,14 +486,14 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="T"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="T" class="4"/>
<ClassDef glyph="n" class="3"/>
<ClassDef glyph="o" class="2"/>
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx
index 6df0a830..ab5789e5 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx
@@ -455,7 +455,7 @@
<GDEF>
<Version value="0x00010002"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="N" class="1"/>
<ClassDef glyph="O" class="1"/>
<ClassDef glyph="Odieresis" class="1"/>
@@ -467,7 +467,7 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=1 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
<Glyph value="uni0308"/>
</Coverage>
</MarkGlyphSetsDef>
@@ -545,7 +545,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="N"/>
<Glyph value="O"/>
<Glyph value="Odieresis"/>
@@ -559,10 +559,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="uni0308"/>
</MarkCoverage>
- <BaseCoverage Format="2">
+ <BaseCoverage>
<Glyph value="N"/>
<Glyph value="O"/>
<Glyph value="Odieresis"/>
@@ -627,10 +627,10 @@
<LookupFlag value="16"/><!-- useMarkFilteringSet -->
<!-- SubTableCount=1 -->
<MarkMarkPos index="0" Format="1">
- <Mark1Coverage Format="1">
+ <Mark1Coverage>
<Glyph value="uni0308"/>
</Mark1Coverage>
- <Mark2Coverage Format="1">
+ <Mark2Coverage>
<Glyph value="uni0308"/>
</Mark2Coverage>
<!-- ClassCount=1 -->
diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx
index ff7a52dd..0b7063fb 100644
--- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx
+++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx
@@ -449,7 +449,7 @@
<GDEF>
<Version value="0x00010002"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="N" class="1"/>
<ClassDef glyph="O" class="1"/>
<ClassDef glyph="Odieresis" class="1"/>
@@ -461,7 +461,7 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=1 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
<Glyph value="uni0308"/>
</Coverage>
</MarkGlyphSetsDef>
@@ -539,7 +539,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="N"/>
<Glyph value="O"/>
<Glyph value="Odieresis"/>
@@ -553,10 +553,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="uni0308"/>
</MarkCoverage>
- <BaseCoverage Format="2">
+ <BaseCoverage>
<Glyph value="N"/>
<Glyph value="O"/>
<Glyph value="Odieresis"/>
@@ -621,10 +621,10 @@
<LookupFlag value="16"/><!-- useMarkFilteringSet -->
<!-- SubTableCount=1 -->
<MarkMarkPos index="0" Format="1">
- <Mark1Coverage Format="1">
+ <Mark1Coverage>
<Glyph value="uni0308"/>
</Mark1Coverage>
- <Mark2Coverage Format="1">
+ <Mark2Coverage>
<Glyph value="uni0308"/>
</Mark2Coverage>
<!-- ClassCount=1 -->
diff --git a/Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx b/Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx
index c2a718ec..29c5bb31 100644
--- a/Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx
+++ b/Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx
@@ -623,7 +623,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="dollar" out="glyph00003"/>
</SingleSubst>
</Lookup>
@@ -631,7 +631,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="dollar" out="glyph00003"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx b/Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx
index 1fbb45d3..cd454b85 100644
--- a/Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx
+++ b/Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx
@@ -424,7 +424,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=5 -->
<SinglePos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni3001"/>
<Glyph value="uniFF1A"/>
</Coverage>
@@ -434,7 +434,7 @@
<Value index="1" XPlacement="-250" XAdvance="-500"/>
</SinglePos>
<SinglePos index="1" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni30FB"/>
</Coverage>
<ValueFormat value="7"/>
@@ -442,7 +442,7 @@
<Value index="0" XPlacement="-250" YPlacement="1" XAdvance="-500"/>
</SinglePos>
<SinglePos index="2" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni3073"/>
<Glyph value="uni3074"/>
</Coverage>
@@ -452,7 +452,7 @@
<Value index="1" XAdvance="-30"/>
</SinglePos>
<SinglePos index="3" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni307B"/>
</Coverage>
<ValueFormat value="1"/>
@@ -460,7 +460,7 @@
<Value index="0" XPlacement="11"/>
</SinglePos>
<SinglePos index="4" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uniFF2D"/>
</Coverage>
<ValueFormat value="5"/>
diff --git a/Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx b/Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx
index bb439586..e1b77c84 100644
--- a/Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx
+++ b/Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx
@@ -424,7 +424,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=3 -->
<SinglePos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni3001"/>
<Glyph value="uni30FB"/>
<Glyph value="uniFF1A"/>
@@ -436,7 +436,7 @@
<Value index="2" XPlacement="-250" XAdvance="-500"/>
</SinglePos>
<SinglePos index="1" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni3073"/>
<Glyph value="uni3074"/>
</Coverage>
@@ -446,7 +446,7 @@
<Value index="1" XAdvance="-30"/>
</SinglePos>
<SinglePos index="2" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uniFF2D"/>
<Glyph value="uni307B"/>
</Coverage>
diff --git a/Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx b/Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx
index 7383c171..d956d8c4 100644
--- a/Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx
+++ b/Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx
@@ -705,7 +705,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni3042" out="c30843"/>
<Substitution in="uni56FD" out="c32051"/>
<Substitution in="uni6280" out="c31621"/>
@@ -718,7 +718,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni3042" out="c30843"/>
<Substitution in="uni56FD" out="c32051"/>
<Substitution in="uni6280" out="c31621"/>
diff --git a/Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx b/Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx
index f6020977..9f677494 100644
--- a/Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx
+++ b/Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx
@@ -705,7 +705,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni3042" out="c30843"/>
<Substitution in="uni56FD" out="c32051"/>
<Substitution in="uni6280" out="c31621"/>
@@ -718,7 +718,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni3042" out="c30843"/>
<Substitution in="uni56FD" out="c32051"/>
<Substitution in="uni6280" out="c31621"/>
diff --git a/Tests/varLib/data/test_results/Build.ttx b/Tests/varLib/data/test_results/Build.ttx
index 5a406c84..c802bf32 100644
--- a/Tests/varLib/data/test_results/Build.ttx
+++ b/Tests/varLib/data/test_results/Build.ttx
@@ -3,7 +3,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/test_results/BuildMain.ttx b/Tests/varLib/data/test_results/BuildMain.ttx
index 20add49e..27d02d1d 100644
--- a/Tests/varLib/data/test_results/BuildMain.ttx
+++ b/Tests/varLib/data/test_results/BuildMain.ttx
@@ -615,7 +615,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/test_results/BuildTestCFF2.ttx b/Tests/varLib/data/test_results/BuildTestCFF2.ttx
index 9f7d6388..c4b93778 100644
--- a/Tests/varLib/data/test_results/BuildTestCFF2.ttx
+++ b/Tests/varLib/data/test_results/BuildTestCFF2.ttx
@@ -91,6 +91,8 @@
<StdVW>
<blend value="85 -51 87"/>
</StdVW>
+ <LanguageGroup value="0"/>
+ <ExpansionFactor value="0.06"/>
</Private>
</FontDict>
</FDArray>
diff --git a/Tests/varLib/data/test_results/FeatureVars.ttx b/Tests/varLib/data/test_results/FeatureVars.ttx
index 18d90aa2..ca24f41c 100644
--- a/Tests/varLib/data/test_results/FeatureVars.ttx
+++ b/Tests/varLib/data/test_results/FeatureVars.ttx
@@ -55,7 +55,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0024" out="uni0024.nostroke"/>
</SingleSubst>
</Lookup>
@@ -63,7 +63,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0041" out="uni0061"/>
</SingleSubst>
</Lookup>
@@ -71,7 +71,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0061" out="uni0041"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx b/Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx
index f50ef785..3f9e1e08 100644
--- a/Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx
+++ b/Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx
@@ -55,7 +55,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0024" out="uni0024.nostroke"/>
</SingleSubst>
</Lookup>
@@ -63,7 +63,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0041" out="uni0061"/>
</SingleSubst>
</Lookup>
@@ -71,7 +71,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0061" out="uni0041"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx b/Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx
index 8e098b9b..8ae64da4 100644
--- a/Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx
+++ b/Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx
@@ -45,7 +45,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0024" out="uni0024.nostroke"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/test_results/FeatureVars_rclt.ttx b/Tests/varLib/data/test_results/FeatureVars_rclt.ttx
index a9a998f4..b889f3a5 100644
--- a/Tests/varLib/data/test_results/FeatureVars_rclt.ttx
+++ b/Tests/varLib/data/test_results/FeatureVars_rclt.ttx
@@ -71,7 +71,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0041" out="uni0061"/>
</SingleSubst>
</Lookup>
@@ -79,7 +79,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0041" out="uni0061"/>
</SingleSubst>
</Lookup>
@@ -87,7 +87,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0024" out="uni0024.nostroke"/>
</SingleSubst>
</Lookup>
@@ -95,7 +95,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0041" out="uni0061"/>
</SingleSubst>
</Lookup>
@@ -103,7 +103,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="uni0061" out="uni0041"/>
</SingleSubst>
</Lookup>
diff --git a/Tests/varLib/data/test_results/InterpolateLayout.ttx b/Tests/varLib/data/test_results/InterpolateLayout.ttx
index b1ea1e99..81e50fbf 100644
--- a/Tests/varLib/data/test_results/InterpolateLayout.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayout.ttx
@@ -93,7 +93,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="A" out="A.sc"/>
</SingleSubst>
</Lookup>
@@ -101,7 +101,7 @@
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <SingleSubst index="0" Format="1">
+ <SingleSubst index="0">
<Substitution in="a" out="a.alt"/>
</SingleSubst>
</Lookup>
@@ -109,7 +109,7 @@
<LookupType value="2"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <MultipleSubst index="0" Format="1">
+ <MultipleSubst index="0">
<Substitution in="ampersand" out="a,n,d"/>
</MultipleSubst>
</Lookup>
@@ -117,7 +117,7 @@
<LookupType value="3"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <AlternateSubst index="0" Format="1">
+ <AlternateSubst index="0">
<AlternateSet glyph="a">
<Alternate glyph="a.alt"/>
<Alternate glyph="A.sc"/>
@@ -128,7 +128,7 @@
<LookupType value="4"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <LigatureSubst index="0" Format="1">
+ <LigatureSubst index="0">
<LigatureSet glyph="f">
<Ligature components="t" glyph="f_t"/>
</LigatureSet>
@@ -141,11 +141,11 @@
<ChainContextSubst index="0" Format="3">
<!-- BacktrackGlyphCount=0 -->
<!-- InputGlyphCount=1 -->
- <InputCoverage index="0" Format="1">
+ <InputCoverage index="0">
<Glyph value="a"/>
</InputCoverage>
<!-- LookAheadGlyphCount=1 -->
- <LookAheadCoverage index="0" Format="1">
+ <LookAheadCoverage index="0">
<Glyph value="t"/>
</LookAheadCoverage>
<!-- SubstCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx
index 74e9cc5e..4180a337 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat value="5"/>
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx
index 2e21b268..44a7558a 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="a"/>
</Coverage>
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx
index a61e75fb..83407c11 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat value="5"/>
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx
index 4f94c37b..0aeb4973 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx
@@ -34,14 +34,14 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="a" class="1"/>
</ClassDef2>
<!-- Class1Count=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx
index 811ed580..f00c4c3a 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx
@@ -34,16 +34,16 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="a"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="a" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="a" class="1"/>
</ClassDef2>
<!-- Class1Count=2 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx
index 98725336..3656964b 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx
@@ -34,14 +34,14 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="2">
+ <ClassDef1>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="a" class="1"/>
</ClassDef2>
<!-- Class1Count=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx
index 113bd0b1..f85985bb 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<PairPos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat1 value="4"/>
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx
index efc5ee51..b085109f 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<PairPos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="a"/>
</Coverage>
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx
index 014c1ece..2a2a546e 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<PairPos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat1 value="4"/>
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx
index 65d77f9d..993e0a67 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<CursivePos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="a"/>
</Coverage>
<!-- EntryExitCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx
index b7c8a258..1d5ebcd7 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<CursivePos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="a"/>
</Coverage>
<!-- EntryExitCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx
index 72a8ccf1..7c50f96f 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx
@@ -34,10 +34,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="uni0303"/>
</MarkCoverage>
- <BaseCoverage Format="1">
+ <BaseCoverage>
<Glyph value="a"/>
</BaseCoverage>
<!-- ClassCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx
index 9b41519b..ab96180f 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx
@@ -34,10 +34,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="uni0303"/>
</MarkCoverage>
- <BaseCoverage Format="1">
+ <BaseCoverage>
<Glyph value="a"/>
</BaseCoverage>
<!-- ClassCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx
index 28480e75..28b5f91e 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx
@@ -34,10 +34,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkLigPos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="uni0330"/>
</MarkCoverage>
- <LigatureCoverage Format="1">
+ <LigatureCoverage>
<Glyph value="f_t"/>
</LigatureCoverage>
<!-- ClassCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx
index 4830f9a3..0df08c06 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx
@@ -34,10 +34,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkLigPos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="uni0330"/>
</MarkCoverage>
- <LigatureCoverage Format="1">
+ <LigatureCoverage>
<Glyph value="f_t"/>
</LigatureCoverage>
<!-- ClassCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx
index 38d6437e..667d4f12 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx
@@ -34,10 +34,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkMarkPos index="0" Format="1">
- <Mark1Coverage Format="1">
+ <Mark1Coverage>
<Glyph value="uni0303"/>
</Mark1Coverage>
- <Mark2Coverage Format="1">
+ <Mark2Coverage>
<Glyph value="uni0308"/>
</Mark2Coverage>
<!-- ClassCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx
index 05e4b514..34d0bff1 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx
@@ -34,10 +34,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkMarkPos index="0" Format="1">
- <Mark1Coverage Format="1">
+ <Mark1Coverage>
<Glyph value="uni0303"/>
</Mark1Coverage>
- <Mark2Coverage Format="1">
+ <Mark2Coverage>
<Glyph value="uni0308"/>
</Mark2Coverage>
<!-- ClassCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx
index ea1fa7e6..14e12097 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<PairPos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat1 value="4"/>
@@ -54,10 +54,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="uni0303"/>
</MarkCoverage>
- <BaseCoverage Format="1">
+ <BaseCoverage>
<Glyph value="a"/>
</BaseCoverage>
<!-- ClassCount=1 -->
@@ -87,7 +87,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<ContextPos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<!-- PosRuleSetCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx
index 1ad81185..eff24fc3 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<PairPos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<ValueFormat1 value="4"/>
@@ -54,10 +54,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="uni0303"/>
</MarkCoverage>
- <BaseCoverage Format="1">
+ <BaseCoverage>
<Glyph value="a"/>
</BaseCoverage>
<!-- ClassCount=1 -->
@@ -87,7 +87,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<ContextPos index="0" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
</Coverage>
<!-- PosRuleSetCount=1 -->
diff --git a/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx b/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx
index 6a0635d0..49d491fb 100644
--- a/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx
+++ b/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx
@@ -498,7 +498,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx b/Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx
index e2d0f71c..949e6dad 100644
--- a/Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx
+++ b/Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx
@@ -24,6 +24,8 @@
<BlueFuzz value="0"/>
<StdHW value="28"/>
<StdVW value="34"/>
+ <LanguageGroup value="0"/>
+ <ExpansionFactor value="0.06"/>
</Private>
</FontDict>
</FDArray>
diff --git a/Tests/varLib/data/test_results/Mutator.ttx b/Tests/varLib/data/test_results/Mutator.ttx
index 75a0879e..71e5f28b 100644
--- a/Tests/varLib/data/test_results/Mutator.ttx
+++ b/Tests/varLib/data/test_results/Mutator.ttx
@@ -498,7 +498,7 @@
<GDEF>
<Version value="0x00010000"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/test_results/SingleMaster.ttx b/Tests/varLib/data/test_results/SingleMaster.ttx
index 999f5006..02cfe32b 100644
--- a/Tests/varLib/data/test_results/SingleMaster.ttx
+++ b/Tests/varLib/data/test_results/SingleMaster.ttx
@@ -3,7 +3,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="2">
+ <GlyphClassDef>
<ClassDef glyph="uni0024" class="1"/>
<ClassDef glyph="uni0024.nostroke" class="1"/>
<ClassDef glyph="uni0041" class="1"/>
diff --git a/Tests/varLib/data/test_results/SparseMasters.ttx b/Tests/varLib/data/test_results/SparseMasters.ttx
index fb9cb46d..a3f8e619 100644
--- a/Tests/varLib/data/test_results/SparseMasters.ttx
+++ b/Tests/varLib/data/test_results/SparseMasters.ttx
@@ -290,7 +290,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="dotabovecomb" class="3"/>
<ClassDef glyph="e" class="1"/>
</GlyphClassDef>
@@ -352,10 +352,10 @@
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
- <MarkCoverage Format="1">
+ <MarkCoverage>
<Glyph value="dotabovecomb"/>
</MarkCoverage>
- <BaseCoverage Format="1">
+ <BaseCoverage>
<Glyph value="e"/>
</BaseCoverage>
<!-- ClassCount=1 -->
@@ -425,7 +425,7 @@
<LookupType value="4"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
- <LigatureSubst index="0" Format="1">
+ <LigatureSubst index="0">
<LigatureSet glyph="a">
<Ligature components="e,s,s" glyph="s"/>
</LigatureSet>
diff --git a/Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx b/Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx
index 26bd7ba7..a78e6a6e 100644
--- a/Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx
+++ b/Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx
@@ -36,6 +36,8 @@
<StdVW>
<blend value="34 51"/>
</StdVW>
+ <LanguageGroup value="0"/>
+ <ExpansionFactor value="0.06"/>
</Private>
</FontDict>
</FDArray>
diff --git a/Tests/varLib/data/test_results/TestSparseCFF2VF.ttx b/Tests/varLib/data/test_results/TestSparseCFF2VF.ttx
index f05f62f7..264a3d4a 100644
--- a/Tests/varLib/data/test_results/TestSparseCFF2VF.ttx
+++ b/Tests/varLib/data/test_results/TestSparseCFF2VF.ttx
@@ -138,6 +138,8 @@
<BlueFuzz value="0"/>
<StdHW value="1"/>
<StdVW value="1"/>
+ <LanguageGroup value="1"/>
+ <ExpansionFactor value="0.06"/>
</Private>
</FontDict>
<FontDict index="1">
@@ -148,6 +150,8 @@
<BlueFuzz value="0"/>
<StdHW value="1"/>
<StdVW value="1"/>
+ <LanguageGroup value="1"/>
+ <ExpansionFactor value="0.06"/>
</Private>
</FontDict>
<FontDict index="2">
@@ -156,6 +160,8 @@
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
+ <LanguageGroup value="0"/>
+ <ExpansionFactor value="0.06"/>
</Private>
</FontDict>
</FDArray>
@@ -290,7 +296,7 @@
</CharString>
<CharString name="cid06449" fdSelectIndex="1">
2 vsindex
- -60 30 203 30 -9 9 67 7 -7 14 -14 30 -20 20 80 30 59 30 121 30 18 93 -30 30 -30 108 -23 0 -26 67 2 76 -98 -2 -111 42 0 47 -13 0 -14 13 0 14 -33 0 -37 11 0 13 -11 0 -13 8 0 9 -7 0 -8 53 0 60 -32 0 -36 32 0 36 -52 0 -59 57 1 65 -33 0 -38 53 0 60 -83 -1 -93 54 0 60 -6 -19 -24 33 19 55 -76 -1 -86 76 1 86 -76 -1 -86 59 1 67 26 blend
+ -60 30 203 30 -9 9 67 7 -7 14 -14 30 -20 20 80 30 59 30 121 30 18 93 -30 30 -30 108 -23 0 -26 67 2 76 -98 -2 -111 42 0 47 -13 0 -14 13 0 14 -33 0 -37 11 0 13 -11 0 -13 8 0 8 -8 0 -8 53 0 60 -32 0 -36 32 0 36 -52 0 -59 57 1 65 -33 0 -38 53 0 60 -83 -1 -93 54 0 60 -6 -19 -24 33 19 55 -76 -1 -86 76 1 86 -76 -1 -86 59 1 67 26 blend
hstemhm
77 30 42 30 139 30 23 30 71 10 74 30 15 30 16 30 158 30 28 30 -4 29 -14 0 -16 88 1 99 -82 -1 -92 87 1 98 -130 -1 -146 102 1 114 -73 -1 -82 74 2 84 -112 -2 -126 27 0 30 13 0 15 90 1 101 -126 -1 -142 75 1 84 -68 -1 -76 102 1 115 -144 -1 -162 94 1 105 -79 -1 -88 95 1 106 -81 -1 -91 74 1 83 22 blend
vstemhm
diff --git a/Tests/varLib/data/test_results/test_vpal.ttx b/Tests/varLib/data/test_results/test_vpal.ttx
index 334ced55..be612930 100644
--- a/Tests/varLib/data/test_results/test_vpal.ttx
+++ b/Tests/varLib/data/test_results/test_vpal.ttx
@@ -34,7 +34,7 @@
<LookupFlag value="0"/>
<!-- SubTableCount=6 -->
<SinglePos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uniFF1A"/>
<Glyph value="uni3074"/>
</Coverage>
@@ -44,7 +44,7 @@
<Value index="1" XPlacement="0" YPlacement="0" XAdvance="-30"/>
</SinglePos>
<SinglePos index="1" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni3001"/>
</Coverage>
<ValueFormat value="23"/>
@@ -57,7 +57,7 @@
</Value>
</SinglePos>
<SinglePos index="2" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni30FB"/>
</Coverage>
<ValueFormat value="39"/>
@@ -70,7 +70,7 @@
</Value>
</SinglePos>
<SinglePos index="3" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uniFF2D"/>
</Coverage>
<ValueFormat value="87"/>
@@ -88,7 +88,7 @@
</Value>
</SinglePos>
<SinglePos index="4" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni3073"/>
</Coverage>
<ValueFormat value="71"/>
@@ -101,7 +101,7 @@
</Value>
</SinglePos>
<SinglePos index="5" Format="1">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="uni307B"/>
</Coverage>
<ValueFormat value="23"/>
diff --git a/Tests/varLib/featureVars_test.py b/Tests/varLib/featureVars_test.py
index 84228868..89675af2 100644
--- a/Tests/varLib/featureVars_test.py
+++ b/Tests/varLib/featureVars_test.py
@@ -1,4 +1,3 @@
-from fontTools.misc.py23 import *
from fontTools.varLib.featureVars import (
overlayFeatureVariations)
diff --git a/Tests/varLib/instancer/conftest.py b/Tests/varLib/instancer/conftest.py
new file mode 100644
index 00000000..0ac8091d
--- /dev/null
+++ b/Tests/varLib/instancer/conftest.py
@@ -0,0 +1,13 @@
+import os
+from fontTools import ttLib
+import pytest
+
+
+TESTDATA = os.path.join(os.path.dirname(__file__), "data")
+
+
+@pytest.fixture
+def varfont():
+ f = ttLib.TTFont()
+ f.importXML(os.path.join(TESTDATA, "PartialInstancerTest-VF.ttx"))
+ return f
diff --git a/Tests/varLib/data/PartialInstancerTest-VF.ttx b/Tests/varLib/instancer/data/PartialInstancerTest-VF.ttx
index 92540e03..268b5068 100644
--- a/Tests/varLib/data/PartialInstancerTest-VF.ttx
+++ b/Tests/varLib/instancer/data/PartialInstancerTest-VF.ttx
@@ -479,6 +479,9 @@
<namerecord nameID="296" platformID="3" platEncID="1" langID="0x409">
TestVariableFont-XCdBd
</namerecord>
+ <namerecord nameID="297" platformID="3" platEncID="1" langID="0x409">
+ Normal
+ </namerecord>
</name>
<post>
@@ -764,6 +767,15 @@
<Value value="0.0"/>
<LinkedValue value="1.0"/>
</AxisValue>
+ <AxisValue index="3" Format="4">
+ <!-- AxisCount=1 -->
+ <Flags value="2"/>
+ <ValueNameID value="297"/> <!-- Normal -->
+ <AxisValueRecord index="0">
+ <AxisIndex value="1"/>
+ <Value value="100.0"/>
+ </AxisValueRecord>
+ </AxisValue>
</AxisValueArray>
<ElidedFallbackNameID value="2"/> <!-- Regular -->
</STAT>
diff --git a/Tests/varLib/data/PartialInstancerTest2-VF.ttx b/Tests/varLib/instancer/data/PartialInstancerTest2-VF.ttx
index 6caef1bf..cd7ffa05 100644
--- a/Tests/varLib/data/PartialInstancerTest2-VF.ttx
+++ b/Tests/varLib/instancer/data/PartialInstancerTest2-VF.ttx
@@ -539,7 +539,7 @@
<GDEF>
<Version value="0x00010003"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="1"/>
@@ -547,13 +547,13 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=4 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
</Coverage>
- <Coverage index="1" Format="1">
+ <Coverage index="1">
</Coverage>
- <Coverage index="2" Format="1">
+ <Coverage index="2">
</Coverage>
- <Coverage index="3" Format="1">
+ <Coverage index="3">
</Coverage>
</MarkGlyphSetsDef>
<VarStore Format="1">
@@ -652,19 +652,19 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="T"/>
<Glyph value="Agrave"/>
</Coverage>
<ValueFormat1 value="68"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="2"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="2"/>
diff --git a/Tests/varLib/data/PartialInstancerTest3-VF.ttx b/Tests/varLib/instancer/data/PartialInstancerTest3-VF.ttx
index 01c7d050..01c7d050 100644
--- a/Tests/varLib/data/PartialInstancerTest3-VF.ttx
+++ b/Tests/varLib/instancer/data/PartialInstancerTest3-VF.ttx
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx
index 5e1107ce..776a92f1 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx
@@ -335,7 +335,7 @@
<GDEF>
<Version value="0x00010002"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="1"/>
@@ -343,13 +343,13 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=4 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
</Coverage>
- <Coverage index="1" Format="1">
+ <Coverage index="1">
</Coverage>
- <Coverage index="2" Format="1">
+ <Coverage index="2">
</Coverage>
- <Coverage index="3" Format="1">
+ <Coverage index="3">
</Coverage>
</MarkGlyphSetsDef>
</GDEF>
@@ -420,17 +420,17 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="T"/>
<Glyph value="Agrave"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="T" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="2"/>
@@ -531,7 +531,7 @@
</AxisValue>
<AxisValue index="1" Format="2">
<AxisIndex value="1"/>
- <Flags value="2"/>
+ <Flags value="2"/> <!-- ElidableAxisValueName -->
<ValueNameID value="261"/> <!-- Regular -->
<NominalValue value="100.0"/>
<RangeMinValue value="93.75"/>
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx
index 146e8634..61bc41cc 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx
@@ -335,7 +335,7 @@
<GDEF>
<Version value="0x00010002"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="1"/>
@@ -343,13 +343,13 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=4 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
</Coverage>
- <Coverage index="1" Format="1">
+ <Coverage index="1">
</Coverage>
- <Coverage index="2" Format="1">
+ <Coverage index="2">
</Coverage>
- <Coverage index="3" Format="1">
+ <Coverage index="3">
</Coverage>
</MarkGlyphSetsDef>
</GDEF>
@@ -420,17 +420,17 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="T"/>
<Glyph value="Agrave"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="T" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="2"/>
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx
index add86a67..c2d20571 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx
@@ -329,7 +329,7 @@
<GDEF>
<Version value="0x00010002"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="1"/>
@@ -337,13 +337,13 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=4 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
</Coverage>
- <Coverage index="1" Format="1">
+ <Coverage index="1">
</Coverage>
- <Coverage index="2" Format="1">
+ <Coverage index="2">
</Coverage>
- <Coverage index="3" Format="1">
+ <Coverage index="3">
</Coverage>
</MarkGlyphSetsDef>
</GDEF>
@@ -414,17 +414,17 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="T"/>
<Glyph value="Agrave"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="T" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="2"/>
@@ -519,14 +519,14 @@
<AxisValueArray>
<AxisValue index="0" Format="3">
<AxisIndex value="0"/>
- <Flags value="2"/>
+ <Flags value="2"/> <!-- ElidableAxisValueName -->
<ValueNameID value="261"/> <!-- Regular -->
<Value value="400.0"/>
<LinkedValue value="700.0"/>
</AxisValue>
<AxisValue index="1" Format="2">
<AxisIndex value="1"/>
- <Flags value="2"/>
+ <Flags value="2"/> <!-- ElidableAxisValueName -->
<ValueNameID value="261"/> <!-- Regular -->
<NominalValue value="100.0"/>
<RangeMinValue value="93.75"/>
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx
index 1405904a..63eeb0e7 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx
@@ -335,7 +335,7 @@
<GDEF>
<Version value="0x00010002"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="1"/>
@@ -343,13 +343,13 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=4 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
</Coverage>
- <Coverage index="1" Format="1">
+ <Coverage index="1">
</Coverage>
- <Coverage index="2" Format="1">
+ <Coverage index="2">
</Coverage>
- <Coverage index="3" Format="1">
+ <Coverage index="3">
</Coverage>
</MarkGlyphSetsDef>
</GDEF>
@@ -420,17 +420,17 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="T"/>
<Glyph value="Agrave"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="T" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="2"/>
@@ -525,7 +525,7 @@
<AxisValueArray>
<AxisValue index="0" Format="3">
<AxisIndex value="0"/>
- <Flags value="2"/>
+ <Flags value="2"/> <!-- ElidableAxisValueName -->
<ValueNameID value="261"/> <!-- Regular -->
<Value value="400.0"/>
<LinkedValue value="700.0"/>
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx
index e48936a8..013ba1e7 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx
@@ -335,7 +335,7 @@
<GDEF>
<Version value="0x00010002"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="1"/>
@@ -343,13 +343,13 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=4 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
</Coverage>
- <Coverage index="1" Format="1">
+ <Coverage index="1">
</Coverage>
- <Coverage index="2" Format="1">
+ <Coverage index="2">
</Coverage>
- <Coverage index="3" Format="1">
+ <Coverage index="3">
</Coverage>
</MarkGlyphSetsDef>
</GDEF>
@@ -420,17 +420,17 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="T"/>
<Glyph value="Agrave"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="T" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="2"/>
@@ -531,7 +531,7 @@
</AxisValue>
<AxisValue index="1" Format="2">
<AxisIndex value="1"/>
- <Flags value="2"/>
+ <Flags value="2"/> <!-- ElidableAxisValueName -->
<ValueNameID value="261"/> <!-- Regular -->
<NominalValue value="100.0"/>
<RangeMinValue value="93.75"/>
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx
index 62bd7228..45e34cbf 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx
@@ -335,7 +335,7 @@
<GDEF>
<Version value="0x00010002"/>
- <GlyphClassDef Format="1">
+ <GlyphClassDef>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="1"/>
@@ -343,13 +343,13 @@
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=4 -->
- <Coverage index="0" Format="1">
+ <Coverage index="0">
</Coverage>
- <Coverage index="1" Format="1">
+ <Coverage index="1">
</Coverage>
- <Coverage index="2" Format="1">
+ <Coverage index="2">
</Coverage>
- <Coverage index="3" Format="1">
+ <Coverage index="3">
</Coverage>
</MarkGlyphSetsDef>
</GDEF>
@@ -420,17 +420,17 @@
<LookupFlag value="8"/><!-- ignoreMarks -->
<!-- SubTableCount=1 -->
<PairPos index="0" Format="2">
- <Coverage Format="1">
+ <Coverage>
<Glyph value="A"/>
<Glyph value="T"/>
<Glyph value="Agrave"/>
</Coverage>
<ValueFormat1 value="4"/>
<ValueFormat2 value="0"/>
- <ClassDef1 Format="1">
+ <ClassDef1>
<ClassDef glyph="T" class="1"/>
</ClassDef1>
- <ClassDef2 Format="1">
+ <ClassDef2>
<ClassDef glyph="A" class="1"/>
<ClassDef glyph="Agrave" class="1"/>
<ClassDef glyph="T" class="2"/>
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx
index fc6310d5..fc6310d5 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx
index 3e18c9b7..3e18c9b7 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx
diff --git a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx
index be0353da..be0353da 100644
--- a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx
+++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx
diff --git a/Tests/varLib/instancer_test.py b/Tests/varLib/instancer/instancer_test.py
index 5e999dc8..cb7e8547 100644
--- a/Tests/varLib/instancer_test.py
+++ b/Tests/varLib/instancer/instancer_test.py
@@ -1,4 +1,4 @@
-from fontTools.misc.py23 import *
+from fontTools.misc.py23 import Tag
from fontTools.misc.fixedTools import floatToFixedToFloat
from fontTools import ttLib
from fontTools import designspaceLib
@@ -14,20 +14,17 @@ from fontTools.varLib import featureVars
from fontTools.varLib import models
import collections
from copy import deepcopy
+from io import BytesIO, StringIO
import logging
import os
import re
+from types import SimpleNamespace
import pytest
-TESTDATA = os.path.join(os.path.dirname(__file__), "data")
-
+# see Tests/varLib/instancer/conftest.py for "varfont" fixture definition
-@pytest.fixture
-def varfont():
- f = ttLib.TTFont()
- f.importXML(os.path.join(TESTDATA, "PartialInstancerTest-VF.ttx"))
- return f
+TESTDATA = os.path.join(os.path.dirname(__file__), "data")
@pytest.fixture(params=[True, False], ids=["optimize", "no-optimize"])
@@ -144,7 +141,7 @@ class InstantiateGvarTest(object):
assert "gvar" not in varfont
def test_composite_glyph_not_in_gvar(self, varfont):
- """ The 'minus' glyph is a composite glyph, which references 'hyphen' as a
+ """The 'minus' glyph is a composite glyph, which references 'hyphen' as a
component, but has no tuple variations in gvar table, so the component offset
and the phantom points do not change; however the sidebearings and bounding box
do change as a result of the parent glyph 'hyphen' changing.
@@ -1209,8 +1206,8 @@ class InstantiateSTATTest(object):
@pytest.mark.parametrize(
"location, expected",
[
- ({"wght": 400}, ["Regular", "Condensed", "Upright"]),
- ({"wdth": 100}, ["Thin", "Regular", "Black", "Upright"]),
+ ({"wght": 400}, ["Regular", "Condensed", "Upright", "Normal"]),
+ ({"wdth": 100}, ["Thin", "Regular", "Black", "Upright", "Normal"]),
],
)
def test_pin_and_drop_axis(self, varfont, location, expected):
@@ -1341,30 +1338,6 @@ class InstantiateSTATTest(object):
assert axisValue in varfont2["STAT"].table.AxisValueArray.AxisValue
-def test_pruningUnusedNames(varfont):
- varNameIDs = instancer.getVariationNameIDs(varfont)
-
- assert varNameIDs == set(range(256, 296 + 1))
-
- fvar = varfont["fvar"]
- stat = varfont["STAT"].table
-
- with instancer.pruningUnusedNames(varfont):
- del fvar.axes[0] # Weight (nameID=256)
- del fvar.instances[0] # Thin (nameID=258)
- del stat.DesignAxisRecord.Axis[0] # Weight (nameID=256)
- del stat.AxisValueArray.AxisValue[0] # Thin (nameID=258)
-
- assert not any(n for n in varfont["name"].names if n.nameID in {256, 258})
-
- with instancer.pruningUnusedNames(varfont):
- del varfont["fvar"]
- del varfont["STAT"]
-
- assert not any(n for n in varfont["name"].names if n.nameID in varNameIDs)
- assert "ltag" not in varfont
-
-
def test_setMacOverlapFlags():
flagOverlapCompound = _g_l_y_f.OVERLAP_COMPOUND
flagOverlapSimple = _g_l_y_f.flagOverlapSimple
diff --git a/Tests/varLib/instancer/names_test.py b/Tests/varLib/instancer/names_test.py
new file mode 100644
index 00000000..9774458a
--- /dev/null
+++ b/Tests/varLib/instancer/names_test.py
@@ -0,0 +1,322 @@
+from fontTools.ttLib.tables import otTables
+from fontTools.otlLib.builder import buildStatTable
+from fontTools.varLib import instancer
+
+import pytest
+
+
+def test_pruningUnusedNames(varfont):
+ varNameIDs = instancer.names.getVariationNameIDs(varfont)
+
+ assert varNameIDs == set(range(256, 297 + 1))
+
+ fvar = varfont["fvar"]
+ stat = varfont["STAT"].table
+
+ with instancer.names.pruningUnusedNames(varfont):
+ del fvar.axes[0] # Weight (nameID=256)
+ del fvar.instances[0] # Thin (nameID=258)
+ del stat.DesignAxisRecord.Axis[0] # Weight (nameID=256)
+ del stat.AxisValueArray.AxisValue[0] # Thin (nameID=258)
+
+ assert not any(n for n in varfont["name"].names if n.nameID in {256, 258})
+
+ with instancer.names.pruningUnusedNames(varfont):
+ del varfont["fvar"]
+ del varfont["STAT"]
+
+ assert not any(n for n in varfont["name"].names if n.nameID in varNameIDs)
+ assert "ltag" not in varfont
+
+
+def _test_name_records(varfont, expected, isNonRIBBI, platforms=[0x409]):
+ nametable = varfont["name"]
+ font_names = {
+ (r.nameID, r.platformID, r.platEncID, r.langID): r.toUnicode()
+ for r in nametable.names
+ }
+ for k in expected:
+ if k[-1] not in platforms:
+ continue
+ assert font_names[k] == expected[k]
+
+ font_nameids = set(i[0] for i in font_names)
+ if isNonRIBBI:
+ assert 16 in font_nameids
+ assert 17 in font_nameids
+
+ if "fvar" not in varfont:
+ assert 25 not in font_nameids
+
+
+@pytest.mark.parametrize(
+ "limits, expected, isNonRIBBI",
+ [
+ # Regular
+ (
+ {"wght": 400},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font",
+ (2, 3, 1, 0x409): "Regular",
+ (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Regular",
+ (6, 3, 1, 0x409): "TestVariableFont-Regular",
+ },
+ False,
+ ),
+ # Regular Normal (width axis Normal isn't included since it is elided)
+ (
+ {"wght": 400, "wdth": 100},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font",
+ (2, 3, 1, 0x409): "Regular",
+ (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Regular",
+ (6, 3, 1, 0x409): "TestVariableFont-Regular",
+ },
+ False,
+ ),
+ # Black
+ (
+ {"wght": 900},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font Black",
+ (2, 3, 1, 0x409): "Regular",
+ (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Black",
+ (6, 3, 1, 0x409): "TestVariableFont-Black",
+ (16, 3, 1, 0x409): "Test Variable Font",
+ (17, 3, 1, 0x409): "Black",
+ },
+ True,
+ ),
+ # Thin
+ (
+ {"wght": 100},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font Thin",
+ (2, 3, 1, 0x409): "Regular",
+ (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Thin",
+ (6, 3, 1, 0x409): "TestVariableFont-Thin",
+ (16, 3, 1, 0x409): "Test Variable Font",
+ (17, 3, 1, 0x409): "Thin",
+ },
+ True,
+ ),
+ # Thin Condensed
+ (
+ {"wght": 100, "wdth": 79},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font Thin Condensed",
+ (2, 3, 1, 0x409): "Regular",
+ (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-ThinCondensed",
+ (6, 3, 1, 0x409): "TestVariableFont-ThinCondensed",
+ (16, 3, 1, 0x409): "Test Variable Font",
+ (17, 3, 1, 0x409): "Thin Condensed",
+ },
+ True,
+ ),
+ # Condensed with unpinned weights
+ (
+ {"wdth": 79, "wght": instancer.AxisRange(400, 900)},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font Condensed",
+ (2, 3, 1, 0x409): "Regular",
+ (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Condensed",
+ (6, 3, 1, 0x409): "TestVariableFont-Condensed",
+ (16, 3, 1, 0x409): "Test Variable Font",
+ (17, 3, 1, 0x409): "Condensed",
+ },
+ True,
+ ),
+ ],
+)
+def test_updateNameTable_with_registered_axes_ribbi(
+ varfont, limits, expected, isNonRIBBI
+):
+ instancer.names.updateNameTable(varfont, limits)
+ _test_name_records(varfont, expected, isNonRIBBI)
+
+
+def test_updatetNameTable_axis_order(varfont):
+ axes = [
+ dict(
+ tag="wght",
+ name="Weight",
+ values=[
+ dict(value=400, name="Regular"),
+ ],
+ ),
+ dict(
+ tag="wdth",
+ name="Width",
+ values=[
+ dict(value=75, name="Condensed"),
+ ],
+ ),
+ ]
+ nametable = varfont["name"]
+ buildStatTable(varfont, axes)
+ instancer.names.updateNameTable(varfont, {"wdth": 75, "wght": 400})
+ assert nametable.getName(17, 3, 1, 0x409).toUnicode() == "Regular Condensed"
+
+ # Swap the axes so the names get swapped
+ axes[0], axes[1] = axes[1], axes[0]
+
+ buildStatTable(varfont, axes)
+ instancer.names.updateNameTable(varfont, {"wdth": 75, "wght": 400})
+ assert nametable.getName(17, 3, 1, 0x409).toUnicode() == "Condensed Regular"
+
+
+@pytest.mark.parametrize(
+ "limits, expected, isNonRIBBI",
+ [
+ # Regular | Normal
+ (
+ {"wght": 400},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font",
+ (2, 3, 1, 0x409): "Normal",
+ },
+ False,
+ ),
+ # Black | Negreta
+ (
+ {"wght": 900},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font Negreta",
+ (2, 3, 1, 0x409): "Normal",
+ (16, 3, 1, 0x409): "Test Variable Font",
+ (17, 3, 1, 0x409): "Negreta",
+ },
+ True,
+ ),
+ # Black Condensed | Negreta Zhuštěné
+ (
+ {"wght": 900, "wdth": 79},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font Negreta Zhuštěné",
+ (2, 3, 1, 0x409): "Normal",
+ (16, 3, 1, 0x409): "Test Variable Font",
+ (17, 3, 1, 0x409): "Negreta Zhuštěné",
+ },
+ True,
+ ),
+ ],
+)
+def test_updateNameTable_with_multilingual_names(varfont, limits, expected, isNonRIBBI):
+ name = varfont["name"]
+ # langID 0x405 is the Czech Windows langID
+ name.setName("Test Variable Font", 1, 3, 1, 0x405)
+ name.setName("Normal", 2, 3, 1, 0x405)
+ name.setName("Normal", 261, 3, 1, 0x405) # nameID 261=Regular STAT entry
+ name.setName("Negreta", 266, 3, 1, 0x405) # nameID 266=Black STAT entry
+ name.setName("Zhuštěné", 279, 3, 1, 0x405) # nameID 279=Condensed STAT entry
+
+ instancer.names.updateNameTable(varfont, limits)
+ _test_name_records(varfont, expected, isNonRIBBI, platforms=[0x405])
+
+
+def test_updateNameTable_missing_axisValues(varfont):
+ with pytest.raises(ValueError, match="Cannot find Axis Values \['wght=200'\]"):
+ instancer.names.updateNameTable(varfont, {"wght": 200})
+
+
+def test_updateNameTable_missing_stat(varfont):
+ del varfont["STAT"]
+ with pytest.raises(
+ ValueError, match="Cannot update name table since there is no STAT table."
+ ):
+ instancer.names.updateNameTable(varfont, {"wght": 400})
+
+
+@pytest.mark.parametrize(
+ "limits, expected, isNonRIBBI",
+ [
+ # Regular | Normal
+ (
+ {"wght": 400},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font",
+ (2, 3, 1, 0x409): "Italic",
+ (6, 3, 1, 0x409): "TestVariableFont-Italic",
+ },
+ False,
+ ),
+ # Black Condensed Italic
+ (
+ {"wght": 900, "wdth": 79},
+ {
+ (1, 3, 1, 0x409): "Test Variable Font Black Condensed",
+ (2, 3, 1, 0x409): "Italic",
+ (6, 3, 1, 0x409): "TestVariableFont-BlackCondensedItalic",
+ (16, 3, 1, 0x409): "Test Variable Font",
+ (17, 3, 1, 0x409): "Black Condensed Italic",
+ },
+ True,
+ ),
+ ],
+)
+def test_updateNameTable_vf_with_italic_attribute(
+ varfont, limits, expected, isNonRIBBI
+):
+ font_link_axisValue = varfont["STAT"].table.AxisValueArray.AxisValue[4]
+ # Unset ELIDABLE_AXIS_VALUE_NAME flag
+ font_link_axisValue.Flags &= ~instancer.names.ELIDABLE_AXIS_VALUE_NAME
+ font_link_axisValue.ValueNameID = 294 # Roman --> Italic
+
+ instancer.names.updateNameTable(varfont, limits)
+ _test_name_records(varfont, expected, isNonRIBBI)
+
+
+def test_updateNameTable_format4_axisValues(varfont):
+ # format 4 axisValues should dominate the other axisValues
+ stat = varfont["STAT"].table
+
+ axisValue = otTables.AxisValue()
+ axisValue.Format = 4
+ axisValue.Flags = 0
+ varfont["name"].setName("Dominant Value", 297, 3, 1, 0x409)
+ axisValue.ValueNameID = 297
+ axisValue.AxisValueRecord = []
+ for tag, value in (("wght", 900), ("wdth", 79)):
+ rec = otTables.AxisValueRecord()
+ rec.AxisIndex = next(
+ i for i, a in enumerate(stat.DesignAxisRecord.Axis) if a.AxisTag == tag
+ )
+ rec.Value = value
+ axisValue.AxisValueRecord.append(rec)
+ stat.AxisValueArray.AxisValue.append(axisValue)
+
+ instancer.names.updateNameTable(varfont, {"wdth": 79, "wght": 900})
+ expected = {
+ (1, 3, 1, 0x409): "Test Variable Font Dominant Value",
+ (2, 3, 1, 0x409): "Regular",
+ (16, 3, 1, 0x409): "Test Variable Font",
+ (17, 3, 1, 0x409): "Dominant Value",
+ }
+ _test_name_records(varfont, expected, isNonRIBBI=True)
+
+
+def test_updateNameTable_elided_axisValues(varfont):
+ stat = varfont["STAT"].table
+ # set ELIDABLE_AXIS_VALUE_NAME flag for all axisValues
+ for axisValue in stat.AxisValueArray.AxisValue:
+ axisValue.Flags |= instancer.names.ELIDABLE_AXIS_VALUE_NAME
+
+ stat.ElidedFallbackNameID = 266 # Regular --> Black
+ instancer.names.updateNameTable(varfont, {"wght": 400})
+ # Since all axis values are elided, the elided fallback name
+ # must be used to construct the style names. Since we
+ # changed it to Black, we need both a typoSubFamilyName and
+ # the subFamilyName set so it conforms to the RIBBI model.
+ expected = {(2, 3, 1, 0x409): "Regular", (17, 3, 1, 0x409): "Black"}
+ _test_name_records(varfont, expected, isNonRIBBI=True)
+
+
+def test_updateNameTable_existing_subfamily_name_is_not_regular(varfont):
+ # Check the subFamily name will be set to Regular when we update a name
+ # table to a non-RIBBI style and the current subFamily name is a RIBBI
+ # style which isn't Regular.
+ varfont["name"].setName("Bold", 2, 3, 1, 0x409) # subFamily Regular --> Bold
+
+ instancer.names.updateNameTable(varfont, {"wght": 100})
+ expected = {(2, 3, 1, 0x409): "Regular", (17, 3, 1, 0x409): "Thin"}
+ _test_name_records(varfont, expected, isNonRIBBI=True)
diff --git a/Tests/varLib/interpolatable_test.py b/Tests/varLib/interpolatable_test.py
index d6bc6ce6..a30be71e 100644
--- a/Tests/varLib/interpolatable_test.py
+++ b/Tests/varLib/interpolatable_test.py
@@ -1,4 +1,3 @@
-from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont
from fontTools.varLib.interpolatable import main as interpolatable_main
import os
diff --git a/Tests/varLib/interpolate_layout_test.py b/Tests/varLib/interpolate_layout_test.py
index 8fdf60f5..d7134d79 100644
--- a/Tests/varLib/interpolate_layout_test.py
+++ b/Tests/varLib/interpolate_layout_test.py
@@ -1,4 +1,3 @@
-from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont
from fontTools.varLib import build
from fontTools.varLib.interpolate_layout import interpolate_layout
diff --git a/Tests/varLib/models_test.py b/Tests/varLib/models_test.py
index 1027f29f..c220d3d2 100644
--- a/Tests/varLib/models_test.py
+++ b/Tests/varLib/models_test.py
@@ -1,4 +1,3 @@
-from fontTools.misc.py23 import *
from fontTools.varLib.models import (
normalizeLocation, supportScalar, VariationModel, VariationModelError)
import pytest
diff --git a/Tests/varLib/mutator_test.py b/Tests/varLib/mutator_test.py
index 010ab5dd..abe5d027 100644
--- a/Tests/varLib/mutator_test.py
+++ b/Tests/varLib/mutator_test.py
@@ -1,4 +1,3 @@
-from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont
from fontTools.varLib import build
from fontTools.varLib.mutator import main as mutator
diff --git a/Tests/varLib/varLib_test.py b/Tests/varLib/varLib_test.py
index da1f94f4..b8e7183b 100644
--- a/Tests/varLib/varLib_test.py
+++ b/Tests/varLib/varLib_test.py
@@ -1,7 +1,7 @@
-from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont, newTable
from fontTools.varLib import build, load_designspace
from fontTools.varLib.errors import VarLibValidationError
+import fontTools.varLib.errors as varLibErrors
from fontTools.varLib.mutator import instantiateVariableFont
from fontTools.varLib import main as varLib_main, load_masters
from fontTools.varLib import set_default_weight_width_slant
@@ -10,6 +10,7 @@ from fontTools.designspaceLib import (
)
from fontTools.feaLib.builder import addOpenTypeFeaturesFromString
import difflib
+from io import BytesIO
import os
import shutil
import sys
@@ -813,6 +814,62 @@ class BuildTest(unittest.TestCase):
assert ds_loaded.instances[0].location == {"weight": 0, "width": 50}
+ def test_varlib_build_incompatible_features(self):
+ with pytest.raises(
+ varLibErrors.ShouldBeConstant,
+ match = """
+
+Couldn't merge the fonts, because some values were different, but should have
+been the same. This happened while performing the following operation:
+GPOS.table.FeatureList.FeatureCount
+
+The problem is likely to be in Simple Two Axis Bold:
+
+Incompatible features between masters.
+Expected: kern, mark.
+Got: kern.
+"""):
+
+ self._run_varlib_build_test(
+ designspace_name="IncompatibleFeatures",
+ font_name="IncompatibleFeatures",
+ tables=["GPOS"],
+ expected_ttx_name="IncompatibleFeatures",
+ save_before_dump=True,
+ )
+
+ def test_varlib_build_incompatible_lookup_types(self):
+ with pytest.raises(
+ varLibErrors.MismatchedTypes,
+ match = r"MarkBasePos, instead saw PairPos"
+ ):
+ self._run_varlib_build_test(
+ designspace_name="IncompatibleLookupTypes",
+ font_name="IncompatibleLookupTypes",
+ tables=["GPOS"],
+ expected_ttx_name="IncompatibleLookupTypes",
+ save_before_dump=True,
+ )
+
+ def test_varlib_build_incompatible_arrays(self):
+ with pytest.raises(
+ varLibErrors.ShouldBeConstant,
+ match = """
+
+Couldn't merge the fonts, because some values were different, but should have
+been the same. This happened while performing the following operation:
+GPOS.table.ScriptList.ScriptCount
+
+The problem is likely to be in Simple Two Axis Bold:
+Expected to see .ScriptCount==1, instead saw 0"""
+ ):
+ self._run_varlib_build_test(
+ designspace_name="IncompatibleArrays",
+ font_name="IncompatibleArrays",
+ tables=["GPOS"],
+ expected_ttx_name="IncompatibleArrays",
+ save_before_dump=True,
+ )
def test_load_masters_layerName_without_required_font():
ds = DesignSpaceDocument()