[`http://www.ei.ruhr-uni-bochum.de/media/crypto/veroeffentlichungen/2010/08/08/baileypaaroefjc.pdf`](http://www.ei.ruhr-uni-bochum.de/media/crypto/veroeffentlichungen/2010/08/08/baileypaaroefjc.pdf) is severely mis-rendered by the version of pdf.js bundled with Firefox 38.0.5:

![screen shot of misrendered PDF using pdf.js](https://cloud.githubusercontent.com/assets/325899/8235479/3876046e-15b0-11e5-97c0-ecbb5d9f8ee8.png)

You can see that practically every word has some blanks where letters should be.

Note that Adobe Reader (11.0.09) does a _better_ job of rendering but still has many missing characters, and throws up an error message about a font that it "cannot extract", so the PDF itself may be ill-formed (in which case pdf.js should give an error message too).

![screen shot of the same PDF with Adobe Reader 11.0.09](https://cloud.githubusercontent.com/assets/325899/8235615/da33e866-15b0-11e5-96a2-8b9f15c6f74d.png)

if (this.charStrings.count >= 65535) {
      warn("Not enough space in charstrings to duplicate first glyph.");
      return;
    }
    const glyphZero = this.charStrings.get(0);
    this.charStrings.add(glyphZero);
    if (this.isCIDFont) {
      this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);
    }
  }
  hasGlyphId(id) {
    if (id < 0 || id >= this.charStrings.count) {
      return false;
    }
    const glyph = this.charStrings.get(id);
    return glyph.length > 0;
  }
}
class CFFHeader {
  constructor(major, minor, hdrSize, offSize) {
    this.major = major;
    this.minor = minor;
    this.hdrSize = hdrSize;
    this.offSize = offSize;
  }
}
class CFFStrings {