[subset] First unit tests and test data

This commit is contained in:
Miguel Sousa 2015-11-13 17:40:17 -08:00
parent 51bd7e00b5
commit 270b155d45
7 changed files with 1591 additions and 0 deletions

View File

@ -0,0 +1,99 @@
from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import *
from fontTools import subset
from fontTools.ttLib import TTFont
import codecs
import difflib
import os
import shutil
import sys
import tempfile
import unittest
class SubsetTest(unittest.TestCase):
def __init__(self, methodName):
unittest.TestCase.__init__(self, methodName)
# Python 3 renamed assertRaisesRegexp to assertRaisesRegex,
# and fires deprecation warnings if a program uses the old name.
if not hasattr(self, "assertRaisesRegex"):
self.assertRaisesRegex = self.assertRaisesRegexp
def setUp(self):
self.tempdir = None
self.num_tempfiles = 0
def tearDown(self):
if self.tempdir:
shutil.rmtree(self.tempdir)
@staticmethod
def getpath(testfile):
path, _ = os.path.split(__file__)
return os.path.join(path, "testdata", testfile)
def temp_path(self, suffix):
if not self.tempdir:
self.tempdir = tempfile.mkdtemp()
self.num_tempfiles += 1
return os.path.join(self.tempdir,
"tmp%d%s" % (self.num_tempfiles, suffix))
def read_ttx(self, path):
lines = []
with codecs.open(path, "r", "utf-8") as ttx:
for line in ttx.readlines():
# Elide ttFont attributes because ttLibVersion may change,
# and use os-native line separators so we can run difflib.
if line.startswith("<ttFont "):
lines.append("<ttFont>" + os.linesep)
else:
lines.append(line.rstrip() + os.linesep)
return lines
def expect_ttx(self, font, expected_ttx, tables):
path = self.temp_path(suffix=".ttx")
font.saveXML(path, quiet=True, tables=tables)
actual = self.read_ttx(path)
expected = self.read_ttx(expected_ttx)
if actual != expected:
for line in difflib.unified_diff(
expected, actual, fromfile=path, tofile=expected_ttx):
sys.stdout.write(line)
self.fail("TTX output is different from expected")
def compile_font(self, path, suffix):
savepath = self.temp_path(suffix=suffix)
font = TTFont(recalcBBoxes=False, recalcTimestamp=False)
font.importXML(path, quiet=True)
font.save(savepath, reorderTables=None)
return font, savepath
# -----
# Tests
# -----
def test_no_notdef_outline_otf(self):
_, fontpath = self.compile_font(self.getpath("TestOTF-Regular.ttx"), ".otf")
subsetpath = self.temp_path(".otf")
subset.main([fontpath, "--no-notdef-outline", "--gids=0", "--output-file=%s" % subsetpath])
subsetfont = TTFont(subsetpath)
self.expect_ttx(subsetfont, self.getpath("expect_no_notdef_outline_otf.ttx"), ["CFF "])
def test_no_notdef_outline_cid(self):
_, fontpath = self.compile_font(self.getpath("TestCID-Regular.ttx"), ".otf")
subsetpath = self.temp_path(".otf")
subset.main([fontpath, "--no-notdef-outline", "--gids=0", "--output-file=%s" % subsetpath])
subsetfont = TTFont(subsetpath)
self.expect_ttx(subsetfont, self.getpath("expect_no_notdef_outline_cid.ttx"), ["CFF "])
def test_no_notdef_outline_ttf(self):
_, fontpath = self.compile_font(self.getpath("TestTTF-Regular.ttx"), ".ttf")
subsetpath = self.temp_path(".ttf")
subset.main([fontpath, "--no-notdef-outline", "--gids=0", "--output-file=%s" % subsetpath])
subsetfont = TTFont(subsetpath)
self.expect_ttx(subsetfont, self.getpath("expect_no_notdef_outline_ttf.ttx"), ["glyf", "hmtx"])
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,389 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">
<GlyphOrder>
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
<GlyphID id="0" name=".notdef"/>
<GlyphID id="1" name="cid00001"/>
<GlyphID id="2" name="cid00002"/>
<GlyphID id="3" name="cid00003"/>
</GlyphOrder>
<head>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="1.0"/>
<fontRevision value="1.000"/>
<checkSumAdjustment value="0xbad6461a"/>
<magicNumber value="0x5f0f3cf5"/>
<flags value="00000000 00000011"/>
<unitsPerEm value="1000"/>
<created value="Mon Jun 15 05:17:40 2015"/>
<modified value="Mon Jun 15 05:17:40 2015"/>
<xMin value="-1000"/>
<yMin value="-1048"/>
<xMax value="2928"/>
<yMax value="1808"/>
<macStyle value="00000000 00000000"/>
<lowestRecPPEM value="3"/>
<fontDirectionHint value="2"/>
<indexToLocFormat value="0"/>
<glyphDataFormat value="0"/>
</head>
<hhea>
<tableVersion value="1.0"/>
<ascent value="1000"/>
<descent value="-320"/>
<lineGap value="0"/>
<advanceWidthMax value="1000"/>
<minLeftSideBearing value="-1000"/>
<minRightSideBearing value="-181"/>
<xMaxExtent value="2928"/>
<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="4"/>
</hhea>
<maxp>
<tableVersion value="0x5000"/>
<numGlyphs value="4"/>
</maxp>
<OS_2>
<version value="3"/>
<xAvgCharWidth value="979"/>
<usWeightClass value="350"/>
<usWidthClass value="5"/>
<fsType value="00000000 00000000"/>
<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="325"/>
<sFamilyClass value="0"/>
<panose>
<bFamilyType value="2"/>
<bSerifStyle value="11"/>
<bWeight value="4"/>
<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 00000000"/>
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
<achVendID value="UKWN"/>
<fsSelection value="00000000 00000000"/>
<fsFirstCharIndex value="0"/>
<fsLastCharIndex value="65535"/>
<sTypoAscender value="880"/>
<sTypoDescender value="-120"/>
<sTypoLineGap value="0"/>
<usWinAscent value="1160"/>
<usWinDescent value="320"/>
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
<sxHeight value="543"/>
<sCapHeight value="733"/>
<usDefaultChar value="0"/>
<usBreakChar value="32"/>
<usMaxContex value="6"/>
</OS_2>
<name>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Test CID
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
</name>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x20" name="cid00001"/><!-- SPACE -->
<map code="0x21" name="cid00002"/><!-- EXCLAMATION MARK -->
<map code="0x22" name="cid00003"/><!-- QUOTATION MARK -->
<map code="0xa0" name="cid00001"/><!-- NO-BREAK SPACE -->
</cmap_format_4>
<cmap_format_12 platformID="0" platEncID="4" format="12" reserved="0" length="424" language="0" nGroups="34">
<map code="0x20" name="cid00001"/><!-- SPACE -->
<map code="0x21" name="cid00002"/><!-- EXCLAMATION MARK -->
<map code="0x22" name="cid00003"/><!-- QUOTATION MARK -->
<map code="0xa0" name="cid00001"/><!-- NO-BREAK SPACE -->
</cmap_format_12>
<cmap_format_4 platformID="3" platEncID="1" language="0">
<map code="0x20" name="cid00001"/><!-- SPACE -->
<map code="0x21" name="cid00002"/><!-- EXCLAMATION MARK -->
<map code="0x22" name="cid00003"/><!-- QUOTATION MARK -->
<map code="0xa0" name="cid00001"/><!-- NO-BREAK SPACE -->
</cmap_format_4>
<cmap_format_12 platformID="3" platEncID="10" format="12" reserved="0" length="424" language="0" nGroups="34">
<map code="0x20" name="cid00001"/><!-- SPACE -->
<map code="0x21" name="cid00002"/><!-- EXCLAMATION MARK -->
<map code="0x22" name="cid00003"/><!-- QUOTATION MARK -->
<map code="0xa0" name="cid00001"/><!-- NO-BREAK SPACE -->
</cmap_format_12>
</cmap>
<post>
<formatType value="3.0"/>
<italicAngle value="0.0"/>
<underlinePosition value="-125"/>
<underlineThickness value="50"/>
<isFixedPitch value="0"/>
<minMemType42 value="0"/>
<maxMemType42 value="0"/>
<minMemType1 value="0"/>
<maxMemType1 value="0"/>
</post>
<CFF>
<CFFFont name="TestCID-Regular">
<ROS Registry="Adobe" Order="Identity" Supplement="0"/>
<FullName value="Test CID Regular"/>
<FamilyName value="Test CID"/>
<Weight value="Regular"/>
<isFixedPitch value="0"/>
<ItalicAngle value="0"/>
<UnderlinePosition value="-150"/>
<UnderlineThickness value="50"/>
<PaintType value="0"/>
<CharstringType value="2"/>
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FontBBox value="-1000 -1000 1000 1000"/>
<StrokeWidth value="0"/>
<CIDFontVersion value="1.000"/>
<CIDFontRevision value="0"/>
<CIDFontType value="0"/>
<CIDCount value="4"/>
<!-- charset is dumped separately as the 'GlyphOrder' element -->
<FDSelect format="3"/>
<FDArray>
<FontDict index="0">
<FontName value="TestCID-Regular-One"/>
<isFixedPitch value="0"/>
<ItalicAngle value="0"/>
<UnderlineThickness value="50"/>
<PaintType value="0"/>
<CharstringType value="2"/>
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FontBBox value="0 0 0 0"/>
<StrokeWidth value="0"/>
<Encoding name="StandardEncoding"/>
<Private>
<BlueValues value="-250 -250 1100 1100"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="40"/>
<StdVW value="40"/>
<StemSnapH value="40 120"/>
<StemSnapV value="40 120"/>
<ForceBold value="0"/>
<LanguageGroup value="1"/>
<ExpansionFactor value="0.06"/>
<initialRandomSeed value="0"/>
<defaultWidthX value="1000"/>
<nominalWidthX value="107"/>
<Subrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
</Subrs>
</Private>
</FontDict>
<FontDict index="1">
<FontName value="TestCID-Regular-Two"/>
<isFixedPitch value="0"/>
<ItalicAngle value="0"/>
<UnderlineThickness value="50"/>
<PaintType value="0"/>
<CharstringType value="2"/>
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FontBBox value="0 0 0 0"/>
<StrokeWidth value="0"/>
<Encoding name="StandardEncoding"/>
<Private>
<BlueValues value="-13 0 540 554 732 745"/>
<OtherBlues value="-251 -232 -227 -227"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="58"/>
<StdVW value="71"/>
<StemSnapH value="58 73 83"/>
<StemSnapV value="71 81 96"/>
<ForceBold value="0"/>
<LanguageGroup value="0"/>
<ExpansionFactor value="0.06"/>
<initialRandomSeed value="0"/>
<defaultWidthX value="602"/>
<nominalWidthX value="630"/>
<Subrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
<CharString index="0">
129 216 -105 callsubr
-82 hlineto
2 -98 rlineto
return
</CharString>
<CharString index="1">
-106 callgsubr
67 return
</CharString>
<CharString index="2">
rmoveto
56 hlineto
11 433 2 98 rlineto
return
</CharString>
<CharString index="3">
-33 -28 -26 -40 vhcurveto
hintmask 01100000
-38 28 -26 33 vhcurveto
endchar
</CharString>
<CharString index="4">
-13 130 -109 -21 return
</CharString>
<CharString index="5">
493 277 hstem
91 -105 callgsubr
return
</CharString>
</Subrs>
</Private>
</FontDict>
</FDArray>
<CharStrings>
<CharString name=".notdef" fdSelectIndex="0">
-120 50 900 50 hstem
100 50 700 50 vstem
100 -120 rmoveto
800 1000 -800 hlineto
400 -459 rmoveto
-318 409 rlineto
636 hlineto
-286 -450 rmoveto
318 409 rlineto
-818 vlineto
-668 -41 rmoveto
318 409 318 -409 rlineto
-668 859 rmoveto
318 -409 -318 -409 rlineto
endchar
</CharString>
<CharString name="cid00001" fdSelectIndex="1">
-407 endchar
</CharString>
<CharString name="cid00002" fdSelectIndex="1">
-316 -103 callsubr
-106 callsubr
hintmask 01010000
-107 callsubr
hintmask 01100000
39 -662 rmoveto
33 29 26 38 hvcurveto
hintmask 10100000
40 -29 26 -33 -104 callsubr
</CharString>
<CharString name="cid00003" fdSelectIndex="1">
-173 -102 callsubr
-104 callgsubr
86 vstem
108 493 rmoveto
52 hlineto
15 180 3 97 rlineto
-88 hlineto
2 -97 rlineto
203 -103 callgsubr
51 hlineto
17 180 2 97 rlineto
-88 hlineto
2 -97 rlineto
endchar
</CharString>
</CharStrings>
</CFFFont>
<GlobalSubrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
<CharString index="0">
123 -95.5 return
</CharString>
<CharString index="1">
hstemhm
96 -107 callgsubr
return
</CharString>
<CharString index="2">
85.5 return
</CharString>
<CharString index="3">
101.5 return
</CharString>
<CharString index="4">
-180 rmoveto
return
</CharString>
</GlobalSubrs>
</CFF>
<VORG>
<majorVersion value="1"/>
<minorVersion value="0"/>
<defaultVertOriginY value="880"/>
<numVertOriginYMetrics value="0"/>
</VORG>
<hmtx>
<mtx name=".notdef" width="1000" lsb="100"/>
<mtx name="cid00001" width="223" lsb="0"/>
<mtx name="cid00002" width="314" lsb="96"/>
<mtx name="cid00003" width="457" lsb="90"/>
</hmtx>
<vhea>
<tableVersion value="1.0625"/>
<ascent value="500"/>
<descent value="-500"/>
<lineGap value="0"/>
<advanceHeightMax value="3000"/>
<minTopSideBearing value="-1000"/>
<minBottomSideBearing value="-672"/>
<yMaxExtent value="2928"/>
<caretSlopeRise value="0"/>
<caretSlopeRun value="1"/>
<reserved0 value="0"/>
<reserved1 value="0"/>
<reserved2 value="0"/>
<reserved3 value="0"/>
<reserved4 value="0"/>
<metricDataFormat value="0"/>
<numberOfVMetrics value="1"/>
</vhea>
<vmtx>
<mtx name=".notdef" height="1000" tsb="0"/>
<mtx name="cid00001" height="1000" tsb="880"/>
<mtx name="cid00002" height="1000" tsb="133"/>
<mtx name="cid00003" height="1000" tsb="110"/>
</vmtx>
</ttFont>

