ttf-parser 0.2.0

A high-level, safe, zero-allocation TrueType font parser.
Documentation
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.24">

  <!-- Based on https://github.com/harfbuzz/harfbuzz/blob/8062979990d348671b465c877e4dd672e1337665/test/api/fonts/Mplus1p-Regular.660E.ttf -->

  <GlyphOrder>
    <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
    <GlyphID id="0" name=".notdef"/>
    <GlyphID id="1" name="uni660E"/>
  </GlyphOrder>

  <head>
    <!-- Most of this table will be recalculated by the compiler -->
    <tableVersion value="1.0"/>
    <fontRevision value="1.06099"/>
    <checkSumAdjustment value="0xae4280d"/>
    <magicNumber value="0x5f0f3cf5"/>
    <flags value="00000010 00101011"/>
    <unitsPerEm value="1000"/>
    <created value="Tue Apr 12 05:33:16 2016"/>
    <modified value="Thu Sep 29 22:06:48 2016"/>
    <xMin value="-115"/>
    <yMin value="-343"/>
    <xMax value="1403"/>
    <yMax value="1075"/>
    <macStyle value="00000000 00000000"/>
    <lowestRecPPEM value="8"/>
    <fontDirectionHint value="0"/>
    <indexToLocFormat value="0"/>
    <glyphDataFormat value="0"/>
  </head>

  <hhea>
    <tableVersion value="0x00010000"/>
    <ascent value="1075"/>
    <descent value="-320"/>
    <lineGap value="90"/>
    <advanceWidthMax value="1428"/>
    <minLeftSideBearing value="-115"/>
    <minRightSideBearing value="-920"/>
    <xMaxExtent value="1403"/>
    <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="2"/>
  </hhea>

  <maxp>
    <!-- Most of this table will be recalculated by the compiler -->
    <tableVersion value="0x10000"/>
    <numGlyphs value="2"/>
    <maxPoints value="209"/>
    <maxContours value="22"/>
    <maxCompositePoints value="128"/>
    <maxCompositeContours value="12"/>
    <maxZones value="2"/>
    <maxTwilightPoints value="1"/>
    <maxStorage value="2"/>
    <maxFunctionDefs value="22"/>
    <maxInstructionDefs value="0"/>
    <maxStackElements value="256"/>
    <maxSizeOfInstructions value="46"/>
    <maxComponentElements value="1"/>
    <maxComponentDepth value="1"/>
  </maxp>

  <OS_2>
    <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
         will be recalculated by the compiler -->
    <version value="1"/>
    <xAvgCharWidth value="907"/>
    <usWeightClass value="400"/>
    <usWidthClass value="5"/>
    <fsType value="00000000 00000000"/>
    <ySubscriptXSize value="650"/>
    <ySubscriptYSize value="700"/>
    <ySubscriptXOffset value="0"/>
    <ySubscriptYOffset value="140"/>
    <ySuperscriptXSize value="650"/>
    <ySuperscriptYSize value="700"/>
    <ySuperscriptXOffset value="0"/>
    <ySuperscriptYOffset value="480"/>
    <yStrikeoutSize value="49"/>
    <yStrikeoutPosition value="258"/>
    <sFamilyClass value="2054"/>
    <panose>
      <bFamilyType value="2"/>
      <bSerifStyle value="11"/>
      <bWeight value="5"/>
      <bProportion value="2"/>
      <bContrast value="2"/>
      <bStrokeVariation value="2"/>
      <bArmStyle value="3"/>
      <bLetterForm value="2"/>
      <bMidline value="2"/>
      <bXHeight value="7"/>
    </panose>
    <ulUnicodeRange1 value="00000000 00000000 00000000 00000000"/>
    <ulUnicodeRange2 value="00001000 00000000 00000000 00000000"/>
    <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
    <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
    <achVendID value="M+  "/>
    <fsSelection value="00000000 01000000"/>
    <usFirstCharIndex value="26126"/>
    <usLastCharIndex value="26126"/>
    <sTypoAscender value="860"/>
    <sTypoDescender value="-140"/>
    <sTypoLineGap value="90"/>
    <usWinAscent value="1075"/>
    <usWinDescent value="320"/>
    <ulCodePageRange1 value="01100000 00010010 00000001 10111111"/>
    <ulCodePageRange2 value="11011111 11110111 00000000 00000000"/>
  </OS_2>

  <hmtx>
    <mtx name=".notdef" width="364" lsb="33"/>
    <mtx name="uni660E" width="1000" lsb="90"/>
  </hmtx>

  <cmap>
    <tableVersion version="0"/>
    <cmap_format_12 platformID="0" platEncID="4" format="12" reserved="0" length="28" language="0" nGroups="1">
      <map code="0x660e" name="uni660E"/><!-- CJK UNIFIED IDEOGRAPH-660E -->
    </cmap_format_12>
    <cmap_format_12 platformID="3" platEncID="10" format="12" reserved="0" length="28" language="0" nGroups="1">
      <map code="0x660e" name="uni660E"/><!-- CJK UNIFIED IDEOGRAPH-660E -->
    </cmap_format_12>
  </cmap>

  <cvt>
    <cv index="0" value="-220"/>
    <cv index="1" value="-10"/>
    <cv index="2" value="520"/>
    <cv index="3" value="730"/>
    <cv index="4" value="750"/>
    <cv index="5" value="33"/>
    <cv index="6" value="633"/>
  </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"/><!-- contains no outline data -->

    <TTGlyph name="uni660E" xMin="90" yMin="-82" xMax="910" yMax="777">
      <contour>
        <pt x="585" y="477" on="1"/>
        <pt x="585" y="388" on="1"/>
        <pt x="585" y="353" on="0"/>
        <pt x="581" y="293" on="1"/>
        <pt x="833" y="293" on="1"/>
        <pt x="833" y="477" on="1"/>
      </contour>
      <contour>
        <pt x="585" y="542" on="1"/>
        <pt x="833" y="542" on="1"/>
        <pt x="833" y="710" on="1"/>
        <pt x="585" y="710" on="1"/>
      </contour>
      <contour>
        <pt x="165" y="157" on="1"/>
        <pt x="165" y="93" on="1"/>
        <pt x="90" y="93" on="1"/>
        <pt x="90" y="760" on="1"/>
        <pt x="422" y="760" on="1"/>
        <pt x="422" y="157" on="1"/>
      </contour>
      <contour>
        <pt x="165" y="432" on="1"/>
        <pt x="165" y="223" on="1"/>
        <pt x="350" y="223" on="1"/>
        <pt x="350" y="432" on="1"/>
      </contour>
      <contour>
        <pt x="165" y="498" on="1"/>
        <pt x="350" y="498" on="1"/>
        <pt x="350" y="692" on="1"/>
        <pt x="165" y="692" on="1"/>
      </contour>
      <contour>
        <pt x="820" y="-73" on="1"/>
        <pt x="788" y="-73" on="0"/>
        <pt x="680" y="-68" on="1"/>
        <pt x="677" y="0" on="1"/>
        <pt x="765" y="-5" on="0"/>
        <pt x="790" y="-5" on="1"/>
        <pt x="822" y="-5" on="0"/>
        <pt x="833" y="10" on="0"/>
        <pt x="833" y="53" on="1"/>
        <pt x="833" y="228" on="1"/>
        <pt x="574" y="228" on="1"/>
        <pt x="545" y="45" on="0"/>
        <pt x="409" y="-82" on="1"/>
        <pt x="351" y="-33" on="1"/>
        <pt x="441" y="52" on="0"/>
        <pt x="512" y="251" on="0"/>
        <pt x="512" y="422" on="1"/>
        <pt x="512" y="777" on="1"/>
        <pt x="910" y="777" on="1"/>
        <pt x="910" y="53" on="1"/>
        <pt x="910" y="-34" on="0"/>
        <pt x="883" y="-73" on="0"/>
      </contour>
      <instructions/>
    </TTGlyph>

  </glyf>

  <name>
    <namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
      Mplus 1p
    </namerecord>
    <namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
      Regular
    </namerecord>
    <namerecord nameID="3" platformID="1" platEncID="0" langID="0x0" unicode="True">
      1.061g;GoogleFonts;Mplus1p-Regular
    </namerecord>
    <namerecord nameID="4" platformID="1" platEncID="0" langID="0x0" unicode="True">
      Mplus 1p
    </namerecord>
    <namerecord nameID="5" platformID="1" platEncID="0" langID="0x0" unicode="True">
      Version 1.061
    </namerecord>
    <namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
      Mplus1p-Regular
    </namerecord>
    <namerecord nameID="0" platformID="3" platEncID="1" langID="0x409">
      Copyright 2016 The M+ Project Authors.
    </namerecord>
    <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
      Mplus 1p
    </namerecord>
    <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
      Regular
    </namerecord>
    <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
      1.061g;GoogleFonts;Mplus1p-Regular
    </namerecord>
    <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
      Mplus 1p
    </namerecord>
    <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
      Version 1.061
    </namerecord>
    <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
      Mplus1p-Regular
    </namerecord>
    <namerecord nameID="11" platformID="3" platEncID="1" langID="0x409">
      http://mplus-fonts.osdn.jp
    </namerecord>
    <namerecord nameID="13" platformID="3" platEncID="1" langID="0x409">
      This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL
    </namerecord>
    <namerecord nameID="14" platformID="3" platEncID="1" langID="0x409">
      http://scripts.sil.org/OFL
    </namerecord>
  </name>

  <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>

  <gasp>
    <gaspRange rangeMaxPPEM="65535" rangeGaspBehavior="2"/>
  </gasp>

  <vhea>
    <tableVersion value="0x00011000"/>
    <ascent value="903"/>
    <descent value="-615"/>
    <lineGap value="90"/>
    <advanceHeightMax value="1000"/>
    <minTopSideBearing value="-215"/>
    <minBottomSideBearing value="-203"/>
    <yMaxExtent value="1203"/>
    <caretSlopeRise value="0"/>
    <caretSlopeRun value="1"/>
    <caretOffset 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="666"/>
    <mtx name="uni660E" height="1000" tsb="83"/>
  </vmtx>

</ttFont>