[`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)

];
const NUM_STANDARD_CFF_STRINGS = 391;
const CFFParser = (function CFFParserClosure() {
  const CharstringValidationData = [
    null,
    { id: "hstem", min: 2, stackClearing: true, stem: true },
    null,
    { id: "vstem", min: 2, stackClearing: true, stem: true },
    { id: "vmoveto", min: 1, stackClearing: true },
    { id: "rlineto", min: 2, resetStack: true },
    { id: "hlineto", min: 1, resetStack: true },
    { id: "vlineto", min: 1, resetStack: true },
    { id: "rrcurveto", min: 6, resetStack: true },
    null,
    { id: "callsubr", min: 1, undefStack: true },
    { id: "return", min: 0, undefStack: true },
    null, 
    null,
    { id: "endchar", min: 0, stackClearing: true },
    null,
    null,
    null,
    { id: "hstemhm", min: 2, stackClearing: true, stem: true },
    { id: "hintmask", min: 0, stackClearing: true },
    { id: "cntrmask", min: 0, stackClearing: true },
    { id: "rmoveto", min: 2, stackClearing: true },
    { id: "hmoveto", min: 1, stackClearing: true },
    { id: "vstemhm", min: 2, stackClearing: true, stem: true },
    { id: "rcurveline", min: 8, resetStack: true },
    { id: "rlinecurve", min: 8, resetStack: true },