View File

@ -0,0 +1,262 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">
<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="B"/>
<GlyphID id="3" name="C"/>
</GlyphOrder>
<head>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="1.0"/>
<fontRevision value="1.0"/>
<checkSumAdjustment value="0xc6122d26"/>
<magicNumber value="0x5f0f3cf5"/>
<flags value="00000000 00000011"/>
<unitsPerEm value="1000"/>
<created value="Fri Nov 13 01:59:53 2015"/>
<modified value="Fri Nov 13 01:59:53 2015"/>
<xMin value="10"/>
<yMin value="0"/>
<xMax value="486"/>
<yMax value="660"/>
<macStyle value="00000000 00000000"/>
<lowestRecPPEM value="3"/>
<fontDirectionHint value="2"/>
<indexToLocFormat value="0"/>
<glyphDataFormat value="0"/>
</head>
<hhea>
<tableVersion value="1.0"/>
<ascent value="660"/>
<descent value="-340"/>
<lineGap value="200"/>
<advanceWidthMax value="500"/>
<minLeftSideBearing value="10"/>
<minRightSideBearing value="10"/>
<xMaxExtent value="486"/>
<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="4"/>
</hhea>
<maxp>
<tableVersion value="0x5000"/>
<numGlyphs value="4"/>
</maxp>
<OS_2>
<version value="3"/>
<xAvgCharWidth value="474"/>
<usWeightClass value="400"/>
<usWidthClass value="5"/>
<fsType value="00000000 00000100"/>
<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="220"/>
<sFamilyClass value="0"/>
<panose>
<bFamilyType value="0"/>
<bSerifStyle value="0"/>
<bWeight value="5"/>
<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 00000000"/>
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
<achVendID value="UKWN"/>
<fsSelection value="00000000 01000000"/>
<fsFirstCharIndex value="65"/>
<fsLastCharIndex value="67"/>
<sTypoAscender value="660"/>
<sTypoDescender value="-340"/>
<sTypoLineGap value="200"/>
<usWinAscent value="1000"/>
<usWinDescent value="0"/>
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
<sxHeight value="0"/>
<sCapHeight value="0"/>
<usDefaultChar value="0"/>
<usBreakChar value="32"/>
<usMaxContex value="0"/>
</OS_2>
<name>
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0">
Test OTF
</namerecord>
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0">
Regular
</namerecord>
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0">
1.000;UKWN;TestOTF-Regular
</namerecord>
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0">
Test OTF
</namerecord>
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0">
Version 1.000;PS 1.0;hotconv 1.0.88;makeotf.lib2.5.647800
</namerecord>
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0">
TestOTF-Regular
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Test OTF
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
1.000;UKWN;TestOTF-Regular
</namerecord>
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
Test OTF
</namerecord>
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
Version 1.000;PS 1.0;hotconv 1.0.88;makeotf.lib2.5.647800
</namerecord>
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
TestOTF-Regular
</namerecord>
</name>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
<map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
<map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C -->
</cmap_format_4>
<cmap_format_6 platformID="1" platEncID="0" language="0">
<map code="0x41" name="A"/>
<map code="0x42" name="B"/>
<map code="0x43" name="C"/>
</cmap_format_6>
<cmap_format_4 platformID="3" platEncID="1" language="0">
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
<map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
<map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C -->
</cmap_format_4>
</cmap>
<post>
<formatType value="3.0"/>
<italicAngle value="0.0"/>
<underlinePosition value="-75"/>
<underlineThickness value="50"/>
<isFixedPitch value="0"/>
<minMemType42 value="0"/>
<maxMemType42 value="0"/>
<minMemType1 value="0"/>
<maxMemType1 value="0"/>
</post>
<CFF>
<CFFFont name="TestOTF-Regular">
<version value="1.0"/>
<FamilyName value="Test OTF"/>
<isFixedPitch value="0"/>
<ItalicAngle value="0"/>
<UnderlineThickness value="50"/>
<PaintType value="0"/>
<CharstringType value="2"/>
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FontBBox value="0 0 486 660"/>
<StrokeWidth value="0"/>
<!-- charset is dumped separately as the 'GlyphOrder' element -->
<Encoding name="StandardEncoding"/>
<Private>
<BlueValues value="-10 0 500 510"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="20"/>
<StdVW value="20"/>
<StemSnapH value="20"/>
<StemSnapV value="20"/>
<ForceBold value="0"/>
<LanguageGroup value="0"/>
<ExpansionFactor value="0.06"/>
<initialRandomSeed value="0"/>
<defaultWidthX value="500"/>
<nominalWidthX value="300"/>
<Subrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
<CharString index="0">
132 304 rmoveto
233 263 -233 hlineto
endchar
</CharString>
</Subrs>
</Private>
<CharStrings>
<CharString name=".notdef">
196 10 hmoveto
476 660 -476 hlineto
108 -602 rmoveto
74 132 54 103 rlineto
4 hlineto
52 -103 73 -132 rlineto
-129 329 rmoveto
-50 94 -66 119 rlineto
235 hlineto
-66 -119 -49 -94 rlineto
-175 -277 rmoveto
462 vlineto
127 -232 rlineto
217 -230 rmoveto
-126 230 126 232 rlineto
endchar
</CharString>
<CharString name="A">
-107 callsubr
</CharString>
<CharString name="B">
100 304 263 hstem
132 233 vstem
-107 callsubr
</CharString>
<CharString name="C">
endchar
</CharString>
</CharStrings>
</CFFFont>
<GlobalSubrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
</GlobalSubrs>
</CFF>
<hmtx>
<mtx name=".notdef" width="496" lsb="10"/>
<mtx name="A" width="500" lsb="132"/>
<mtx name="B" width="400" lsb="132"/>
<mtx name="C" width="500" lsb="0"/>
</hmtx>
</ttFont>

View File

@ -0,0 +1,705 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.5">
<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="B"/>
<GlyphID id="3" name="C"/>
</GlyphOrder>
<head>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="1.0"/>
<fontRevision value="1.0"/>
<checkSumAdjustment value="0x840fbf5c"/>
<magicNumber value="0x5f0f3cf5"/>
<flags value="00000000 00001011"/>
<unitsPerEm value="1000"/>
<created value="Fri Nov 13 03:46:42 2015"/>
<modified value="Fri Nov 13 11:59:06 2015"/>
<xMin value="10"/>
<yMin value="0"/>
<xMax value="486"/>
<yMax value="660"/>
<macStyle value="00000000 00000000"/>
<lowestRecPPEM value="9"/>
<fontDirectionHint value="2"/>
<indexToLocFormat value="0"/>
<glyphDataFormat value="0"/>
</head>
<hhea>
<tableVersion value="1.0"/>
<ascent value="660"/>
<descent value="-340"/>
<lineGap value="200"/>
<advanceWidthMax value="500"/>
<minLeftSideBearing value="10"/>
<minRightSideBearing value="10"/>
<xMaxExtent value="486"/>
<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="4"/>
</hhea>
<maxp>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="0x10000"/>
<numGlyphs value="4"/>
<maxPoints value="22"/>
<maxContours value="5"/>
<maxCompositePoints value="0"/>
<maxCompositeContours value="0"/>
<maxZones value="1"/>
<maxTwilightPoints value="0"/>
<maxStorage value="0"/>
<maxFunctionDefs value="10"/>
<maxInstructionDefs value="0"/>
<maxStackElements value="512"/>
<maxSizeOfInstructions value="371"/>
<maxComponentElements value="0"/>
<maxComponentDepth value="0"/>
</maxp>
<OS_2>
<version value="3"/>
<xAvgCharWidth value="474"/>
<usWeightClass value="400"/>
<usWidthClass value="5"/>
<fsType value="00000000 00000100"/>
<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="220"/>
<sFamilyClass value="0"/>
<panose>
<bFamilyType value="0"/>
<bSerifStyle value="0"/>
<bWeight value="5"/>
<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 00000000"/>
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
<achVendID value="UKWN"/>
<fsSelection value="00000000 01000000"/>
<fsFirstCharIndex value="0"/>
<fsLastCharIndex value="67"/>
<sTypoAscender value="660"/>
<sTypoDescender value="-340"/>
<sTypoLineGap value="200"/>
<usWinAscent value="1000"/>
<usWinDescent value="0"/>
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
<sxHeight value="0"/>
<sCapHeight value="0"/>
<usDefaultChar value="0"/>
<usBreakChar value="32"/>
<usMaxContex value="0"/>
</OS_2>
<hmtx>
<mtx name=".notdef" width="496" lsb="10"/>
<mtx name="A" width="500" lsb="132"/>
<mtx name="B" width="400" lsb="132"/>
<mtx name="C" width="500" lsb="0"/>
</hmtx>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
<map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
<map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C -->
</cmap_format_4>
<cmap_format_6 platformID="1" platEncID="0" language="0">
<map code="0x41" name="A"/>
<map code="0x42" name="B"/>
<map code="0x43" name="C"/>
</cmap_format_6>
<cmap_format_4 platformID="3" platEncID="1" language="0">
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
<map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
<map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C -->
</cmap_format_4>
</cmap>
<fpgm>
<assembly>
PUSH[ ] /* 1 value pushed */
0
FDEF[ ] /* FunctionDefinition */
MPPEM[ ] /* MeasurePixelPerEm */
PUSH[ ] /* 1 value pushed */
9
LT[ ] /* LessThan */
IF[ ] /* If */
PUSH[ ] /* 2 values pushed */
1 1
INSTCTRL[ ] /* SetInstrExecControl */
EIF[ ] /* EndIf */
PUSH[ ] /* 1 value pushed */
511
SCANCTRL[ ] /* ScanConversionControl */
PUSH[ ] /* 1 value pushed */
68
SCVTCI[ ] /* SetCVTCutIn */
PUSH[ ] /* 2 values pushed */
9 3
SDS[ ] /* SetDeltaShiftInGState */
SDB[ ] /* SetDeltaBaseInGState */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
1
FDEF[ ] /* FunctionDefinition */
DUP[ ] /* DuplicateTopStack */
DUP[ ] /* DuplicateTopStack */
RCVT[ ] /* ReadCVT */
ROUND[01] /* Round */
WCVTP[ ] /* WriteCVTInPixels */
PUSH[ ] /* 1 value pushed */
1
ADD[ ] /* Add */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
2
FDEF[ ] /* FunctionDefinition */
PUSH[ ] /* 1 value pushed */
1
LOOPCALL[ ] /* LoopAndCallFunction */
POP[ ] /* PopTopStack */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
3
FDEF[ ] /* FunctionDefinition */
DUP[ ] /* DuplicateTopStack */
GC[0] /* GetCoordOnPVector */
PUSH[ ] /* 1 value pushed */
3
CINDEX[ ] /* CopyXToTopStack */
GC[0] /* GetCoordOnPVector */
GT[ ] /* GreaterThan */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
EIF[ ] /* EndIf */
DUP[ ] /* DuplicateTopStack */
ROLL[ ] /* RollTopThreeStack */
DUP[ ] /* DuplicateTopStack */
ROLL[ ] /* RollTopThreeStack */
MD[0] /* MeasureDistance */
ABS[ ] /* Absolute */
ROLL[ ] /* RollTopThreeStack */
DUP[ ] /* DuplicateTopStack */
GC[0] /* GetCoordOnPVector */
DUP[ ] /* DuplicateTopStack */
ROUND[00] /* Round */
SUB[ ] /* Subtract */
ABS[ ] /* Absolute */
PUSH[ ] /* 1 value pushed */
4
CINDEX[ ] /* CopyXToTopStack */
GC[0] /* GetCoordOnPVector */
DUP[ ] /* DuplicateTopStack */
ROUND[00] /* Round */
SUB[ ] /* Subtract */
ABS[ ] /* Absolute */
GT[ ] /* GreaterThan */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
NEG[ ] /* Negate */
ROLL[ ] /* RollTopThreeStack */
EIF[ ] /* EndIf */
MDAP[1] /* MoveDirectAbsPt */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
0
GTEQ[ ] /* GreaterThanOrEqual */
IF[ ] /* If */
ROUND[01] /* Round */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
0
EQ[ ] /* Equal */
IF[ ] /* If */
POP[ ] /* PopTopStack */
PUSH[ ] /* 1 value pushed */
64
EIF[ ] /* EndIf */
ELSE[ ] /* Else */
ROUND[01] /* Round */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
0
EQ[ ] /* Equal */
IF[ ] /* If */
POP[ ] /* PopTopStack */
PUSH[ ] /* 1 value pushed */
64
NEG[ ] /* Negate */
EIF[ ] /* EndIf */
EIF[ ] /* EndIf */
MSIRP[0] /* MoveStackIndirRelPt */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
4
FDEF[ ] /* FunctionDefinition */
DUP[ ] /* DuplicateTopStack */
GC[0] /* GetCoordOnPVector */
PUSH[ ] /* 1 value pushed */
4
CINDEX[ ] /* CopyXToTopStack */
GC[0] /* GetCoordOnPVector */
GT[ ] /* GreaterThan */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
ROLL[ ] /* RollTopThreeStack */
EIF[ ] /* EndIf */
DUP[ ] /* DuplicateTopStack */
GC[0] /* GetCoordOnPVector */
DUP[ ] /* DuplicateTopStack */
ROUND[10] /* Round */
SUB[ ] /* Subtract */
ABS[ ] /* Absolute */
PUSH[ ] /* 1 value pushed */
4
CINDEX[ ] /* CopyXToTopStack */
GC[0] /* GetCoordOnPVector */
DUP[ ] /* DuplicateTopStack */
ROUND[10] /* Round */
SUB[ ] /* Subtract */
ABS[ ] /* Absolute */
GT[ ] /* GreaterThan */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
ROLL[ ] /* RollTopThreeStack */
EIF[ ] /* EndIf */
MDAP[1] /* MoveDirectAbsPt */
MIRP[11101] /* MoveIndirectRelPt */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
5
FDEF[ ] /* FunctionDefinition */
MPPEM[ ] /* MeasurePixelPerEm */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
3
MINDEX[ ] /* MoveXToTopStack */
LT[ ] /* LessThan */
IF[ ] /* If */
LTEQ[ ] /* LessThenOrEqual */
IF[ ] /* If */
PUSH[ ] /* 1 value pushed */
128
WCVTP[ ] /* WriteCVTInPixels */
ELSE[ ] /* Else */
PUSH[ ] /* 1 value pushed */
64
WCVTP[ ] /* WriteCVTInPixels */
EIF[ ] /* EndIf */
ELSE[ ] /* Else */
POP[ ] /* PopTopStack */
POP[ ] /* PopTopStack */
DUP[ ] /* DuplicateTopStack */
RCVT[ ] /* ReadCVT */
PUSH[ ] /* 1 value pushed */
192
LT[ ] /* LessThan */
IF[ ] /* If */
PUSH[ ] /* 1 value pushed */
192
WCVTP[ ] /* WriteCVTInPixels */
ELSE[ ] /* Else */
POP[ ] /* PopTopStack */
EIF[ ] /* EndIf */
EIF[ ] /* EndIf */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
6
FDEF[ ] /* FunctionDefinition */
DUP[ ] /* DuplicateTopStack */
DUP[ ] /* DuplicateTopStack */
RCVT[ ] /* ReadCVT */
ROUND[01] /* Round */
WCVTP[ ] /* WriteCVTInPixels */
PUSH[ ] /* 1 value pushed */
1
ADD[ ] /* Add */
DUP[ ] /* DuplicateTopStack */
DUP[ ] /* DuplicateTopStack */
RCVT[ ] /* ReadCVT */
RDTG[ ] /* RoundDownToGrid */
ROUND[01] /* Round */
RTG[ ] /* RoundToGrid */
WCVTP[ ] /* WriteCVTInPixels */
PUSH[ ] /* 1 value pushed */
1
ADD[ ] /* Add */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
7
FDEF[ ] /* FunctionDefinition */
PUSH[ ] /* 1 value pushed */
6
LOOPCALL[ ] /* LoopAndCallFunction */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
8
FDEF[ ] /* FunctionDefinition */
MPPEM[ ] /* MeasurePixelPerEm */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
3
MINDEX[ ] /* MoveXToTopStack */
GTEQ[ ] /* GreaterThanOrEqual */
IF[ ] /* If */
PUSH[ ] /* 1 value pushed */
64
ELSE[ ] /* Else */
PUSH[ ] /* 1 value pushed */
0
EIF[ ] /* EndIf */
ROLL[ ] /* RollTopThreeStack */
ROLL[ ] /* RollTopThreeStack */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
3
MINDEX[ ] /* MoveXToTopStack */
GTEQ[ ] /* GreaterThanOrEqual */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
POP[ ] /* PopTopStack */
PUSH[ ] /* 1 value pushed */
128
ROLL[ ] /* RollTopThreeStack */
ROLL[ ] /* RollTopThreeStack */
ELSE[ ] /* Else */
ROLL[ ] /* RollTopThreeStack */
SWAP[ ] /* SwapTopStack */
EIF[ ] /* EndIf */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
3
MINDEX[ ] /* MoveXToTopStack */
GTEQ[ ] /* GreaterThanOrEqual */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
POP[ ] /* PopTopStack */
PUSH[ ] /* 1 value pushed */
192
ROLL[ ] /* RollTopThreeStack */
ROLL[ ] /* RollTopThreeStack */
ELSE[ ] /* Else */
ROLL[ ] /* RollTopThreeStack */
SWAP[ ] /* SwapTopStack */
EIF[ ] /* EndIf */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
3
MINDEX[ ] /* MoveXToTopStack */
GTEQ[ ] /* GreaterThanOrEqual */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
POP[ ] /* PopTopStack */
PUSH[ ] /* 1 value pushed */
256
ROLL[ ] /* RollTopThreeStack */
ROLL[ ] /* RollTopThreeStack */
ELSE[ ] /* Else */
ROLL[ ] /* RollTopThreeStack */
SWAP[ ] /* SwapTopStack */
EIF[ ] /* EndIf */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
3
MINDEX[ ] /* MoveXToTopStack */
GTEQ[ ] /* GreaterThanOrEqual */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
POP[ ] /* PopTopStack */
PUSH[ ] /* 1 value pushed */
320
ROLL[ ] /* RollTopThreeStack */
ROLL[ ] /* RollTopThreeStack */
ELSE[ ] /* Else */
ROLL[ ] /* RollTopThreeStack */
SWAP[ ] /* SwapTopStack */
EIF[ ] /* EndIf */
DUP[ ] /* DuplicateTopStack */
PUSH[ ] /* 1 value pushed */
3
MINDEX[ ] /* MoveXToTopStack */
GTEQ[ ] /* GreaterThanOrEqual */
IF[ ] /* If */
PUSH[ ] /* 1 value pushed */
3
CINDEX[ ] /* CopyXToTopStack */
RCVT[ ] /* ReadCVT */
PUSH[ ] /* 1 value pushed */
384
LT[ ] /* LessThan */
IF[ ] /* If */
SWAP[ ] /* SwapTopStack */
POP[ ] /* PopTopStack */
PUSH[ ] /* 1 value pushed */
384
SWAP[ ] /* SwapTopStack */
POP[ ] /* PopTopStack */
ELSE[ ] /* Else */
PUSH[ ] /* 1 value pushed */
3
CINDEX[ ] /* CopyXToTopStack */
RCVT[ ] /* ReadCVT */
SWAP[ ] /* SwapTopStack */
POP[ ] /* PopTopStack */
SWAP[ ] /* SwapTopStack */
POP[ ] /* PopTopStack */
EIF[ ] /* EndIf */
ELSE[ ] /* Else */
POP[ ] /* PopTopStack */
EIF[ ] /* EndIf */
WCVTP[ ] /* WriteCVTInPixels */
ENDF[ ] /* EndFunctionDefinition */
PUSH[ ] /* 1 value pushed */
9
FDEF[ ] /* FunctionDefinition */
MPPEM[ ] /* MeasurePixelPerEm */
GTEQ[ ] /* GreaterThanOrEqual */
IF[ ] /* If */
RCVT[ ] /* ReadCVT */
WCVTP[ ] /* WriteCVTInPixels */
ELSE[ ] /* Else */
POP[ ] /* PopTopStack */
POP[ ] /* PopTopStack */
EIF[ ] /* EndIf */
ENDF[ ] /* EndFunctionDefinition */
</assembly>
</fpgm>
<prep>
<assembly>
PUSH[ ] /* 1 value pushed */
0
CALL[ ] /* CallFunction */
SVTCA[0] /* SetFPVectorToAxis */
PUSH[ ] /* 3 values pushed */
1 1 2
CALL[ ] /* CallFunction */
SVTCA[1] /* SetFPVectorToAxis */
PUSH[ ] /* 3 values pushed */
2 1 2
CALL[ ] /* CallFunction */
SVTCA[1] /* SetFPVectorToAxis */
PUSH[ ] /* 8 values pushed */
2 275 225 175 125 75 0 8
CALL[ ] /* CallFunction */
SVTCA[0] /* SetFPVectorToAxis */
PUSH[ ] /* 8 values pushed */
1 275 225 175 125 75 0 8
CALL[ ] /* CallFunction */
SVTCA[0] /* SetFPVectorToAxis */
PUSH[ ] /* 3 values pushed */
3 2 7
CALL[ ] /* CallFunction */
PUSH[ ] /* 1 value pushed */
0
DUP[ ] /* DuplicateTopStack */
RCVT[ ] /* ReadCVT */
RDTG[ ] /* RoundDownToGrid */
ROUND[01] /* Round */
RTG[ ] /* RoundToGrid */
WCVTP[ ] /* WriteCVTInPixels */
MPPEM[ ] /* MeasurePixelPerEm */
PUSH[ ] /* 1 value pushed */
96
GT[ ] /* GreaterThan */
IF[ ] /* If */
PUSH[ ] /* 1 value pushed */
1
ELSE[ ] /* Else */
PUSH[ ] /* 1 value pushed */
0
EIF[ ] /* EndIf */
PUSH[ ] /* 1 value pushed */
1
INSTCTRL[ ] /* SetInstrExecControl */
</assembly>
</prep>
<cvt>
<cv index="0" value="20"/>
<cv index="1" value="20"/>
<cv index="2" value="20"/>
<cv index="3" value="0"/>
<cv index="4" value="10"/>
<cv index="5" value="500"/>
<cv index="6" value="10"/>
</cvt>
<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="10" yMin="0" xMax="486" yMax="660">
<contour>
<pt x="10" y="660" on="1"/>
<pt x="486" y="660" on="1"/>
<pt x="486" y="0" on="1"/>
<pt x="10" y="0" on="1"/>
</contour>
<contour>
<pt x="375" y="58" on="1"/>
<pt x="302" y="190" on="1"/>
<pt x="250" y="293" on="1"/>
<pt x="246" y="293" on="1"/>
<pt x="192" y="190" on="1"/>
<pt x="118" y="58" on="1"/>
</contour>
<contour>
<pt x="250" y="387" on="1"/>
<pt x="299" y="481" on="1"/>
<pt x="365" y="600" on="1"/>
<pt x="130" y="600" on="1"/>
<pt x="196" y="481" on="1"/>
<pt x="246" y="387" on="1"/>
</contour>
<contour>
<pt x="202" y="340" on="1"/>
<pt x="75" y="572" on="1"/>
<pt x="75" y="110" on="1"/>
</contour>
<contour>
<pt x="419" y="572" on="1"/>
<pt x="293" y="340" on="1"/>
<pt x="419" y="110" on="1"/>
</contour>
<instructions><assembly>
</assembly></instructions>
</TTGlyph>
<TTGlyph name="A" xMin="132" yMin="304" xMax="365" yMax="567">
<contour>
<pt x="132" y="567" on="1"/>
<pt x="365" y="567" on="1"/>
<pt x="365" y="304" on="1"/>
<pt x="132" y="304" on="1"/>
</contour>
<instructions><assembly>
</assembly></instructions>
</TTGlyph>
<TTGlyph name="B" xMin="132" yMin="304" xMax="365" yMax="567">
<contour>
<pt x="132" y="567" on="1"/>
<pt x="365" y="567" on="1"/>
<pt x="365" y="304" on="1"/>
<pt x="132" y="304" on="1"/>
</contour>
<instructions><assembly>
SVTCA[0] /* SetFPVectorToAxis */
PUSH[ ] /* 3 values pushed */
1 2 3
CALL[ ] /* CallFunction */
IUP[0] /* InterpolateUntPts */
IUP[1] /* InterpolateUntPts */
</assembly></instructions>
</TTGlyph>
<TTGlyph name="C"/><!-- contains no outline data -->
</glyf>
<name>
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0">
TestTTF
</namerecord>
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0">
Regular
</namerecord>
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0">
1.000;UKWN;TestTTF-Regular
</namerecord>
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0">
TestTTF
</namerecord>
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0">
Version 1.000;PS 1.000;hotconv 1.0.88;makeotf.lib2.5.647800 DEVELOPMENT
</namerecord>
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0">
TestTTF-Regular
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
TestTTF
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
1.000;UKWN;TestTTF-Regular
</namerecord>
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
TestTTF
</namerecord>
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
Version 1.000;PS 1.000;hotconv 1.0.88;makeotf.lib2.5.647800 DEVELOPMENT
</namerecord>
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
TestTTF-Regular
</namerecord>
</name>
<post>
<formatType value="2.0"/>
<italicAngle value="0.0"/>
<underlinePosition value="-75"/>
<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 -->
</extraNames>
</post>
<gasp>
<gaspRange rangeMaxPPEM="65535" rangeGaspBehavior="2"/>
</gasp>
</ttFont>

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">
<CFF>
<CFFFont name="TestCID-Regular">
<ROS Registry="Adobe" Order="Identity" Supplement="0"/>
<FullName value="Test CID Regular"/>
<FamilyName value="Test CID"/>
<Weight value="Regular"/>
<isFixedPitch value="0"/>
<ItalicAngle value="0"/>
<UnderlinePosition value="-150"/>
<UnderlineThickness value="50"/>
<PaintType value="0"/>
<CharstringType value="2"/>
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FontBBox value="-1000 -1000 1000 1000"/>
<StrokeWidth value="0"/>
<CIDFontVersion value="1.0"/>
<CIDFontRevision value="0"/>
<CIDFontType value="0"/>
<CIDCount value="4"/>
<!-- charset is dumped separately as the 'GlyphOrder' element -->
<FDSelect format="3"/>
<FDArray>
<FontDict index="0">
<FontName value="TestCID-Regular-One"/>
<isFixedPitch value="0"/>
<ItalicAngle value="0"/>
<UnderlineThickness value="50"/>
<PaintType value="0"/>
<CharstringType value="2"/>
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FontBBox value="0 0 0 0"/>
<StrokeWidth value="0"/>
<Encoding name="StandardEncoding"/>
<Private>
<BlueValues value="-250 -250 1100 1100"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="40"/>
<StdVW value="40"/>
<StemSnapH value="40 120"/>
<StemSnapV value="40 120"/>
<ForceBold value="0"/>
<LanguageGroup value="1"/>
<ExpansionFactor value="0.06"/>
<initialRandomSeed value="0"/>
<defaultWidthX value="1000"/>
<nominalWidthX value="107"/>
<Subrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
</Subrs>
</Private>
</FontDict>
</FDArray>
<CharStrings>
<CharString name=".notdef" fdSelectIndex="0">
endchar
</CharString>
</CharStrings>
</CFFFont>
<GlobalSubrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
</GlobalSubrs>
</CFF>
</ttFont>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">
<CFF>
<CFFFont name="TestOTF-Regular">
<version value="1.0"/>
<FamilyName value="Test OTF"/>
<isFixedPitch value="0"/>
<ItalicAngle value="0"/>
<UnderlineThickness value="50"/>
<PaintType value="0"/>
<CharstringType value="2"/>
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FontBBox value="0 0 486 660"/>
<StrokeWidth value="0"/>
<!-- charset is dumped separately as the 'GlyphOrder' element -->
<Encoding name="StandardEncoding"/>
<Private>
<BlueValues value="-10 0 500 510"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="20"/>
<StdVW value="20"/>
<StemSnapH value="20"/>
<StemSnapV value="20"/>
<ForceBold value="0"/>
<LanguageGroup value="0"/>
<ExpansionFactor value="0.06"/>
<initialRandomSeed value="0"/>
<defaultWidthX value="500"/>
<nominalWidthX value="300"/>
<Subrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
</Subrs>
</Private>
<CharStrings>
<CharString name=".notdef">
196 endchar
</CharString>
</CharStrings>
</CFFFont>
<GlobalSubrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
</GlobalSubrs>
</CFF>
</ttFont>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.5">
<glyf>
<!-- The xMin, yMin, xMax and yMax values
will be recalculated by the compiler. -->
<TTGlyph name=".notdef"/><!-- contains no outline data -->
</glyf>
<hmtx>
<mtx name=".notdef" width="496" lsb="10"/>
</hmtx>
</ttFont>