{"version":3,"file":"pdfparser.cjs","sources":["../lib/pkinfo.js","../lib/pdfconst.js","../lib/pdfunit.js","../lib/pdffield.js","../lib/pdffont.js","../lib/ptixmlinject.js","../lib/pdfline.js","../lib/pdffill.js","../lib/pdfcanvas.js","../lib/pdfanno.js","../lib/pdfimage.js","../lib/pdfjs-code.js","../lib/pdf.js","../lib/parserstream.js","../pdfparser.js"],"sourcesContent":["// import path from \"path\";\n// import { fileURLToPath } from \"url\";\n// import fs from \"fs\";\nimport * as pkInfo from \"../package.json\";\n\n// const __filename = fileURLToPath(import.meta.url);\n// const __dirname = path.dirname(__filename);\n// const pkInfo = JSON.parse(fs.readFileSync(`${__dirname}/../package.json`, \"utf8\"));\nconst _PARSER_SIG = `${pkInfo.name}@${pkInfo.version} [${pkInfo.homepage}]`;\n\nexport { pkInfo, _PARSER_SIG };\n","export const kColors = [\n    '#000000',\t\t// 0\n    '#ffffff',\t\t// 1\n    '#4c4c4c',\t\t// 2\n    '#808080',\t\t// 3\n    '#999999',\t\t// 4\n    '#c0c0c0',\t\t// 5\n    '#cccccc',\t\t// 6\n    '#e5e5e5',\t\t// 7\n    '#f2f2f2',\t\t// 8\n    '#008000',\t\t// 9\n    '#00ff00',\t\t// 10\n    '#bfffa0',\t\t// 11\n    '#ffd629',\t\t// 12\n    '#ff99cc',\t\t// 13\n    '#004080',\t\t// 14\n    '#9fc0e1',\t\t// 15\n    '#5580ff',\t\t// 16\n    '#a9c9fa',\t\t// 17\n    '#ff0080',\t\t// 18\n    '#800080',\t\t// 19\n    '#ffbfff',\t\t// 20\n    '#e45b21',\t\t// 21\n    '#ffbfaa',\t\t// 22\n    '#008080',\t\t// 23\n    '#ff0000',\t\t// 24\n    '#fdc59f',\t\t// 25\n    '#808000',\t\t// 26\n    '#bfbf00',\t\t// 27\n    '#824100',\t\t// 28\n    '#007256',\t\t// 29\n    '#008000',\t\t// 30\n    '#000080',\t\t// Last + 1\n    '#008080',\t\t// Last + 2\n    '#800080',\t\t// Last + 3\n    '#ff0000',\t\t// Last + 4\n    '#0000ff',\t\t// Last + 5\n    '#008000'\t\t// Last + 6\n];\n\nexport const kFontFaces = [\n    \"quicktype,arial,helvetica,sans-serif\",\t\t\t\t\t\t\t// 00 - QuickType - sans-serif variable font\n    \"quicktype condensed,arial narrow,arial,helvetica,sans-serif\",\t// 01 - QuickType Condensed - thin sans-serif variable font\n    \"quicktypepi,quicktypeiipi\",\t\t\t\t\t\t\t\t\t// 02 - QuickType Pi\n    \"quicktype mono,courier new,courier,monospace\",\t\t\t\t\t// 03 - QuickType Mono - san-serif fixed font\n    \"ocr-a,courier new,courier,monospace\",\t\t\t\t\t\t\t// 04 - OCR-A - OCR readable san-serif fixed font\n    \"ocr b mt,courier new,courier,monospace\"\t\t\t\t\t\t// 05 - OCR-B MT - OCR readable san-serif fixed font\n ];\n\n export const kFontStyles = [\n    // Face\t\tSize\tBold\tItalic\t\tStyleID(Comment)\n    // -----\t----\t----\t-----\t\t-----------------\n        [0,\t\t6,\t\t0,\t\t0],\t\t\t//00\n        [0,\t\t8,\t\t0,\t\t0],\t\t\t//01\n        [0,\t\t10,\t\t0,\t\t0],\t\t\t//02\n        [0,\t\t12,\t\t0,\t\t0],\t\t\t//03\n        [0,\t\t14,\t\t0,\t\t0],\t\t\t//04\n        [0,\t\t18,\t\t0,\t\t0],\t\t\t//05\n        [0,\t\t6,\t\t1,\t\t0],\t\t\t//06\n        [0,\t\t8,\t\t1,\t\t0],\t\t\t//07\n        [0,\t\t10,\t\t1,\t\t0],\t\t\t//08\n        [0,\t\t12,\t\t1,\t\t0],\t\t\t//09\n        [0,\t\t14,\t\t1,\t\t0],\t\t\t//10\n        [0,\t\t18,\t\t1,\t\t0],\t\t\t//11\n        [0,\t\t6,\t\t0,\t\t1],\t\t\t//12\n        [0,\t\t8,\t\t0,\t\t1],\t\t\t//13\n        [0,\t\t10,\t\t0,\t\t1],\t\t\t//14\n        [0,\t\t12,\t\t0,\t\t1],\t\t\t//15\n        [0,\t\t14,\t\t0,\t\t1],\t\t\t//16\n        [0,\t\t18,\t\t0,\t\t1],\t\t\t//17\n        [0,\t\t6,\t\t1,\t\t1],\t\t\t//18\n        [0,\t\t8,\t\t1,\t\t1],\t\t\t//19\n        [0,\t\t10,\t\t1,\t\t1],\t\t\t//20\n        [0,\t\t12,\t\t1,\t\t1],\t\t\t//21\n        [0,\t\t14,\t\t1,\t\t1],\t\t\t//22\n        [0,\t\t18,\t\t1,\t\t1],\t\t\t//23\n        [1,\t\t6,\t\t0,\t\t0],\t\t\t//24\n        [1,\t\t8,\t\t0,\t\t0],\t\t\t//25\n        [1,\t\t10,\t\t0,\t\t0],\t\t\t//26\n        [1,\t\t12,\t\t0,\t\t0],\t\t\t//27\n        [1,\t\t14,\t\t0,\t\t0],\t\t\t//28\n        [1,\t\t18,\t\t0,\t\t0],\t\t\t//29\n        [1,\t\t6,\t\t1,\t\t0],\t\t\t//30\n        [1,\t\t8,\t\t1,\t\t0],\t\t\t//31\n        [1,\t\t10,\t\t1,\t\t0],\t\t\t//32\n        [1,\t\t12,\t\t1,\t\t0],\t\t\t//33\n        [1,\t\t14,\t\t1,\t\t0],\t\t\t//34\n        [1,\t\t18,\t\t1,\t\t0],\t\t\t//35\n        [1,\t\t6,\t\t0,\t\t1],\t\t\t//36\n        [1,\t\t8,\t\t0,\t\t1],\t\t\t//37\n        [1,\t\t10,\t\t0,\t\t1],\t\t\t//38\n        [1,\t\t12,\t\t0,\t\t1],\t\t\t//39\n        [1,\t\t14,\t\t0,\t\t1],\t\t\t//40\n        [1,\t\t18,\t\t0,\t\t1],\t\t\t//41\n        [2,\t\t8,\t\t0,\t\t0],\t\t\t//42\n        [2,\t\t10,\t\t0,\t\t0],\t\t\t//43\n        [2,\t\t12,\t\t0,\t\t0],\t\t\t//44\n        [2,\t\t14,\t\t0,\t\t0],\t\t\t//45\n        [2,\t\t18,\t\t0,\t\t0],\t\t\t//46\n        [3,\t\t8,\t\t0,\t\t0],\t\t\t//47\n        [3,\t\t10,\t\t0,\t\t0],\t\t\t//48\n        [3,\t\t12,\t\t0,\t\t0],\t\t\t//49\n        [4,\t\t12,\t\t0,\t\t0],\t\t\t//50\n        [0,\t\t9,\t\t0,\t\t0],\t\t\t//51\n        [0,\t\t9,\t\t1,\t\t0],\t\t\t//52\n        [0,\t\t9,\t\t0,\t\t1],\t\t\t//53\n        [0,\t\t9,\t\t1,\t\t1],\t\t\t//54\n        [1,\t\t9,\t\t0,\t\t0],\t\t\t//55\n        [1,\t\t9,\t\t1,\t\t0],\t\t\t//56\n        [1,\t\t9,\t\t1,\t\t1],\t\t\t//57\n        [4,\t\t10,\t\t0,\t\t0],\t\t\t//58\n        [5,\t\t10,\t\t0,\t\t0],\t\t\t//59\n        [5,\t\t12,\t\t0,\t\t0]\t\t\t//60\n];","import { kColors } from \"./pdfconst.js\";\n\nconst dpi = 96.0;\nconst gridXPerInch = 4.0;\nconst gridYPerInch = 4.0;\n\nconst _pixelXPerGrid = dpi/gridXPerInch;\nconst _pixelYPerGrid = dpi/gridYPerInch;\nconst _pixelPerPoint = dpi/72;\n\nexport default class PDFUnit {\n    static toFixedFloat(fNum) {\n        return parseFloat(fNum.toFixed(3));\n    }\n\n    static colorCount() {\n        return kColors.length;\n    }\n\n    static toPixelX(formX) {\n        return Math.round(formX * _pixelXPerGrid);\n    }\n\n    static toPixelY(formY) {\n        return Math.round(formY * _pixelYPerGrid);\n    }\n\n    static pointToPixel(point) {// Point unit (1/72 an inch) to pixel units\n        return point * _pixelPerPoint;\n    }\n\n    static getColorByIndex(clrId) {\n        return kColors[clrId];\n    }\n\n    static toFormPoint(viewportX, viewportY) {\n        return [(viewportX / _pixelXPerGrid), (viewportY / _pixelYPerGrid)];\n    }\n\n    static toFormX(viewportX) {\n        return PDFUnit.toFixedFloat(viewportX / _pixelXPerGrid);\n    }\n\n    static toFormY(viewportY) {\n        return PDFUnit.toFixedFloat(viewportY / _pixelYPerGrid);\n    }\n\n    static findColorIndex(color) {\n        if (color.length === 4)\n            color += \"000\";\n        //MQZ. 07/29/2013: if color is not in dictionary, just return -1. The caller (pdffont, pdffill) will set the actual color\n        return kColors.indexOf(color);\n    }\n\n    static dateToIso8601(date) {\n        // PDF spec p.160\n        if (date.slice(0, 2) === 'D:') { // D: prefix is optional\n            date = date.slice(2);\n        }\n        let tz = 'Z';\n        const idx = date.search(/[Z+-]/); // timezone is optional\n        if (idx >= 0) {\n            tz = date.slice(idx);\n            if (tz !== 'Z') { // timezone format OHH'mm'\n                tz = `${tz.slice(0, 3)}:${tz.slice(4, 6)}`;\n            }\n            date = date.slice(0, idx);\n        }\n        const yr = date.slice(0, 4); // everything after year is optional\n        const mth = date.slice(4, 6) || '01';\n        const day = date.slice(6, 8) || '01';\n        const hr = date.slice(8, 10) || '00';\n        const min = date.slice(10, 12) || '00';\n        const sec = date.slice(12, 14) || '00';\n        return `${yr}-${mth}-${day}T${hr}:${min}:${sec}${tz}`;\n    }\n}\n","import nodeUtil from \"util\";\nimport PDFUnit from \"./pdfunit.js\";\n\nconst kFBANotOverridable = 0x00000400; // indicates the field is read only by the user\nconst kFBARequired = 0x00000010; // indicates the field is required\nconst kMinHeight = 20;\n\nexport default class PDFField {\n    static tabIndex = 0;\n\n    static isWidgetSupported(field) {\n        let retVal = false;\n\n        switch(field.fieldType) {\n            case 'Tx': retVal = true; break; //text input\n            case 'Btn':\n                if (field.fieldFlags & 32768) {\n                    field.fieldType = 'Rd'; //radio button\n                }\n                else if (field.fieldFlags & 65536) {\n                    field.fieldType = 'Btn'; //push button\n                }\n                else {\n                    field.fieldType = 'Cb'; //checkbox\n                }\n                retVal = true;\n                break;\n            case 'Ch': retVal = true; break; //drop down\n            case 'Sig': retVal = true; break; //signature\n            default:\n                nodeUtil.p2jwarn(`Unsupported: field.fieldType of ${field.fieldType}`);\n                break;\n        }\n\n        return retVal;\n    }\n\n    static isFormElement(field) {\n        let retVal = false;\n        switch(field.subtype) {\n            case 'Widget': retVal = PDFField.isWidgetSupported(field); break;\n            default:\n                nodeUtil.p2jwarn(`Unsupported: field.type of ${field.subtype}`);\n                break;\n        }\n        return retVal;\n    }\n\n    // constructor\n    constructor(field, viewport, Fields, Boxsets) {\n        this.field = field;\n        this.viewport = viewport;\n        this.Fields = Fields;\n        this.Boxsets = Boxsets;\n    }\n\n    // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n    // For coordinate systems whose origin lies in the bottom-left, this\n    // means normalization to (BL,TR) ordering. For systems with origin in the\n    // top-left, this means (TL,BR) ordering.\n    static #normalizeRect(rect) {\n        const r = rect.slice(0); // clone rect\n        if (rect[0] > rect[2]) {\n            r[0] = rect[2];\n            r[2] = rect[0];\n        }\n        if (rect[1] > rect[3]) {\n            r[1] = rect[3];\n            r[3] = rect[1];\n        }\n        return r;\n    }\n\n    #getFieldPosition(field) {\n        const viewPort = this.viewport;\n        const fieldRect = viewPort.convertToViewportRectangle(field.rect);\n        const rect = PDFField.#normalizeRect(fieldRect);\n\n        let height = rect[3] - rect[1];\n        if (field.fieldType === 'Tx') {\n            if (height > kMinHeight + 2) {\n                rect[1] += 2;\n                height -= 2;\n            }\n        }\n        else if (field.fieldType !== 'Ch') { //checkbox, radio button, and link button\n            rect[1] -= 3;\n        }\n\n        height = (height >= kMinHeight) ? height : kMinHeight;\n\n        return {\n            x: PDFUnit.toFormX(rect[0]),\n            y: PDFUnit.toFormY(rect[1]),\n            w: PDFUnit.toFormX(rect[2] - rect[0]),\n            h: PDFUnit.toFormY(height)\n        };\n    }\n\n    #getFieldBaseData(field) {\n        let attributeMask = 0;\n        //PDF Spec p.676 TABLE 8.70 Field flags common to all field types\n        if (field.fieldFlags & 0x00000001) {\n            attributeMask |= kFBANotOverridable;\n        }\n        if (field.fieldFlags & 0x00000002) {\n            attributeMask |= kFBARequired;\n        }\n\n        const anData = {\n            id: { Id: field.fullName, EN: 0 },\n            TI: field.TI,\n            AM: attributeMask\n        };\n        //PDF Spec p.675: add TU (AlternativeText) fields to provide accessibility info\n        if (field.alternativeText && field.alternativeText.length > 1) {\n            anData.TU = field.alternativeText;\n        }\n\n        if (field.alternativeID && field.alternativeID.length > 1) {\n            anData.TM = field.alternativeID;\n        }\n\n        return Object.assign(anData, this.#getFieldPosition(field));\n    }\n\n    #addAlpha(field) {\n        const anData = Object.assign({\n            style: 48,\n            T: {\n                Name: field.TName || \"alpha\",\n                TypeInfo: {}\n            }\n        }, this.#getFieldBaseData(field));\n\n        if (field.MV) { //field attributes: arbitrary mask value\n            anData.MV = field.MV;\n        }\n        if (field.fieldValue) {\n            anData.V = field.fieldValue; //read-only field value, like \"self-prepared\"\n        }\n\n        this.Fields.push(anData);\n    }\n\n    #addCheckBox(box) {\n        const anData = Object.assign({\n            style: 48,\n            T: {\n                Name: \"box\",\n                TypeInfo: {}\n            }\n        }, this.#getFieldBaseData(box));\n        if(box.fieldValue) {\n            anData.checked = box.fieldValue !== 'Off';\n          }\n\n        this.Boxsets.push({ boxes:[anData] });\n    }\n\n    #addRadioButton(box) {\n        const anData = Object.assign({\n            style: 48,\n            T: {\n                Name: \"box\",\n                TypeInfo: {}\n            }\n        }, this.#getFieldBaseData(box));\n\n        anData.id.Id = box.value;\n        if ('checked' in box) {\n            anData.checked = box.checked;\n        }\n\n        const rdGroup = this.Boxsets.filter(boxset => ('id' in boxset) && ('Id' in boxset.id) && (boxset.id.Id === box.fullName))[0];\n        if ((!!rdGroup) && ('boxes' in rdGroup)) {\n            rdGroup.boxes.push(anData);\n        }\n        else {\n            this.Boxsets.push({ boxes:[anData], id: { Id: box.fullName, EN: 0 } });\n        }\n    }\n\n    #addLinkButton(field) {\n        const anData = Object.assign({\n            style: 48,\n            T: {\n                Name: \"link\"\n            },\n            FL: {\n                form: { Id: field.FL }\n            }\n        }, this.#getFieldBaseData(field));\n\n        this.Fields.push(anData);\n    }\n\n    #addSelect(field) {\n        const anData = Object.assign({\n            style: 48,\n            T: {\n                Name: \"alpha\",\n                TypeInfo: {}\n            }\n        }, this.#getFieldBaseData(field));\n\n        anData.w -= 0.5; //adjust combobox width\n        anData.PL = { V: [], D: [] };\n        field.value.forEach( (ele, idx) => {\n            if (Array.isArray(ele)) {\n                anData.PL.D.push(ele[0]);\n                anData.PL.V.push(ele[1]);\n            } else {\n                anData.PL.D.push(ele);\n                anData.PL.V.push(ele);\n            }\n        });\n\n\t\t// add field value to the object\n\t\tif (field.fieldValue) {\n\t\t\tanData.V = field.fieldValue;\n\t\t}\n        this.Fields.push(anData);\n    }\n\n    #addSignature(field) {\n        const anData = Object.assign({\n            style: 48,\n            T: {\n                Name: \"signature\",\n                TypeInfo: {}\n            }\n        }, this.#getFieldBaseData(field));\n\n        if (field.Sig) {\n            anData.Sig = {};\n            if (field.Sig.Name) anData.Sig.Name = field.Sig.Name;\n            if (field.Sig.M) anData.Sig.M = PDFUnit.dateToIso8601(field.Sig.M);\n            if (field.Sig.Location) anData.Sig.Location = field.Sig.Location;\n            if (field.Sig.Reason) anData.Sig.Reason = field.Sig.Reason;\n            if (field.Sig.ContactInfo) anData.Sig.ContactInfo = field.Sig.ContactInfo;\n        }\n\n        this.Fields.push(anData);\n    }\n\n    // public instance methods\n    processField() {\n        this.field.TI = PDFField.tabIndex++;\n\n        switch(this.field.fieldType) {\n            case 'Tx': this.#addAlpha(this.field); break;\n            case 'Cb': this.#addCheckBox(this.field); break;\n            case 'Rd': this.#addRadioButton(this.field);break;\n            case 'Btn':this.#addLinkButton(this.field); break;\n            case 'Ch': this.#addSelect(this.field); break;\n            case 'Sig': this.#addSignature(this.field); break;\n        }\n\n        this.clean();\n    }\n\n    clean() {\n        delete this.field;\n        delete this.viewport;\n        delete this.Fields;\n        delete this.Boxsets;\n    }\n\n    //static public method to generate fieldsType object based on parser result\n    static getAllFieldsTypes(data) {\n        const isFieldReadOnly = field => (field.AM & kFBANotOverridable) ? true : false;\n\t\tconst getFieldBase = field => ({\n\t\t\tid: field.id.Id,\n\t\t\ttype: field.T.Name,\n\t\t\tcalc: isFieldReadOnly(field),\n\t\t\tvalue: field.V || \"\"\n\t\t});\n\n        const retVal = [];\n        data.Pages.forEach( page => {\n            page.Boxsets.forEach( boxsets => {\n                if (boxsets.boxes.length > 1) { //radio button\n                    boxsets.boxes.forEach( box => {\n                        retVal.push({ id: boxsets.id.Id, type: \"radio\", calc: isFieldReadOnly(box), value: box.id.Id });\n                    });\n                }\n                else { //checkbox\n                    retVal.push(getFieldBase(boxsets.boxes[0]));\n                }\n            });\n\n            page.Fields.forEach(field => retVal.push(getFieldBase(field)));\n\n        });\n        return retVal;\n    }\n}\n","import nodeUtil from 'util';\nimport PDFUnit from './pdfunit.js';\nimport { kFontFaces, kFontStyles } from './pdfconst.js';\n\nconst _boldSubNames = ['bd', 'bold', 'demi', 'black', 'medi'];\nconst _stdFonts = [\n   'arial',\n   'helvetica',\n   'sans-serif ',\n   'courier ',\n   'monospace ',\n   'ocr ',\n];\nconst DISTANCE_DELTA = 0.1;\n\nexport default class PDFFont {\n   #initTypeName() {\n      let typeName = this.fontObj.name || this.fontObj.fallbackName;\n      if (!typeName) {\n         typeName = kFontFaces[0]; //default font family name\n      }\n      typeName = typeName.toLowerCase();\n      return typeName;\n   }\n\n   #initSubType() {\n      let subType = this.typeName;\n      let bold = false;\n\n      const nameArray = this.typeName.split('+');\n      if (Array.isArray(nameArray) && nameArray.length > 1) {\n         subType = nameArray[1].split('-');\n         if (Array.isArray(subType) && subType.length > 1) {\n            const subName = subType[1].toLowerCase();\n            bold = _boldSubNames.indexOf(subName) >= 0;\n            subType = subType[0];\n         }\n      }\n      return { subType, bold };\n   }\n\n   #initSymbol() {\n      const isSymbol =\n         this.typeName.indexOf('symbol') > 0 ||\n         kFontFaces[2].indexOf(this.subType) >= 0;\n      if (this.fontObj.isSymbolicFont) {\n         const mFonts = _stdFonts.filter(\n            (oneName) => this.typeName.indexOf(oneName) >= 0\n         );\n\n         if (mFonts.length > 0) {\n            this.fontObj.isSymbolicFont = false; //lots of Arial-based font is detected as symbol in VA forms (301, 76-c, etc.) reset the flag for now\n            nodeUtil.p2jinfo(\n               `Reset: isSymbolicFont (false) for ${this.fontObj.name}`\n            );\n         }\n      } else {\n         if (isSymbol) {\n            this.fontObj.isSymbolicFont = true; //text pdf: va_ind_760c\n            nodeUtil.p2jinfo(\n               `Reset: isSymbolicFont (true) for ${this.fontObj.name}`\n            );\n         }\n      }\n      return isSymbol;\n   }\n\n   #initSpaceWidth() {\n      let { spaceWidth } = this.fontObj;\n      if (!spaceWidth) {\n         var spaceId = Array.isArray(this.fontObj.toFontChar)\n            ? this.fontObj.toFontChar.indexOf(32)\n            : -1;\n         spaceWidth =\n            spaceId >= 0 && Array.isArray(this.fontObj.widths)\n               ? this.fontObj.widths[spaceId]\n               : 250;\n      }\n      spaceWidth = PDFUnit.toFormX(spaceWidth) / 32;\n      return spaceWidth;\n   }\n\n   // constructor\n   constructor(fontObj) {\n      this.fontObj = fontObj;\n\n      this.typeName = this.#initTypeName();\n\n      const { subType, bold } = this.#initSubType();\n      this.subType = subType;\n      this.bold = bold;\n\n      this.isSymbol = this.#initSymbol();\n      this.spaceWidth = this.#initSpaceWidth();\n\n      this.fontSize = 1;\n      this.faceIdx = 0;\n      this.italic = false;\n      this.fontStyleId = -1;\n   }\n\n   /** sort text blocks by y then x */\n   static compareBlockPos(t1, t2) {\n      if (t1.y < t2.y - DISTANCE_DELTA) {\n         return -1;\n      }\n      if (Math.abs(t1.y - t2.y) <= DISTANCE_DELTA) {\n         if (t1.x < t2.x - DISTANCE_DELTA) {\n            return -1;\n         }\n         if (Math.abs(t1.x - t2.x) <= DISTANCE_DELTA) {\n            return 0;\n         }\n      }\n      return 1;\n   }\n\n   static haveSameStyle(t1, t2) {\n      let retVal = t1.R[0].S === t2.R[0].S;\n      if (retVal && t1.R[0].S < 0) {\n         for (let i = 0; i < t1.R[0].TS.length; i++) {\n            if (t1.R[0].TS[i] !== t2.R[0].TS[i]) {\n               retVal = false;\n               break;\n            }\n         }\n      }\n      if (retVal) {\n         // make sure both block are not rotated\n         retVal =\n            typeof t1.R[0].RA === 'undefined' &&\n            typeof t2.R[0].RA === 'undefined';\n      }\n\n      return retVal;\n   }\n\n   static getSpaceThreshHold(t1) {\n      return (PDFFont.getFontSize(t1) / 12) * t1.sw;\n   }\n\n   static areAdjacentBlocks(t1, t2) {\n      const isInSameLine = Math.abs(t1.y - t2.y) <= DISTANCE_DELTA;\n      const isDistanceSmallerThanASpace =\n         t2.x - t1.x - t1.w < PDFFont.getSpaceThreshHold(t1);\n\n      return isInSameLine && isDistanceSmallerThanASpace;\n   }\n\n   static getFontSize(textBlock) {\n      const sId = textBlock.R[0].S;\n      return sId < 0 ? textBlock.R[0].TS[1] : kFontStyles[sId][1];\n   }\n\n   static areDuplicateBlocks(t1, t2) {\n      return (\n         t1.x === t2.x &&\n         t1.y === t2.y &&\n         t1.R[0].T === t2.R[0].T &&\n         PDFFont.haveSameStyle(t1, t2)\n      );\n   }\n\n   // private\n   #setFaceIndex() {\n      const { fontObj } = this;\n\n      this.bold = fontObj.bold;\n      if (!this.bold) {\n         this.bold =\n            this.typeName.indexOf('bold') >= 0 ||\n            this.typeName.indexOf('black') >= 0;\n      }\n      this.italic = fontObj.italic; // fix https://github.com/modesty/pdf2json/issues/42\n      // Extended the fix for https://github.com/modesty/pdf2json/issues/42\n      if (!this.italic) {\n         this.italic =\n            this.typeName.indexOf('italic') >= 0 ||\n            this.typeName.indexOf('oblique') >= 0;\n      }\n      // Added detection of hybrid dual bolditalic fonts\n      if (\n         (!this.bold || !this.italic) &&\n         this.typeName.indexOf('boldobl') >= 0\n      ) {\n         this.bold = true;\n         this.italic = true;\n      }\n\n      const typeName = this.subType;\n      if (fontObj.isSerifFont) {\n         if (kFontFaces[1].indexOf(typeName) >= 0) this.faceIdx = 1;\n      } else if (kFontFaces[2].indexOf(this.subType) >= 0) {\n         this.faceIdx = 2;\n      } else if (fontObj.isMonospace) {\n         this.faceIdx = 3;\n\n         if (kFontFaces[4].indexOf(typeName) >= 0) this.faceIdx = 4;\n         else if (kFontFaces[5].indexOf(typeName) >= 0) this.faceIdx = 5;\n      } else if (fontObj.isSymbolicFont) {\n         this.faceIdx = 2;\n      }\n\n      if (this.faceIdx === 0) {\n         if (this.typeName.indexOf('narrow') > 0) this.faceIdx = 1;\n      }\n\n      //        nodeUtil.p2jinfo\"typeName = \" + typeName + \" => faceIdx = \" + this.faceIdx);\n   }\n\n   #getFontStyleIndex(fontSize) {\n      this.#setFaceIndex();\n\n      //MQZ Feb.28.2013. Adjust bold text fontsize to work around word spacing issue\n      this.fontSize = this.bold && fontSize > 12 ? fontSize + 1 : fontSize;\n\n      const fsa = [\n         this.faceIdx,\n         this.fontSize,\n         this.bold ? 1 : 0,\n         this.italic ? 1 : 0,\n      ];\n      let retVal = -1;\n\n      kFontStyles.forEach((element, index, list) => {\n         if (retVal === -1) {\n            if (\n               element[0] === fsa[0] &&\n               element[1] === fsa[1] &&\n               element[2] === fsa[2] &&\n               element[3] === fsa[3]\n            ) {\n               retVal = index;\n            }\n         }\n      });\n\n      return retVal;\n   }\n\n   #processSymbolicFont(str) {\n      let retVal = str;\n\n      if (!str || str.length !== 1) return retVal;\n\n      if (!this.fontObj.isSymbolicFont || !this.isSymbol) {\n         if (retVal === 'C' || retVal === 'G') {\n            //prevent symbolic encoding from the client\n            retVal = ` ${retVal} `; //sample: va_ind_760c\n         }\n         return retVal;\n      }\n\n      switch (str.charCodeAt(0)) {\n         case 20:\n            retVal = '\\u2713';\n            break; //check mark\n         case 70:\n            retVal = this.fontObj.type === 'CIDFontType0' ? '\\u26A0' : '\\u007D';\n            break; //exclaimation in triangle OR right curly bracket\n         case 71:\n            retVal = '\\u25b6';\n            break; //right triangle\n         case 97:\n            retVal = '\\u25b6';\n            break; //right triangle\n         case 99:\n            retVal = this.isSymbol ? '\\u2022' : '\\u25b2';\n            break; //up triangle. set to Bullet Dot for VA SchSCR\n         case 100:\n            retVal = '\\u25bc';\n            break; //down triangle\n         case 103:\n            retVal = '\\u27A8';\n            break; //right arrow. sample: va_ind_760pff and pmt\n         case 106:\n            retVal = '';\n            break; //VA 301: string j character by the checkbox, hide it for now\n         case 114:\n            retVal = '\\u2022';\n            break; //Bullet dot\n         case 115:\n            retVal = '\\u25b2';\n            break; //up triangle\n         case 116:\n            retVal = '\\u2022';\n            break; //Bullet dot\n         case 118:\n            retVal = '\\u2022';\n            break; //Bullet dot\n         default:\n            nodeUtil.p2jinfo(\n\t\t\t\t`${this.fontObj.type} - SymbolicFont - (${this.fontObj.name}) : ${str.charCodeAt(0)}::${str.charCodeAt(1)} => ${retVal}`\n\t\t\t);\n      }\n\n      return retVal;\n   }\n\n   #textRotationAngle(matrix2D) {\n      let retVal = 0;\n      if (matrix2D[0][0] === 0 && matrix2D[1][1] === 0) {\n         if (matrix2D[0][1] !== 0 && matrix2D[1][0] !== 0) {\n            if (matrix2D[0][1] / matrix2D[1][0] + 1 < 0.0001) retVal = 90;\n         }\n      } else if (matrix2D[0][0] !== 0 && matrix2D[1][1] !== 0) {\n         const r1 = Math.atan(-matrix2D[0][1] / matrix2D[0][0]);\n         const r2 = Math.atan(matrix2D[1][0] / matrix2D[1][1]);\n         if (Math.abs(r1) > 0.0001 && r1 - r2 < 0.0001) {\n            retVal = (r1 * 180) / Math.PI;\n         }\n      }\n      return retVal;\n   }\n\n   // public instance methods\n   processText(p, str, maxWidth, color, fontSize, targetData, matrix2D) {\n      const text = this.#processSymbolicFont(str);\n      if (!text) {\n         return;\n      }\n      this.fontStyleId = this.#getFontStyleIndex(fontSize);\n\n      // when this.fontStyleId === -1, it means the text style doesn't match any entry in the dictionary\n      // adding TS to better describe text style [fontFaceId, fontSize, 1/0 for bold, 1/0 for italic];\n      const TS = [\n         this.faceIdx,\n         this.fontSize,\n         this.bold ? 1 : 0,\n         this.italic ? 1 : 0,\n      ];\n\n      const clrId = PDFUnit.findColorIndex(color);\n      const colorObj =\n         clrId >= 0 && clrId < PDFUnit.colorCount()\n            ? { clr: clrId }\n            : { oc: color };\n\n      let textRun = {\n         T: this.flashEncode(text),\n         S: this.fontStyleId,\n         TS,\n      };\n      const rAngle = this.#textRotationAngle(matrix2D);\n      if (rAngle !== 0) {\n         nodeUtil.p2jinfo(`${str}: rotated ${rAngle} degree.`);\n         textRun = { ...textRun, RA: rAngle };\n      }\n\n      const oneText = {\n         x: PDFUnit.toFormX(p.x) - 0.25,\n         y: PDFUnit.toFormY(p.y) - 0.75,\n         w: PDFUnit.toFixedFloat(maxWidth),\n         ...colorObj, //MQZ.07/29/2013: when color is not in color dictionary, set the original color (oc)\n         sw: this.spaceWidth, //font space width, use to merge adjacent text blocks\n         A: 'left',\n         R: [textRun],\n      };\n\n      targetData.Texts.push(oneText);\n   }\n\n   flashEncode(str) {\n      let retVal = encodeURIComponent(str);\n      retVal = retVal.replace('%C2%96', '-');\n      retVal = retVal.replace('%C2%91', '%27');\n      retVal = retVal.replace('%C2%92', '%27');\n      retVal = retVal.replace('%C2%82', '%27');\n      retVal = retVal.replace('%C2%93', '%22');\n      retVal = retVal.replace('%C2%94', '%22');\n      retVal = retVal.replace('%C2%84', '%22');\n      retVal = retVal.replace('%C2%8B', '%C2%AB');\n      retVal = retVal.replace('%C2%9B', '%C2%BB');\n\n      return retVal;\n   }\n\n   clean() {\n      this.fontObj = null;\n      delete this.fontObj;\n   }\n}\n","import fs from \"fs\";\nimport { DOMParser } from \"@xmldom/xmldom\";\n\nexport default class PTIXmlParser {\n    xmlData = null;\n\tptiPageArray = [];\n\n\t// constructor\n\tconstructor() {\n        this.xmlData = null;\n        this.ptiPageArray = [];\n    }\n\n\tparseXml(filePath, callback) {\n\t\tfs.readFile(filePath, 'utf8', (err, data) => {\n\t\t\tif (err) {\n                callback(err);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.xmlData = data;\n\n\t\t\t\tvar parser = new DOMParser();\n\t\t\t\tvar dom = parser.parseFromString(this.xmlData);\n\t\t\t\tvar root = dom.documentElement;\n\n\t\t\t\tvar xmlFields = root.getElementsByTagName(\"field\");\n\t\t\t\tvar fields = [];\n\n\t\t\t\tfor (var i = 0; i < xmlFields.length; i++) {\n\t\t\t\t\tvar id = xmlFields[i].getAttribute('id');\n\t\t\t\t\tvar xPos = xmlFields[i].getAttribute('x');\n\t\t\t\t\tvar yPos = xmlFields[i].getAttribute('y');\n\t\t\t\t\tvar width = xmlFields[i].getAttribute('width');\n\t\t\t\t\tvar height = xmlFields[i].getAttribute('height');\n\t\t\t\t\tvar type = xmlFields[i].getAttribute('xsi:type');\n\t\t\t\t\tvar page = xmlFields[i].getAttribute('page');\n\t\t\t\t\tvar fontName = xmlFields[i].getAttribute('fontName');\n\t\t\t\t\tvar fontSize = xmlFields[i].getAttribute('fontSize');\n\n\t\t\t\t\tvar item = {};\n\n\t\t\t\t\tvar rectLeft = parseInt(xPos) - 21; //was 23.5\n\t\t\t\t\tvar rectTop = parseInt(yPos) - 20;//was 23\n\t\t\t\t\tvar rectRight = parseInt(rectLeft) + parseInt(width) - 4;\n\t\t\t\t\tvar rectBottom = parseInt(rectTop) + parseInt(height) - 4;\n\n\t\t\t\t\titem.fieldType = \"Tx\";\n\t\t\t\t\tif (type === \"Boolean\") {\n\t\t\t\t\t\titem.fieldType=\"Btn\";\n\t\t\t\t\t}\n\t\t\t\t\telse if (type === \"SSN\" ||  type === \"Phone\" || type === \"zip\") {\n\t\t\t\t\t\titem.TName = type.toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\titem.alternativeText = \"\";\n\t\t\t\t\titem.fullName = id;\n\t\t\t\t\titem.fontSize = fontSize;\n\t\t\t\t\titem.fontName = fontName;\n\t\t\t\t\titem.subtype = \"Widget\";\n\n\t\t\t\t\titem.rect = [rectLeft, rectTop, rectRight, rectBottom];\n\n\t\t\t\t\tfields.push(item);\n\n\t\t\t\t\tthis.ptiPageArray[parseInt(page)]=fields;\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tcallback();\n\t\t});\n\t}\n\n\tgetFields(pageNum) {\n\t\treturn this.ptiPageArray[pageNum];\n\t}\n}\n","import nodeUtil from \"util\";\nimport PDFUnit from \"./pdfunit.js\";\n\nexport default class PDFLine {\n    constructor(x1, y1, x2, y2, lineWidth, color, dashed) {\n        this.x1 = x1;\n        this.y1 = y1;\n        this.x2 = x2;\n        this.y2 = y2;\n        this.lineWidth = lineWidth || 1.0;\n        this.color = color;\n        this.dashed = dashed;\n    }\n\n    #setStartPoint(oneLine, x, y) {\n        oneLine.x = PDFUnit.toFormX(x);\n        oneLine.y = PDFUnit.toFormY(y);\n    }\n\n    processLine(targetData) {\n        const xDelta = Math.abs(this.x2 - this.x1);\n        const yDelta = Math.abs(this.y2 - this.y1);\n        const minDelta = this.lineWidth;\n\n        let oneLine = { x:0, y:0, w: PDFUnit.toFixedFloat(this.lineWidth), l:0 };\n\n        //MQZ Aug.28.2013, adding color support, using color dictionary and default to black\n        const clrId = PDFUnit.findColorIndex(this.color);\n        const colorObj = (clrId > 0 && clrId < PDFUnit.colorCount()) ? { clr: clrId } : { oc: this.color };\n        oneLine = { ...oneLine, ...colorObj };\n\n        //MQZ Aug.29 dashed line support\n        if (this.dashed) {\n            oneLine = { ...oneLine, dsh: 1 };\n        }\n\n        if ((yDelta < this.lineWidth) && (xDelta > minDelta)) { //HLine\n            if (this.lineWidth < 4 && (xDelta / this.lineWidth < 4)) {\n                nodeUtil.p2jinfo(`Skipped: short thick HLine: lineWidth = ${this.lineWidth}, xDelta = ${xDelta}`);\n                return; //skip short thick lines, like PA SPP lines behinds checkbox\n            }\n\n            oneLine.l = PDFUnit.toFormX(xDelta);\n            if (this.x1 > this.x2)\n                this.#setStartPoint(oneLine, this.x2, this.y2);\n            else\n                this.#setStartPoint(oneLine, this.x1, this.y1);\n            targetData.HLines.push(oneLine);\n        }\n        else if ((xDelta < this.lineWidth) && (yDelta > minDelta)) {//VLine\n            if (this.lineWidth < 4 && (yDelta / this.lineWidth < 4)) {\n                nodeUtil.p2jinfo(`Skipped: short thick VLine: lineWidth = ${this.lineWidth}, yDelta = ${yDelta}`);\n                return; //skip short think lines, like PA SPP lines behinds checkbox\n            }\n\n            oneLine.l = PDFUnit.toFormY(yDelta);\n            if (this.y1 > this.y2)\n                this.#setStartPoint(oneLine, this.x2, this.y2);\n            else\n                this.#setStartPoint(oneLine, this.x1, this.y1);\n            targetData.VLines.push(oneLine);\n        }\n    }\n}\n","import nodeUtil from \"util\";\nimport PDFUnit from \"./pdfunit.js\";\n\nexport default class PDFFill{\n    // constructor\n    constructor(x, y, width, height, color) {\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n        this.color = color;\n    }\n\n    processFill(targetData) {\n        //MQZ.07/29/2013: when color is not in color dictionary, set the original color (oc)\n        const clrId = PDFUnit.findColorIndex(this.color);\n        const colorObj = (clrId > 0 && clrId < PDFUnit.colorCount()) ? { clr: clrId } : { oc: this.color };\n\n        const oneFill = { x:PDFUnit.toFormX(this.x),\n                       y:PDFUnit.toFormY(this.y),\n                       w:PDFUnit.toFormX(this.width),\n                       h:PDFUnit.toFormY(this.height),\n                       ...colorObj };\n\n\n        if (oneFill.w < 2 && oneFill.h < 2) {\n            nodeUtil.p2jinfo(`Skipped: tiny fill: ${oneFill.w} x ${oneFill.h}`);\n            return; //skip short thick lines, like PA SPP lines behinds checkbox\n        }\n\n        targetData.Fills.push(oneFill);\n    }\n}\n","import nodeUtil from \"util\";\nimport PDFLine from \"./pdfline.js\";\nimport PDFFill from \"./pdffill.js\";\nimport PDFFont from \"./pdffont.js\";\n\n// alias some functions to make (compiled) code shorter\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst { round: mr, sin: ms, cos: mc, abs, sqrt } = Math;\n\n// precompute \"00\" to \"FF\"\nconst dec2hex = [];\nfor (let i = 0; i < 16; i++) {\n\tfor (let j = 0; j < 16; j++) {\n\t\tdec2hex[i * 16 + j] = i.toString(16) + j.toString(16);\n\t}\n}\n\nfunction createMatrixIdentity() {\n\treturn [\n\t\t[1, 0, 0],\n\t\t[0, 1, 0],\n\t\t[0, 0, 1],\n\t];\n}\n\nfunction matrixMultiply(m1, m2) {\n\tconst result = createMatrixIdentity();\n\n\tfor (let x = 0; x < 3; x++) {\n\t\tfor (let y = 0; y < 3; y++) {\n\t\t\tlet sum = 0;\n\n\t\t\tfor (let z = 0; z < 3; z++) {\n\t\t\t\tsum += m1[x][z] * m2[z][y];\n\t\t\t}\n\n\t\t\tresult[x][y] = sum;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction copyState(o1, o2) {\n\to2.fillStyle = o1.fillStyle;\n\to2.lineCap = o1.lineCap;\n\to2.lineJoin = o1.lineJoin;\n\to2.lineWidth = o1.lineWidth;\n\to2.miterLimit = o1.miterLimit;\n\to2.shadowBlur = o1.shadowBlur;\n\to2.shadowColor = o1.shadowColor;\n\to2.shadowOffsetX = o1.shadowOffsetX;\n\to2.shadowOffsetY = o1.shadowOffsetY;\n\to2.strokeStyle = o1.strokeStyle;\n\to2.globalAlpha = o1.globalAlpha;\n\to2.arcScaleX_ = o1.arcScaleX_;\n\to2.arcScaleY_ = o1.arcScaleY_;\n\to2.lineScale_ = o1.lineScale_;\n\to2.dashArray = o1.dashArray;\n}\n\nfunction processStyle(styleString) {\n\tlet str,\n\t\talpha = 1;\n\n\tstyleString = String(styleString);\n\tif (styleString.substring(0, 3) === \"rgb\") {\n\t\tconst start = styleString.indexOf(\"(\", 3);\n\t\tconst end = styleString.indexOf(\")\", start + 1);\n\t\tconst guts = styleString.substring(start + 1, end).split(\",\");\n\n\t\tstr = \"#\";\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\tstr += dec2hex[Number(guts[i])];\n\t\t}\n\n\t\tif (guts.length === 4 && styleString.substring(3, 4) === \"a\") {\n\t\t\talpha = guts[3];\n\t\t}\n\t} else {\n\t\tstr = styleString;\n\t}\n\n\treturn { color: str, alpha };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction processLineCap(lineCap) {\n\tswitch (lineCap) {\n\t\tcase \"butt\":\n\t\t\treturn \"flat\";\n\t\tcase \"round\":\n\t\t\treturn \"round\";\n\t\tcase \"square\":\n\t\tdefault:\n\t\t\treturn \"square\";\n\t}\n}\n\n// Helper function that takes the already fixed cordinates.\nfunction bezierCurveToHelper(self, cp1, cp2, p) {\n\tself.currentPath_.push({\n\t\ttype: \"bezierCurveTo\",\n\t\tcp1x: cp1.x,\n\t\tcp1y: cp1.y,\n\t\tcp2x: cp2.x,\n\t\tcp2y: cp2.y,\n\t\tx: p.x,\n\t\ty: p.y,\n\t});\n\tself.currentX_ = p.x;\n\tself.currentY_ = p.y;\n}\n\nfunction matrixIsFinite(m) {\n\tfor (let j = 0; j < 3; j++) {\n\t\tfor (let k = 0; k < 2; k++) {\n\t\t\tif (!isFinite(m[j][k]) || isNaN(m[j][k])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction setM(ctx, m, updateLineScale) {\n\tif (!matrixIsFinite(m)) {\n\t\treturn;\n\t}\n\tctx.m_ = m;\n\n\tif (updateLineScale) {\n\t\t// Get the line scale.\n\t\t// Determinant of this.m_ means how much the area is enlarged by the\n\t\t// transformation. So its square root can be used as a scale factor\n\t\t// for width.\n\t\tconst det = m[0][0] * m[1][1] - m[0][1] * m[1][0];\n\t\tctx.lineScale_ = sqrt(abs(det));\n\t}\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nclass CanvasPattern_ {\n\tconstructor() {}\n}\n\n// Gradient / Pattern Stubs\n// eslint-disable-next-line @typescript-eslint/naming-convention\nclass CanvasGradient_ {\n\tconstructor(aType) {\n\t\tthis.type_ = aType;\n\t\tthis.x0_ = 0;\n\t\tthis.y0_ = 0;\n\t\tthis.r0_ = 0;\n\t\tthis.x1_ = 0;\n\t\tthis.y1_ = 0;\n\t\tthis.r1_ = 0;\n\t\tthis.colors_ = [];\n\t}\n\taddColorStop(aOffset, aColor) {\n\t\taColor = processStyle(aColor);\n\t\tthis.colors_.push({\n\t\t\toffset: aOffset,\n\t\t\tcolor: aColor.color,\n\t\t\talpha: aColor.alpha,\n\t\t});\n\t}\n}\n\n/**\n * This class implements CanvasRenderingContext2D interface as described by\n * the WHATWG.\n * @param {HTMLElement} surfaceElement The element that the 2D context should\n * be associated with\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport default class CanvasRenderingContext2D_ {\n\tconstructor(canvasTarget, scaledWidth, scaledHeight) {\n\t\tthis.m_ = createMatrixIdentity();\n\n\t\tthis.mStack_ = [];\n\t\tthis.aStack_ = [];\n\t\tthis.currentPath_ = [];\n\n\t\t// Canvas context properties\n\t\tthis.strokeStyle = \"#000\";\n\t\tthis.fillStyle = \"#000\";\n\n\t\tthis.lineWidth = 1;\n\t\tthis.lineJoin = \"miter\";\n\t\tthis.lineCap = \"butt\";\n\t\tthis.dashArray = [];\n\t\tthis.miterLimit = 1;\n\t\tthis.globalAlpha = 1;\n\n\t\tif (!(\"HLines\" in canvasTarget) || !Array.isArray(canvasTarget.HLines))\n\t\t\tcanvasTarget.HLines = [];\n\t\tif (!(\"VLines\" in canvasTarget) || !Array.isArray(canvasTarget.VLines))\n\t\t\tcanvasTarget.VLines = [];\n\t\tif (!(\"Fills\" in canvasTarget) || !Array.isArray(canvasTarget.Fills))\n\t\t\tcanvasTarget.Fills = [];\n\t\tif (!(\"Texts\" in canvasTarget) || !Array.isArray(canvasTarget.Texts))\n\t\t\tcanvasTarget.Texts = [];\n\n\t\tthis.canvas = canvasTarget;\n\n\t\tthis.width = scaledWidth;\n\t\tthis.height = scaledHeight;\n\n\t\tthis.arcScaleX_ = 1;\n\t\tthis.arcScaleY_ = 1;\n\t\tthis.lineScale_ = 1;\n\n\t\tthis.currentFont = null;\n\t}\n\n\t//private helper methods\n\t#drawPDFLine(p1, p2, lineWidth, color) {\n\t\tconst dashedLine = Array.isArray(this.dashArray) && this.dashArray.length > 1;\n\t\tconst pL = new PDFLine(p1.x, p1.y, p2.x, p2.y, lineWidth, color, dashedLine);\n\t\tpL.processLine(this.canvas);\n\t}\n\n\t#drawPDFFill(cp, min, max, color) {\n\t\tconst width = max.x - min.x;\n\t\tconst height = max.y - min.y;\n\t\tconst pF = new PDFFill(cp.x, cp.y, width, height, color);\n\t\tpF.processFill(this.canvas);\n\t}\n\n\t#needRemoveRect(x, y, w, h) {\n\t\tconst retVal = Math.abs(w - Math.abs(h)) < 1 && w < 13;\n\t\tif (retVal) {\n\t\t\tnodeUtil.p2jinfo(`Skipped: tiny rect: w=${w}, h=${h}`);\n\t\t}\n\t\treturn retVal;\n\t}\n\n\tgetContext(ctxType) {\n\t\treturn ctxType === \"2d\" ? this : null;\n\t}\n\n\tsetLineDash(lineDash) {\n\t\tthis.dashArray = lineDash;\n\t}\n\n\tgetLineDash() {\n\t\treturn this.dashArray;\n\t}\n\n\tfillText(text, x, y, maxWidth, fontSize) {\n\t\tif (!text || (!text.length === 1 && text.trim().length < 1)) return;\n\t\tconst p = this.getCoords_(x, y);\n\n\t\tconst a = processStyle(this.fillStyle || this.strokeStyle);\n\t\tconst color = a ? a.color : \"#000000\";\n\n\t\tthis.currentFont.processText(\n\t\t\tp,\n\t\t\ttext,\n\t\t\tmaxWidth,\n\t\t\tcolor,\n\t\t\tfontSize,\n\t\t\tthis.canvas,\n\t\t\tthis.m_\n\t\t);\n\t}\n\n\tstrokeText(text, x, y, maxWidth) {\n\t\t//MQZ. 10/23/2012, yeah, no hollow text for now\n\t\tthis.fillText(text, x, y, maxWidth);\n\t}\n\n\tmeasureText(text) {\n\t\tnodeUtil.p2jwarn(\"to be implemented: contextPrototype.measureText - \", text);\n\t\tconst chars = text.length || 1;\n\t\treturn { width: chars * (this.currentFont.spaceWidth || 5) };\n\t}\n\n\tsetFont(fontObj) {\n\t\tif (!!this.currentFont && typeof this.currentFont.clean === \"function\") {\n\t\t\tthis.currentFont.clean();\n\t\t\tthis.currentFont = null;\n\t\t}\n\n\t\tthis.currentFont = new PDFFont(fontObj);\n\t}\n\n\tclearRect() {\n\t\tnodeUtil.p2jwarn(\"to be implemented: contextPrototype.clearRect\");\n\t}\n\n\tbeginPath() {\n\t\t// TODO: Branch current matrix so that save/restore has no effect\n\t\t//       as per safari docs.\n\t\tthis.currentPath_ = [];\n\t}\n\n\tmoveTo(aX, aY) {\n\t\tconst p = this.getCoords_(aX, aY);\n\t\tthis.currentPath_.push({ type: \"moveTo\", x: p.x, y: p.y });\n\t\tthis.currentX_ = p.x;\n\t\tthis.currentY_ = p.y;\n\t}\n\n\tlineTo(aX, aY) {\n\t\tconst p = this.getCoords_(aX, aY);\n\t\tthis.currentPath_.push({ type: \"lineTo\", x: p.x, y: p.y });\n\n\t\tthis.currentX_ = p.x;\n\t\tthis.currentY_ = p.y;\n\t}\n\n\tbezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n\t\tconst p = this.getCoords_(aX, aY);\n\t\tconst cp1 = this.getCoords_(aCP1x, aCP1y);\n\t\tconst cp2 = this.getCoords_(aCP2x, aCP2y);\n\t\tbezierCurveToHelper(this, cp1, cp2, p);\n\t}\n\n\tquadraticCurveTo(aCPx, aCPy, aX, aY) {\n\t\t// the following is lifted almost directly from\n\t\t// http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes\n\n\t\tconst cp = this.getCoords_(aCPx, aCPy);\n\t\tconst p = this.getCoords_(aX, aY);\n\n\t\tconst cp1 = {\n\t\t\tx: this.currentX_ + (2.0 / 3.0) * (cp.x - this.currentX_),\n\t\t\ty: this.currentY_ + (2.0 / 3.0) * (cp.y - this.currentY_),\n\t\t};\n\t\tconst cp2 = {\n\t\t\tx: cp1.x + (p.x - this.currentX_) / 3.0,\n\t\t\ty: cp1.y + (p.y - this.currentY_) / 3.0,\n\t\t};\n\n\t\tbezierCurveToHelper(this, cp1, cp2, p);\n\t}\n\n\tarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n\t\tconst arcType = aClockwise ? \"at\" : \"wa\";\n\n\t\tlet xStart = aX + mc(aStartAngle) * aRadius;\n\t\tconst yStart = aY + ms(aStartAngle) * aRadius;\n\n\t\tconst xEnd = aX + mc(aEndAngle) * aRadius;\n\t\tconst yEnd = aY + ms(aEndAngle) * aRadius;\n\n\t\t// IE won't render arches drawn counter clockwise if xStart == xEnd.\n\t\tif (xStart === xEnd && !aClockwise) {\n\t\t\txStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something\n\t\t\t// that can be represented in binary\n\t\t}\n\n\t\tconst p = this.getCoords_(aX, aY);\n\t\tconst pStart = this.getCoords_(xStart, yStart);\n\t\tconst pEnd = this.getCoords_(xEnd, yEnd);\n\n\t\tthis.currentPath_.push({\n\t\t\ttype: arcType,\n\t\t\tx: p.x,\n\t\t\ty: p.y,\n\t\t\tradius: aRadius,\n\t\t\txStart: pStart.x,\n\t\t\tyStart: pStart.y,\n\t\t\txEnd: pEnd.x,\n\t\t\tyEnd: pEnd.y,\n\t\t});\n\t}\n\n\trect(aX, aY, aWidth, aHeight) {\n\t\tif (this.#needRemoveRect(aX, aY, aWidth, aHeight)) {\n\t\t\treturn; //try to remove the rectangle behind radio buttons and checkboxes\n\t\t}\n\n\t\tthis.moveTo(aX, aY);\n\t\tthis.lineTo(aX + aWidth, aY);\n\t\tthis.lineTo(aX + aWidth, aY + aHeight);\n\t\tthis.lineTo(aX, aY + aHeight);\n\t\tthis.closePath();\n\t}\n\n\tstrokeRect(aX, aY, aWidth, aHeight) {\n\t\tif (this.#needRemoveRect(aX, aY, aWidth, aHeight)) {\n\t\t\treturn; //try to remove the rectangle behind radio buttons and checkboxes\n\t\t}\n\n\t\tconst oldPath = this.currentPath_;\n\t\tthis.beginPath();\n\n\t\tthis.moveTo(aX, aY);\n\t\tthis.lineTo(aX + aWidth, aY);\n\t\tthis.lineTo(aX + aWidth, aY + aHeight);\n\t\tthis.lineTo(aX, aY + aHeight);\n\t\tthis.closePath();\n\t\tthis.stroke();\n\n\t\tthis.currentPath_ = oldPath;\n\t}\n\n\tfillRect(aX, aY, aWidth, aHeight) {\n\t\tif (this.#needRemoveRect(aX, aY, aWidth, aHeight)) {\n\t\t\treturn; //try to remove the rectangle behind radio buttons and checkboxes\n\t\t}\n\n\t\tconst oldPath = this.currentPath_;\n\t\tthis.beginPath();\n\n\t\tthis.moveTo(aX, aY);\n\t\tthis.lineTo(aX + aWidth, aY);\n\t\tthis.lineTo(aX + aWidth, aY + aHeight);\n\t\tthis.lineTo(aX, aY + aHeight);\n\t\tthis.closePath();\n\t\tthis.fill();\n\n\t\tthis.currentPath_ = oldPath;\n\t}\n\n\tcreateLinearGradient(aX0, aY0, aX1, aY1) {\n\t\tconst gradient = new CanvasGradient_(\"gradient\");\n\t\tgradient.x0_ = aX0;\n\t\tgradient.y0_ = aY0;\n\t\tgradient.x1_ = aX1;\n\t\tgradient.y1_ = aY1;\n\t\treturn gradient;\n\t}\n\n\tcreateRadialGradient(aX0, aY0, aR0, aX1, aY1, aR1) {\n\t\tconst gradient = new CanvasGradient_(\"gradientradial\");\n\t\tgradient.x0_ = aX0;\n\t\tgradient.y0_ = aY0;\n\t\tgradient.r0_ = aR0;\n\t\tgradient.x1_ = aX1;\n\t\tgradient.y1_ = aY1;\n\t\tgradient.r1_ = aR1;\n\t\treturn gradient;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tdrawImage(image, var_args) {\n\t\t//MQZ. no image drawing support for now\n\t}\n\n\tgetImageData(x, y, w, h) {\n\t\t//MQZ. returns empty data buffer for now\n\t\treturn {\n\t\t\twidth: w,\n\t\t\theight: h,\n\t\t\tdata: new Uint8Array(w * h * 4),\n\t\t};\n\t}\n\n\tstroke(aFill) {\n\t\tif (this.currentPath_.length < 2) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst a = processStyle(aFill ? this.fillStyle : this.strokeStyle);\n\t\tconst { color } = a;\n\t\t//        let opacity = a.alpha * this.globalAlpha;\n\t\tconst lineWidth = this.lineScale_ * this.lineWidth;\n\n\t\tconst min = { x: null, y: null };\n\t\tconst max = { x: null, y: null };\n\n\t\tfor (let i = 0; i < this.currentPath_.length; i++) {\n\t\t\tlet p = this.currentPath_[i];\n\n\t\t\tswitch (p.type) {\n\t\t\t\tcase \"moveTo\":\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"lineTo\":\n\t\t\t\t\tif (!aFill) {\n\t\t\t\t\t\t//lines\n\t\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\t\tthis.#drawPDFLine(this.currentPath_[i - 1], p, lineWidth, color);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"close\":\n\t\t\t\t\tif (!aFill) {\n\t\t\t\t\t\t//lines\n\t\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\t\tthis.#drawPDFLine(\n\t\t\t\t\t\t\t\tthis.currentPath_[i - 1],\n\t\t\t\t\t\t\t\tthis.currentPath_[0],\n\t\t\t\t\t\t\t\tlineWidth,\n\t\t\t\t\t\t\t\tcolor\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tp = null;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"bezierCurveTo\":\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"at\":\n\t\t\t\tcase \"wa\":\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Figure out dimensions so we can set fills' coordinates correctly\n\t\t\tif (aFill && p) {\n\t\t\t\tif (min.x === null || p.x < min.x) {\n\t\t\t\t\tmin.x = p.x;\n\t\t\t\t}\n\t\t\t\tif (max.x === null || p.x > max.x) {\n\t\t\t\t\tmax.x = p.x;\n\t\t\t\t}\n\t\t\t\tif (min.y === null || p.y < min.y) {\n\t\t\t\t\tmin.y = p.y;\n\t\t\t\t}\n\t\t\t\tif (max.y === null || p.y > max.y) {\n\t\t\t\t\tmax.y = p.y;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (aFill) {\n\t\t\t//fill\n\t\t\tthis.#drawPDFFill(min, min, max, color);\n\t\t}\n\t}\n\n\tfill() {\n\t\tthis.stroke(true);\n\t}\n\n\tclosePath() {\n\t\tthis.currentPath_.push({ type: \"close\" });\n\t}\n\n\t/**\n\t * @private\n\t */\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tgetCoords_(aX, aY) {\n\t\tconst m = this.m_;\n\t\treturn {\n\t\t\tx: aX * m[0][0] + aY * m[1][0] + m[2][0],\n\t\t\ty: aX * m[0][1] + aY * m[1][1] + m[2][1],\n\t\t};\n\t}\n\n\tsave() {\n\t\tconst o = {};\n\t\tcopyState(this, o);\n\t\tthis.aStack_.push(o);\n\t\tthis.mStack_.push(this.m_);\n\t\tthis.m_ = matrixMultiply(createMatrixIdentity(), this.m_);\n\t}\n\n\trestore() {\n\t\tcopyState(this.aStack_.pop(), this);\n\t\tthis.m_ = this.mStack_.pop();\n\t}\n\n\ttranslate(aX, aY) {\n\t\tconst m1 = [\n\t\t\t[1, 0, 0],\n\t\t\t[0, 1, 0],\n\t\t\t[aX, aY, 1],\n\t\t];\n\n\t\tsetM(this, matrixMultiply(m1, this.m_), false);\n\t}\n\n\trotate(aRot) {\n\t\tconst c = mc(aRot);\n\t\tconst s = ms(aRot);\n\n\t\tconst m1 = [\n\t\t\t[c, s, 0],\n\t\t\t[-s, c, 0],\n\t\t\t[0, 0, 1],\n\t\t];\n\n\t\tsetM(this, matrixMultiply(m1, this.m_), false);\n\t}\n\n\tscale(aX, aY) {\n\t\tthis.arcScaleX_ *= aX;\n\t\tthis.arcScaleY_ *= aY;\n\t\tconst m1 = [\n\t\t\t[aX, 0, 0],\n\t\t\t[0, aY, 0],\n\t\t\t[0, 0, 1],\n\t\t];\n\n\t\tsetM(this, matrixMultiply(m1, this.m_), true);\n\t}\n\n\ttransform(m11, m12, m21, m22, dx, dy) {\n\t\tconst m1 = [\n\t\t\t[m11, m12, 0],\n\t\t\t[m21, m22, 0],\n\t\t\t[dx, dy, 1],\n\t\t];\n\n\t\tsetM(this, matrixMultiply(m1, this.m_), true);\n\t}\n\n\tsetTransform(m11, m12, m21, m22, dx, dy) {\n\t\tconst m = [\n\t\t\t[m11, m12, 0],\n\t\t\t[m21, m22, 0],\n\t\t\t[dx, dy, 1],\n\t\t];\n\n\t\tsetM(this, m, true);\n\t}\n\n\t/******** STUBS ********/\n\tclip() {\n\t\t// TODO: Implement\n\t}\n\n\tarcTo() {\n\t\t// TODO: Implement\n\t}\n\n\tcreatePattern() {\n\t\treturn new CanvasPattern_();\n\t}\n}\n\n// replacing HTML5 canvas with PDFCanvas (in-memory canvas)\nexport function createScratchCanvas(width, height) {\n\treturn new CanvasRenderingContext2D_({}, width, height);\n}\n","import nodeUtil from \"util\";\n\n//BEGIN - MQZ 9/19/2012. Helper functions to parse acroForm elements\nfunction setupRadioButton(annotation, item) {\n    let asName = '';\n    //PDF Spec p.689: parent item's DV holds the item's value that is selected by default\n    const po = annotation.get('Parent');\n    if (po) {\n        po.forEach((key, val) => {\n            if (key === 'DV') {\n                asName = val.name || '';\n            }\n            else if (key === 'TU') {\n                //radio buttons use the alternative text from the parent\n                item.alternativeText = val;\n            } else if( key === 'TM') {\n                item.alternativeID   = val;\n            }\n        });\n    }\n\n    //PDF Spec p.606: get appearance dictionary\n    const ap = annotation.get('AP');\n    //PDF Spec p.614 get normal appearance\n    const nVal = ap.get('N');\n    //PDF Spec p.689\n    nVal.forEach((key, value) => {\n        if (key.toLowerCase() !== \"off\") {\n            //value if selected\n            item.value = key; //export value\n            item.checked = (key === asName); //initial selection state\n        }\n    });\n\n    if (!item.value)\n        item.value = \"off\";\n}\n\nfunction setupPushButton(annotation, item) {\n    //button label: PDF Spec p.640\n    const mk = annotation.get('MK');\n    if(mk) {\n        item.value = mk.get('CA') || '';\n    }\n\n    //button action: url when mouse up: PDF Spec:p.642\n    item.FL = \"\";\n    const ap = annotation.get('A');\n    if (ap) {\n        const sp = ap.get('S');\n        item.FL = ap.get(sp.name);\n    }\n}\n\nfunction setupCheckBox(annotation, item) {\n    //PDF Spec p.606: get appearance dictionary\n    const ap = annotation.get('AP');\n    //PDF Spec p.614 get normal appearance\n    const nVal = ap.get('N');\n\n    //PDF Spec p.689\n    let i = 0;\n    nVal.forEach((key, value) => {\n        i++;\n        if (i === 1) //initial selection state\n            item.value = key;\n    });\n}\n\nfunction setupDropDown(annotation, item) {\n    //PDF Spec p.688\n    item.value = annotation.get('Opt') || [];\n}\n\nfunction setupFieldAttributes(annotation, item) {\n    //MQZ. Jan.03.2013. additional-actions dictionary\n    //PDF Spec P.648. 8.5.2. Trigger Events\n    const aa = annotation.get('AA');\n    if (!aa) {\n        return;\n    }\n\n    //PDF Spec p.651 get format dictionary\n    let nVal = aa.get('F');\n    if (!nVal) {\n        nVal = aa.get('K');\n        if (!nVal)\n            return;\n    }\n\n    nVal.forEach((key, value) => {\n        if (key === \"JS\") {\n            processFieldAttribute(value, item);\n        }\n    });\n}\n\nconst AFSpecialFormat = ['zip', 'zip', 'phone', 'ssn', ''];\n//  let AFNumber_Format = ['nDec', 'sepStyle', 'negStyle', 'currStyle', 'strCurrency', 'bCurrencyPrepend'];\n//– nDec is the number of places after the decimal point;\n//– sepStyle is an integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate.\n//– negStyle is the formatting used for negative numbers: 0 = MinusBlack, 1 = Red, 2 = ParensBlack, 3 = ParensRed\n//– currStyle is the currency style - not used\n//- strCurrency is the currency symbol\n//– bCurrencyPrepend\n//  let AFDate_FormatEx = [\"m/d\", \"m/d/yy\", \"mm/dd/yy\", \"mm/yy\", \"d-mmm\", \"d-mmm-yy\", \"dd-mmm-yy\", \"yymm-dd\", \"mmm-yy\", \"mmmm-yy\", \"mmm d, yyyy\", \"mmmm d, yyyy\", \"m/d/yy h:MM tt\", \"m/d/yy HH:MM\"];\n\nfunction processFieldAttribute(jsFuncName, item) {\n    if (Object.prototype.hasOwnProperty.call(item, 'TName'))\n        return;\n\n    if(!jsFuncName.split)\n        return;\n\n    const vParts = jsFuncName.split('(');\n    if (vParts.length !== 2)\n        return;\n\n    const funcName = vParts[0];\n    const funcParam = vParts[1].split(')')[0];\n\n\tswitch (funcName) {\n\t\tcase 'AFSpecial_Format':\n\t\t\titem.TName = AFSpecialFormat[Number(funcParam)];\n\t\t\tbreak;\n\t\tcase 'AFNumber_Format':\n\t\t\t//              nfs = funcParam.split(',');\n\t\t\t//set the Money fields to use the Number type with no decimal places after, no commas, and bCurrencyPrepend is set as true; (o use a negative sign (fits the PDF layout and our print formatting as well).\n\t\t\t//              if (nfs[0] === '0' && nfs[1] === '1' && nfs[5])\n\t\t\t//                  item.TName = 'money';\n\t\t\t//              else\n\t\t\titem.TName = 'number';\n\t\t\tbreak;\n\t\tcase 'AFDate_FormatEx':\n\t\t\titem.TName = 'date';\n\t\t\titem.MV = funcParam.replace(/^'+|^\"+|'+$|\"+$/g, ''); //mask value\n\t\t\tbreak;\n\t\tcase 'AFSpecial_KeystrokeEx': { //special format: \"arbitrary mask\"\n\t\t\t\tconst maskValue = funcParam.replace(/^'+|^\"+|'+$|\"+$/g, ''); //mask value\n\t\t\t\tif ((!!maskValue) && maskValue.length > 0 && maskValue.length < 64) {\n\t\t\t\t\titem.TName = 'mask'; //fixed length input\n\t\t\t\t\titem.MV = maskValue;\n\t\t\t\t}\n\t\t\t}\n            break;\n        case 'AFPercent_Format':\n            item.TName = 'percent'; //funcParam => 2, 0, will specified how many decimal places\n            break;\n    }\n}\n\nfunction setupSignature(annotation, item) {\n    //PDF Spec p.695: field value is signature dict if signed\n    const sig = annotation.get('V');\n    if (!sig) return;\n\n    //PDF Spec p.728: get signature information\n    item.Sig = {};\n    const name = sig.get('Name');\n    if (name) item.Sig.Name = name;\n    const time = sig.get('M');\n    if (time) item.Sig.M = time;\n    const location = sig.get('Location');\n    if (location) item.Sig.Location = location;\n    const reason = sig.get('Reason');\n    if (reason) item.Sig.Reason = reason;\n    const contactInfo = sig.get('ContactInfo');\n    if (contactInfo) item.Sig.ContactInfo = contactInfo;\n}\n\n//END - MQZ 9/19/2012. Helper functions to parse acroForm elements\n\nexport default class PDFAnno {\n    static processAnnotation(annotation, item) {\n        if (item.fieldType === 'Btn') { //PDF Spec p.675\n            if (item.fieldFlags & 32768) {\n                setupRadioButton(annotation, item);\n            }\n            else if (item.fieldFlags & 65536) {\n                setupPushButton(annotation, item);\n            }\n            else {\n                setupCheckBox(annotation, item);\n            }\n        }\n        else if (item.fieldType ===  'Ch') {\n            setupDropDown(annotation, item);\n        }\n        else if (item.fieldType === 'Tx') {\n            setupFieldAttributes(annotation, item);\n        }\n        else if (item.fieldType === 'Sig') {\n            setupSignature(annotation, item);\n        }\n        else {\n            nodeUtil.p2jwarn(\"Unknown fieldType: \", item);\n        }\n    }\n}\n","\nimport { Buffer } from \"buffer\";\nexport default class PDFImage {\n\t#_src = '';\n\t#_onload = null;\n\n\tset onload(val) {\n\t\tthis.#_onload = typeof val === 'function' ? val : null;\n\t}\n\n\tget onload() {\n\t\treturn this.#_onload;\n\t}\n\n\tset src(val) {\n\t\tthis.#_src = val;\n\t\tif (this.#_onload) this.#_onload();\n\t}\n\n\tget src() {\n\t\treturn this.#_src;\n\t}\n\n    btoa(val) {\n\t\treturn (new Buffer.from(val, 'binary')).toString('base64'); // ascii?\n    }\n\n}\n","\n  import nodeUtil from 'util';import { Blob } from 'buffer';import { DOMParser } from '@xmldom/xmldom';import PDFAnno from './pdfanno.js';import Image from './pdfimage.js';import { createScratchCanvas } from './pdfcanvas.js';\n  export const PDFJS = {};\n  const globalScope = { console };\n  /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals Cmd, ColorSpace, Dict, Blob, Name, PDFJS, Ref, URL */\n\n\"use strict\";\n\n//MQZ. Oct.10.2012. Moved globalScope definition to lib/pdf.js\n//var globalScope = (typeof window === 'undefined') ? this : window;\n\nvar isWorker = typeof window == \"undefined\";\n\nvar ERRORS = 0,\n\tWARNINGS = 1,\n\tINFOS = 5;\nvar verbosity = WARNINGS;\n\nvar FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nvar TextRenderingMode = {\n\tFILL: 0,\n\tSTROKE: 1,\n\tFILL_STROKE: 2,\n\tINVISIBLE: 3,\n\tFILL_ADD_TO_PATH: 4,\n\tSTROKE_ADD_TO_PATH: 5,\n\tFILL_STROKE_ADD_TO_PATH: 6,\n\tADD_TO_PATH: 7,\n\tFILL_STROKE_MASK: 3,\n\tADD_TO_PATH_FLAG: 4,\n};\n\n// The global PDFJS object exposes the API\n// In production, it will be declared outside a global wrapper\n// In development, it will be declared here\nif (!globalScope.PDFJS) {\n\tglobalScope.PDFJS = {};\n}\n\nglobalScope.PDFJS.pdfBug = false;\n\n// All the possible operations for an operator list.\nvar OPS = (PDFJS.OPS = {\n\t// Intentionally start from 1 so it is easy to spot bad operators that will be\n\t// 0's.\n\tdependency: 1,\n\tsetLineWidth: 2,\n\tsetLineCap: 3,\n\tsetLineJoin: 4,\n\tsetMiterLimit: 5,\n\tsetDash: 6,\n\tsetRenderingIntent: 7,\n\tsetFlatness: 8,\n\tsetGState: 9,\n\tsave: 10,\n\trestore: 11,\n\ttransform: 12,\n\tmoveTo: 13,\n\tlineTo: 14,\n\tcurveTo: 15,\n\tcurveTo2: 16,\n\tcurveTo3: 17,\n\tclosePath: 18,\n\trectangle: 19,\n\tstroke: 20,\n\tcloseStroke: 21,\n\tfill: 22,\n\teoFill: 23,\n\tfillStroke: 24,\n\teoFillStroke: 25,\n\tcloseFillStroke: 26,\n\tcloseEOFillStroke: 27,\n\tendPath: 28,\n\tclip: 29,\n\teoClip: 30,\n\tbeginText: 31,\n\tendText: 32,\n\tsetCharSpacing: 33,\n\tsetWordSpacing: 34,\n\tsetHScale: 35,\n\tsetLeading: 36,\n\tsetFont: 37,\n\tsetTextRenderingMode: 38,\n\tsetTextRise: 39,\n\tmoveText: 40,\n\tsetLeadingMoveText: 41,\n\tsetTextMatrix: 42,\n\tnextLine: 43,\n\tshowText: 44,\n\tshowSpacedText: 45,\n\tnextLineShowText: 46,\n\tnextLineSetSpacingShowText: 47,\n\tsetCharWidth: 48,\n\tsetCharWidthAndBounds: 49,\n\tsetStrokeColorSpace: 50,\n\tsetFillColorSpace: 51,\n\tsetStrokeColor: 52,\n\tsetStrokeColorN: 53,\n\tsetFillColor: 54,\n\tsetFillColorN: 55,\n\tsetStrokeGray: 56,\n\tsetFillGray: 57,\n\tsetStrokeRGBColor: 58,\n\tsetFillRGBColor: 59,\n\tsetStrokeCMYKColor: 60,\n\tsetFillCMYKColor: 61,\n\tshadingFill: 62,\n\tbeginInlineImage: 63,\n\tbeginImageData: 64,\n\tendInlineImage: 65,\n\tpaintXObject: 66,\n\tmarkPoint: 67,\n\tmarkPointProps: 68,\n\tbeginMarkedContent: 69,\n\tbeginMarkedContentProps: 70,\n\tendMarkedContent: 71,\n\tbeginCompat: 72,\n\tendCompat: 73,\n\tpaintFormXObjectBegin: 74,\n\tpaintFormXObjectEnd: 75,\n\tbeginGroup: 76,\n\tendGroup: 77,\n\tbeginAnnotations: 78,\n\tendAnnotations: 79,\n\tbeginAnnotation: 80,\n\tendAnnotation: 81,\n\tpaintJpegXObject: 82,\n\tpaintImageMaskXObject: 83,\n\tpaintImageMaskXObjectGroup: 84,\n\tpaintImageXObject: 85,\n\tpaintInlineImageXObject: 86,\n\tpaintInlineImageXObjectGroup: 87,\n});\n\n//MQZ.Mar.22 Disabled Operators (to prevent image painting & annotation default appearance)\n//paintJpegXObject, paintImageMaskXObject, paintImageMaskXObjectGroup, paintImageXObject, paintInlineImageXObject, paintInlineImageXObjectGroup\nvar NO_OPS = (PDFJS.NO_OPS = [82, 83, 84, 85, 86, 87]);\nvar NO_OPS_RANGE = (PDFJS.NO_OPS_RANGE = [78, 79, 80, 81]); //range pairs, all ops with each pair will be skipped. !important!\n\n// Use only for debugging purposes. This should not be used in any code that is\n// in mozilla master.\nvar log = (function () {\n\tvar disableLogs = Boolean(Number(process?.env?.PDF2JSON_DISABLE_LOGS ?? \"0\"));\n\n\tif (\n\t\t!disableLogs &&\n\t\t\"console\" in globalScope &&\n\t\t\"log\" in globalScope[\"console\"]\n\t) {\n\t\treturn globalScope[\"console\"][\"log\"].bind(globalScope[\"console\"]);\n\t} else {\n\t\treturn function nop() {};\n\t}\n})();\n\n// A notice for devs that will not trigger the fallback UI.  These are good\n// for things that are helpful to devs, such as warning that Workers were\n// disabled, which is important to devs but not end users.\nfunction info(msg) {\n\tif (verbosity >= INFOS) {\n\t\tlog(\"Info: \" + msg);\n\t\tPDFJS.LogManager.notify(\"info\", msg);\n\t}\n}\n\n// Non-fatal warnings that should trigger the fallback UI.\nfunction warn(msg) {\n\tif (verbosity >= WARNINGS) {\n\t\tlog(\"Warning: \" + msg);\n\t\tPDFJS.LogManager.notify(\"warn\", msg);\n\t}\n}\n\n// Fatal errors that should trigger the fallback UI and halt execution by\n// throwing an exception.\nfunction error(msg) {\n\t// If multiple arguments were passed, pass them all to the log function.\n\tif (arguments.length > 1) {\n\t\tvar logArguments = [\"Error:\"];\n\t\tlogArguments.push.apply(logArguments, arguments);\n\t\tlog.apply(null, logArguments);\n\t\t// Join the arguments into a single string for the lines below.\n\t\tmsg = [].join.call(arguments, \" \");\n\t} else {\n\t\t//log('Error: ' + msg);\n\t}\n\t// log(backtrace());\n\tPDFJS.LogManager.notify('error', msg);\n\tthrow new Error(msg);\n}\n\n// Missing features that should trigger the fallback UI.\nfunction TODO(what) {\n\twarn(\"TODO: \" + what);\n}\n\nfunction backtrace() {\n\ttry {\n\t\tthrow new Error();\n\t} catch (e) {\n\t\treturn e.stack ? e.stack.split(\"\\n\").slice(2).join(\"\\n\") : \"\";\n\t}\n}\n\nfunction assert(cond, msg) {\n\tif (!cond) error(msg);\n}\n\n// Combines two URLs. The baseUrl shall be absolute URL. If the url is an\n// absolute URL, it will be returned as is.\nfunction combineUrl(baseUrl, url) {\n\tif (!url) return baseUrl;\n\tif (url.indexOf(\":\") >= 0) return url;\n\tif (url.charAt(0) == \"/\") {\n\t\t// absolute path\n\t\tvar i = baseUrl.indexOf(\"://\");\n\t\ti = baseUrl.indexOf(\"/\", i + 3);\n\t\treturn baseUrl.substring(0, i) + url;\n\t} else {\n\t\t// relative path\n\t\tvar pathLength = baseUrl.length,\n\t\t\ti;\n\t\ti = baseUrl.lastIndexOf(\"#\");\n\t\tpathLength = i >= 0 ? i : pathLength;\n\t\ti = baseUrl.lastIndexOf(\"?\", pathLength);\n\t\tpathLength = i >= 0 ? i : pathLength;\n\t\tvar prefixLength = baseUrl.lastIndexOf(\"/\", pathLength);\n\t\treturn baseUrl.substring(0, prefixLength + 1) + url;\n\t}\n}\n\n// Validates if URL is safe and allowed, e.g. to avoid XSS.\nfunction isValidUrl(url, allowRelative) {\n\tif (!url) {\n\t\treturn false;\n\t}\n\tvar colon = url.indexOf(\":\");\n\tif (colon < 0) {\n\t\treturn allowRelative;\n\t}\n\tvar protocol = url.substring(0, colon);\n\tswitch (protocol) {\n\t\tcase \"http\":\n\t\tcase \"https\":\n\t\tcase \"ftp\":\n\t\tcase \"mailto\":\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\nPDFJS.isValidUrl = isValidUrl;\n\n// In a well-formed PDF, |cond| holds.  If it doesn't, subsequent\n// behavior is undefined.\nfunction assertWellFormed(cond, msg) {\n\tif (!cond) error(msg);\n}\n\nvar LogManager = (PDFJS.LogManager = (function LogManagerClosure() {\n\tvar loggers = [];\n\treturn {\n\t\taddLogger: function logManager_addLogger(logger) {\n\t\t\tloggers.push(logger);\n\t\t},\n\t\tnotify: function (type, message) {\n\t\t\tfor (var i = 0, ii = loggers.length; i < ii; i++) {\n\t\t\t\tvar logger = loggers[i];\n\t\t\t\tif (logger[type]) logger[type](message);\n\t\t\t}\n\t\t},\n\t};\n})());\n\nfunction shadow(obj, prop, value) {\n\tObject.defineProperty(obj, prop, {\n\t\tvalue: value,\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t\twritable: false,\n\t});\n\treturn value;\n}\n\nvar PasswordResponses = (PDFJS.PasswordResponses = {\n\tNEED_PASSWORD: 1,\n\tINCORRECT_PASSWORD: 2,\n});\n\nvar PasswordException = (function PasswordExceptionClosure() {\n\tfunction PasswordException(msg, code) {\n\t\tthis.name = \"PasswordException\";\n\t\tthis.message = msg;\n\t\tthis.code = code;\n\t}\n\n\tPasswordException.prototype = new Error();\n\tPasswordException.constructor = PasswordException;\n\n\treturn PasswordException;\n})();\n\nvar UnknownErrorException = (function UnknownErrorExceptionClosure() {\n\tfunction UnknownErrorException(msg, details) {\n\t\tthis.name = \"UnknownErrorException\";\n\t\tthis.message = msg;\n\t\tthis.details = details;\n\t}\n\n\tUnknownErrorException.prototype = new Error();\n\tUnknownErrorException.constructor = UnknownErrorException;\n\n\treturn UnknownErrorException;\n})();\n\nvar InvalidPDFException = (function InvalidPDFExceptionClosure() {\n\tfunction InvalidPDFException(msg) {\n\t\tthis.name = \"InvalidPDFException\";\n\t\tthis.message = msg;\n\t}\n\n\tInvalidPDFException.prototype = new Error();\n\tInvalidPDFException.constructor = InvalidPDFException;\n\n\treturn InvalidPDFException;\n})();\n\nvar MissingPDFException = (function MissingPDFExceptionClosure() {\n\tfunction MissingPDFException(msg) {\n\t\tthis.name = \"MissingPDFException\";\n\t\tthis.message = msg;\n\t}\n\n\tMissingPDFException.prototype = new Error();\n\tMissingPDFException.constructor = MissingPDFException;\n\n\treturn MissingPDFException;\n})();\n\nvar NotImplementedException = (function NotImplementedExceptionClosure() {\n\tfunction NotImplementedException(msg) {\n\t\tthis.message = msg;\n\t}\n\n\tNotImplementedException.prototype = new Error();\n\tNotImplementedException.prototype.name = \"NotImplementedException\";\n\tNotImplementedException.constructor = NotImplementedException;\n\n\treturn NotImplementedException;\n})();\n\nvar MissingDataException = (function MissingDataExceptionClosure() {\n\tfunction MissingDataException(begin, end) {\n\t\tthis.begin = begin;\n\t\tthis.end = end;\n\t\tthis.message = \"Missing data [\" + begin + \", \" + end + \")\";\n\t}\n\n\tMissingDataException.prototype = new Error();\n\tMissingDataException.prototype.name = \"MissingDataException\";\n\tMissingDataException.constructor = MissingDataException;\n\n\treturn MissingDataException;\n})();\n\nvar XRefParseException = (function XRefParseExceptionClosure() {\n\tfunction XRefParseException(msg) {\n\t\tthis.message = msg;\n\t}\n\n\tXRefParseException.prototype = new Error();\n\tXRefParseException.prototype.name = \"XRefParseException\";\n\tXRefParseException.constructor = XRefParseException;\n\n\treturn XRefParseException;\n})();\n\nfunction bytesToString(bytes) {\n\tvar str = \"\";\n\tvar length = bytes.length;\n\tfor (var n = 0; n < length; ++n) str += String.fromCharCode(bytes[n]);\n\treturn str;\n}\n\nfunction stringToBytes(str) {\n\tvar length = str.length;\n\tvar bytes = new Uint8Array(length);\n\tfor (var n = 0; n < length; ++n) bytes[n] = str.charCodeAt(n) & 0xff;\n\treturn bytes;\n}\n\nvar IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\n\nvar Util = (PDFJS.Util = (function UtilClosure() {\n\tfunction Util() {}\n\n\tUtil.makeCssRgb = function Util_makeCssRgb(rgb) {\n\t\treturn \"rgb(\" + rgb[0] + \",\" + rgb[1] + \",\" + rgb[2] + \")\";\n\t};\n\n\tUtil.makeCssCmyk = function Util_makeCssCmyk(cmyk) {\n\t\tvar rgb = ColorSpace.singletons.cmyk.getRgb(cmyk, 0);\n\t\treturn Util.makeCssRgb(rgb);\n\t};\n\n\t// Concatenates two transformation matrices together and returns the result.\n\tUtil.transform = function Util_transform(m1, m2) {\n\t\treturn [\n\t\t\tm1[0] * m2[0] + m1[2] * m2[1],\n\t\t\tm1[1] * m2[0] + m1[3] * m2[1],\n\t\t\tm1[0] * m2[2] + m1[2] * m2[3],\n\t\t\tm1[1] * m2[2] + m1[3] * m2[3],\n\t\t\tm1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n\t\t\tm1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n\t\t];\n\t};\n\n\t// For 2d affine transforms\n\tUtil.applyTransform = function Util_applyTransform(p, m) {\n\t\tvar xt = p[0] * m[0] + p[1] * m[2] + m[4];\n\t\tvar yt = p[0] * m[1] + p[1] * m[3] + m[5];\n\t\treturn [xt, yt];\n\t};\n\n\tUtil.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n\t\tvar d = m[0] * m[3] - m[1] * m[2];\n\t\tvar xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n\t\tvar yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n\t\treturn [xt, yt];\n\t};\n\n\t// Applies the transform to the rectangle and finds the minimum axially\n\t// aligned bounding box.\n\tUtil.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(\n\t\tr,\n\t\tm\n\t) {\n\t\tvar p1 = Util.applyTransform(r, m);\n\t\tvar p2 = Util.applyTransform(r.slice(2, 4), m);\n\t\tvar p3 = Util.applyTransform([r[0], r[3]], m);\n\t\tvar p4 = Util.applyTransform([r[2], r[1]], m);\n\t\treturn [\n\t\t\tMath.min(p1[0], p2[0], p3[0], p4[0]),\n\t\t\tMath.min(p1[1], p2[1], p3[1], p4[1]),\n\t\t\tMath.max(p1[0], p2[0], p3[0], p4[0]),\n\t\t\tMath.max(p1[1], p2[1], p3[1], p4[1]),\n\t\t];\n\t};\n\n\tUtil.inverseTransform = function Util_inverseTransform(m) {\n\t\tvar d = m[0] * m[3] - m[1] * m[2];\n\t\treturn [\n\t\t\tm[3] / d,\n\t\t\t-m[1] / d,\n\t\t\t-m[2] / d,\n\t\t\tm[0] / d,\n\t\t\t(m[2] * m[5] - m[4] * m[3]) / d,\n\t\t\t(m[4] * m[1] - m[5] * m[0]) / d,\n\t\t];\n\t};\n\n\t// Apply a generic 3d matrix M on a 3-vector v:\n\t//   | a b c |   | X |\n\t//   | d e f | x | Y |\n\t//   | g h i |   | Z |\n\t// M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n\t// with v as [X,Y,Z]\n\tUtil.apply3dTransform = function Util_apply3dTransform(m, v) {\n\t\treturn [\n\t\t\tm[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n\t\t\tm[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n\t\t\tm[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n\t\t];\n\t};\n\n\t// This calculation uses Singular Value Decomposition.\n\t// The SVD can be represented with formula A = USV. We are interested in the\n\t// matrix S here because it represents the scale values.\n\tUtil.singularValueDecompose2dScale =\n\t\tfunction Util_singularValueDecompose2dScale(m) {\n\t\t\tvar transpose = [m[0], m[2], m[1], m[3]];\n\n\t\t\t// Multiply matrix m with its transpose.\n\t\t\tvar a = m[0] * transpose[0] + m[1] * transpose[2];\n\t\t\tvar b = m[0] * transpose[1] + m[1] * transpose[3];\n\t\t\tvar c = m[2] * transpose[0] + m[3] * transpose[2];\n\t\t\tvar d = m[2] * transpose[1] + m[3] * transpose[3];\n\n\t\t\t// Solve the second degree polynomial to get roots.\n\t\t\tvar first = (a + d) / 2;\n\t\t\tvar second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n\t\t\tvar sx = first + second || 1;\n\t\t\tvar sy = first - second || 1;\n\n\t\t\t// Scale values are the square roots of the eigenvalues.\n\t\t\treturn [Math.sqrt(sx), Math.sqrt(sy)];\n\t\t};\n\n\t// Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n\t// For coordinate systems whose origin lies in the bottom-left, this\n\t// means normalization to (BL,TR) ordering. For systems with origin in the\n\t// top-left, this means (TL,BR) ordering.\n\tUtil.normalizeRect = function Util_normalizeRect(rect) {\n\t\tvar r = rect.slice(0); // clone rect\n\t\tif (rect[0] > rect[2]) {\n\t\t\tr[0] = rect[2];\n\t\t\tr[2] = rect[0];\n\t\t}\n\t\tif (rect[1] > rect[3]) {\n\t\t\tr[1] = rect[3];\n\t\t\tr[3] = rect[1];\n\t\t}\n\t\treturn r;\n\t};\n\n\t// Returns a rectangle [x1, y1, x2, y2] corresponding to the\n\t// intersection of rect1 and rect2. If no intersection, returns 'null'\n\t// The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n\tUtil.intersect = function Util_intersect(rect1, rect2) {\n\t\tconst xLow = Math.max(\n\t\t\tMath.min(rect1[0], rect1[2]),\n\t\t\tMath.min(rect2[0], rect2[2])\n\t\t);\n\t\tconst xHigh = Math.min(\n\t\t\tMath.max(rect1[0], rect1[2]),\n\t\t\tMath.max(rect2[0], rect2[2])\n\t\t);\n\t\tif (xLow > xHigh) {\n\t\t\treturn null;\n\t\t}\n\t\tconst yLow = Math.max(\n\t\t\tMath.min(rect1[1], rect1[3]),\n\t\t\tMath.min(rect2[1], rect2[3])\n\t\t);\n\t\tconst yHigh = Math.min(\n\t\t\tMath.max(rect1[1], rect1[3]),\n\t\t\tMath.max(rect2[1], rect2[3])\n\t\t);\n\t\tif (yLow > yHigh) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn [xLow, yLow, xHigh, yHigh];\n\t};\n\n\tUtil.sign = function Util_sign(num) {\n\t\treturn num < 0 ? -1 : 1;\n\t};\n\n\t// TODO(mack): Rename appendToArray\n\tUtil.concatenateToArray = function concatenateToArray(arr1, arr2) {\n\t\tArray.prototype.push.apply(arr1, arr2);\n\t};\n\n\tUtil.prependToArray = function concatenateToArray(arr1, arr2) {\n\t\tArray.prototype.unshift.apply(arr1, arr2);\n\t};\n\n\tUtil.extendObj = function extendObj(obj1, obj2) {\n\t\tfor (var key in obj2) {\n\t\t\tobj1[key] = obj2[key];\n\t\t}\n\t};\n\n\tUtil.getInheritableProperty = function Util_getInheritableProperty(\n\t\tdict,\n\t\tname\n\t) {\n\t\twhile (dict && !dict.has(name)) {\n\t\t\tdict = dict.get(\"Parent\");\n\t\t}\n\t\tif (!dict) {\n\t\t\treturn null;\n\t\t}\n\t\treturn dict.get(name);\n\t};\n\n\tUtil.inherit = function Util_inherit(sub, base, prototype) {\n\t\tsub.prototype = Object.create(base.prototype);\n\t\tsub.prototype.constructor = sub;\n\t\tfor (var prop in prototype) {\n\t\t\tsub.prototype[prop] = prototype[prop];\n\t\t}\n\t};\n\n\tUtil.loadScript = function Util_loadScript(src, callback) {\n\t\tvar script = document.createElement(\"script\");\n\t\tvar loaded = false;\n\t\tscript.setAttribute(\"src\", src);\n\t\tif (callback) {\n\t\t\tscript.onload = function () {\n\t\t\t\tif (!loaded) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t\tloaded = true;\n\t\t\t};\n\t\t}\n\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(script);\n\t};\n\n\treturn Util;\n})());\n\nvar PageViewport = (PDFJS.PageViewport = (function PageViewportClosure() {\n\tfunction PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) {\n\t\tthis.viewBox = viewBox;\n\t\tthis.scale = scale;\n\t\tthis.rotation = rotation;\n\t\tthis.offsetX = offsetX;\n\t\tthis.offsetY = offsetY;\n\n\t\t// creating transform to convert pdf coordinate system to the normal\n\t\t// canvas like coordinates taking in account scale and rotation\n\t\tvar centerX = (viewBox[2] + viewBox[0]) / 2;\n\t\tvar centerY = (viewBox[3] + viewBox[1]) / 2;\n\t\tvar rotateA, rotateB, rotateC, rotateD;\n\t\trotation = rotation % 360;\n\t\trotation = rotation < 0 ? rotation + 360 : rotation;\n\t\tswitch (rotation) {\n\t\t\tcase 180:\n\t\t\t\trotateA = -1;\n\t\t\t\trotateB = 0;\n\t\t\t\trotateC = 0;\n\t\t\t\trotateD = 1;\n\t\t\t\tbreak;\n\t\t\tcase 90:\n\t\t\t\trotateA = 0;\n\t\t\t\trotateB = 1;\n\t\t\t\trotateC = 1;\n\t\t\t\trotateD = 0;\n\t\t\t\tbreak;\n\t\t\tcase 270:\n\t\t\t\trotateA = 0;\n\t\t\t\trotateB = -1;\n\t\t\t\trotateC = -1;\n\t\t\t\trotateD = 0;\n\t\t\t\tbreak;\n\t\t\t//case 0:\n\t\t\tdefault:\n\t\t\t\trotateA = 1;\n\t\t\t\trotateB = 0;\n\t\t\t\trotateC = 0;\n\t\t\t\trotateD = -1;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (dontFlip) {\n\t\t\trotateC = -rotateC;\n\t\t\trotateD = -rotateD;\n\t\t}\n\n\t\tvar offsetCanvasX, offsetCanvasY;\n\t\tvar width, height;\n\t\tif (rotateA === 0) {\n\t\t\toffsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n\t\t\toffsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n\t\t\twidth = Math.abs(viewBox[3] - viewBox[1]) * scale;\n\t\t\theight = Math.abs(viewBox[2] - viewBox[0]) * scale;\n\t\t} else {\n\t\t\toffsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n\t\t\toffsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n\t\t\twidth = Math.abs(viewBox[2] - viewBox[0]) * scale;\n\t\t\theight = Math.abs(viewBox[3] - viewBox[1]) * scale;\n\t\t}\n\t\t// creating transform for the following operations:\n\t\t// translate(-centerX, -centerY), rotate and flip vertically,\n\t\t// scale, and translate(offsetCanvasX, offsetCanvasY)\n\t\tthis.transform = [\n\t\t\trotateA * scale,\n\t\t\trotateB * scale,\n\t\t\trotateC * scale,\n\t\t\trotateD * scale,\n\t\t\toffsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n\t\t\toffsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY,\n\t\t];\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.fontScale = scale;\n\t}\n\tPageViewport.prototype = {\n\t\tclone: function PageViewPort_clone(args) {\n\t\t\targs = args || {};\n\t\t\tvar scale = \"scale\" in args ? args.scale : this.scale;\n\t\t\tvar rotation = \"rotation\" in args ? args.rotation : this.rotation;\n\t\t\treturn new PageViewport(\n\t\t\t\tthis.viewBox.slice(),\n\t\t\t\tscale,\n\t\t\t\trotation,\n\t\t\t\tthis.offsetX,\n\t\t\t\tthis.offsetY,\n\t\t\t\targs.dontFlip\n\t\t\t);\n\t\t},\n\t\tconvertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {\n\t\t\treturn Util.applyTransform([x, y], this.transform);\n\t\t},\n\t\tconvertToViewportRectangle:\n\t\t\tfunction PageViewport_convertToViewportRectangle(rect) {\n\t\t\t\tvar tl = Util.applyTransform([rect[0], rect[1]], this.transform);\n\t\t\t\tvar br = Util.applyTransform([rect[2], rect[3]], this.transform);\n\t\t\t\treturn [tl[0], tl[1], br[0], br[1]];\n\t\t\t},\n\t\tconvertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) {\n\t\t\treturn Util.applyInverseTransform([x, y], this.transform);\n\t\t},\n\t};\n\treturn PageViewport;\n})());\n\nvar PDFStringTranslateTable = [\n\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n\t0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n\t0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n\t0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n\t0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n\tvar i,\n\t\tn = str.length,\n\t\tstr2 = \"\";\n\tif (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n\t\t// UTF16BE BOM\n\t\tfor (i = 2; i < n; i += 2)\n\t\t\tstr2 += String.fromCharCode(\n\t\t\t\t(str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)\n\t\t\t);\n\t} else {\n\t\tfor (i = 0; i < n; ++i) {\n\t\t\tvar code = PDFStringTranslateTable[str.charCodeAt(i)];\n\t\t\tstr2 += code ? String.fromCharCode(code) : str.charAt(i);\n\t\t}\n\t}\n\treturn str2;\n}\n\nfunction stringToUTF8String(str) {\n\treturn decodeURIComponent(escape(str));\n}\n\nfunction isEmptyObj(obj) {\n\tfor (var key in obj) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction isBool(v) {\n\treturn typeof v == \"boolean\";\n}\n\nfunction isInt(v) {\n\treturn typeof v == \"number\" && (v | 0) == v;\n}\n\nfunction isNum(v) {\n\treturn typeof v == \"number\";\n}\n\nfunction isString(v) {\n\treturn typeof v == \"string\";\n}\n\nfunction isNull(v) {\n\treturn v === null;\n}\n\nfunction isName(v) {\n\treturn v instanceof Name;\n}\n\nfunction isCmd(v, cmd) {\n\treturn v instanceof Cmd && (!cmd || v.cmd == cmd);\n}\n\nfunction isDict(v, type) {\n\tif (!(v instanceof Dict)) {\n\t\treturn false;\n\t}\n\tif (!type) {\n\t\treturn true;\n\t}\n\tvar dictType = v.get(\"Type\");\n\treturn isName(dictType) && dictType.name == type;\n}\n\nfunction isArray(v) {\n\treturn v instanceof Array;\n}\n\nfunction isStream(v) {\n\treturn (\n\t\ttypeof v == \"object\" && v !== null && v !== undefined && \"getBytes\" in v\n\t);\n}\n\nfunction isArrayBuffer(v) {\n\treturn (\n\t\ttypeof v == \"object\" && v !== null && v !== undefined && \"byteLength\" in v\n\t);\n}\n\nfunction isRef(v) {\n\treturn v instanceof Ref;\n}\n\nfunction isPDFFunction(v) {\n\tvar fnDict;\n\tif (typeof v != \"object\") return false;\n\telse if (isDict(v)) fnDict = v;\n\telse if (isStream(v)) fnDict = v.dict;\n\telse return false;\n\treturn fnDict.has(\"FunctionType\");\n}\n\n/**\n * The following promise implementation tries to generally implment the\n * Promise/A+ spec. Some notable differences from other promise libaries are:\n * - There currently isn't a seperate deferred and promise object.\n * - Unhandled rejections eventually show an error if they aren't handled.\n *\n * Based off of the work in:\n * https://bugzilla.mozilla.org/show_bug.cgi?id=810490\n */\nvar Promise = (PDFJS.Promise = (function PromiseClosure() {\n\tvar STATUS_PENDING = 0;\n\tvar STATUS_RESOLVED = 1;\n\tvar STATUS_REJECTED = 2;\n\n\t// In an attempt to avoid silent exceptions, unhandled rejections are\n\t// tracked and if they aren't handled in a certain amount of time an\n\t// error is logged.\n\tvar REJECTION_TIMEOUT = 500;\n\n\tvar HandlerManager = {\n\t\thandlers: [],\n\t\trunning: false,\n\t\tunhandledRejections: [],\n\t\tpendingRejectionCheck: false,\n\n\t\tscheduleHandlers: function scheduleHandlers(promise) {\n\t\t\tif (promise._status == STATUS_PENDING) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.handlers = this.handlers.concat(promise._handlers);\n\t\t\tpromise._handlers = [];\n\n\t\t\tif (this.running) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.running = true;\n\n\t\t\tsetTimeout(this.runHandlers.bind(this), 0);\n\t\t},\n\n\t\trunHandlers: function runHandlers() {\n\t\t\twhile (this.handlers.length > 0) {\n\t\t\t\tvar handler = this.handlers.shift();\n\n\t\t\t\tvar nextStatus = handler.thisPromise._status;\n\t\t\t\tvar nextValue = handler.thisPromise._value;\n\n\t\t\t\ttry {\n\t\t\t\t\tif (nextStatus === STATUS_RESOLVED) {\n\t\t\t\t\t\tif (typeof handler.onResolve == \"function\") {\n\t\t\t\t\t\t\tnextValue = handler.onResolve(nextValue);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (typeof handler.onReject === \"function\") {\n\t\t\t\t\t\tnextValue = handler.onReject(nextValue);\n\t\t\t\t\t\tnextStatus = STATUS_RESOLVED;\n\n\t\t\t\t\t\tif (handler.thisPromise._unhandledRejection) {\n\t\t\t\t\t\t\tthis.removeUnhandeledRejection(handler.thisPromise);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tnextStatus = STATUS_REJECTED;\n\t\t\t\t\tnextValue = ex;\n\t\t\t\t}\n\n\t\t\t\thandler.nextPromise._updateStatus(nextStatus, nextValue);\n\t\t\t}\n\n\t\t\tthis.running = false;\n\t\t},\n\n\t\taddUnhandledRejection: function addUnhandledRejection(promise) {\n\t\t\tthis.unhandledRejections.push({\n\t\t\t\tpromise: promise,\n\t\t\t\ttime: Date.now(),\n\t\t\t});\n\t\t\tthis.scheduleRejectionCheck();\n\t\t},\n\n\t\tremoveUnhandeledRejection: function removeUnhandeledRejection(promise) {\n\t\t\tpromise._unhandledRejection = false;\n\t\t\tfor (var i = 0; i < this.unhandledRejections.length; i++) {\n\t\t\t\tif (this.unhandledRejections[i].promise === promise) {\n\t\t\t\t\tthis.unhandledRejections.splice(i);\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tscheduleRejectionCheck: function scheduleRejectionCheck() {\n\t\t\tif (this.pendingRejectionCheck) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.pendingRejectionCheck = true;\n\t\t\tsetTimeout(\n\t\t\t\tfunction rejectionCheck() {\n\t\t\t\t\tthis.pendingRejectionCheck = false;\n\t\t\t\t\tvar now = Date.now();\n\t\t\t\t\tfor (var i = 0; i < this.unhandledRejections.length; i++) {\n\t\t\t\t\t\tif (now - this.unhandledRejections[i].time > REJECTION_TIMEOUT) {\n\t\t\t\t\t\t\tvar unhandled = this.unhandledRejections[i].promise._value;\n\t\t\t\t\t\t\tvar msg = \"Unhandled rejection: \" + unhandled;\n\t\t\t\t\t\t\tif (unhandled.stack) {\n\t\t\t\t\t\t\t\tmsg += \"\\n\" + unhandled.stack;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twarn(msg);\n\t\t\t\t\t\t\tthis.unhandledRejections.splice(i);\n\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (this.unhandledRejections.length) {\n\t\t\t\t\t\tthis.scheduleRejectionCheck();\n\t\t\t\t\t}\n\t\t\t\t}.bind(this),\n\t\t\t\tREJECTION_TIMEOUT\n\t\t\t);\n\t\t},\n\t};\n\n\tfunction Promise() {\n\t\tthis._status = STATUS_PENDING;\n\t\tthis._handlers = [];\n\t}\n\t/**\n\t * Builds a promise that is resolved when all the passed in promises are\n\t * resolved.\n\t * @param {array} array of data and/or promises to wait for.\n\t * @return {Promise} New dependant promise.\n\t */\n\tPromise.all = function Promise_all(promises) {\n\t\tvar deferred = new Promise();\n\t\tvar unresolved = promises.length;\n\t\tvar results = [];\n\t\tif (unresolved === 0) {\n\t\t\tdeferred.resolve(results);\n\t\t\treturn deferred;\n\t\t}\n\t\tfunction reject(reason) {\n\t\t\tif (deferred._status === STATUS_REJECTED) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresults = [];\n\t\t\tdeferred.reject(reason);\n\t\t}\n\t\tfor (var i = 0, ii = promises.length; i < ii; ++i) {\n\t\t\tvar promise = promises[i];\n\t\t\tvar resolve = (function (i) {\n\t\t\t\treturn function (value) {\n\t\t\t\t\tif (deferred._status === STATUS_REJECTED) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tresults[i] = value;\n\t\t\t\t\tunresolved--;\n\t\t\t\t\tif (unresolved === 0) deferred.resolve(results);\n\t\t\t\t};\n\t\t\t})(i);\n\t\t\tif (Promise.isPromise(promise)) {\n\t\t\t\tpromise.then(resolve, reject);\n\t\t\t} else {\n\t\t\t\tresolve(promise);\n\t\t\t}\n\t\t}\n\t\treturn deferred;\n\t};\n\n\t/**\n\t * Checks if the value is likely a promise (has a 'then' function).\n\t * @return {boolean} true if x is thenable\n\t */\n\tPromise.isPromise = function Promise_isPromise(value) {\n\t\treturn value && typeof value.then === \"function\";\n\t};\n\n\tPromise.prototype = {\n\t\t_status: null,\n\t\t_value: null,\n\t\t_handlers: null,\n\t\t_unhandledRejection: null,\n\n\t\t_updateStatus: function Promise__updateStatus(status, value) {\n\t\t\tif (\n\t\t\t\tthis._status === STATUS_RESOLVED ||\n\t\t\t\tthis._status === STATUS_REJECTED\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (status == STATUS_RESOLVED && Promise.isPromise(value)) {\n\t\t\t\tvalue.then(\n\t\t\t\t\tthis._updateStatus.bind(this, STATUS_RESOLVED),\n\t\t\t\t\tthis._updateStatus.bind(this, STATUS_REJECTED)\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._status = status;\n\t\t\tthis._value = value;\n\n\t\t\tif (status === STATUS_REJECTED && this._handlers.length === 0) {\n\t\t\t\tthis._unhandledRejection = true;\n\t\t\t\tHandlerManager.addUnhandledRejection(this);\n\t\t\t}\n\n\t\t\tHandlerManager.scheduleHandlers(this);\n\t\t},\n\n\t\tget isResolved() {\n\t\t\treturn this._status === STATUS_RESOLVED;\n\t\t},\n\n\t\tget isRejected() {\n\t\t\treturn this._status === STATUS_REJECTED;\n\t\t},\n\n\t\tresolve: function Promise_resolve(value) {\n\t\t\tthis._updateStatus(STATUS_RESOLVED, value);\n\t\t},\n\n\t\treject: function Promise_reject(reason) {\n\t\t\tthis._updateStatus(STATUS_REJECTED, reason);\n\t\t},\n\n\t\tthen: function Promise_then(onResolve, onReject) {\n\t\t\tvar nextPromise = new Promise();\n\t\t\tthis._handlers.push({\n\t\t\t\tthisPromise: this,\n\t\t\t\tonResolve: onResolve,\n\t\t\t\tonReject: onReject,\n\t\t\t\tnextPromise: nextPromise,\n\t\t\t});\n\t\t\tHandlerManager.scheduleHandlers(this);\n\t\t\treturn nextPromise;\n\t\t},\n\t};\n\n\treturn Promise;\n})());\n\nvar StatTimer = (function StatTimerClosure() {\n\tfunction rpad(str, pad, length) {\n\t\twhile (str.length < length) str += pad;\n\t\treturn str;\n\t}\n\tfunction StatTimer() {\n\t\tthis.started = {};\n\t\tthis.times = [];\n\t\tthis.enabled = true;\n\t}\n\tStatTimer.prototype = {\n\t\ttime: function StatTimer_time(name) {\n\t\t\tif (!this.enabled) return;\n\t\t\tif (name in this.started) warn(\"Timer is already running for \" + name);\n\t\t\tthis.started[name] = Date.now();\n\t\t},\n\t\ttimeEnd: function StatTimer_timeEnd(name) {\n\t\t\tif (!this.enabled) return;\n\t\t\tif (!(name in this.started))\n\t\t\t\twarn(\"Timer has not been started for \" + name);\n\t\t\tthis.times.push({\n\t\t\t\tname: name,\n\t\t\t\tstart: this.started[name],\n\t\t\t\tend: Date.now(),\n\t\t\t});\n\t\t\t// Remove timer from started so it can be called again.\n\t\t\tdelete this.started[name];\n\t\t},\n\t\ttoString: function StatTimer_toString() {\n\t\t\tvar times = this.times;\n\t\t\tvar out = \"\";\n\t\t\t// Find the longest name for padding purposes.\n\t\t\tvar longest = 0;\n\t\t\tfor (var i = 0, ii = times.length; i < ii; ++i) {\n\t\t\t\tvar name = times[i][\"name\"];\n\t\t\t\tif (name.length > longest) longest = name.length;\n\t\t\t}\n\t\t\tfor (var i = 0, ii = times.length; i < ii; ++i) {\n\t\t\t\tvar span = times[i];\n\t\t\t\tvar duration = span.end - span.start;\n\t\t\t\tout += rpad(span[\"name\"], \" \", longest) + \" \" + duration + \"ms\\n\";\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\t};\n\treturn StatTimer;\n})();\n\nPDFJS.createBlob = function createBlob(data, contentType) {\n\treturn new Blob([data], { type: contentType });\n};\n\nPDFJS.createObjectURL = (function createObjectURLClosure() {\n\tif (typeof URL !== \"undefined\" && URL.createObjectURL) {\n\t\treturn function createObjectURL(data, contentType) {\n\t\t\tvar blob = PDFJS.createBlob(data, contentType);\n\t\t\treturn URL.createObjectURL(blob);\n\t\t};\n\t}\n\n\t// Blob/createObjectURL is not available, falling back to data schema.\n\tvar digits =\n\t\t\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\treturn function createObjectURL(data, contentType) {\n\t\tvar buffer = \"data:\" + contentType + \";base64,\";\n\t\tfor (var i = 0, ii = data.length; i < ii; i += 3) {\n\t\t\tvar b1 = data[i] & 0xff;\n\t\t\tvar b2 = data[i + 1] & 0xff;\n\t\t\tvar b3 = data[i + 2] & 0xff;\n\t\t\tvar d1 = b1 >> 2,\n\t\t\t\td2 = ((b1 & 3) << 4) | (b2 >> 4);\n\t\t\tvar d3 = i + 1 < ii ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;\n\t\t\tvar d4 = i + 2 < ii ? b3 & 0x3f : 64;\n\t\t\tbuffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n\t\t}\n\t\treturn buffer;\n\t};\n})();\n\nfunction MessageHandler(name, comObj) {\n\tthis.name = name;\n\tthis.comObj = comObj;\n\tthis.callbackIndex = 1;\n\tthis.postMessageTransfers = true;\n\tvar callbacks = (this.callbacks = {});\n\tvar ah = (this.actionHandler = {});\n\n\tah[\"console_log\"] = [\n\t\tfunction ahConsoleLog(data) {\n\t\t\tlog.apply(null, data);\n\t\t},\n\t];\n\t// If there's no console available, console_error in the\n\t// action handler will do nothing.\n\tif (\"console\" in globalScope) {\n\t\tah[\"console_error\"] = [\n\t\t\tfunction ahConsoleError(data) {\n\t\t\t\tglobalScope[\"console\"].error.apply(null, data);\n\t\t\t},\n\t\t];\n\t} else {\n\t\tah[\"console_error\"] = [\n\t\t\tfunction ahConsoleError(data) {\n\t\t\t\tlog.apply(null, data);\n\t\t\t},\n\t\t];\n\t}\n\tah[\"_warn\"] = [\n\t\tfunction ah_Warn(data) {\n\t\t\twarn(data);\n\t\t},\n\t];\n\n\tif (typeof comObj === \"object\") {\n\t\tcomObj.onmessage = function messageHandlerComObjOnMessage(event) {\n\t\t\tvar data = event.data;\n\t\t\tif (data.isReply) {\n\t\t\t\tvar callbackId = data.callbackId;\n\t\t\t\tif (data.callbackId in callbacks) {\n\t\t\t\t\tvar callback = callbacks[callbackId];\n\t\t\t\t\tdelete callbacks[callbackId];\n\t\t\t\t\tcallback(data.data);\n\t\t\t\t} else {\n\t\t\t\t\terror(\"Cannot resolve callback \" + callbackId);\n\t\t\t\t}\n\t\t\t} else if (data.action in ah) {\n\t\t\t\tvar action = ah[data.action];\n\t\t\t\tif (data.callbackId) {\n\t\t\t\t\tvar promise = new Promise();\n\t\t\t\t\tpromise.then(function (resolvedData) {\n\t\t\t\t\t\tcomObj.postMessage({\n\t\t\t\t\t\t\tisReply: true,\n\t\t\t\t\t\t\tcallbackId: data.callbackId,\n\t\t\t\t\t\t\tdata: resolvedData,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\taction[0].call(action[1], data.data, promise);\n\t\t\t\t} else {\n\t\t\t\t\taction[0].call(action[1], data.data);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terror(\"Unkown action from worker: \" + data.action);\n\t\t\t}\n\t\t};\n\t}\n}\n\nMessageHandler.prototype = {\n\ton: function messageHandlerOn(actionName, handler, scope) {\n\t\tvar ah = this.actionHandler;\n\t\tif (ah[actionName]) {\n\t\t\terror('There is already an actionName called \"' + actionName + '\"');\n\t\t}\n\t\tah[actionName] = [handler, scope];\n\t},\n\t/**\n\t * Sends a message to the comObj to invoke the action with the supplied data.\n\t * @param {String} actionName Action to call.\n\t * @param {JSON} data JSON data to send.\n\t * @param {function} [callback] Optional callback that will handle a reply.\n\t * @param {Array} [transfers] Optional list of transfers/ArrayBuffers\n\t */\n\tsend: function messageHandlerSend(actionName, data, callback, transfers) {\n\t\tvar message = {\n\t\t\taction: actionName,\n\t\t\tdata: data,\n\t\t};\n\t\tif (callback) {\n\t\t\tvar callbackId = this.callbackIndex++;\n\t\t\tthis.callbacks[callbackId] = callback;\n\t\t\tmessage.callbackId = callbackId;\n\t\t}\n\t\tif (transfers && this.postMessageTransfers) {\n\t\t\tthis.comObj.postMessage(message, transfers);\n\t\t} else {\n\t\t\tthis.comObj.postMessage(message);\n\t\t}\n\t},\n};\n\nfunction loadJpegStream(id, imageUrl, objs) {\n\tvar img = new Image();\n\timg.onload = function loadJpegStream_onloadClosure() {\n\t\tobjs.resolve(id, img);\n\t};\n\t//  img.src = imageUrl;\n\t//MQZ. Apr.09.2013 calls windows.btoa safely\n\timg.src = \"data:image/jpeg;base64,\" + img.btoa(imageUrl);\n}\n\n//MQZ Oct.18.2013 expose util methods\nnodeUtil.p2jlog = log;\nnodeUtil.p2jinfo = info;\nnodeUtil.p2jwarn = warn;\nnodeUtil.p2jerror = error;\nnodeUtil.verbosity = function (verbo) {\n\tif (isNaN(verbo)) {\n\t\tverbosity = WARNINGS;\n\t} else {\n\t\tif (verbo <= ERRORS) {\n\t\t\tverbosity = ERRORS;\n\t\t} else if (verbo >= INFOS) {\n\t\t\tverbosity = INFOS;\n\t\t} else verbosity = verbo;\n\t}\n};\nnodeUtil.verbosity();\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals error, info, isArray, isDict, isName, isStream, isString,\n           PDFFunction, warn, shadow, TODO */\n\n'use strict';\n\nvar ColorSpace = (function ColorSpaceClosure() {\n  // Constructor should define this.numComps, this.defaultColor, this.name\n  function ColorSpace() {\n    error('should not call ColorSpace constructor');\n  }\n\n  ColorSpace.prototype = {\n    /**\n     * Converts the color value to the RGB color. The color components are\n     * located in the src array starting from the srcOffset. Returns the array\n     * of the rgb components, each value ranging from [0,255].\n     */\n    getRgb: function ColorSpace_getRgb(src, srcOffset) {\n      error('Should not call ColorSpace.getRgb');\n    },\n    /**\n     * Converts the color value to the RGB color, similar to the getRgb method.\n     * The result placed into the dest array starting from the destOffset.\n     */\n    getRgbItem: function ColorSpace_getRgb(src, srcOffset, dest, destOffset) {\n      error('Should not call ColorSpace.getRgbItem');\n    },\n    /**\n     * Converts the specified number of the color values to the RGB colors.\n     * The colors are located in the src array starting from the srcOffset.\n     * The result is placed into the dest array starting from the destOffset.\n     * The src array items shall be in [0,2^bits) range, the dest array items\n     * will be in [0,255] range.\n     */\n    getRgbBuffer: function ColorSpace_getRgbBuffer(src, srcOffset, count,\n                                                   dest, destOffset, bits) {\n      error('Should not call ColorSpace.getRgbBuffer');\n    },\n    /**\n     * Determines amount of the bytes is required to store the reslut of the\n     * conversion that done by the getRgbBuffer method.\n     */\n    getOutputLength: function ColorSpace_getOutputLength(inputLength) {\n      error('Should not call ColorSpace.getOutputLength');\n    },\n    /**\n     * Returns true if source data will be equal the result/output data.\n     */\n    isPassthrough: function ColorSpace_isPassthrough(bits) {\n      return false;\n    },\n    /**\n     * Creates the output buffer and converts the specified number of the color\n     * values to the RGB colors, similar to the getRgbBuffer.\n     */\n    createRgbBuffer: function ColorSpace_createRgbBuffer(src, srcOffset,\n                                                         count, bits) {\n      if (this.isPassthrough(bits)) {\n        return src.subarray(srcOffset);\n      }\n      var dest = new Uint8Array(count * 3);\n      var numComponentColors = 1 << bits;\n      // Optimization: create a color map when there is just one component and\n      // we are converting more colors than the size of the color map. We\n      // don't build the map if the colorspace is gray or rgb since those\n      // methods are faster than building a map. This mainly offers big speed\n      // ups for indexed and alternate colorspaces.\n      if (this.numComps === 1 && count > numComponentColors &&\n          this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') {\n        // TODO it may be worth while to cache the color map. While running\n        // testing I never hit a cache so I will leave that out for now (perhaps\n        // we are reparsing colorspaces too much?).\n        var allColors = bits <= 8 ? new Uint8Array(numComponentColors) :\n                                    new Uint16Array(numComponentColors);\n        for (var i = 0; i < numComponentColors; i++) {\n          allColors[i] = i;\n        }\n        var colorMap = new Uint8Array(numComponentColors * 3);\n        this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bits);\n\n        var destOffset = 0;\n        for (var i = 0; i < count; ++i) {\n          var key = src[srcOffset++] * 3;\n          dest[destOffset++] = colorMap[key];\n          dest[destOffset++] = colorMap[key + 1];\n          dest[destOffset++] = colorMap[key + 2];\n        }\n        return dest;\n      }\n      this.getRgbBuffer(src, srcOffset, count, dest, 0, bits);\n      return dest;\n    },\n    /**\n     * True if the colorspace has components in the default range of [0, 1].\n     * This should be true for all colorspaces except for lab color spaces\n     * which are [0,100], [-128, 127], [-128, 127].\n     */\n    usesZeroToOneRange: true\n  };\n\n  ColorSpace.parse = function ColorSpace_parse(cs, xref, res) {\n    var IR = ColorSpace.parseToIR(cs, xref, res);\n    if (IR instanceof AlternateCS)\n      return IR;\n\n    return ColorSpace.fromIR(IR);\n  };\n\n  ColorSpace.fromIR = function ColorSpace_fromIR(IR) {\n    var name = isArray(IR) ? IR[0] : IR;\n\n    switch (name) {\n      case 'DeviceGrayCS':\n        return this.singletons.gray;\n      case 'DeviceRgbCS':\n        return this.singletons.rgb;\n      case 'DeviceCmykCS':\n        return this.singletons.cmyk;\n      case 'CalGrayCS':\n        var whitePoint = IR[1].WhitePoint;\n        var blackPoint = IR[1].BlackPoint;\n        var gamma = IR[1].Gamma;\n        return new CalGrayCS(whitePoint, blackPoint, gamma);\n      case 'PatternCS':\n        var basePatternCS = IR[1];\n        if (basePatternCS)\n          basePatternCS = ColorSpace.fromIR(basePatternCS);\n        return new PatternCS(basePatternCS);\n      case 'IndexedCS':\n        var baseIndexedCS = IR[1];\n        var hiVal = IR[2];\n        var lookup = IR[3];\n        return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup);\n      case 'AlternateCS':\n        var numComps = IR[1];\n        var alt = IR[2];\n        var tintFnIR = IR[3];\n\n        return new AlternateCS(numComps, ColorSpace.fromIR(alt),\n                                PDFFunction.fromIR(tintFnIR));\n      case 'LabCS':\n        var whitePoint = IR[1].WhitePoint;\n        var blackPoint = IR[1].BlackPoint;\n        var range = IR[1].Range;\n        return new LabCS(whitePoint, blackPoint, range);\n      default:\n        error('Unkown name ' + name);\n    }\n    return null;\n  };\n\n  ColorSpace.parseToIR = function ColorSpace_parseToIR(cs, xref, res) {\n    if (isName(cs)) {\n      var colorSpaces = res.get('ColorSpace');\n      if (isDict(colorSpaces)) {\n        var refcs = colorSpaces.get(cs.name);\n        if (refcs)\n          cs = refcs;\n      }\n    }\n\n    cs = xref.fetchIfRef(cs);\n    var mode;\n\n    if (isName(cs)) {\n      mode = cs.name;\n      this.mode = mode;\n\n      switch (mode) {\n        case 'DeviceGray':\n        case 'G':\n          return 'DeviceGrayCS';\n        case 'DeviceRGB':\n        case 'RGB':\n          return 'DeviceRgbCS';\n        case 'DeviceCMYK':\n        case 'CMYK':\n          return 'DeviceCmykCS';\n        case 'Pattern':\n          return ['PatternCS', null];\n        default:\n          error('unrecognized colorspace ' + mode);\n      }\n    } else if (isArray(cs)) {\n      mode = cs[0].name;\n      this.mode = mode;\n\n      switch (mode) {\n        case 'DeviceGray':\n        case 'G':\n          return 'DeviceGrayCS';\n        case 'DeviceRGB':\n        case 'RGB':\n          return 'DeviceRgbCS';\n        case 'DeviceCMYK':\n        case 'CMYK':\n          return 'DeviceCmykCS';\n        case 'CalGray':\n          var params = cs[1].getAll();\n          return ['CalGrayCS', params];\n        case 'CalRGB':\n          return 'DeviceRgbCS';\n        case 'ICCBased':\n          var stream = xref.fetchIfRef(cs[1]);\n          var dict = stream.dict;\n          var numComps = dict.get('N');\n          if (numComps == 1)\n            return 'DeviceGrayCS';\n          if (numComps == 3)\n            return 'DeviceRgbCS';\n          if (numComps == 4)\n            return 'DeviceCmykCS';\n          break;\n        case 'Pattern':\n          var basePatternCS = cs[1];\n          if (basePatternCS)\n            basePatternCS = ColorSpace.parseToIR(basePatternCS, xref, res);\n          return ['PatternCS', basePatternCS];\n        case 'Indexed':\n        case 'I':\n          var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res);\n          var hiVal = cs[2] + 1;\n          var lookup = xref.fetchIfRef(cs[3]);\n          if (isStream(lookup)) {\n            lookup = lookup.getBytes();\n          }\n          return ['IndexedCS', baseIndexedCS, hiVal, lookup];\n        case 'Separation':\n        case 'DeviceN':\n          var name = cs[1];\n          var numComps = 1;\n          if (isName(name))\n            numComps = 1;\n          else if (isArray(name))\n            numComps = name.length;\n          var alt = ColorSpace.parseToIR(cs[2], xref, res);\n          var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3]));\n          return ['AlternateCS', numComps, alt, tintFnIR];\n        case 'Lab':\n          var params = cs[1].getAll();\n          return ['LabCS', params];\n        default:\n          error('unimplemented color space object \"' + mode + '\"');\n      }\n    } else {\n      error('unrecognized color space object: \"' + cs + '\"');\n    }\n    return null;\n  };\n  /**\n   * Checks if a decode map matches the default decode map for a color space.\n   * This handles the general decode maps where there are two values per\n   * component. e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n   * This does not handle Lab, Indexed, or Pattern decode maps since they are\n   * slightly different.\n   * @param {Array} decode Decode map (usually from an image).\n   * @param {Number} n Number of components the color space has.\n   */\n  ColorSpace.isDefaultDecode = function ColorSpace_isDefaultDecode(decode, n) {\n    if (!decode)\n      return true;\n\n    if (n * 2 !== decode.length) {\n      warn('The decode map is not the correct length');\n      return true;\n    }\n    for (var i = 0, ii = decode.length; i < ii; i += 2) {\n      if (decode[i] !== 0 || decode[i + 1] != 1)\n        return false;\n    }\n    return true;\n  };\n\n  ColorSpace.singletons = {\n    get gray() {\n      return shadow(this, 'gray', new DeviceGrayCS());\n    },\n    get rgb() {\n      return shadow(this, 'rgb', new DeviceRgbCS());\n    },\n    get cmyk() {\n      return shadow(this, 'cmyk', new DeviceCmykCS());\n    }\n  };\n\n  return ColorSpace;\n})();\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces.  A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n */\nvar AlternateCS = (function AlternateCSClosure() {\n  function AlternateCS(numComps, base, tintFn) {\n    this.name = 'Alternate';\n    this.numComps = numComps;\n    this.defaultColor = new Float32Array(numComps);\n    for (var i = 0; i < numComps; ++i) {\n      this.defaultColor[i] = 1;\n    }\n    this.base = base;\n    this.tintFn = tintFn;\n  }\n\n  AlternateCS.prototype = {\n    getRgb: function AlternateCS_getRgb(src, srcOffset) {\n      var rgb = new Uint8Array(3);\n      this.getRgbItem(src, srcOffset, rgb, 0);\n      return rgb;\n    },\n    getRgbItem: function AlternateCS_getRgbItem(src, srcOffset,\n                                                dest, destOffset) {\n      var baseNumComps = this.base.numComps;\n      var input = 'subarray' in src ?\n        src.subarray(srcOffset, srcOffset + this.numComps) :\n        Array.prototype.slice.call(src, srcOffset, srcOffset + this.numComps);\n      var tinted = this.tintFn(input);\n      this.base.getRgbItem(tinted, 0, dest, destOffset);\n    },\n    getRgbBuffer: function AlternateCS_getRgbBuffer(src, srcOffset, count,\n                                                    dest, destOffset, bits) {\n      var tintFn = this.tintFn;\n      var base = this.base;\n      var scale = 1 / ((1 << bits) - 1);\n      var baseNumComps = base.numComps;\n      var usesZeroToOneRange = base.usesZeroToOneRange;\n      var isPassthrough = base.isPassthrough(8) || !usesZeroToOneRange;\n      var pos = isPassthrough ? destOffset : 0;\n      var baseBuf = isPassthrough ? dest : new Uint8Array(baseNumComps * count);\n      var numComps = this.numComps;\n\n      var scaled = new Float32Array(numComps);\n      for (var i = 0; i < count; i++) {\n        for (var j = 0; j < numComps; j++) {\n          scaled[j] = src[srcOffset++] * scale;\n        }\n        var tinted = tintFn(scaled);\n        if (usesZeroToOneRange) {\n          for (var j = 0; j < baseNumComps; j++) {\n            baseBuf[pos++] = tinted[j] * 255;\n          }\n        } else {\n          base.getRgbItem(tinted, 0, baseBuf, pos);\n          pos += baseNumComps;\n        }\n      }\n      if (!isPassthrough) {\n        base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8);\n      }\n    },\n    getOutputLength: function AlternateCS_getOutputLength(inputLength) {\n      return this.base.getOutputLength(inputLength *\n                                       this.base.numComps / this.numComps);\n    },\n    isPassthrough: ColorSpace.prototype.isPassthrough,\n    createRgbBuffer: ColorSpace.prototype.createRgbBuffer,\n    isDefaultDecode: function AlternateCS_isDefaultDecode(decodeMap) {\n      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n    },\n    usesZeroToOneRange: true\n  };\n\n  return AlternateCS;\n})();\n\nvar PatternCS = (function PatternCSClosure() {\n  function PatternCS(baseCS) {\n    this.name = 'Pattern';\n    this.base = baseCS;\n  }\n  PatternCS.prototype = {};\n\n  return PatternCS;\n})();\n\nvar IndexedCS = (function IndexedCSClosure() {\n  function IndexedCS(base, highVal, lookup) {\n    this.name = 'Indexed';\n    this.numComps = 1;\n    this.defaultColor = new Uint8Array([0]);\n    this.base = base;\n    this.highVal = highVal;\n\n    var baseNumComps = base.numComps;\n    var length = baseNumComps * highVal;\n    var lookupArray;\n\n    if (isStream(lookup)) {\n      lookupArray = new Uint8Array(length);\n      var bytes = lookup.getBytes(length);\n      lookupArray.set(bytes);\n    } else if (isString(lookup)) {\n      lookupArray = new Uint8Array(length);\n      for (var i = 0; i < length; ++i)\n        lookupArray[i] = lookup.charCodeAt(i);\n    } else if (lookup instanceof Uint8Array || lookup instanceof Array) {\n      lookupArray = lookup;\n    } else {\n      error('Unrecognized lookup table: ' + lookup);\n    }\n    this.lookup = lookupArray;\n  }\n\n  IndexedCS.prototype = {\n    getRgb: function IndexedCS_getRgb(src, srcOffset) {\n      var numComps = this.base.numComps;\n      var start = src[srcOffset] * numComps;\n      return this.base.getRgb(this.lookup, start);\n    },\n    getRgbItem: function IndexedCS_getRgbItem(src, srcOffset,\n                                              dest, destOffset) {\n      var numComps = this.base.numComps;\n      var start = src[srcOffset] * numComps;\n      this.base.getRgbItem(this.lookup, start, dest, destOffset);\n    },\n    getRgbBuffer: function IndexedCS_getRgbBuffer(src, srcOffset, count,\n                                                  dest, destOffset) {\n      var base = this.base;\n      var numComps = base.numComps;\n      var outputDelta = base.getOutputLength(numComps);\n      var lookup = this.lookup;\n\n      for (var i = 0; i < count; ++i) {\n        var lookupPos = src[srcOffset++] * numComps;\n        base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8);\n        destOffset += outputDelta;\n      }\n    },\n    getOutputLength: function IndexedCS_getOutputLength(inputLength) {\n      return this.base.getOutputLength(inputLength * this.base.numComps);\n    },\n    isPassthrough: ColorSpace.prototype.isPassthrough,\n    createRgbBuffer: ColorSpace.prototype.createRgbBuffer,\n    isDefaultDecode: function IndexedCS_isDefaultDecode(decodeMap) {\n      // indexed color maps shouldn't be changed\n      return true;\n    },\n    usesZeroToOneRange: true\n  };\n  return IndexedCS;\n})();\n\nvar DeviceGrayCS = (function DeviceGrayCSClosure() {\n  function DeviceGrayCS() {\n    this.name = 'DeviceGray';\n    this.numComps = 1;\n    this.defaultColor = new Float32Array([0]);\n  }\n\n  DeviceGrayCS.prototype = {\n    getRgb: function DeviceGrayCS_getRgb(src, srcOffset) {\n      var rgb = new Uint8Array(3);\n      this.getRgbItem(src, srcOffset, rgb, 0);\n      return rgb;\n    },\n    getRgbItem: function DeviceGrayCS_getRgbItem(src, srcOffset,\n                                                 dest, destOffset) {\n      var c = (src[srcOffset] * 255) | 0;\n      c = c < 0 ? 0 : c > 255 ? 255 : c;\n      dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n    },\n    getRgbBuffer: function DeviceGrayCS_getRgbBuffer(src, srcOffset, count,\n                                                     dest, destOffset, bits) {\n      var scale = 255 / ((1 << bits) - 1);\n      var j = srcOffset, q = destOffset;\n      for (var i = 0; i < count; ++i) {\n        var c = (scale * src[j++]) | 0;\n        dest[q++] = c;\n        dest[q++] = c;\n        dest[q++] = c;\n      }\n    },\n    getOutputLength: function DeviceGrayCS_getOutputLength(inputLength) {\n      return inputLength * 3;\n    },\n    isPassthrough: ColorSpace.prototype.isPassthrough,\n    createRgbBuffer: ColorSpace.prototype.createRgbBuffer,\n    isDefaultDecode: function DeviceGrayCS_isDefaultDecode(decodeMap) {\n      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n    },\n    usesZeroToOneRange: true\n  };\n  return DeviceGrayCS;\n})();\n\nvar DeviceRgbCS = (function DeviceRgbCSClosure() {\n  function DeviceRgbCS() {\n    this.name = 'DeviceRGB';\n    this.numComps = 3;\n    this.defaultColor = new Float32Array([0, 0, 0]);\n  }\n  DeviceRgbCS.prototype = {\n    getRgb: function DeviceRgbCS_getRgb(src, srcOffset) {\n      var rgb = new Uint8Array(3);\n      this.getRgbItem(src, srcOffset, rgb, 0);\n      return rgb;\n    },\n    getRgbItem: function DeviceRgbCS_getRgbItem(src, srcOffset,\n                                                dest, destOffset) {\n      var r = (src[srcOffset] * 255) | 0;\n      var g = (src[srcOffset + 1] * 255) | 0;\n      var b = (src[srcOffset + 2] * 255) | 0;\n      dest[destOffset] = r < 0 ? 0 : r > 255 ? 255 : r;\n      dest[destOffset + 1] = g < 0 ? 0 : g > 255 ? 255 : g;\n      dest[destOffset + 2] = b < 0 ? 0 : b > 255 ? 255 : b;\n    },\n    getRgbBuffer: function DeviceRgbCS_getRgbBuffer(src, srcOffset, count,\n                                                    dest, destOffset, bits) {\n      var length = count * 3;\n      if (bits == 8) {\n        dest.set(src.subarray(srcOffset, srcOffset + length), destOffset);\n        return;\n      }\n      var scale = 255 / ((1 << bits) - 1);\n      var j = srcOffset, q = destOffset;\n      for (var i = 0; i < length; ++i) {\n        dest[q++] = (scale * src[j++]) | 0;\n      }\n    },\n    getOutputLength: function DeviceRgbCS_getOutputLength(inputLength) {\n      return inputLength;\n    },\n    isPassthrough: function DeviceRgbCS_isPassthrough(bits) {\n      return bits == 8;\n    },\n    createRgbBuffer: ColorSpace.prototype.createRgbBuffer,\n    isDefaultDecode: function DeviceRgbCS_isDefaultDecode(decodeMap) {\n      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n    },\n    usesZeroToOneRange: true\n  };\n  return DeviceRgbCS;\n})();\n\nvar DeviceCmykCS = (function DeviceCmykCSClosure() {\n  // The coefficients below was found using numerical analysis: the method of\n  // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n  // where color_value is the tabular value from the table of sampled RGB colors\n  // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n  // CMYK color conversion using the estimation below:\n  //   f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n  function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n    var c = src[srcOffset + 0] * srcScale;\n    var m = src[srcOffset + 1] * srcScale;\n    var y = src[srcOffset + 2] * srcScale;\n    var k = src[srcOffset + 3] * srcScale;\n\n    var r =\n      c * (-4.387332384609988 * c + 54.48615194189176 * m +\n           18.82290502165302 * y + 212.25662451639585 * k +\n           -285.2331026137004) +\n      m * (1.7149763477362134 * m - 5.6096736904047315 * y +\n           -17.873870861415444 * k - 5.497006427196366) +\n      y * (-2.5217340131683033 * y - 21.248923337353073 * k +\n           17.5119270841813) +\n      k * (-21.86122147463605 * k - 189.48180835922747) + 255;\n    var g =\n      c * (8.841041422036149 * c + 60.118027045597366 * m +\n           6.871425592049007 * y + 31.159100130055922 * k +\n           -79.2970844816548) +\n      m * (-15.310361306967817 * m + 17.575251261109482 * y +\n           131.35250912493976 * k - 190.9453302588951) +\n      y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n      k * (-20.737325471181034 * k - 187.80453709719578) + 255;\n    var b =\n      c * (0.8842522430003296 * c + 8.078677503112928 * m +\n           30.89978309703729 * y - 0.23883238689178934 * k +\n           -14.183576799673286) +\n      m * (10.49593273432072 * m + 63.02378494754052 * y +\n           50.606957656360734 * k - 112.23884253719248) +\n      y * (0.03296041114873217 * y + 115.60384449646641 * k +\n           -193.58209356861505) +\n      k * (-22.33816807309886 * k - 180.12613974708367) + 255;\n\n    dest[destOffset] = r > 255 ? 255 : r < 0 ? 0 : r;\n    dest[destOffset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;\n    dest[destOffset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;\n  }\n\n  function DeviceCmykCS() {\n    this.name = 'DeviceCMYK';\n    this.numComps = 4;\n    this.defaultColor = new Float32Array([0, 0, 0, 1]);\n  }\n  DeviceCmykCS.prototype = {\n    getRgb: function DeviceCmykCS_getRgb(src, srcOffset) {\n      var rgb = new Uint8Array(3);\n      convertToRgb(src, srcOffset, 1, rgb, 0);\n      return rgb;\n    },\n    getRgbItem: function DeviceCmykCS_getRgbItem(src, srcOffset,\n                                                 dest, destOffset) {\n      convertToRgb(src, srcOffset, 1, dest, destOffset);\n    },\n    getRgbBuffer: function DeviceCmykCS_getRgbBuffer(src, srcOffset, count,\n                                                     dest, destOffset, bits) {\n      var scale = 1 / ((1 << bits) - 1);\n      for (var i = 0; i < count; i++) {\n        convertToRgb(src, srcOffset, scale, dest, destOffset);\n        srcOffset += 4;\n        destOffset += 3;\n      }\n    },\n    getOutputLength: function DeviceCmykCS_getOutputLength(inputLength) {\n      return (inputLength >> 2) * 3;\n    },\n    isPassthrough: ColorSpace.prototype.isPassthrough,\n    createRgbBuffer: ColorSpace.prototype.createRgbBuffer,\n    isDefaultDecode: function DeviceCmykCS_isDefaultDecode(decodeMap) {\n      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n    },\n    usesZeroToOneRange: true\n  };\n\n  return DeviceCmykCS;\n})();\n\n//\n// CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n//\nvar CalGrayCS = (function CalGrayCSClosure() {\n  function CalGrayCS(whitePoint, blackPoint, gamma) {\n    this.name = 'CalGray';\n    this.numComps = 3;\n    this.defaultColor = new Float32Array([0, 0, 0]);\n\n    if (!whitePoint) {\n      error('WhitePoint missing - required for color space CalGray');\n    }\n    blackPoint = blackPoint || [0, 0, 0];\n    gamma = gamma || 1;\n\n    // Translate arguments to spec variables.\n    this.XW = whitePoint[0];\n    this.YW = whitePoint[1];\n    this.ZW = whitePoint[2];\n\n    this.XB = blackPoint[0];\n    this.YB = blackPoint[1];\n    this.ZB = blackPoint[2];\n\n    this.G = gamma;\n\n    // Validate variables as per spec.\n    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n      error('Invalid WhitePoint components for ' + this.name +\n            ', no fallback available');\n    }\n\n    if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n      info('Invalid BlackPoint for ' + this.name + ', falling back to default');\n      this.XB = this.YB = this.ZB = 0;\n    }\n\n    if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n      TODO(this.name + ', BlackPoint: XB: ' + this.XB + ', YB: ' + this.YB +\n           ', ZB: ' + this.ZB + ', only default values are supported.');\n    }\n\n    if (this.G < 1) {\n      info('Invalid Gamma: ' + this.G + ' for ' + this.name +\n           ', falling back to default');\n      this.G = 1;\n    }\n  }\n\n  CalGrayCS.prototype = {\n    getRgb: function CalGrayCS_getRgb(src, srcOffset) {\n      var rgb = new Uint8Array(3);\n      this.getRgbItem(src, srcOffset, rgb, 0);\n      return rgb;\n    },\n    getRgbItem: function CalGrayCS_getRgbItem(src, srcOffset,\n                                              dest, destOffset) {\n      // A represents a gray component of a calibrated gray space.\n      // A <---> AG in the spec\n      var A = src[srcOffset];\n      var AG = Math.pow(A, this.G);\n\n      // Computes intermediate variables M, L, N as per spec.\n      // Except if other than default BlackPoint values are used.\n      var M = this.XW * AG;\n      var L = this.YW * AG;\n      var N = this.ZW * AG;\n\n      // Decode XYZ, as per spec.\n      var X = M;\n      var Y = L;\n      var Z = N;\n\n      // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n      // This yields values in range [0, 100].\n      var Lstar = Math.max(116 * Math.pow(Y, 1 / 3) - 16, 0);\n\n      // Convert values to rgb range [0, 255].\n      dest[destOffset] = Lstar * 255 / 100;\n      dest[destOffset + 1] = Lstar * 255 / 100;\n      dest[destOffset + 2] = Lstar * 255 / 100;\n    },\n    getRgbBuffer: function CalGrayCS_getRgbBuffer(src, srcOffset, count,\n                                                  dest, destOffset, bits) {\n      // TODO: This part is copied from DeviceGray. Make this utility function.\n      var scale = 255 / ((1 << bits) - 1);\n      var j = srcOffset, q = destOffset;\n      for (var i = 0; i < count; ++i) {\n        var c = (scale * src[j++]) | 0;\n        dest[q++] = c;\n        dest[q++] = c;\n        dest[q++] = c;\n      }\n    },\n    getOutputLength: function CalGrayCS_getOutputLength(inputLength) {\n      return inputLength * 3;\n    },\n    isPassthrough: ColorSpace.prototype.isPassthrough,\n    createRgbBuffer: ColorSpace.prototype.createRgbBuffer,\n    isDefaultDecode: function CalGrayCS_isDefaultDecode(decodeMap) {\n      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n    },\n    usesZeroToOneRange: true\n  };\n  return CalGrayCS;\n})();\n\n//\n// LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n//\nvar LabCS = (function LabCSClosure() {\n  function LabCS(whitePoint, blackPoint, range) {\n    this.name = 'Lab';\n    this.numComps = 3;\n    this.defaultColor = new Float32Array([0, 0, 0]);\n\n    if (!whitePoint)\n      error('WhitePoint missing - required for color space Lab');\n    blackPoint = blackPoint || [0, 0, 0];\n    range = range || [-100, 100, -100, 100];\n\n    // Translate args to spec variables\n    this.XW = whitePoint[0];\n    this.YW = whitePoint[1];\n    this.ZW = whitePoint[2];\n    this.amin = range[0];\n    this.amax = range[1];\n    this.bmin = range[2];\n    this.bmax = range[3];\n\n    // These are here just for completeness - the spec doesn't offer any\n    // formulas that use BlackPoint in Lab\n    this.XB = blackPoint[0];\n    this.YB = blackPoint[1];\n    this.ZB = blackPoint[2];\n\n    // Validate vars as per spec\n    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1)\n      error('Invalid WhitePoint components, no fallback available');\n\n    if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n      info('Invalid BlackPoint, falling back to default');\n      this.XB = this.YB = this.ZB = 0;\n    }\n\n    if (this.amin > this.amax || this.bmin > this.bmax) {\n      info('Invalid Range, falling back to defaults');\n      this.amin = -100;\n      this.amax = 100;\n      this.bmin = -100;\n      this.bmax = 100;\n    }\n  }\n\n  // Function g(x) from spec\n  function fn_g(x) {\n    if (x >= 6 / 29)\n      return x * x * x;\n    else\n      return (108 / 841) * (x - 4 / 29);\n  }\n\n  function decode(value, high1, low2, high2) {\n    return low2 + (value) * (high2 - low2) / (high1);\n  }\n\n  // If decoding is needed maxVal should be 2^bits per component - 1.\n  function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n    // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n    // not the usual [0, 1]. If a command like setFillColor is used the src\n    // values will already be within the correct range. However, if we are\n    // converting an image we have to map the values to the correct range given\n    // above.\n    // Ls,as,bs <---> L*,a*,b* in the spec\n    var Ls = src[srcOffset];\n    var as = src[srcOffset + 1];\n    var bs = src[srcOffset + 2];\n    if (maxVal !== false) {\n      Ls = decode(Ls, maxVal, 0, 100);\n      as = decode(as, maxVal, cs.amin, cs.amax);\n      bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n    }\n\n    // Adjust limits of 'as' and 'bs'\n    as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as;\n    bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs;\n\n    // Computes intermediate variables X,Y,Z as per spec\n    var M = (Ls + 16) / 116;\n    var L = M + (as / 500);\n    var N = M - (bs / 200);\n\n    var X = cs.XW * fn_g(L);\n    var Y = cs.YW * fn_g(M);\n    var Z = cs.ZW * fn_g(N);\n\n    var r, g, b;\n    // Using different conversions for D50 and D65 white points,\n    // per http://www.color.org/srgb.pdf\n    if (cs.ZW < 1) {\n      // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n      r = X * 3.1339 + Y * -1.6170 + Z * -0.4906;\n      g = X * -0.9785 + Y * 1.9160 + Z * 0.0333;\n      b = X * 0.0720 + Y * -0.2290 + Z * 1.4057;\n    } else {\n      // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n      r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n      g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n      b = X * 0.0557 + Y * -0.2040 + Z * 1.0570;\n    }\n    // clamp color values to [0,1] range then convert to [0,255] range.\n    dest[destOffset] = Math.sqrt(r < 0 ? 0 : r > 1 ? 1 : r) * 255;\n    dest[destOffset + 1] = Math.sqrt(g < 0 ? 0 : g > 1 ? 1 : g) * 255;\n    dest[destOffset + 2] = Math.sqrt(b < 0 ? 0 : b > 1 ? 1 : b) * 255;\n  }\n\n  LabCS.prototype = {\n    getRgb: function LabCS_getRgb(src, srcOffset) {\n      var rgb = new Uint8Array(3);\n      convertToRgb(this, src, srcOffset, false, rgb, 0);\n      return rgb;\n    },\n    getRgbItem: function LabCS_getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(this, src, srcOffset, false, dest, destOffset);\n    },\n    getRgbBuffer: function LabCS_getRgbBuffer(src, srcOffset, count,\n                                              dest, destOffset, bits) {\n      var maxVal = (1 << bits) - 1;\n      for (var i = 0; i < count; i++) {\n        convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n        srcOffset += 3;\n        destOffset += 3;\n      }\n    },\n    getOutputLength: function LabCS_getOutputLength(inputLength) {\n      return inputLength;\n    },\n    createRgbBuffer: ColorSpace.prototype.createRgbBuffer,\n    isPassthrough: ColorSpace.prototype.isPassthrough,\n    isDefaultDecode: function LabCS_isDefaultDecode(decodeMap) {\n      // XXX: Decoding is handled with the lab conversion because of the strange\n      // ranges that are used.\n      return true;\n    },\n    usesZeroToOneRange: false\n  };\n  return LabCS;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals CanvasGraphics, ColorSpace, DeviceRgbCS, error,\n           info, isArray, isPDFFunction, isStream, PDFFunction, TODO, Util,\n           warn, CachedCanvases */\n\n'use strict';\n\nvar PatternType = {\n  AXIAL: 2,\n  RADIAL: 3\n};\n\nvar Pattern = (function PatternClosure() {\n  // Constructor should define this.getPattern\n  function Pattern() {\n    error('should not call Pattern constructor');\n  }\n\n  Pattern.prototype = {\n    // Input: current Canvas context\n    // Output: the appropriate fillStyle or strokeStyle\n    getPattern: function Pattern_getPattern(ctx) {\n      error('Should not call Pattern.getStyle: ' + ctx);\n    }\n  };\n\n  Pattern.shadingFromIR = function Pattern_shadingFromIR(raw) {\n    return Shadings[raw[0]].fromIR(raw);\n  };\n\n  Pattern.parseShading = function Pattern_parseShading(shading, matrix, xref,\n                                                       res) {\n\n    var dict = isStream(shading) ? shading.dict : shading;\n    var type = dict.get('ShadingType');\n\n    switch (type) {\n      case PatternType.AXIAL:\n      case PatternType.RADIAL:\n        // Both radial and axial shadings are handled by RadialAxial shading.\n        return new Shadings.RadialAxial(dict, matrix, xref, res);\n      default:\n        TODO('Unsupported shading type: ' + type);\n        return new Shadings.Dummy();\n    }\n  };\n  return Pattern;\n})();\n\nvar Shadings = {};\n\n// A small number to offset the first/last color stops so we can insert ones to\n// support extend.  Number.MIN_VALUE appears to be too small and breaks the\n// extend. 1e-7 works in FF but chrome seems to use an even smaller sized number\n// internally so we have to go bigger.\nShadings.SMALL_NUMBER = 1e-2;\n\n// Radial and axial shading have very similar implementations\n// If needed, the implementations can be broken into two classes\nShadings.RadialAxial = (function RadialAxialClosure() {\n  function RadialAxial(dict, matrix, xref, res, ctx) {\n    this.matrix = matrix;\n    this.coordsArr = dict.get('Coords');\n    this.shadingType = dict.get('ShadingType');\n    this.type = 'Pattern';\n    this.ctx = ctx;\n    var cs = dict.get('ColorSpace', 'CS');\n    cs = ColorSpace.parse(cs, xref, res);\n    this.cs = cs;\n\n    var t0 = 0.0, t1 = 1.0;\n    if (dict.has('Domain')) {\n      var domainArr = dict.get('Domain');\n      t0 = domainArr[0];\n      t1 = domainArr[1];\n    }\n\n    var extendStart = false, extendEnd = false;\n    if (dict.has('Extend')) {\n      var extendArr = dict.get('Extend');\n      extendStart = extendArr[0];\n      extendEnd = extendArr[1];\n    }\n\n    if (this.shadingType === PatternType.RADIAL &&\n       (!extendStart || !extendEnd)) {\n      // Radial gradient only currently works if either circle is fully within\n      // the other circle.\n      var x1 = this.coordsArr[0];\n      var y1 = this.coordsArr[1];\n      var r1 = this.coordsArr[2];\n      var x2 = this.coordsArr[3];\n      var y2 = this.coordsArr[4];\n      var r2 = this.coordsArr[5];\n      var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n      if (r1 <= r2 + distance &&\n          r2 <= r1 + distance) {\n        warn('Unsupported radial gradient.');\n      }\n    }\n\n    this.extendStart = extendStart;\n    this.extendEnd = extendEnd;\n\n    var fnObj = dict.get('Function');\n    var fn;\n    if (isArray(fnObj)) {\n      var fnArray = [];\n      for (var j = 0, jj = fnObj.length; j < jj; j++) {\n        var obj = xref.fetchIfRef(fnObj[j]);\n        if (!isPDFFunction(obj)) {\n          error('Invalid function');\n        }\n        fnArray.push(PDFFunction.parse(xref, obj));\n      }\n      fn = function radialAxialColorFunction(arg) {\n        var out = [];\n        for (var i = 0, ii = fnArray.length; i < ii; i++) {\n          out.push(fnArray[i](arg)[0]);\n        }\n        return out;\n      };\n    } else {\n      if (!isPDFFunction(fnObj)) {\n        error('Invalid function');\n      }\n      fn = PDFFunction.parse(xref, fnObj);\n    }\n\n    // 10 samples seems good enough for now, but probably won't work\n    // if there are sharp color changes. Ideally, we would implement\n    // the spec faithfully and add lossless optimizations.\n    var diff = t1 - t0;\n    var step = diff / 10;\n\n    var colorStops = this.colorStops = [];\n\n    // Protect against bad domains so we don't end up in an infinte loop below.\n    if (t0 >= t1 || step <= 0) {\n      // Acrobat doesn't seem to handle these cases so we'll ignore for\n      // now.\n      info('Bad shading domain.');\n      return;\n    }\n\n    for (var i = t0; i <= t1; i += step) {\n      var rgbColor = cs.getRgb(fn([i]), 0);\n      var cssColor = Util.makeCssRgb(rgbColor);\n      colorStops.push([(i - t0) / diff, cssColor]);\n    }\n\n    var background = 'transparent';\n    if (dict.has('Background')) {\n      var rgbColor = cs.getRgb(dict.get('Background'), 0);\n      background = Util.makeCssRgb(rgbColor);\n    }\n\n    if (!extendStart) {\n      // Insert a color stop at the front and offset the first real color stop\n      // so it doesn't conflict with the one we insert.\n      colorStops.unshift([0, background]);\n      colorStops[1][0] += Shadings.SMALL_NUMBER;\n    }\n    if (!extendEnd) {\n      // Same idea as above in extendStart but for the end.\n      colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n      colorStops.push([1, background]);\n    }\n\n    this.colorStops = colorStops;\n  }\n\n  RadialAxial.fromIR = function RadialAxial_fromIR(raw) {\n    var type = raw[1];\n    var colorStops = raw[2];\n    var p0 = raw[3];\n    var p1 = raw[4];\n    var r0 = raw[5];\n    var r1 = raw[6];\n    return {\n      type: 'Pattern',\n      getPattern: function RadialAxial_getPattern(ctx) {\n        var grad;\n        if (type == PatternType.AXIAL)\n          grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n        else if (type == PatternType.RADIAL)\n          grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n\n        for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n          var c = colorStops[i];\n          grad.addColorStop(c[0], c[1]);\n        }\n        return grad;\n      }\n    };\n  };\n\n  RadialAxial.prototype = {\n    getIR: function RadialAxial_getIR() {\n      var coordsArr = this.coordsArr;\n      var type = this.shadingType;\n      if (type == PatternType.AXIAL) {\n        var p0 = [coordsArr[0], coordsArr[1]];\n        var p1 = [coordsArr[2], coordsArr[3]];\n        var r0 = null;\n        var r1 = null;\n      } else if (type == PatternType.RADIAL) {\n        var p0 = [coordsArr[0], coordsArr[1]];\n        var p1 = [coordsArr[3], coordsArr[4]];\n        var r0 = coordsArr[2];\n        var r1 = coordsArr[5];\n      } else {\n        error('getPattern type unknown: ' + type);\n      }\n\n      var matrix = this.matrix;\n      if (matrix) {\n        p0 = Util.applyTransform(p0, matrix);\n        p1 = Util.applyTransform(p1, matrix);\n      }\n\n      return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];\n    }\n  };\n\n  return RadialAxial;\n})();\n\nShadings.Dummy = (function DummyClosure() {\n  function Dummy() {\n    this.type = 'Pattern';\n  }\n\n  Dummy.fromIR = function Dummy_fromIR() {\n    return {\n      type: 'Pattern',\n      getPattern: function Dummy_fromIR_getPattern() {\n        return 'hotpink';\n      }\n    };\n  };\n\n  Dummy.prototype = {\n    getIR: function Dummy_getIR() {\n      return ['Dummy'];\n    }\n  };\n  return Dummy;\n})();\n\nvar TilingPattern = (function TilingPatternClosure() {\n  var PaintType = {\n    COLORED: 1,\n    UNCOLORED: 2\n  };\n\n  var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n\n  function TilingPattern(IR, color, ctx, objs, commonObjs, baseTransform) {\n    this.name = IR[1][0].name;\n    this.operatorList = IR[2];\n    this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n    this.bbox = IR[4];\n    this.xstep = IR[5];\n    this.ystep = IR[6];\n    this.paintType = IR[7];\n    this.tilingType = IR[8];\n    this.color = color;\n    this.objs = objs;\n    this.commonObjs = commonObjs;\n    this.baseTransform = baseTransform;\n    this.type = 'Pattern';\n    this.ctx = ctx;\n  }\n\n  TilingPattern.getIR = function TilingPattern_getIR(operatorList, dict, args) {\n    var matrix = dict.get('Matrix');\n    var bbox = dict.get('BBox');\n    var xstep = dict.get('XStep');\n    var ystep = dict.get('YStep');\n    var paintType = dict.get('PaintType');\n    var tilingType = dict.get('TilingType');\n\n    return [\n      'TilingPattern', args, operatorList, matrix, bbox, xstep, ystep,\n      paintType, tilingType\n    ];\n  };\n\n  TilingPattern.prototype = {\n    createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n      var operatorList = this.operatorList;\n      var bbox = this.bbox;\n      var xstep = this.xstep;\n      var ystep = this.ystep;\n      var paintType = this.paintType;\n      var tilingType = this.tilingType;\n      var color = this.color;\n      var objs = this.objs;\n      var commonObjs = this.commonObjs;\n      var ctx = this.ctx;\n\n      TODO('TilingType: ' + tilingType);\n\n      var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3];\n\n      var topLeft = [x0, y0];\n      // we want the canvas to be as large as the step size\n      var botRight = [x0 + xstep, y0 + ystep];\n\n      var width = botRight[0] - topLeft[0];\n      var height = botRight[1] - topLeft[1];\n\n      // Obtain scale from matrix and current transformation matrix.\n      var matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n      var curMatrixScale = Util.singularValueDecompose2dScale(\n                             this.baseTransform);\n      var combinedScale = [matrixScale[0] * curMatrixScale[0],\n                           matrixScale[1] * curMatrixScale[1]];\n\n      // MAX_PATTERN_SIZE is used to avoid OOM situation.\n      // Use width and height values that are as close as possible to the end\n      // result when the pattern is used. Too low value makes the pattern look\n      // blurry. Too large value makes it look too crispy.\n      width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])),\n                       MAX_PATTERN_SIZE);\n\n      height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])),\n                        MAX_PATTERN_SIZE);\n\n      var tmpCanvas = CachedCanvases.getCanvas('pattern', width, height, true);\n      var tmpCtx = tmpCanvas.context;\n      var graphics = new CanvasGraphics(tmpCtx, commonObjs, objs);\n      graphics.groupLevel = owner.groupLevel;\n\n      this.setFillAndStrokeStyleToContext(tmpCtx, paintType, color);\n\n      this.setScale(width, height, xstep, ystep);\n      this.transformToScale(graphics);\n\n      // transform coordinates to pattern space\n      var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];\n      graphics.transform.apply(graphics, tmpTranslate);\n\n      this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n\n      graphics.executeOperatorList(operatorList);\n      return tmpCanvas.canvas;\n    },\n\n    setScale: function TilingPattern_setScale(width, height, xstep, ystep) {\n      this.scale = [width / xstep, height / ystep];\n    },\n\n    transformToScale: function TilingPattern_transformToScale(graphics) {\n      var scale = this.scale;\n      var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];\n      graphics.transform.apply(graphics, tmpScale);\n    },\n\n    scaleToContext: function TilingPattern_scaleToContext() {\n      var scale = this.scale;\n      this.ctx.scale(1 / scale[0], 1 / scale[1]);\n    },\n\n    clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n      if (bbox && isArray(bbox) && 4 == bbox.length) {\n        var bboxWidth = x1 - x0;\n        var bboxHeight = y1 - y0;\n        graphics.rectangle(x0, y0, bboxWidth, bboxHeight);\n        graphics.clip();\n        graphics.endPath();\n      }\n    },\n\n    setFillAndStrokeStyleToContext:\n      function setFillAndStrokeStyleToContext(context, paintType, color) {\n      switch (paintType) {\n        case PaintType.COLORED:\n          var ctx = this.ctx;\n          context.fillStyle = ctx.fillStyle;\n          context.strokeStyle = ctx.strokeStyle;\n          break;\n        case PaintType.UNCOLORED:\n          var rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0);\n          var cssColor = Util.makeCssRgb(rgbColor);\n          context.fillStyle = cssColor;\n          context.strokeStyle = cssColor;\n          break;\n        default:\n          error('Unsupported paint type: ' + paintType);\n      }\n    },\n\n    getPattern: function TilingPattern_getPattern(ctx, owner) {\n      var temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n      var ctx = this.ctx;\n      ctx.setTransform.apply(ctx, this.baseTransform);\n      ctx.transform.apply(ctx, this.matrix);\n      this.scaleToContext();\n\n      return ctx.createPattern(temporaryPatternCanvas, 'repeat');\n    }\n  };\n\n  return TilingPattern;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* globals EOF, error, isArray, isBool, Lexer, TODO */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use strict';\n\nvar PDFFunction = (function PDFFunctionClosure() {\n  var CONSTRUCT_SAMPLED = 0;\n  var CONSTRUCT_INTERPOLATED = 2;\n  var CONSTRUCT_STICHED = 3;\n  var CONSTRUCT_POSTSCRIPT = 4;\n\n  return {\n    getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps,\n                                                       str) {\n      var length = 1;\n      for (var i = 0, ii = size.length; i < ii; i++)\n        length *= size[i];\n      length *= outputSize;\n\n      var array = [];\n      var codeSize = 0;\n      var codeBuf = 0;\n      // 32 is a valid bps so shifting won't work\n      var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1);\n\n      var strBytes = str.getBytes((length * bps + 7) / 8);\n      var strIdx = 0;\n      for (var i = 0; i < length; i++) {\n        while (codeSize < bps) {\n          codeBuf <<= 8;\n          codeBuf |= strBytes[strIdx++];\n          codeSize += 8;\n        }\n        codeSize -= bps;\n        array.push((codeBuf >> codeSize) * sampleMul);\n        codeBuf &= (1 << codeSize) - 1;\n      }\n      return array;\n    },\n\n    getIR: function PDFFunction_getIR(xref, fn) {\n      var dict = fn.dict;\n      if (!dict)\n        dict = fn;\n\n      var types = [this.constructSampled,\n                   null,\n                   this.constructInterpolated,\n                   this.constructStiched,\n                   this.constructPostScript];\n\n      var typeNum = dict.get('FunctionType');\n      var typeFn = types[typeNum];\n      if (!typeFn)\n        error('Unknown type of function');\n\n      return typeFn.call(this, fn, dict, xref);\n    },\n\n    fromIR: function PDFFunction_fromIR(IR) {\n      var type = IR[0];\n      switch (type) {\n        case CONSTRUCT_SAMPLED:\n          return this.constructSampledFromIR(IR);\n        case CONSTRUCT_INTERPOLATED:\n          return this.constructInterpolatedFromIR(IR);\n        case CONSTRUCT_STICHED:\n          return this.constructStichedFromIR(IR);\n        //case CONSTRUCT_POSTSCRIPT:\n        default:\n          return this.constructPostScriptFromIR(IR);\n      }\n    },\n\n    parse: function PDFFunction_parse(xref, fn) {\n      var IR = this.getIR(xref, fn);\n      return this.fromIR(IR);\n    },\n\n    constructSampled: function PDFFunction_constructSampled(str, dict) {\n      function toMultiArray(arr) {\n        var inputLength = arr.length;\n        var outputLength = arr.length / 2;\n        var out = [];\n        var index = 0;\n        for (var i = 0; i < inputLength; i += 2) {\n          out[index] = [arr[i], arr[i + 1]];\n          ++index;\n        }\n        return out;\n      }\n      var domain = dict.get('Domain');\n      var range = dict.get('Range');\n\n      if (!domain || !range)\n        error('No domain or range');\n\n      var inputSize = domain.length / 2;\n      var outputSize = range.length / 2;\n\n      domain = toMultiArray(domain);\n      range = toMultiArray(range);\n\n      var size = dict.get('Size');\n      var bps = dict.get('BitsPerSample');\n      var order = dict.get('Order') || 1;\n      if (order !== 1) {\n        // No description how cubic spline interpolation works in PDF32000:2008\n        // As in poppler, ignoring order, linear interpolation may work as good\n        TODO('No support for cubic spline interpolation: ' + order);\n      }\n\n      var encode = dict.get('Encode');\n      if (!encode) {\n        encode = [];\n        for (var i = 0; i < inputSize; ++i) {\n          encode.push(0);\n          encode.push(size[i] - 1);\n        }\n      }\n      encode = toMultiArray(encode);\n\n      var decode = dict.get('Decode');\n      if (!decode)\n        decode = range;\n      else\n        decode = toMultiArray(decode);\n\n      var samples = this.getSampleArray(size, outputSize, bps, str);\n\n      return [\n        CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size,\n        outputSize, Math.pow(2, bps) - 1, range\n      ];\n    },\n\n    constructSampledFromIR: function PDFFunction_constructSampledFromIR(IR) {\n      // See chapter 3, page 109 of the PDF reference\n      function interpolate(x, xmin, xmax, ymin, ymax) {\n        return ymin + ((x - xmin) * ((ymax - ymin) / (xmax - xmin)));\n      }\n\n      return function constructSampledFromIRResult(args) {\n        // See chapter 3, page 110 of the PDF reference.\n        var m = IR[1];\n        var domain = IR[2];\n        var encode = IR[3];\n        var decode = IR[4];\n        var samples = IR[5];\n        var size = IR[6];\n        var n = IR[7];\n        var mask = IR[8];\n        var range = IR[9];\n\n        if (m != args.length)\n          error('Incorrect number of arguments: ' + m + ' != ' +\n                args.length);\n\n        var x = args;\n\n        // Building the cube vertices: its part and sample index\n        // http://rjwagner49.com/Mathematics/Interpolation.pdf\n        var cubeVertices = 1 << m;\n        var cubeN = new Float64Array(cubeVertices);\n        var cubeVertex = new Uint32Array(cubeVertices);\n        for (var j = 0; j < cubeVertices; j++)\n          cubeN[j] = 1;\n\n        var k = n, pos = 1;\n        // Map x_i to y_j for 0 <= i < m using the sampled function.\n        for (var i = 0; i < m; ++i) {\n          // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)\n          var domain_2i = domain[i][0];\n          var domain_2i_1 = domain[i][1];\n          var xi = Math.min(Math.max(x[i], domain_2i), domain_2i_1);\n\n          // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,\n          //                   Encode_2i, Encode_2i+1)\n          var e = interpolate(xi, domain_2i, domain_2i_1,\n                              encode[i][0], encode[i][1]);\n\n          // e_i' = min(max(e_i, 0), Size_i - 1)\n          var size_i = size[i];\n          e = Math.min(Math.max(e, 0), size_i - 1);\n\n          // Adjusting the cube: N and vertex sample index\n          var e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;\n          var n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);\n          var n1 = e - e0; // (e - e0) / (e1 - e0);\n          var offset0 = e0 * k;\n          var offset1 = offset0 + k; // e1 * k\n          for (var j = 0; j < cubeVertices; j++) {\n            if (j & pos) {\n              cubeN[j] *= n1;\n              cubeVertex[j] += offset1;\n            } else {\n              cubeN[j] *= n0;\n              cubeVertex[j] += offset0;\n            }\n          }\n\n          k *= size_i;\n          pos <<= 1;\n        }\n\n        var y = new Float64Array(n);\n        for (var j = 0; j < n; ++j) {\n          // Sum all cube vertices' samples portions\n          var rj = 0;\n          for (var i = 0; i < cubeVertices; i++)\n            rj += samples[cubeVertex[i] + j] * cubeN[i];\n\n          // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,\n          //                    Decode_2j, Decode_2j+1)\n          rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n\n          // y_j = min(max(r_j, range_2j), range_2j+1)\n          y[j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n        }\n\n        return y;\n      };\n    },\n\n    constructInterpolated: function PDFFunction_constructInterpolated(str,\n                                                                      dict) {\n      var c0 = dict.get('C0') || [0];\n      var c1 = dict.get('C1') || [1];\n      var n = dict.get('N');\n\n      if (!isArray(c0) || !isArray(c1))\n        error('Illegal dictionary for interpolated function');\n\n      var length = c0.length;\n      var diff = [];\n      for (var i = 0; i < length; ++i)\n        diff.push(c1[i] - c0[i]);\n\n      return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n    },\n\n    constructInterpolatedFromIR:\n      function PDFFunction_constructInterpolatedFromIR(IR) {\n      var c0 = IR[1];\n      var diff = IR[2];\n      var n = IR[3];\n\n      var length = diff.length;\n\n      return function constructInterpolatedFromIRResult(args) {\n        var x = n == 1 ? args[0] : Math.pow(args[0], n);\n\n        var out = [];\n        for (var j = 0; j < length; ++j)\n          out.push(c0[j] + (x * diff[j]));\n\n        return out;\n\n      };\n    },\n\n    constructStiched: function PDFFunction_constructStiched(fn, dict, xref) {\n      var domain = dict.get('Domain');\n\n      if (!domain)\n        error('No domain');\n\n      var inputSize = domain.length / 2;\n      if (inputSize != 1)\n        error('Bad domain for stiched function');\n\n      var fnRefs = dict.get('Functions');\n      var fns = [];\n      for (var i = 0, ii = fnRefs.length; i < ii; ++i)\n        fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i])));\n\n      var bounds = dict.get('Bounds');\n      var encode = dict.get('Encode');\n\n      return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n    },\n\n    constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) {\n      var domain = IR[1];\n      var bounds = IR[2];\n      var encode = IR[3];\n      var fnsIR = IR[4];\n      var fns = [];\n\n      for (var i = 0, ii = fnsIR.length; i < ii; i++) {\n        fns.push(PDFFunction.fromIR(fnsIR[i]));\n      }\n\n      return function constructStichedFromIRResult(args) {\n        var clip = function constructStichedFromIRClip(v, min, max) {\n          if (v > max)\n            v = max;\n          else if (v < min)\n            v = min;\n          return v;\n        };\n\n        // clip to domain\n        var v = clip(args[0], domain[0], domain[1]);\n        // calulate which bound the value is in\n        for (var i = 0, ii = bounds.length; i < ii; ++i) {\n          if (v < bounds[i])\n            break;\n        }\n\n        // encode value into domain of function\n        var dmin = domain[0];\n        if (i > 0)\n          dmin = bounds[i - 1];\n        var dmax = domain[1];\n        if (i < bounds.length)\n          dmax = bounds[i];\n\n        var rmin = encode[2 * i];\n        var rmax = encode[2 * i + 1];\n\n        var v2 = rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n\n        // call the appropropriate function\n        return fns[i]([v2]);\n      };\n    },\n\n    constructPostScript: function PDFFunction_constructPostScript(fn, dict,\n                                                                  xref) {\n      var domain = dict.get('Domain');\n      var range = dict.get('Range');\n\n      if (!domain)\n        error('No domain.');\n\n      if (!range)\n        error('No range.');\n\n      var lexer = new PostScriptLexer(fn);\n      var parser = new PostScriptParser(lexer);\n      var code = parser.parse();\n\n      return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n    },\n\n    constructPostScriptFromIR: function PDFFunction_constructPostScriptFromIR(\n                                          IR) {\n      var domain = IR[1];\n      var range = IR[2];\n      var code = IR[3];\n      var numOutputs = range.length / 2;\n      var evaluator = new PostScriptEvaluator(code);\n      // Cache the values for a big speed up, the cache size is limited though\n      // since the number of possible values can be huge from a PS function.\n      var cache = new FunctionCache();\n      return function constructPostScriptFromIRResult(args) {\n        var initialStack = [];\n        for (var i = 0, ii = (domain.length / 2); i < ii; ++i) {\n          initialStack.push(args[i]);\n        }\n\n        var key = initialStack.join('_');\n        if (cache.has(key))\n          return cache.get(key);\n\n        var stack = evaluator.execute(initialStack);\n        var transformed = [];\n        for (i = numOutputs - 1; i >= 0; --i) {\n          var out = stack.pop();\n          var rangeIndex = 2 * i;\n          if (out < range[rangeIndex])\n            out = range[rangeIndex];\n          else if (out > range[rangeIndex + 1])\n            out = range[rangeIndex + 1];\n          transformed[i] = out;\n        }\n        cache.set(key, transformed);\n        return transformed;\n      };\n    }\n  };\n})();\n\nvar FunctionCache = (function FunctionCacheClosure() {\n  // Of 10 PDF's with type4 functions the maxium number of distinct values seen\n  // was 256. This still may need some tweaking in the future though.\n  var MAX_CACHE_SIZE = 1024;\n  function FunctionCache() {\n    this.cache = {};\n    this.total = 0;\n  }\n  FunctionCache.prototype = {\n    has: function FunctionCache_has(key) {\n      return key in this.cache;\n    },\n    get: function FunctionCache_get(key) {\n      return this.cache[key];\n    },\n    set: function FunctionCache_set(key, value) {\n      if (this.total < MAX_CACHE_SIZE) {\n        this.cache[key] = value;\n        this.total++;\n      }\n    }\n  };\n  return FunctionCache;\n})();\n\nvar PostScriptStack = (function PostScriptStackClosure() {\n  var MAX_STACK_SIZE = 100;\n  function PostScriptStack(initialStack) {\n    this.stack = initialStack || [];\n  }\n\n  PostScriptStack.prototype = {\n    push: function PostScriptStack_push(value) {\n      if (this.stack.length >= MAX_STACK_SIZE)\n        error('PostScript function stack overflow.');\n      this.stack.push(value);\n    },\n    pop: function PostScriptStack_pop() {\n      if (this.stack.length <= 0)\n        error('PostScript function stack underflow.');\n      return this.stack.pop();\n    },\n    copy: function PostScriptStack_copy(n) {\n      if (this.stack.length + n >= MAX_STACK_SIZE)\n        error('PostScript function stack overflow.');\n      var stack = this.stack;\n      for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++)\n        stack.push(stack[i]);\n    },\n    index: function PostScriptStack_index(n) {\n      this.push(this.stack[this.stack.length - n - 1]);\n    },\n    // rotate the last n stack elements p times\n    roll: function PostScriptStack_roll(n, p) {\n      var stack = this.stack;\n      var l = stack.length - n;\n      var r = stack.length - 1, c = l + (p - Math.floor(p / n) * n), i, j, t;\n      for (i = l, j = r; i < j; i++, j--) {\n        t = stack[i]; stack[i] = stack[j]; stack[j] = t;\n      }\n      for (i = l, j = c - 1; i < j; i++, j--) {\n        t = stack[i]; stack[i] = stack[j]; stack[j] = t;\n      }\n      for (i = c, j = r; i < j; i++, j--) {\n        t = stack[i]; stack[i] = stack[j]; stack[j] = t;\n      }\n    }\n  };\n  return PostScriptStack;\n})();\nvar PostScriptEvaluator = (function PostScriptEvaluatorClosure() {\n  function PostScriptEvaluator(operators, operands) {\n    this.operators = operators;\n    this.operands = operands;\n  }\n  PostScriptEvaluator.prototype = {\n    execute: function PostScriptEvaluator_execute(initialStack) {\n      var stack = new PostScriptStack(initialStack);\n      var counter = 0;\n      var operators = this.operators;\n      var length = operators.length;\n      var operator, a, b;\n      while (counter < length) {\n        operator = operators[counter++];\n        if (typeof operator == 'number') {\n          // Operator is really an operand and should be pushed to the stack.\n          stack.push(operator);\n          continue;\n        }\n        switch (operator) {\n          // non standard ps operators\n          case 'jz': // jump if false\n            b = stack.pop();\n            a = stack.pop();\n            if (!a)\n              counter = b;\n            break;\n          case 'j': // jump\n            a = stack.pop();\n            counter = a;\n            break;\n\n          // all ps operators in alphabetical order (excluding if/ifelse)\n          case 'abs':\n            a = stack.pop();\n            stack.push(Math.abs(a));\n            break;\n          case 'add':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a + b);\n            break;\n          case 'and':\n            b = stack.pop();\n            a = stack.pop();\n            if (isBool(a) && isBool(b))\n              stack.push(a && b);\n            else\n              stack.push(a & b);\n            break;\n          case 'atan':\n            a = stack.pop();\n            stack.push(Math.atan(a));\n            break;\n          case 'bitshift':\n            b = stack.pop();\n            a = stack.pop();\n            if (a > 0)\n              stack.push(a << b);\n            else\n              stack.push(a >> b);\n            break;\n          case 'ceiling':\n            a = stack.pop();\n            stack.push(Math.ceil(a));\n            break;\n          case 'copy':\n            a = stack.pop();\n            stack.copy(a);\n            break;\n          case 'cos':\n            a = stack.pop();\n            stack.push(Math.cos(a));\n            break;\n          case 'cvi':\n            a = stack.pop() | 0;\n            stack.push(a);\n            break;\n          case 'cvr':\n            // noop\n            break;\n          case 'div':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a / b);\n            break;\n          case 'dup':\n            stack.copy(1);\n            break;\n          case 'eq':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a == b);\n            break;\n          case 'exch':\n            stack.roll(2, 1);\n            break;\n          case 'exp':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(Math.pow(a, b));\n            break;\n          case 'false':\n            stack.push(false);\n            break;\n          case 'floor':\n            a = stack.pop();\n            stack.push(Math.floor(a));\n            break;\n          case 'ge':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a >= b);\n            break;\n          case 'gt':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a > b);\n            break;\n          case 'idiv':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push((a / b) | 0);\n            break;\n          case 'index':\n            a = stack.pop();\n            stack.index(a);\n            break;\n          case 'le':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a <= b);\n            break;\n          case 'ln':\n            a = stack.pop();\n            stack.push(Math.log(a));\n            break;\n          case 'log':\n            a = stack.pop();\n            stack.push(Math.log(a) / Math.LN10);\n            break;\n          case 'lt':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a < b);\n            break;\n          case 'mod':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a % b);\n            break;\n          case 'mul':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a * b);\n            break;\n          case 'ne':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a != b);\n            break;\n          case 'neg':\n            a = stack.pop();\n            stack.push(-b);\n            break;\n          case 'not':\n            a = stack.pop();\n            if (isBool(a) && isBool(b))\n              stack.push(a && b);\n            else\n              stack.push(a & b);\n            break;\n          case 'or':\n            b = stack.pop();\n            a = stack.pop();\n            if (isBool(a) && isBool(b))\n              stack.push(a || b);\n            else\n              stack.push(a | b);\n            break;\n          case 'pop':\n            stack.pop();\n            break;\n          case 'roll':\n            b = stack.pop();\n            a = stack.pop();\n            stack.roll(a, b);\n            break;\n          case 'round':\n            a = stack.pop();\n            stack.push(Math.round(a));\n            break;\n          case 'sin':\n            a = stack.pop();\n            stack.push(Math.sin(a));\n            break;\n          case 'sqrt':\n            a = stack.pop();\n            stack.push(Math.sqrt(a));\n            break;\n          case 'sub':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a - b);\n            break;\n          case 'true':\n            stack.push(true);\n            break;\n          case 'truncate':\n            a = stack.pop();\n            a = a < 0 ? Math.ceil(a) : Math.floor(a);\n            stack.push(a);\n            break;\n          case 'xor':\n            b = stack.pop();\n            a = stack.pop();\n            if (isBool(a) && isBool(b))\n              stack.push(a != b);\n            else\n              stack.push(a ^ b);\n            break;\n          default:\n            error('Unknown operator ' + operator);\n            break;\n        }\n      }\n      return stack.stack;\n    }\n  };\n  return PostScriptEvaluator;\n})();\n\nvar PostScriptParser = (function PostScriptParserClosure() {\n  function PostScriptParser(lexer) {\n    this.lexer = lexer;\n    this.operators = [];\n    this.token = null;\n    this.prev = null;\n  }\n  PostScriptParser.prototype = {\n    nextToken: function PostScriptParser_nextToken() {\n      this.prev = this.token;\n      this.token = this.lexer.getToken();\n    },\n    accept: function PostScriptParser_accept(type) {\n      if (this.token.type == type) {\n        this.nextToken();\n        return true;\n      }\n      return false;\n    },\n    expect: function PostScriptParser_expect(type) {\n      if (this.accept(type))\n        return true;\n      error('Unexpected symbol: found ' + this.token.type + ' expected ' +\n            type + '.');\n    },\n    parse: function PostScriptParser_parse() {\n      this.nextToken();\n      this.expect(PostScriptTokenTypes.LBRACE);\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n      return this.operators;\n    },\n    parseBlock: function PostScriptParser_parseBlock() {\n      while (true) {\n        if (this.accept(PostScriptTokenTypes.NUMBER)) {\n          this.operators.push(this.prev.value);\n        } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n          this.operators.push(this.prev.value);\n        } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n          this.parseCondition();\n        } else {\n          return;\n        }\n      }\n    },\n    parseCondition: function PostScriptParser_parseCondition() {\n      // Add two place holders that will be updated later\n      var conditionLocation = this.operators.length;\n      this.operators.push(null, null);\n\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n      if (this.accept(PostScriptTokenTypes.IF)) {\n        // The true block is right after the 'if' so it just falls through on\n        // true else it jumps and skips the true block.\n        this.operators[conditionLocation] = this.operators.length;\n        this.operators[conditionLocation + 1] = 'jz';\n      } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n        var jumpLocation = this.operators.length;\n        this.operators.push(null, null);\n        var endOfTrue = this.operators.length;\n        this.parseBlock();\n        this.expect(PostScriptTokenTypes.RBRACE);\n        this.expect(PostScriptTokenTypes.IFELSE);\n        // The jump is added at the end of the true block to skip the false\n        // block.\n        this.operators[jumpLocation] = this.operators.length;\n        this.operators[jumpLocation + 1] = 'j';\n\n        this.operators[conditionLocation] = endOfTrue;\n        this.operators[conditionLocation + 1] = 'jz';\n      } else {\n        error('PS Function: error parsing conditional.');\n      }\n    }\n  };\n  return PostScriptParser;\n})();\n\nvar PostScriptTokenTypes = {\n  LBRACE: 0,\n  RBRACE: 1,\n  NUMBER: 2,\n  OPERATOR: 3,\n  IF: 4,\n  IFELSE: 5\n};\n\nvar PostScriptToken = (function PostScriptTokenClosure() {\n  function PostScriptToken(type, value) {\n    this.type = type;\n    this.value = value;\n  }\n\n  var opCache = {};\n\n  PostScriptToken.getOperator = function PostScriptToken_getOperator(op) {\n    var opValue = opCache[op];\n    if (opValue)\n      return opValue;\n\n    return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n  };\n\n  PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE,\n                                                '{');\n  PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE,\n                                                '}');\n  PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF');\n  PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE,\n                                                'IFELSE');\n  return PostScriptToken;\n})();\n\nvar PostScriptLexer = (function PostScriptLexerClosure() {\n  function PostScriptLexer(stream) {\n    this.stream = stream;\n    this.nextChar();\n  }\n  PostScriptLexer.prototype = {\n    nextChar: function PostScriptLexer_nextChar() {\n      return (this.currentChar = this.stream.getByte());\n    },\n    getToken: function PostScriptLexer_getToken() {\n      var s = '';\n      var comment = false;\n      var ch = this.currentChar;\n\n      // skip comments\n      while (true) {\n        if (ch < 0) {\n          return EOF;\n        }\n\n        if (comment) {\n          if (ch === 0x0A || ch === 0x0D) {\n            comment = false;\n          }\n        } else if (ch == 0x25) { // '%'\n          comment = true;\n        } else if (!Lexer.isSpace(ch)) {\n          break;\n        }\n        ch = this.nextChar();\n      }\n      switch (ch | 0) {\n        case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: // '0'-'4'\n        case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: // '5'-'9'\n        case 0x2B: case 0x2D: case 0x2E: // '+', '-', '.'\n          return new PostScriptToken(PostScriptTokenTypes.NUMBER,\n                                      this.getNumber());\n        case 0x7B: // '{'\n          this.nextChar();\n          return PostScriptToken.LBRACE;\n        case 0x7D: // '}'\n          this.nextChar();\n          return PostScriptToken.RBRACE;\n      }\n      // operator\n      var str = String.fromCharCode(ch);\n      while ((ch = this.nextChar()) >= 0 && // and 'A'-'Z', 'a'-'z'\n             ((ch >= 0x41 && ch <= 0x5A) || (ch >= 0x61 && ch <= 0x7A))) {\n        str += String.fromCharCode(ch);\n      }\n      switch (str.toLowerCase()) {\n        case 'if':\n          return PostScriptToken.IF;\n        case 'ifelse':\n          return PostScriptToken.IFELSE;\n        default:\n          return PostScriptToken.getOperator(str);\n      }\n    },\n    getNumber: function PostScriptLexer_getNumber() {\n      var ch = this.currentChar;\n      var str = String.fromCharCode(ch);\n      while ((ch = this.nextChar()) >= 0) {\n        if ((ch >= 0x30 && ch <= 0x39) || // '0'-'9'\n             ch === 0x2D || ch === 0x2E) { // '-', '.'\n          str += String.fromCharCode(ch);\n        } else {\n          break;\n        }\n      }\n      var value = parseFloat(str);\n      if (isNaN(value))\n        error('Invalid floating point number: ' + value);\n      return value;\n    }\n  };\n  return PostScriptLexer;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals Util, isDict, isName, stringToPDFString, TODO, Dict, Stream,\n           stringToBytes, PDFJS, isWorker, assert, NotImplementedException,\n           Promise, isArray, ObjectLoader, isValidUrl, OperatorList, OPS */\n\n'use strict';\n\nvar Annotation = (function AnnotationClosure() {\n  // 12.5.5: Algorithm: Appearance streams\n  function getTransformMatrix(rect, bbox, matrix) {\n    var bounds = Util.getAxialAlignedBoundingBox(bbox, matrix);\n    var minX = bounds[0];\n    var minY = bounds[1];\n    var maxX = bounds[2];\n    var maxY = bounds[3];\n\n    if (minX === maxX || minY === maxY) {\n      // From real-life file, bbox was [0, 0, 0, 0]. In this case,\n      // just apply the transform for rect\n      return [1, 0, 0, 1, rect[0], rect[1]];\n    }\n\n    var xRatio = (rect[2] - rect[0]) / (maxX - minX);\n    var yRatio = (rect[3] - rect[1]) / (maxY - minY);\n    return [\n      xRatio,\n      0,\n      0,\n      yRatio,\n      rect[0] - minX * xRatio,\n      rect[1] - minY * yRatio\n    ];\n  }\n\n  function getDefaultAppearance(dict) {\n    var appearanceState = dict.get('AP');\n    if (!isDict(appearanceState)) {\n      return;\n    }\n\n    var appearance;\n    var appearances = appearanceState.get('N');\n    if (isDict(appearances)) {\n      var as = dict.get('AS');\n      if (as && appearances.has(as.name)) {\n        appearance = appearances.get(as.name);\n      }\n    } else {\n      appearance = appearances;\n    }\n    return appearance;\n  }\n\n  function Annotation(params) {\n    if (params.data) {\n      this.data = params.data;\n      return;\n    }\n\n    var dict = params.dict;\n    var data = this.data = {};\n\n    data.subtype = dict.get('Subtype').name;\n    data.annotationFlags = dict.get('F');\n    this.getAndSetRectangle(dict);\n    data.rect = this.rectangle;\n\n    var color = dict.get('C');\n    if (isArray(color) && color.length === 3) {\n      // TODO(mack): currently only supporting rgb; need support different\n      // colorspaces\n      data.color = color;\n    } else {\n      data.color = [0, 0, 0];\n    }\n\n    // Some types of annotations have border style dict which has more\n    // info than the border array\n    if (dict.has('BS')) {\n      var borderStyle = dict.get('BS');\n      data.borderWidth = borderStyle.has('W') ? borderStyle.get('W') : 1;\n    } else {\n      var borderArray = dict.get('Border') || [0, 0, 1];\n      data.borderWidth = borderArray[2] || 0;\n    }\n\n    this.appearance = getDefaultAppearance(dict);\n    data.hasAppearance = !!this.appearance;\n  }\n\n  Annotation.prototype = {\n    /**\n     * Set the rectangle.\n     *\n     * @public\n     * @memberof Annotation\n     * @param {Array} rectangle - The rectangle array with exactly four entries\n     */\n    setRectangle: function Annotation_setRectangle(rectangle) {\n      if (isArray(rectangle) && rectangle.length === 4) {\n        this.rectangle = Util.normalizeRect(rectangle);\n      } else {\n        this.rectangle = [0, 0, 0, 0];\n      }\n\t},\n\n\tgetAndSetRectangle: function Annotation_getAndSetRectangle(dict) {\n\t\tvar rect = dict.get('Rect');\n\t\tvar xref = dict.xref;\n\t\tif (isArray(rect) && rect.length === 4) {\n\t\t\tfor (var i = 0; i < 4; i++) {\n\t\t\t\trect[i] = (typeof rect[i] === \"object\") ? xref.fetchIfRef(rect[i]) : rect[i];\n\t\t\t}\n\t\t\tthis.setRectangle(rect);\n\t\t} else {\n\t\t\tthis.rectangle = [0, 0, 0, 0];\n\t\t}\n\t},\n\n    getData: function Annotation_getData() {\n      return this.data;\n    },\n\n    hasHtml: function Annotation_hasHtml() {\n      return false;\n    },\n\n    getHtmlElement: function Annotation_getHtmlElement(commonObjs) {\n      throw new NotImplementedException(\n        'getHtmlElement() should be implemented in subclass');\n    },\n\n    // TODO(mack): Remove this, it's not really that helpful.\n    getEmptyContainer: function Annotation_getEmptyContainer(tagName, rect) {\n      assert(!isWorker,\n        'getEmptyContainer() should be called from main thread');\n\n      rect = rect || this.data.rect;\n      var element = document.createElement(tagName);\n      element.style.width = Math.ceil(rect[2] - rect[0]) + 'px';\n      element.style.height = Math.ceil(rect[3] - rect[1]) + 'px';\n      return element;\n    },\n\n    isViewable: function Annotation_isViewable() {\n      var data = this.data;\n      return !!(\n        data &&\n        (!data.annotationFlags ||\n         !(data.annotationFlags & 0x22)) && // Hidden or NoView\n        data.rect                            // rectangle is nessessary\n      );\n    },\n\n    loadResources: function(keys) {\n      var promise = new Promise();\n      this.appearance.dict.getAsync('Resources').then(function(resources) {\n        if (!resources) {\n          promise.resolve();\n          return;\n        }\n        var objectLoader = new ObjectLoader(resources.map,\n                                            keys,\n                                            resources.xref);\n        objectLoader.load().then(function() {\n          promise.resolve(resources);\n        });\n      }.bind(this));\n\n      return promise;\n    },\n\n    getOperatorList: function Annotation_getToOperatorList(evaluator) {\n\n      var promise = new Promise();\n\n      if (!this.appearance) {\n        promise.resolve(new OperatorList());\n        return promise;\n      }\n\n      var data = this.data;\n\n      var appearanceDict = this.appearance.dict;\n      var resourcesPromise = this.loadResources([\n        'ExtGState',\n        'ColorSpace',\n        'Pattern',\n        'Shading',\n        'XObject',\n        'Font'\n        // ProcSet\n        // Properties\n      ]);\n      var bbox = appearanceDict.get('BBox') || [0, 0, 1, 1];\n      var matrix = appearanceDict.get('Matrix') || [1, 0, 0, 1, 0 ,0];\n      var transform = getTransformMatrix(data.rect, bbox, matrix);\n\n      var border = data.border;\n\n      resourcesPromise.then(function(resources) {\n        var opList = new OperatorList();\n        opList.addOp(OPS.beginAnnotation, [data.rect, transform, matrix]);\n        evaluator.getOperatorList(this.appearance, resources, opList);\n        opList.addOp(OPS.endAnnotation, []);\n        promise.resolve(opList);\n      }.bind(this));\n\n      return promise;\n    }\n  };\n\n  Annotation.getConstructor =\n      function Annotation_getConstructor(subtype, fieldType) {\n\n    if (!subtype) {\n      return;\n    }\n\n    // TODO(mack): Implement FreeText annotations\n    if (subtype === 'Link') {\n      return LinkAnnotation;\n    } else if (subtype === 'Text') {\n      return TextAnnotation;\n    } else if (subtype === 'Widget') {\n      if (!fieldType) {\n        return;\n      }\n\n      if (fieldType === 'Tx') {\n        return TextWidgetAnnotation;\n      } else {\n        return WidgetAnnotation;\n      }\n    } else {\n      return Annotation;\n    }\n  };\n\n  // TODO(mack): Support loading annotation from data\n  Annotation.fromData = function Annotation_fromData(data) {\n    var subtype = data.subtype;\n    var fieldType = data.fieldType;\n    var Constructor = Annotation.getConstructor(subtype, fieldType);\n    if (Constructor) {\n      return new Constructor({ data: data });\n    }\n  };\n\n  Annotation.fromRef = function Annotation_fromRef(xref, ref) {\n\n    var dict = xref.fetchIfRef(ref);\n    if (!isDict(dict)) {\n      return;\n    }\n\n    var subtype = dict.get('Subtype');\n    subtype = isName(subtype) ? subtype.name : '';\n    if (!subtype) {\n      return;\n    }\n\n    var fieldType = Util.getInheritableProperty(dict, 'FT');\n    fieldType = isName(fieldType) ? fieldType.name : '';\n\n    var Constructor = Annotation.getConstructor(subtype, fieldType);\n    if (!Constructor) {\n      return;\n    }\n\n    var params = {\n      dict: dict,\n      ref: ref\n    };\n\n    var annotation = new Constructor(params);\n\n    if (annotation.isViewable()) {\n      return annotation;\n    } else {\n      TODO('unimplemented/notViewable annotation type: ' + subtype);\n    }\n  };\n\n  Annotation.appendToOperatorList = function Annotation_appendToOperatorList(\n      annotations, opList, pdfManager, partialEvaluator) {\n\n    function reject(e) {\n      annotationsReadyPromise.reject(e);\n    }\n\n    var annotationsReadyPromise = new Promise();\n\n    var annotationPromises = [];\n    for (var i = 0, n = annotations.length; i < n; ++i) {\n      annotationPromises.push(annotations[i].getOperatorList(partialEvaluator));\n    }\n    Promise.all(annotationPromises).then(function(datas) {\n      opList.addOp(OPS.beginAnnotations, []);\n      for (var i = 0, n = datas.length; i < n; ++i) {\n        var annotOpList = datas[i];\n        opList.addOpList(annotOpList);\n      }\n      opList.addOp(OPS.endAnnotations, []);\n      annotationsReadyPromise.resolve();\n    }, reject);\n\n    return annotationsReadyPromise;\n  };\n\n  return Annotation;\n})();\nPDFJS.Annotation = Annotation;\n\n\nvar WidgetAnnotation = (function WidgetAnnotationClosure() {\n\n  function WidgetAnnotation(params) {\n    Annotation.call(this, params);\n\n    if (params.data) {\n      return;\n    }\n\n    var dict = params.dict;\n    var data = this.data;\n\n    var rawValue = Util.getInheritableProperty(dict, 'V') || '';\n    var value = (rawValue.name ? rawValue.name : rawValue) || '';\n    data.fieldValue = stringToPDFString(value);\n\n    data.alternativeText = stringToPDFString(dict.get('TU') || '');\n\n    data.alternativeID = stringToPDFString(dict.get('TM') || '');\n\n    data.defaultAppearance = Util.getInheritableProperty(dict, 'DA') || '';\n    var fieldType = Util.getInheritableProperty(dict, 'FT');\n    data.fieldType = isName(fieldType) ? fieldType.name : '';\n    data.fieldFlags = Util.getInheritableProperty(dict, 'Ff') || 0;\n    this.fieldResources = Util.getInheritableProperty(dict, 'DR') || new Dict();\n\n//BEGIN:MQZ. Sep.19.2012. comment out the fullname routin, replace it with getInheritableProperty('T') //PDF Spec P.689\n\n    // Building the full field name by collecting the field and\n    // its ancestors 'T' data and joining them using '.'.\n//    var fieldName = [];\n//    var namedItem = dict;\n//    var ref = params.ref;\n//    while (namedItem) {\n//      var parent = namedItem.get('Parent');\n//      var parentRef = namedItem.getRaw('Parent');\n//      var name = namedItem.get('T');\n//      if (name) {\n//        fieldName.unshift(stringToPDFString(name));\n//      } else {\n//        // The field name is absent, that means more than one field\n//        // with the same name may exist. Replacing the empty name\n//        // with the '`' plus index in the parent's 'Kids' array.\n//        // This is not in the PDF spec but necessary to id the\n//        // the input controls.\n//        var kids = parent.get('Kids');\n//        var j, jj;\n//        for (j = 0, jj = kids.length; j < jj; j++) {\n//          var kidRef = kids[j];\n//          if (kidRef.num == ref.num && kidRef.gen == ref.gen)\n//            break;\n//        }\n//        fieldName.unshift('`' + j);\n//      }\n//      namedItem = parent;\n//      ref = parentRef;\n//    }\n//    data.fullName = fieldName.join('.');\n\n//END:MQZ. Sep.19.2012. comment out the fullname routin, replace it with getInheritableProperty('T') //PDF Spec P.689\n//It matches a sequence of at least one period or space, which is then replaced by a single underscore\n      var itemNameStr = stringToPDFString(Util.getInheritableProperty(dict, 'T') || '');\n      itemNameStr = itemNameStr.replace(/[.\\s\\W]+/g, '_'); //replace spaces and non-word character (not [^a-zA-Z0-9_]) with _\n      data.fullName = itemNameStr.replace(/^[\\s_,:.;\\/\\\\]+/, ''); //replace starting punctuation\n\n      PDFAnno.processAnnotation(dict, data);\n  }\n\n  var parent = Annotation.prototype;\n  Util.inherit(WidgetAnnotation, Annotation, {\n    isViewable: function WidgetAnnotation_isViewable() {\n//      if (this.data.fieldType === 'Sig') {\n//        TODO('unimplemented annotation type: Widget signature');\n//        return false;\n//      }\n\n      return parent.isViewable.call(this);\n    }\n  });\n\n  return WidgetAnnotation;\n})();\n\nvar TextWidgetAnnotation = (function TextWidgetAnnotationClosure() {\n  function TextWidgetAnnotation(params) {\n    WidgetAnnotation.call(this, params);\n\n    if (params.data) {\n      return;\n    }\n\n    this.data.textAlignment = Util.getInheritableProperty(params.dict, 'Q');\n  }\n\n  // TODO(mack): This dupes some of the logic in CanvasGraphics.setFont()\n  function setTextStyles(element, item, fontObj) {\n\n    var style = element.style;\n    style.fontSize = item.fontSize + 'px';\n    style.direction = item.fontDirection < 0 ? 'rtl': 'ltr';\n\n    if (!fontObj) {\n      return;\n    }\n\n    style.fontWeight = fontObj.black ?\n                            (fontObj.bold ? 'bolder' : 'bold') :\n                            (fontObj.bold ? 'bold' : 'normal');\n    style.fontStyle = fontObj.italic ? 'italic' : 'normal';\n\n    var fontName = fontObj.loadedName;\n    var fontFamily = fontName ? '\"' + fontName + '\", ' : '';\n    // Use a reasonable default font if the font doesn't specify a fallback\n    var fallbackName = fontObj.fallbackName || 'Helvetica, sans-serif';\n    style.fontFamily = fontFamily + fallbackName;\n  }\n\n\n  var parent = WidgetAnnotation.prototype;\n  Util.inherit(TextWidgetAnnotation, WidgetAnnotation, {\n    hasHtml: function TextWidgetAnnotation_hasHtml() {\n      return !this.data.hasAppearance && !!this.data.fieldValue;\n    },\n\n    getHtmlElement: function TextWidgetAnnotation_getHtmlElement(commonObjs) {\n      assert(!isWorker, 'getHtmlElement() shall be called from main thread');\n\n      var item = this.data;\n\n      var element = this.getEmptyContainer('div');\n      element.style.display = 'table';\n\n      var content = document.createElement('div');\n      content.textContent = item.fieldValue;\n      var textAlignment = item.textAlignment;\n      content.style.textAlign = ['left', 'center', 'right'][textAlignment];\n      content.style.verticalAlign = 'middle';\n      content.style.display = 'table-cell';\n\n      var fontObj = item.fontRefName ?\n                    commonObjs.getData(item.fontRefName) : null;\n      var cssRules = setTextStyles(content, item, fontObj);\n\n      element.appendChild(content);\n\n      return element;\n    },\n\n    getOperatorList: function TextWidgetAnnotation_getOperatorList(evaluator) {\n      if (this.appearance) {\n        return Annotation.prototype.getOperatorList.call(this, evaluator);\n      }\n\n      var promise = new Promise();\n      var opList = new OperatorList();\n      var data = this.data;\n\n      // Even if there is an appearance stream, ignore it. This is the\n      // behaviour used by Adobe Reader.\n\n      var defaultAppearance = data.defaultAppearance;\n      if (!defaultAppearance) {\n        promise.resolve(opList);\n        return promise;\n      }\n\n      // Include any font resources found in the default appearance\n\n      var stream = new Stream(stringToBytes(defaultAppearance));\n      evaluator.getOperatorList(stream, this.fieldResources, opList);\n      var appearanceFnArray = opList.fnArray;\n      var appearanceArgsArray = opList.argsArray;\n      var fnArray = [];\n      var argsArray = [];\n\n      // TODO(mack): Add support for stroke color\n      data.rgb = [0, 0, 0];\n      // TODO THIS DOESN'T MAKE ANY SENSE SINCE THE fnArray IS EMPTY!\n      for (var i = 0, n = fnArray.length; i < n; ++i) {\n        var fnId = appearanceFnArray[i];\n        var args = appearanceArgsArray[i];\n\n        if (fnId === OPS.setFont) {\n          data.fontRefName = args[0];\n          var size = args[1];\n          if (size < 0) {\n            data.fontDirection = -1;\n            data.fontSize = -size;\n          } else {\n            data.fontDirection = 1;\n            data.fontSize = size;\n          }\n        } else if (fnId === OPS.setFillRGBColor) {\n          data.rgb = args;\n        } else if (fnId === OPS.setFillGray) {\n          var rgbValue = args[0] * 255;\n          data.rgb = [rgbValue, rgbValue, rgbValue];\n        }\n      }\n      promise.resolve(opList);\n      return promise;\n    }\n  });\n\n  return TextWidgetAnnotation;\n})();\n\nvar TextAnnotation = (function TextAnnotationClosure() {\n  function TextAnnotation(params) {\n    Annotation.call(this, params);\n\n    if (params.data) {\n      return;\n    }\n\n    var dict = params.dict;\n    var data = this.data;\n\n    var content = dict.get('Contents');\n    var title = dict.get('T');\n    data.content = stringToPDFString(content || '');\n    data.title = stringToPDFString(title || '');\n    data.name = !dict.has('Name') ? 'Note' : dict.get('Name').name;\n  }\n\n  var ANNOT_MIN_SIZE = 10;\n\n  Util.inherit(TextAnnotation, Annotation, {\n\n    getOperatorList: function TextAnnotation_getOperatorList(evaluator) {\n      var promise = new Promise();\n      promise.resolve(new OperatorList());\n      return promise;\n    },\n\n    hasHtml: function TextAnnotation_hasHtml() {\n      return true;\n    },\n\n    getHtmlElement: function TextAnnotation_getHtmlElement(commonObjs) {\n      assert(!isWorker, 'getHtmlElement() shall be called from main thread');\n\n      var item = this.data;\n      var rect = item.rect;\n\n      // sanity check because of OOo-generated PDFs\n      if ((rect[3] - rect[1]) < ANNOT_MIN_SIZE) {\n        rect[3] = rect[1] + ANNOT_MIN_SIZE;\n      }\n      if ((rect[2] - rect[0]) < ANNOT_MIN_SIZE) {\n        rect[2] = rect[0] + (rect[3] - rect[1]); // make it square\n      }\n\n      var container = this.getEmptyContainer('section', rect);\n      container.className = 'annotText';\n\n      var image = document.createElement('img');\n      image.style.height = container.style.height;\n      var iconName = item.name;\n      image.src = PDFJS.imageResourcesPath + 'annotation-' +\n        iconName.toLowerCase() + '.svg';\n      image.alt = '[{{type}} Annotation]';\n      image.dataset.l10nId = 'text_annotation_type';\n      image.dataset.l10nArgs = JSON.stringify({type: iconName});\n      var content = document.createElement('div');\n      content.setAttribute('hidden', true);\n      var title = document.createElement('h1');\n      var text = document.createElement('p');\n      content.style.left = Math.floor(rect[2] - rect[0]) + 'px';\n      content.style.top = '0px';\n      title.textContent = item.title;\n\n      if (!item.content && !item.title) {\n        content.setAttribute('hidden', true);\n      } else {\n        var e = document.createElement('span');\n        var lines = item.content.split(/(?:\\r\\n?|\\n)/);\n        for (var i = 0, ii = lines.length; i < ii; ++i) {\n          var line = lines[i];\n          e.appendChild(document.createTextNode(line));\n          if (i < (ii - 1))\n            e.appendChild(document.createElement('br'));\n        }\n        text.appendChild(e);\n\n        var showAnnotation = function showAnnotation() {\n          container.style.zIndex += 1;\n          content.removeAttribute('hidden');\n        };\n\n        var hideAnnotation = function hideAnnotation(e) {\n          if (e.toElement || e.relatedTarget) { // No context menu is used\n            container.style.zIndex -= 1;\n            content.setAttribute('hidden', true);\n          }\n        };\n\n        content.addEventListener('mouseover', showAnnotation, false);\n        content.addEventListener('mouseout', hideAnnotation, false);\n        image.addEventListener('mouseover', showAnnotation, false);\n        image.addEventListener('mouseout', hideAnnotation, false);\n      }\n\n      content.appendChild(title);\n      content.appendChild(text);\n      container.appendChild(image);\n      container.appendChild(content);\n\n      return container;\n    }\n  });\n\n  return TextAnnotation;\n})();\n\nvar LinkAnnotation = (function LinkAnnotationClosure() {\n  function LinkAnnotation(params) {\n    Annotation.call(this, params);\n\n    if (params.data) {\n      return;\n    }\n\n    var dict = params.dict;\n    var data = this.data;\n\n    var action = dict.get('A');\n    if (action) {\n      var linkType = action.get('S').name;\n      if (linkType === 'URI') {\n        var url = addDefaultProtocolToUrl(action.get('URI'));\n        // TODO: pdf spec mentions urls can be relative to a Base\n        // entry in the dictionary.\n        if (!isValidUrl(url, false)) {\n          url = '';\n        }\n        data.url = url;\n      } else if (linkType === 'GoTo') {\n        data.dest = action.get('D');\n      } else if (linkType === 'GoToR') {\n        var urlDict = action.get('F');\n        if (isDict(urlDict)) {\n          // We assume that the 'url' is a Filspec dictionary\n          // and fetch the url without checking any further\n          url = urlDict.get('F') || '';\n        }\n\n        // TODO: pdf reference says that GoToR\n        // can also have 'NewWindow' attribute\n        if (!isValidUrl(url, false)) {\n          url = '';\n        }\n        data.url = url;\n        data.dest = action.get('D');\n      } else if (linkType === 'Named') {\n        data.action = action.get('N').name;\n      } else {\n        TODO('unrecognized link type: ' + linkType);\n      }\n    } else if (dict.has('Dest')) {\n      // simple destination link\n      var dest = dict.get('Dest');\n      data.dest = isName(dest) ? dest.name : dest;\n    }\n  }\n\n  // Lets URLs beginning with 'www.' default to using the 'http://' protocol.\n  function addDefaultProtocolToUrl(url) {\n    if (url && url.indexOf('www.') === 0) {\n      return ('http://' + url);\n    }\n    return url;\n  }\n\n  Util.inherit(LinkAnnotation, Annotation, {\n    hasOperatorList: function LinkAnnotation_hasOperatorList() {\n      return false;\n    },\n\n    hasHtml: function LinkAnnotation_hasHtml() {\n      return true;\n    },\n\n    getHtmlElement: function LinkAnnotation_getHtmlElement(commonObjs) {\n      var rect = this.data.rect;\n      var element = document.createElement('a');\n      var borderWidth = this.data.borderWidth;\n\n      element.style.borderWidth = borderWidth + 'px';\n      var color = this.data.color;\n      var rgb = [];\n      for (var i = 0; i < 3; ++i) {\n        rgb[i] = Math.round(color[i] * 255);\n      }\n      element.style.borderColor = Util.makeCssRgb(rgb);\n      element.style.borderStyle = 'solid';\n\n      var width = rect[2] - rect[0] - 2 * borderWidth;\n      var height = rect[3] - rect[1] - 2 * borderWidth;\n      element.style.width = width + 'px';\n      element.style.height = height + 'px';\n\n      element.href = this.data.url || '';\n      return element;\n    }\n  });\n\n  return LinkAnnotation;\n})();\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals assertWellFormed, calculateMD5, Catalog, error, info, isArray,\n           isArrayBuffer, isName, isStream, isString, Lexer,\n           Linearization, NullStream, PartialEvaluator, shadow, Stream,\n           StreamsSequenceStream, stringToPDFString, stringToBytes, Util, XRef,\n           MissingDataException, Promise, Annotation, ObjectLoader, OperatorList\n           */\n\n'use strict';\n\nvar Page = (function PageClosure() {\n\n  function Page(pdfManager, xref, pageIndex, pageDict, ref, fontCache) {\n    this.pdfManager = pdfManager;\n    this.pageIndex = pageIndex;\n    this.pageDict = pageDict;\n    this.xref = xref;\n    this.ref = ref;\n    this.fontCache = fontCache;\n    this.idCounters = {\n      obj: 0\n    };\n    this.resourcesPromise = null;\n  }\n\n  Page.prototype = {\n    getPageProp: function Page_getPageProp(key) {\n      return this.pageDict.get(key);\n    },\n    inheritPageProp: function Page_inheritPageProp(key) {\n      var dict = this.pageDict;\n      var obj = dict.get(key);\n      while (obj === undefined) {\n        dict = dict.get('Parent');\n        if (!dict)\n          break;\n        obj = dict.get(key);\n      }\n      return obj;\n    },\n    get content() {\n      return this.getPageProp('Contents');\n    },\n    get resources() {\n      return shadow(this, 'resources', this.inheritPageProp('Resources'));\n    },\n    get mediaBox() {\n      var obj = this.inheritPageProp('MediaBox');\n      // Reset invalid media box to letter size.\n      if (!isArray(obj) || obj.length !== 4)\n        obj = [0, 0, 612, 792];\n      return shadow(this, 'mediaBox', obj);\n    },\n    get view() {\n      var mediaBox = this.mediaBox;\n      var cropBox = this.inheritPageProp('CropBox');\n      if (!isArray(cropBox) || cropBox.length !== 4)\n        return shadow(this, 'view', mediaBox);\n\n      // From the spec, 6th ed., p.963:\n      // \"The crop, bleed, trim, and art boxes should not ordinarily\n      // extend beyond the boundaries of the media box. If they do, they are\n      // effectively reduced to their intersection with the media box.\"\n      cropBox = Util.intersect(cropBox, mediaBox);\n      if (!cropBox)\n        return shadow(this, 'view', mediaBox);\n\n      return shadow(this, 'view', cropBox);\n    },\n    get annotationRefs() {\n      return shadow(this, 'annotationRefs', this.inheritPageProp('Annots'));\n    },\n    get rotate() {\n      var rotate = this.inheritPageProp('Rotate') || 0;\n      // Normalize rotation so it's a multiple of 90 and between 0 and 270\n      if (rotate % 90 !== 0) {\n        rotate = 0;\n      } else if (rotate >= 360) {\n        rotate = rotate % 360;\n      } else if (rotate < 0) {\n        // The spec doesn't cover negatives, assume its counterclockwise\n        // rotation. The following is the other implementation of modulo.\n        rotate = ((rotate % 360) + 360) % 360;\n      }\n      return shadow(this, 'rotate', rotate);\n    },\n    getContentStream: function Page_getContentStream() {\n      var content = this.content;\n      var stream;\n      if (isArray(content)) {\n        // fetching items\n        var xref = this.xref;\n        var i, n = content.length;\n        var streams = [];\n        for (i = 0; i < n; ++i)\n          streams.push(xref.fetchIfRef(content[i]));\n        stream = new StreamsSequenceStream(streams);\n      } else if (isStream(content)) {\n        stream = content;\n      } else {\n        // replacing non-existent page content with empty one\n        stream = new NullStream();\n      }\n      return stream;\n    },\n    loadResources: function(keys) {\n      if (!this.resourcesPromise) {\n        // TODO: add async inheritPageProp and remove this.\n        this.resourcesPromise = this.pdfManager.ensure(this, 'resources');\n      }\n      var promise = new Promise();\n      if (!this.resources) //empty page\n        promise.resolve();\n      else\n        this.resourcesPromise.then(function resourceSuccess() {\n            var objectLoader = new ObjectLoader(this.resources.map,\n                                                keys,\n                                                this.xref);\n            objectLoader.load().then(function objectLoaderSuccess() {\n            promise.resolve();\n            });\n        }.bind(this));\n      return promise;\n    },\n    getOperatorList: function Page_getOperatorList(handler) {\n      var promise = new Promise();\n\n      function reject(e) {\n        promise.reject(e);\n      }\n\n      var pageListPromise = new Promise();\n\n      var pdfManager = this.pdfManager;\n      var contentStreamPromise = pdfManager.ensure(this, 'getContentStream', []);\n      var resourcesPromise = this.loadResources([\n        'ExtGState',\n        'ColorSpace',\n        'Pattern',\n        'Shading',\n        'XObject',\n        'Font'\n        // ProcSet\n        // Properties\n      ]);\n\n      var partialEvaluator = new PartialEvaluator(\n            pdfManager, this.xref, handler,\n            this.pageIndex, 'p' + this.pageIndex + '_',\n            this.idCounters, this.fontCache);\n\n      Promise.all([contentStreamPromise, resourcesPromise]).then(function(data) {\n        var contentStream = data[0];\n\t\ttry {\n\t\t\tvar opList = new OperatorList(handler, this.pageIndex);\n\t\t\tpartialEvaluator.getOperatorList(contentStream, this.resources, opList);\n\t\t\tpageListPromise.resolve(opList);\n\n\t\t\thandler.send('StartRenderPage', {\n\t\t\t\ttransparency: partialEvaluator.hasBlendModes(this.resources),\n\t\t\t\tpageIndex: this.pageIndex\n\t\t\t});\n\t\t} catch (ex) {\n\t\t\treject(ex);\n\t\t}\n      }.bind(this), reject);\n\n      var annotationsPromise = pdfManager.ensure(this, 'annotations');\n      Promise.all([pageListPromise, annotationsPromise]).then(function(data) {\n        var pageOpList = data[0];\n        var annotations = data[1];\n\n        if (annotations.length === 0) {\n          pageOpList.flush(true);\n          promise.resolve(pageOpList);\n          return promise;\n        }\n\n        var annotationsReadyPromise = Annotation.appendToOperatorList(\n          annotations, pageOpList, pdfManager, partialEvaluator);\n        annotationsReadyPromise.then(function () {\n          pageOpList.flush(true);\n          promise.resolve(pageOpList);\n        }, reject);\n      }, reject);\n\n      return promise;\n    },\n    extractTextContent: function Page_extractTextContent() {\n      var handler = {\n        on: function nullHandlerOn() {},\n        send: function nullHandlerSend() {}\n      };\n\n      var self = this;\n\n      var textContentPromise = new Promise();\n\n      var pdfManager = this.pdfManager;\n      var contentStreamPromise = pdfManager.ensure(this, 'getContentStream',\n                                                   []);\n\n      var resourcesPromise = this.loadResources([\n        'ExtGState',\n        'XObject',\n        'Font'\n      ]);\n\n      var dataPromises = Promise.all([contentStreamPromise,\n                                      resourcesPromise]);\n      dataPromises.then(function(data) {\n        var contentStream = data[0];\n        var partialEvaluator = new PartialEvaluator(\n              pdfManager, self.xref, handler,\n              self.pageIndex, 'p' + self.pageIndex + '_',\n              self.idCounters, self.fontCache);\n\n        var bidiTexts = partialEvaluator.getTextContent(contentStream,\n                                                        self.resources);\n        textContentPromise.resolve(bidiTexts);\n      });\n\n      return textContentPromise;\n    },\n\n    getAnnotationsData: function Page_getAnnotationsData() {\n      var annotations = this.annotations;\n      var annotationsData = [];\n      for (var i = 0, n = annotations.length; i < n; ++i) {\n        annotationsData.push(annotations[i].getData());\n      }\n      return annotationsData;\n    },\n\n    get annotations() {\n      var annotations = [];\n      var annotationRefs = this.annotationRefs || [];\n      for (var i = 0, n = annotationRefs.length; i < n; ++i) {\n        var annotationRef = annotationRefs[i];\n        var annotation = Annotation.fromRef(this.xref, annotationRef);\n        if (annotation) {\n          annotations.push(annotation);\n        }\n      }\n      return shadow(this, 'annotations', annotations);\n    }\n  };\n\n  return Page;\n})();\n\n/**\n * The `PDFDocument` holds all the data of the PDF file. Compared to the\n * `PDFDoc`, this one doesn't have any job management code.\n * Right now there exists one PDFDocument on the main thread + one object\n * for each worker. If there is no worker support enabled, there are two\n * `PDFDocument` objects on the main thread created.\n */\nvar PDFDocument = (function PDFDocumentClosure() {\n  function PDFDocument(pdfManager, arg, password) {\n    if (isStream(arg))\n      init.call(this, pdfManager, arg, password);\n    else if (isArrayBuffer(arg))\n      init.call(this, pdfManager, new Stream(arg), password);\n    else\n      error('PDFDocument: Unknown argument type');\n  }\n\n  function init(pdfManager, stream, password) {\n    assertWellFormed(stream.length > 0, 'stream must have data');\n    this.pdfManager = pdfManager;\n    this.stream = stream;\n    var xref = new XRef(this.stream, password, pdfManager);\n    this.xref = xref;\n  }\n\n  function find(stream, needle, limit, backwards) {\n    var pos = stream.pos;\n    var end = stream.end;\n    var str = '';\n    if (pos + limit > end)\n      limit = end - pos;\n    for (var n = 0; n < limit; ++n)\n      str += String.fromCharCode(stream.getByte());\n    stream.pos = pos;\n    var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);\n    if (index == -1)\n      return false; /* not found */\n    stream.pos += index;\n    return true; /* found */\n  }\n\n  var DocumentInfoValidators = {\n    get entries() {\n      // Lazily build this since all the validation functions below are not\n      // defined until after this file loads.\n      return shadow(this, 'entries', {\n        Title: isString,\n        Author: isString,\n        Subject: isString,\n        Keywords: isString,\n        Creator: isString,\n        Producer: isString,\n        CreationDate: isString,\n        ModDate: isString,\n        Trapped: isName\n      });\n    }\n  };\n\n  PDFDocument.prototype = {\n    parse: function PDFDocument_parse(recoveryMode) {\n      try {\n\t    this.setup(recoveryMode); // setup may throw\n        // checking if AcroForm is present\n        this.acroForm = this.catalog.catDict.get('AcroForm');\n        if (this.acroForm) {\n          this.xfa = this.acroForm.get('XFA');\n          var fields = this.acroForm.get('Fields');\n          if ((!fields || !isArray(fields) || fields.length === 0) &&\n              !this.xfa) {\n            // no fields and no XFA -- not a form (?)\n            this.acroForm = null;\n          }\n        }\n      } catch (ex) {\n        error(ex);\n        this.acroForm = null;\n      }\n    },\n\n    get linearization() {\n      var length = this.stream.length;\n      var linearization = false;\n      if (length) {\n        try {\n          linearization = new Linearization(this.stream);\n          if (linearization.length != length) {\n            linearization = false;\n          }\n        } catch (err) {\n          if (err instanceof MissingDataException) {\n            throw err;\n          }\n\n          info('The linearization data is not available ' +\n               'or unreadable PDF data is found');\n          linearization = false;\n        }\n      }\n      // shadow the prototype getter with a data property\n      return shadow(this, 'linearization', linearization);\n    },\n    get startXRef() {\n      var stream = this.stream;\n      var startXRef = 0;\n      var linearization = this.linearization;\n      if (linearization) {\n        // Find end of first obj.\n        stream.reset();\n        if (find(stream, 'endobj', 1024))\n          startXRef = stream.pos + 6;\n      } else {\n        // Find startxref by jumping backward from the end of the file.\n        var step = 1024;\n        var found = false, pos = stream.end;\n        while (!found && pos > 0) {\n          pos -= step - 'startxref'.length;\n          if (pos < 0)\n            pos = 0;\n          stream.pos = pos;\n          found = find(stream, 'startxref', step, true);\n        }\n        if (found) {\n          stream.skip(9);\n          var ch;\n          do {\n            ch = stream.getByte();\n          } while (Lexer.isSpace(ch));\n          var str = '';\n          while (ch >= 0x20 && ch <= 0x39) { // < '9'\n            str += String.fromCharCode(ch);\n            ch = stream.getByte();\n          }\n          startXRef = parseInt(str, 10);\n          if (isNaN(startXRef))\n            startXRef = 0;\n        }\n      }\n      // shadow the prototype getter with a data property\n      return shadow(this, 'startXRef', startXRef);\n    },\n    get mainXRefEntriesOffset() {\n      var mainXRefEntriesOffset = 0;\n      var linearization = this.linearization;\n      if (linearization)\n        mainXRefEntriesOffset = linearization.mainXRefEntriesOffset;\n      // shadow the prototype getter with a data property\n      return shadow(this, 'mainXRefEntriesOffset', mainXRefEntriesOffset);\n    },\n    // Find the header, remove leading garbage and setup the stream\n    // starting from the header.\n    checkHeader: function PDFDocument_checkHeader() {\n      var stream = this.stream;\n      stream.reset();\n      if (find(stream, '%PDF-', 1024)) {\n        // Found the header, trim off any garbage before it.\n        stream.moveStart();\n        // Reading file format version\n        var MAX_VERSION_LENGTH = 12;\n        var version = '', ch;\n        while ((ch = stream.getByte()) > 0x20) { // SPACE\n          if (version.length >= MAX_VERSION_LENGTH) {\n            break;\n          }\n          version += String.fromCharCode(ch);\n        }\n        // removing \"%PDF-\"-prefix\n        this.pdfFormatVersion = version.substring(5);\n        return;\n      }\n      // May not be a PDF file, continue anyway.\n    },\n    parseStartXRef: function PDFDocument_parseStartXRef() {\n      var startXRef = this.startXRef;\n      this.xref.setStartXRef(startXRef);\n    },\n    setup: function PDFDocument_setup(recoveryMode) {\n      this.xref.parse(recoveryMode);\n      this.catalog = new Catalog(this.pdfManager, this.xref);\n    },\n    get numPages() {\n      var linearization = this.linearization;\n      var num = linearization ? linearization.numPages : this.catalog.numPages;\n      // shadow the prototype getter\n      return shadow(this, 'numPages', num);\n    },\n    get documentInfo() {\n      var docInfo = {\n        PDFFormatVersion: this.pdfFormatVersion,\n        IsAcroFormPresent: !!this.acroForm,\n        IsXFAPresent: !!this.xfa\n      };\n      var infoDict;\n      try {\n        infoDict = this.xref.trailer.get('Info');\n      } catch (err) {\n        info('The document information dictionary is invalid.');\n      }\n      if (infoDict) {\n        var validEntries = DocumentInfoValidators.entries;\n        // Only fill the document info with valid entries from the spec.\n        for (var key in validEntries) {\n          if (infoDict.has(key)) {\n            var value = infoDict.get(key);\n            // Make sure the value conforms to the spec.\n            if (validEntries[key](value)) {\n              docInfo[key] = typeof value !== 'string' ? value :\n                stringToPDFString(value);\n            } else {\n              info('Bad value in document info for \"' + key + '\"');\n            }\n          }\n        }\n      }\n      return shadow(this, 'documentInfo', docInfo);\n    },\n    get fingerprint() {\n      var xref = this.xref, hash, fileID = '';\n\n      if (xref.trailer.has('ID')) {\n        hash = stringToBytes(xref.trailer.get('ID')[0]);\n      } else {\n        hash = calculateMD5(this.stream.bytes.subarray(0, 100), 0, 100);\n      }\n\n      for (var i = 0, n = hash.length; i < n; i++) {\n        fileID += hash[i].toString(16);\n      }\n\n      return shadow(this, 'fingerprint', fileID);\n    },\n\n    getPage: function PDFDocument_getPage(pageIndex) {\n      return this.catalog.getPage(pageIndex);\n    },\n\n    cleanup: function PDFDocument_cleanup() {\n      return this.catalog.cleanup();\n    }\n  };\n\n  return PDFDocument;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals assertWellFormed, bytesToString, CipherTransformFactory, error, info,\n           InvalidPDFException, isArray, isCmd, isDict, isInt, isName, isRef,\n           isStream, Lexer, log, Page, Parser, Promise, shadow,\n           stringToPDFString, stringToUTF8String, warn, isString, assert,\n           Promise, MissingDataException, XRefParseException, Stream,\n           ChunkedStream */\n\n'use strict';\n\nvar Name = (function NameClosure() {\n  function Name(name) {\n    this.name = name;\n  }\n\n  Name.prototype = {};\n\n  return Name;\n})();\n\nvar Cmd = (function CmdClosure() {\n  function Cmd(cmd) {\n    this.cmd = cmd;\n  }\n\n  Cmd.prototype = {};\n\n  var cmdCache = {};\n\n  Cmd.get = function Cmd_get(cmd) {\n    var cmdValue = cmdCache[cmd];\n    if (cmdValue)\n      return cmdValue;\n\n    return cmdCache[cmd] = new Cmd(cmd);\n  };\n\n  return Cmd;\n})();\n\nvar Dict = (function DictClosure() {\n  var nonSerializable = function nonSerializableClosure() {\n    return nonSerializable; // creating closure on some variable\n  };\n\n  // xref is optional\n  function Dict(xref) {\n    // Map should only be used internally, use functions below to access.\n    this.map = Object.create(null);\n    this.xref = xref;\n    this.__nonSerializable__ = nonSerializable; // disable cloning of the Dict\n  }\n\n  Dict.prototype = {\n    assignXref: function Dict_assignXref(newXref) {\n      this.xref = newXref;\n    },\n\n    // automatically dereferences Ref objects\n    get: function Dict_get(key1, key2, key3) {\n      var value;\n      var xref = this.xref;\n      if (typeof (value = this.map[key1]) != 'undefined' || key1 in this.map ||\n          typeof key2 == 'undefined') {\n        return xref ? xref.fetchIfRef(value) : value;\n      }\n      if (typeof (value = this.map[key2]) != 'undefined' || key2 in this.map ||\n          typeof key3 == 'undefined') {\n        return xref ? xref.fetchIfRef(value) : value;\n      }\n      value = this.map[key3] || null;\n      return xref ? xref.fetchIfRef(value) : value;\n    },\n\n    // Same as get(), but returns a promise and uses fetchIfRefAsync().\n    getAsync: function Dict_getAsync(key1, key2, key3) {\n      var value;\n      var promise;\n      var xref = this.xref;\n      if (typeof (value = this.map[key1]) !== undefined || key1 in this.map ||\n          typeof key2 === undefined) {\n        if (xref) {\n          return xref.fetchIfRefAsync(value);\n        }\n        promise = new Promise();\n        promise.resolve(value);\n        return promise;\n      }\n      if (typeof (value = this.map[key2]) !== undefined || key2 in this.map ||\n          typeof key3 === undefined) {\n        if (xref) {\n          return xref.fetchIfRefAsync(value);\n        }\n        promise = new Promise();\n        promise.resolve(value);\n        return promise;\n      }\n      value = this.map[key3] || null;\n      if (xref) {\n        return xref.fetchIfRefAsync(value);\n      }\n      promise = new Promise();\n      promise.resolve(value);\n      return promise;\n    },\n\n    // no dereferencing\n    getRaw: function Dict_getRaw(key) {\n      return this.map[key];\n    },\n\n    // creates new map and dereferences all Refs\n    getAll: function Dict_getAll() {\n      var all = {};\n      for (var key in this.map) {\n        var obj = this.get(key);\n        all[key] = obj instanceof Dict ? obj.getAll() : obj;\n      }\n      return all;\n    },\n\n    set: function Dict_set(key, value) {\n      this.map[key] = value;\n    },\n\n    has: function Dict_has(key) {\n      return key in this.map;\n    },\n\n    forEach: function Dict_forEach(callback) {\n      for (var key in this.map) {\n        callback(key, this.get(key));\n      }\n    }\n  };\n\n  return Dict;\n})();\n\nvar Ref = (function RefClosure() {\n  function Ref(num, gen) {\n    this.num = num;\n    this.gen = gen;\n  }\n\n  Ref.prototype = {};\n\n  return Ref;\n})();\n\n// The reference is identified by number and generation,\n// this structure stores only one instance of the reference.\nvar RefSet = (function RefSetClosure() {\n  function RefSet() {\n    this.dict = {};\n  }\n\n  RefSet.prototype = {\n    has: function RefSet_has(ref) {\n      return ('R' + ref.num + '.' + ref.gen) in this.dict;\n    },\n\n    put: function RefSet_put(ref) {\n      this.dict['R' + ref.num + '.' + ref.gen] = true;\n    },\n\n    remove: function RefSet_remove(ref) {\n      delete this.dict['R' + ref.num + '.' + ref.gen];\n    }\n  };\n\n  return RefSet;\n})();\n\nvar RefSetCache = (function RefSetCacheClosure() {\n  function RefSetCache() {\n    this.dict = Object.create(null);\n  }\n\n  RefSetCache.prototype = {\n    get: function RefSetCache_get(ref) {\n      return this.dict['R' + ref.num + '.' + ref.gen];\n    },\n\n    has: function RefSetCache_has(ref) {\n      //MQZ. 03/08/2016 fix https://github.com/modesty/pdf2json/issues/26\n      return !!ref ? ('R' + ref.num + '.' + ref.gen) in this.dict : false;\n    },\n\n    put: function RefSetCache_put(ref, obj) {\n      this.dict['R' + ref.num + '.' + ref.gen] = obj;\n    },\n\n    forEach: function RefSetCache_forEach(fn, thisArg) {\n      for (var i in this.dict) {\n        fn.call(thisArg, this.dict[i]);\n      }\n    },\n\n    clear: function RefSetCache_clear() {\n      this.dict = Object.create(null);\n    }\n  };\n\n  return RefSetCache;\n})();\n\nvar Catalog = (function CatalogClosure() {\n  function Catalog(pdfManager, xref) {\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this.catDict = xref.getCatalogObj();\n    this.fontCache = new RefSetCache();\n    assertWellFormed(isDict(this.catDict),\n      'catalog object is not a dictionary');\n\n    this.pagePromises = [];\n  }\n\n  Catalog.prototype = {\n    get metadata() {\n      var streamRef = this.catDict.getRaw('Metadata');\n      if (!isRef(streamRef))\n        return shadow(this, 'metadata', null);\n\n      var encryptMetadata = !this.xref.encrypt ? false :\n        this.xref.encrypt.encryptMetadata;\n\n      var stream = this.xref.fetch(streamRef, !encryptMetadata);\n      var metadata;\n      if (stream && isDict(stream.dict)) {\n        var type = stream.dict.get('Type');\n        var subtype = stream.dict.get('Subtype');\n\n        if (isName(type) && isName(subtype) &&\n            type.name === 'Metadata' && subtype.name === 'XML') {\n          // XXX: This should examine the charset the XML document defines,\n          // however since there are currently no real means to decode\n          // arbitrary charsets, let's just hope that the author of the PDF\n          // was reasonable enough to stick with the XML default charset,\n          // which is UTF-8.\n          try {\n            metadata = stringToUTF8String(bytesToString(stream.getBytes()));\n          } catch (e) {\n            info('Skipping invalid metadata.');\n          }\n        }\n      }\n\n      return shadow(this, 'metadata', metadata);\n    },\n    get toplevelPagesDict() {\n      var pagesObj = this.catDict.get('Pages');\n      assertWellFormed(isDict(pagesObj), 'invalid top-level pages dictionary');\n      // shadow the prototype getter\n      return shadow(this, 'toplevelPagesDict', pagesObj);\n    },\n    get documentOutline() {\n      var obj = null;\n      try {\n        obj = this.readDocumentOutline();\n      } catch (ex) {\n        if (ex instanceof MissingDataException) {\n          throw ex;\n        }\n        warn('Unable to read document outline');\n      }\n      return shadow(this, 'documentOutline', obj);\n    },\n    readDocumentOutline: function Catalog_readDocumentOutline() {\n      var xref = this.xref;\n      var obj = this.catDict.get('Outlines');\n      var root = { items: [] };\n      if (isDict(obj)) {\n        obj = obj.getRaw('First');\n        var processed = new RefSet();\n        if (isRef(obj)) {\n          var queue = [{obj: obj, parent: root}];\n          // to avoid recursion keeping track of the items\n          // in the processed dictionary\n          processed.put(obj);\n          while (queue.length > 0) {\n            var i = queue.shift();\n            var outlineDict = xref.fetchIfRef(i.obj);\n            if (outlineDict === null)\n              continue;\n            if (!outlineDict.has('Title'))\n              error('Invalid outline item');\n            var dest = outlineDict.get('A');\n            if (dest)\n              dest = dest.get('D');\n            else if (outlineDict.has('Dest')) {\n              dest = outlineDict.getRaw('Dest');\n              if (isName(dest))\n                dest = dest.name;\n            }\n            var title = outlineDict.get('Title');\n            var outlineItem = {\n              dest: dest,\n              title: stringToPDFString(title),\n              color: outlineDict.get('C') || [0, 0, 0],\n              count: outlineDict.get('Count'),\n              bold: !!(outlineDict.get('F') & 2),\n              italic: !!(outlineDict.get('F') & 1),\n              items: []\n            };\n            i.parent.items.push(outlineItem);\n            obj = outlineDict.getRaw('First');\n            if (isRef(obj) && !processed.has(obj)) {\n              queue.push({obj: obj, parent: outlineItem});\n              processed.put(obj);\n            }\n            obj = outlineDict.getRaw('Next');\n            if (isRef(obj) && !processed.has(obj)) {\n              queue.push({obj: obj, parent: i.parent});\n              processed.put(obj);\n            }\n          }\n        }\n      }\n      return root.items.length > 0 ? root.items : null;\n    },\n    get numPages() {\n      var obj = this.toplevelPagesDict.get('Count');\n      assertWellFormed(\n        isInt(obj),\n        'page count in top level pages object is not an integer'\n      );\n      // shadow the prototype getter\n      return shadow(this, 'num', obj);\n    },\n    get destinations() {\n      function fetchDestination(dest) {\n        return isDict(dest) ? dest.get('D') : dest;\n      }\n\n      var xref = this.xref;\n      var dests = {}, nameTreeRef, nameDictionaryRef;\n      var obj = this.catDict.get('Names');\n      if (obj)\n        nameTreeRef = obj.getRaw('Dests');\n      else if (this.catDict.has('Dests'))\n        nameDictionaryRef = this.catDict.get('Dests');\n\n      if (nameDictionaryRef) {\n        // reading simple destination dictionary\n        obj = nameDictionaryRef;\n        obj.forEach(function catalogForEach(key, value) {\n          if (!value) return;\n          dests[key] = fetchDestination(value);\n        });\n      }\n      if (nameTreeRef) {\n        var nameTree = new NameTree(nameTreeRef, xref);\n        var names = nameTree.getAll();\n        for (var name in names) {\n          if (!names.hasOwnProperty(name)) {\n            continue;\n          }\n          dests[name] = fetchDestination(names[name]);\n        }\n      }\n      return shadow(this, 'destinations', dests);\n    },\n    get javaScript() {\n      var xref = this.xref;\n      var obj = this.catDict.get('Names');\n\n      var javaScript = [];\n      if (obj && obj.has('JavaScript')) {\n        var nameTree = new NameTree(obj.getRaw('JavaScript'), xref);\n        var names = nameTree.getAll();\n        for (var name in names) {\n          if (!names.hasOwnProperty(name)) {\n            continue;\n          }\n          // We don't really use the JavaScript right now so this code is\n          // defensive so we don't cause errors on document load.\n          var jsDict = names[name];\n          if (!isDict(jsDict)) {\n            continue;\n          }\n          var type = jsDict.get('S');\n          if (!isName(type) || type.name !== 'JavaScript') {\n            continue;\n          }\n          var js = jsDict.get('JS');\n          if (!isString(js) && !isStream(js)) {\n            continue;\n          }\n          if (isStream(js)) {\n            js = bytesToString(js.getBytes());\n          }\n          javaScript.push(stringToPDFString(js));\n        }\n      }\n      return shadow(this, 'javaScript', javaScript);\n    },\n\n    cleanup: function Catalog_cleanup() {\n      this.fontCache.forEach(function (font) {\n        delete font.sent;\n        delete font.translated;\n      });\n      this.fontCache.clear();\n    },\n\n    getPage: function Catalog_getPage(pageIndex) {\n      if (!(pageIndex in this.pagePromises)) {\n        this.pagePromises[pageIndex] = this.getPageDict(pageIndex).then(\n          function (a) {\n            var dict = a[0];\n            var ref = a[1];\n            return new Page(this.pdfManager, this.xref, pageIndex, dict, ref,\n                            this.fontCache);\n          }.bind(this)\n        );\n      }\n      return this.pagePromises[pageIndex];\n    },\n\n    getPageDict: function Catalog_getPageDict(pageIndex) {\n      var promise = new Promise();\n      var nodesToVisit = [this.catDict.getRaw('Pages')];\n      var currentPageIndex = 0;\n      var xref = this.xref;\n\n      function next() {\n        while (nodesToVisit.length) {\n          var currentNode = nodesToVisit.pop();\n\n          if (isRef(currentNode)) {\n            xref.fetchAsync(currentNode).then(function (obj) {\n              if ((isDict(obj, 'Page') || (isDict(obj) && !obj.has('Kids')))) {\n                if (pageIndex === currentPageIndex) {\n                  promise.resolve([obj, currentNode]);\n                } else {\n                  currentPageIndex++;\n                  next();\n                }\n                return;\n              }\n              nodesToVisit.push(obj);\n              next();\n            }.bind(this), promise.reject.bind(promise));\n            return;\n          }\n\n          // must be a child page dictionary\n          assert(\n            isDict(currentNode),\n            'page dictionary kid reference points to wrong type of object'\n          );\n          var count = currentNode.get('Count');\n          // Skip nodes where the page can't be.\n          if (currentPageIndex + count <= pageIndex) {\n            currentPageIndex += count;\n            continue;\n          }\n\n          var kids = currentNode.get('Kids');\n          assert(isArray(kids), 'page dictionary kids object is not an array');\n          if (count === kids.length) {\n            // Nodes that don't have the page have been skipped and this is the\n            // bottom of the tree which means the page requested must be a\n            // descendant of this pages node. Ideally we would just resolve the\n            // promise with the page ref here, but there is the case where more\n            // pages nodes could link to single a page (see issue 3666 pdf). To\n            // handle this push it back on the queue so if it is a pages node it\n            // will be descended into.\n            nodesToVisit = [kids[pageIndex - currentPageIndex]];\n            currentPageIndex = pageIndex;\n            continue;\n          } else {\n            for (var last = kids.length - 1; last >= 0; last--) {\n              nodesToVisit.push(kids[last]);\n            }\n          }\n        }\n        promise.reject('Page index ' + pageIndex + ' not found.');\n      }\n      next();\n      return promise;\n    },\n\n    getPageIndex: function Catalog_getPageIndex(ref) {\n      // The page tree nodes have the count of all the leaves below them. To get\n      // how many pages are before we just have to walk up the tree and keep\n      // adding the count of siblings to the left of the node.\n      var xref = this.xref;\n      function pagesBeforeRef(kidRef) {\n        var total = 0;\n        var parentRef;\n        return xref.fetchAsync(kidRef).then(function (node) {\n          if (!node) {\n            return null;\n          }\n          parentRef = node.getRaw('Parent');\n          return node.getAsync('Parent');\n        }).then(function (parent) {\n          if (!parent) {\n            return null;\n          }\n          return parent.getAsync('Kids');\n        }).then(function (kids) {\n          if (!kids) {\n            return null;\n          }\n          var kidPromises = [];\n          var found = false;\n          for (var i = 0; i < kids.length; i++) {\n            var kid = kids[i];\n            assert(isRef(kid), 'kids must be an ref');\n            if (kid.num == kidRef.num) {\n              found = true;\n              break;\n            }\n            kidPromises.push(xref.fetchAsync(kid).then(function (kid) {\n              if (kid.has('Count')) {\n                var count = kid.get('Count');\n                total += count;\n              } else { // page leaf node\n                total++;\n              }\n            }));\n          }\n          if (!found) {\n            error('kid ref not found in parents kids');\n          }\n          return Promise.all(kidPromises).then(function () {\n            return [total, parentRef];\n          });\n        });\n      }\n\n      var total = 0;\n      function next(ref) {\n        return pagesBeforeRef(ref).then(function (args) {\n          if (!args) {\n            return total;\n          }\n          var count = args[0];\n          var parentRef = args[1];\n          total += count;\n          return next(parentRef);\n        });\n      }\n\n      return next(ref);\n    }\n  };\n\n  return Catalog;\n})();\n\nvar XRef = (function XRefClosure() {\n  function XRef(stream, password) {\n\n    this.stream = stream;\n    this.entries = [];\n    this.xrefstms = {};\n    // prepare the XRef cache\n    this.cache = [];\n    this.password = password;\n  }\n\n  XRef.prototype = {\n    setStartXRef: function XRef_setStartXRef(startXRef) {\n      // Store the starting positions of xref tables as we process them\n      // so we can recover from missing data errors\n      this.startXRefQueue = [startXRef];\n    },\n\n    parse: function XRef_parse(recoveryMode) {\n      var trailerDict;\n      if (!recoveryMode) {\n        trailerDict = this.readXRef();\n      } else {\n        warn('Indexing all PDF objects');\n        trailerDict = this.indexObjects();\n      }\n      trailerDict.assignXref(this);\n      this.trailer = trailerDict;\n      var encrypt = trailerDict.get('Encrypt');\n      if (encrypt) {\n        var ids = trailerDict.get('ID');\n        var fileId = (ids && ids.length) ? ids[0] : '';\n        this.encrypt = new CipherTransformFactory(\n            encrypt, fileId, this.password);\n      }\n\n      // get the root dictionary (catalog) object\n      if (!(this.root = trailerDict.get('Root'))) {\n        error('Invalid root reference');\n      }\n    },\n\n    processXRefTable: function XRef_processXRefTable(parser) {\n      if (!('tableState' in this)) {\n        // Stores state of the table as we process it so we can resume\n        // from middle of table in case of missing data error\n        this.tableState = {\n          entryNum: 0,\n          streamPos: parser.lexer.stream.pos,\n          parserBuf1: parser.buf1,\n          parserBuf2: parser.buf2\n        };\n      }\n\n      var obj = this.readXRefTable(parser);\n\n      // Sanity check\n      if (!isCmd(obj, 'trailer'))\n        error('Invalid XRef table: could not find trailer dictionary');\n\n      // Read trailer dictionary, e.g.\n      // trailer\n      //    << /Size 22\n      //      /Root 20R\n      //      /Info 10R\n      //      /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]\n      //    >>\n      // The parser goes through the entire stream << ... >> and provides\n      // a getter interface for the key-value table\n      var dict = parser.getObj();\n      if (!isDict(dict))\n        error('Invalid XRef table: could not parse trailer dictionary');\n\n      delete this.tableState;\n\n      return dict;\n    },\n\n    readXRefTable: function XRef_readXRefTable(parser) {\n      // Example of cross-reference table:\n      // xref\n      // 0 1                    <-- subsection header (first obj #, obj count)\n      // 0000000000 65535 f     <-- actual object (offset, generation #, f/n)\n      // 23 2                   <-- subsection header ... and so on ...\n      // 0000025518 00002 n\n      // 0000025635 00000 n\n      // trailer\n      // ...\n\n      var stream = parser.lexer.stream;\n      var tableState = this.tableState;\n      stream.pos = tableState.streamPos;\n      parser.buf1 = tableState.parserBuf1;\n      parser.buf2 = tableState.parserBuf2;\n\n      // Outer loop is over subsection headers\n      var obj;\n\n      while (true) {\n        if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) {\n          if (isCmd(obj = parser.getObj(), 'trailer')) {\n            break;\n          }\n          tableState.firstEntryNum = obj;\n          tableState.entryCount = parser.getObj();\n        }\n\n        var first = tableState.firstEntryNum;\n        var count = tableState.entryCount;\n        if (!isInt(first) || !isInt(count))\n          error('Invalid XRef table: wrong types in subsection header');\n\n        // Inner loop is over objects themselves\n        for (var i = tableState.entryNum; i < count; i++) {\n          tableState.streamPos = stream.pos;\n          tableState.entryNum = i;\n          tableState.parserBuf1 = parser.buf1;\n          tableState.parserBuf2 = parser.buf2;\n\n          var entry = {};\n          entry.offset = parser.getObj();\n          entry.gen = parser.getObj();\n          var type = parser.getObj();\n\n          if (isCmd(type, 'f'))\n            entry.free = true;\n          else if (isCmd(type, 'n'))\n            entry.uncompressed = true;\n\n          // Validate entry obj\n          if (!isInt(entry.offset) || !isInt(entry.gen) ||\n              !(entry.free || entry.uncompressed)) {\n            console.log(entry.offset, entry.gen, entry.free,\n                entry.uncompressed);\n            error('Invalid entry in XRef subsection: ' + first + ', ' + count);\n          }\n\n          if (!this.entries[i + first])\n            this.entries[i + first] = entry;\n        }\n\n        tableState.entryNum = 0;\n        tableState.streamPos = stream.pos;\n        tableState.parserBuf1 = parser.buf1;\n        tableState.parserBuf2 = parser.buf2;\n        delete tableState.firstEntryNum;\n        delete tableState.entryCount;\n      }\n\n      // Per issue 3248: hp scanners generate bad XRef\n      if (first === 1 && this.entries[1] && this.entries[1].free) {\n        // shifting the entries\n        this.entries.shift();\n      }\n\n      // Sanity check: as per spec, first object must be free\n      if (this.entries[0] && !this.entries[0].free)\n        error('Invalid XRef table: unexpected first object');\n\n      return obj;\n    },\n\n    processXRefStream: function XRef_processXRefStream(stream) {\n      if (!('streamState' in this)) {\n        // Stores state of the stream as we process it so we can resume\n        // from middle of stream in case of missing data error\n        var streamParameters = stream.dict;\n        var byteWidths = streamParameters.get('W');\n        var range = streamParameters.get('Index');\n        if (!range) {\n          range = [0, streamParameters.get('Size')];\n        }\n\n        this.streamState = {\n          entryRanges: range,\n          byteWidths: byteWidths,\n          entryNum: 0,\n          streamPos: stream.pos\n        };\n      }\n      this.readXRefStream(stream);\n      delete this.streamState;\n\n      return stream.dict;\n    },\n\n    readXRefStream: function XRef_readXRefStream(stream) {\n      var i, j;\n      var streamState = this.streamState;\n      stream.pos = streamState.streamPos;\n\n      var byteWidths = streamState.byteWidths;\n      var typeFieldWidth = byteWidths[0];\n      var offsetFieldWidth = byteWidths[1];\n      var generationFieldWidth = byteWidths[2];\n\n      var entryRanges = streamState.entryRanges;\n      while (entryRanges.length > 0) {\n\n        var first = entryRanges[0];\n        var n = entryRanges[1];\n\n        if (!isInt(first) || !isInt(n))\n          error('Invalid XRef range fields: ' + first + ', ' + n);\n\n        if (!isInt(typeFieldWidth) || !isInt(offsetFieldWidth) ||\n            !isInt(generationFieldWidth)) {\n          error('Invalid XRef entry fields length: ' + first + ', ' + n);\n        }\n        for (i = streamState.entryNum; i < n; ++i) {\n          streamState.entryNum = i;\n          streamState.streamPos = stream.pos;\n\n          var type = 0, offset = 0, generation = 0;\n          for (j = 0; j < typeFieldWidth; ++j)\n            type = (type << 8) | stream.getByte();\n          // if type field is absent, its default value = 1\n          if (typeFieldWidth === 0)\n            type = 1;\n          for (j = 0; j < offsetFieldWidth; ++j)\n            offset = (offset << 8) | stream.getByte();\n          for (j = 0; j < generationFieldWidth; ++j)\n            generation = (generation << 8) | stream.getByte();\n          var entry = {};\n          entry.offset = offset;\n          entry.gen = generation;\n          switch (type) {\n            case 0:\n              entry.free = true;\n              break;\n            case 1:\n              entry.uncompressed = true;\n              break;\n            case 2:\n              break;\n            default:\n              error('Invalid XRef entry type: ' + type);\n          }\n          if (!this.entries[first + i])\n            this.entries[first + i] = entry;\n        }\n\n        streamState.entryNum = 0;\n        streamState.streamPos = stream.pos;\n        entryRanges.splice(0, 2);\n      }\n    },\n    indexObjects: function XRef_indexObjects() {\n      // Simple scan through the PDF content to find objects,\n      // trailers and XRef streams.\n      function readToken(data, offset) {\n        var token = '', ch = data[offset];\n        while (ch !== 13 && ch !== 10) {\n          if (++offset >= data.length)\n            break;\n          token += String.fromCharCode(ch);\n          ch = data[offset];\n        }\n        return token;\n      }\n      function skipUntil(data, offset, what) {\n        var length = what.length, dataLength = data.length;\n        var skipped = 0;\n        // finding byte sequence\n        while (offset < dataLength) {\n          var i = 0;\n          while (i < length && data[offset + i] == what[i])\n            ++i;\n          if (i >= length)\n            break; // sequence found\n\n          offset++;\n          skipped++;\n        }\n        return skipped;\n      }\n      var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n      var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114,\n                                          101, 102]);\n      var endobjBytes = new Uint8Array([101, 110, 100, 111, 98, 106]);\n      var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n\n      var stream = this.stream;\n      stream.pos = 0;\n      var buffer = stream.getBytes();\n      var position = stream.start, length = buffer.length;\n      var trailers = [], xrefStms = [];\n      var state = 0;\n      var currentToken;\n      while (position < length) {\n        var ch = buffer[position];\n        if (ch === 32 || ch === 9 || ch === 13 || ch === 10) {\n          ++position;\n          continue;\n        }\n        if (ch === 37) { // %-comment\n          do {\n            ++position;\n            if (position >= length) {\n              break;\n            }\n            ch = buffer[position];\n          } while (ch !== 13 && ch !== 10);\n          continue;\n        }\n        var token = readToken(buffer, position);\n        var m;\n        if (token === 'xref') {\n          position += skipUntil(buffer, position, trailerBytes);\n          trailers.push(position);\n          position += skipUntil(buffer, position, startxrefBytes);\n        } else if ((m = /^(\\d+)\\s+(\\d+)\\s+obj\\b/.exec(token))) {\n          this.entries[m[1]] = {\n            offset: position,\n            gen: m[2] | 0,\n            uncompressed: true\n          };\n\n          var contentLength = skipUntil(buffer, position, endobjBytes) + 7;\n          var content = buffer.subarray(position, position + contentLength);\n\n          // checking XRef stream suspect\n          // (it shall have '/XRef' and next char is not a letter)\n          var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n          if (xrefTagOffset < contentLength &&\n              content[xrefTagOffset + 5] < 64) {\n            xrefStms.push(position);\n            this.xrefstms[position] = 1; // don't read it recursively\n          }\n\n          position += contentLength;\n        } else\n          position += token.length + 1;\n      }\n      // reading XRef streams\n      for (var i = 0, ii = xrefStms.length; i < ii; ++i) {\n        this.startXRefQueue.push(xrefStms[i]);\n        this.readXRef(/* recoveryMode */ true);\n      }\n      // finding main trailer\n      var dict;\n      for (var i = 0, ii = trailers.length; i < ii; ++i) {\n        stream.pos = trailers[i];\n        var parser = new Parser(new Lexer(stream), true, null);\n        var obj = parser.getObj();\n        if (!isCmd(obj, 'trailer'))\n          continue;\n        // read the trailer dictionary\n        if (!isDict(dict = parser.getObj()))\n          continue;\n        // taking the first one with 'ID'\n        if (dict.has('ID'))\n          return dict;\n      }\n      // no tailer with 'ID', taking last one (if exists)\n      if (dict)\n        return dict;\n      // nothing helps\n      // calling error() would reject worker with an UnknownErrorException.\n      throw new InvalidPDFException('Invalid PDF structure');\n    },\n\n    readXRef: function XRef_readXRef(recoveryMode) {\n      var stream = this.stream;\n\n      try {\n        while (this.startXRefQueue.length) {\n          var startXRef = this.startXRefQueue[0];\n\n          stream.pos = startXRef;\n\n          var parser = new Parser(new Lexer(stream), true, null);\n          var obj = parser.getObj();\n          var dict;\n\n          // Get dictionary\n          if (isCmd(obj, 'xref')) {\n\n            // Parse end-of-file XRef\n            dict = this.processXRefTable(parser);\n            if (!this.topDict) {\n              this.topDict = dict;\n            }\n\n            // Recursively get other XRefs 'XRefStm', if any\n            obj = dict.get('XRefStm');\n            if (isInt(obj)) {\n              var pos = obj;\n              // ignore previously loaded xref streams\n              // (possible infinite recursion)\n              if (!(pos in this.xrefstms)) {\n                this.xrefstms[pos] = 1;\n                this.startXRefQueue.push(pos);\n              }\n            }\n          } else if (isInt(obj)) {\n\n            // Parse in-stream XRef\n            if (!isInt(parser.getObj()) ||\n                !isCmd(parser.getObj(), 'obj') ||\n                !isStream(obj = parser.getObj())) {\n              error('Invalid XRef stream');\n            }\n            dict = this.processXRefStream(obj);\n            if (!this.topDict) {\n              this.topDict = dict;\n            }\n\n            if (!dict)\n              error('Failed to read XRef stream');\n          } else {\n            error('Invalid XRef stream header');\n          }\n\n          // Recursively get previous dictionary, if any\n          obj = dict.get('Prev');\n          if (isInt(obj)) {\n            this.startXRefQueue.push(obj);\n          } else if (isRef(obj)) {\n            // The spec says Prev must not be a reference, i.e. \"/Prev NNN\"\n            // This is a fallback for non-compliant PDFs, i.e. \"/Prev NNN 0 R\"\n            this.startXRefQueue.push(obj.num);\n          }\n\n          this.startXRefQueue.shift();\n        }\n\n        return this.topDict;\n      } catch (e) {\n        if (e instanceof MissingDataException) {\n          throw e;\n        }\n        log('(while reading XRef): ' + e);\n        error(e);\n      }\n\n      if (recoveryMode)\n        return;\n      throw new XRefParseException();\n    },\n\n    getEntry: function XRef_getEntry(i) {\n      var e = this.entries[i];\n      if (e === null)\n        return null;\n      return e.free || !e.offset ? null : e; // returns null if entry is free\n    },\n    fetchIfRef: function XRef_fetchIfRef(obj) {\n      if (!isRef(obj))\n        return obj;\n      return this.fetch(obj);\n    },\n    fetch: function XRef_fetch(ref, suppressEncryption) {\n      assertWellFormed(isRef(ref), 'ref object is not a reference');\n      var num = ref.num;\n      var e;\n      if (num in this.cache) {\n        e = this.cache[num];\n        if (e instanceof Stream) {\n          return e.makeSubStream(e.start, e.length, e.dict);\n        }\n        return e;\n      }\n\n      e = this.getEntry(num);\n\n      // the referenced entry can be free\n      if (e === null)\n        return (this.cache[num] = e);\n\n      var gen = ref.gen;\n      var stream, parser;\n      if (e.uncompressed) {\n        if (e.gen != gen)\n          error('inconsistent generation in XRef');\n        stream = this.stream.makeSubStream(e.offset);\n        parser = new Parser(new Lexer(stream), true, this);\n        var obj1 = parser.getObj();\n        var obj2 = parser.getObj();\n        var obj3 = parser.getObj();\n        if (!isInt(obj1) || obj1 != num ||\n            !isInt(obj2) || obj2 != gen ||\n            !isCmd(obj3)) {\n          error('bad XRef entry');\n        }\n        if (!isCmd(obj3, 'obj')) {\n          // some bad pdfs use \"obj1234\" and really mean 1234\n          if (obj3.cmd.indexOf('obj') === 0) {\n            num = parseInt(obj3.cmd.substring(3), 10);\n            if (!isNaN(num))\n              return num;\n          }\n          error('bad XRef entry');\n        }\n        if (this.encrypt && !suppressEncryption) {\n          try {\n            e = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n          } catch (ex) {\n            // almost all streams must be encrypted, but sometimes\n            // they are not probably due to some broken generators\n            // re-trying without encryption\n            return this.fetch(ref, true);\n          }\n        } else {\n          e = parser.getObj();\n        }\n        if (!isStream(e)) {\n          this.cache[num] = e;\n        }\n        return e;\n      }\n\n      // compressed entry\n      var tableOffset = e.offset;\n      stream = this.fetch(new Ref(tableOffset, 0));\n      if (!isStream(stream))\n        error('bad ObjStm stream');\n      var first = stream.dict.get('First');\n      var n = stream.dict.get('N');\n      if (!isInt(first) || !isInt(n)) {\n        error('invalid first and n parameters for ObjStm stream');\n      }\n      parser = new Parser(new Lexer(stream), false, this);\n      parser.allowStreams = true;\n      var i, entries = [], nums = [];\n      // read the object numbers to populate cache\n      for (i = 0; i < n; ++i) {\n        num = parser.getObj();\n        if (!isInt(num)) {\n          error('invalid object number in the ObjStm stream: ' + num);\n        }\n        nums.push(num);\n        var offset = parser.getObj();\n        if (!isInt(offset)) {\n          error('invalid object offset in the ObjStm stream: ' + offset);\n        }\n      }\n      // read stream objects for cache\n      for (i = 0; i < n; ++i) {\n        entries.push(parser.getObj());\n        num = nums[i];\n        var entry = this.entries[num];\n        if (entry && entry.offset === tableOffset && entry.gen === i) {\n          this.cache[num] = entries[i];\n        }\n      }\n      e = entries[e.gen];\n      if (e === undefined) {\n        error('bad XRef entry for compressed object');\n      }\n      return e;\n    },\n    fetchIfRefAsync: function XRef_fetchIfRefAsync(obj) {\n      if (!isRef(obj)) {\n        var promise = new Promise();\n        promise.resolve(obj);\n        return promise;\n      }\n      return this.fetchAsync(obj);\n    },\n    fetchAsync: function XRef_fetchAsync(ref, suppressEncryption) {\n      var promise = new Promise();\n      var tryFetch = function (promise) {\n        try {\n          promise.resolve(this.fetch(ref, suppressEncryption));\n        } catch (e) {\n          if (e instanceof MissingDataException) {\n            this.stream.manager.requestRange(e.begin, e.end, tryFetch);\n            return;\n          }\n          promise.reject(e);\n        }\n      }.bind(this, promise);\n      tryFetch();\n      return promise;\n    },\n    getCatalogObj: function XRef_getCatalogObj() {\n      return this.root;\n    }\n  };\n\n  return XRef;\n})();\n\n/**\n * A NameTree is like a Dict but has some adventagous properties, see the spec\n * (7.9.6) for more details.\n * TODO: implement all the Dict functions and make this more efficent.\n */\nvar NameTree = (function NameTreeClosure() {\n  function NameTree(root, xref) {\n    this.root = root;\n    this.xref = xref;\n  }\n\n  NameTree.prototype = {\n    getAll: function NameTree_getAll() {\n      var dict = {};\n      if (!this.root) {\n        return dict;\n      }\n      var xref = this.xref;\n      // reading name tree\n      var processed = new RefSet();\n      processed.put(this.root);\n      var queue = [this.root];\n      while (queue.length > 0) {\n        var i, n;\n        var obj = xref.fetchIfRef(queue.shift());\n        if (!isDict(obj)) {\n          continue;\n        }\n        if (obj.has('Kids')) {\n          var kids = obj.get('Kids');\n          for (i = 0, n = kids.length; i < n; i++) {\n            var kid = kids[i];\n            if (processed.has(kid))\n              error('invalid destinations');\n            queue.push(kid);\n            processed.put(kid);\n          }\n          continue;\n        }\n        var names = obj.get('Names');\n        if (names) {\n          for (i = 0, n = names.length; i < n; i += 2) {\n            dict[names[i]] = xref.fetchIfRef(names[i + 1]);\n          }\n        }\n      }\n      return dict;\n    }\n  };\n  return NameTree;\n})();\n\n/**\n * A helper for loading missing data in object graphs. It traverses the graph\n * depth first and queues up any objects that have missing data. Once it has\n * has traversed as many objects that are available it attempts to bundle the\n * missing data requests and then resume from the nodes that weren't ready.\n *\n * NOTE: It provides protection from circular references by keeping track of\n * of loaded references. However, you must be careful not to load any graphs\n * that have references to the catalog or other pages since that will cause the\n * entire PDF document object graph to be traversed.\n */\nvar ObjectLoader = (function() {\n\n  function mayHaveChildren(value) {\n    return isRef(value) || isDict(value) || isArray(value) || isStream(value);\n  }\n\n  function addChildren(node, nodesToVisit) {\n    if (isDict(node) || isStream(node)) {\n      var map;\n      if (isDict(node)) {\n        map = node.map;\n      } else {\n        map = node.dict.map;\n      }\n      for (var key in map) {\n        var value = map[key];\n        if (mayHaveChildren(value)) {\n          nodesToVisit.push(value);\n        }\n      }\n    } else if (isArray(node)) {\n      for (var i = 0, ii = node.length; i < ii; i++) {\n        var value = node[i];\n        if (mayHaveChildren(value)) {\n          nodesToVisit.push(value);\n        }\n      }\n    }\n  }\n\n  function ObjectLoader(obj, keys, xref) {\n    this.obj = obj;\n    this.keys = keys;\n    this.xref = xref;\n    this.refSet = null;\n  }\n\n  ObjectLoader.prototype = {\n\n    load: function ObjectLoader_load() {\n      var keys = this.keys;\n      this.promise = new Promise();\n      // Don't walk the graph if all the data is already loaded.\n      if (!(this.xref.stream instanceof ChunkedStream) ||\n          this.xref.stream.getMissingChunks().length === 0) {\n        this.promise.resolve();\n        return this.promise;\n      }\n\n      this.refSet = new RefSet();\n      // Setup the initial nodes to visit.\n      var nodesToVisit = [];\n      for (var i = 0; i < keys.length; i++) {\n        nodesToVisit.push(this.obj[keys[i]]);\n      }\n\n      this.walk(nodesToVisit);\n      return this.promise;\n    },\n\n    walk: function ObjectLoader_walk(nodesToVisit) {\n      var nodesToRevisit = [];\n      var pendingRequests = [];\n      // DFS walk of the object graph.\n      while (nodesToVisit.length) {\n        var currentNode = nodesToVisit.pop();\n\n        // Only references or chunked streams can cause missing data exceptions.\n        if (isRef(currentNode)) {\n          // Skip nodes that have already been visited.\n          if (this.refSet.has(currentNode)) {\n            continue;\n          }\n          try {\n            var ref = currentNode;\n            this.refSet.put(ref);\n            currentNode = this.xref.fetch(currentNode);\n          } catch (e) {\n            if (!(e instanceof MissingDataException)) {\n              throw e;\n            }\n            nodesToRevisit.push(currentNode);\n            pendingRequests.push({ begin: e.begin, end: e.end });\n          }\n        }\n        if (currentNode && currentNode.getBaseStreams) {\n          var baseStreams = currentNode.getBaseStreams();\n          var foundMissingData = false;\n          for (var i = 0; i < baseStreams.length; i++) {\n            var stream = baseStreams[i];\n            if (stream.getMissingChunks && stream.getMissingChunks().length) {\n              foundMissingData = true;\n              pendingRequests.push({\n                begin: stream.start,\n                end: stream.end\n              });\n            }\n          }\n          if (foundMissingData) {\n            nodesToRevisit.push(currentNode);\n          }\n        }\n\n        addChildren(currentNode, nodesToVisit);\n      }\n\n      if (pendingRequests.length) {\n        this.xref.stream.manager.requestRanges(pendingRequests,\n            function pendingRequestCallback() {\n          nodesToVisit = nodesToRevisit;\n          for (var i = 0; i < nodesToRevisit.length; i++) {\n            var node = nodesToRevisit[i];\n            // Remove any reference nodes from the currrent refset so they\n            // aren't skipped when we revist them.\n            if (isRef(node)) {\n              this.refSet.remove(node);\n            }\n          }\n          this.walk(nodesToVisit);\n        }.bind(this));\n        return;\n      }\n      // Everything is loaded.\n      this.refSet = null;\n      this.promise.resolve();\n    }\n\n  };\n\n  return ObjectLoader;\n})();\n\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use strict';\n\nvar ISOAdobeCharset = [\n  '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar',\n  'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright',\n  'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero',\n  'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight',\n  'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question',\n  'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n  'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore',\n  'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',\n  'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',\n  'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent',\n  'sterling', 'fraction', 'yen', 'florin', 'section', 'currency',\n  'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft',\n  'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl',\n  'periodcentered', 'paragraph', 'bullet', 'quotesinglbase',\n  'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis',\n  'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde',\n  'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla',\n  'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine',\n  'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash',\n  'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu',\n  'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter',\n  'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior',\n  'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright',\n  'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde',\n  'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute',\n  'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex',\n  'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex',\n  'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute',\n  'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla',\n  'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex',\n  'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis',\n  'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis',\n  'ugrave', 'yacute', 'ydieresis', 'zcaron'\n];\n\nvar ExpertCharset = [\n  '.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle',\n  'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior',\n  'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma',\n  'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle',\n  'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle',\n  'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle',\n  'colon', 'semicolon', 'commasuperior', 'threequartersemdash',\n  'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior',\n  'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior',\n  'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',\n  'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior',\n  'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall',\n  'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall',\n  'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall',\n  'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall',\n  'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary',\n  'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle',\n  'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall',\n  'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall',\n  'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall',\n  'Cedillasmall', 'onequarter', 'onehalf', 'threequarters',\n  'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths',\n  'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior',\n  'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',\n  'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior',\n  'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior',\n  'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior',\n  'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior',\n  'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall',\n  'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall',\n  'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall',\n  'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall',\n  'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall',\n  'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall',\n  'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall',\n  'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall',\n  'Ydieresissmall'\n];\n\nvar ExpertSubsetCharset = [\n  '.notdef', 'space', 'dollaroldstyle', 'dollarsuperior',\n  'parenleftsuperior', 'parenrightsuperior', 'twodotenleader',\n  'onedotenleader', 'comma', 'hyphen', 'period', 'fraction',\n  'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle',\n  'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle',\n  'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior',\n  'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior',\n  'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior',\n  'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',\n  'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior',\n  'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted',\n  'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter',\n  'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths',\n  'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior',\n  'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',\n  'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior',\n  'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior',\n  'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior',\n  'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior',\n  'periodinferior', 'commainferior'\n];\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals bytesToString, DecryptStream, error, isInt, isName, Name,\n           PasswordException, PasswordResponses, stringToBytes */\n\n'use strict';\n\nvar ARCFourCipher = (function ARCFourCipherClosure() {\n  function ARCFourCipher(key) {\n    this.a = 0;\n    this.b = 0;\n    var s = new Uint8Array(256);\n    var i, j = 0, tmp, keyLength = key.length;\n    for (i = 0; i < 256; ++i)\n      s[i] = i;\n    for (i = 0; i < 256; ++i) {\n      tmp = s[i];\n      j = (j + tmp + key[i % keyLength]) & 0xFF;\n      s[i] = s[j];\n      s[j] = tmp;\n    }\n    this.s = s;\n  }\n\n  ARCFourCipher.prototype = {\n    encryptBlock: function ARCFourCipher_encryptBlock(data) {\n      var i, n = data.length, tmp, tmp2;\n      var a = this.a, b = this.b, s = this.s;\n      var output = new Uint8Array(n);\n      for (i = 0; i < n; ++i) {\n        a = (a + 1) & 0xFF;\n        tmp = s[a];\n        b = (b + tmp) & 0xFF;\n        tmp2 = s[b];\n        s[a] = tmp2;\n        s[b] = tmp;\n        output[i] = data[i] ^ s[(tmp + tmp2) & 0xFF];\n      }\n      this.a = a;\n      this.b = b;\n      return output;\n    }\n  };\n  ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n\n  return ARCFourCipher;\n})();\n\nvar calculateMD5 = (function calculateMD5Closure() {\n  var r = new Uint8Array([\n    7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,\n    5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,\n    4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,\n    6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n\n  var k = new Int32Array([\n    -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,\n    -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,\n    1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,\n    643717713, -373897302, -701558691, 38016083, -660478335, -405537848,\n    568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,\n    1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,\n    -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,\n    -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,\n    -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,\n    -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,\n    -145523070, -1120210379, 718787259, -343485551]);\n\n  function hash(data, offset, length) {\n    var h0 = 1732584193, h1 = -271733879, h2 = -1732584194, h3 = 271733878;\n    // pre-processing\n    var paddedLength = (length + 72) & ~63; // data + 9 extra bytes\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n    for (i = 0; i < length; ++i)\n      padded[i] = data[offset++];\n    padded[i++] = 0x80;\n    n = paddedLength - 8;\n    while (i < n)\n      padded[i++] = 0;\n    padded[i++] = (length << 3) & 0xFF;\n    padded[i++] = (length >> 5) & 0xFF;\n    padded[i++] = (length >> 13) & 0xFF;\n    padded[i++] = (length >> 21) & 0xFF;\n    padded[i++] = (length >>> 29) & 0xFF;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    // chunking\n    // TODO ArrayBuffer ?\n    var w = new Int32Array(16);\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j, i += 4) {\n        w[j] = (padded[i] | (padded[i + 1] << 8) |\n                (padded[i + 2] << 16) | (padded[i + 3] << 24));\n      }\n      var a = h0, b = h1, c = h2, d = h3, f, g;\n      for (j = 0; j < 64; ++j) {\n        if (j < 16) {\n          f = (b & c) | ((~b) & d);\n          g = j;\n        } else if (j < 32) {\n          f = (d & b) | ((~d) & c);\n          g = (5 * j + 1) & 15;\n        } else if (j < 48) {\n          f = b ^ c ^ d;\n          g = (3 * j + 5) & 15;\n        } else {\n          f = c ^ (b | (~d));\n          g = (7 * j) & 15;\n        }\n        var tmp = d, rotateArg = (a + f + k[j] + w[g]) | 0, rotate = r[j];\n        d = c;\n        c = b;\n        b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;\n        a = tmp;\n      }\n      h0 = (h0 + a) | 0;\n      h1 = (h1 + b) | 0;\n      h2 = (h2 + c) | 0;\n      h3 = (h3 + d) | 0;\n    }\n    return new Uint8Array([\n        h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n        h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n        h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n        h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF\n    ]);\n  }\n  return hash;\n})();\n\nvar NullCipher = (function NullCipherClosure() {\n  function NullCipher() {\n  }\n\n  NullCipher.prototype = {\n    decryptBlock: function NullCipher_decryptBlock(data) {\n      return data;\n    }\n  };\n\n  return NullCipher;\n})();\n\nvar AES128Cipher = (function AES128CipherClosure() {\n  var rcon = new Uint8Array([\n    0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n    0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n    0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n    0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n    0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n    0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,\n    0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,\n    0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,\n    0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,\n    0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,\n    0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,\n    0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,\n    0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,\n    0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,\n    0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,\n    0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,\n    0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,\n    0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n    0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n    0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n    0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n    0x74, 0xe8, 0xcb, 0x8d]);\n\n  var s = new Uint8Array([\n    0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,\n    0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,\n    0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,\n    0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n    0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,\n    0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,\n    0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,\n    0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n    0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,\n    0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,\n    0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,\n    0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n    0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,\n    0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,\n    0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,\n    0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n    0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,\n    0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,\n    0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,\n    0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n    0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,\n    0xb0, 0x54, 0xbb, 0x16]);\n\n  var inv_s = new Uint8Array([\n    0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,\n    0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,\n    0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,\n    0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n    0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,\n    0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,\n    0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,\n    0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n    0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,\n    0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,\n    0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,\n    0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n    0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,\n    0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,\n    0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,\n    0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n    0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,\n    0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,\n    0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,\n    0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n    0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,\n    0x55, 0x21, 0x0c, 0x7d]);\n\n  var mix = new Uint32Array([\n    0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,\n    0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,\n    0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,\n    0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,\n    0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,\n    0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,\n    0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,\n    0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,\n    0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,\n    0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,\n    0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,\n    0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,\n    0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,\n    0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,\n    0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,\n    0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,\n    0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,\n    0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,\n    0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,\n    0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,\n    0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,\n    0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,\n    0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,\n    0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,\n    0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,\n    0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,\n    0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,\n    0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,\n    0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,\n    0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,\n    0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,\n    0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,\n    0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,\n    0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,\n    0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,\n    0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,\n    0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,\n    0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,\n    0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,\n    0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,\n    0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,\n    0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,\n    0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n\n  function expandKey128(cipherKey) {\n    var b = 176, result = new Uint8Array(b);\n    result.set(cipherKey);\n    for (var j = 16, i = 1; j < b; ++i) {\n      // RotWord\n      var t1 = result[j - 3], t2 = result[j - 2],\n          t3 = result[j - 1], t4 = result[j - 4];\n      // SubWord\n      t1 = s[t1]; t2 = s[t2]; t3 = s[t3]; t4 = s[t4];\n      // Rcon\n      t1 = t1 ^ rcon[i];\n      for (var n = 0; n < 4; ++n) {\n        result[j] = (t1 ^= result[j - 16]); j++;\n        result[j] = (t2 ^= result[j - 16]); j++;\n        result[j] = (t3 ^= result[j - 16]); j++;\n        result[j] = (t4 ^= result[j - 16]); j++;\n      }\n    }\n    return result;\n  }\n\n  function decrypt128(input, key) {\n    var state = new Uint8Array(16);\n    state.set(input);\n    var i, j, k;\n    var t, u, v;\n    // AddRoundKey\n    for (j = 0, k = 160; j < 16; ++j, ++k)\n      state[j] ^= key[k];\n    for (i = 9; i >= 1; --i) {\n      // InvShiftRows\n      t = state[13]; state[13] = state[9]; state[9] = state[5];\n      state[5] = state[1]; state[1] = t;\n      t = state[14]; u = state[10]; state[14] = state[6];\n      state[10] = state[2]; state[6] = t; state[2] = u;\n      t = state[15]; u = state[11]; v = state[7]; state[15] = state[3];\n      state[11] = t; state[7] = u; state[3] = v;\n      // InvSubBytes\n      for (j = 0; j < 16; ++j)\n        state[j] = inv_s[state[j]];\n      // AddRoundKey\n      for (j = 0, k = i * 16; j < 16; ++j, ++k)\n        state[j] ^= key[k];\n      // InvMixColumns\n      for (j = 0; j < 16; j += 4) {\n        var s0 = mix[state[j]], s1 = mix[state[j + 1]],\n            s2 = mix[state[j + 2]], s3 = mix[state[j + 3]];\n        t = (s0 ^ (s1 >>> 8) ^ (s1 << 24) ^ (s2 >>> 16) ^ (s2 << 16) ^\n            (s3 >>> 24) ^ (s3 << 8));\n        state[j] = (t >>> 24) & 0xFF;\n        state[j + 1] = (t >> 16) & 0xFF;\n        state[j + 2] = (t >> 8) & 0xFF;\n        state[j + 3] = t & 0xFF;\n      }\n    }\n    // InvShiftRows\n    t = state[13]; state[13] = state[9]; state[9] = state[5];\n    state[5] = state[1]; state[1] = t;\n    t = state[14]; u = state[10]; state[14] = state[6];\n    state[10] = state[2]; state[6] = t; state[2] = u;\n    t = state[15]; u = state[11]; v = state[7]; state[15] = state[3];\n    state[11] = t; state[7] = u; state[3] = v;\n    for (j = 0; j < 16; ++j) {\n      // InvSubBytes\n      state[j] = inv_s[state[j]];\n      // AddRoundKey\n      state[j] ^= key[j];\n    }\n    return state;\n  }\n\n  function AES128Cipher(key) {\n    this.key = expandKey128(key);\n    this.buffer = new Uint8Array(16);\n    this.bufferPosition = 0;\n  }\n\n  function decryptBlock2(data, finalize) {\n    var i, j, ii, sourceLength = data.length,\n        buffer = this.buffer, bufferLength = this.bufferPosition,\n        result = [], iv = this.iv;\n    for (i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n      if (bufferLength < 16)\n        continue;\n      // buffer is full, decrypting\n      var plain = decrypt128(buffer, this.key);\n      // xor-ing the IV vector to get plain text\n      for (j = 0; j < 16; ++j)\n        plain[j] ^= iv[j];\n      iv = buffer;\n      result.push(plain);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n    // saving incomplete buffer\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n    if (result.length === 0) {\n      return new Uint8Array([]);\n    }\n    // combining plain text blocks into one\n    var outputLength = 16 * result.length;\n    if (finalize) {\n      // undo a padding that is described in RFC 2898\n      var lastBlock = result[result.length - 1];\n      outputLength -= lastBlock[15];\n      result[result.length - 1] = lastBlock.subarray(0, 16 - lastBlock[15]);\n    }\n    var output = new Uint8Array(outputLength);\n    for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16)\n      output.set(result[i], j);\n    return output;\n  }\n\n  AES128Cipher.prototype = {\n    decryptBlock: function AES128Cipher_decryptBlock(data, finalize) {\n      var i, sourceLength = data.length;\n      var buffer = this.buffer, bufferLength = this.bufferPosition;\n      // waiting for IV values -- they are at the start of the stream\n      for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength)\n        buffer[bufferLength] = data[i];\n      if (bufferLength < 16) {\n        // need more data\n        this.bufferLength = bufferLength;\n        return new Uint8Array([]);\n      }\n      this.iv = buffer;\n      this.buffer = new Uint8Array(16);\n      this.bufferLength = 0;\n      // starting decryption\n      this.decryptBlock = decryptBlock2;\n      return this.decryptBlock(data.subarray(16), finalize);\n    }\n  };\n\n  return AES128Cipher;\n})();\n\nvar CipherTransform = (function CipherTransformClosure() {\n  function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n    this.stringCipherConstructor = stringCipherConstructor;\n    this.streamCipherConstructor = streamCipherConstructor;\n  }\n  CipherTransform.prototype = {\n    createStream: function CipherTransform_createStream(stream) {\n      var cipher = new this.streamCipherConstructor();\n      return new DecryptStream(stream,\n        function cipherTransformDecryptStream(data, finalize) {\n          return cipher.decryptBlock(data, finalize);\n        }\n      );\n    },\n    decryptString: function CipherTransform_decryptString(s) {\n      var cipher = new this.stringCipherConstructor();\n      var data = stringToBytes(s);\n      data = cipher.decryptBlock(data, true);\n      return bytesToString(data);\n    }\n  };\n  return CipherTransform;\n})();\n\nvar CipherTransformFactory = (function CipherTransformFactoryClosure() {\n  var defaultPasswordBytes = new Uint8Array([\n    0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41,\n    0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08,\n    0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80,\n    0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n\n  function prepareKeyData(fileId, password, ownerPassword, userPassword,\n                          flags, revision, keyLength, encryptMetadata) {\n    var hashDataSize = 40 + ownerPassword.length + fileId.length;\n    var hashData = new Uint8Array(hashDataSize), i = 0, j, n;\n    if (password) {\n      n = Math.min(32, password.length);\n      for (; i < n; ++i)\n        hashData[i] = password[i];\n    }\n    j = 0;\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n    // as now the padded password in the hashData[0..i]\n    for (j = 0, n = ownerPassword.length; j < n; ++j)\n      hashData[i++] = ownerPassword[j];\n    hashData[i++] = flags & 0xFF;\n    hashData[i++] = (flags >> 8) & 0xFF;\n    hashData[i++] = (flags >> 16) & 0xFF;\n    hashData[i++] = (flags >>> 24) & 0xFF;\n    for (j = 0, n = fileId.length; j < n; ++j)\n      hashData[i++] = fileId[j];\n    if (revision >= 4 && !encryptMetadata) {\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n    }\n    var hash = calculateMD5(hashData, 0, i);\n    var keyLengthInBytes = keyLength >> 3;\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n         hash = calculateMD5(hash, 0, keyLengthInBytes);\n      }\n    }\n    var encryptionKey = hash.subarray(0, keyLengthInBytes);\n    var cipher, checkData;\n\n    if (revision >= 3) {\n      for (i = 0; i < 32; ++i)\n        hashData[i] = defaultPasswordBytes[i];\n      for (j = 0, n = fileId.length; j < n; ++j)\n        hashData[i++] = fileId[j];\n      cipher = new ARCFourCipher(encryptionKey);\n      var checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n      n = encryptionKey.length;\n      var derivedKey = new Uint8Array(n), k;\n      for (j = 1; j <= 19; ++j) {\n        for (k = 0; k < n; ++k)\n          derivedKey[k] = encryptionKey[k] ^ j;\n        cipher = new ARCFourCipher(derivedKey);\n        checkData = cipher.encryptBlock(checkData);\n      }\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] != checkData[j])\n          return null;\n      }\n    } else {\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(defaultPasswordBytes);\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] != checkData[j])\n          return null;\n      }\n    }\n    return encryptionKey;\n  }\n  function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n    var hashData = new Uint8Array(32), i = 0, j, n;\n    n = Math.min(32, password.length);\n    for (; i < n; ++i)\n      hashData[i] = password[i];\n    j = 0;\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n    var hash = calculateMD5(hashData, 0, i);\n    var keyLengthInBytes = keyLength >> 3;\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n         hash = calculateMD5(hash, 0, hash.length);\n      }\n    }\n\n    var cipher, userPassword;\n    if (revision >= 3) {\n      userPassword = ownerPassword;\n      var derivedKey = new Uint8Array(keyLengthInBytes), k;\n      for (j = 19; j >= 0; j--) {\n        for (k = 0; k < keyLengthInBytes; ++k)\n          derivedKey[k] = hash[k] ^ j;\n        cipher = new ARCFourCipher(derivedKey);\n        userPassword = cipher.encryptBlock(userPassword);\n      }\n    } else {\n      cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n      userPassword = cipher.encryptBlock(ownerPassword);\n    }\n    return userPassword;\n  }\n\n  var identityName = new Name('Identity');\n\n  function CipherTransformFactory(dict, fileId, password) {\n    var filter = dict.get('Filter');\n    if (!isName(filter) || filter.name != 'Standard')\n      error('Error: unknown encryption method');\n    this.dict = dict;\n    var algorithm = dict.get('V');\n    if (!isInt(algorithm) ||\n      (algorithm != 1 && algorithm != 2 && algorithm != 4))\n      error('Error: unsupported encryption algorithm');\n    this.algorithm = algorithm;\n    var keyLength = dict.get('Length') || 40;\n    if (!isInt(keyLength) ||\n      keyLength < 40 || (keyLength % 8) !== 0)\n      error('Error: invalid key length');\n    // prepare keys\n    var ownerPassword = stringToBytes(dict.get('O')).subarray(0, 32);\n    var userPassword = stringToBytes(dict.get('U')).subarray(0, 32);\n    var flags = dict.get('P');\n    var revision = dict.get('R');\n    var encryptMetadata = algorithm == 4 &&  // meaningful when V is 4\n      dict.get('EncryptMetadata') !== false; // makes true as default value\n    this.encryptMetadata = encryptMetadata;\n\n    var fileIdBytes = stringToBytes(fileId);\n    var passwordBytes;\n    if (password)\n      passwordBytes = stringToBytes(password);\n\n    var encryptionKey = prepareKeyData(fileIdBytes, passwordBytes,\n                                       ownerPassword, userPassword, flags,\n                                       revision, keyLength, encryptMetadata);\n    if (!encryptionKey && !password) {\n      throw new PasswordException('No password given',\n                                  PasswordResponses.NEED_PASSWORD);\n    } else if (!encryptionKey && password) {\n      // Attempting use the password as an owner password\n      var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword,\n                                               revision, keyLength);\n      encryptionKey = prepareKeyData(fileIdBytes, decodedPassword,\n                                     ownerPassword, userPassword, flags,\n                                     revision, keyLength, encryptMetadata);\n    }\n\n    if (!encryptionKey)\n      throw new PasswordException('Incorrect Password',\n                                  PasswordResponses.INCORRECT_PASSWORD);\n\n    this.encryptionKey = encryptionKey;\n\n    if (algorithm == 4) {\n      this.cf = dict.get('CF');\n      this.stmf = dict.get('StmF') || identityName;\n      this.strf = dict.get('StrF') || identityName;\n      this.eff = dict.get('EFF') || this.strf;\n    }\n  }\n\n  function buildObjectKey(num, gen, encryptionKey, isAes) {\n    var key = new Uint8Array(encryptionKey.length + 9), i, n;\n    for (i = 0, n = encryptionKey.length; i < n; ++i)\n      key[i] = encryptionKey[i];\n    key[i++] = num & 0xFF;\n    key[i++] = (num >> 8) & 0xFF;\n    key[i++] = (num >> 16) & 0xFF;\n    key[i++] = gen & 0xFF;\n    key[i++] = (gen >> 8) & 0xFF;\n    if (isAes) {\n      key[i++] = 0x73;\n      key[i++] = 0x41;\n      key[i++] = 0x6C;\n      key[i++] = 0x54;\n    }\n    var hash = calculateMD5(key, 0, i);\n    return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n  }\n\n  function buildCipherConstructor(cf, name, num, gen, key) {\n    var cryptFilter = cf.get(name.name);\n    var cfm;\n    if (cryptFilter !== null && cryptFilter !== undefined)\n      cfm = cryptFilter.get('CFM');\n    if (!cfm || cfm.name == 'None') {\n      return function cipherTransformFactoryBuildCipherConstructorNone() {\n        return new NullCipher();\n      };\n    }\n    if ('V2' == cfm.name) {\n      return function cipherTransformFactoryBuildCipherConstructorV2() {\n        return new ARCFourCipher(\n          buildObjectKey(num, gen, key, false));\n      };\n    }\n    if ('AESV2' == cfm.name) {\n      return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n        return new AES128Cipher(\n          buildObjectKey(num, gen, key, true));\n      };\n    }\n    error('Unknown crypto method');\n  }\n\n  CipherTransformFactory.prototype = {\n    createCipherTransform:\n      function CipherTransformFactory_createCipherTransform(num, gen) {\n      if (this.algorithm == 4) {\n        return new CipherTransform(\n          buildCipherConstructor(this.cf, this.stmf,\n            num, gen, this.encryptionKey),\n          buildCipherConstructor(this.cf, this.strf,\n            num, gen, this.encryptionKey));\n      }\n      // algorithms 1 and 2\n      var key = buildObjectKey(num, gen, this.encryptionKey, false);\n      var cipherConstructor = function buildCipherCipherConstructor() {\n        return new ARCFourCipher(key);\n      };\n      return new CipherTransform(cipherConstructor, cipherConstructor);\n    }\n  };\n\n  return CipherTransformFactory;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals assert, assertWellFormed, ColorSpace, Dict, Encodings, error,\n           ErrorFont, Font, FONT_IDENTITY_MATRIX, fontCharsToUnicode, FontFlags,\n           info, isArray, isCmd, isDict, isEOF, isName, isNum,\n           isStream, isString, JpegStream, Lexer, Metrics, Name, Parser,\n           Pattern, PDFImage, PDFJS, serifFonts, stdFontMap, symbolsFonts,\n           TilingPattern, TODO, warn, Util, Promise,\n           RefSetCache, isRef, TextRenderingMode, CMapFactory, OPS */\n\n'use strict';\n\nvar PartialEvaluator = (function PartialEvaluatorClosure() {\n  function PartialEvaluator(pdfManager, xref, handler, pageIndex,\n                            uniquePrefix, idCounters, fontCache) {\n    this.state = new EvalState();\n    this.stateStack = [];\n\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this.handler = handler;\n    this.pageIndex = pageIndex;\n    this.uniquePrefix = uniquePrefix;\n    this.idCounters = idCounters;\n    this.fontCache = fontCache;\n  }\n\n  // Specifies properties for each command\n  //\n  // If variableArgs === true: [0, `numArgs`] expected\n  // If variableArgs === false: exactly `numArgs` expected\n  var OP_MAP = {\n    // Graphic state\n    w: { id: OPS.setLineWidth, numArgs: 1, variableArgs: false },\n    J: { id: OPS.setLineCap, numArgs: 1, variableArgs: false },\n    j: { id: OPS.setLineJoin, numArgs: 1, variableArgs: false },\n    M: { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false },\n    d: { id: OPS.setDash, numArgs: 2, variableArgs: false },\n    ri: { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false },\n    i: { id: OPS.setFlatness, numArgs: 1, variableArgs: false },\n    gs: { id: OPS.setGState, numArgs: 1, variableArgs: false },\n    q: { id: OPS.save, numArgs: 0, variableArgs: false },\n    Q: { id: OPS.restore, numArgs: 0, variableArgs: false },\n    cm: { id: OPS.transform, numArgs: 6, variableArgs: false },\n\n    // Path\n    m: { id: OPS.moveTo, numArgs: 2, variableArgs: false },\n    l: { id: OPS.lineTo, numArgs: 2, variableArgs: false },\n    c: { id: OPS.curveTo, numArgs: 6, variableArgs: false },\n    v: { id: OPS.curveTo2, numArgs: 4, variableArgs: false },\n    y: { id: OPS.curveTo3, numArgs: 4, variableArgs: false },\n    h: { id: OPS.closePath, numArgs: 0, variableArgs: false },\n    re: { id: OPS.rectangle, numArgs: 4, variableArgs: false },\n    S: { id: OPS.stroke, numArgs: 0, variableArgs: false },\n    s: { id: OPS.closeStroke, numArgs: 0, variableArgs: false },\n    f: { id: OPS.fill, numArgs: 0, variableArgs: false },\n    F: { id: OPS.fill, numArgs: 0, variableArgs: false },\n    'f*': { id: OPS.eoFill, numArgs: 0, variableArgs: false },\n    B: { id: OPS.fillStroke, numArgs: 0, variableArgs: false },\n    'B*': { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false },\n    b: { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false },\n    'b*': { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false },\n    n: { id: OPS.endPath, numArgs: 0, variableArgs: false },\n\n    // Clipping\n    W: { id: OPS.clip, numArgs: 0, variableArgs: false },\n    'W*': { id: OPS.eoClip, numArgs: 0, variableArgs: false },\n\n    // Text\n    BT: { id: OPS.beginText, numArgs: 0, variableArgs: false },\n    ET: { id: OPS.endText, numArgs: 0, variableArgs: false },\n    Tc: { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false },\n    Tw: { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false },\n    Tz: { id: OPS.setHScale, numArgs: 1, variableArgs: false },\n    TL: { id: OPS.setLeading, numArgs: 1, variableArgs: false },\n    Tf: { id: OPS.setFont, numArgs: 2, variableArgs: false },\n    Tr: { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false },\n    Ts: { id: OPS.setTextRise, numArgs: 1, variableArgs: false },\n    Td: { id: OPS.moveText, numArgs: 2, variableArgs: false },\n    TD: { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false },\n    Tm: { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false },\n    'T*': { id: OPS.nextLine, numArgs: 0, variableArgs: false },\n    Tj: { id: OPS.showText, numArgs: 1, variableArgs: false },\n    TJ: { id: OPS.showSpacedText, numArgs: 1, variableArgs: false },\n    '\\'': { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false },\n    '\"': { id: OPS.nextLineSetSpacingShowText, numArgs: 3,\n      variableArgs: false },\n\n    // Type3 fonts\n    d0: { id: OPS.setCharWidth, numArgs: 2, variableArgs: false },\n    d1: { id: OPS.setCharWidthAndBounds, numArgs: 6, variableArgs: false },\n\n    // Color\n    CS: { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false },\n    cs: { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false },\n    SC: { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true },\n    SCN: { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true },\n    sc: { id: OPS.setFillColor, numArgs: 4, variableArgs: true },\n    scn: { id: OPS.setFillColorN, numArgs: 33, variableArgs: true },\n    G: { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false },\n    g: { id: OPS.setFillGray, numArgs: 1, variableArgs: false },\n    RG: { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false },\n    rg: { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false },\n    K: { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false },\n    k: { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false },\n\n    // Shading\n    sh: { id: OPS.shadingFill, numArgs: 1, variableArgs: false },\n\n    // Images\n    BI: { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false },\n    ID: { id: OPS.beginImageData, numArgs: 0, variableArgs: false },\n    EI: { id: OPS.endInlineImage, numArgs: 1, variableArgs: false },\n\n    // XObjects\n    Do: { id: OPS.paintXObject, numArgs: 1, variableArgs: false },\n    MP: { id: OPS.markPoint, numArgs: 1, variableArgs: false },\n    DP: { id: OPS.markPointProps, numArgs: 2, variableArgs: false },\n    BMC: { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false },\n    BDC: { id: OPS.beginMarkedContentProps, numArgs: 2,\n      variableArgs: false },\n    EMC: { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false },\n\n    // Compatibility\n    BX: { id: OPS.beginCompat, numArgs: 0, variableArgs: false },\n    EX: { id: OPS.endCompat, numArgs: 0, variableArgs: false },\n\n    // (reserved partial commands for the lexer)\n    BM: null,\n    BD: null,\n    'true': null,\n    fa: null,\n    fal: null,\n    fals: null,\n    'false': null,\n    nu: null,\n    nul: null,\n    'null': null\n  };\n\n  var TILING_PATTERN = 1, SHADING_PATTERN = 2;\n\n  PartialEvaluator.prototype = {\n    hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n      if (!isDict(resources)) {\n        return false;\n      }\n\n      var nodes = [resources];\n      while (nodes.length) {\n        var node = nodes.shift();\n        // First check the current resources for blend modes.\n        var graphicStates = node.get('ExtGState');\n        if (isDict(graphicStates)) {\n          graphicStates = graphicStates.getAll();\n          for (var key in graphicStates) {\n            var graphicState = graphicStates[key];\n            var bm = graphicState['BM'];\n            if (isName(bm) && bm.name !== 'Normal') {\n              return true;\n            }\n          }\n        }\n        // Descend into the XObjects to look for more resources and blend modes.\n        var xObjects = node.get('XObject');\n        if (!isDict(xObjects)) {\n          continue;\n        }\n        xObjects = xObjects.getAll();\n        for (var key in xObjects) {\n          var xObject = xObjects[key];\n          if (!isStream(xObject)) {\n            continue;\n          }\n          var xResources = xObject.dict.get('Resources');\n          if (\n            isDict(xResources) && \n            xResources !== node && \n            nodes.indexOf(xResources) < 0\n          ) {\n            nodes.push(xResources);\n          }\n        }\n      }\n      return false;\n    },\n\n    buildFormXObject: function PartialEvaluator_buildFormXObject(resources,\n                                                                 xobj, smask,\n                                                                 operatorList) {\n      var self = this;\n\n      var matrix = xobj.dict.get('Matrix');\n      var bbox = xobj.dict.get('BBox');\n      var group = xobj.dict.get('Group');\n      if (group) {\n        var groupOptions = {\n          matrix: matrix,\n          bbox: bbox,\n          smask: !!smask,\n          isolated: false,\n          knockout: false\n        };\n\n        var groupSubtype = group.get('S');\n        if (isName(groupSubtype) && groupSubtype.name === 'Transparency') {\n          groupOptions.isolated = group.get('I') || false;\n          groupOptions.knockout = group.get('K') || false;\n          // There is also a group colorspace, but since we put everything in\n          // RGB I'm not sure we need it.\n        }\n        operatorList.addOp(OPS.beginGroup, [groupOptions]);\n      }\n\n      operatorList.addOp(OPS.paintFormXObjectBegin, [matrix, bbox]);\n\n      this.getOperatorList(xobj, xobj.dict.get('Resources') || resources,\n                           operatorList);\n      operatorList.addOp(OPS.paintFormXObjectEnd, []);\n\n      if (group) {\n        operatorList.addOp(OPS.endGroup, [groupOptions]);\n      }\n    },\n\n    buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(\n                                resources, image, inline, operatorList) {\n      var self = this;\n      var dict = image.dict;\n      var w = dict.get('Width', 'W');\n      var h = dict.get('Height', 'H');\n\n      if (PDFJS.maxImageSize !== -1 && w * h > PDFJS.maxImageSize) {\n        warn('Image exceeded maximum allowed size and was removed.');\n        return;\n      }\n\n      var imageMask = dict.get('ImageMask', 'IM') || false;\n      if (imageMask) {\n        // This depends on a tmpCanvas beeing filled with the\n        // current fillStyle, such that processing the pixel\n        // data can't be done here. Instead of creating a\n        // complete PDFImage, only read the information needed\n        // for later.\n\n        var width = dict.get('Width', 'W');\n        var height = dict.get('Height', 'H');\n        var bitStrideLength = (width + 7) >> 3;\n        var imgArray = image.getBytes(bitStrideLength * height);\n        var decode = dict.get('Decode', 'D');\n        var inverseDecode = !!decode && decode[0] > 0;\n\n        operatorList.addOp(OPS.paintImageMaskXObject,\n          [PDFImage.createMask(imgArray, width, height,\n                                            inverseDecode)]\n        );\n        return;\n      }\n\n      var softMask = dict.get('SMask', 'SM') || false;\n      var mask = dict.get('Mask') || false;\n\n      var SMALL_IMAGE_DIMENSIONS = 200;\n      // Inlining small images into the queue as RGB data\n      if (inline && !softMask && !mask &&\n          !(image instanceof JpegStream) &&\n          (w + h) < SMALL_IMAGE_DIMENSIONS) {\n        var imageObj = new PDFImage(this.xref, resources, image,\n                                    inline, null, null);\n        var imgData = imageObj.getImageData();\n        operatorList.addOp(OPS.paintInlineImageXObject, [imgData]);\n        return;\n      }\n\n      // If there is no imageMask, create the PDFImage and a lot\n      // of image processing can be done here.\n      var uniquePrefix = this.uniquePrefix || '';\n      var objId = 'img_' + uniquePrefix + (++this.idCounters.obj);\n      operatorList.addDependency(objId);\n      var args = [objId, w, h];\n\n      if (!softMask && !mask && image instanceof JpegStream &&\n          image.isNativelySupported(this.xref, resources)) {\n        // These JPEGs don't need any more processing so we can just send it.\n        operatorList.addOp(OPS.paintJpegXObject, args);\n        this.handler.send(\n            'obj', [objId, this.pageIndex, 'JpegStream', image.getIR()]);\n        return;\n      }\n\n\n      PDFImage.buildImage(function(imageObj) {\n          var imgData = imageObj.getImageData();\n          self.handler.send('obj', [objId, self.pageIndex, 'Image', imgData],\n                            null, [imgData.data.buffer]);\n        }, self.handler, self.xref, resources, image, inline);\n\n      operatorList.addOp(OPS.paintImageXObject, args);\n    },\n\n    handleTilingType: function PartialEvaluator_handleTilingType(\n                          fn, args, resources, pattern, patternDict,\n                          operatorList) {\n      // Create an IR of the pattern code.\n      var tilingOpList = this.getOperatorList(pattern,\n                                  patternDict.get('Resources') || resources);\n      // Add the dependencies to the parent operator list so they are resolved\n      // before sub operator list is executed synchronously.\n      operatorList.addDependencies(tilingOpList.dependencies);\n      operatorList.addOp(fn, TilingPattern.getIR({\n                               fnArray: tilingOpList.fnArray,\n                               argsArray: tilingOpList.argsArray\n                              }, patternDict, args));\n    },\n\n    handleSetFont: function PartialEvaluator_handleSetFont(\n                      resources, fontArgs, fontRef, operatorList) {\n\n      // TODO(mack): Not needed?\n      var fontName;\n      if (fontArgs) {\n        fontArgs = fontArgs.slice();\n        fontName = fontArgs[0].name;\n      }\n      var self = this;\n      var font = this.loadFont(fontName, fontRef, this.xref, resources,\n                               operatorList);\n      this.state.font = font;\n      var loadedName = font.loadedName;\n      if (!font.sent) {\n        var fontData = font.translated.exportData();\n\n        self.handler.send('commonobj', [\n          loadedName,\n          'Font',\n          fontData\n        ]);\n        font.sent = true;\n      }\n\n      return loadedName;\n    },\n\n    handleText: function PartialEvaluator_handleText(chars) {\n      var font = this.state.font.translated;\n      var glyphs = font.charsToGlyphs(chars);\n      var isAddToPathSet = !!(this.state.textRenderingMode &\n                              TextRenderingMode.ADD_TO_PATH_FLAG);\n      if (font.data && (isAddToPathSet || PDFJS.disableFontFace)) {\n        for (var i = 0; i < glyphs.length; i++) {\n          if (glyphs[i] === null) {\n            continue;\n          }\n          var fontChar = glyphs[i].fontChar;\n          if (!font.renderer.hasBuiltPath(fontChar)) {\n            var path = font.renderer.getPathJs(fontChar);\n            this.handler.send('commonobj', [\n              font.loadedName + '_path_' + fontChar,\n              'FontPath',\n              path\n            ]);\n          }\n        }\n      }\n\n      return glyphs;\n    },\n\n    setGState: function PartialEvaluator_setGState(resources, gState,\n                                                   operatorList) {\n\n      var self = this;\n      // TODO(mack): This should be rewritten so that this function returns\n      // what should be added to the queue during each iteration\n      function setGStateForKey(gStateObj, key, value) {\n        switch (key) {\n          case 'Type':\n            break;\n          case 'LW':\n          case 'LC':\n          case 'LJ':\n          case 'ML':\n          case 'D':\n          case 'RI':\n          case 'FL':\n          case 'CA':\n          case 'ca':\n            gStateObj.push([key, value]);\n            break;\n          case 'Font':\n            var loadedName = self.handleSetFont(resources, null, value[0],\n                                                operatorList);\n            operatorList.addDependency(loadedName);\n            gStateObj.push([key, [loadedName, value[1]]]);\n            break;\n          case 'BM':\n            gStateObj.push([key, value]);\n            break;\n          case 'SMask':\n            // We support the default so don't trigger the TODO.\n            if (!isName(value) || value.name != 'None')\n              TODO('graphic state operator ' + key);\n            break;\n          // Only generate info log messages for the following since\n          // they are unlikey to have a big impact on the rendering.\n          case 'OP':\n          case 'op':\n          case 'OPM':\n          case 'BG':\n          case 'BG2':\n          case 'UCR':\n          case 'UCR2':\n          case 'TR':\n          case 'TR2':\n          case 'HT':\n          case 'SM':\n          case 'SA':\n          case 'AIS':\n          case 'TK':\n            // TODO implement these operators.\n            info('graphic state operator ' + key);\n            break;\n          default:\n            info('Unknown graphic state operator ' + key);\n            break;\n        }\n      }\n\n      // This array holds the converted/processed state data.\n      var gStateObj = [];\n      var gStateMap = gState.map;\n      for (var key in gStateMap) {\n        var value = gStateMap[key];\n        setGStateForKey(gStateObj, key, value);\n      }\n\n      operatorList.addOp(OPS.setGState, [gStateObj]);\n    },\n\n    loadFont: function PartialEvaluator_loadFont(fontName, font, xref,\n                                                 resources,\n                                                 parentOperatorList) {\n\n      function errorFont() {\n        return {\n          translated: new ErrorFont('Font ' + fontName + ' is not available'),\n          loadedName: 'g_font_error'\n        };\n      }\n\n      var fontRef;\n      if (font) { // Loading by ref.\n        assert(isRef(font));\n        fontRef = font;\n      } else { // Loading by name.\n        var fontRes = resources.get('Font');\n        if (fontRes) {\n          fontRef = fontRes.getRaw(fontName);\n        } else {\n//MQZ Dec.03.2013 We don't load load Font, disable the warning for now\n//            warn('fontRes not available');\n          return errorFont();\n        }\n      }\n      if (this.fontCache.has(fontRef)) {\n        return this.fontCache.get(fontRef);\n      }\n\n\n      font = xref.fetchIfRef(fontRef);\n      if (!isDict(font)) {\n        return errorFont();\n      }\n      this.fontCache.put(fontRef, font);\n\n      // keep track of each font we translated so the caller can\n      // load them asynchronously before calling display on a page\n      font.loadedName = 'g_font_' + fontRef.num + '_' + fontRef.gen;\n\n      if (!font.translated) {\n        var translated;\n        try {\n          translated = this.translateFont(font, xref);\n        } catch (e) {\n          translated = new ErrorFont(e instanceof Error ? e.message : e);\n        }\n        font.translated = translated;\n      }\n\n      if (font.translated.loadCharProcs) {\n        var charProcs = font.get('CharProcs').getAll();\n        var fontResources = font.get('Resources') || resources;\n        var charProcKeys = Object.keys(charProcs);\n        var charProcOperatorList = {};\n        for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n          var key = charProcKeys[i];\n          var glyphStream = charProcs[key];\n          var operatorList = this.getOperatorList(glyphStream, fontResources);\n          charProcOperatorList[key] = operatorList.getIR();\n          if (!parentOperatorList) {\n            continue;\n          }\n          // Add the dependencies to the parent operator list so they are\n          // resolved before sub operator list is executed synchronously.\n          parentOperatorList.addDependencies(charProcOperatorList.dependencies);\n        }\n        font.translated.charProcOperatorList = charProcOperatorList;\n        font.loaded = true;\n      } else {\n        font.loaded = true;\n      }\n      return font;\n    },\n\n    getOperatorList: function PartialEvaluator_getOperatorList(stream,\n                                                               resources,\n                                                               operatorList) {\n\n      var self = this;\n      var xref = this.xref;\n      var handler = this.handler;\n\n      operatorList = operatorList || new OperatorList();\n\n      resources = resources || new Dict();\n      var xobjs = resources.get('XObject') || new Dict();\n      var patterns = resources.get('Pattern') || new Dict();\n      // TODO(mduan): pass array of knownCommands rather than OP_MAP\n      // dictionary\n      var parser = new Parser(new Lexer(stream, OP_MAP), false, xref);\n\n      var promise = new Promise();\n      var args = [];\n      while (true) {\n\n        var obj = parser.getObj();\n\n        if (isEOF(obj)) {\n          break;\n        }\n\n        if (isCmd(obj)) {\n          var cmd = obj.cmd;\n\n          // Check that the command is valid\n          var opSpec = OP_MAP[cmd];\n          if (!opSpec) {\n            warn('Unknown command \"' + cmd + '\"');\n            continue;\n          }\n\n          var fn = opSpec.id;\n\n          // Validate the number of arguments for the command\n          if (opSpec.variableArgs) {\n            if (args.length > opSpec.numArgs) {\n              info('Command ' + fn + ': expected [0,' + opSpec.numArgs +\n                  '] args, but received ' + args.length + ' args');\n            }\n          } else {\n            if (args.length < opSpec.numArgs) {\n              // If we receive too few args, it's not possible to possible\n              // to execute the command, so skip the command\n              info('Command ' + fn + ': because expected ' +\n                   opSpec.numArgs + ' args, but received ' + args.length +\n                   ' args; skipping');\n              args = [];\n              continue;\n            } else if (args.length > opSpec.numArgs) {\n              info('Command ' + fn + ': expected ' + opSpec.numArgs +\n                  ' args, but received ' + args.length + ' args');\n            }\n          }\n\n          // TODO figure out how to type-check vararg functions\n\n          switch (fn) {\n            case OPS.setStrokeColorN:\n            case OPS.setFillColorN:\n              if (args[args.length - 1].code) {\n                break;\n              }\n              // compile tiling patterns\n              var patternName = args[args.length - 1];\n              // SCN/scn applies patterns along with normal colors\n              var pattern;\n              if (isName(patternName) &&\n                  (pattern = patterns.get(patternName.name))) {\n\n                var dict = isStream(pattern) ? pattern.dict : pattern;\n                var typeNum = dict.get('PatternType');\n\n                if (typeNum == TILING_PATTERN) {\n                  self.handleTilingType(fn, args, resources, pattern, dict,\n                                        operatorList);\n                  args = [];\n                  continue;\n                } else if (typeNum == SHADING_PATTERN) {\n                  var shading = dict.get('Shading');\n                  var matrix = dict.get('Matrix');\n                  var pattern = Pattern.parseShading(shading, matrix, xref,\n                                                      resources);\n                  args = pattern.getIR();\n                } else {\n                  error('Unkown PatternType ' + typeNum);\n                }\n              }\n              break;\n            case OPS.paintXObject:\n              if (args[0].code) {\n                break;\n              }\n              // eagerly compile XForm objects\n              var name = args[0].name;\n              var xobj = xobjs.get(name);\n              if (xobj) {\n                assertWellFormed(\n                    isStream(xobj), 'XObject should be a stream');\n\n                var type = xobj.dict.get('Subtype');\n                assertWellFormed(\n                  isName(type),\n                  'XObject should have a Name subtype'\n                );\n\n                if ('Form' == type.name) {\n                  self.buildFormXObject(resources, xobj, null, operatorList);\n                  args = [];\n                  continue;\n                } else if ('Image' == type.name) {\n                  self.buildPaintImageXObject(resources, xobj, false,\n                                              operatorList);\n                  args = [];\n                  continue;\n                } else {\n                  error('Unhandled XObject subtype ' + type.name);\n                }\n              }\n              break;\n            case OPS.setFont:\n              // eagerly collect all fonts\n              var loadedName = self.handleSetFont(resources, args, null,\n                                                  operatorList);\n              operatorList.addDependency(loadedName);\n              args[0] = loadedName;\n              break;\n            case OPS.endInlineImage:\n              self.buildPaintImageXObject(resources, args[0], true,\n                                          operatorList);\n              args = [];\n              continue;\n            case OPS.save:\n              var old = this.state;\n              this.stateStack.push(this.state);\n              this.state = old.clone();\n              break;\n            case OPS.restore:\n              var prev = this.stateStack.pop();\n              if (prev) {\n                this.state = prev;\n              }\n              break;\n            case OPS.showText:\n              args[0] = this.handleText(args[0]);\n              break;\n            case OPS.showSpacedText:\n              var arr = args[0];\n              var arrLength = arr.length;\n              for (var i = 0; i < arrLength; ++i) {\n                if (isString(arr[i])) {\n                  arr[i] = this.handleText(arr[i]);\n                }\n              }\n              break;\n            case OPS.nextLineShowText:\n              args[0] = this.handleText(args[0]);\n              break;\n            case OPS.nextLineSetSpacingShowText:\n              args[2] = this.handleText(args[2]);\n              break;\n            case OPS.setTextRenderingMode:\n              this.state.textRenderingMode = args[0];\n              break;\n            // Parse the ColorSpace data to a raw format.\n            case OPS.setFillColorSpace:\n            case OPS.setStrokeColorSpace:\n              args = [ColorSpace.parseToIR(args[0], xref, resources)];\n              break;\n            case OPS.shadingFill:\n              var shadingRes = resources.get('Shading');\n              if (!shadingRes)\n                error('No shading resource found');\n\n              var shading = shadingRes.get(args[0].name);\n              if (!shading)\n                error('No shading object found');\n\n              var shadingFill = Pattern.parseShading(\n                  shading, null, xref, resources);\n              var patternIR = shadingFill.getIR();\n              args = [patternIR];\n              fn = OPS.shadingFill;\n              break;\n            case OPS.setGState:\n              var dictName = args[0];\n              var extGState = resources.get('ExtGState');\n\n              if (!isDict(extGState) || !extGState.has(dictName.name))\n                break;\n\n              var gState = extGState.get(dictName.name);\n              self.setGState(resources, gState, operatorList);\n              args = [];\n              continue;\n          } // switch\n\n          operatorList.addOp(fn, args);\n          args = [];\n          parser.saveState();\n        } else if (obj !== null && obj !== undefined) {\n          args.push(obj instanceof Dict ? obj.getAll() : obj);\n          assertWellFormed(args.length <= 33, 'Too many arguments');\n        }\n      }\n\n      return operatorList;\n    },\n\n    getTextContent: function PartialEvaluator_getTextContent(\n                                                    stream, resources, state) {\n\n      var bidiTexts;\n      var SPACE_FACTOR = 0.35;\n      var MULTI_SPACE_FACTOR = 1.5;\n      var textState;\n\n      if (!state) {\n        textState = new TextState();\n        bidiTexts = [];\n        state = {\n          textState: textState,\n          bidiTexts: bidiTexts\n        };\n      } else {\n        bidiTexts = state.bidiTexts;\n        textState = state.textState;\n      }\n\n      var self = this;\n      var xref = this.xref;\n\n      function handleSetFont(fontName, fontRef) {\n        return self.loadFont(fontName, fontRef, xref, resources, null);\n      }\n\n      resources = xref.fetchIfRef(resources) || new Dict();\n      // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd.\n      var xobjs = null;\n\n      var parser = new Parser(new Lexer(stream), false);\n      var res = resources;\n      var args = [], obj;\n\n      var chunk = '';\n      var font = null;\n      var charSpace = 0, wordSpace = 0;\n      while (!isEOF(obj = parser.getObj())) {\n        if (isCmd(obj)) {\n          var cmd = obj.cmd;\n          switch (cmd) {\n            // TODO: Add support for SAVE/RESTORE and XFORM here.\n            case 'Tf':\n              font = handleSetFont(args[0].name).translated;\n              textState.fontSize = args[1];\n              break;\n            case 'Ts':\n              textState.textRise = args[0];\n              break;\n            case 'Tz':\n              textState.textHScale = args[0] / 100;\n              break;\n            case 'TL':\n              textState.leading = args[0];\n              break;\n            case 'Td':\n              textState.translateTextMatrix(args[0], args[1]);\n              break;\n            case 'TD':\n              textState.leading = -args[1];\n              textState.translateTextMatrix(args[0], args[1]);\n              break;\n            case 'T*':\n              textState.translateTextMatrix(0, -textState.leading);\n              break;\n            case 'Tm':\n              textState.setTextMatrix(args[0], args[1],\n                                       args[2], args[3], args[4], args[5]);\n              break;\n            case 'Tc':\n              charSpace = args[0];\n              break;\n            case 'Tw':\n              wordSpace = args[0];\n              break;\n            case 'q':\n              textState.push();\n              break;\n            case 'Q':\n              textState.pop();\n              break;\n            case 'BT':\n              textState.initialiseTextObj();\n              break;\n            case 'cm':\n              textState.transformCTM(args[0], args[1], args[2],\n                                args[3], args[4], args[5]);\n              break;\n            case 'TJ':\n              var items = args[0];\n              for (var j = 0, jj = items.length; j < jj; j++) {\n                if (typeof items[j] === 'string') {\n                  chunk += fontCharsToUnicode(items[j], font);\n                } else if (items[j] < 0 && font.spaceWidth > 0) {\n                  var fakeSpaces = -items[j] / font.spaceWidth;\n                  if (fakeSpaces > MULTI_SPACE_FACTOR) {\n                    fakeSpaces = Math.round(fakeSpaces);\n                    while (fakeSpaces--) {\n                      chunk += ' ';\n                    }\n                  } else if (fakeSpaces > SPACE_FACTOR) {\n                    chunk += ' ';\n                  }\n                }\n              }\n              break;\n            case 'Tj':\n              chunk += fontCharsToUnicode(args[0], font);\n              break;\n            case '\\'':\n              // For search, adding a extra white space for line breaks would be\n              // better here, but that causes too much spaces in the\n              // text-selection divs.\n              chunk += fontCharsToUnicode(args[0], font);\n              break;\n            case '\"':\n              // Note comment in \"'\"\n              chunk += fontCharsToUnicode(args[2], font);\n              break;\n            case 'Do':\n              // Set the chunk such that the following if won't add something\n              // to the state.\n              chunk = '';\n\n              if (args[0].code) {\n                break;\n              }\n\n              if (!xobjs) {\n                xobjs = resources.get('XObject') || new Dict();\n              }\n\n              var name = args[0].name;\n              var xobj = xobjs.get(name);\n              if (!xobj)\n                break;\n              assertWellFormed(isStream(xobj), 'XObject should be a stream');\n\n              var type = xobj.dict.get('Subtype');\n              assertWellFormed(\n                isName(type),\n                'XObject should have a Name subtype'\n              );\n\n              if ('Form' !== type.name)\n                break;\n\n              state = this.getTextContent(\n                xobj,\n                xobj.dict.get('Resources') || resources,\n                state\n              );\n              break;\n            case 'gs':\n              var dictName = args[0];\n              var extGState = resources.get('ExtGState');\n\n              if (!isDict(extGState) || !extGState.has(dictName.name))\n                break;\n\n              var gsState = extGState.get(dictName.name);\n\n              for (var i = 0; i < gsState.length; i++) {\n                if (gsState[i] === 'Font') {\n                  font = handleSetFont(args[0].name).translated;\n                }\n              }\n              break;\n          } // switch\n\n          if (chunk !== '') {\n            var bidiText = PDFJS.bidi(chunk, -1, font.vertical);\n            var renderParams = textState.calcRenderParams();\n            bidiText.x = renderParams.renderMatrix[4] - (textState.fontSize *\n                           renderParams.vScale * Math.sin(renderParams.angle));\n            bidiText.y = renderParams.renderMatrix[5] + (textState.fontSize *\n                           renderParams.vScale * Math.cos(renderParams.angle));\n            if (bidiText.dir == 'ttb') {\n              bidiText.x += renderParams.vScale / 2;\n              bidiText.y -= renderParams.vScale;\n            }\n            bidiTexts.push(bidiText);\n\n            chunk = '';\n          }\n\n          args = [];\n        } else if (obj !== null && obj !== undefined) {\n          assertWellFormed(args.length <= 33, 'Too many arguments');\n          args.push(obj);\n        }\n      } // while\n\n      return state;\n    },\n\n    extractDataStructures: function\n      partialEvaluatorExtractDataStructures(dict, baseDict,\n                                            xref, properties) {\n      // 9.10.2\n      var toUnicode = dict.get('ToUnicode') ||\n        baseDict.get('ToUnicode');\n      if (toUnicode)\n        properties.toUnicode = this.readToUnicode(toUnicode, xref, properties);\n\n      if (properties.composite) {\n        // CIDSystemInfo helps to match CID to glyphs\n        var cidSystemInfo = dict.get('CIDSystemInfo');\n        if (isDict(cidSystemInfo)) {\n          properties.cidSystemInfo = {\n            registry: cidSystemInfo.get('Registry'),\n            ordering: cidSystemInfo.get('Ordering'),\n            supplement: cidSystemInfo.get('Supplement')\n          };\n        }\n\n        var cidToGidMap = dict.get('CIDToGIDMap');\n        if (isStream(cidToGidMap))\n          properties.cidToGidMap = this.readCidToGidMap(cidToGidMap);\n      }\n\n      // Based on 9.6.6 of the spec the encoding can come from multiple places\n      // but should be prioritized in the following order:\n      // 1. Encoding dictionary\n      // 2. Encoding within font file (Type1 or Type1C)\n      // 3. Default (depends on font type)\n      // Differences applied to the above.\n      // Note: we don't fill in the encoding from the font file(2) here but use\n      // the flag overridableEncoding to signal that the font can override the\n      // encoding if it has one built in.\n      var overridableEncoding = true;\n      var hasEncoding = false;\n      var flags = properties.flags;\n      var differences = [];\n      var baseEncoding = properties.type === 'TrueType' ?\n                          Encodings.WinAnsiEncoding :\n                          Encodings.StandardEncoding;\n      // The Symbolic attribute can be misused for regular fonts\n      // Heuristic: we have to check if the font is a standard one also\n      if (!!(flags & FontFlags.Symbolic)) {\n        baseEncoding = !properties.file ? Encodings.SymbolSetEncoding :\n                                          Encodings.MacRomanEncoding;\n      }\n      if (dict.has('Encoding')) {\n        var encoding = dict.get('Encoding');\n        if (isDict(encoding)) {\n          var baseName = encoding.get('BaseEncoding');\n          if (baseName) {\n            overridableEncoding = false;\n            hasEncoding = true;\n            baseEncoding = Encodings[baseName.name];\n          }\n\n          // Load the differences between the base and original\n          if (encoding.has('Differences')) {\n            hasEncoding = true;\n            var diffEncoding = encoding.get('Differences');\n            var index = 0;\n            for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n              var data = diffEncoding[j];\n              if (isNum(data))\n                index = data;\n              else\n                differences[index++] = data.name;\n            }\n          }\n        } else if (isName(encoding)) {\n          overridableEncoding = false;\n          hasEncoding = true;\n          baseEncoding = Encodings[encoding.name];\n        } else {\n          error('Encoding is not a Name nor a Dict');\n        }\n      }\n\n      properties.differences = differences;\n      properties.baseEncoding = baseEncoding;\n      properties.hasEncoding = hasEncoding;\n      properties.overridableEncoding = overridableEncoding;\n    },\n\n    readToUnicode: function PartialEvaluator_readToUnicode(toUnicode, xref,\n                                                           properties) {\n      var cmapObj = toUnicode;\n      var charToUnicode = [];\n      if (isName(cmapObj)) {\n        var isIdentityMap = cmapObj.name.substring(0, 9) == 'Identity-';\n        if (!isIdentityMap)\n          error('ToUnicode file cmap translation not implemented');\n      } else if (isStream(cmapObj)) {\n        var cmap = CMapFactory.create(cmapObj).map;\n        // Convert UTF-16BE\n        for (var i in cmap) {\n          var token = cmap[i];\n          var str = [];\n          for (var k = 0; k < token.length; k += 2) {\n            var w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n            if ((w1 & 0xF800) !== 0xD800) { // w1 < 0xD800 || w1 > 0xDFFF\n              str.push(w1);\n              continue;\n            }\n            k += 2;\n            var w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n            str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n          }\n          cmap[i] = String.fromCharCode.apply(String, str);\n        }\n        return cmap;\n      }\n      return charToUnicode;\n    },\n    readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) {\n      // Extract the encoding from the CIDToGIDMap\n      var glyphsData = cidToGidStream.getBytes();\n\n      // Set encoding 0 to later verify the font has an encoding\n      var result = [];\n      for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n        var glyphID = (glyphsData[j++] << 8) | glyphsData[j];\n        if (glyphID === 0)\n          continue;\n\n        var code = j >> 1;\n        result[code] = glyphID;\n      }\n      return result;\n    },\n\n    extractWidths: function PartialEvaluator_extractWidths(dict,\n                                                   xref,\n                                                   descriptor,\n                                                   properties) {\n      var glyphsWidths = [];\n      var defaultWidth = 0;\n      var glyphsVMetrics = [];\n      var defaultVMetrics;\n      if (properties.composite) {\n        defaultWidth = dict.get('DW') || 1000;\n\n        var widths = dict.get('W');\n        if (widths) {\n          for (var i = 0, ii = widths.length; i < ii; i++) {\n            var start = widths[i++];\n            var code = xref.fetchIfRef(widths[i]);\n            if (isArray(code)) {\n              for (var j = 0, jj = code.length; j < jj; j++)\n                glyphsWidths[start++] = code[j];\n            } else {\n              var width = widths[++i];\n              for (var j = start; j <= code; j++)\n                glyphsWidths[j] = width;\n            }\n          }\n        }\n\n        if (properties.vertical) {\n          var vmetrics = dict.get('DW2') || [880, -1000];\n          defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n          vmetrics = dict.get('W2');\n          if (vmetrics) {\n            for (var i = 0, ii = vmetrics.length; i < ii; i++) {\n              var start = vmetrics[i++];\n              var code = xref.fetchIfRef(vmetrics[i]);\n              if (isArray(code)) {\n                for (var j = 0, jj = code.length; j < jj; j++)\n                  glyphsVMetrics[start++] = [code[j++], code[j++], code[j]];\n              } else {\n                var vmetric = [vmetrics[++i], vmetrics[++i], vmetrics[++i]];\n                for (var j = start; j <= code; j++)\n                  glyphsVMetrics[j] = vmetric;\n              }\n            }\n          }\n        }\n      } else {\n        var firstChar = properties.firstChar;\n        var widths = dict.get('Widths');\n        if (widths) {\n          var j = firstChar;\n          for (var i = 0, ii = widths.length; i < ii; i++)\n            glyphsWidths[j++] = widths[i];\n          defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0;\n        } else {\n          // Trying get the BaseFont metrics (see comment above).\n          var baseFontName = dict.get('BaseFont');\n          if (isName(baseFontName)) {\n            var metrics = this.getBaseFontMetrics(baseFontName.name);\n\n            glyphsWidths = metrics.widths;\n            defaultWidth = metrics.defaultWidth;\n          }\n        }\n      }\n\n      // Heuristic: detection of monospace font by checking all non-zero widths\n      var isMonospace = true, firstWidth = defaultWidth;\n      for (var glyph in glyphsWidths) {\n        var glyphWidth = glyphsWidths[glyph];\n        if (!glyphWidth)\n          continue;\n        if (!firstWidth) {\n          firstWidth = glyphWidth;\n          continue;\n        }\n        if (firstWidth != glyphWidth) {\n          isMonospace = false;\n          break;\n        }\n      }\n      if (isMonospace)\n        properties.flags |= FontFlags.FixedPitch;\n\n      properties.defaultWidth = defaultWidth;\n      properties.widths = glyphsWidths;\n      properties.defaultVMetrics = defaultVMetrics;\n      properties.vmetrics = glyphsVMetrics;\n    },\n\n    isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n\n      // Simulating descriptor flags attribute\n      var fontNameWoStyle = baseFontName.split('-')[0];\n      return (fontNameWoStyle in serifFonts) ||\n          (fontNameWoStyle.search(/serif/gi) !== -1);\n    },\n\n    getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n      var defaultWidth = 0, widths = [], monospace = false;\n\n      var lookupName = stdFontMap[name] || name;\n\n      if (!(lookupName in Metrics)) {\n        // Use default fonts for looking up font metrics if the passed\n        // font is not a base font\n        if (this.isSerifFont(name)) {\n          lookupName = 'Times-Roman';\n        } else {\n          lookupName = 'Helvetica';\n        }\n      }\n      var glyphWidths = Metrics[lookupName];\n\n      if (isNum(glyphWidths)) {\n        defaultWidth = glyphWidths;\n        monospace = true;\n      } else {\n        widths = glyphWidths;\n      }\n\n      return {\n        defaultWidth: defaultWidth,\n        monospace: monospace,\n        widths: widths\n      };\n    },\n\n    translateFont: function PartialEvaluator_translateFont(dict,\n                                                           xref) {\n      var baseDict = dict;\n      var type = dict.get('Subtype');\n      assertWellFormed(isName(type), 'invalid font Subtype');\n\n      var composite = false;\n      if (type.name == 'Type0') {\n        // If font is a composite\n        //  - get the descendant font\n        //  - set the type according to the descendant font\n        //  - get the FontDescriptor from the descendant font\n        var df = dict.get('DescendantFonts');\n        if (!df)\n          error('Descendant fonts are not specified');\n\n        dict = isArray(df) ? xref.fetchIfRef(df[0]) : df;\n\n        type = dict.get('Subtype');\n        assertWellFormed(isName(type), 'invalid font Subtype');\n        composite = true;\n      }\n      var maxCharIndex = composite ? 0xFFFF : 0xFF;\n\n      var descriptor = dict.get('FontDescriptor');\n      if (!descriptor) {\n        if (type.name == 'Type3') {\n          // FontDescriptor is only required for Type3 fonts when the document\n          // is a tagged pdf. Create a barbebones one to get by.\n          descriptor = new Dict();\n          descriptor.set('FontName', new Name(type.name));\n        } else {\n          // Before PDF 1.5 if the font was one of the base 14 fonts, having a\n          // FontDescriptor was not required.\n          // This case is here for compatibility.\n          var baseFontName = dict.get('BaseFont');\n          if (!isName(baseFontName))\n            error('Base font is not specified');\n\n          // Using base font name as a font name.\n          baseFontName = baseFontName.name.replace(/[,_]/g, '-');\n          var metrics = this.getBaseFontMetrics(baseFontName);\n\n          // Simulating descriptor flags attribute\n          var fontNameWoStyle = baseFontName.split('-')[0];\n          var flags = (\n            this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) |\n            (metrics.monospace ? FontFlags.FixedPitch : 0) |\n            (symbolsFonts[fontNameWoStyle] ? FontFlags.Symbolic :\n            FontFlags.Nonsymbolic);\n\n          var properties = {\n            type: type.name,\n            widths: metrics.widths,\n            defaultWidth: metrics.defaultWidth,\n            flags: flags,\n            firstChar: 0,\n            lastChar: maxCharIndex\n          };\n          this.extractDataStructures(dict, dict, xref, properties);\n\n          return new Font(baseFontName, null, properties);\n        }\n      }\n\n      // According to the spec if 'FontDescriptor' is declared, 'FirstChar',\n      // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem\n      // to ignore this rule when a variant of a standart font is used.\n      // TODO Fill the width array depending on which of the base font this is\n      // a variant.\n      var firstChar = dict.get('FirstChar') || 0;\n      var lastChar = dict.get('LastChar') || maxCharIndex;\n\n      var fontName = descriptor.get('FontName');\n      var baseFont = dict.get('BaseFont');\n      // Some bad pdf's have a string as the font name.\n      if (isString(fontName)) {\n        fontName = new Name(fontName);\n      }\n      if (isString(baseFont)) {\n        baseFont = new Name(baseFont);\n      }\n\n      if (type.name !== 'Type3') {\n        var fontNameStr = fontName && fontName.name;\n        var baseFontStr = baseFont && baseFont.name;\n        if (fontNameStr !== baseFontStr) {\n          info('The FontDescriptor\\'s FontName is \"' + fontNameStr +\n               '\" but should be the same as the Font\\'s BaseFont \"' +\n               baseFontStr + '\"');\n        }\n      }\n      fontName = fontName || baseFont;\n\n      assertWellFormed(isName(fontName), 'invalid font name');\n\n      var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3');\n      if (fontFile) {\n        if (fontFile.dict) {\n          var subtype = fontFile.dict.get('Subtype');\n          if (subtype)\n            subtype = subtype.name;\n\n          var length1 = fontFile.dict.get('Length1');\n\n          var length2 = fontFile.dict.get('Length2');\n        }\n      }\n\n      var properties = {\n        type: type.name,\n        subtype: subtype,\n        file: fontFile,\n        length1: length1,\n        length2: length2,\n        loadedName: baseDict.loadedName,\n        composite: composite,\n        wideChars: composite,\n        fixedPitch: false,\n        fontMatrix: dict.get('FontMatrix') || FONT_IDENTITY_MATRIX,\n        firstChar: firstChar || 0,\n        lastChar: lastChar || maxCharIndex,\n        bbox: descriptor.get('FontBBox'),\n        ascent: descriptor.get('Ascent'),\n        descent: descriptor.get('Descent'),\n        xHeight: descriptor.get('XHeight'),\n        capHeight: descriptor.get('CapHeight'),\n        flags: descriptor.get('Flags'),\n        italicAngle: descriptor.get('ItalicAngle'),\n        coded: false\n      };\n\n      if (composite) {\n        var cidEncoding = baseDict.get('Encoding');\n        if (isName(cidEncoding)) {\n          properties.cidEncoding = cidEncoding.name;\n          properties.vertical = /-V$/.test(cidEncoding.name);\n        }\n        properties.cmap = CMapFactory.create(cidEncoding);\n      }\n      this.extractWidths(dict, xref, descriptor, properties);\n      this.extractDataStructures(dict, baseDict, xref, properties);\n\n      if (type.name === 'Type3') {\n        properties.coded = true;\n      }\n\n      return new Font(fontName.name, fontFile, properties);\n    }\n  };\n\n  PartialEvaluator.optimizeQueue =\n      function PartialEvaluator_optimizeQueue(queue) {\n\n    function squash(array, index, howMany, element) {\n      if (isArray(array)) {\n        array.splice(index, howMany, element);\n      } else {\n        // Replace the element.\n        array[index] = element;\n        // Shift everything after the element up.\n        var sub = array.subarray(index + howMany);\n        array.set(sub, index + 1);\n      }\n    }\n\n    var fnArray = queue.fnArray, argsArray = queue.argsArray;\n    // grouping paintInlineImageXObject's into paintInlineImageXObjectGroup\n    // searching for (save, transform, paintInlineImageXObject, restore)+\n    var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n    var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n    var MAX_WIDTH = 1000;\n    var IMAGE_PADDING = 1;\n    for (var i = 0, ii = argsArray.length; i < ii; i++) {\n      if (fnArray[i] === OPS.paintInlineImageXObject &&\n          fnArray[i - 2] === OPS.save && fnArray[i - 1] === OPS.transform &&\n          fnArray[i + 1] === OPS.restore) {\n        var j = i - 2;\n        for (i += 2; i < ii && fnArray[i - 4] === fnArray[i]; i++) {\n        }\n        var count = Math.min((i - j) >> 2,\n                             MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n        if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n          continue;\n        }\n        // assuming that heights of those image is too small (~1 pixel)\n        // packing as much as possible by lines\n        var maxX = 0;\n        var map = [], maxLineHeight = 0;\n        var currentX = IMAGE_PADDING, currentY = IMAGE_PADDING;\n        for (var q = 0; q < count; q++) {\n          var transform = argsArray[j + (q << 2) + 1];\n          var img = argsArray[j + (q << 2) + 2][0];\n          if (currentX + img.width > MAX_WIDTH) {\n            // starting new line\n            maxX = Math.max(maxX, currentX);\n            currentY += maxLineHeight + 2 * IMAGE_PADDING;\n            currentX = 0;\n            maxLineHeight = 0;\n          }\n          map.push({\n            transform: transform,\n            x: currentX, y: currentY,\n            w: img.width, h: img.height\n          });\n          currentX += img.width + 2 * IMAGE_PADDING;\n          maxLineHeight = Math.max(maxLineHeight, img.height);\n        }\n        var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n        var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n        var imgData = new Uint8Array(imgWidth * imgHeight * 4);\n        var imgRowSize = imgWidth << 2;\n        for (var q = 0; q < count; q++) {\n          var data = argsArray[j + (q << 2) + 2][0].data;\n          // copy image by lines and extends pixels into padding\n          var rowSize = map[q].w << 2;\n          var dataOffset = 0;\n          var offset = (map[q].x + map[q].y * imgWidth) << 2;\n          imgData.set(\n            data.subarray(0, rowSize), offset - imgRowSize);\n          for (var k = 0, kk = map[q].h; k < kk; k++) {\n            imgData.set(\n              data.subarray(dataOffset, dataOffset + rowSize), offset);\n            dataOffset += rowSize;\n            offset += imgRowSize;\n          }\n          imgData.set(\n            data.subarray(dataOffset - rowSize, dataOffset), offset);\n          while (offset >= 0) {\n            data[offset - 4] = data[offset];\n            data[offset - 3] = data[offset + 1];\n            data[offset - 2] = data[offset + 2];\n            data[offset - 1] = data[offset + 3];\n            data[offset + rowSize] = data[offset + rowSize - 4];\n            data[offset + rowSize + 1] = data[offset + rowSize - 3];\n            data[offset + rowSize + 2] = data[offset + rowSize - 2];\n            data[offset + rowSize + 3] = data[offset + rowSize - 1];\n            offset -= imgRowSize;\n          }\n        }\n        // replacing queue items\n        squash(fnArray, j, count * 4, OPS.paintInlineImageXObjectGroup);\n        argsArray.splice(j, count * 4,\n          [{width: imgWidth, height: imgHeight, data: imgData}, map]);\n        i = j;\n        ii = argsArray.length;\n      }\n    }\n    // grouping paintImageMaskXObject's into paintImageMaskXObjectGroup\n    // searching for (save, transform, paintImageMaskXObject, restore)+\n    var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n    var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n    for (var i = 0, ii = argsArray.length; i < ii; i++) {\n      if (fnArray[i] === OPS.paintImageMaskXObject &&\n          fnArray[i - 2] === OPS.save && fnArray[i - 1] === OPS.transform &&\n          fnArray[i + 1] === OPS.restore) {\n        var j = i - 2;\n        for (i += 2; i < ii && fnArray[i - 4] === fnArray[i]; i++) {\n        }\n        var count = Math.min((i - j) >> 2,\n                             MAX_IMAGES_IN_MASKS_BLOCK);\n        if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n          continue;\n        }\n        var images = [];\n        for (var q = 0; q < count; q++) {\n          var transform = argsArray[j + (q << 2) + 1];\n          var maskParams = argsArray[j + (q << 2) + 2][0];\n          images.push({data: maskParams.data, width: maskParams.width,\n            height: maskParams.height, transform: transform});\n        }\n        // replacing queue items\n        squash(fnArray, j, count * 4, OPS.paintImageMaskXObjectGroup);\n        argsArray.splice(j, count * 4, [images]);\n        i = j;\n        ii = argsArray.length;\n      }\n    }\n  };\n\n  return PartialEvaluator;\n})();\n\nvar OperatorList = (function OperatorListClosure() {\n  var CHUNK_SIZE = 100;\n\n    function getTransfers(queue) {\n      var transfers = [];\n      var fnArray = queue.fnArray, argsArray = queue.argsArray;\n      for (var i = 0, ii = queue.length; i < ii; i++) {\n        switch (fnArray[i]) {\n          case OPS.paintInlineImageXObject:\n          case OPS.paintInlineImageXObjectGroup:\n          case OPS.paintImageMaskXObject:\n            var arg = argsArray[i][0]; // first param in imgData\n            transfers.push(arg.data.buffer);\n            break;\n        }\n      }\n      return transfers;\n    }\n\n\n    function OperatorList(messageHandler, pageIndex) {\n    this.messageHandler = messageHandler;\n    // When there isn't a message handler the fn array needs to be able to grow\n    // since we can't flush the operators.\n    if (messageHandler) {\n      this.fnArray = new Uint8Array(CHUNK_SIZE);\n    } else {\n      this.fnArray = [];\n    }\n    this.argsArray = [];\n    this.dependencies = {},\n    this.pageIndex = pageIndex;\n    this.fnIndex = 0;\n  }\n\n  OperatorList.prototype = {\n\n    get length() {\n      return this.argsArray.length;\n    },\n\n    addOp: function(fn, args) {\n      if (this.messageHandler) {\n        this.fnArray[this.fnIndex++] = fn;\n        this.argsArray.push(args);\n        if (this.fnIndex >= CHUNK_SIZE) {\n          this.flush();\n        }\n      } else {\n        this.fnArray.push(fn);\n        this.argsArray.push(args);\n      }\n    },\n\n    addDependency: function(dependency) {\n      if (dependency in this.dependencies) {\n        return;\n      }\n      this.dependencies[dependency] = true;\n      this.addOp(OPS.dependency, [dependency]);\n    },\n\n    addDependencies: function(dependencies) {\n      for (var key in dependencies) {\n        this.addDependency(key);\n      }\n    },\n\n    addOpList: function(opList) {\n      Util.extendObj(this.dependencies, opList.dependencies);\n      for (var i = 0, ii = opList.length; i < ii; i++) {\n        this.addOp(opList.fnArray[i], opList.argsArray[i]);\n      }\n    },\n\n    getIR: function() {\n      return {\n        fnArray: this.fnArray,\n        argsArray: this.argsArray,\n        length: this.length\n      };\n    },\n\n    flush: function(lastChunk) {\n      PartialEvaluator.optimizeQueue(this);\n      var transfers = getTransfers(this);\n      this.messageHandler.send('RenderPageChunk', {\n        operatorList: {\n          fnArray: this.fnArray,\n          argsArray: this.argsArray,\n          lastChunk: lastChunk,\n          length: this.length\n        },\n        pageIndex: this.pageIndex\n      }, null, transfers);\n      this.dependencies = [];\n      this.fnIndex = 0;\n      this.argsArray = [];\n    }\n  };\n\n  return OperatorList;\n})();\n\nvar TextState = (function TextStateClosure() {\n  function TextState() {\n    this.fontSize = 0;\n    this.ctm = [1, 0, 0, 1, 0, 0];\n    this.textMatrix = [1, 0, 0, 1, 0, 0];\n    this.stateStack = [];\n    //textState variables\n    this.leading = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n  }\n  TextState.prototype = {\n    push: function TextState_push() {\n      this.stateStack.push(this.ctm.slice());\n    },\n    pop: function TextState_pop() {\n      var prev = this.stateStack.pop();\n      if (prev) {\n        this.ctm = prev;\n      }\n    },\n    initialiseTextObj: function TextState_initialiseTextObj() {\n      var m = this.textMatrix;\n      m[0] = 1, m[1] = 0, m[2] = 0, m[3] = 1, m[4] = 0, m[5] = 0;\n    },\n    setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n      var m = this.textMatrix;\n      m[0] = a, m[1] = b, m[2] = c, m[3] = d, m[4] = e, m[5] = f;\n    },\n    transformCTM: function TextState_transformCTM(a, b, c, d, e, f) {\n      var m = this.ctm;\n      var m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], m4 = m[4], m5 = m[5];\n      m[0] = m0 * a + m2 * b;\n      m[1] = m1 * a + m3 * b;\n      m[2] = m0 * c + m2 * d;\n      m[3] = m1 * c + m3 * d;\n      m[4] = m0 * e + m2 * f + m4;\n      m[5] = m1 * e + m3 * f + m5;\n    },\n    translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n      var m = this.textMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n    },\n    calcRenderParams: function TextState_calcRenderingParams() {\n      var tm = this.textMatrix;\n      var cm = this.ctm;\n      var a = this.fontSize;\n      var b = a * this.textHScale;\n      var c = this.textRise;\n      var vScale = Math.sqrt((tm[2] * tm[2]) + (tm[3] * tm[3]));\n      var angle = Math.atan2(tm[1], tm[0]);\n      var m0 = tm[0] * cm[0] + tm[1] * cm[2];\n      var m1 = tm[0] * cm[1] + tm[1] * cm[3];\n      var m2 = tm[2] * cm[0] + tm[3] * cm[2];\n      var m3 = tm[2] * cm[1] + tm[3] * cm[3];\n      var m4 = tm[4] * cm[0] + tm[5] * cm[2] + cm[4];\n      var m5 = tm[4] * cm[1] + tm[5] * cm[3] + cm[5];\n      var renderMatrix = [\n        b * m0,\n        b * m1,\n        a * m2,\n        a * m3,\n        c * m2 + m4,\n        c * m3 + m5\n      ];\n      return {\n        renderMatrix: renderMatrix,\n        vScale: vScale,\n        angle: angle\n      };\n    },\n  };\n  return TextState;\n})();\n\nvar EvalState = (function EvalStateClosure() {\n  function EvalState() {\n    this.font = null;\n    this.textRenderingMode = TextRenderingMode.FILL;\n  }\n  EvalState.prototype = {\n    clone: function CanvasExtraState_clone() {\n      return Object.create(this);\n    },\n  };\n  return EvalState;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals assert, bytesToString, CIDToUnicodeMaps, error, ExpertCharset,\n           ExpertSubsetCharset, FileReaderSync, GlyphsUnicode,\n           info, isArray, isNum, ISOAdobeCharset, Stream,\n           stringToBytes, TextDecoder, TODO, warn, Lexer, Util,\n           FONT_IDENTITY_MATRIX, FontRendererFactory, shadow, isString */\n\n'use strict';\n\n// Unicode Private Use Area\nvar CMAP_GLYPH_OFFSET = 0xE000;\nvar GLYPH_AREA_SIZE = 0x1900;\nvar SYMBOLIC_FONT_GLYPH_OFFSET = 0xF000;\n\n// PDF Glyph Space Units are one Thousandth of a TextSpace Unit\n// except for Type 3 fonts\nvar PDF_GLYPH_SPACE_UNITS = 1000;\n\n// Hinting is currently disabled due to unknown problems on windows\n// in tracemonkey and various other pdfs with type1 fonts.\nvar HINTING_ENABLED = false;\n\n// Accented charactars are not displayed properly on windows, using this flag\n// to control analysis of seac charstrings.\nvar SEAC_ANALYSIS_ENABLED = false;\n\nvar FontFlags = {\n  FixedPitch: 1,\n  Serif: 2,\n  Symbolic: 4,\n  Script: 8,\n  Nonsymbolic: 32,\n  Italic: 64,\n  AllCap: 65536,\n  SmallCap: 131072,\n  ForceBold: 262144\n};\n\nvar Encodings = {\n  ExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle',\n    'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior',\n    'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma',\n    'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle',\n    'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle',\n    'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon',\n    'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior',\n    'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior',\n    'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior',\n    'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior',\n    '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '',\n    'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall',\n    'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall',\n    'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall',\n    'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall',\n    'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary',\n    'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall',\n    '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall',\n    'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '',\n    'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall',\n    'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters',\n    'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths',\n    'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior',\n    'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior',\n    'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior',\n    'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior',\n    'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior',\n    'seveninferior', 'eightinferior', 'nineinferior', 'centinferior',\n    'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall',\n    'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall',\n    'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall',\n    'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall',\n    'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall',\n    'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall',\n    'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall',\n    'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall',\n    'Ydieresissmall'],\n  MacExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle',\n    'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall',\n    'parenleftsuperior', 'parenrightsuperior', 'twodotenleader',\n    'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle',\n    'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle',\n    'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle',\n    'nineoldstyle', 'colon', 'semicolon', '', 'threequartersemdash', '',\n    'questionsmall', '', '', '', '', 'Ethsmall', '', '', 'onequarter',\n    'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths',\n    'seveneighths', 'onethird', 'twothirds', '', '', '', '', '', '', 'ff',\n    'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior',\n    'Circumflexsmall', 'hypheninferior', 'Gravesmall', 'Asmall', 'Bsmall',\n    'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall',\n    'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall',\n    'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall',\n    'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah',\n    'Tildesmall', '', '', 'asuperior', 'centsuperior', '', '', '', '',\n    'Aacutesmall', 'Agravesmall', 'Acircumflexsmall', 'Adieresissmall',\n    'Atildesmall', 'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall',\n    'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall',\n    'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall',\n    'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall',\n    'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '',\n    'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior',\n    'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior',\n    'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior',\n    'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '',\n    'dollarinferior', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior',\n    'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall',\n    'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '',\n    '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '', '',\n    'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior', 'twosuperior',\n    'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior',\n    'sevensuperior', 'ninesuperior', 'zerosuperior', '', 'esuperior',\n    'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior', 'dsuperior',\n    '', '', '', '', '', 'lsuperior', 'Ogoneksmall', 'Brevesmall',\n    'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior', 'commasuperior',\n    'periodsuperior', 'Dotaccentsmall', 'Ringsmall'],\n  MacRomanEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',\n    'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus',\n    'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three',\n    'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon',\n    'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F',\n    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',\n    'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',\n    'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g',\n    'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',\n    'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '',\n    'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis',\n    'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde',\n    'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis',\n    'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute',\n    'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave',\n    'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling',\n    'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright',\n    'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity',\n    'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff',\n    'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine',\n    'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot',\n    'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft',\n    'guillemotright', 'ellipsis', '', 'Agrave', 'Atilde', 'Otilde', 'OE',\n    'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft',\n    'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction',\n    'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl',\n    'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand',\n    'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute',\n    'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple',\n    'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex',\n    'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut',\n    'ogonek', 'caron'],\n  StandardEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',\n    'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus',\n    'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three',\n    'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon',\n    'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F',\n    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',\n    'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',\n    'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f',\n    'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',\n    'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown',\n    'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency',\n    'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft',\n    'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl',\n    'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase',\n    'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis',\n    'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex',\n    'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla',\n    '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '',\n    '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae',\n    '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls'],\n  WinAnsiEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',\n    'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus',\n    'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three',\n    'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon',\n    'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F',\n    'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',\n    'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',\n    'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g',\n    'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',\n    'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde',\n    'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin', 'quotedblbase',\n    'ellipsis', 'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron',\n    'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet', 'quoteleft',\n    'quoteright', 'quotedblleft', 'quotedblright', 'bullet', 'endash',\n    'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright', 'oe', 'bullet',\n    'zcaron', 'Ydieresis', '', 'exclamdown', 'cent', 'sterling',\n    'currency', 'yen', 'brokenbar', 'section', 'dieresis', 'copyright',\n    'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen', 'registered',\n    'macron', 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute',\n    'mu', 'paragraph', 'periodcentered', 'cedilla', 'onesuperior',\n    'ordmasculine', 'guillemotright', 'onequarter', 'onehalf', 'threequarters',\n    'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis',\n    'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis',\n    'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve',\n    'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash',\n    'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn',\n    'germandbls', 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis',\n    'aring', 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis',\n    'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve',\n    'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash',\n    'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn',\n    'ydieresis'],\n  SymbolSetEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent',\n    'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath', 'plus',\n    'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four',\n    'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less',\n    'equal', 'greater', 'question', 'congruent', 'Alpha', 'Beta', 'Chi',\n    'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa',\n    'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau',\n    'Upsilon', 'sigma1', 'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft',\n    'therefore', 'bracketright', 'perpendicular', 'underscore', 'radicalex',\n    'alpha', 'beta', 'chi', 'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota',\n    'phi1', 'kappa', 'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho',\n    'sigma', 'tau', 'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta',\n    'braceleft', 'bar', 'braceright', 'similar', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal',\n    'fraction', 'infinity', 'florin', 'club', 'diamond', 'heart', 'spade',\n    'arrowboth', 'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree',\n    'plusminus', 'second', 'greaterequal', 'multiply', 'proportional',\n    'partialdiff', 'bullet', 'divide', 'notequal', 'equivalence',\n    'approxequal', 'ellipsis', 'arrowvertex', 'arrowhorizex', 'carriagereturn',\n    'aleph', 'Ifraktur', 'Rfraktur', 'weierstrass', 'circlemultiply',\n    'circleplus', 'emptyset', 'intersection', 'union', 'propersuperset',\n    'reflexsuperset', 'notsubset', 'propersubset', 'reflexsubset', 'element',\n    'notelement', 'angle', 'gradient', 'registerserif', 'copyrightserif',\n    'trademarkserif', 'product', 'radical', 'dotmath', 'logicalnot',\n    'logicaland', 'logicalor', 'arrowdblboth', 'arrowdblleft', 'arrowdblup',\n    'arrowdblright', 'arrowdbldown', 'lozenge', 'angleleft', 'registersans',\n    'copyrightsans', 'trademarksans', 'summation', 'parenlefttp',\n    'parenleftex', 'parenleftbt', 'bracketlefttp', 'bracketleftex',\n    'bracketleftbt', 'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex',\n    '', 'angleright', 'integral', 'integraltp', 'integralex', 'integralbt',\n    'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp',\n    'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid',\n    'bracerightbt'],\n  zapfDingbatsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117',\n    'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19',\n    'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6', 'a7',\n    'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35', 'a36',\n    'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45', 'a46',\n    'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55', 'a56',\n    'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65', 'a66',\n    'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203', 'a75',\n    'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84', 'a97',\n    'a98', 'a99', 'a100', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n    '', '', 'a101', 'a102', 'a103', 'a104', 'a106', 'a107', 'a108', 'a112',\n    'a111', 'a110', 'a109', 'a120', 'a121', 'a122', 'a123', 'a124', 'a125',\n    'a126', 'a127', 'a128', 'a129', 'a130', 'a131', 'a132', 'a133', 'a134',\n    'a135', 'a136', 'a137', 'a138', 'a139', 'a140', 'a141', 'a142', 'a143',\n    'a144', 'a145', 'a146', 'a147', 'a148', 'a149', 'a150', 'a151', 'a152',\n    'a153', 'a154', 'a155', 'a156', 'a157', 'a158', 'a159', 'a160', 'a161',\n    'a163', 'a164', 'a196', 'a165', 'a192', 'a166', 'a167', 'a168', 'a169',\n    'a170', 'a171', 'a172', 'a173', 'a162', 'a174', 'a175', 'a176', 'a177',\n    'a178', 'a179', 'a193', 'a180', 'a199', 'a181', 'a200', 'a182', '', 'a201',\n    'a183', 'a184', 'a197', 'a185', 'a194', 'a198', 'a186', 'a195', 'a187',\n    'a188', 'a189', 'a190', 'a191']\n};\n\n/**\n * Hold a map of decoded fonts and of the standard fourteen Type1\n * fonts and their acronyms.\n */\nvar stdFontMap = {\n  'ArialNarrow': 'Helvetica',\n  'ArialNarrow-Bold': 'Helvetica-Bold',\n  'ArialNarrow-BoldItalic': 'Helvetica-BoldOblique',\n  'ArialNarrow-Italic': 'Helvetica-Oblique',\n  'ArialBlack': 'Helvetica',\n  'ArialBlack-Bold': 'Helvetica-Bold',\n  'ArialBlack-BoldItalic': 'Helvetica-BoldOblique',\n  'ArialBlack-Italic': 'Helvetica-Oblique',\n  'Arial': 'Helvetica',\n  'Arial-Bold': 'Helvetica-Bold',\n  'Arial-BoldItalic': 'Helvetica-BoldOblique',\n  'Arial-Italic': 'Helvetica-Oblique',\n  'Arial-BoldItalicMT': 'Helvetica-BoldOblique',\n  'Arial-BoldMT': 'Helvetica-Bold',\n  'Arial-ItalicMT': 'Helvetica-Oblique',\n  'ArialMT': 'Helvetica',\n  'Courier-Bold': 'Courier-Bold',\n  'Courier-BoldItalic': 'Courier-BoldOblique',\n  'Courier-Italic': 'Courier-Oblique',\n  'CourierNew': 'Courier',\n  'CourierNew-Bold': 'Courier-Bold',\n  'CourierNew-BoldItalic': 'Courier-BoldOblique',\n  'CourierNew-Italic': 'Courier-Oblique',\n  'CourierNewPS-BoldItalicMT': 'Courier-BoldOblique',\n  'CourierNewPS-BoldMT': 'Courier-Bold',\n  'CourierNewPS-ItalicMT': 'Courier-Oblique',\n  'CourierNewPSMT': 'Courier',\n  'Helvetica-Bold': 'Helvetica-Bold',\n  'Helvetica-BoldItalic': 'Helvetica-BoldOblique',\n  'Helvetica-Italic': 'Helvetica-Oblique',\n  'Symbol-Bold': 'Symbol',\n  'Symbol-BoldItalic': 'Symbol',\n  'Symbol-Italic': 'Symbol',\n  'TimesNewRoman': 'Times-Roman',\n  'TimesNewRoman-Bold': 'Times-Bold',\n  'TimesNewRoman-BoldItalic': 'Times-BoldItalic',\n  'TimesNewRoman-Italic': 'Times-Italic',\n  'TimesNewRomanPS': 'Times-Roman',\n  'TimesNewRomanPS-Bold': 'Times-Bold',\n  'TimesNewRomanPS-BoldItalic': 'Times-BoldItalic',\n  'TimesNewRomanPS-BoldItalicMT': 'Times-BoldItalic',\n  'TimesNewRomanPS-BoldMT': 'Times-Bold',\n  'TimesNewRomanPS-Italic': 'Times-Italic',\n  'TimesNewRomanPS-ItalicMT': 'Times-Italic',\n  'TimesNewRomanPSMT': 'Times-Roman',\n  'TimesNewRomanPSMT-Bold': 'Times-Bold',\n  'TimesNewRomanPSMT-BoldItalic': 'Times-BoldItalic',\n  'TimesNewRomanPSMT-Italic': 'Times-Italic'\n};\n\n/**\n * Holds the map of the non-standard fonts that might be included as a standard\n * fonts without glyph data.\n */\nvar nonStdFontMap = {\n  'ComicSansMS': 'Comic Sans MS',\n  'ComicSansMS-Bold': 'Comic Sans MS-Bold',\n  'ComicSansMS-BoldItalic': 'Comic Sans MS-BoldItalic',\n  'ComicSansMS-Italic': 'Comic Sans MS-Italic',\n  'LucidaConsole': 'Courier',\n  'LucidaConsole-Bold': 'Courier-Bold',\n  'LucidaConsole-BoldItalic': 'Courier-BoldOblique',\n  'LucidaConsole-Italic': 'Courier-Oblique',\n  'MS-Gothic': 'MS Gothic',\n  'MS-Gothic-Bold': 'MS Gothic-Bold',\n  'MS-Gothic-BoldItalic': 'MS Gothic-BoldItalic',\n  'MS-Gothic-Italic': 'MS Gothic-Italic',\n  'MS-Mincho': 'MS Mincho',\n  'MS-Mincho-Bold': 'MS Mincho-Bold',\n  'MS-Mincho-BoldItalic': 'MS Mincho-BoldItalic',\n  'MS-Mincho-Italic': 'MS Mincho-Italic',\n  'MS-PGothic': 'MS PGothic',\n  'MS-PGothic-Bold': 'MS PGothic-Bold',\n  'MS-PGothic-BoldItalic': 'MS PGothic-BoldItalic',\n  'MS-PGothic-Italic': 'MS PGothic-Italic',\n  'MS-PMincho': 'MS PMincho',\n  'MS-PMincho-Bold': 'MS PMincho-Bold',\n  'MS-PMincho-BoldItalic': 'MS PMincho-BoldItalic',\n  'MS-PMincho-Italic': 'MS PMincho-Italic',\n};\n\nvar serifFonts = {\n  'Adobe Jenson': true, 'Adobe Text': true, 'Albertus': true,\n  'Aldus': true, 'Alexandria': true, 'Algerian': true,\n  'American Typewriter': true, 'Antiqua': true, 'Apex': true,\n  'Arno': true, 'Aster': true, 'Aurora': true,\n  'Baskerville': true, 'Bell': true, 'Bembo': true,\n  'Bembo Schoolbook': true, 'Benguiat': true, 'Berkeley Old Style': true,\n  'Bernhard Modern': true, 'Berthold City': true, 'Bodoni': true,\n  'Bauer Bodoni': true, 'Book Antiqua': true, 'Bookman': true,\n  'Bordeaux Roman': true, 'Californian FB': true, 'Calisto': true,\n  'Calvert': true, 'Capitals': true, 'Cambria': true,\n  'Cartier': true, 'Caslon': true, 'Catull': true,\n  'Centaur': true, 'Century Old Style': true, 'Century Schoolbook': true,\n  'Chaparral': true, 'Charis SIL': true, 'Cheltenham': true,\n  'Cholla Slab': true, 'Clarendon': true, 'Clearface': true,\n  'Cochin': true, 'Colonna': true, 'Computer Modern': true,\n  'Concrete Roman': true, 'Constantia': true, 'Cooper Black': true,\n  'Corona': true, 'Ecotype': true, 'Egyptienne': true,\n  'Elephant': true, 'Excelsior': true, 'Fairfield': true,\n  'FF Scala': true, 'Folkard': true, 'Footlight': true,\n  'FreeSerif': true, 'Friz Quadrata': true, 'Garamond': true,\n  'Gentium': true, 'Georgia': true, 'Gloucester': true,\n  'Goudy Old Style': true, 'Goudy Schoolbook': true, 'Goudy Pro Font': true,\n  'Granjon': true, 'Guardian Egyptian': true, 'Heather': true,\n  'Hercules': true, 'High Tower Text': true, 'Hiroshige': true,\n  'Hoefler Text': true, 'Humana Serif': true, 'Imprint': true,\n  'Ionic No. 5': true, 'Janson': true, 'Joanna': true,\n  'Korinna': true, 'Lexicon': true, 'Liberation Serif': true,\n  'Linux Libertine': true, 'Literaturnaya': true, 'Lucida': true,\n  'Lucida Bright': true, 'Melior': true, 'Memphis': true,\n  'Miller': true, 'Minion': true, 'Modern': true,\n  'Mona Lisa': true, 'Mrs Eaves': true, 'MS Serif': true,\n  'Museo Slab': true, 'New York': true, 'Nimbus Roman': true,\n  'NPS Rawlinson Roadway': true, 'Palatino': true, 'Perpetua': true,\n  'Plantin': true, 'Plantin Schoolbook': true, 'Playbill': true,\n  'Poor Richard': true, 'Rawlinson Roadway': true, 'Renault': true,\n  'Requiem': true, 'Rockwell': true, 'Roman': true,\n  'Rotis Serif': true, 'Sabon': true, 'Scala': true,\n  'Seagull': true, 'Sistina': true, 'Souvenir': true,\n  'STIX': true, 'Stone Informal': true, 'Stone Serif': true,\n  'Sylfaen': true, 'Times': true, 'Trajan': true,\n  'Trinité': true, 'Trump Mediaeval': true, 'Utopia': true,\n  'Vale Type': true, 'Bitstream Vera': true, 'Vera Serif': true,\n  'Versailles': true, 'Wanted': true, 'Weiss': true,\n  'Wide Latin': true, 'Windsor': true, 'XITS': true\n};\n\nvar symbolsFonts = {\n  'Dingbats': true, 'Symbol': true, 'ZapfDingbats': true\n};\n\nvar CMapConverterList = {\n  'H': jis7ToUnicode,\n  'V': jis7ToUnicode,\n  'EUC-H': eucjpToUnicode,\n  'EUC-V': eucjpToUnicode,\n  '83pv-RKSJ-H': sjis83pvToUnicode,\n  '90pv-RKSJ-H': sjis90pvToUnicode,\n  '90ms-RKSJ-H': sjisToUnicode,\n  '90ms-RKSJ-V': sjisToUnicode,\n  '90msp-RKSJ-H': sjisToUnicode,\n  '90msp-RKSJ-V': sjisToUnicode,\n  'GBK-EUC-H': gbkToUnicode,\n  'GBKp-EUC-H': gbkToUnicode,\n  'B5pc-H': big5ToUnicode,\n  'ETenms-B5-H': big5ToUnicode,\n  'ETenms-B5-V': big5ToUnicode,\n};\n\n// CMaps using Hankaku (Halfwidth) Latin glyphs instead of proportional one.\n// We need to distinguish them to get correct widths from CIDFont dicts.\nvar HalfwidthCMaps = {\n  'H': true,\n  'V': true,\n  'EUC-H': true,\n  'EUC-V': true,\n  '90ms-RKSJ-H': true,\n  '90ms-RKSJ-V': true,\n  'UniJIS-UCS2-HW-H': true,\n  'UniJIS-UCS2-HW-V': true\n};\n\nvar decodeBytes;\nif (typeof TextDecoder !== 'undefined') {\n  // The encodings supported by TextDecoder can be found at:\n  // http://encoding.spec.whatwg.org/#concept-encoding-get\n  decodeBytes = function(bytes, encoding, fatal) {\n    return new TextDecoder(encoding, {fatal: !!fatal}).decode(bytes);\n  };\n} else if (typeof FileReaderSync !== 'undefined') {\n  decodeBytes = function(bytes, encoding) {\n    return new FileReaderSync().readAsText(new Blob([bytes]), encoding);\n  };\n} else {\n  // Clear the list so that decodeBytes will never be called.\n  CMapConverterList = {};\n}\n\nfunction jis7ToUnicode(str) {\n  var bytes = stringToBytes(str);\n  var length = bytes.length;\n  for (var i = 0; i < length; ++i) {\n    bytes[i] |= 0x80;\n  }\n  return decodeBytes(bytes, 'euc-jp');\n}\n\nfunction eucjpToUnicode(str) {\n  return decodeBytes(stringToBytes(str), 'euc-jp');\n}\n\nfunction sjisToUnicode(str) {\n  return decodeBytes(stringToBytes(str), 'shift_jis');\n}\n\nfunction sjis83pvToUnicode(str) {\n  var bytes = stringToBytes(str);\n  try {\n    // TODO: 83pv has incompatible mappings in ed40..ee9c range.\n    return decodeBytes(bytes, 'shift_jis', true);\n  } catch (e) {\n    TODO('Unsupported 83pv character found');\n    // Just retry without checking errors for now.\n    return decodeBytes(bytes, 'shift_jis');\n  }\n}\n\nfunction sjis90pvToUnicode(str) {\n  var bytes = stringToBytes(str);\n  try {\n    // TODO: 90pv has incompatible mappings in 8740..879c and eb41..ee9c.\n    return decodeBytes(bytes, 'shift_jis', true);\n  } catch (e) {\n    TODO('Unsupported 90pv character found');\n    // Just retry without checking errors for now.\n    return decodeBytes(bytes, 'shift_jis');\n  }\n}\n\nfunction gbkToUnicode(str) {\n  return decodeBytes(stringToBytes(str), 'gbk');\n}\n\nfunction big5ToUnicode(str) {\n  return decodeBytes(stringToBytes(str), 'big5');\n}\n\n// Some characters, e.g. copyrightserif, mapped to the private use area and\n// might not be displayed using standard fonts. Mapping/hacking well-known chars\n// to the similar equivalents in the normal characters range.\nfunction mapPrivateUseChars(code) {\n  switch (code) {\n    case 0xF8E9: // copyrightsans\n    case 0xF6D9: // copyrightserif\n      return 0x00A9; // copyright\n    default:\n      return code;\n  }\n}\n\nvar UnicodeRanges = [\n  { 'begin': 0x0000, 'end': 0x007F }, // Basic Latin\n  { 'begin': 0x0080, 'end': 0x00FF }, // Latin-1 Supplement\n  { 'begin': 0x0100, 'end': 0x017F }, // Latin Extended-A\n  { 'begin': 0x0180, 'end': 0x024F }, // Latin Extended-B\n  { 'begin': 0x0250, 'end': 0x02AF }, // IPA Extensions\n  { 'begin': 0x02B0, 'end': 0x02FF }, // Spacing Modifier Letters\n  { 'begin': 0x0300, 'end': 0x036F }, // Combining Diacritical Marks\n  { 'begin': 0x0370, 'end': 0x03FF }, // Greek and Coptic\n  { 'begin': 0x2C80, 'end': 0x2CFF }, // Coptic\n  { 'begin': 0x0400, 'end': 0x04FF }, // Cyrillic\n  { 'begin': 0x0530, 'end': 0x058F }, // Armenian\n  { 'begin': 0x0590, 'end': 0x05FF }, // Hebrew\n  { 'begin': 0xA500, 'end': 0xA63F }, // Vai\n  { 'begin': 0x0600, 'end': 0x06FF }, // Arabic\n  { 'begin': 0x07C0, 'end': 0x07FF }, // NKo\n  { 'begin': 0x0900, 'end': 0x097F }, // Devanagari\n  { 'begin': 0x0980, 'end': 0x09FF }, // Bengali\n  { 'begin': 0x0A00, 'end': 0x0A7F }, // Gurmukhi\n  { 'begin': 0x0A80, 'end': 0x0AFF }, // Gujarati\n  { 'begin': 0x0B00, 'end': 0x0B7F }, // Oriya\n  { 'begin': 0x0B80, 'end': 0x0BFF }, // Tamil\n  { 'begin': 0x0C00, 'end': 0x0C7F }, // Telugu\n  { 'begin': 0x0C80, 'end': 0x0CFF }, // Kannada\n  { 'begin': 0x0D00, 'end': 0x0D7F }, // Malayalam\n  { 'begin': 0x0E00, 'end': 0x0E7F }, // Thai\n  { 'begin': 0x0E80, 'end': 0x0EFF }, // Lao\n  { 'begin': 0x10A0, 'end': 0x10FF }, // Georgian\n  { 'begin': 0x1B00, 'end': 0x1B7F }, // Balinese\n  { 'begin': 0x1100, 'end': 0x11FF }, // Hangul Jamo\n  { 'begin': 0x1E00, 'end': 0x1EFF }, // Latin Extended Additional\n  { 'begin': 0x1F00, 'end': 0x1FFF }, // Greek Extended\n  { 'begin': 0x2000, 'end': 0x206F }, // General Punctuation\n  { 'begin': 0x2070, 'end': 0x209F }, // Superscripts And Subscripts\n  { 'begin': 0x20A0, 'end': 0x20CF }, // Currency Symbol\n  { 'begin': 0x20D0, 'end': 0x20FF }, // Combining Diacritical Marks For Symbols\n  { 'begin': 0x2100, 'end': 0x214F }, // Letterlike Symbols\n  { 'begin': 0x2150, 'end': 0x218F }, // Number Forms\n  { 'begin': 0x2190, 'end': 0x21FF }, // Arrows\n  { 'begin': 0x2200, 'end': 0x22FF }, // Mathematical Operators\n  { 'begin': 0x2300, 'end': 0x23FF }, // Miscellaneous Technical\n  { 'begin': 0x2400, 'end': 0x243F }, // Control Pictures\n  { 'begin': 0x2440, 'end': 0x245F }, // Optical Character Recognition\n  { 'begin': 0x2460, 'end': 0x24FF }, // Enclosed Alphanumerics\n  { 'begin': 0x2500, 'end': 0x257F }, // Box Drawing\n  { 'begin': 0x2580, 'end': 0x259F }, // Block Elements\n  { 'begin': 0x25A0, 'end': 0x25FF }, // Geometric Shapes\n  { 'begin': 0x2600, 'end': 0x26FF }, // Miscellaneous Symbols\n  { 'begin': 0x2700, 'end': 0x27BF }, // Dingbats\n  { 'begin': 0x3000, 'end': 0x303F }, // CJK Symbols And Punctuation\n  { 'begin': 0x3040, 'end': 0x309F }, // Hiragana\n  { 'begin': 0x30A0, 'end': 0x30FF }, // Katakana\n  { 'begin': 0x3100, 'end': 0x312F }, // Bopomofo\n  { 'begin': 0x3130, 'end': 0x318F }, // Hangul Compatibility Jamo\n  { 'begin': 0xA840, 'end': 0xA87F }, // Phags-pa\n  { 'begin': 0x3200, 'end': 0x32FF }, // Enclosed CJK Letters And Months\n  { 'begin': 0x3300, 'end': 0x33FF }, // CJK Compatibility\n  { 'begin': 0xAC00, 'end': 0xD7AF }, // Hangul Syllables\n  { 'begin': 0xD800, 'end': 0xDFFF }, // Non-Plane 0 *\n  { 'begin': 0x10900, 'end': 0x1091F }, // Phoenicia\n  { 'begin': 0x4E00, 'end': 0x9FFF }, // CJK Unified Ideographs\n  { 'begin': 0xE000, 'end': 0xF8FF }, // Private Use Area (plane 0)\n  { 'begin': 0x31C0, 'end': 0x31EF }, // CJK Strokes\n  { 'begin': 0xFB00, 'end': 0xFB4F }, // Alphabetic Presentation Forms\n  { 'begin': 0xFB50, 'end': 0xFDFF }, // Arabic Presentation Forms-A\n  { 'begin': 0xFE20, 'end': 0xFE2F }, // Combining Half Marks\n  { 'begin': 0xFE10, 'end': 0xFE1F }, // Vertical Forms\n  { 'begin': 0xFE50, 'end': 0xFE6F }, // Small Form Variants\n  { 'begin': 0xFE70, 'end': 0xFEFF }, // Arabic Presentation Forms-B\n  { 'begin': 0xFF00, 'end': 0xFFEF }, // Halfwidth And Fullwidth Forms\n  { 'begin': 0xFFF0, 'end': 0xFFFF }, // Specials\n  { 'begin': 0x0F00, 'end': 0x0FFF }, // Tibetan\n  { 'begin': 0x0700, 'end': 0x074F }, // Syriac\n  { 'begin': 0x0780, 'end': 0x07BF }, // Thaana\n  { 'begin': 0x0D80, 'end': 0x0DFF }, // Sinhala\n  { 'begin': 0x1000, 'end': 0x109F }, // Myanmar\n  { 'begin': 0x1200, 'end': 0x137F }, // Ethiopic\n  { 'begin': 0x13A0, 'end': 0x13FF }, // Cherokee\n  { 'begin': 0x1400, 'end': 0x167F }, // Unified Canadian Aboriginal Syllabics\n  { 'begin': 0x1680, 'end': 0x169F }, // Ogham\n  { 'begin': 0x16A0, 'end': 0x16FF }, // Runic\n  { 'begin': 0x1780, 'end': 0x17FF }, // Khmer\n  { 'begin': 0x1800, 'end': 0x18AF }, // Mongolian\n  { 'begin': 0x2800, 'end': 0x28FF }, // Braille Patterns\n  { 'begin': 0xA000, 'end': 0xA48F }, // Yi Syllables\n  { 'begin': 0x1700, 'end': 0x171F }, // Tagalog\n  { 'begin': 0x10300, 'end': 0x1032F }, // Old Italic\n  { 'begin': 0x10330, 'end': 0x1034F }, // Gothic\n  { 'begin': 0x10400, 'end': 0x1044F }, // Deseret\n  { 'begin': 0x1D000, 'end': 0x1D0FF }, // Byzantine Musical Symbols\n  { 'begin': 0x1D400, 'end': 0x1D7FF }, // Mathematical Alphanumeric Symbols\n  { 'begin': 0xFF000, 'end': 0xFFFFD }, // Private Use (plane 15)\n  { 'begin': 0xFE00, 'end': 0xFE0F }, // Variation Selectors\n  { 'begin': 0xE0000, 'end': 0xE007F }, // Tags\n  { 'begin': 0x1900, 'end': 0x194F }, // Limbu\n  { 'begin': 0x1950, 'end': 0x197F }, // Tai Le\n  { 'begin': 0x1980, 'end': 0x19DF }, // New Tai Lue\n  { 'begin': 0x1A00, 'end': 0x1A1F }, // Buginese\n  { 'begin': 0x2C00, 'end': 0x2C5F }, // Glagolitic\n  { 'begin': 0x2D30, 'end': 0x2D7F }, // Tifinagh\n  { 'begin': 0x4DC0, 'end': 0x4DFF }, // Yijing Hexagram Symbols\n  { 'begin': 0xA800, 'end': 0xA82F }, // Syloti Nagri\n  { 'begin': 0x10000, 'end': 0x1007F }, // Linear B Syllabary\n  { 'begin': 0x10140, 'end': 0x1018F }, // Ancient Greek Numbers\n  { 'begin': 0x10380, 'end': 0x1039F }, // Ugaritic\n  { 'begin': 0x103A0, 'end': 0x103DF }, // Old Persian\n  { 'begin': 0x10450, 'end': 0x1047F }, // Shavian\n  { 'begin': 0x10480, 'end': 0x104AF }, // Osmanya\n  { 'begin': 0x10800, 'end': 0x1083F }, // Cypriot Syllabary\n  { 'begin': 0x10A00, 'end': 0x10A5F }, // Kharoshthi\n  { 'begin': 0x1D300, 'end': 0x1D35F }, // Tai Xuan Jing Symbols\n  { 'begin': 0x12000, 'end': 0x123FF }, // Cuneiform\n  { 'begin': 0x1D360, 'end': 0x1D37F }, // Counting Rod Numerals\n  { 'begin': 0x1B80, 'end': 0x1BBF }, // Sundanese\n  { 'begin': 0x1C00, 'end': 0x1C4F }, // Lepcha\n  { 'begin': 0x1C50, 'end': 0x1C7F }, // Ol Chiki\n  { 'begin': 0xA880, 'end': 0xA8DF }, // Saurashtra\n  { 'begin': 0xA900, 'end': 0xA92F }, // Kayah Li\n  { 'begin': 0xA930, 'end': 0xA95F }, // Rejang\n  { 'begin': 0xAA00, 'end': 0xAA5F }, // Cham\n  { 'begin': 0x10190, 'end': 0x101CF }, // Ancient Symbols\n  { 'begin': 0x101D0, 'end': 0x101FF }, // Phaistos Disc\n  { 'begin': 0x102A0, 'end': 0x102DF }, // Carian\n  { 'begin': 0x1F030, 'end': 0x1F09F }  // Domino Tiles\n];\n\nvar MacStandardGlyphOrdering = [\n  '.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl',\n  'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft',\n  'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash',\n  'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight',\n  'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at',\n  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',\n  'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft',\n  'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b',\n  'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',\n  'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright',\n  'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde',\n  'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis',\n  'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis',\n  'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve',\n  'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex',\n  'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet',\n  'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute',\n  'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal',\n  'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi',\n  'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash',\n  'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin',\n  'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis',\n  'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash',\n  'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright',\n  'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency',\n  'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered',\n  'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex',\n  'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex',\n  'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute',\n  'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron',\n  'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron',\n  'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar',\n  'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply',\n  'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter',\n  'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla',\n  'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];\n\nfunction getUnicodeRangeFor(value) {\n  for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n    var range = UnicodeRanges[i];\n    if (value >= range.begin && value < range.end)\n      return i;\n  }\n  return -1;\n}\n\nfunction isRTLRangeFor(value) {\n  var range = UnicodeRanges[13];\n  if (value >= range.begin && value < range.end)\n    return true;\n  range = UnicodeRanges[11];\n  if (value >= range.begin && value < range.end)\n    return true;\n  return false;\n}\n\nfunction isSpecialUnicode(unicode) {\n  return (unicode <= 0x1F || (unicode >= 127 && unicode < GLYPH_AREA_SIZE)) ||\n    (unicode >= CMAP_GLYPH_OFFSET &&\n    unicode < CMAP_GLYPH_OFFSET + GLYPH_AREA_SIZE);\n}\n\n// The normalization table is obtained by filtering the Unicode characters\n// database with <compat> entries.\nvar NormalizedUnicodes = {\n  '\\u00A8': '\\u0020\\u0308',\n  '\\u00AF': '\\u0020\\u0304',\n  '\\u00B4': '\\u0020\\u0301',\n  '\\u00B5': '\\u03BC',\n  '\\u00B8': '\\u0020\\u0327',\n  '\\u0132': '\\u0049\\u004A',\n  '\\u0133': '\\u0069\\u006A',\n  '\\u013F': '\\u004C\\u00B7',\n  '\\u0140': '\\u006C\\u00B7',\n  '\\u0149': '\\u02BC\\u006E',\n  '\\u017F': '\\u0073',\n  '\\u01C4': '\\u0044\\u017D',\n  '\\u01C5': '\\u0044\\u017E',\n  '\\u01C6': '\\u0064\\u017E',\n  '\\u01C7': '\\u004C\\u004A',\n  '\\u01C8': '\\u004C\\u006A',\n  '\\u01C9': '\\u006C\\u006A',\n  '\\u01CA': '\\u004E\\u004A',\n  '\\u01CB': '\\u004E\\u006A',\n  '\\u01CC': '\\u006E\\u006A',\n  '\\u01F1': '\\u0044\\u005A',\n  '\\u01F2': '\\u0044\\u007A',\n  '\\u01F3': '\\u0064\\u007A',\n  '\\u02D8': '\\u0020\\u0306',\n  '\\u02D9': '\\u0020\\u0307',\n  '\\u02DA': '\\u0020\\u030A',\n  '\\u02DB': '\\u0020\\u0328',\n  '\\u02DC': '\\u0020\\u0303',\n  '\\u02DD': '\\u0020\\u030B',\n  '\\u037A': '\\u0020\\u0345',\n  '\\u0384': '\\u0020\\u0301',\n  '\\u03D0': '\\u03B2',\n  '\\u03D1': '\\u03B8',\n  '\\u03D2': '\\u03A5',\n  '\\u03D5': '\\u03C6',\n  '\\u03D6': '\\u03C0',\n  '\\u03F0': '\\u03BA',\n  '\\u03F1': '\\u03C1',\n  '\\u03F2': '\\u03C2',\n  '\\u03F4': '\\u0398',\n  '\\u03F5': '\\u03B5',\n  '\\u03F9': '\\u03A3',\n  '\\u0587': '\\u0565\\u0582',\n  '\\u0675': '\\u0627\\u0674',\n  '\\u0676': '\\u0648\\u0674',\n  '\\u0677': '\\u06C7\\u0674',\n  '\\u0678': '\\u064A\\u0674',\n  '\\u0E33': '\\u0E4D\\u0E32',\n  '\\u0EB3': '\\u0ECD\\u0EB2',\n  '\\u0EDC': '\\u0EAB\\u0E99',\n  '\\u0EDD': '\\u0EAB\\u0EA1',\n  '\\u0F77': '\\u0FB2\\u0F81',\n  '\\u0F79': '\\u0FB3\\u0F81',\n  '\\u1E9A': '\\u0061\\u02BE',\n  '\\u1FBD': '\\u0020\\u0313',\n  '\\u1FBF': '\\u0020\\u0313',\n  '\\u1FC0': '\\u0020\\u0342',\n  '\\u1FFE': '\\u0020\\u0314',\n  '\\u2002': '\\u0020',\n  '\\u2003': '\\u0020',\n  '\\u2004': '\\u0020',\n  '\\u2005': '\\u0020',\n  '\\u2006': '\\u0020',\n  '\\u2008': '\\u0020',\n  '\\u2009': '\\u0020',\n  '\\u200A': '\\u0020',\n  '\\u2017': '\\u0020\\u0333',\n  '\\u2024': '\\u002E',\n  '\\u2025': '\\u002E\\u002E',\n  '\\u2026': '\\u002E\\u002E\\u002E',\n  '\\u2033': '\\u2032\\u2032',\n  '\\u2034': '\\u2032\\u2032\\u2032',\n  '\\u2036': '\\u2035\\u2035',\n  '\\u2037': '\\u2035\\u2035\\u2035',\n  '\\u203C': '\\u0021\\u0021',\n  '\\u203E': '\\u0020\\u0305',\n  '\\u2047': '\\u003F\\u003F',\n  '\\u2048': '\\u003F\\u0021',\n  '\\u2049': '\\u0021\\u003F',\n  '\\u2057': '\\u2032\\u2032\\u2032\\u2032',\n  '\\u205F': '\\u0020',\n  '\\u20A8': '\\u0052\\u0073',\n  '\\u2100': '\\u0061\\u002F\\u0063',\n  '\\u2101': '\\u0061\\u002F\\u0073',\n  '\\u2103': '\\u00B0\\u0043',\n  '\\u2105': '\\u0063\\u002F\\u006F',\n  '\\u2106': '\\u0063\\u002F\\u0075',\n  '\\u2107': '\\u0190',\n  '\\u2109': '\\u00B0\\u0046',\n  '\\u2116': '\\u004E\\u006F',\n  '\\u2121': '\\u0054\\u0045\\u004C',\n  '\\u2135': '\\u05D0',\n  '\\u2136': '\\u05D1',\n  '\\u2137': '\\u05D2',\n  '\\u2138': '\\u05D3',\n  '\\u213B': '\\u0046\\u0041\\u0058',\n  '\\u2160': '\\u0049',\n  '\\u2161': '\\u0049\\u0049',\n  '\\u2162': '\\u0049\\u0049\\u0049',\n  '\\u2163': '\\u0049\\u0056',\n  '\\u2164': '\\u0056',\n  '\\u2165': '\\u0056\\u0049',\n  '\\u2166': '\\u0056\\u0049\\u0049',\n  '\\u2167': '\\u0056\\u0049\\u0049\\u0049',\n  '\\u2168': '\\u0049\\u0058',\n  '\\u2169': '\\u0058',\n  '\\u216A': '\\u0058\\u0049',\n  '\\u216B': '\\u0058\\u0049\\u0049',\n  '\\u216C': '\\u004C',\n  '\\u216D': '\\u0043',\n  '\\u216E': '\\u0044',\n  '\\u216F': '\\u004D',\n  '\\u2170': '\\u0069',\n  '\\u2171': '\\u0069\\u0069',\n  '\\u2172': '\\u0069\\u0069\\u0069',\n  '\\u2173': '\\u0069\\u0076',\n  '\\u2174': '\\u0076',\n  '\\u2175': '\\u0076\\u0069',\n  '\\u2176': '\\u0076\\u0069\\u0069',\n  '\\u2177': '\\u0076\\u0069\\u0069\\u0069',\n  '\\u2178': '\\u0069\\u0078',\n  '\\u2179': '\\u0078',\n  '\\u217A': '\\u0078\\u0069',\n  '\\u217B': '\\u0078\\u0069\\u0069',\n  '\\u217C': '\\u006C',\n  '\\u217D': '\\u0063',\n  '\\u217E': '\\u0064',\n  '\\u217F': '\\u006D',\n  '\\u222C': '\\u222B\\u222B',\n  '\\u222D': '\\u222B\\u222B\\u222B',\n  '\\u222F': '\\u222E\\u222E',\n  '\\u2230': '\\u222E\\u222E\\u222E',\n  '\\u2474': '\\u0028\\u0031\\u0029',\n  '\\u2475': '\\u0028\\u0032\\u0029',\n  '\\u2476': '\\u0028\\u0033\\u0029',\n  '\\u2477': '\\u0028\\u0034\\u0029',\n  '\\u2478': '\\u0028\\u0035\\u0029',\n  '\\u2479': '\\u0028\\u0036\\u0029',\n  '\\u247A': '\\u0028\\u0037\\u0029',\n  '\\u247B': '\\u0028\\u0038\\u0029',\n  '\\u247C': '\\u0028\\u0039\\u0029',\n  '\\u247D': '\\u0028\\u0031\\u0030\\u0029',\n  '\\u247E': '\\u0028\\u0031\\u0031\\u0029',\n  '\\u247F': '\\u0028\\u0031\\u0032\\u0029',\n  '\\u2480': '\\u0028\\u0031\\u0033\\u0029',\n  '\\u2481': '\\u0028\\u0031\\u0034\\u0029',\n  '\\u2482': '\\u0028\\u0031\\u0035\\u0029',\n  '\\u2483': '\\u0028\\u0031\\u0036\\u0029',\n  '\\u2484': '\\u0028\\u0031\\u0037\\u0029',\n  '\\u2485': '\\u0028\\u0031\\u0038\\u0029',\n  '\\u2486': '\\u0028\\u0031\\u0039\\u0029',\n  '\\u2487': '\\u0028\\u0032\\u0030\\u0029',\n  '\\u2488': '\\u0031\\u002E',\n  '\\u2489': '\\u0032\\u002E',\n  '\\u248A': '\\u0033\\u002E',\n  '\\u248B': '\\u0034\\u002E',\n  '\\u248C': '\\u0035\\u002E',\n  '\\u248D': '\\u0036\\u002E',\n  '\\u248E': '\\u0037\\u002E',\n  '\\u248F': '\\u0038\\u002E',\n  '\\u2490': '\\u0039\\u002E',\n  '\\u2491': '\\u0031\\u0030\\u002E',\n  '\\u2492': '\\u0031\\u0031\\u002E',\n  '\\u2493': '\\u0031\\u0032\\u002E',\n  '\\u2494': '\\u0031\\u0033\\u002E',\n  '\\u2495': '\\u0031\\u0034\\u002E',\n  '\\u2496': '\\u0031\\u0035\\u002E',\n  '\\u2497': '\\u0031\\u0036\\u002E',\n  '\\u2498': '\\u0031\\u0037\\u002E',\n  '\\u2499': '\\u0031\\u0038\\u002E',\n  '\\u249A': '\\u0031\\u0039\\u002E',\n  '\\u249B': '\\u0032\\u0030\\u002E',\n  '\\u249C': '\\u0028\\u0061\\u0029',\n  '\\u249D': '\\u0028\\u0062\\u0029',\n  '\\u249E': '\\u0028\\u0063\\u0029',\n  '\\u249F': '\\u0028\\u0064\\u0029',\n  '\\u24A0': '\\u0028\\u0065\\u0029',\n  '\\u24A1': '\\u0028\\u0066\\u0029',\n  '\\u24A2': '\\u0028\\u0067\\u0029',\n  '\\u24A3': '\\u0028\\u0068\\u0029',\n  '\\u24A4': '\\u0028\\u0069\\u0029',\n  '\\u24A5': '\\u0028\\u006A\\u0029',\n  '\\u24A6': '\\u0028\\u006B\\u0029',\n  '\\u24A7': '\\u0028\\u006C\\u0029',\n  '\\u24A8': '\\u0028\\u006D\\u0029',\n  '\\u24A9': '\\u0028\\u006E\\u0029',\n  '\\u24AA': '\\u0028\\u006F\\u0029',\n  '\\u24AB': '\\u0028\\u0070\\u0029',\n  '\\u24AC': '\\u0028\\u0071\\u0029',\n  '\\u24AD': '\\u0028\\u0072\\u0029',\n  '\\u24AE': '\\u0028\\u0073\\u0029',\n  '\\u24AF': '\\u0028\\u0074\\u0029',\n  '\\u24B0': '\\u0028\\u0075\\u0029',\n  '\\u24B1': '\\u0028\\u0076\\u0029',\n  '\\u24B2': '\\u0028\\u0077\\u0029',\n  '\\u24B3': '\\u0028\\u0078\\u0029',\n  '\\u24B4': '\\u0028\\u0079\\u0029',\n  '\\u24B5': '\\u0028\\u007A\\u0029',\n  '\\u2A0C': '\\u222B\\u222B\\u222B\\u222B',\n  '\\u2A74': '\\u003A\\u003A\\u003D',\n  '\\u2A75': '\\u003D\\u003D',\n  '\\u2A76': '\\u003D\\u003D\\u003D',\n  '\\u2E9F': '\\u6BCD',\n  '\\u2EF3': '\\u9F9F',\n  '\\u2F00': '\\u4E00',\n  '\\u2F01': '\\u4E28',\n  '\\u2F02': '\\u4E36',\n  '\\u2F03': '\\u4E3F',\n  '\\u2F04': '\\u4E59',\n  '\\u2F05': '\\u4E85',\n  '\\u2F06': '\\u4E8C',\n  '\\u2F07': '\\u4EA0',\n  '\\u2F08': '\\u4EBA',\n  '\\u2F09': '\\u513F',\n  '\\u2F0A': '\\u5165',\n  '\\u2F0B': '\\u516B',\n  '\\u2F0C': '\\u5182',\n  '\\u2F0D': '\\u5196',\n  '\\u2F0E': '\\u51AB',\n  '\\u2F0F': '\\u51E0',\n  '\\u2F10': '\\u51F5',\n  '\\u2F11': '\\u5200',\n  '\\u2F12': '\\u529B',\n  '\\u2F13': '\\u52F9',\n  '\\u2F14': '\\u5315',\n  '\\u2F15': '\\u531A',\n  '\\u2F16': '\\u5338',\n  '\\u2F17': '\\u5341',\n  '\\u2F18': '\\u535C',\n  '\\u2F19': '\\u5369',\n  '\\u2F1A': '\\u5382',\n  '\\u2F1B': '\\u53B6',\n  '\\u2F1C': '\\u53C8',\n  '\\u2F1D': '\\u53E3',\n  '\\u2F1E': '\\u56D7',\n  '\\u2F1F': '\\u571F',\n  '\\u2F20': '\\u58EB',\n  '\\u2F21': '\\u5902',\n  '\\u2F22': '\\u590A',\n  '\\u2F23': '\\u5915',\n  '\\u2F24': '\\u5927',\n  '\\u2F25': '\\u5973',\n  '\\u2F26': '\\u5B50',\n  '\\u2F27': '\\u5B80',\n  '\\u2F28': '\\u5BF8',\n  '\\u2F29': '\\u5C0F',\n  '\\u2F2A': '\\u5C22',\n  '\\u2F2B': '\\u5C38',\n  '\\u2F2C': '\\u5C6E',\n  '\\u2F2D': '\\u5C71',\n  '\\u2F2E': '\\u5DDB',\n  '\\u2F2F': '\\u5DE5',\n  '\\u2F30': '\\u5DF1',\n  '\\u2F31': '\\u5DFE',\n  '\\u2F32': '\\u5E72',\n  '\\u2F33': '\\u5E7A',\n  '\\u2F34': '\\u5E7F',\n  '\\u2F35': '\\u5EF4',\n  '\\u2F36': '\\u5EFE',\n  '\\u2F37': '\\u5F0B',\n  '\\u2F38': '\\u5F13',\n  '\\u2F39': '\\u5F50',\n  '\\u2F3A': '\\u5F61',\n  '\\u2F3B': '\\u5F73',\n  '\\u2F3C': '\\u5FC3',\n  '\\u2F3D': '\\u6208',\n  '\\u2F3E': '\\u6236',\n  '\\u2F3F': '\\u624B',\n  '\\u2F40': '\\u652F',\n  '\\u2F41': '\\u6534',\n  '\\u2F42': '\\u6587',\n  '\\u2F43': '\\u6597',\n  '\\u2F44': '\\u65A4',\n  '\\u2F45': '\\u65B9',\n  '\\u2F46': '\\u65E0',\n  '\\u2F47': '\\u65E5',\n  '\\u2F48': '\\u66F0',\n  '\\u2F49': '\\u6708',\n  '\\u2F4A': '\\u6728',\n  '\\u2F4B': '\\u6B20',\n  '\\u2F4C': '\\u6B62',\n  '\\u2F4D': '\\u6B79',\n  '\\u2F4E': '\\u6BB3',\n  '\\u2F4F': '\\u6BCB',\n  '\\u2F50': '\\u6BD4',\n  '\\u2F51': '\\u6BDB',\n  '\\u2F52': '\\u6C0F',\n  '\\u2F53': '\\u6C14',\n  '\\u2F54': '\\u6C34',\n  '\\u2F55': '\\u706B',\n  '\\u2F56': '\\u722A',\n  '\\u2F57': '\\u7236',\n  '\\u2F58': '\\u723B',\n  '\\u2F59': '\\u723F',\n  '\\u2F5A': '\\u7247',\n  '\\u2F5B': '\\u7259',\n  '\\u2F5C': '\\u725B',\n  '\\u2F5D': '\\u72AC',\n  '\\u2F5E': '\\u7384',\n  '\\u2F5F': '\\u7389',\n  '\\u2F60': '\\u74DC',\n  '\\u2F61': '\\u74E6',\n  '\\u2F62': '\\u7518',\n  '\\u2F63': '\\u751F',\n  '\\u2F64': '\\u7528',\n  '\\u2F65': '\\u7530',\n  '\\u2F66': '\\u758B',\n  '\\u2F67': '\\u7592',\n  '\\u2F68': '\\u7676',\n  '\\u2F69': '\\u767D',\n  '\\u2F6A': '\\u76AE',\n  '\\u2F6B': '\\u76BF',\n  '\\u2F6C': '\\u76EE',\n  '\\u2F6D': '\\u77DB',\n  '\\u2F6E': '\\u77E2',\n  '\\u2F6F': '\\u77F3',\n  '\\u2F70': '\\u793A',\n  '\\u2F71': '\\u79B8',\n  '\\u2F72': '\\u79BE',\n  '\\u2F73': '\\u7A74',\n  '\\u2F74': '\\u7ACB',\n  '\\u2F75': '\\u7AF9',\n  '\\u2F76': '\\u7C73',\n  '\\u2F77': '\\u7CF8',\n  '\\u2F78': '\\u7F36',\n  '\\u2F79': '\\u7F51',\n  '\\u2F7A': '\\u7F8A',\n  '\\u2F7B': '\\u7FBD',\n  '\\u2F7C': '\\u8001',\n  '\\u2F7D': '\\u800C',\n  '\\u2F7E': '\\u8012',\n  '\\u2F7F': '\\u8033',\n  '\\u2F80': '\\u807F',\n  '\\u2F81': '\\u8089',\n  '\\u2F82': '\\u81E3',\n  '\\u2F83': '\\u81EA',\n  '\\u2F84': '\\u81F3',\n  '\\u2F85': '\\u81FC',\n  '\\u2F86': '\\u820C',\n  '\\u2F87': '\\u821B',\n  '\\u2F88': '\\u821F',\n  '\\u2F89': '\\u826E',\n  '\\u2F8A': '\\u8272',\n  '\\u2F8B': '\\u8278',\n  '\\u2F8C': '\\u864D',\n  '\\u2F8D': '\\u866B',\n  '\\u2F8E': '\\u8840',\n  '\\u2F8F': '\\u884C',\n  '\\u2F90': '\\u8863',\n  '\\u2F91': '\\u897E',\n  '\\u2F92': '\\u898B',\n  '\\u2F93': '\\u89D2',\n  '\\u2F94': '\\u8A00',\n  '\\u2F95': '\\u8C37',\n  '\\u2F96': '\\u8C46',\n  '\\u2F97': '\\u8C55',\n  '\\u2F98': '\\u8C78',\n  '\\u2F99': '\\u8C9D',\n  '\\u2F9A': '\\u8D64',\n  '\\u2F9B': '\\u8D70',\n  '\\u2F9C': '\\u8DB3',\n  '\\u2F9D': '\\u8EAB',\n  '\\u2F9E': '\\u8ECA',\n  '\\u2F9F': '\\u8F9B',\n  '\\u2FA0': '\\u8FB0',\n  '\\u2FA1': '\\u8FB5',\n  '\\u2FA2': '\\u9091',\n  '\\u2FA3': '\\u9149',\n  '\\u2FA4': '\\u91C6',\n  '\\u2FA5': '\\u91CC',\n  '\\u2FA6': '\\u91D1',\n  '\\u2FA7': '\\u9577',\n  '\\u2FA8': '\\u9580',\n  '\\u2FA9': '\\u961C',\n  '\\u2FAA': '\\u96B6',\n  '\\u2FAB': '\\u96B9',\n  '\\u2FAC': '\\u96E8',\n  '\\u2FAD': '\\u9751',\n  '\\u2FAE': '\\u975E',\n  '\\u2FAF': '\\u9762',\n  '\\u2FB0': '\\u9769',\n  '\\u2FB1': '\\u97CB',\n  '\\u2FB2': '\\u97ED',\n  '\\u2FB3': '\\u97F3',\n  '\\u2FB4': '\\u9801',\n  '\\u2FB5': '\\u98A8',\n  '\\u2FB6': '\\u98DB',\n  '\\u2FB7': '\\u98DF',\n  '\\u2FB8': '\\u9996',\n  '\\u2FB9': '\\u9999',\n  '\\u2FBA': '\\u99AC',\n  '\\u2FBB': '\\u9AA8',\n  '\\u2FBC': '\\u9AD8',\n  '\\u2FBD': '\\u9ADF',\n  '\\u2FBE': '\\u9B25',\n  '\\u2FBF': '\\u9B2F',\n  '\\u2FC0': '\\u9B32',\n  '\\u2FC1': '\\u9B3C',\n  '\\u2FC2': '\\u9B5A',\n  '\\u2FC3': '\\u9CE5',\n  '\\u2FC4': '\\u9E75',\n  '\\u2FC5': '\\u9E7F',\n  '\\u2FC6': '\\u9EA5',\n  '\\u2FC7': '\\u9EBB',\n  '\\u2FC8': '\\u9EC3',\n  '\\u2FC9': '\\u9ECD',\n  '\\u2FCA': '\\u9ED1',\n  '\\u2FCB': '\\u9EF9',\n  '\\u2FCC': '\\u9EFD',\n  '\\u2FCD': '\\u9F0E',\n  '\\u2FCE': '\\u9F13',\n  '\\u2FCF': '\\u9F20',\n  '\\u2FD0': '\\u9F3B',\n  '\\u2FD1': '\\u9F4A',\n  '\\u2FD2': '\\u9F52',\n  '\\u2FD3': '\\u9F8D',\n  '\\u2FD4': '\\u9F9C',\n  '\\u2FD5': '\\u9FA0',\n  '\\u3036': '\\u3012',\n  '\\u3038': '\\u5341',\n  '\\u3039': '\\u5344',\n  '\\u303A': '\\u5345',\n  '\\u309B': '\\u0020\\u3099',\n  '\\u309C': '\\u0020\\u309A',\n  '\\u3131': '\\u1100',\n  '\\u3132': '\\u1101',\n  '\\u3133': '\\u11AA',\n  '\\u3134': '\\u1102',\n  '\\u3135': '\\u11AC',\n  '\\u3136': '\\u11AD',\n  '\\u3137': '\\u1103',\n  '\\u3138': '\\u1104',\n  '\\u3139': '\\u1105',\n  '\\u313A': '\\u11B0',\n  '\\u313B': '\\u11B1',\n  '\\u313C': '\\u11B2',\n  '\\u313D': '\\u11B3',\n  '\\u313E': '\\u11B4',\n  '\\u313F': '\\u11B5',\n  '\\u3140': '\\u111A',\n  '\\u3141': '\\u1106',\n  '\\u3142': '\\u1107',\n  '\\u3143': '\\u1108',\n  '\\u3144': '\\u1121',\n  '\\u3145': '\\u1109',\n  '\\u3146': '\\u110A',\n  '\\u3147': '\\u110B',\n  '\\u3148': '\\u110C',\n  '\\u3149': '\\u110D',\n  '\\u314A': '\\u110E',\n  '\\u314B': '\\u110F',\n  '\\u314C': '\\u1110',\n  '\\u314D': '\\u1111',\n  '\\u314E': '\\u1112',\n  '\\u314F': '\\u1161',\n  '\\u3150': '\\u1162',\n  '\\u3151': '\\u1163',\n  '\\u3152': '\\u1164',\n  '\\u3153': '\\u1165',\n  '\\u3154': '\\u1166',\n  '\\u3155': '\\u1167',\n  '\\u3156': '\\u1168',\n  '\\u3157': '\\u1169',\n  '\\u3158': '\\u116A',\n  '\\u3159': '\\u116B',\n  '\\u315A': '\\u116C',\n  '\\u315B': '\\u116D',\n  '\\u315C': '\\u116E',\n  '\\u315D': '\\u116F',\n  '\\u315E': '\\u1170',\n  '\\u315F': '\\u1171',\n  '\\u3160': '\\u1172',\n  '\\u3161': '\\u1173',\n  '\\u3162': '\\u1174',\n  '\\u3163': '\\u1175',\n  '\\u3164': '\\u1160',\n  '\\u3165': '\\u1114',\n  '\\u3166': '\\u1115',\n  '\\u3167': '\\u11C7',\n  '\\u3168': '\\u11C8',\n  '\\u3169': '\\u11CC',\n  '\\u316A': '\\u11CE',\n  '\\u316B': '\\u11D3',\n  '\\u316C': '\\u11D7',\n  '\\u316D': '\\u11D9',\n  '\\u316E': '\\u111C',\n  '\\u316F': '\\u11DD',\n  '\\u3170': '\\u11DF',\n  '\\u3171': '\\u111D',\n  '\\u3172': '\\u111E',\n  '\\u3173': '\\u1120',\n  '\\u3174': '\\u1122',\n  '\\u3175': '\\u1123',\n  '\\u3176': '\\u1127',\n  '\\u3177': '\\u1129',\n  '\\u3178': '\\u112B',\n  '\\u3179': '\\u112C',\n  '\\u317A': '\\u112D',\n  '\\u317B': '\\u112E',\n  '\\u317C': '\\u112F',\n  '\\u317D': '\\u1132',\n  '\\u317E': '\\u1136',\n  '\\u317F': '\\u1140',\n  '\\u3180': '\\u1147',\n  '\\u3181': '\\u114C',\n  '\\u3182': '\\u11F1',\n  '\\u3183': '\\u11F2',\n  '\\u3184': '\\u1157',\n  '\\u3185': '\\u1158',\n  '\\u3186': '\\u1159',\n  '\\u3187': '\\u1184',\n  '\\u3188': '\\u1185',\n  '\\u3189': '\\u1188',\n  '\\u318A': '\\u1191',\n  '\\u318B': '\\u1192',\n  '\\u318C': '\\u1194',\n  '\\u318D': '\\u119E',\n  '\\u318E': '\\u11A1',\n  '\\u3200': '\\u0028\\u1100\\u0029',\n  '\\u3201': '\\u0028\\u1102\\u0029',\n  '\\u3202': '\\u0028\\u1103\\u0029',\n  '\\u3203': '\\u0028\\u1105\\u0029',\n  '\\u3204': '\\u0028\\u1106\\u0029',\n  '\\u3205': '\\u0028\\u1107\\u0029',\n  '\\u3206': '\\u0028\\u1109\\u0029',\n  '\\u3207': '\\u0028\\u110B\\u0029',\n  '\\u3208': '\\u0028\\u110C\\u0029',\n  '\\u3209': '\\u0028\\u110E\\u0029',\n  '\\u320A': '\\u0028\\u110F\\u0029',\n  '\\u320B': '\\u0028\\u1110\\u0029',\n  '\\u320C': '\\u0028\\u1111\\u0029',\n  '\\u320D': '\\u0028\\u1112\\u0029',\n  '\\u320E': '\\u0028\\u1100\\u1161\\u0029',\n  '\\u320F': '\\u0028\\u1102\\u1161\\u0029',\n  '\\u3210': '\\u0028\\u1103\\u1161\\u0029',\n  '\\u3211': '\\u0028\\u1105\\u1161\\u0029',\n  '\\u3212': '\\u0028\\u1106\\u1161\\u0029',\n  '\\u3213': '\\u0028\\u1107\\u1161\\u0029',\n  '\\u3214': '\\u0028\\u1109\\u1161\\u0029',\n  '\\u3215': '\\u0028\\u110B\\u1161\\u0029',\n  '\\u3216': '\\u0028\\u110C\\u1161\\u0029',\n  '\\u3217': '\\u0028\\u110E\\u1161\\u0029',\n  '\\u3218': '\\u0028\\u110F\\u1161\\u0029',\n  '\\u3219': '\\u0028\\u1110\\u1161\\u0029',\n  '\\u321A': '\\u0028\\u1111\\u1161\\u0029',\n  '\\u321B': '\\u0028\\u1112\\u1161\\u0029',\n  '\\u321C': '\\u0028\\u110C\\u116E\\u0029',\n  '\\u321D': '\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029',\n  '\\u321E': '\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029',\n  '\\u3220': '\\u0028\\u4E00\\u0029',\n  '\\u3221': '\\u0028\\u4E8C\\u0029',\n  '\\u3222': '\\u0028\\u4E09\\u0029',\n  '\\u3223': '\\u0028\\u56DB\\u0029',\n  '\\u3224': '\\u0028\\u4E94\\u0029',\n  '\\u3225': '\\u0028\\u516D\\u0029',\n  '\\u3226': '\\u0028\\u4E03\\u0029',\n  '\\u3227': '\\u0028\\u516B\\u0029',\n  '\\u3228': '\\u0028\\u4E5D\\u0029',\n  '\\u3229': '\\u0028\\u5341\\u0029',\n  '\\u322A': '\\u0028\\u6708\\u0029',\n  '\\u322B': '\\u0028\\u706B\\u0029',\n  '\\u322C': '\\u0028\\u6C34\\u0029',\n  '\\u322D': '\\u0028\\u6728\\u0029',\n  '\\u322E': '\\u0028\\u91D1\\u0029',\n  '\\u322F': '\\u0028\\u571F\\u0029',\n  '\\u3230': '\\u0028\\u65E5\\u0029',\n  '\\u3231': '\\u0028\\u682A\\u0029',\n  '\\u3232': '\\u0028\\u6709\\u0029',\n  '\\u3233': '\\u0028\\u793E\\u0029',\n  '\\u3234': '\\u0028\\u540D\\u0029',\n  '\\u3235': '\\u0028\\u7279\\u0029',\n  '\\u3236': '\\u0028\\u8CA1\\u0029',\n  '\\u3237': '\\u0028\\u795D\\u0029',\n  '\\u3238': '\\u0028\\u52B4\\u0029',\n  '\\u3239': '\\u0028\\u4EE3\\u0029',\n  '\\u323A': '\\u0028\\u547C\\u0029',\n  '\\u323B': '\\u0028\\u5B66\\u0029',\n  '\\u323C': '\\u0028\\u76E3\\u0029',\n  '\\u323D': '\\u0028\\u4F01\\u0029',\n  '\\u323E': '\\u0028\\u8CC7\\u0029',\n  '\\u323F': '\\u0028\\u5354\\u0029',\n  '\\u3240': '\\u0028\\u796D\\u0029',\n  '\\u3241': '\\u0028\\u4F11\\u0029',\n  '\\u3242': '\\u0028\\u81EA\\u0029',\n  '\\u3243': '\\u0028\\u81F3\\u0029',\n  '\\u32C0': '\\u0031\\u6708',\n  '\\u32C1': '\\u0032\\u6708',\n  '\\u32C2': '\\u0033\\u6708',\n  '\\u32C3': '\\u0034\\u6708',\n  '\\u32C4': '\\u0035\\u6708',\n  '\\u32C5': '\\u0036\\u6708',\n  '\\u32C6': '\\u0037\\u6708',\n  '\\u32C7': '\\u0038\\u6708',\n  '\\u32C8': '\\u0039\\u6708',\n  '\\u32C9': '\\u0031\\u0030\\u6708',\n  '\\u32CA': '\\u0031\\u0031\\u6708',\n  '\\u32CB': '\\u0031\\u0032\\u6708',\n  '\\u3358': '\\u0030\\u70B9',\n  '\\u3359': '\\u0031\\u70B9',\n  '\\u335A': '\\u0032\\u70B9',\n  '\\u335B': '\\u0033\\u70B9',\n  '\\u335C': '\\u0034\\u70B9',\n  '\\u335D': '\\u0035\\u70B9',\n  '\\u335E': '\\u0036\\u70B9',\n  '\\u335F': '\\u0037\\u70B9',\n  '\\u3360': '\\u0038\\u70B9',\n  '\\u3361': '\\u0039\\u70B9',\n  '\\u3362': '\\u0031\\u0030\\u70B9',\n  '\\u3363': '\\u0031\\u0031\\u70B9',\n  '\\u3364': '\\u0031\\u0032\\u70B9',\n  '\\u3365': '\\u0031\\u0033\\u70B9',\n  '\\u3366': '\\u0031\\u0034\\u70B9',\n  '\\u3367': '\\u0031\\u0035\\u70B9',\n  '\\u3368': '\\u0031\\u0036\\u70B9',\n  '\\u3369': '\\u0031\\u0037\\u70B9',\n  '\\u336A': '\\u0031\\u0038\\u70B9',\n  '\\u336B': '\\u0031\\u0039\\u70B9',\n  '\\u336C': '\\u0032\\u0030\\u70B9',\n  '\\u336D': '\\u0032\\u0031\\u70B9',\n  '\\u336E': '\\u0032\\u0032\\u70B9',\n  '\\u336F': '\\u0032\\u0033\\u70B9',\n  '\\u3370': '\\u0032\\u0034\\u70B9',\n  '\\u33E0': '\\u0031\\u65E5',\n  '\\u33E1': '\\u0032\\u65E5',\n  '\\u33E2': '\\u0033\\u65E5',\n  '\\u33E3': '\\u0034\\u65E5',\n  '\\u33E4': '\\u0035\\u65E5',\n  '\\u33E5': '\\u0036\\u65E5',\n  '\\u33E6': '\\u0037\\u65E5',\n  '\\u33E7': '\\u0038\\u65E5',\n  '\\u33E8': '\\u0039\\u65E5',\n  '\\u33E9': '\\u0031\\u0030\\u65E5',\n  '\\u33EA': '\\u0031\\u0031\\u65E5',\n  '\\u33EB': '\\u0031\\u0032\\u65E5',\n  '\\u33EC': '\\u0031\\u0033\\u65E5',\n  '\\u33ED': '\\u0031\\u0034\\u65E5',\n  '\\u33EE': '\\u0031\\u0035\\u65E5',\n  '\\u33EF': '\\u0031\\u0036\\u65E5',\n  '\\u33F0': '\\u0031\\u0037\\u65E5',\n  '\\u33F1': '\\u0031\\u0038\\u65E5',\n  '\\u33F2': '\\u0031\\u0039\\u65E5',\n  '\\u33F3': '\\u0032\\u0030\\u65E5',\n  '\\u33F4': '\\u0032\\u0031\\u65E5',\n  '\\u33F5': '\\u0032\\u0032\\u65E5',\n  '\\u33F6': '\\u0032\\u0033\\u65E5',\n  '\\u33F7': '\\u0032\\u0034\\u65E5',\n  '\\u33F8': '\\u0032\\u0035\\u65E5',\n  '\\u33F9': '\\u0032\\u0036\\u65E5',\n  '\\u33FA': '\\u0032\\u0037\\u65E5',\n  '\\u33FB': '\\u0032\\u0038\\u65E5',\n  '\\u33FC': '\\u0032\\u0039\\u65E5',\n  '\\u33FD': '\\u0033\\u0030\\u65E5',\n  '\\u33FE': '\\u0033\\u0031\\u65E5',\n  '\\uFB00': '\\u0066\\u0066',\n  '\\uFB01': '\\u0066\\u0069',\n  '\\uFB02': '\\u0066\\u006C',\n  '\\uFB03': '\\u0066\\u0066\\u0069',\n  '\\uFB04': '\\u0066\\u0066\\u006C',\n  '\\uFB05': '\\u017F\\u0074',\n  '\\uFB06': '\\u0073\\u0074',\n  '\\uFB13': '\\u0574\\u0576',\n  '\\uFB14': '\\u0574\\u0565',\n  '\\uFB15': '\\u0574\\u056B',\n  '\\uFB16': '\\u057E\\u0576',\n  '\\uFB17': '\\u0574\\u056D',\n  '\\uFB4F': '\\u05D0\\u05DC',\n  '\\uFB50': '\\u0671',\n  '\\uFB51': '\\u0671',\n  '\\uFB52': '\\u067B',\n  '\\uFB53': '\\u067B',\n  '\\uFB54': '\\u067B',\n  '\\uFB55': '\\u067B',\n  '\\uFB56': '\\u067E',\n  '\\uFB57': '\\u067E',\n  '\\uFB58': '\\u067E',\n  '\\uFB59': '\\u067E',\n  '\\uFB5A': '\\u0680',\n  '\\uFB5B': '\\u0680',\n  '\\uFB5C': '\\u0680',\n  '\\uFB5D': '\\u0680',\n  '\\uFB5E': '\\u067A',\n  '\\uFB5F': '\\u067A',\n  '\\uFB60': '\\u067A',\n  '\\uFB61': '\\u067A',\n  '\\uFB62': '\\u067F',\n  '\\uFB63': '\\u067F',\n  '\\uFB64': '\\u067F',\n  '\\uFB65': '\\u067F',\n  '\\uFB66': '\\u0679',\n  '\\uFB67': '\\u0679',\n  '\\uFB68': '\\u0679',\n  '\\uFB69': '\\u0679',\n  '\\uFB6A': '\\u06A4',\n  '\\uFB6B': '\\u06A4',\n  '\\uFB6C': '\\u06A4',\n  '\\uFB6D': '\\u06A4',\n  '\\uFB6E': '\\u06A6',\n  '\\uFB6F': '\\u06A6',\n  '\\uFB70': '\\u06A6',\n  '\\uFB71': '\\u06A6',\n  '\\uFB72': '\\u0684',\n  '\\uFB73': '\\u0684',\n  '\\uFB74': '\\u0684',\n  '\\uFB75': '\\u0684',\n  '\\uFB76': '\\u0683',\n  '\\uFB77': '\\u0683',\n  '\\uFB78': '\\u0683',\n  '\\uFB79': '\\u0683',\n  '\\uFB7A': '\\u0686',\n  '\\uFB7B': '\\u0686',\n  '\\uFB7C': '\\u0686',\n  '\\uFB7D': '\\u0686',\n  '\\uFB7E': '\\u0687',\n  '\\uFB7F': '\\u0687',\n  '\\uFB80': '\\u0687',\n  '\\uFB81': '\\u0687',\n  '\\uFB82': '\\u068D',\n  '\\uFB83': '\\u068D',\n  '\\uFB84': '\\u068C',\n  '\\uFB85': '\\u068C',\n  '\\uFB86': '\\u068E',\n  '\\uFB87': '\\u068E',\n  '\\uFB88': '\\u0688',\n  '\\uFB89': '\\u0688',\n  '\\uFB8A': '\\u0698',\n  '\\uFB8B': '\\u0698',\n  '\\uFB8C': '\\u0691',\n  '\\uFB8D': '\\u0691',\n  '\\uFB8E': '\\u06A9',\n  '\\uFB8F': '\\u06A9',\n  '\\uFB90': '\\u06A9',\n  '\\uFB91': '\\u06A9',\n  '\\uFB92': '\\u06AF',\n  '\\uFB93': '\\u06AF',\n  '\\uFB94': '\\u06AF',\n  '\\uFB95': '\\u06AF',\n  '\\uFB96': '\\u06B3',\n  '\\uFB97': '\\u06B3',\n  '\\uFB98': '\\u06B3',\n  '\\uFB99': '\\u06B3',\n  '\\uFB9A': '\\u06B1',\n  '\\uFB9B': '\\u06B1',\n  '\\uFB9C': '\\u06B1',\n  '\\uFB9D': '\\u06B1',\n  '\\uFB9E': '\\u06BA',\n  '\\uFB9F': '\\u06BA',\n  '\\uFBA0': '\\u06BB',\n  '\\uFBA1': '\\u06BB',\n  '\\uFBA2': '\\u06BB',\n  '\\uFBA3': '\\u06BB',\n  '\\uFBA4': '\\u06C0',\n  '\\uFBA5': '\\u06C0',\n  '\\uFBA6': '\\u06C1',\n  '\\uFBA7': '\\u06C1',\n  '\\uFBA8': '\\u06C1',\n  '\\uFBA9': '\\u06C1',\n  '\\uFBAA': '\\u06BE',\n  '\\uFBAB': '\\u06BE',\n  '\\uFBAC': '\\u06BE',\n  '\\uFBAD': '\\u06BE',\n  '\\uFBAE': '\\u06D2',\n  '\\uFBAF': '\\u06D2',\n  '\\uFBB0': '\\u06D3',\n  '\\uFBB1': '\\u06D3',\n  '\\uFBD3': '\\u06AD',\n  '\\uFBD4': '\\u06AD',\n  '\\uFBD5': '\\u06AD',\n  '\\uFBD6': '\\u06AD',\n  '\\uFBD7': '\\u06C7',\n  '\\uFBD8': '\\u06C7',\n  '\\uFBD9': '\\u06C6',\n  '\\uFBDA': '\\u06C6',\n  '\\uFBDB': '\\u06C8',\n  '\\uFBDC': '\\u06C8',\n  '\\uFBDD': '\\u0677',\n  '\\uFBDE': '\\u06CB',\n  '\\uFBDF': '\\u06CB',\n  '\\uFBE0': '\\u06C5',\n  '\\uFBE1': '\\u06C5',\n  '\\uFBE2': '\\u06C9',\n  '\\uFBE3': '\\u06C9',\n  '\\uFBE4': '\\u06D0',\n  '\\uFBE5': '\\u06D0',\n  '\\uFBE6': '\\u06D0',\n  '\\uFBE7': '\\u06D0',\n  '\\uFBE8': '\\u0649',\n  '\\uFBE9': '\\u0649',\n  '\\uFBEA': '\\u0626\\u0627',\n  '\\uFBEB': '\\u0626\\u0627',\n  '\\uFBEC': '\\u0626\\u06D5',\n  '\\uFBED': '\\u0626\\u06D5',\n  '\\uFBEE': '\\u0626\\u0648',\n  '\\uFBEF': '\\u0626\\u0648',\n  '\\uFBF0': '\\u0626\\u06C7',\n  '\\uFBF1': '\\u0626\\u06C7',\n  '\\uFBF2': '\\u0626\\u06C6',\n  '\\uFBF3': '\\u0626\\u06C6',\n  '\\uFBF4': '\\u0626\\u06C8',\n  '\\uFBF5': '\\u0626\\u06C8',\n  '\\uFBF6': '\\u0626\\u06D0',\n  '\\uFBF7': '\\u0626\\u06D0',\n  '\\uFBF8': '\\u0626\\u06D0',\n  '\\uFBF9': '\\u0626\\u0649',\n  '\\uFBFA': '\\u0626\\u0649',\n  '\\uFBFB': '\\u0626\\u0649',\n  '\\uFBFC': '\\u06CC',\n  '\\uFBFD': '\\u06CC',\n  '\\uFBFE': '\\u06CC',\n  '\\uFBFF': '\\u06CC',\n  '\\uFC00': '\\u0626\\u062C',\n  '\\uFC01': '\\u0626\\u062D',\n  '\\uFC02': '\\u0626\\u0645',\n  '\\uFC03': '\\u0626\\u0649',\n  '\\uFC04': '\\u0626\\u064A',\n  '\\uFC05': '\\u0628\\u062C',\n  '\\uFC06': '\\u0628\\u062D',\n  '\\uFC07': '\\u0628\\u062E',\n  '\\uFC08': '\\u0628\\u0645',\n  '\\uFC09': '\\u0628\\u0649',\n  '\\uFC0A': '\\u0628\\u064A',\n  '\\uFC0B': '\\u062A\\u062C',\n  '\\uFC0C': '\\u062A\\u062D',\n  '\\uFC0D': '\\u062A\\u062E',\n  '\\uFC0E': '\\u062A\\u0645',\n  '\\uFC0F': '\\u062A\\u0649',\n  '\\uFC10': '\\u062A\\u064A',\n  '\\uFC11': '\\u062B\\u062C',\n  '\\uFC12': '\\u062B\\u0645',\n  '\\uFC13': '\\u062B\\u0649',\n  '\\uFC14': '\\u062B\\u064A',\n  '\\uFC15': '\\u062C\\u062D',\n  '\\uFC16': '\\u062C\\u0645',\n  '\\uFC17': '\\u062D\\u062C',\n  '\\uFC18': '\\u062D\\u0645',\n  '\\uFC19': '\\u062E\\u062C',\n  '\\uFC1A': '\\u062E\\u062D',\n  '\\uFC1B': '\\u062E\\u0645',\n  '\\uFC1C': '\\u0633\\u062C',\n  '\\uFC1D': '\\u0633\\u062D',\n  '\\uFC1E': '\\u0633\\u062E',\n  '\\uFC1F': '\\u0633\\u0645',\n  '\\uFC20': '\\u0635\\u062D',\n  '\\uFC21': '\\u0635\\u0645',\n  '\\uFC22': '\\u0636\\u062C',\n  '\\uFC23': '\\u0636\\u062D',\n  '\\uFC24': '\\u0636\\u062E',\n  '\\uFC25': '\\u0636\\u0645',\n  '\\uFC26': '\\u0637\\u062D',\n  '\\uFC27': '\\u0637\\u0645',\n  '\\uFC28': '\\u0638\\u0645',\n  '\\uFC29': '\\u0639\\u062C',\n  '\\uFC2A': '\\u0639\\u0645',\n  '\\uFC2B': '\\u063A\\u062C',\n  '\\uFC2C': '\\u063A\\u0645',\n  '\\uFC2D': '\\u0641\\u062C',\n  '\\uFC2E': '\\u0641\\u062D',\n  '\\uFC2F': '\\u0641\\u062E',\n  '\\uFC30': '\\u0641\\u0645',\n  '\\uFC31': '\\u0641\\u0649',\n  '\\uFC32': '\\u0641\\u064A',\n  '\\uFC33': '\\u0642\\u062D',\n  '\\uFC34': '\\u0642\\u0645',\n  '\\uFC35': '\\u0642\\u0649',\n  '\\uFC36': '\\u0642\\u064A',\n  '\\uFC37': '\\u0643\\u0627',\n  '\\uFC38': '\\u0643\\u062C',\n  '\\uFC39': '\\u0643\\u062D',\n  '\\uFC3A': '\\u0643\\u062E',\n  '\\uFC3B': '\\u0643\\u0644',\n  '\\uFC3C': '\\u0643\\u0645',\n  '\\uFC3D': '\\u0643\\u0649',\n  '\\uFC3E': '\\u0643\\u064A',\n  '\\uFC3F': '\\u0644\\u062C',\n  '\\uFC40': '\\u0644\\u062D',\n  '\\uFC41': '\\u0644\\u062E',\n  '\\uFC42': '\\u0644\\u0645',\n  '\\uFC43': '\\u0644\\u0649',\n  '\\uFC44': '\\u0644\\u064A',\n  '\\uFC45': '\\u0645\\u062C',\n  '\\uFC46': '\\u0645\\u062D',\n  '\\uFC47': '\\u0645\\u062E',\n  '\\uFC48': '\\u0645\\u0645',\n  '\\uFC49': '\\u0645\\u0649',\n  '\\uFC4A': '\\u0645\\u064A',\n  '\\uFC4B': '\\u0646\\u062C',\n  '\\uFC4C': '\\u0646\\u062D',\n  '\\uFC4D': '\\u0646\\u062E',\n  '\\uFC4E': '\\u0646\\u0645',\n  '\\uFC4F': '\\u0646\\u0649',\n  '\\uFC50': '\\u0646\\u064A',\n  '\\uFC51': '\\u0647\\u062C',\n  '\\uFC52': '\\u0647\\u0645',\n  '\\uFC53': '\\u0647\\u0649',\n  '\\uFC54': '\\u0647\\u064A',\n  '\\uFC55': '\\u064A\\u062C',\n  '\\uFC56': '\\u064A\\u062D',\n  '\\uFC57': '\\u064A\\u062E',\n  '\\uFC58': '\\u064A\\u0645',\n  '\\uFC59': '\\u064A\\u0649',\n  '\\uFC5A': '\\u064A\\u064A',\n  '\\uFC5B': '\\u0630\\u0670',\n  '\\uFC5C': '\\u0631\\u0670',\n  '\\uFC5D': '\\u0649\\u0670',\n  '\\uFC5E': '\\u0020\\u064C\\u0651',\n  '\\uFC5F': '\\u0020\\u064D\\u0651',\n  '\\uFC60': '\\u0020\\u064E\\u0651',\n  '\\uFC61': '\\u0020\\u064F\\u0651',\n  '\\uFC62': '\\u0020\\u0650\\u0651',\n  '\\uFC63': '\\u0020\\u0651\\u0670',\n  '\\uFC64': '\\u0626\\u0631',\n  '\\uFC65': '\\u0626\\u0632',\n  '\\uFC66': '\\u0626\\u0645',\n  '\\uFC67': '\\u0626\\u0646',\n  '\\uFC68': '\\u0626\\u0649',\n  '\\uFC69': '\\u0626\\u064A',\n  '\\uFC6A': '\\u0628\\u0631',\n  '\\uFC6B': '\\u0628\\u0632',\n  '\\uFC6C': '\\u0628\\u0645',\n  '\\uFC6D': '\\u0628\\u0646',\n  '\\uFC6E': '\\u0628\\u0649',\n  '\\uFC6F': '\\u0628\\u064A',\n  '\\uFC70': '\\u062A\\u0631',\n  '\\uFC71': '\\u062A\\u0632',\n  '\\uFC72': '\\u062A\\u0645',\n  '\\uFC73': '\\u062A\\u0646',\n  '\\uFC74': '\\u062A\\u0649',\n  '\\uFC75': '\\u062A\\u064A',\n  '\\uFC76': '\\u062B\\u0631',\n  '\\uFC77': '\\u062B\\u0632',\n  '\\uFC78': '\\u062B\\u0645',\n  '\\uFC79': '\\u062B\\u0646',\n  '\\uFC7A': '\\u062B\\u0649',\n  '\\uFC7B': '\\u062B\\u064A',\n  '\\uFC7C': '\\u0641\\u0649',\n  '\\uFC7D': '\\u0641\\u064A',\n  '\\uFC7E': '\\u0642\\u0649',\n  '\\uFC7F': '\\u0642\\u064A',\n  '\\uFC80': '\\u0643\\u0627',\n  '\\uFC81': '\\u0643\\u0644',\n  '\\uFC82': '\\u0643\\u0645',\n  '\\uFC83': '\\u0643\\u0649',\n  '\\uFC84': '\\u0643\\u064A',\n  '\\uFC85': '\\u0644\\u0645',\n  '\\uFC86': '\\u0644\\u0649',\n  '\\uFC87': '\\u0644\\u064A',\n  '\\uFC88': '\\u0645\\u0627',\n  '\\uFC89': '\\u0645\\u0645',\n  '\\uFC8A': '\\u0646\\u0631',\n  '\\uFC8B': '\\u0646\\u0632',\n  '\\uFC8C': '\\u0646\\u0645',\n  '\\uFC8D': '\\u0646\\u0646',\n  '\\uFC8E': '\\u0646\\u0649',\n  '\\uFC8F': '\\u0646\\u064A',\n  '\\uFC90': '\\u0649\\u0670',\n  '\\uFC91': '\\u064A\\u0631',\n  '\\uFC92': '\\u064A\\u0632',\n  '\\uFC93': '\\u064A\\u0645',\n  '\\uFC94': '\\u064A\\u0646',\n  '\\uFC95': '\\u064A\\u0649',\n  '\\uFC96': '\\u064A\\u064A',\n  '\\uFC97': '\\u0626\\u062C',\n  '\\uFC98': '\\u0626\\u062D',\n  '\\uFC99': '\\u0626\\u062E',\n  '\\uFC9A': '\\u0626\\u0645',\n  '\\uFC9B': '\\u0626\\u0647',\n  '\\uFC9C': '\\u0628\\u062C',\n  '\\uFC9D': '\\u0628\\u062D',\n  '\\uFC9E': '\\u0628\\u062E',\n  '\\uFC9F': '\\u0628\\u0645',\n  '\\uFCA0': '\\u0628\\u0647',\n  '\\uFCA1': '\\u062A\\u062C',\n  '\\uFCA2': '\\u062A\\u062D',\n  '\\uFCA3': '\\u062A\\u062E',\n  '\\uFCA4': '\\u062A\\u0645',\n  '\\uFCA5': '\\u062A\\u0647',\n  '\\uFCA6': '\\u062B\\u0645',\n  '\\uFCA7': '\\u062C\\u062D',\n  '\\uFCA8': '\\u062C\\u0645',\n  '\\uFCA9': '\\u062D\\u062C',\n  '\\uFCAA': '\\u062D\\u0645',\n  '\\uFCAB': '\\u062E\\u062C',\n  '\\uFCAC': '\\u062E\\u0645',\n  '\\uFCAD': '\\u0633\\u062C',\n  '\\uFCAE': '\\u0633\\u062D',\n  '\\uFCAF': '\\u0633\\u062E',\n  '\\uFCB0': '\\u0633\\u0645',\n  '\\uFCB1': '\\u0635\\u062D',\n  '\\uFCB2': '\\u0635\\u062E',\n  '\\uFCB3': '\\u0635\\u0645',\n  '\\uFCB4': '\\u0636\\u062C',\n  '\\uFCB5': '\\u0636\\u062D',\n  '\\uFCB6': '\\u0636\\u062E',\n  '\\uFCB7': '\\u0636\\u0645',\n  '\\uFCB8': '\\u0637\\u062D',\n  '\\uFCB9': '\\u0638\\u0645',\n  '\\uFCBA': '\\u0639\\u062C',\n  '\\uFCBB': '\\u0639\\u0645',\n  '\\uFCBC': '\\u063A\\u062C',\n  '\\uFCBD': '\\u063A\\u0645',\n  '\\uFCBE': '\\u0641\\u062C',\n  '\\uFCBF': '\\u0641\\u062D',\n  '\\uFCC0': '\\u0641\\u062E',\n  '\\uFCC1': '\\u0641\\u0645',\n  '\\uFCC2': '\\u0642\\u062D',\n  '\\uFCC3': '\\u0642\\u0645',\n  '\\uFCC4': '\\u0643\\u062C',\n  '\\uFCC5': '\\u0643\\u062D',\n  '\\uFCC6': '\\u0643\\u062E',\n  '\\uFCC7': '\\u0643\\u0644',\n  '\\uFCC8': '\\u0643\\u0645',\n  '\\uFCC9': '\\u0644\\u062C',\n  '\\uFCCA': '\\u0644\\u062D',\n  '\\uFCCB': '\\u0644\\u062E',\n  '\\uFCCC': '\\u0644\\u0645',\n  '\\uFCCD': '\\u0644\\u0647',\n  '\\uFCCE': '\\u0645\\u062C',\n  '\\uFCCF': '\\u0645\\u062D',\n  '\\uFCD0': '\\u0645\\u062E',\n  '\\uFCD1': '\\u0645\\u0645',\n  '\\uFCD2': '\\u0646\\u062C',\n  '\\uFCD3': '\\u0646\\u062D',\n  '\\uFCD4': '\\u0646\\u062E',\n  '\\uFCD5': '\\u0646\\u0645',\n  '\\uFCD6': '\\u0646\\u0647',\n  '\\uFCD7': '\\u0647\\u062C',\n  '\\uFCD8': '\\u0647\\u0645',\n  '\\uFCD9': '\\u0647\\u0670',\n  '\\uFCDA': '\\u064A\\u062C',\n  '\\uFCDB': '\\u064A\\u062D',\n  '\\uFCDC': '\\u064A\\u062E',\n  '\\uFCDD': '\\u064A\\u0645',\n  '\\uFCDE': '\\u064A\\u0647',\n  '\\uFCDF': '\\u0626\\u0645',\n  '\\uFCE0': '\\u0626\\u0647',\n  '\\uFCE1': '\\u0628\\u0645',\n  '\\uFCE2': '\\u0628\\u0647',\n  '\\uFCE3': '\\u062A\\u0645',\n  '\\uFCE4': '\\u062A\\u0647',\n  '\\uFCE5': '\\u062B\\u0645',\n  '\\uFCE6': '\\u062B\\u0647',\n  '\\uFCE7': '\\u0633\\u0645',\n  '\\uFCE8': '\\u0633\\u0647',\n  '\\uFCE9': '\\u0634\\u0645',\n  '\\uFCEA': '\\u0634\\u0647',\n  '\\uFCEB': '\\u0643\\u0644',\n  '\\uFCEC': '\\u0643\\u0645',\n  '\\uFCED': '\\u0644\\u0645',\n  '\\uFCEE': '\\u0646\\u0645',\n  '\\uFCEF': '\\u0646\\u0647',\n  '\\uFCF0': '\\u064A\\u0645',\n  '\\uFCF1': '\\u064A\\u0647',\n  '\\uFCF2': '\\u0640\\u064E\\u0651',\n  '\\uFCF3': '\\u0640\\u064F\\u0651',\n  '\\uFCF4': '\\u0640\\u0650\\u0651',\n  '\\uFCF5': '\\u0637\\u0649',\n  '\\uFCF6': '\\u0637\\u064A',\n  '\\uFCF7': '\\u0639\\u0649',\n  '\\uFCF8': '\\u0639\\u064A',\n  '\\uFCF9': '\\u063A\\u0649',\n  '\\uFCFA': '\\u063A\\u064A',\n  '\\uFCFB': '\\u0633\\u0649',\n  '\\uFCFC': '\\u0633\\u064A',\n  '\\uFCFD': '\\u0634\\u0649',\n  '\\uFCFE': '\\u0634\\u064A',\n  '\\uFCFF': '\\u062D\\u0649',\n  '\\uFD00': '\\u062D\\u064A',\n  '\\uFD01': '\\u062C\\u0649',\n  '\\uFD02': '\\u062C\\u064A',\n  '\\uFD03': '\\u062E\\u0649',\n  '\\uFD04': '\\u062E\\u064A',\n  '\\uFD05': '\\u0635\\u0649',\n  '\\uFD06': '\\u0635\\u064A',\n  '\\uFD07': '\\u0636\\u0649',\n  '\\uFD08': '\\u0636\\u064A',\n  '\\uFD09': '\\u0634\\u062C',\n  '\\uFD0A': '\\u0634\\u062D',\n  '\\uFD0B': '\\u0634\\u062E',\n  '\\uFD0C': '\\u0634\\u0645',\n  '\\uFD0D': '\\u0634\\u0631',\n  '\\uFD0E': '\\u0633\\u0631',\n  '\\uFD0F': '\\u0635\\u0631',\n  '\\uFD10': '\\u0636\\u0631',\n  '\\uFD11': '\\u0637\\u0649',\n  '\\uFD12': '\\u0637\\u064A',\n  '\\uFD13': '\\u0639\\u0649',\n  '\\uFD14': '\\u0639\\u064A',\n  '\\uFD15': '\\u063A\\u0649',\n  '\\uFD16': '\\u063A\\u064A',\n  '\\uFD17': '\\u0633\\u0649',\n  '\\uFD18': '\\u0633\\u064A',\n  '\\uFD19': '\\u0634\\u0649',\n  '\\uFD1A': '\\u0634\\u064A',\n  '\\uFD1B': '\\u062D\\u0649',\n  '\\uFD1C': '\\u062D\\u064A',\n  '\\uFD1D': '\\u062C\\u0649',\n  '\\uFD1E': '\\u062C\\u064A',\n  '\\uFD1F': '\\u062E\\u0649',\n  '\\uFD20': '\\u062E\\u064A',\n  '\\uFD21': '\\u0635\\u0649',\n  '\\uFD22': '\\u0635\\u064A',\n  '\\uFD23': '\\u0636\\u0649',\n  '\\uFD24': '\\u0636\\u064A',\n  '\\uFD25': '\\u0634\\u062C',\n  '\\uFD26': '\\u0634\\u062D',\n  '\\uFD27': '\\u0634\\u062E',\n  '\\uFD28': '\\u0634\\u0645',\n  '\\uFD29': '\\u0634\\u0631',\n  '\\uFD2A': '\\u0633\\u0631',\n  '\\uFD2B': '\\u0635\\u0631',\n  '\\uFD2C': '\\u0636\\u0631',\n  '\\uFD2D': '\\u0634\\u062C',\n  '\\uFD2E': '\\u0634\\u062D',\n  '\\uFD2F': '\\u0634\\u062E',\n  '\\uFD30': '\\u0634\\u0645',\n  '\\uFD31': '\\u0633\\u0647',\n  '\\uFD32': '\\u0634\\u0647',\n  '\\uFD33': '\\u0637\\u0645',\n  '\\uFD34': '\\u0633\\u062C',\n  '\\uFD35': '\\u0633\\u062D',\n  '\\uFD36': '\\u0633\\u062E',\n  '\\uFD37': '\\u0634\\u062C',\n  '\\uFD38': '\\u0634\\u062D',\n  '\\uFD39': '\\u0634\\u062E',\n  '\\uFD3A': '\\u0637\\u0645',\n  '\\uFD3B': '\\u0638\\u0645',\n  '\\uFD3C': '\\u0627\\u064B',\n  '\\uFD3D': '\\u0627\\u064B',\n  '\\uFD50': '\\u062A\\u062C\\u0645',\n  '\\uFD51': '\\u062A\\u062D\\u062C',\n  '\\uFD52': '\\u062A\\u062D\\u062C',\n  '\\uFD53': '\\u062A\\u062D\\u0645',\n  '\\uFD54': '\\u062A\\u062E\\u0645',\n  '\\uFD55': '\\u062A\\u0645\\u062C',\n  '\\uFD56': '\\u062A\\u0645\\u062D',\n  '\\uFD57': '\\u062A\\u0645\\u062E',\n  '\\uFD58': '\\u062C\\u0645\\u062D',\n  '\\uFD59': '\\u062C\\u0645\\u062D',\n  '\\uFD5A': '\\u062D\\u0645\\u064A',\n  '\\uFD5B': '\\u062D\\u0645\\u0649',\n  '\\uFD5C': '\\u0633\\u062D\\u062C',\n  '\\uFD5D': '\\u0633\\u062C\\u062D',\n  '\\uFD5E': '\\u0633\\u062C\\u0649',\n  '\\uFD5F': '\\u0633\\u0645\\u062D',\n  '\\uFD60': '\\u0633\\u0645\\u062D',\n  '\\uFD61': '\\u0633\\u0645\\u062C',\n  '\\uFD62': '\\u0633\\u0645\\u0645',\n  '\\uFD63': '\\u0633\\u0645\\u0645',\n  '\\uFD64': '\\u0635\\u062D\\u062D',\n  '\\uFD65': '\\u0635\\u062D\\u062D',\n  '\\uFD66': '\\u0635\\u0645\\u0645',\n  '\\uFD67': '\\u0634\\u062D\\u0645',\n  '\\uFD68': '\\u0634\\u062D\\u0645',\n  '\\uFD69': '\\u0634\\u062C\\u064A',\n  '\\uFD6A': '\\u0634\\u0645\\u062E',\n  '\\uFD6B': '\\u0634\\u0645\\u062E',\n  '\\uFD6C': '\\u0634\\u0645\\u0645',\n  '\\uFD6D': '\\u0634\\u0645\\u0645',\n  '\\uFD6E': '\\u0636\\u062D\\u0649',\n  '\\uFD6F': '\\u0636\\u062E\\u0645',\n  '\\uFD70': '\\u0636\\u062E\\u0645',\n  '\\uFD71': '\\u0637\\u0645\\u062D',\n  '\\uFD72': '\\u0637\\u0645\\u062D',\n  '\\uFD73': '\\u0637\\u0645\\u0645',\n  '\\uFD74': '\\u0637\\u0645\\u064A',\n  '\\uFD75': '\\u0639\\u062C\\u0645',\n  '\\uFD76': '\\u0639\\u0645\\u0645',\n  '\\uFD77': '\\u0639\\u0645\\u0645',\n  '\\uFD78': '\\u0639\\u0645\\u0649',\n  '\\uFD79': '\\u063A\\u0645\\u0645',\n  '\\uFD7A': '\\u063A\\u0645\\u064A',\n  '\\uFD7B': '\\u063A\\u0645\\u0649',\n  '\\uFD7C': '\\u0641\\u062E\\u0645',\n  '\\uFD7D': '\\u0641\\u062E\\u0645',\n  '\\uFD7E': '\\u0642\\u0645\\u062D',\n  '\\uFD7F': '\\u0642\\u0645\\u0645',\n  '\\uFD80': '\\u0644\\u062D\\u0645',\n  '\\uFD81': '\\u0644\\u062D\\u064A',\n  '\\uFD82': '\\u0644\\u062D\\u0649',\n  '\\uFD83': '\\u0644\\u062C\\u062C',\n  '\\uFD84': '\\u0644\\u062C\\u062C',\n  '\\uFD85': '\\u0644\\u062E\\u0645',\n  '\\uFD86': '\\u0644\\u062E\\u0645',\n  '\\uFD87': '\\u0644\\u0645\\u062D',\n  '\\uFD88': '\\u0644\\u0645\\u062D',\n  '\\uFD89': '\\u0645\\u062D\\u062C',\n  '\\uFD8A': '\\u0645\\u062D\\u0645',\n  '\\uFD8B': '\\u0645\\u062D\\u064A',\n  '\\uFD8C': '\\u0645\\u062C\\u062D',\n  '\\uFD8D': '\\u0645\\u062C\\u0645',\n  '\\uFD8E': '\\u0645\\u062E\\u062C',\n  '\\uFD8F': '\\u0645\\u062E\\u0645',\n  '\\uFD92': '\\u0645\\u062C\\u062E',\n  '\\uFD93': '\\u0647\\u0645\\u062C',\n  '\\uFD94': '\\u0647\\u0645\\u0645',\n  '\\uFD95': '\\u0646\\u062D\\u0645',\n  '\\uFD96': '\\u0646\\u062D\\u0649',\n  '\\uFD97': '\\u0646\\u062C\\u0645',\n  '\\uFD98': '\\u0646\\u062C\\u0645',\n  '\\uFD99': '\\u0646\\u062C\\u0649',\n  '\\uFD9A': '\\u0646\\u0645\\u064A',\n  '\\uFD9B': '\\u0646\\u0645\\u0649',\n  '\\uFD9C': '\\u064A\\u0645\\u0645',\n  '\\uFD9D': '\\u064A\\u0645\\u0645',\n  '\\uFD9E': '\\u0628\\u062E\\u064A',\n  '\\uFD9F': '\\u062A\\u062C\\u064A',\n  '\\uFDA0': '\\u062A\\u062C\\u0649',\n  '\\uFDA1': '\\u062A\\u062E\\u064A',\n  '\\uFDA2': '\\u062A\\u062E\\u0649',\n  '\\uFDA3': '\\u062A\\u0645\\u064A',\n  '\\uFDA4': '\\u062A\\u0645\\u0649',\n  '\\uFDA5': '\\u062C\\u0645\\u064A',\n  '\\uFDA6': '\\u062C\\u062D\\u0649',\n  '\\uFDA7': '\\u062C\\u0645\\u0649',\n  '\\uFDA8': '\\u0633\\u062E\\u0649',\n  '\\uFDA9': '\\u0635\\u062D\\u064A',\n  '\\uFDAA': '\\u0634\\u062D\\u064A',\n  '\\uFDAB': '\\u0636\\u062D\\u064A',\n  '\\uFDAC': '\\u0644\\u062C\\u064A',\n  '\\uFDAD': '\\u0644\\u0645\\u064A',\n  '\\uFDAE': '\\u064A\\u062D\\u064A',\n  '\\uFDAF': '\\u064A\\u062C\\u064A',\n  '\\uFDB0': '\\u064A\\u0645\\u064A',\n  '\\uFDB1': '\\u0645\\u0645\\u064A',\n  '\\uFDB2': '\\u0642\\u0645\\u064A',\n  '\\uFDB3': '\\u0646\\u062D\\u064A',\n  '\\uFDB4': '\\u0642\\u0645\\u062D',\n  '\\uFDB5': '\\u0644\\u062D\\u0645',\n  '\\uFDB6': '\\u0639\\u0645\\u064A',\n  '\\uFDB7': '\\u0643\\u0645\\u064A',\n  '\\uFDB8': '\\u0646\\u062C\\u062D',\n  '\\uFDB9': '\\u0645\\u062E\\u064A',\n  '\\uFDBA': '\\u0644\\u062C\\u0645',\n  '\\uFDBB': '\\u0643\\u0645\\u0645',\n  '\\uFDBC': '\\u0644\\u062C\\u0645',\n  '\\uFDBD': '\\u0646\\u062C\\u062D',\n  '\\uFDBE': '\\u062C\\u062D\\u064A',\n  '\\uFDBF': '\\u062D\\u062C\\u064A',\n  '\\uFDC0': '\\u0645\\u062C\\u064A',\n  '\\uFDC1': '\\u0641\\u0645\\u064A',\n  '\\uFDC2': '\\u0628\\u062D\\u064A',\n  '\\uFDC3': '\\u0643\\u0645\\u0645',\n  '\\uFDC4': '\\u0639\\u062C\\u0645',\n  '\\uFDC5': '\\u0635\\u0645\\u0645',\n  '\\uFDC6': '\\u0633\\u062E\\u064A',\n  '\\uFDC7': '\\u0646\\u062C\\u064A',\n  '\\uFE49': '\\u203E',\n  '\\uFE4A': '\\u203E',\n  '\\uFE4B': '\\u203E',\n  '\\uFE4C': '\\u203E',\n  '\\uFE4D': '\\u005F',\n  '\\uFE4E': '\\u005F',\n  '\\uFE4F': '\\u005F',\n  '\\uFE80': '\\u0621',\n  '\\uFE81': '\\u0622',\n  '\\uFE82': '\\u0622',\n  '\\uFE83': '\\u0623',\n  '\\uFE84': '\\u0623',\n  '\\uFE85': '\\u0624',\n  '\\uFE86': '\\u0624',\n  '\\uFE87': '\\u0625',\n  '\\uFE88': '\\u0625',\n  '\\uFE89': '\\u0626',\n  '\\uFE8A': '\\u0626',\n  '\\uFE8B': '\\u0626',\n  '\\uFE8C': '\\u0626',\n  '\\uFE8D': '\\u0627',\n  '\\uFE8E': '\\u0627',\n  '\\uFE8F': '\\u0628',\n  '\\uFE90': '\\u0628',\n  '\\uFE91': '\\u0628',\n  '\\uFE92': '\\u0628',\n  '\\uFE93': '\\u0629',\n  '\\uFE94': '\\u0629',\n  '\\uFE95': '\\u062A',\n  '\\uFE96': '\\u062A',\n  '\\uFE97': '\\u062A',\n  '\\uFE98': '\\u062A',\n  '\\uFE99': '\\u062B',\n  '\\uFE9A': '\\u062B',\n  '\\uFE9B': '\\u062B',\n  '\\uFE9C': '\\u062B',\n  '\\uFE9D': '\\u062C',\n  '\\uFE9E': '\\u062C',\n  '\\uFE9F': '\\u062C',\n  '\\uFEA0': '\\u062C',\n  '\\uFEA1': '\\u062D',\n  '\\uFEA2': '\\u062D',\n  '\\uFEA3': '\\u062D',\n  '\\uFEA4': '\\u062D',\n  '\\uFEA5': '\\u062E',\n  '\\uFEA6': '\\u062E',\n  '\\uFEA7': '\\u062E',\n  '\\uFEA8': '\\u062E',\n  '\\uFEA9': '\\u062F',\n  '\\uFEAA': '\\u062F',\n  '\\uFEAB': '\\u0630',\n  '\\uFEAC': '\\u0630',\n  '\\uFEAD': '\\u0631',\n  '\\uFEAE': '\\u0631',\n  '\\uFEAF': '\\u0632',\n  '\\uFEB0': '\\u0632',\n  '\\uFEB1': '\\u0633',\n  '\\uFEB2': '\\u0633',\n  '\\uFEB3': '\\u0633',\n  '\\uFEB4': '\\u0633',\n  '\\uFEB5': '\\u0634',\n  '\\uFEB6': '\\u0634',\n  '\\uFEB7': '\\u0634',\n  '\\uFEB8': '\\u0634',\n  '\\uFEB9': '\\u0635',\n  '\\uFEBA': '\\u0635',\n  '\\uFEBB': '\\u0635',\n  '\\uFEBC': '\\u0635',\n  '\\uFEBD': '\\u0636',\n  '\\uFEBE': '\\u0636',\n  '\\uFEBF': '\\u0636',\n  '\\uFEC0': '\\u0636',\n  '\\uFEC1': '\\u0637',\n  '\\uFEC2': '\\u0637',\n  '\\uFEC3': '\\u0637',\n  '\\uFEC4': '\\u0637',\n  '\\uFEC5': '\\u0638',\n  '\\uFEC6': '\\u0638',\n  '\\uFEC7': '\\u0638',\n  '\\uFEC8': '\\u0638',\n  '\\uFEC9': '\\u0639',\n  '\\uFECA': '\\u0639',\n  '\\uFECB': '\\u0639',\n  '\\uFECC': '\\u0639',\n  '\\uFECD': '\\u063A',\n  '\\uFECE': '\\u063A',\n  '\\uFECF': '\\u063A',\n  '\\uFED0': '\\u063A',\n  '\\uFED1': '\\u0641',\n  '\\uFED2': '\\u0641',\n  '\\uFED3': '\\u0641',\n  '\\uFED4': '\\u0641',\n  '\\uFED5': '\\u0642',\n  '\\uFED6': '\\u0642',\n  '\\uFED7': '\\u0642',\n  '\\uFED8': '\\u0642',\n  '\\uFED9': '\\u0643',\n  '\\uFEDA': '\\u0643',\n  '\\uFEDB': '\\u0643',\n  '\\uFEDC': '\\u0643',\n  '\\uFEDD': '\\u0644',\n  '\\uFEDE': '\\u0644',\n  '\\uFEDF': '\\u0644',\n  '\\uFEE0': '\\u0644',\n  '\\uFEE1': '\\u0645',\n  '\\uFEE2': '\\u0645',\n  '\\uFEE3': '\\u0645',\n  '\\uFEE4': '\\u0645',\n  '\\uFEE5': '\\u0646',\n  '\\uFEE6': '\\u0646',\n  '\\uFEE7': '\\u0646',\n  '\\uFEE8': '\\u0646',\n  '\\uFEE9': '\\u0647',\n  '\\uFEEA': '\\u0647',\n  '\\uFEEB': '\\u0647',\n  '\\uFEEC': '\\u0647',\n  '\\uFEED': '\\u0648',\n  '\\uFEEE': '\\u0648',\n  '\\uFEEF': '\\u0649',\n  '\\uFEF0': '\\u0649',\n  '\\uFEF1': '\\u064A',\n  '\\uFEF2': '\\u064A',\n  '\\uFEF3': '\\u064A',\n  '\\uFEF4': '\\u064A',\n  '\\uFEF5': '\\u0644\\u0622',\n  '\\uFEF6': '\\u0644\\u0622',\n  '\\uFEF7': '\\u0644\\u0623',\n  '\\uFEF8': '\\u0644\\u0623',\n  '\\uFEF9': '\\u0644\\u0625',\n  '\\uFEFA': '\\u0644\\u0625',\n  '\\uFEFB': '\\u0644\\u0627',\n  '\\uFEFC': '\\u0644\\u0627'\n};\n\nfunction reverseIfRtl(chars) {\n  var charsLength = chars.length;\n  //reverse an arabic ligature\n  if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0)))\n    return chars;\n\n  var s = '';\n  for (var ii = charsLength - 1; ii >= 0; ii--)\n    s += chars[ii];\n  return s;\n}\n\nfunction fontCharsToUnicode(charCodes, font) {\n  var glyphs = font.charsToGlyphs(charCodes);\n  var result = '';\n  for (var i = 0, ii = glyphs.length; i < ii; i++) {\n    var glyph = glyphs[i];\n    if (!glyph)\n      continue;\n\n    var glyphUnicode = glyph.unicode;\n    if (glyphUnicode in NormalizedUnicodes)\n      glyphUnicode = NormalizedUnicodes[glyphUnicode];\n    result += reverseIfRtl(glyphUnicode);\n  }\n  return result;\n}\n\nfunction adjustWidths(properties) {\n  if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n    return;\n  }\n  // adjusting width to fontMatrix scale\n  var scale = 0.001 / properties.fontMatrix[0];\n  var glyphsWidths = properties.widths;\n  for (var glyph in glyphsWidths) {\n    glyphsWidths[glyph] *= scale;\n  }\n  properties.defaultWidth *= scale;\n}\n\n/**\n * 'Font' is the class the outside world should use, it encapsulate all the font\n * decoding logics whatever type it is (assuming the font type is supported).\n *\n * For example to read a Type1 font and to attach it to the document:\n *   var type1Font = new Font(\"MyFontName\", binaryFile, propertiesObject);\n *   type1Font.bind();\n */\nvar Font = (function FontClosure() {\n  function Font(name, file, properties) {\n\n    this.name = name;\n    this.loadedName = properties.loadedName;\n    this.coded = properties.coded;\n    this.loadCharProcs = properties.coded;\n    this.sizes = [];\n\n    var names = name.split('+');\n    names = names.length > 1 ? names[1] : names[0];\n    names = names.split(/[-,_]/g)[0];\n    this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n    this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n    this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n\n    var type = properties.type;\n    this.type = type;\n\n    this.fallbackName = this.isMonospace ? 'monospace' :\n                        this.isSerifFont ? 'serif' : 'sans-serif';\n\n    this.differences = properties.differences;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.composite = properties.composite;\n    this.wideChars = properties.wideChars;\n    this.hasEncoding = properties.hasEncoding;\n    this.cmap = properties.cmap;\n\n    this.fontMatrix = properties.fontMatrix;\n    if (properties.type == 'Type3') {\n      this.encoding = properties.baseEncoding;\n      return;\n    }\n\n    // Trying to fix encoding using glyph CIDSystemInfo.\n    this.loadCidToUnicode(properties);\n    this.cidEncoding = properties.cidEncoding;\n    this.vertical = properties.vertical;\n    if (this.vertical) {\n      this.vmetrics = properties.vmetrics;\n      this.defaultVMetrics = properties.defaultVMetrics;\n    }\n\n    if (properties.toUnicode && properties.toUnicode.length > 0)\n      this.toUnicode = properties.toUnicode;\n    else\n      this.rebuildToUnicode(properties);\n\n    this.toFontChar = this.buildToFontChar(this.toUnicode);\n\n    if (!file) {\n      // The file data is not specified. Trying to fix the font name\n      // to be used with the canvas.font.\n      var fontName = name.replace(/[,_]/g, '-');\n      fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n\n      this.bold = (fontName.search(/bold/gi) != -1);\n      this.italic = (fontName.search(/oblique/gi) != -1) ||\n                    (fontName.search(/italic/gi) != -1);\n\n      // Use 'name' instead of 'fontName' here because the original\n      // name ArialBlack for example will be replaced by Helvetica.\n      this.black = (name.search(/Black/g) != -1);\n\n      //MQZ Dec.03.2013 Disable font.remeasure\n      // if at least one width is present, remeasure all chars when exists\n      //this.remeasure = Object.keys(this.widths).length > 0;\n\n      this.encoding = properties.baseEncoding;\n      this.noUnicodeAdaptation = true;\n      this.loadedName = fontName.split('-')[0];\n      this.loading = false;\n      return;\n    }\n\n    // Some fonts might use wrong font types for Type1C or CIDFontType0C\n    var subtype = properties.subtype;\n    if (subtype == 'Type1C' && (type != 'Type1' && type != 'MMType1'))\n      type = 'Type1';\n    if (subtype == 'CIDFontType0C' && type != 'CIDFontType0')\n      type = 'CIDFontType0';\n    // XXX: Temporarily change the type for open type so we trigger a warning.\n    // This should be removed when we add support for open type.\n    if (subtype === 'OpenType') {\n      type = 'OpenType';\n    }\n\n    var data;\n    switch (type) {\n      case 'Type1':\n      case 'CIDFontType0':\n        this.mimetype = 'font/opentype';\n\n        var cff = (subtype == 'Type1C' || subtype == 'CIDFontType0C') ?\n          new CFFFont(file, properties) : new Type1Font(name, file, properties);\n\n        adjustWidths(properties);\n\n        // Wrap the CFF data inside an OTF font file\n        data = this.convert(name, cff, properties);\n        break;\n\n      case 'OpenType':\n      case 'TrueType':\n      case 'CIDFontType2':\n        this.mimetype = 'font/opentype';\n\n        // Repair the TrueType file. It is can be damaged in the point of\n        // view of the sanitizer\n        data = this.checkAndRepair(name, file, properties);\n        break;\n\n      default:\n        error('Font ' + type + ' is not supported');\n        break;\n    }\n\n    this.data = data;\n\n    // Transfer some properties again that could change during font conversion\n    this.fontMatrix = properties.fontMatrix;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.encoding = properties.baseEncoding;\n    this.seacMap = properties.seacMap;\n\n    this.loading = true;\n  }\n\n  var numFonts = 0;\n  function getUniqueName() {\n    return 'pdfFont' + numFonts++;\n  }\n\n  function stringToArray(str) {\n    var array = [];\n    for (var i = 0, ii = str.length; i < ii; ++i)\n      array[i] = str.charCodeAt(i);\n\n    return array;\n  }\n\n  function arrayToString(arr) {\n    var str = '';\n    for (var i = 0, ii = arr.length; i < ii; ++i)\n      str += String.fromCharCode(arr[i]);\n\n    return str;\n  }\n\n  function int16(bytes) {\n    return (bytes[0] << 8) + (bytes[1] & 0xff);\n  }\n\n  function int32(bytes) {\n    return (bytes[0] << 24) + (bytes[1] << 16) +\n           (bytes[2] << 8) + (bytes[3] & 0xff);\n  }\n\n  function getMaxPower2(number) {\n    var maxPower = 0;\n    var value = number;\n    while (value >= 2) {\n      value /= 2;\n      maxPower++;\n    }\n\n    value = 2;\n    for (var i = 1; i < maxPower; i++)\n      value *= 2;\n    return value;\n  }\n\n  function string16(value) {\n    return String.fromCharCode((value >> 8) & 0xff) +\n           String.fromCharCode(value & 0xff);\n  }\n\n  function safeString16(value) {\n    // clamp value to the 16-bit int range\n    value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value;\n    return String.fromCharCode((value >> 8) & 0xff) +\n           String.fromCharCode(value & 0xff);\n  }\n\n  function string32(value) {\n    return String.fromCharCode((value >> 24) & 0xff) +\n           String.fromCharCode((value >> 16) & 0xff) +\n           String.fromCharCode((value >> 8) & 0xff) +\n           String.fromCharCode(value & 0xff);\n  }\n\n  function createOpenTypeHeader(sfnt, file, numTables) {\n    // Windows hates the Mac TrueType sfnt version number\n    if (sfnt == 'true')\n      sfnt = string32(0x00010000);\n\n    // sfnt version (4 bytes)\n    var header = sfnt;\n\n    // numTables (2 bytes)\n    header += string16(numTables);\n\n    // searchRange (2 bytes)\n    var tablesMaxPower2 = getMaxPower2(numTables);\n    var searchRange = tablesMaxPower2 * 16;\n    header += string16(searchRange);\n\n    // entrySelector (2 bytes)\n    header += string16(Math.log(tablesMaxPower2) / Math.log(2));\n\n    // rangeShift (2 bytes)\n    header += string16(numTables * 16 - searchRange);\n\n    file.file += header;\n    file.virtualOffset += header.length;\n  }\n\n  function createTableEntry(file, tag, data) {\n    // offset\n    var offset = file.virtualOffset;\n\n    // length\n    var length = data.length;\n\n    // Per spec tables must be 4-bytes align so add padding as needed\n    while (data.length & 3)\n      data.push(0x00);\n\n    while (file.virtualOffset & 3)\n      file.virtualOffset++;\n\n    // checksum\n    var checksum = 0, n = data.length;\n    for (var i = 0; i < n; i += 4)\n      checksum = (checksum + int32([data[i], data[i + 1], data[i + 2],\n                                    data[i + 3]])) | 0;\n\n    var tableEntry = (tag + string32(checksum) +\n                      string32(offset) + string32(length));\n    file.file += tableEntry;\n    file.virtualOffset += data.length;\n  }\n\n  function getRanges(glyphs, deltas) {\n    // Array.sort() sorts by characters, not numerically, so convert to an\n    // array of characters.\n    var codes = [];\n    var length = glyphs.length;\n    for (var n = 0; n < length; ++n)\n      codes.push({ unicode: glyphs[n].unicode, code: n });\n    codes.sort(function fontGetRangesSort(a, b) {\n      return a.unicode - b.unicode;\n    });\n\n    // Split the sorted codes into ranges.\n    var ranges = [];\n    for (var n = 0; n < length; ) {\n      var start = codes[n].unicode;\n      var codeIndices = [deltas ? deltas[codes[n].code] : codes[n].code + 1];\n      ++n;\n      var end = start;\n      while (n < length && end + 1 == codes[n].unicode) {\n        codeIndices.push(deltas ? deltas[codes[n].code] : codes[n].code + 1);\n        ++end;\n        ++n;\n        if (end === 0xFFFF) { break; }\n      }\n      ranges.push([start, end, codeIndices]);\n    }\n\n    return ranges;\n  }\n\n  function createCmapTable(glyphs, deltas) {\n    var ranges = getRanges(glyphs, deltas);\n\n    var numTables = ranges[ranges.length - 1][1] > 0xFFFF ? 2 : 1;\n    var cmap = '\\x00\\x00' + // version\n               string16(numTables) +  // numTables\n               '\\x00\\x03' + // platformID\n               '\\x00\\x01' + // encodingID\n               string32(4 + numTables * 8); // start of the table record\n\n    for (var i = ranges.length - 1; i >= 0; --i) {\n      if (ranges[i][0] <= 0xFFFF) { break; }\n    }\n    var bmpLength = i + 1;\n\n    if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) {\n      ranges[i][1] = 0xFFFE;\n    }\n    var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0;\n    var segCount = bmpLength + trailingRangesCount;\n    var segCount2 = segCount * 2;\n    var searchRange = getMaxPower2(segCount) * 2;\n    var searchEntry = Math.log(segCount) / Math.log(2);\n    var rangeShift = 2 * segCount - searchRange;\n\n    // Fill up the 4 parallel arrays describing the segments.\n    var startCount = '';\n    var endCount = '';\n    var idDeltas = '';\n    var idRangeOffsets = '';\n    var glyphsIds = '';\n    var bias = 0;\n\n    for (var i = 0, ii = bmpLength; i < ii; i++) {\n      var range = ranges[i];\n      var start = range[0];\n      var end = range[1];\n      startCount += string16(start);\n      endCount += string16(end);\n      var codes = range[2];\n      var contiguous = true;\n      for (var j = 1, jj = codes.length; j < jj; ++j) {\n        if (codes[j] !== codes[j - 1] + 1) {\n          contiguous = false;\n          break;\n        }\n      }\n      if (!contiguous) {\n        var offset = (segCount - i) * 2 + bias * 2;\n        bias += (end - start + 1);\n\n        idDeltas += string16(0);\n        idRangeOffsets += string16(offset);\n\n        for (var j = 0, jj = codes.length; j < jj; ++j) {\n          glyphsIds += string16(codes[j]);\n        }\n      } else {\n        var startCode = codes[0];\n\n        idDeltas += string16((startCode - start) & 0xFFFF);\n        idRangeOffsets += string16(0);\n      }\n    }\n\n    if (trailingRangesCount > 0) {\n      endCount += '\\xFF\\xFF';\n      startCount += '\\xFF\\xFF';\n      idDeltas += '\\x00\\x01';\n      idRangeOffsets += '\\x00\\x00';\n    }\n\n    var format314 = '\\x00\\x00' + // language\n                    string16(segCount2) +\n                    string16(searchRange) +\n                    string16(searchEntry) +\n                    string16(rangeShift) +\n                    endCount + '\\x00\\x00' + startCount +\n                    idDeltas + idRangeOffsets + glyphsIds;\n\n    var format31012 = '';\n    var header31012 = '';\n    if (numTables > 1) {\n      cmap += '\\x00\\x03' + // platformID\n              '\\x00\\x0A' + // encodingID\n              string32(4 + numTables * 8 +\n                       4 + format314.length); // start of the table record\n      format31012 = '';\n      for (var i = 0, ii = ranges.length; i < ii; i++) {\n        var range = ranges[i];\n        var start = range[0];\n        var codes = range[2];\n        var code = codes[0];\n        for (var j = 1, jj = codes.length; j < jj; ++j) {\n          if (codes[j] !== codes[j - 1] + 1) {\n            var end = range[0] + j - 1;\n            format31012 += string32(start) + // startCharCode\n                           string32(end) + // endCharCode\n                           string32(code); // startGlyphID\n            start = end + 1;\n            code = codes[j];\n          }\n        }\n        format31012 += string32(start) + // startCharCode\n                       string32(range[1]) + // endCharCode\n                       string32(code); // startGlyphID\n      }\n      header31012 = '\\x00\\x0C' + // format\n                    '\\x00\\x00' + // reserved\n                    string32(format31012.length + 16) + // length\n                    '\\x00\\x00\\x00\\x00' + // language\n                    string32(format31012.length / 12); // nGroups\n    }\n\n    return stringToArray(cmap +\n                         '\\x00\\x04' + // format\n                         string16(format314.length + 4) + // length\n                         format314 + header31012 + format31012);\n  }\n\n  function validateOS2Table(os2) {\n    var stream = new Stream(os2.data);\n    var version = int16(stream.getBytes(2));\n    // TODO verify all OS/2 tables fields, but currently we validate only those\n    // that give us issues\n    stream.getBytes(60); // skipping type, misc sizes, panose, unicode ranges\n    var selection = int16(stream.getBytes(2));\n    if (version < 4 && (selection & 0x0300)) {\n      return false;\n    }\n    var firstChar = int16(stream.getBytes(2));\n    var lastChar = int16(stream.getBytes(2));\n    if (firstChar > lastChar) {\n      return false;\n    }\n    stream.getBytes(6); // skipping sTypoAscender/Descender/LineGap\n    var usWinAscent = int16(stream.getBytes(2));\n    if (usWinAscent === 0) { // makes font unreadable by windows\n      return false;\n    }\n\n    // OS/2 appears to be valid, resetting some fields\n    os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0\n    return true;\n  }\n\n  function createOS2Table(properties, charstrings, override) {\n    override = override || {\n      unitsPerEm: 0,\n      yMax: 0,\n      yMin: 0,\n      ascent: 0,\n      descent: 0\n    };\n\n    var ulUnicodeRange1 = 0;\n    var ulUnicodeRange2 = 0;\n    var ulUnicodeRange3 = 0;\n    var ulUnicodeRange4 = 0;\n\n    var firstCharIndex = null;\n    var lastCharIndex = 0;\n\n    if (charstrings) {\n      for (var i = 0; i < charstrings.length; ++i) {\n        var code = charstrings[i].unicode;\n        if (firstCharIndex > code || !firstCharIndex)\n          firstCharIndex = code;\n        if (lastCharIndex < code)\n          lastCharIndex = code;\n\n        var position = getUnicodeRangeFor(code);\n        if (position < 32) {\n          ulUnicodeRange1 |= 1 << position;\n        } else if (position < 64) {\n          ulUnicodeRange2 |= 1 << position - 32;\n        } else if (position < 96) {\n          ulUnicodeRange3 |= 1 << position - 64;\n        } else if (position < 123) {\n          ulUnicodeRange4 |= 1 << position - 96;\n        } else {\n          error('Unicode ranges Bits > 123 are reserved for internal usage');\n        }\n      }\n    } else {\n      // TODO\n      firstCharIndex = 0;\n      lastCharIndex = 255;\n    }\n\n    var bbox = properties.bbox || [0, 0, 0, 0];\n    var unitsPerEm = override.unitsPerEm ||\n      1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n    // if the font units differ to the PDF glyph space units\n    // then scale up the values\n    var scale = properties.ascentScaled ? 1.0 :\n      unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n\n    var typoAscent = override.ascent || Math.round(scale *\n      (properties.ascent || bbox[3]));\n    var typoDescent = override.descent || Math.round(scale *\n      (properties.descent || bbox[1]));\n    if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n      typoDescent = -typoDescent; // fixing incorrect descent\n    }\n    var winAscent = override.yMax || typoAscent;\n    var winDescent = -override.yMin || -typoDescent;\n\n    return '\\x00\\x03' + // version\n           '\\x02\\x24' + // xAvgCharWidth\n           '\\x01\\xF4' + // usWeightClass\n           '\\x00\\x05' + // usWidthClass\n           '\\x00\\x00' + // fstype (0 to let the font loads via font-face on IE)\n           '\\x02\\x8A' + // ySubscriptXSize\n           '\\x02\\xBB' + // ySubscriptYSize\n           '\\x00\\x00' + // ySubscriptXOffset\n           '\\x00\\x8C' + // ySubscriptYOffset\n           '\\x02\\x8A' + // ySuperScriptXSize\n           '\\x02\\xBB' + // ySuperScriptYSize\n           '\\x00\\x00' + // ySuperScriptXOffset\n           '\\x01\\xDF' + // ySuperScriptYOffset\n           '\\x00\\x31' + // yStrikeOutSize\n           '\\x01\\x02' + // yStrikeOutPosition\n           '\\x00\\x00' + // sFamilyClass\n           '\\x00\\x00\\x06' +\n           String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +\n           '\\x00\\x00\\x00\\x00\\x00\\x00' + // Panose\n           string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)\n           string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)\n           string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)\n           string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)\n           '\\x2A\\x32\\x31\\x2A' + // achVendID\n           string16(properties.italicAngle ? 1 : 0) + // fsSelection\n           string16(firstCharIndex ||\n                    properties.firstChar) + // usFirstCharIndex\n           string16(lastCharIndex || properties.lastChar) +  // usLastCharIndex\n           string16(typoAscent) + // sTypoAscender\n           string16(typoDescent) + // sTypoDescender\n           '\\x00\\x64' + // sTypoLineGap (7%-10% of the unitsPerEM value)\n           string16(winAscent) + // usWinAscent\n           string16(winDescent) + // usWinDescent\n           '\\x00\\x00\\x00\\x00' + // ulCodePageRange1 (Bits 0-31)\n           '\\x00\\x00\\x00\\x00' + // ulCodePageRange2 (Bits 32-63)\n           string16(properties.xHeight) + // sxHeight\n           string16(properties.capHeight) + // sCapHeight\n           string16(0) + // usDefaultChar\n           string16(firstCharIndex || properties.firstChar) + // usBreakChar\n           '\\x00\\x03';  // usMaxContext\n  }\n\n  function createPostTable(properties) {\n    var angle = Math.floor(properties.italicAngle * (Math.pow(2, 16)));\n    return '\\x00\\x03\\x00\\x00' + // Version number\n           string32(angle) + // italicAngle\n           '\\x00\\x00' + // underlinePosition\n           '\\x00\\x00' + // underlineThickness\n           string32(properties.fixedPitch) + // isFixedPitch\n           '\\x00\\x00\\x00\\x00' + // minMemType42\n           '\\x00\\x00\\x00\\x00' + // maxMemType42\n           '\\x00\\x00\\x00\\x00' + // minMemType1\n           '\\x00\\x00\\x00\\x00';  // maxMemType1\n  }\n\n  function createNameTable(name, proto) {\n    if (!proto) {\n      proto = [[], []]; // no strings and unicode strings\n    }\n\n    var strings = [\n      proto[0][0] || 'Original licence',  // 0.Copyright\n      proto[0][1] || name,                // 1.Font family\n      proto[0][2] || 'Unknown',           // 2.Font subfamily (font weight)\n      proto[0][3] || 'uniqueID',          // 3.Unique ID\n      proto[0][4] || name,                // 4.Full font name\n      proto[0][5] || 'Version 0.11',      // 5.Version\n      proto[0][6] || '',                  // 6.Postscript name\n      proto[0][7] || 'Unknown',           // 7.Trademark\n      proto[0][8] || 'Unknown',           // 8.Manufacturer\n      proto[0][9] || 'Unknown'            // 9.Designer\n    ];\n\n    // Mac want 1-byte per character strings while Windows want\n    // 2-bytes per character, so duplicate the names table\n    var stringsUnicode = [];\n    for (var i = 0, ii = strings.length; i < ii; i++) {\n      var str = proto[1][i] || strings[i];\n\n      var strUnicode = '';\n      for (var j = 0, jj = str.length; j < jj; j++)\n        strUnicode += string16(str.charCodeAt(j));\n      stringsUnicode.push(strUnicode);\n    }\n\n    var names = [strings, stringsUnicode];\n    var platforms = ['\\x00\\x01', '\\x00\\x03'];\n    var encodings = ['\\x00\\x00', '\\x00\\x01'];\n    var languages = ['\\x00\\x00', '\\x04\\x09'];\n\n    var namesRecordCount = strings.length * platforms.length;\n    var nameTable =\n      '\\x00\\x00' +                           // format\n      string16(namesRecordCount) +           // Number of names Record\n      string16(namesRecordCount * 12 + 6);   // Storage\n\n    // Build the name records field\n    var strOffset = 0;\n    for (var i = 0, ii = platforms.length; i < ii; i++) {\n      var strs = names[i];\n      for (var j = 0, jj = strs.length; j < jj; j++) {\n        var str = strs[j];\n        var nameRecord =\n          platforms[i] + // platform ID\n          encodings[i] + // encoding ID\n          languages[i] + // language ID\n          string16(j) + // name ID\n          string16(str.length) +\n          string16(strOffset);\n        nameTable += nameRecord;\n        strOffset += str.length;\n      }\n    }\n\n    nameTable += strings.join('') + stringsUnicode.join('');\n    return nameTable;\n  }\n\n  // Normalize the charcodes in the cmap table into unicode values\n  // that will work with the (3, 1) cmap table we will write out.\n  function cmapCharcodeToUnicode(charcode, symbolic, platformId, encodingId) {\n    var unicode;\n    if (symbolic) {\n      // These codes will be shifted into the range\n      // SYMBOLIC_FONT_GLYPH_OFFSET to (SYMBOLIC_FONT_GLYPH_OFFSET + 0xFF)\n      // so that they are not in the control character range that could\n      // be displayed as spaces by browsers.\n      if (platformId === 3 && encodingId === 0 ||\n          platformId === 1 && encodingId === 0) {\n        unicode = SYMBOLIC_FONT_GLYPH_OFFSET | (charcode & 0xFF);\n      }\n    } else {\n      if (platformId === 3 && encodingId === 1) {\n        // A (3, 1) table is alredy unicode (Microsoft Unicode format)\n        unicode = charcode;\n      } else if (platformId === 1 && encodingId === 0) {\n        // TODO(mack): Should apply the changes to convert the\n        // MacRomanEncoding to Mac OS Roman encoding in 9.6.6.4\n        // table 115 of the pdf spec\n        var glyphName = Encodings.MacRomanEncoding[charcode];\n        if (glyphName) {\n          unicode = GlyphsUnicode[glyphName];\n        }\n      }\n    }\n    return unicode;\n  }\n\n\n  Font.prototype = {\n    name: null,\n    font: null,\n    mimetype: null,\n    encoding: null,\n    get renderer() {\n      var renderer = FontRendererFactory.create(this);\n      return shadow(this, 'renderer', renderer);\n    },\n\n    exportData: function Font_exportData() {\n      var data = {};\n      for (var i in this) {\n        if (this.hasOwnProperty(i))\n          data[i] = this[i];\n      }\n      return data;\n    },\n\n    checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n      function readTableEntry(file) {\n        var tag = file.getBytes(4);\n        tag = String.fromCharCode(tag[0]) +\n              String.fromCharCode(tag[1]) +\n              String.fromCharCode(tag[2]) +\n              String.fromCharCode(tag[3]);\n\n        var checksum = int32(file.getBytes(4));\n        var offset = int32(file.getBytes(4));\n        var length = int32(file.getBytes(4));\n\n        // Read the table associated data\n        var previousPosition = file.pos;\n        file.pos = file.start ? file.start : 0;\n        file.skip(offset);\n        var data = file.getBytes(length);\n        file.pos = previousPosition;\n\n        if (tag == 'head') {\n          // clearing checksum adjustment\n          data[8] = data[9] = data[10] = data[11] = 0;\n          data[17] |= 0x20; //Set font optimized for cleartype flag\n        }\n\n        return {\n          tag: tag,\n          checksum: checksum,\n          length: length,\n          offset: offset,\n          data: data\n        };\n      }\n\n      function readOpenTypeHeader(ttf) {\n        return {\n          version: arrayToString(ttf.getBytes(4)),\n          numTables: int16(ttf.getBytes(2)),\n          searchRange: int16(ttf.getBytes(2)),\n          entrySelector: int16(ttf.getBytes(2)),\n          rangeShift: int16(ttf.getBytes(2))\n        };\n      }\n\n      function createGlyphNameMap(glyphs, ids, properties) {\n        var glyphNames = properties.glyphNames;\n        if (!glyphNames) {\n          properties.glyphNameMap = {};\n          return;\n        }\n        var glyphsLength = glyphs.length;\n        var glyphNameMap = {};\n        var encoding = [];\n        for (var i = 0; i < glyphsLength; ++i) {\n          var glyphName = glyphNames[ids[i]];\n          if (!glyphName)\n            continue;\n          var unicode = glyphs[i].unicode;\n          glyphNameMap[glyphName] = unicode;\n          var code = glyphs[i].code;\n          encoding[code] = glyphName;\n        }\n        properties.glyphNameMap = glyphNameMap;\n        if (properties.overridableEncoding)\n          properties.baseEncoding = encoding;\n      }\n\n      /**\n       * Read the appropriate subtable from the cmap according to 9.6.6.4 from\n       * PDF spec\n       */\n      function readCmapTable(cmap, font, hasEncoding, isSymbolicFont) {\n        var start = (font.start ? font.start : 0) + cmap.offset;\n        font.pos = start;\n\n        var version = int16(font.getBytes(2));\n        var numTables = int16(font.getBytes(2));\n\n        var potentialTable;\n        var foundPreferredTable;\n        // There's an order of preference in terms of which cmap subtable we\n        // want to use. So scan through them to find our preferred table.\n        for (var i = 0; i < numTables; i++) {\n          var platformId = int16(font.getBytes(2));\n          var encodingId = int16(font.getBytes(2));\n          var offset = int32(font.getBytes(4));\n          var useTable = false;\n          var canBreak = false;\n\n          // The following block implements the following from the spec:\n          //\n          //   When the font has no Encoding entry, or the font descriptor’s\n          //   Symbolic flag is set (in which case the Encoding entry\n          //   is ignored), this shall occur:\n          //      - If the font contains a (3, 0) subtable, the range of\n          //      - Otherwise, the (1, 0) subtable will be used.\n          //   Otherwise, if the font does have an encoding:\n          //      - Use the (3, 1) cmap subtable\n          //      - Otherwise, use the (1, 0) subtable if present\n          //\n          // The following diverges slightly from the above spec in order\n          // to handle the case that hasEncoding and isSymbolicFont are both\n          // true. In this, based on the ordering of the rules in the spec,\n          // my interpretation is that we should be acting as if the font is\n          // symbolic.\n          //\n          // However, in this case, the test pdf 'preistabelle.pdf'\n          // is interpreting this case as a non-symbolic font. In this case\n          // though, 'presitabelle.pdf' does contain a (3, 1) table and does\n          // not contain a (3, 0) table which indicates it is non-symbolic.\n          //\n          // Thus, I am using this heurisitic of looking at which table is\n          // found to truly determine whether or not the font is symbolic.\n          // That is, if the specific symbolic/non-symbolic font specific\n          // tables (3, 0) or (3, 1) is found, that information is used for\n          // deciding if the font is symbolic or not.\n          //\n          // TODO(mack): This section needs some more thought on whether the\n          // heuristic is good enough. For now, it passes all the regression\n          // tests.\n          if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n            useTable = true;\n            canBreak = true;\n            foundPreferredTable = true;\n          } else if (hasEncoding && platformId === 3 && encodingId === 1) {\n            useTable = true;\n            canBreak = true;\n            foundPreferredTable = true;\n            // Update the isSymbolicFont based on this heuristic\n            isSymbolicFont = false;\n          } else if (platformId === 1 && encodingId === 0 &&\n              !foundPreferredTable) {\n            useTable = true;\n            foundPreferredTable = true;\n          } else if (!potentialTable) {\n            // We will use an arbitrary table if we cannot find a preferred\n            // table\n            useTable = true;\n          }\n\n          if (useTable) {\n            potentialTable = {\n              platformId: platformId,\n              encodingId: encodingId,\n              offset: offset,\n              isSymbolicFont: isSymbolicFont\n            };\n          }\n          if (canBreak) {\n            break;\n          }\n        }\n\n        if (!potentialTable) {\n          error('Could not find a cmap table');\n          return;\n        }\n\n        if (!foundPreferredTable) {\n          warn('Did not find a cmap of suitable format. Interpreting (' +\n               potentialTable.platformId + ', ' + potentialTable.encodingId +\n               ') as (3, 1) table');\n          potentialTable.platformId = 3;\n          potentialTable.encodingId = 1;\n        }\n\n        font.pos = start + potentialTable.offset;\n        var format = int16(font.getBytes(2));\n        var length = int16(font.getBytes(2));\n        var language = int16(font.getBytes(2));\n\n        var hasShortCmap = false;\n        var mappings = [];\n\n        // TODO(mack): refactor this cmap subtable reading logic out\n        if (format === 0) {\n          for (var j = 0; j < 256; j++) {\n            var index = font.getByte();\n            if (!index) {\n              continue;\n            }\n            mappings.push({\n              charcode: j,\n              glyphId: index\n            });\n          }\n          hasShortCmap = true;\n        } else if (format === 4) {\n          // re-creating the table in format 4 since the encoding\n          // might be changed\n          var segCount = (int16(font.getBytes(2)) >> 1);\n          font.getBytes(6); // skipping range fields\n          var segIndex, segments = [];\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments.push({ end: int16(font.getBytes(2)) });\n          }\n          font.getBytes(2);\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments[segIndex].start = int16(font.getBytes(2));\n          }\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments[segIndex].delta = int16(font.getBytes(2));\n          }\n\n          var offsetsCount = 0;\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            var segment = segments[segIndex];\n            var rangeOffset = int16(font.getBytes(2));\n            if (!rangeOffset) {\n              segment.offsetIndex = -1;\n              continue;\n            }\n\n            var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n            segment.offsetIndex = offsetIndex;\n            offsetsCount = Math.max(offsetsCount, offsetIndex +\n              segment.end - segment.start + 1);\n          }\n\n          var offsets = [];\n          for (var j = 0; j < offsetsCount; j++) {\n            offsets.push(int16(font.getBytes(2)));\n          }\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            var segment = segments[segIndex];\n            var start = segment.start, end = segment.end;\n            var delta = segment.delta, offsetIndex = segment.offsetIndex;\n\n            for (var j = start; j <= end; j++) {\n              if (j == 0xFFFF) {\n                continue;\n              }\n\n              var glyphId = offsetIndex < 0 ? j :\n                offsets[offsetIndex + j - start];\n              glyphId = (glyphId + delta) & 0xFFFF;\n              if (glyphId === 0) {\n                continue;\n              }\n              mappings.push({\n                charcode: j,\n                glyphId: glyphId\n              });\n            }\n          }\n        } else if (format == 6) {\n          // Format 6 is a 2-bytes dense mapping, which means the font data\n          // lives glue together even if they are pretty far in the unicode\n          // table. (This looks weird, so I can have missed something), this\n          // works on Linux but seems to fails on Mac so let's rewrite the\n          // cmap table to a 3-1-4 style\n          var firstCode = int16(font.getBytes(2));\n          var entryCount = int16(font.getBytes(2));\n\n          var glyphs = [];\n          var ids = [];\n          for (var j = 0; j < entryCount; j++) {\n            var glyphId = int16(font.getBytes(2));\n            var charcode = firstCode + j;\n\n            mappings.push({\n              charcode: charcode,\n              glyphId: glyphId\n            });\n          }\n        } else {\n          error('cmap table has unsupported format: ' + format);\n        }\n\n        // removing duplicate entries\n        mappings.sort(function (a, b) {\n          return a.charcode - b.charcode;\n        });\n        for (var i = 1; i < mappings.length; i++) {\n          if (mappings[i - 1].charcode === mappings[i].charcode) {\n            mappings.splice(i, 1);\n            i--;\n          }\n        }\n\n        return {\n          platformId: potentialTable.platformId,\n          encodingId: potentialTable.encodingId,\n          isSymbolicFont: potentialTable.isSymbolicFont,\n          mappings: mappings,\n          hasShortCmap: hasShortCmap\n        };\n      }\n\n      function sanitizeMetrics(font, header, metrics, numGlyphs) {\n        if (!header) {\n          if (metrics) {\n            metrics.data = null;\n          }\n          return;\n        }\n\n        font.pos = (font.start ? font.start : 0) + header.offset;\n        font.pos += header.length - 2;\n        var numOfMetrics = int16(font.getBytes(2));\n\n        if (numOfMetrics > numGlyphs) {\n          info('The numOfMetrics (' + numOfMetrics + ') should not be ' +\n               'greater than the numGlyphs (' + numGlyphs + ')');\n          // Reduce numOfMetrics if it is greater than numGlyphs\n          numOfMetrics = numGlyphs;\n          header.data[34] = (numOfMetrics & 0xff00) >> 8;\n          header.data[35] = numOfMetrics & 0x00ff;\n        }\n\n        var numOfSidebearings = numGlyphs - numOfMetrics;\n        var numMissing = numOfSidebearings -\n          ((metrics.length - numOfMetrics * 4) >> 1);\n\n        if (numMissing > 0) {\n          font.pos = (font.start ? font.start : 0) + metrics.offset;\n          var entries = '';\n          for (var i = 0, ii = metrics.length; i < ii; i++)\n            entries += String.fromCharCode(font.getByte());\n          for (var i = 0; i < numMissing; i++)\n            entries += '\\x00\\x00';\n          metrics.data = stringToArray(entries);\n        }\n      }\n\n      function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart,\n                             hintsValid) {\n        if (sourceEnd - sourceStart <= 12) {\n          // glyph with data less than 12 is invalid one\n          return 0;\n        }\n        var glyf = source.subarray(sourceStart, sourceEnd);\n        var contoursCount = (glyf[0] << 8) | glyf[1];\n        if (contoursCount & 0x8000) {\n          // complex glyph, writing as is\n          dest.set(glyf, destStart);\n          return glyf.length;\n        }\n\n        var j = 10, flagsCount = 0;\n        for (var i = 0; i < contoursCount; i++) {\n          var endPoint = (glyf[j] << 8) | glyf[j + 1];\n          flagsCount = endPoint + 1;\n          j += 2;\n        }\n        // skipping instructions\n        var instructionsStart = j;\n        var instructionsLength = (glyf[j] << 8) | glyf[j + 1];\n        j += 2 + instructionsLength;\n        var instructionsEnd = j;\n        // validating flags\n        var coordinatesLength = 0;\n        for (var i = 0; i < flagsCount; i++) {\n          var flag = glyf[j++];\n          if (flag & 0xC0) {\n            // reserved flags must be zero, cleaning up\n            glyf[j - 1] = flag & 0x3F;\n          }\n          var xyLength = ((flag & 2) ? 1 : (flag & 16) ? 0 : 2) +\n                         ((flag & 4) ? 1 : (flag & 32) ? 0 : 2);\n          coordinatesLength += xyLength;\n          if (flag & 8) {\n            var repeat = glyf[j++];\n            i += repeat;\n            coordinatesLength += repeat * xyLength;\n          }\n        }\n        // glyph without coordinates will be rejected\n        if (coordinatesLength === 0) {\n          return 0;\n        }\n        var glyphDataLength = j + coordinatesLength;\n        if (glyphDataLength > glyf.length) {\n          // not enough data for coordinates\n          return 0;\n        }\n        if (!hintsValid && instructionsLength > 0) {\n          dest.set(glyf.subarray(0, instructionsStart), destStart);\n          dest.set([0, 0], destStart + instructionsStart);\n          dest.set(glyf.subarray(instructionsEnd, glyphDataLength),\n                   destStart + instructionsStart + 2);\n          glyphDataLength -= instructionsLength;\n          if (glyf.length - glyphDataLength > 3) {\n            glyphDataLength = (glyphDataLength + 3) & ~3;\n          }\n          return glyphDataLength;\n        }\n        if (glyf.length - glyphDataLength > 3) {\n          // truncating and aligning to 4 bytes the long glyph data\n          glyphDataLength = (glyphDataLength + 3) & ~3;\n          dest.set(glyf.subarray(0, glyphDataLength), destStart);\n          return glyphDataLength;\n        }\n        // glyph data is fine\n        dest.set(glyf, destStart);\n        return glyf.length;\n      }\n\n      function sanitizeHead(head, numGlyphs, locaLength) {\n        var data = head.data;\n\n        // Validate version:\n        // Should always be 0x00010000\n        var version = int32([data[0], data[1], data[2], data[3]]);\n        if (version >> 16 !== 1) {\n          info('Attempting to fix invalid version in head table: ' + version);\n          data[0] = 0;\n          data[1] = 1;\n          data[2] = 0;\n          data[3] = 0;\n        }\n\n        var indexToLocFormat = int16([data[50], data[51]]);\n        if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n          info('Attempting to fix invalid indexToLocFormat in head table: ' +\n               indexToLocFormat);\n\n          // The value of indexToLocFormat should be 0 if the loca table\n          // consists of short offsets, and should be 1 if the loca table\n          // consists of long offsets.\n          //\n          // The number of entries in the loca table should be numGlyphs + 1.\n          //\n          // Using this information, we can work backwards to deduce if the\n          // size of each offset in the loca table, and thus figure out the\n          // appropriate value for indexToLocFormat.\n\n          var numGlyphsPlusOne = numGlyphs + 1;\n          if (locaLength === numGlyphsPlusOne << 1) {\n            // 0x0000 indicates the loca table consists of short offsets\n            data[50] = 0;\n            data[51] = 0;\n          } else if (locaLength === numGlyphsPlusOne << 2) {\n            // 0x0001 indicates the loca table consists of long offsets\n            data[50] = 0;\n            data[51] = 1;\n          } else {\n            warn('Could not fix indexToLocFormat: ' + indexToLocFormat);\n          }\n        }\n      }\n\n      function sanitizeGlyphLocations(loca, glyf, numGlyphs,\n                                      isGlyphLocationsLong, hintsValid,\n                                      dupFirstEntry) {\n        var itemSize, itemDecode, itemEncode;\n        if (isGlyphLocationsLong) {\n          itemSize = 4;\n          itemDecode = function fontItemDecodeLong(data, offset) {\n            return (data[offset] << 24) | (data[offset + 1] << 16) |\n                   (data[offset + 2] << 8) | data[offset + 3];\n          };\n          itemEncode = function fontItemEncodeLong(data, offset, value) {\n            data[offset] = (value >>> 24) & 0xFF;\n            data[offset + 1] = (value >> 16) & 0xFF;\n            data[offset + 2] = (value >> 8) & 0xFF;\n            data[offset + 3] = value & 0xFF;\n          };\n        } else {\n          itemSize = 2;\n          itemDecode = function fontItemDecode(data, offset) {\n            return (data[offset] << 9) | (data[offset + 1] << 1);\n          };\n          itemEncode = function fontItemEncode(data, offset, value) {\n            data[offset] = (value >> 9) & 0xFF;\n            data[offset + 1] = (value >> 1) & 0xFF;\n          };\n        }\n        var locaData = loca.data;\n        var locaDataSize = itemSize * (1 + numGlyphs);\n        // is loca.data too short or long?\n        if (locaData.length !== locaDataSize) {\n          locaData = new Uint8Array(locaDataSize);\n          locaData.set(loca.data.subarray(0, locaDataSize));\n          loca.data = locaData;\n        }\n        // removing the invalid glyphs\n        var oldGlyfData = glyf.data;\n        var oldGlyfDataLength = oldGlyfData.length;\n        var newGlyfData = new Uint8Array(oldGlyfDataLength);\n        var startOffset = itemDecode(locaData, 0);\n        var writeOffset = 0;\n        itemEncode(locaData, 0, writeOffset);\n        for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n          var endOffset = itemDecode(locaData, j);\n          if (endOffset > oldGlyfDataLength) {\n            // glyph end offset points outside glyf data, rejecting the glyph\n            itemEncode(locaData, j, writeOffset);\n            startOffset = endOffset;\n            continue;\n          }\n\n          var newLength = sanitizeGlyph(oldGlyfData, startOffset, endOffset,\n                                        newGlyfData, writeOffset, hintsValid);\n          writeOffset += newLength;\n          itemEncode(locaData, j, writeOffset);\n          startOffset = endOffset;\n        }\n\n        if (writeOffset === 0) {\n          // glyf table cannot be empty -- redoing the glyf and loca tables\n          // to have single glyph with one point\n          var simpleGlyph = new Uint8Array(\n            [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n          for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize)\n            itemEncode(locaData, j, simpleGlyph.length);\n          glyf.data = simpleGlyph;\n          return;\n        }\n\n        if (dupFirstEntry) {\n          var firstEntryLength = itemDecode(locaData, itemSize);\n          if (newGlyfData.length > firstEntryLength + writeOffset) {\n            glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n          } else {\n            glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n            glyf.data.set(newGlyfData.subarray(0, writeOffset));\n          }\n          glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n          itemEncode(loca.data, locaData.length - itemSize,\n                     writeOffset + firstEntryLength);\n        } else {\n          glyf.data = newGlyfData.subarray(0, writeOffset);\n        }\n      }\n\n      function readPostScriptTable(post, properties, maxpNumGlyphs) {\n        var start = (font.start ? font.start : 0) + post.offset;\n        font.pos = start;\n\n        var length = post.length, end = start + length;\n        var version = int32(font.getBytes(4));\n        // skip rest to the tables\n        font.getBytes(28);\n\n        var glyphNames;\n        var valid = true;\n        switch (version) {\n          case 0x00010000:\n            glyphNames = MacStandardGlyphOrdering;\n            break;\n          case 0x00020000:\n            var numGlyphs = int16(font.getBytes(2));\n            if (numGlyphs != maxpNumGlyphs) {\n              valid = false;\n              break;\n            }\n            var glyphNameIndexes = [];\n            for (var i = 0; i < numGlyphs; ++i) {\n              var index = int16(font.getBytes(2));\n              if (index >= 32768) {\n                valid = false;\n                break;\n              }\n              glyphNameIndexes.push(index);\n            }\n            if (!valid) {\n              break;\n            }\n            var customNames = [];\n            while (font.pos < end) {\n              var stringLength = font.getByte();\n              var string = '';\n              for (var i = 0; i < stringLength; ++i) {\n                string += String.fromCharCode(font.getByte());\n              }\n              customNames.push(string);\n            }\n            glyphNames = [];\n            for (var i = 0; i < numGlyphs; ++i) {\n              var j = glyphNameIndexes[i];\n              if (j < 258) {\n                glyphNames.push(MacStandardGlyphOrdering[j]);\n                continue;\n              }\n              glyphNames.push(customNames[j - 258]);\n            }\n            break;\n          case 0x00030000:\n            break;\n          default:\n            warn('Unknown/unsupported post table version ' + version);\n            valid = false;\n            break;\n        }\n        properties.glyphNames = glyphNames;\n        return valid;\n      }\n\n      function readNameTable(nameTable) {\n        var start = (font.start ? font.start : 0) + nameTable.offset;\n        font.pos = start;\n\n        var names = [[], []];\n        var length = nameTable.length, end = start + length;\n        var format = int16(font.getBytes(2));\n        var FORMAT_0_HEADER_LENGTH = 6;\n        if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n          // unsupported name table format or table \"too\" small\n          return names;\n        }\n        var numRecords = int16(font.getBytes(2));\n        var stringsStart = int16(font.getBytes(2));\n        var records = [];\n        var NAME_RECORD_LENGTH = 12;\n        for (var i = 0; i < numRecords &&\n                        font.pos + NAME_RECORD_LENGTH <= end; i++) {\n          var r = {\n            platform: int16(font.getBytes(2)),\n            encoding: int16(font.getBytes(2)),\n            language: int16(font.getBytes(2)),\n            name: int16(font.getBytes(2)),\n            length: int16(font.getBytes(2)),\n            offset: int16(font.getBytes(2))\n          };\n          // using only Macintosh and Windows platform/encoding names\n          if ((r.platform == 1 && r.encoding === 0 && r.language === 0) ||\n              (r.platform == 3 && r.encoding == 1 && r.language == 0x409)) {\n            records.push(r);\n          }\n        }\n        for (var i = 0, ii = records.length; i < ii; i++) {\n          var record = records[i];\n          var pos = start + stringsStart + record.offset;\n          if (pos + record.length > end) {\n            continue; // outside of name table, ignoring\n          }\n          font.pos = pos;\n          var nameIndex = record.name;\n          var encoding = record.encoding ? 1 : 0;\n          if (record.encoding) {\n            // unicode\n            var str = '';\n            for (var j = 0, jj = record.length; j < jj; j += 2) {\n              str += String.fromCharCode(int16(font.getBytes(2)));\n            }\n            names[1][nameIndex] = str;\n          } else {\n            names[0][nameIndex] = bytesToString(font.getBytes(record.length));\n          }\n        }\n        return names;\n      }\n\n      var TTOpsStackDeltas = [\n        0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5,\n        -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1,\n        1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1,\n        0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2,\n        0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1,\n        -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1,\n        -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n        -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1,\n        -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n        // 0xC0-DF == -1 and 0xE0-FF == -2\n\n      function sanitizeTTProgram(table, ttContext) {\n        var data = table.data;\n        var i = 0, n, lastEndf = 0, lastDeff = 0;\n        var stack = [];\n        var callstack = [];\n        var functionsCalled = [];\n        var tooComplexToFollowFunctions =\n          ttContext.tooComplexToFollowFunctions;\n        var inFDEF = false, ifLevel = 0, inELSE = 0;\n        for (var ii = data.length; i < ii;) {\n          var op = data[i++];\n          // The TrueType instruction set docs can be found at\n          // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n          if (op === 0x40) { // NPUSHB - pushes n bytes\n            n = data[i++];\n            if (inFDEF || inELSE) {\n              i += n;\n            } else {\n              for (var j = 0; j < n; j++) {\n                stack.push(data[i++]);\n              }\n            }\n          } else if (op === 0x41) { // NPUSHW - pushes n words\n            n = data[i++];\n            if (inFDEF || inELSE) {\n              i += n * 2;\n            } else {\n              for (var j = 0; j < n; j++) {\n                var b = data[i++];\n                stack.push((b << 8) | data[i++]);\n              }\n            }\n          } else if ((op & 0xF8) === 0xB0) { // PUSHB - pushes bytes\n            n = op - 0xB0 + 1;\n            if (inFDEF || inELSE) {\n              i += n;\n            } else {\n              for (var j = 0; j < n; j++) {\n                stack.push(data[i++]);\n              }\n            }\n          } else if ((op & 0xF8) === 0xB8) { // PUSHW - pushes words\n            n = op - 0xB8 + 1;\n            if (inFDEF || inELSE) {\n              i += n * 2;\n            } else {\n              for (var j = 0; j < n; j++) {\n                var b = data[i++];\n                stack.push((b << 8) | data[i++]);\n              }\n            }\n          } else if (op === 0x2B && !tooComplexToFollowFunctions) { // CALL\n            if (!inFDEF && !inELSE) {\n              // collecting inforamtion about which functions are used\n              var funcId = stack[stack.length - 1];\n              ttContext.functionsUsed[funcId] = true;\n              if (funcId in ttContext.functionsStackDeltas) {\n                stack.length += ttContext.functionsStackDeltas[funcId];\n              } else if (funcId in ttContext.functionsDefined &&\n                         functionsCalled.indexOf(funcId) < 0) {\n                callstack.push({data: data, i: i, stackTop: stack.length - 1});\n                functionsCalled.push(funcId);\n                var pc = ttContext.functionsDefined[funcId];\n                if (!pc) {\n                  warn('TT: CALL non-existent function');\n                  ttContext.hintsValid = false;\n                  return;\n                }\n                data = pc.data;\n                i = pc.i;\n              }\n            }\n          } else if (op === 0x2C && !tooComplexToFollowFunctions) { // FDEF\n            if (inFDEF || inELSE) {\n              warn('TT: nested FDEFs not allowed');\n              tooComplexToFollowFunctions = true;\n            }\n            inFDEF = true;\n            // collecting inforamtion about which functions are defined\n            lastDeff = i;\n            var funcId = stack.pop();\n            ttContext.functionsDefined[funcId] = {data: data, i: i};\n          } else if (op === 0x2D) { // ENDF - end of function\n            if (inFDEF) {\n              inFDEF = false;\n              lastEndf = i;\n            } else {\n              var pc = callstack.pop();\n              if (!pc) {\n                warn('TT: ENDF bad stack');\n                ttContext.hintsValid = false;\n                return;\n              }\n              var funcId = functionsCalled.pop();\n              data = pc.data;\n              i = pc.i;\n              ttContext.functionsStackDeltas[funcId] =\n                stack.length - pc.stackTop;\n            }\n          } else if (op === 0x89) { // IDEF - instruction definition\n            if (inFDEF || inELSE) {\n              warn('TT: nested IDEFs not allowed');\n              tooComplexToFollowFunctions = true;\n            }\n            inFDEF = true;\n            // recording it as a function to track ENDF\n            lastDeff = i;\n          } else if (op === 0x58) { // IF\n            ++ifLevel;\n          } else if (op === 0x1B) { // ELSE\n            inELSE = ifLevel;\n          } else if (op === 0x59) { // EIF\n            if (inELSE === ifLevel) {\n              inELSE = 0;\n            }\n            --ifLevel;\n          } else if (op === 0x1C) { // JMPR\n            var offset = stack[stack.length - 1];\n            // only jumping forward to prevent infinite loop\n            if (offset > 0) { i += offset - 1; }\n          }\n          // Adjusting stack not extactly, but just enough to get function id\n          if (!inFDEF && !inELSE) {\n            var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] :\n              op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0;\n            if (op >= 0x71 && op <= 0x75) {\n              n = stack.pop();\n              if (n === n) {\n                stackDelta = -n * 2;\n              }\n            }\n            while (stackDelta < 0 && stack.length > 0) {\n              stack.pop();\n              stackDelta++;\n            }\n            while (stackDelta > 0) {\n              stack.push(NaN); // pushing any number into stack\n              stackDelta--;\n            }\n          }\n        }\n        ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n        var content = [data];\n        if (i > data.length) {\n          content.push(new Uint8Array(i - data.length));\n        }\n        if (lastDeff > lastEndf) {\n          warn('TT: complementing a missing function tail');\n          // new function definition started, but not finished\n          // complete function by [CLEAR, ENDF]\n          content.push(new Uint8Array([0x22, 0x2D]));\n        }\n        foldTTTable(table, content);\n      }\n\n      function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n        if (ttContext.tooComplexToFollowFunctions) {\n          return;\n        }\n        for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n          if (j > maxFunctionDefs) {\n            warn('TT: invalid function id: ' + j);\n            ttContext.hintsValid = false;\n            return;\n          }\n          if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n            warn('TT: undefined function: ' + j);\n            ttContext.hintsValid = false;\n            return;\n          }\n        }\n      }\n\n      function foldTTTable(table, content) {\n        if (content.length > 1) {\n          // concatenating the content items\n          var newLength = 0;\n          for (var j = 0, jj = content.length; j < jj; j++) {\n            newLength += content[j].length;\n          }\n          newLength = (newLength + 3) & ~3;\n          var result = new Uint8Array(newLength);\n          var pos = 0;\n          for (var j = 0, jj = content.length; j < jj; j++) {\n            result.set(content[j], pos);\n            pos += content[j].length;\n          }\n          table.data = result;\n          table.length = newLength;\n        }\n      }\n\n      function sanitizeTTPrograms(fpgm, prep, cvt) {\n        var ttContext = {\n          functionsDefined: [],\n          functionsUsed: [],\n          functionsStackDeltas: [],\n          tooComplexToFollowFunctions: false,\n          hintsValid: true\n        };\n        if (fpgm) {\n          sanitizeTTProgram(fpgm, ttContext);\n        }\n        if (prep) {\n          sanitizeTTProgram(prep, ttContext);\n        }\n        if (fpgm) {\n          checkInvalidFunctions(ttContext, maxFunctionDefs);\n        }\n        if (cvt && (cvt.length & 1)) {\n          var cvtData = new Uint8Array(cvt.length + 1);\n          cvtData.set(cvt.data);\n          cvt.data = cvtData;\n        }\n        return ttContext.hintsValid;\n      }\n\n      // The following steps modify the original font data, making copy\n      font = new Stream(new Uint8Array(font.getBytes()));\n\n      var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp',\n        'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF '];\n\n      var header = readOpenTypeHeader(font);\n      var numTables = header.numTables;\n\n      var tables = { 'OS/2': null, cmap: null, head: null, hhea: null,\n                     hmtx: null, maxp: null, name: null, post: null};\n      for (var i = 0; i < numTables; i++) {\n        var table = readTableEntry(font);\n        if (VALID_TABLES.indexOf(table.tag) < 0) {\n          continue; // skipping table if it's not a required or optional table\n        }\n        if (table.length === 0) {\n          continue; // skipping empty tables\n        }\n        tables[table.tag] = table;\n      }\n\n      var isTrueType = !tables['CFF '];\n      if (!isTrueType) {\n        // OpenType font\n        if (!tables.head || !tables.hhea || !tables.maxp || !tables.post) {\n          // no major tables: throwing everything at CFFFont\n          var cffFile = new Stream(tables['CFF '].data);\n          var cff = new CFFFont(cffFile, properties);\n\n          return this.convert(name, cff, properties);\n        }\n\n        delete tables.glyf;\n        delete tables.loca;\n        delete tables.fpgm;\n        delete tables.prep;\n        delete tables['cvt '];\n      } else {\n        if (!tables.glyf || !tables.loca) {\n          error('Required \"glyf\" or \"loca\" tables are not found');\n        }\n      }\n\n      if (!tables.maxp) {\n        error('Required \"maxp\" table is not found');\n      }\n\n      font.pos = (font.start || 0) + tables.maxp.offset;\n      var version = int32(font.getBytes(4));\n      var numGlyphs = int16(font.getBytes(2));\n      var maxFunctionDefs = 0;\n      if (version >= 0x00010000 && tables.maxp.length >= 22) {\n        // maxZones can be invalid\n        font.pos += 8;\n        var maxZones = int16(font.getBytes(2));\n        if (maxZones > 2) { // reset to 2 if font has invalid maxZones\n          tables.maxp.data[14] = 0;\n          tables.maxp.data[15] = 2;\n        }\n        font.pos += 4;\n        maxFunctionDefs = int16(font.getBytes(2));\n      }\n\n      var dupFirstEntry = false;\n      if (properties.type == 'CIDFontType2' && properties.toUnicode &&\n          properties.toUnicode[0] > '\\u0000') {\n        // oracle's defect (see 3427), duplicating first entry\n        dupFirstEntry = true;\n        numGlyphs++;\n        tables.maxp.data[4] = numGlyphs >> 8;\n        tables.maxp.data[5] = numGlyphs & 255;\n      }\n\n      var hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep,\n                                          tables['cvt '], maxFunctionDefs);\n      if (!hintsValid) {\n        delete tables.fpgm;\n        delete tables.prep;\n        delete tables['cvt '];\n      }\n\n      // Tables needs to be written by ascendant alphabetic order\n      var tablesNames = Object.keys(tables);\n      tablesNames.sort();\n\n      numTables = tablesNames.length;\n\n      // header and new offsets. Table entry information is appended to the\n      // end of file. The virtualOffset represents where to put the actual\n      // data of a particular table;\n      var ttf = {\n        file: '',\n        virtualOffset: numTables * (4 * 4)\n      };\n\n      // The new numbers of tables will be the last one plus the num\n      // of missing tables\n      createOpenTypeHeader(header.version, ttf, numTables);\n\n      // Ensure the hmtx table contains the advance width and\n      // sidebearings information for numGlyphs in the maxp table\n      sanitizeMetrics(font, tables.hhea, tables.hmtx, numGlyphs);\n\n      if (!tables.head) {\n        error('Required \"head\" table is not found');\n      }\n\n      sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n\n      if (isTrueType) {\n        var isGlyphLocationsLong = int16([tables.head.data[50],\n                                          tables.head.data[51]]);\n        sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs,\n                               isGlyphLocationsLong, hintsValid, dupFirstEntry);\n      }\n\n      if (!tables.hhea) {\n        error('Required \"hhea\" table is not found');\n      }\n\n      // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth\n      // Sometimes it's 0. That needs to be fixed\n      if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n        tables.hhea.data[10] = 0xFF;\n        tables.hhea.data[11] = 0xFF;\n      }\n\n      // The 'post' table has glyphs names.\n      if (tables.post) {\n        var valid = readPostScriptTable(tables.post, properties, numGlyphs);\n        if (!valid) {\n          tables.post = null;\n        }\n      }\n\n      var glyphs, ids;\n      if (properties.type == 'CIDFontType2') {\n        // Replace the old CMAP table with a shiny new one\n        // Type2 composite fonts map characters directly to glyphs so the cmap\n        // table must be replaced.\n        // canvas fillText will reencode some characters even if the font has a\n        // glyph at that position - e.g. newline is converted to a space and\n        // U+00AD (soft hyphen) is not drawn.\n        // So, offset all the glyphs by 0xFF to avoid these cases and use\n        // the encoding to map incoming characters to the new glyph positions\n        if (!tables.cmap) {\n          tables.cmap = {\n            tag: 'cmap',\n            data: null\n          };\n        }\n\n        var cidToGidMap = properties.cidToGidMap || [];\n        var gidToCidMap = [0];\n        if (cidToGidMap.length > 0) {\n          for (var j = cidToGidMap.length - 1; j >= 0; j--) {\n            var gid = cidToGidMap[j];\n            if (gid)\n              gidToCidMap[gid] = j;\n          }\n          // filling the gaps using CID above the CIDs currently used in font\n          var nextCid = cidToGidMap.length;\n          for (var i = 1; i < numGlyphs; i++) {\n            if (!gidToCidMap[i])\n              gidToCidMap[i] = nextCid++;\n          }\n        } else {\n          for (var i = 1; i < numGlyphs; i++) {\n            gidToCidMap[i] = i;\n          }\n          if (dupFirstEntry) {\n            gidToCidMap[numGlyphs - 1] = 0;\n          }\n        }\n\n        glyphs = [];\n        ids = [];\n\n        var usedUnicodes = [];\n        var unassignedUnicodeItems = [];\n        var toFontChar = this.cidToFontChar || this.toFontChar;\n        for (var i = 1; i < numGlyphs; i++) {\n          var cid = gidToCidMap[i];\n          var unicode = toFontChar[cid];\n          if (!unicode || typeof unicode !== 'number' ||\n              isSpecialUnicode(unicode) || unicode in usedUnicodes) {\n            unassignedUnicodeItems.push(i);\n            continue;\n          }\n          usedUnicodes[unicode] = true;\n          glyphs.push({ unicode: unicode, code: cid });\n          ids.push(i);\n        }\n\n        // unassigned codepoints will never be used for non-Identity CMap\n        // because the input will be Unicode\n        if (!this.cidToFontChar) {\n          // trying to fit as many unassigned symbols as we can\n          // in the range allocated for the user defined symbols\n          var unusedUnicode = CMAP_GLYPH_OFFSET;\n          for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) {\n            var i = unassignedUnicodeItems[j];\n            var cid = gidToCidMap[i];\n            while (unusedUnicode in usedUnicodes)\n              unusedUnicode++;\n            if (unusedUnicode >= CMAP_GLYPH_OFFSET + GLYPH_AREA_SIZE)\n              break;\n            var unicode = unusedUnicode++;\n            this.toFontChar[cid] = unicode;\n            usedUnicodes[unicode] = true;\n            glyphs.push({ unicode: unicode, code: cid });\n            ids.push(i);\n          }\n        }\n      } else {\n        this.useToFontChar = true;\n        // Most of the following logic in this code branch is based on the\n        // 9.6.6.4 of the PDF spec.\n\n        // TODO(mack):\n        // We are using this.hasEncoding to mean that the encoding is either\n        // MacRomanEncoding or WinAnsiEncoding (following spec in 9.6.6.4),\n        // but this.hasEncoding is currently true for any encodings on the\n        // Encodings object (e.g. MacExpertEncoding). So should consider using\n        // better check for this.\n        var cmapTable = readCmapTable(tables.cmap, font, this.hasEncoding,\n            this.isSymbolicFont);\n\n        // TODO(mack): If the (3, 0) cmap table used, then the font is\n        // symbolic. The range of charcodes in the cmap table should be\n        // one of the following:\n        //   -> 0x0000 - 0x00FF\n        //   -> 0xF000 - 0xF0FF\n        //   -> 0xF100 - 0xF1FF\n        //   -> 0xF200 - 0xF2FF\n        // If it is not, we should change not consider this a symbolic font\n        this.isSymbolicFont = cmapTable.isSymbolicFont;\n\n        var cmapPlatformId = cmapTable.platformId;\n        var cmapEncodingId = cmapTable.encodingId;\n        var cmapMappings = cmapTable.mappings;\n        var cmapMappingsLength = cmapMappings.length;\n        var glyphs = [];\n        var ids = [];\n        for (var i = 0; i < cmapMappingsLength; ++i) {\n          var cmapMapping = cmapMappings[i];\n          var charcode = cmapMapping.charcode;\n          var unicode = cmapCharcodeToUnicode(charcode, this.isSymbolicFont,\n              cmapPlatformId, cmapEncodingId);\n\n          if (!unicode) {\n            // TODO(mack): gotta check if skipping mappings where we cannot find\n            // a unicode is the correct behaviour\n            continue;\n          }\n          glyphs.push({\n            code: charcode,\n            unicode: unicode\n          });\n          ids.push(cmapMapping.glyphId);\n        }\n\n        var hasShortCmap = cmapTable.hasShortCmap;\n        var toFontChar = this.toFontChar;\n\n        if (hasShortCmap && ids.length == numGlyphs) {\n          // Fixes the short cmap tables -- some generators use incorrect\n          // glyph id.\n          for (var i = 0, ii = ids.length; i < ii; i++) {\n            ids[i] = i;\n          }\n        }\n\n        // Rewrite the whole toFontChar dictionary with a new one using the\n        // information from the mappings in the cmap table.\n        var newToFontChar = [];\n        if (this.isSymbolicFont) {\n          for (var i = 0, ii = glyphs.length; i < ii; i++) {\n            var glyph = glyphs[i];\n            // For (3, 0) cmap tables:\n            // The charcode key being stored in toFontChar is the lower byte\n            // of the two-byte charcodes of the cmap table since according to\n            // the spec: 'each byte from the string shall be prepended with the\n            // high byte of the range [of charcodes in the cmap table], to form\n            // a two-byte character, which shall be used to select the\n            // associated glyph description from the subtable'.\n            //\n            // For (1, 0) cmap tables:\n            // 'single bytes from the string shall be used to look up the\n            // associated glyph descriptions from the subtable'. This means\n            // charcodes in the cmap will be single bytes, so no-op since\n            // glyph.code & 0xFF === glyph.code\n            newToFontChar[glyph.code & 0xFF] = glyph.unicode;\n          }\n        } else {\n\n          var encoding = properties.baseEncoding;\n          var differences = properties.differences;\n\n          // TODO(mack): check if it is necessary to shift control characters\n          // for non-symbolic fonts so that browsers dont't render them using\n          // space characters\n\n          var glyphCodeMapping = cmapTable.glyphCodeMapping;\n          for (var charcode = 0; charcode < encoding.length; ++charcode) {\n            if (!encoding.hasOwnProperty(charcode)) {\n              continue;\n            }\n\n            // Since the cmap table that we will be writing out is a (3, 1)\n            // unicode table, in this section we will rewrites the charcodes\n            // in the pdf into unicodes\n\n            var glyphName = encoding[charcode];\n            // A nonsymbolic font should not have a Differences array, but\n            // if it does have one, we should still use it\n            if (charcode in differences) {\n              glyphName = differences[charcode];\n            }\n\n            // Finally, any undefined entries in the table shall be filled\n            // using StandardEncoding\n            if (!glyphName) {\n              glyphName = Encodings.StandardEncoding[charcode];\n            }\n\n            // TODO(mack): Handle the case that the glyph name cannot be\n            // mapped as specified, in which case the glyph name shall be\n            // looked up in the font program's 'post' table (if one is\n            // present) and the associated glyph id shall be used.\n            //\n            // For now, we're just using the '.notdef' glyph name in this\n            // case.\n            glyphName = glyphName || '.notdef';\n\n            var unicode = GlyphsUnicode[glyphName];\n            newToFontChar[charcode] = unicode;\n          }\n        }\n        this.toFontChar = toFontChar = newToFontChar;\n\n        createGlyphNameMap(glyphs, ids, properties);\n        this.glyphNameMap = properties.glyphNameMap;\n      }\n\n      if (glyphs.length === 0) {\n        // defines at least one glyph\n        glyphs.push({ unicode: 0xF000, code: 0xF000, glyph: '.notdef' });\n        ids.push(0);\n      }\n\n      // Converting glyphs and ids into font's cmap table\n      tables.cmap.data = createCmapTable(glyphs, ids);\n      var unicodeIsEnabled = [];\n      for (var i = 0, ii = glyphs.length; i < ii; i++) {\n        unicodeIsEnabled[glyphs[i].unicode] = true;\n      }\n      this.unicodeIsEnabled = unicodeIsEnabled;\n\n      if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) {\n        // extract some more font properties from the OpenType head and\n        // hhea tables; yMin and descent value are always negative\n        var override = {\n          unitsPerEm: int16([tables.head.data[18], tables.head.data[19]]),\n          yMax: int16([tables.head.data[42], tables.head.data[43]]),\n          yMin: int16([tables.head.data[38], tables.head.data[39]]) - 0x10000,\n          ascent: int16([tables.hhea.data[4], tables.hhea.data[5]]),\n          descent: int16([tables.hhea.data[6], tables.hhea.data[7]]) - 0x10000\n        };\n\n        tables['OS/2'] = {\n          tag: 'OS/2',\n          data: stringToArray(createOS2Table(properties, glyphs, override))\n        };\n      }\n\n      // Rewrite the 'post' table if needed\n      if (!tables.post) {\n        tables.post = {\n          tag: 'post',\n          data: stringToArray(createPostTable(properties))\n        };\n      }\n\n      if (!isTrueType) {\n        try {\n          // Trying to repair CFF file\n          var cffFile = new Stream(tables['CFF '].data);\n          var parser = new CFFParser(cffFile, properties);\n          var cff = parser.parse();\n          var compiler = new CFFCompiler(cff);\n          tables['CFF '].data = compiler.compile();\n        } catch (e) {\n          warn('Failed to compile font ' + properties.loadedName);\n        }\n      }\n\n      // Re-creating 'name' table\n      if (!tables.name) {\n        tables.name = {\n          tag: 'name',\n          data: stringToArray(createNameTable(this.name))\n        };\n      } else {\n        // ... using existing 'name' table as prototype\n        var namePrototype = readNameTable(tables.name);\n        tables.name.data = stringToArray(createNameTable(name, namePrototype));\n      }\n\n      // rewrite the tables but tweak offsets\n      for (var i = 0; i < numTables; i++) {\n        var table = tables[tablesNames[i]];\n        var data = [];\n\n        var tableData = table.data;\n        for (var j = 0, jj = tableData.length; j < jj; j++)\n          data.push(tableData[j]);\n        createTableEntry(ttf, table.tag, data);\n      }\n\n      // Add the table datas\n      for (var i = 0; i < numTables; i++) {\n        var table = tables[tablesNames[i]];\n        var tableData = table.data;\n        ttf.file += arrayToString(tableData);\n\n        // 4-byte aligned data\n        while (ttf.file.length & 3)\n          ttf.file += String.fromCharCode(0);\n      }\n\n      return stringToArray(ttf.file);\n    },\n\n    convert: function Font_convert(fontName, font, properties) {\n      function isFixedPitch(glyphs) {\n        for (var i = 0, ii = glyphs.length - 1; i < ii; i++) {\n          if (glyphs[i] != glyphs[i + 1])\n            return false;\n        }\n        return true;\n      }\n\n      // The offsets object holds at the same time a representation of where\n      // to write the table entry information about a table and another offset\n      // representing the offset where to draw the actual data of a particular\n      // table\n      var REQ_TABLES_CNT = 9;\n\n      var otf = {\n        file: '',\n        virtualOffset: 9 * (4 * 4)\n      };\n\n      createOpenTypeHeader('\\x4F\\x54\\x54\\x4F', otf, 9);\n\n      var charstrings = font.charstrings;\n      properties.fixedPitch = isFixedPitch(charstrings);\n\n      var glyphNameMap = {};\n      for (var i = 0; i < charstrings.length; ++i) {\n        var charstring = charstrings[i];\n        glyphNameMap[charstring.glyph] = charstring.unicode;\n      }\n      this.glyphNameMap = glyphNameMap;\n\n      var seacs = font.seacs;\n      if (SEAC_ANALYSIS_ENABLED && seacs) {\n        var seacMap = [];\n        var matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n        for (var i = 0; i < charstrings.length; ++i) {\n          var charstring = charstrings[i];\n          var seac = seacs[charstring.gid];\n          if (!seac) {\n            continue;\n          }\n          var baseGlyphName = Encodings.StandardEncoding[seac[2]];\n          var baseUnicode = glyphNameMap[baseGlyphName];\n          var accentGlyphName = Encodings.StandardEncoding[seac[3]];\n          var accentUnicode = glyphNameMap[accentGlyphName];\n          if (!baseUnicode || !accentUnicode) {\n            continue;\n          }\n          var accentOffset = {\n            x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n            y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n          };\n          seacMap[charstring.unicode] = {\n            baseUnicode: baseUnicode,\n            accentUnicode: accentUnicode,\n            accentOffset: accentOffset\n          };\n        }\n        properties.seacMap = seacMap;\n      }\n\n      if (properties.overridableEncoding && (properties.subtype == 'Type1C' ||\n          properties.subtype == 'CIDFontType0C')) {\n        var encoding = [];\n        for (var i = 0; i < charstrings.length; ++i) {\n          var charstring = charstrings[i];\n          encoding[charstring.code] = charstring.glyph;\n        }\n        properties.baseEncoding = encoding;\n      }\n      if (properties.subtype == 'CIDFontType0C') {\n        var toFontChar = [];\n        for (var i = 0; i < charstrings.length; ++i) {\n          var charstring = charstrings[i];\n          toFontChar[charstring.code] = charstring.unicode;\n        }\n        this.toFontChar = toFontChar;\n      }\n      var unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n      var fields = {\n        // PostScript Font Program\n        'CFF ': font.data,\n\n        // OS/2 and Windows Specific metrics\n        'OS/2': stringToArray(createOS2Table(properties, charstrings)),\n\n        // Character to glyphs mapping\n        'cmap': createCmapTable(charstrings.slice(),\n                                ('glyphIds' in font) ? font.glyphIds : null),\n\n        // Font header\n        'head': (function fontFieldsHead() {\n          return stringToArray(\n              '\\x00\\x01\\x00\\x00' + // Version number\n              '\\x00\\x00\\x10\\x00' + // fontRevision\n              '\\x00\\x00\\x00\\x00' + // checksumAdjustement\n              '\\x5F\\x0F\\x3C\\xF5' + // magicNumber\n              '\\x00\\x00' + // Flags\n              safeString16(unitsPerEm) + // unitsPerEM\n              '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + // creation date\n              '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + // modifification date\n              '\\x00\\x00' + // xMin\n              safeString16(properties.descent) + // yMin\n              '\\x0F\\xFF' + // xMax\n              safeString16(properties.ascent) + // yMax\n              string16(properties.italicAngle ? 2 : 0) + // macStyle\n              '\\x00\\x11' + // lowestRecPPEM\n              '\\x00\\x00' + // fontDirectionHint\n              '\\x00\\x00' + // indexToLocFormat\n              '\\x00\\x00');  // glyphDataFormat\n        })(),\n\n        // Horizontal header\n        'hhea': (function fontFieldsHhea() {\n          return stringToArray(\n              '\\x00\\x01\\x00\\x00' + // Version number\n              safeString16(properties.ascent) + // Typographic Ascent\n              safeString16(properties.descent) + // Typographic Descent\n              '\\x00\\x00' + // Line Gap\n              '\\xFF\\xFF' + // advanceWidthMax\n              '\\x00\\x00' + // minLeftSidebearing\n              '\\x00\\x00' + // minRightSidebearing\n              '\\x00\\x00' + // xMaxExtent\n              safeString16(properties.capHeight) + // caretSlopeRise\n              safeString16(Math.tan(properties.italicAngle) *\n                       properties.xHeight) + // caretSlopeRun\n              '\\x00\\x00' + // caretOffset\n              '\\x00\\x00' + // -reserved-\n              '\\x00\\x00' + // -reserved-\n              '\\x00\\x00' + // -reserved-\n              '\\x00\\x00' + // -reserved-\n              '\\x00\\x00' + // metricDataFormat\n              string16(charstrings.length + 1)); // Number of HMetrics\n        })(),\n\n        // Horizontal metrics\n        'hmtx': (function fontFieldsHmtx() {\n          var hmtx = '\\x00\\x00\\x00\\x00'; // Fake .notdef\n          for (var i = 0, ii = charstrings.length; i < ii; i++) {\n            var charstring = charstrings[i];\n            var width = 'width' in charstring ? charstring.width : 0;\n            hmtx += string16(width) + string16(0);\n          }\n          return stringToArray(hmtx);\n        })(),\n\n        // Maximum profile\n        'maxp': (function fontFieldsMaxp() {\n          return stringToArray(\n              '\\x00\\x00\\x50\\x00' + // Version number\n             string16(charstrings.length + 1)); // Num of glyphs\n        })(),\n\n        // Naming tables\n        'name': stringToArray(createNameTable(fontName)),\n\n        // PostScript informations\n        'post': stringToArray(createPostTable(properties))\n      };\n\n      for (var field in fields)\n        createTableEntry(otf, field, fields[field]);\n\n      for (var field in fields) {\n        var table = fields[field];\n        otf.file += arrayToString(table);\n      }\n\n      return stringToArray(otf.file);\n    },\n\n    buildToFontChar: function Font_buildToFontChar(toUnicode) {\n      var result = [];\n      var unusedUnicode = CMAP_GLYPH_OFFSET;\n      for (var i = 0, ii = toUnicode.length; i < ii; i++) {\n        var unicode = toUnicode[i];\n        var fontCharCode = typeof unicode === 'object' ? unusedUnicode++ :\n          unicode;\n        if (typeof unicode !== 'undefined') {\n          if (isString(fontCharCode) && fontCharCode.length === 1) {\n            fontCharCode = fontCharCode.charCodeAt(0);\n          }\n          result[i] = fontCharCode;\n        }\n      }\n      return result;\n    },\n\n    rebuildToUnicode: function Font_rebuildToUnicode(properties) {\n      var firstChar = properties.firstChar, lastChar = properties.lastChar;\n      var map = [];\n      var toUnicode = this.toUnicode || this.cidToUnicode;\n      if (toUnicode) {\n        var isIdentityMap = toUnicode.length === 0;\n        for (var i = firstChar, ii = lastChar; i <= ii; i++) {\n          // TODO missing map the character according font's CMap\n          map[i] = isIdentityMap ? String.fromCharCode(i) : toUnicode[i];\n        }\n      } else {\n        for (var i = firstChar, ii = lastChar; i <= ii; i++) {\n          var glyph = properties.differences[i];\n          if (!glyph)\n            glyph = properties.baseEncoding[i];\n          if (!!glyph && (glyph in GlyphsUnicode))\n            map[i] = String.fromCharCode(GlyphsUnicode[glyph]);\n        }\n      }\n      this.toUnicode = map;\n    },\n\n    loadCidToUnicode: function Font_loadCidToUnicode(properties) {\n      if (!properties.cidSystemInfo)\n        return;\n\n      var cidToUnicodeMap = [], unicodeToCIDMap = [];\n      this.cidToUnicode = cidToUnicodeMap;\n      this.unicodeToCID = unicodeToCIDMap;\n\n      var cidEncoding = properties.cidEncoding;\n      if (properties.toUnicode) {\n        if (cidEncoding && cidEncoding.indexOf('Identity-') !== 0) {\n          TODO('Need to create a reverse mapping from \\'ToUnicode\\' CMap');\n        }\n        return; // 'ToUnicode' CMap will be used\n      }\n\n      var cidSystemInfo = properties.cidSystemInfo;\n      var cidToUnicode;\n      if (cidSystemInfo) {\n        cidToUnicode = CIDToUnicodeMaps[\n          cidSystemInfo.registry + '-' + cidSystemInfo.ordering];\n      }\n\n      if (!cidToUnicode)\n        return; // identity encoding\n\n      var overwrite = HalfwidthCMaps[cidEncoding];\n      var cid = 1, i, j, k, ii;\n      for (i = 0, ii = cidToUnicode.length; i < ii; ++i) {\n        var unicode = cidToUnicode[i];\n        if (isArray(unicode)) {\n          var length = unicode.length;\n          for (j = 0; j < length; j++) {\n            cidToUnicodeMap[cid] = k = unicode[j];\n            if (!unicodeToCIDMap[k] || overwrite) {\n              unicodeToCIDMap[k] = cid;\n            }\n          }\n          cid++;\n        } else if (typeof unicode === 'object') {\n          var fillLength = unicode.f;\n          if (fillLength) {\n            k = unicode.c;\n            for (j = 0; j < fillLength; ++j) {\n              cidToUnicodeMap[cid] = k;\n              if (!unicodeToCIDMap[k] || overwrite) {\n                unicodeToCIDMap[k] = cid;\n              }\n              cid++;\n              k++;\n            }\n          } else\n            cid += unicode.s;\n        } else if (unicode) {\n          cidToUnicodeMap[cid] = unicode;\n          if (!unicodeToCIDMap[unicode] || overwrite) {\n            unicodeToCIDMap[unicode] = cid;\n          }\n          cid++;\n        } else\n          cid++;\n      }\n\n      if (!cidEncoding) {\n        return;\n      }\n      if (cidEncoding.indexOf('Identity-') !== 0) {\n        // input is already Unicode for non-Identity CMap encodings.\n        this.cidToUnicode = [];\n        // For CIDFontType2, however, we need cid-to-Unicode conversion\n        // to rebuild cmap.\n        if (properties.type == 'CIDFontType2') {\n          this.cidToFontChar = cidToUnicodeMap;\n        }\n      } else {\n        // We don't have to do reverse conversions if the string is\n        // already CID.\n        this.unicodeToCID = [];\n      }\n    },\n\n    get spaceWidth() {\n      if ('_shadowWidth' in this) {\n        return this._shadowWidth;\n      }\n\n      // trying to estimate space character width\n      var possibleSpaceReplacements = ['space', 'minus', 'one', 'i'];\n      var width;\n      for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n        var glyphName = possibleSpaceReplacements[i];\n        // if possible, getting width by glyph name\n        if (glyphName in this.widths) {\n          width = this.widths[glyphName];\n          break;\n        }\n        var glyphUnicode = GlyphsUnicode[glyphName];\n        // finding the charcode via unicodeToCID map\n        var charcode = 0;\n        if (this.composite)\n          charcode = this.unicodeToCID[glyphUnicode];\n        // ... via toUnicode map\n        if (!charcode && 'toUnicode' in this)\n          charcode = this.toUnicode.indexOf(glyphUnicode);\n        // setting it to unicode if negative or undefined\n        if (charcode <= 0)\n          charcode = glyphUnicode;\n        // trying to get width via charcode\n        width = this.widths[charcode];\n        if (width)\n          break; // the non-zero width found\n      }\n      width = width || this.defaultWidth;\n      // Do not shadow the property here. See discussion:\n      // https://github.com/mozilla/pdf.js/pull/2127#discussion_r1662280\n      this._shadowWidth = width;\n      return width;\n    },\n\n    charToGlyph: function Font_charToGlyph(charcode) {\n      var fontCharCode, width, operatorList, disabled;\n\n      var width = this.widths[charcode];\n      var vmetric = this.vmetrics && this.vmetrics[charcode];\n\n      switch (this.type) {\n        case 'CIDFontType0':\n          var cid = this.unicodeToCID[charcode] || charcode;\n          if (this.unicodeToCID.length > 0) {\n            width = this.widths[cid];\n            vmetric = this.vmetrics && this.vmetrics[cid];\n          }\n          if (this.noUnicodeAdaptation) {\n            fontCharCode = this.toFontChar[charcode] || charcode;\n            break;\n          }\n          // CIDFontType0 is not encoded in Unicode.\n          fontCharCode = this.toFontChar[cid] || cid;\n          break;\n        case 'CIDFontType2':\n          if (this.unicodeToCID.length > 0) {\n            var cid = this.unicodeToCID[charcode] || charcode;\n            width = this.widths[cid];\n            vmetric = this.vmetrics && this.vmetrics[cid];\n            fontCharCode = charcode;\n            break;\n          }\n          fontCharCode = this.toFontChar[charcode] || charcode;\n          break;\n        case 'MMType1': // XXX at the moment only \"standard\" fonts are supported\n        case 'Type1':\n          var glyphName = this.differences[charcode] || this.encoding[charcode];\n          if (!isNum(width))\n            width = this.widths[glyphName];\n          if (this.noUnicodeAdaptation) {\n            fontCharCode = mapPrivateUseChars(GlyphsUnicode[glyphName] ||\n              charcode);\n            break;\n          }\n          fontCharCode = this.glyphNameMap[glyphName] ||\n            GlyphsUnicode[glyphName] || charcode;\n          break;\n        case 'Type3':\n          var glyphName = this.differences[charcode] || this.encoding[charcode];\n          operatorList = this.charProcOperatorList[glyphName];\n          fontCharCode = charcode;\n          break;\n        case 'TrueType':\n          if (this.useToFontChar) {\n            fontCharCode = this.toFontChar[charcode] || charcode;\n            break;\n          }\n          var glyphName = this.differences[charcode] || this.encoding[charcode];\n          if (!glyphName)\n            glyphName = Encodings.StandardEncoding[charcode];\n          if (!isNum(width))\n            width = this.widths[glyphName];\n          if (this.noUnicodeAdaptation) {\n            fontCharCode = GlyphsUnicode[glyphName] || charcode;\n            break;\n          }\n          if (!this.hasEncoding || this.isSymbolicFont) {\n            fontCharCode = this.useToFontChar ? this.toFontChar[charcode] :\n              charcode;\n            break;\n          }\n\n          // MacRoman encoding address by re-encoding the cmap table\n\n          fontCharCode = glyphName in this.glyphNameMap ?\n            this.glyphNameMap[glyphName] : GlyphsUnicode[glyphName];\n          break;\n        default:\n          warn('Unsupported font type: ' + this.type);\n          break;\n      }\n\n      var unicodeChars = !('toUnicode' in this) ? charcode :\n        this.toUnicode[charcode] || charcode;\n      if (typeof unicodeChars === 'number') {\n        unicodeChars = String.fromCharCode(unicodeChars);\n      }\n\n      width = isNum(width) ? width : this.defaultWidth;\n      disabled = this.unicodeIsEnabled ?\n        !this.unicodeIsEnabled[fontCharCode] : false;\n\n      var accent = null;\n      if (this.seacMap && this.seacMap[fontCharCode]) {\n        var seac = this.seacMap[fontCharCode];\n        fontCharCode = seac.baseUnicode;\n        accent = {\n          fontChar: String.fromCharCode(seac.accentUnicode),\n          offset: seac.accentOffset\n        };\n      }\n\n      return {\n        fontChar: String.fromCharCode(fontCharCode),\n        unicode: unicodeChars,\n        accent: accent,\n        width: width,\n        vmetric: vmetric,\n        disabled: disabled,\n        operatorList: operatorList\n      };\n    },\n\n    charsToGlyphs: function Font_charsToGlyphs(chars) {\n      var charsCache = this.charsCache;\n      var glyphs;\n\n      // if we translated this string before, just grab it from the cache\n      if (charsCache) {\n        glyphs = charsCache[chars];\n        if (glyphs)\n          return glyphs;\n      }\n\n      // lazily create the translation cache\n      if (!charsCache)\n        charsCache = this.charsCache = Object.create(null);\n\n      glyphs = [];\n      var charsCacheKey = chars;\n\n      var converter;\n      var cidEncoding = this.cidEncoding;\n      if (cidEncoding) {\n        converter = CMapConverterList[cidEncoding];\n        if (converter) {\n          chars = converter(chars);\n        } else if (cidEncoding.indexOf('Uni') !== 0 &&\n                   cidEncoding.indexOf('Identity-') !== 0) {\n          warn('Unsupported CMap: ' + cidEncoding);\n        }\n      }\n      if (!converter && this.cmap) {\n        var i = 0;\n        // composite fonts have multi-byte strings convert the string from\n        // single-byte to multi-byte\n        while (i < chars.length) {\n          var c = this.cmap.readCharCode(chars, i);\n          var charcode = c[0];\n          var length = c[1];\n          i += length;\n          var glyph = this.charToGlyph(charcode);\n          glyphs.push(glyph);\n          // placing null after each word break charcode (ASCII SPACE)\n          // Ignore occurences of 0x20 in multiple-byte codes.\n          if (length === 1 && chars.charCodeAt(i - 1) === 0x20) {\n            glyphs.push(null);\n          }\n        }\n      }\n      else {\n        for (var i = 0, ii = chars.length; i < ii; ++i) {\n          var charcode = chars.charCodeAt(i);\n          var glyph = this.charToGlyph(charcode);\n          glyphs.push(glyph);\n          if (charcode == 0x20)\n            glyphs.push(null);\n        }\n      }\n\n      // Enter the translated string into the cache\n      return (charsCache[charsCacheKey] = glyphs);\n    }\n  };\n\n  return Font;\n})();\n\nvar ErrorFont = (function ErrorFontClosure() {\n  function ErrorFont(error) {\n    this.error = error;\n  }\n\n  ErrorFont.prototype = {\n    charsToGlyphs: function ErrorFont_charsToGlyphs() {\n      return [];\n    },\n    exportData: function ErrorFont_exportData() {\n      return {error: this.error};\n    }\n  };\n\n  return ErrorFont;\n})();\n\n/*\n * CharStrings are encoded following the the CharString Encoding sequence\n * describe in Chapter 6 of the \"Adobe Type1 Font Format\" specification.\n * The value in a byte indicates a command, a number, or subsequent bytes\n * that are to be interpreted in a special way.\n *\n * CharString Number Encoding:\n *  A CharString byte containing the values from 32 through 255 inclusive\n *  indicate an integer. These values are decoded in four ranges.\n *\n * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,\n * indicate the integer v - 139. Thus, the integer values from -107 through\n * 107 inclusive may be encoded in single byte.\n *\n * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * [(v - 247) x 256] + w + 108\n *\n * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * -[(v - 251) * 256] - w - 108\n *\n * 4. A CharString containing the value 255 indicates that the next 4 bytes\n * are a two complement signed integer. The first of these bytes contains the\n * highest order bits, the second byte contains the next higher order bits\n * and the fourth byte contain the lowest order bits.\n *\n *\n * CharString Command Encoding:\n *  CharStrings commands are encoded in 1 or 2 bytes.\n *\n *  Single byte commands are encoded in 1 byte that contains a value between\n *  0 and 31 inclusive.\n *  If a command byte contains the value 12, then the value in the next byte\n *  indicates a command. This \"escape\" mechanism allows many extra commands\n * to be encoded and this encoding technique helps to minimize the length of\n * the charStrings.\n */\nvar Type1CharString = (function Type1CharStringClosure() {\n  var COMMAND_MAP = {\n    'hstem': [1],\n    'vstem': [3],\n    'vmoveto': [4],\n    'rlineto': [5],\n    'hlineto': [6],\n    'vlineto': [7],\n    'rrcurveto': [8],\n    'callsubr': [10],\n    'flex': [12, 35],\n    'drop' : [12, 18],\n    'endchar': [14],\n    'rmoveto': [21],\n    'hmoveto': [22],\n    'vhcurveto': [30],\n    'hvcurveto': [31]\n  };\n\n  function Type1CharString() {\n    this.width = 0;\n    this.lsb = 0;\n    this.flexing = false;\n    this.output = [];\n    this.stack = [];\n  }\n\n  Type1CharString.prototype = {\n    convert: function Type1CharString_convert(encoded, subrs) {\n      var count = encoded.length;\n      var error = false;\n      for (var i = 0; i < count; i++) {\n        var value = encoded[i];\n        if (value < 32) {\n          if (value === 12) {\n            value = (value << 8) + encoded[++i];\n          }\n          switch (value) {\n            case 1: // hstem\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n              error = this.executeCommand(2, COMMAND_MAP.hstem);\n              break;\n            case 3: // vstem\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n              error = this.executeCommand(2, COMMAND_MAP.vstem);\n              break;\n            case 4: // vmoveto\n              if (this.flexing) {\n                if (this.stack.length < 1) {\n                  error = true;\n                  break;\n                }\n                // Add the dx for flex and but also swap the values so they are\n                // the right order.\n                var dy = this.stack.pop();\n                this.stack.push(0, dy);\n                break;\n              }\n              error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n              break;\n            case 5: // rlineto\n              error = this.executeCommand(2, COMMAND_MAP.rlineto);\n              break;\n            case 6: // hlineto\n              error = this.executeCommand(1, COMMAND_MAP.hlineto);\n              break;\n            case 7: // vlineto\n              error = this.executeCommand(1, COMMAND_MAP.vlineto);\n              break;\n            case 8: // rrcurveto\n              error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n              break;\n            case 9: // closepath\n              // closepath is a Type1 command that does not take argument and is\n              // useless in Type2 and it can simply be ignored.\n              this.stack = [];\n              break;\n            case 10: // callsubr\n              if (this.stack.length < 1) {\n                error = true;\n                break;\n              }\n              var subrNumber = this.stack.pop();\n              error = this.convert(subrs[subrNumber], subrs);\n              break;\n            case 11: // return\n              return error;\n            case 13: // hsbw\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n              // To convert to type2 we have to move the width value to the\n              // first part of the charstring and then use hmoveto with lsb.\n              var wx = this.stack.pop();\n              var sbx = this.stack.pop();\n              this.lsb = sbx;\n              this.width = wx;\n              this.stack.push(sbx);\n              error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n              break;\n            case 14: // endchar\n              this.output.push(COMMAND_MAP.endchar[0]);\n              break;\n            case 21: // rmoveto\n              if (this.flexing) {\n                break;\n              }\n              error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n              break;\n            case 22: // hmoveto\n              if (this.flexing) {\n                // Add the dy for flex.\n                this.stack.push(0);\n                break;\n              }\n              error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n              break;\n            case 30: // vhcurveto\n              error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n              break;\n            case 31: // hvcurveto\n              error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n              break;\n            case (12 << 8) + 0: // dotsection\n              // dotsection is a Type1 command to specify some hinting feature\n              // for dots that do not take a parameter and it can safely be\n              // ignored for Type2.\n              this.stack = [];\n              break;\n            case (12 << 8) + 1: // vstem3\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n              // [vh]stem3 are Type1 only and Type2 supports [vh]stem with\n              // multiple parameters, so instead of returning [vh]stem3 take a\n              // shortcut and return [vhstem] instead.\n              error = this.executeCommand(2, COMMAND_MAP.vstem);\n              break;\n            case (12 << 8) + 2: // hstem3\n              if (!HINTING_ENABLED) {\n                 this.stack = [];\n                break;\n              }\n              // See vstem3.\n              error = this.executeCommand(2, COMMAND_MAP.hstem);\n              break;\n            case (12 << 8) + 6: // seac\n              // seac is like type 2's special endchar but it doesn't use the\n              // first argument asb, so remove it.\n              if (SEAC_ANALYSIS_ENABLED) {\n                this.seac = this.stack.splice(-4, 4);\n                error = this.executeCommand(0, COMMAND_MAP.endchar);\n              } else {\n                error = this.executeCommand(4, COMMAND_MAP.endchar);\n              }\n              break;\n            case (12 << 8) + 7: // sbw\n              if (this.stack.length < 4) {\n                error = true;\n                break;\n              }\n              // To convert to type2 we have to move the width value to the\n              // first part of the charstring and then use rmoveto with\n              // (dx, dy). The height argument will not be used for vmtx and\n              // vhea tables reconstruction -- ignoring it.\n              var wy = this.stack.pop();\n              var wx = this.stack.pop();\n              var sby = this.stack.pop();\n              var sbx = this.stack.pop();\n              this.lsb = sbx;\n              this.width = wx;\n              this.stack.push(sbx, sby);\n              error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n              break;\n            case (12 << 8) + 12: // div\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n              var num2 = this.stack.pop();\n              var num1 = this.stack.pop();\n              this.stack.push(num1 / num2);\n              break;\n            case (12 << 8) + 16: // callothersubr\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n              var subrNumber = this.stack.pop();\n              var numArgs = this.stack.pop();\n              if (subrNumber === 0 && numArgs === 3) {\n                var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n                this.stack.push(\n                  flexArgs[2] + flexArgs[0], // bcp1x + rpx\n                  flexArgs[3] + flexArgs[1], // bcp1y + rpy\n                  flexArgs[4], // bcp2x\n                  flexArgs[5], // bcp2y\n                  flexArgs[6], // p2x\n                  flexArgs[7], // p2y\n                  flexArgs[8], // bcp3x\n                  flexArgs[9], // bcp3y\n                  flexArgs[10], // bcp4x\n                  flexArgs[11], // bcp4y\n                  flexArgs[12], // p3x\n                  flexArgs[13], // p3y\n                  flexArgs[14] // flexDepth\n                  // 15 = finalx unused by flex\n                  // 16 = finaly unused by flex\n                );\n                error = this.executeCommand(13, COMMAND_MAP.flex, true);\n                this.flexing = false;\n                this.stack.push(flexArgs[15], flexArgs[16]);\n              } else if (subrNumber === 1 && numArgs === 0) {\n                this.flexing = true;\n              }\n              break;\n            case (12 << 8) + 17: // pop\n              // Ignore this since it is only used with othersubr.\n              break;\n            case (12 << 8) + 33: // setcurrentpoint\n              // Ignore for now.\n              this.stack = [];\n              break;\n            default:\n              warn('Unknown type 1 charstring command of \"' + value + '\"');\n              break;\n          }\n          if (error) {\n            break;\n          }\n          continue;\n        } else if (value <= 246) {\n          value = value - 139;\n        } else if (value <= 250) {\n          value = ((value - 247) * 256) + encoded[++i] + 108;\n        } else if (value <= 254) {\n          value = -((value - 251) * 256) - encoded[++i] - 108;\n        } else {\n          value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 |\n                  (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n        }\n        this.stack.push(value);\n      }\n      return error;\n    },\n\n    executeCommand: function(howManyArgs, command, keepStack) {\n      var stackLength = this.stack.length;\n      if (howManyArgs > stackLength) {\n        return true;\n      }\n      var start = stackLength - howManyArgs;\n      for (var i = start; i < stackLength; i++) {\n        var value = this.stack[i];\n        if (value === (value | 0)) { // int\n          this.output.push(28, (value >> 8) & 0xff, value & 0xff);\n        } else { // fixed point\n          value = (65536 * value) | 0;\n          this.output.push(255,\n                           (value >> 24) & 0xFF,\n                           (value >> 16) & 0xFF,\n                           (value >> 8) & 0xFF,\n                           value & 0xFF);\n        }\n      }\n      this.output.push.apply(this.output, command);\n      if (keepStack) {\n        this.stack.splice(start, howManyArgs);\n      } else {\n        this.stack = [];\n      }\n      return false;\n    }\n  };\n\n  return Type1CharString;\n})();\n\n/*\n * Type1Parser encapsulate the needed code for parsing a Type1 font\n * program. Some of its logic depends on the Type2 charstrings\n * structure.\n * Note: this doesn't really parse the font since that would require evaluation\n * of PostScript, but it is possible in most cases to extract what we need\n * without a full parse.\n */\nvar Type1Parser = (function Type1ParserClosure() {\n  /*\n   * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence\n   * of Plaintext Bytes. The function took a key as a parameter which can be\n   * for decrypting the eexec block of for decoding charStrings.\n   */\n  var EEXEC_ENCRYPT_KEY = 55665;\n  var CHAR_STRS_ENCRYPT_KEY = 4330;\n\n  function decrypt(stream, key, discardNumber) {\n    var r = key, c1 = 52845, c2 = 22719;\n    var decryptedString = [];\n\n    var value = '';\n    var count = stream.length;\n    for (var i = 0; i < count; i++) {\n      value = stream[i];\n      decryptedString[i] = value ^ (r >> 8);\n      r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n    }\n    return decryptedString.slice(discardNumber);\n  }\n\n  function isSpecial(c) {\n    return c === 0x2F || // '/'\n           c === 0x5B || c === 0x5D || // '[', ']'\n           c === 0x7B || c === 0x7D || // '{', '}'\n           c === 0x28 || c === 0x29; // '(', ')'\n  }\n\n  function Type1Parser(stream, encrypted) {\n    if (encrypted) {\n      stream = new Stream(decrypt(stream.getBytes(), EEXEC_ENCRYPT_KEY, 4));\n    }\n    this.stream = stream;\n    this.nextChar();\n  }\n\n  Type1Parser.prototype = {\n    readNumberArray: function Type1Parser_readNumberArray() {\n      this.getToken(); // read '[' or '{' (arrays can start with either)\n      var array = [];\n      while (true) {\n        var token = this.getToken();\n        if (token === null || token === ']' || token === '}') {\n          break;\n        }\n        array.push(parseFloat(token || 0));\n      }\n      return array;\n    },\n\n    readNumber: function Type1Parser_readNumber() {\n      var token = this.getToken();\n      return parseFloat(token || 0);\n    },\n\n    readInt: function Type1Parser_readInt() {\n      // Use '| 0' to prevent setting a double into length such as the double\n      // does not flow into the loop variable.\n      var token = this.getToken();\n      return parseInt(token || 0, 10) | 0;\n    },\n\n    readBoolean: function Type1Parser_readBoolean() {\n      var token = this.getToken();\n\n      // Use 1 and 0 since that's what type2 charstrings use.\n      return token === 'true' ? 1 : 0;\n    },\n\n    nextChar : function Type1_nextChar() {\n      return (this.currentChar = this.stream.getByte());\n    },\n\n    getToken: function Type1Parser_getToken() {\n      // Eat whitespace and comments.\n      var comment = false;\n      var ch = this.currentChar;\n      while (true) {\n        if (ch === -1) {\n          return null;\n        }\n\n        if (comment) {\n          if (ch === 0x0A || ch === 0x0D) {\n            comment = false;\n          }\n        } else if (ch === 0x25) { // '%'\n          comment = true;\n        } else if (!Lexer.isSpace(ch)) {\n          break;\n        }\n        ch = this.nextChar();\n      }\n      if (isSpecial(ch)) {\n        this.nextChar();\n        return String.fromCharCode(ch);\n      }\n      var token = '';\n      do {\n        token += String.fromCharCode(ch);\n        ch = this.nextChar();\n      } while (ch >= 0 && !Lexer.isSpace(ch) && !isSpecial(ch));\n      return token;\n    },\n\n    /*\n     * Returns an object containing a Subrs array and a CharStrings\n     * array extracted from and eexec encrypted block of data\n     */\n    extractFontProgram: function Type1Parser_extractFontProgram() {\n      var stream = this.stream;\n\n      var subrs = [], charstrings = [];\n      var program = {\n        subrs: [],\n        charstrings: [],\n        properties: {\n          'privateData': {\n            'lenIV': 4\n          }\n        }\n      };\n      var token;\n      while ((token = this.getToken()) !== null) {\n        if (token !== '/') {\n          continue;\n        }\n        token = this.getToken();\n        switch (token) {\n          case 'CharStrings':\n            // The number immediately following CharStrings must be greater or\n            // equal to the number of CharStrings.\n            this.getToken();\n            this.getToken(); // read in 'dict'\n            this.getToken(); // read in 'dup'\n            this.getToken(); // read in 'begin'\n            while(true) {\n              token = this.getToken();\n              if (token === null || token === 'end') {\n                break;\n              }\n\n              if (token !== '/') {\n                continue;\n              }\n              var glyph = this.getToken();\n              var length = this.readInt();\n              this.getToken(); // read in 'RD' or '-|'\n              var data = stream.makeSubStream(stream.pos, length);\n              var lenIV = program.properties.privateData['lenIV'];\n              var encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY,\n                                    lenIV);\n              // Skip past the required space and binary data.\n              stream.skip(length);\n              this.nextChar();\n              token = this.getToken(); // read in 'ND' or '|-'\n              if (token === 'noaccess') {\n                this.getToken(); // read in 'def'\n              }\n              charstrings.push({\n                glyph: glyph,\n                encoded: encoded\n              });\n            }\n            break;\n          case 'Subrs':\n            var num = this.readInt();\n            this.getToken(); // read in 'array'\n            while ((token = this.getToken()) === 'dup') {\n              var index = this.readInt();\n              var length = this.readInt();\n              this.getToken(); // read in 'RD' or '-|'\n              var data = stream.makeSubStream(stream.pos, length);\n              var lenIV = program.properties.privateData['lenIV'];\n              var encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY,\n                                    lenIV);\n              // Skip past the required space and binary data.\n              stream.skip(length);\n              this.nextChar();\n              token = this.getToken(); // read in 'NP' or '|'\n              if (token === 'noaccess') {\n                this.getToken(); // read in 'put'\n              }\n              subrs[index] = encoded;\n            }\n            break;\n          case 'BlueValues':\n          case 'OtherBlues':\n          case 'FamilyBlues':\n          case 'FamilyOtherBlues':\n            var blueArray = this.readNumberArray();\n            // *Blue* values may contain invalid data: disables reading of\n            // those values when hinting is disabled.\n            if (blueArray.length > 0 && (blueArray.length % 2) === 0 &&\n                HINTING_ENABLED) {\n              program.properties.privateData[token] = blueArray;\n            }\n            break;\n          case 'StemSnapH':\n          case 'StemSnapV':\n            program.properties.privateData[token] = this.readNumberArray();\n            break;\n          case 'StdHW':\n          case 'StdVW':\n            program.properties.privateData[token] =\n              this.readNumberArray()[0];\n            break;\n          case 'BlueShift':\n          case 'lenIV':\n          case 'BlueFuzz':\n          case 'BlueScale':\n          case 'LanguageGroup':\n          case 'ExpansionFactor':\n            program.properties.privateData[token] = this.readNumber();\n            break;\n          case 'ForceBold':\n            program.properties.privateData[token] = this.readBoolean();\n            break;\n        }\n      }\n\n      for (var i = 0; i < charstrings.length; i++) {\n        var glyph = charstrings[i].glyph;\n        var encoded = charstrings[i].encoded;\n        var charString = new Type1CharString();\n        var error = charString.convert(encoded, subrs);\n        var output = charString.output;\n        if (error) {\n          // It seems when FreeType encounters an error while evaluating a glyph\n          // that it completely ignores the glyph so we'll mimic that behaviour\n          // here and put an endchar to make the validator happy.\n          output = [14];\n        }\n        program.charstrings.push({\n          glyph: glyph,\n          data: output,\n          seac: charString.seac,\n          lsb: charString.lsb,\n          width: charString.width\n        });\n      }\n\n      return program;\n    },\n\n    extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n      var token;\n      while ((token = this.getToken()) !== null) {\n        if (token !== '/') {\n          continue;\n        }\n        token = this.getToken();\n        switch (token) {\n          case 'FontMatrix':\n            var matrix = this.readNumberArray();\n            properties.fontMatrix = matrix;\n            break;\n          case 'Encoding':\n            var encodingArg = this.getToken();\n            var encoding;\n            if (!/^\\d+$/.test(encodingArg)) {\n              // encoding name is specified\n              encoding = Encodings[encodingArg];\n            } else {\n              encoding = [];\n              var size = parseInt(encodingArg, 10) | 0;\n              this.getToken(); // read in 'array'\n\n              for (var j = 0; j < size; j++) {\n                var token = this.getToken();\n                // skipping till first dup or def (e.g. ignoring for statement)\n                while (token !== 'dup' && token !== 'def') {\n                  token = this.getToken();\n                  if (token === null) {\n                    return; // invalid header\n                  }\n                }\n                if (token === 'def') {\n                  break; // read all array data\n                }\n                var index = this.readInt();\n                this.getToken(); // read in '/'\n                var glyph = this.getToken();\n                encoding[index] = glyph;\n                this.getToken(); // read the in 'put'\n              }\n            }\n            if (properties.overridableEncoding && encoding) {\n              properties.baseEncoding = encoding;\n              break;\n            }\n            break;\n          case 'FontBBox':\n            var fontBBox = this.readNumberArray();\n            // adjusting ascent/descent\n            properties.ascent = fontBBox[3];\n            properties.descent = fontBBox[1];\n            properties.ascentScaled = true;\n            break;\n        }\n      }\n    }\n  };\n\n  return Type1Parser;\n})();\n\n/**\n * The CFF class takes a Type1 file and wrap it into a\n * 'Compact Font Format' which itself embed Type2 charstrings.\n */\nvar CFFStandardStrings = [\n  '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',\n  'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus',\n  'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four',\n  'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less',\n  'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',\n  'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',\n  'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum',\n  'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',\n  'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',\n  'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent',\n  'sterling', 'fraction', 'yen', 'florin', 'section', 'currency',\n  'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft',\n  'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl',\n  'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase',\n  'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown',\n  'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent',\n  'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash',\n  'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae',\n  'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior',\n  'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn',\n  'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters',\n  'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior',\n  'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring',\n  'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave',\n  'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute',\n  'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute',\n  'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron',\n  'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde',\n  'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute',\n  'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex',\n  'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex',\n  'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall',\n  'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall',\n  'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', '266 ff',\n  'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle',\n  'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle',\n  'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior',\n  'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior',\n  'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior',\n  'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',\n  'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior',\n  'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall',\n  'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall',\n  'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall',\n  'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall',\n  'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah',\n  'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall',\n  'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall',\n  'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior',\n  'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth',\n  'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds',\n  'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior',\n  'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior',\n  'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior',\n  'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior',\n  'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior',\n  'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall',\n  'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall',\n  'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall',\n  'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall',\n  'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall',\n  'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall',\n  'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall',\n  'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003',\n  'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'\n];\n\n// Type1Font is also a CIDFontType0.\nvar Type1Font = function Type1Font(name, file, properties) {\n  // Some bad generators embed pfb file as is, we have to strip 6-byte headers.\n  // Also, length1 and length2 might be off by 6 bytes as well.\n  // http://www.math.ubc.ca/~cass/piscript/type1.pdf\n  var PFB_HEADER_SIZE = 6;\n  var headerBlockLength = properties.length1;\n  var eexecBlockLength = properties.length2;\n  var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n  var pfbHeaderPresent = pfbHeader[0] == 0x80 && pfbHeader[1] == 0x01;\n  if (pfbHeaderPresent) {\n    file.skip(PFB_HEADER_SIZE);\n    headerBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) |\n                        (pfbHeader[3] << 8) | pfbHeader[2];\n  }\n\n  // Get the data block containing glyphs and subrs informations\n  var headerBlock = new Stream(file.getBytes(headerBlockLength));\n  var headerBlockParser = new Type1Parser(headerBlock);\n  headerBlockParser.extractFontHeader(properties);\n\n  if (pfbHeaderPresent) {\n    pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n    eexecBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) |\n                       (pfbHeader[3] << 8) | pfbHeader[2];\n  }\n\n  // Decrypt the data blocks and retrieve it's content\n  var eexecBlock = new Stream(file.getBytes(eexecBlockLength));\n  var eexecBlockParser = new Type1Parser(eexecBlock, true);\n  var data = eexecBlockParser.extractFontProgram();\n  for (var info in data.properties)\n    properties[info] = data.properties[info];\n\n  var charstrings = this.getOrderedCharStrings(data.charstrings, properties);\n  var type2Charstrings = this.getType2Charstrings(charstrings);\n  var subrs = this.getType2Subrs(data.subrs);\n\n  this.charstrings = charstrings;\n  this.data = this.wrap(name, type2Charstrings, this.charstrings,\n                        subrs, properties);\n  this.seacs = this.getSeacs(data.charstrings);\n};\n\nType1Font.prototype = {\n  getOrderedCharStrings: function Type1Font_getOrderedCharStrings(glyphs,\n                                                            properties) {\n    var charstrings = [];\n    var usedUnicodes = [];\n    var i, length, glyphName;\n    var unusedUnicode = CMAP_GLYPH_OFFSET;\n    for (i = 0, length = glyphs.length; i < length; i++) {\n      var item = glyphs[i];\n      var glyphName = item.glyph;\n      var unicode = glyphName in GlyphsUnicode ?\n        GlyphsUnicode[glyphName] : unusedUnicode++;\n      while (usedUnicodes[unicode]) {\n        unicode = unusedUnicode++;\n      }\n      usedUnicodes[unicode] = true;\n      charstrings.push({\n        glyph: glyphName,\n        unicode: unicode,\n        gid: i,\n        charstring: item.data,\n        width: item.width,\n        lsb: item.lsb\n      });\n    }\n\n    charstrings.sort(function charstrings_sort(a, b) {\n      return a.unicode - b.unicode;\n    });\n    return charstrings;\n  },\n\n  getSeacs: function Type1Font_getSeacs(charstrings) {\n    var i, ii;\n    var seacMap = [];\n    for (i = 0, ii = charstrings.length; i < ii; i++) {\n      var charstring = charstrings[i];\n      if (charstring.seac) {\n        seacMap[i] = charstring.seac;\n      }\n    }\n    return seacMap;\n  },\n\n  getType2Charstrings: function Type1Font_getType2Charstrings(\n                                  type1Charstrings) {\n    var type2Charstrings = [];\n    for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n      type2Charstrings.push(type1Charstrings[i].charstring);\n    }\n    return type2Charstrings;\n  },\n\n  getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n    var bias = 0;\n    var count = type1Subrs.length;\n    if (count < 1133)\n      bias = 107;\n    else if (count < 33769)\n      bias = 1131;\n    else\n      bias = 32768;\n\n    // Add a bunch of empty subrs to deal with the Type2 bias\n    var type2Subrs = [];\n    for (var i = 0; i < bias; i++)\n      type2Subrs.push([0x0B]);\n\n    for (var i = 0; i < count; i++) {\n      type2Subrs.push(type1Subrs[i]);\n    }\n\n    return type2Subrs;\n  },\n\n  wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {\n    var cff = new CFF();\n    cff.header = new CFFHeader(1, 0, 4, 4);\n\n    cff.names = [name];\n\n    var topDict = new CFFTopDict();\n    // CFF strings IDs 0...390 are predefined names, so refering\n    // to entries in our own String INDEX starts at SID 391.\n    topDict.setByName('version', 391);\n    topDict.setByName('Notice', 392);\n    topDict.setByName('FullName', 393);\n    topDict.setByName('FamilyName', 394);\n    topDict.setByName('Weight', 395);\n    topDict.setByName('Encoding', null); // placeholder\n    topDict.setByName('FontMatrix', properties.fontMatrix);\n    topDict.setByName('FontBBox', properties.bbox);\n    topDict.setByName('charset', null); // placeholder\n    topDict.setByName('CharStrings', null); // placeholder\n    topDict.setByName('Private', null); // placeholder\n    cff.topDict = topDict;\n\n    var strings = new CFFStrings();\n    strings.add('Version 0.11'); // Version\n    strings.add('See original notice'); // Notice\n    strings.add(name); // FullName\n    strings.add(name); // FamilyName\n    strings.add('Medium'); // Weight\n    cff.strings = strings;\n\n    cff.globalSubrIndex = new CFFIndex();\n\n    var count = glyphs.length;\n    var charsetArray = [0];\n    for (var i = 0; i < count; i++) {\n      var index = CFFStandardStrings.indexOf(charstrings[i].glyph);\n      // Some characters like asterikmath && circlecopyrt are\n      // missing from the original strings, for the moment let's\n      // map them to .notdef and see later if it cause any\n      // problems\n      if (index == -1)\n        index = 0;\n\n      charsetArray.push((index >> 8) & 0xff, index & 0xff);\n    }\n    cff.charset = new CFFCharset(false, 0, [], charsetArray);\n\n    var charStringsIndex = new CFFIndex();\n    charStringsIndex.add([0x8B, 0x0E]); // .notdef\n    for (var i = 0; i < count; i++) {\n      charStringsIndex.add(glyphs[i]);\n    }\n    cff.charStrings = charStringsIndex;\n\n    var privateDict = new CFFPrivateDict();\n    privateDict.setByName('Subrs', null); // placeholder\n    var fields = [\n      'BlueValues',\n      'OtherBlues',\n      'FamilyBlues',\n      'FamilyOtherBlues',\n      'StemSnapH',\n      'StemSnapV',\n      'BlueShift',\n      'BlueFuzz',\n      'BlueScale',\n      'LanguageGroup',\n      'ExpansionFactor',\n      'ForceBold',\n      'StdHW',\n      'StdVW'\n    ];\n    for (var i = 0, ii = fields.length; i < ii; i++) {\n      var field = fields[i];\n      if (!properties.privateData.hasOwnProperty(field))\n        continue;\n      var value = properties.privateData[field];\n      if (isArray(value)) {\n        // All of the private dictionary array data in CFF must be stored as\n        // \"delta-encoded\" numbers.\n        for (var j = value.length - 1; j > 0; j--) {\n          value[j] -= value[j - 1]; // ... difference from previous value\n        }\n      }\n      privateDict.setByName(field, value);\n    }\n    cff.topDict.privateDict = privateDict;\n\n    var subrIndex = new CFFIndex();\n    for (var i = 0, ii = subrs.length; i < ii; i++) {\n      subrIndex.add(subrs[i]);\n    }\n    privateDict.subrsIndex = subrIndex;\n\n    var compiler = new CFFCompiler(cff);\n    return compiler.compile();\n  }\n};\n\nvar CFFFont = (function CFFFontClosure() {\n  function CFFFont(file, properties) {\n    this.properties = properties;\n\n    var parser = new CFFParser(file, properties);\n    this.cff = parser.parse();\n    var compiler = new CFFCompiler(this.cff);\n    this.readExtra();\n    try {\n      this.data = compiler.compile();\n    } catch (e) {\n      warn('Failed to compile font ' + properties.loadedName);\n      // There may have just been an issue with the compiler, set the data\n      // anyway and hope the font loaded.\n      this.data = file;\n    }\n  }\n\n  CFFFont.prototype = {\n    readExtra: function CFFFont_readExtra() {\n      // charstrings contains info about glyphs (one element per glyph\n      // containing mappings for {unicode, width})\n      var charstrings = this.getCharStrings();\n\n      // create the mapping between charstring and glyph id\n      var glyphIds = [];\n      for (var i = 0, ii = charstrings.length; i < ii; i++)\n        glyphIds.push(charstrings[i].gid);\n\n      this.charstrings = charstrings;\n      this.glyphIds = glyphIds;\n      this.seacs = this.cff.seacs;\n    },\n    getCharStrings: function CFFFont_getCharStrings() {\n      var cff = this.cff;\n      var charsets = cff.charset.charset;\n      var encoding = cff.encoding ? cff.encoding.encoding : null;\n      var charstrings = [];\n      var unicodeUsed = [];\n      var unassignedUnicodeItems = [];\n      var inverseEncoding = [];\n      var gidStart = 0;\n      if (charsets[0] === '.notdef') {\n        gidStart = 1;\n      }\n      // According to section 9.7.4.2 CIDFontType0C glyph selection should be\n      // handled differently.\n      if (this.properties.subtype === 'CIDFontType0C') {\n        if (this.cff.isCIDFont) {\n          // If the font is actually a CID font then we should use the charset\n          // to map CIDs to GIDs.\n          inverseEncoding = charsets;\n        } else {\n          // If it is NOT actually a CID font then CIDs should be mapped\n          // directly to GIDs.\n          inverseEncoding = [];\n          for (var i = 0, ii = cff.charStrings.count; i < ii; i++) {\n            inverseEncoding.push(i);\n          }\n          // Use the identity map for charsets as well.\n          charsets = inverseEncoding;\n        }\n      } else {\n        for (var charcode in encoding) {\n          var gid = encoding[charcode];\n          if (gid in inverseEncoding) {\n            // Glyphs can be multiply-encoded if there was an encoding\n            // supplement. Convert to an array and append the charcode.\n            var previousCharcode = inverseEncoding[gid];\n            if (!isArray(previousCharcode)) {\n              inverseEncoding[gid] = [previousCharcode];\n            }\n            inverseEncoding[gid].push(charcode | 0);\n          } else {\n            inverseEncoding[gid] = charcode | 0;\n          }\n        }\n      }\n\n      for (var i = gidStart, ii = charsets.length; i < ii; i++) {\n        var glyph = charsets[i];\n\n        var codes = inverseEncoding[i];\n        if (!isArray(codes)) {\n          codes = [codes];\n        }\n\n        for (var j = 0; j < codes.length; j++) {\n          var code = codes[j];\n\n          if (!code || isSpecialUnicode(code)) {\n            unassignedUnicodeItems.push(i, code);\n            continue;\n          }\n          charstrings.push({\n            unicode: code,\n            code: code,\n            gid: i,\n            glyph: glyph\n          });\n          unicodeUsed[code] = true;\n        }\n      }\n\n      var nextUnusedUnicode = CMAP_GLYPH_OFFSET;\n      for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j += 2) {\n        var i = unassignedUnicodeItems[j];\n        // giving unicode value anyway\n        while (nextUnusedUnicode in unicodeUsed)\n          nextUnusedUnicode++;\n        var unicode = nextUnusedUnicode++;\n        charstrings.push({\n          unicode: unicode,\n          code: unassignedUnicodeItems[j + 1] || 0,\n          gid: i,\n          glyph: charsets[i]\n        });\n      }\n\n      // sort the array by the unicode value (again)\n      charstrings.sort(function getCharStringsSort(a, b) {\n        return a.unicode - b.unicode;\n      });\n      return charstrings;\n    }\n  };\n\n  return CFFFont;\n})();\n\nvar CFFParser = (function CFFParserClosure() {\n  var CharstringValidationData = [\n    null,\n    { id: 'hstem', min: 2, resetStack: true, stem: true },\n    null,\n    { id: 'vstem', min: 2, resetStack: true, stem: true },\n    { id: 'vmoveto', min: 1, resetStack: true },\n    { id: 'rlineto', min: 2, resetStack: true },\n    { id: 'hlineto', min: 1, resetStack: true },\n    { id: 'vlineto', min: 1, resetStack: true },\n    { id: 'rrcurveto', min: 6, resetStack: true },\n    null,\n    { id: 'callsubr', min: 1, undefStack: true },\n    { id: 'return', min: 0, undefStack: true },\n    null, // 12\n    null,\n    null, // endchar\n    null,\n    null,\n    null,\n    { id: 'hstemhm', min: 2, resetStack: true, stem: true },\n    null, // hintmask\n    null, // cntrmask\n    { id: 'rmoveto', min: 2, resetStack: true },\n    { id: 'hmoveto', min: 1, resetStack: true },\n    { id: 'vstemhm', min: 2, resetStack: true, stem: true },\n    { id: 'rcurveline', min: 8, resetStack: true },\n    { id: 'rlinecurve', min: 8, resetStack: true },\n    { id: 'vvcurveto', min: 4, resetStack: true },\n    { id: 'hhcurveto', min: 4, resetStack: true },\n    null, // shortint\n    { id: 'callgsubr', min: 1, undefStack: true },\n    { id: 'vhcurveto', min: 4, resetStack: true },\n    { id: 'hvcurveto', min: 4, resetStack: true }\n  ];\n  var CharstringValidationData12 = [\n    null,\n    null,\n    null,\n    { id: 'and', min: 2, stackDelta: -1 },\n    { id: 'or', min: 2, stackDelta: -1 },\n    { id: 'not', min: 1, stackDelta: 0 },\n    null,\n    null,\n    null,\n    { id: 'abs', min: 1, stackDelta: 0 },\n    { id: 'add', min: 2, stackDelta: -1,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 2] = stack[index - 2] + stack[index - 1];\n      }\n    },\n    { id: 'sub', min: 2, stackDelta: -1,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 2] = stack[index - 2] - stack[index - 1];\n      }\n    },\n    { id: 'div', min: 2, stackDelta: -1,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 2] = stack[index - 2] / stack[index - 1];\n      }\n    },\n    null,\n    { id: 'neg', min: 1, stackDelta: 0,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 1] = -stack[index - 1];\n      }\n    },\n    { id: 'eq', min: 2, stackDelta: -1 },\n    null,\n    null,\n    { id: 'drop', min: 1, stackDelta: -1 },\n    null,\n    { id: 'put', min: 2, stackDelta: -2 },\n    { id: 'get', min: 1, stackDelta: 0 },\n    { id: 'ifelse', min: 4, stackDelta: -3 },\n    { id: 'random', min: 0, stackDelta: 1 },\n    { id: 'mul', min: 2, stackDelta: -1,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 2] = stack[index - 2] * stack[index - 1];\n      }\n    },\n    null,\n    { id: 'sqrt', min: 1, stackDelta: 0 },\n    { id: 'dup', min: 1, stackDelta: 1 },\n    { id: 'exch', min: 2, stackDelta: 0 },\n    { id: 'index', min: 2, stackDelta: 0 },\n    { id: 'roll', min: 3, stackDelta: -2 },\n    null,\n    null,\n    null,\n    { id: 'hflex', min: 7, resetStack: true },\n    { id: 'flex', min: 13, resetStack: true },\n    { id: 'hflex1', min: 9, resetStack: true },\n    { id: 'flex1', min: 11, resetStack: true }\n  ];\n\n  function CFFParser(file, properties) {\n    this.bytes = file.getBytes();\n    this.properties = properties;\n  }\n  CFFParser.prototype = {\n    parse: function CFFParser_parse() {\n      var properties = this.properties;\n      var cff = new CFF();\n      this.cff = cff;\n\n      // The first five sections must be in order, all the others are reached\n      // via offsets contained in one of the below.\n      var header = this.parseHeader();\n      var nameIndex = this.parseIndex(header.endPos);\n      var topDictIndex = this.parseIndex(nameIndex.endPos);\n      var stringIndex = this.parseIndex(topDictIndex.endPos);\n      var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n\n      var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n      var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n\n      cff.header = header.obj;\n      cff.names = this.parseNameIndex(nameIndex.obj);\n      cff.strings = this.parseStringIndex(stringIndex.obj);\n      cff.topDict = topDict;\n      cff.globalSubrIndex = globalSubrIndex.obj;\n\n      this.parsePrivateDict(cff.topDict);\n\n      cff.isCIDFont = topDict.hasName('ROS');\n\n      var charStringOffset = topDict.getByName('CharStrings');\n      var charStringsAndSeacs = this.parseCharStrings(charStringOffset);\n      cff.charStrings = charStringsAndSeacs.charStrings;\n      cff.seacs = charStringsAndSeacs.seacs;\n\n      var fontMatrix = topDict.getByName('FontMatrix');\n      if (fontMatrix) {\n        properties.fontMatrix = fontMatrix;\n      }\n\n      var fontBBox = topDict.getByName('FontBBox');\n      if (fontBBox) {\n        // adjusting ascent/descent\n        properties.ascent = fontBBox[3];\n        properties.descent = fontBBox[1];\n        properties.ascentScaled = true;\n      }\n\n      var charset, encoding;\n      if (cff.isCIDFont) {\n        var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj;\n        for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n          var dictRaw = fdArrayIndex.get(i);\n          var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw),\n                                         cff.strings);\n          this.parsePrivateDict(fontDict);\n          cff.fdArray.push(fontDict);\n        }\n        // cid fonts don't have an encoding\n        encoding = null;\n        charset = this.parseCharsets(topDict.getByName('charset'),\n                                     cff.charStrings.count, cff.strings, true);\n        cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'),\n                                             cff.charStrings.count);\n      } else {\n        charset = this.parseCharsets(topDict.getByName('charset'),\n                                     cff.charStrings.count, cff.strings, false);\n        encoding = this.parseEncoding(topDict.getByName('Encoding'),\n                                      properties,\n                                      cff.strings, charset.charset);\n      }\n      cff.charset = charset;\n      cff.encoding = encoding;\n\n      return cff;\n    },\n    parseHeader: function CFFParser_parseHeader() {\n      var bytes = this.bytes;\n      var offset = 0;\n\n      while (bytes[offset] != 1)\n        ++offset;\n\n      if (offset !== 0) {\n        info('cff data is shifted');\n        bytes = bytes.subarray(offset);\n        this.bytes = bytes;\n      }\n      var major = bytes[0];\n      var minor = bytes[1];\n      var hdrSize = bytes[2];\n      var offSize = bytes[3];\n      var header = new CFFHeader(major, minor, hdrSize, offSize);\n      return {obj: header, endPos: hdrSize};\n    },\n    parseDict: function CFFParser_parseDict(dict) {\n      var pos = 0;\n\n      function parseOperand() {\n        var value = dict[pos++];\n        if (value === 30) {\n          return parseFloatOperand(pos);\n        } else if (value === 28) {\n          value = dict[pos++];\n          value = ((value << 24) | (dict[pos++] << 16)) >> 16;\n          return value;\n        } else if (value === 29) {\n          value = dict[pos++];\n          value = (value << 8) | dict[pos++];\n          value = (value << 8) | dict[pos++];\n          value = (value << 8) | dict[pos++];\n          return value;\n        } else if (value >= 32 && value <= 246) {\n          return value - 139;\n        } else if (value >= 247 && value <= 250) {\n          return ((value - 247) * 256) + dict[pos++] + 108;\n        } else if (value >= 251 && value <= 254) {\n          return -((value - 251) * 256) - dict[pos++] - 108;\n        } else {\n          error('255 is not a valid DICT command');\n        }\n        return -1;\n      }\n\n      function parseFloatOperand() {\n        var str = '';\n        var eof = 15;\n        var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8',\n            '9', '.', 'E', 'E-', null, '-'];\n        var length = dict.length;\n        while (pos < length) {\n          var b = dict[pos++];\n          var b1 = b >> 4;\n          var b2 = b & 15;\n\n          if (b1 == eof)\n            break;\n          str += lookup[b1];\n\n          if (b2 == eof)\n            break;\n          str += lookup[b2];\n        }\n        return parseFloat(str);\n      }\n\n      var operands = [];\n      var entries = [];\n\n      var pos = 0;\n      var end = dict.length;\n      while (pos < end) {\n        var b = dict[pos];\n        if (b <= 21) {\n          if (b === 12)\n            b = (b << 8) | dict[++pos];\n          entries.push([b, operands]);\n          operands = [];\n          ++pos;\n        } else {\n          operands.push(parseOperand());\n        }\n      }\n      return entries;\n    },\n    parseIndex: function CFFParser_parseIndex(pos) {\n      var cffIndex = new CFFIndex();\n      var bytes = this.bytes;\n      var count = (bytes[pos++] << 8) | bytes[pos++];\n      var offsets = [];\n      var start = pos;\n      var end = pos;\n\n      if (count !== 0) {\n        var offsetSize = bytes[pos++];\n        // add 1 for offset to determine size of last object\n        var startPos = pos + ((count + 1) * offsetSize) - 1;\n\n        for (var i = 0, ii = count + 1; i < ii; ++i) {\n          var offset = 0;\n          for (var j = 0; j < offsetSize; ++j) {\n            offset <<= 8;\n            offset += bytes[pos++];\n          }\n          offsets.push(startPos + offset);\n        }\n        end = offsets[count];\n      }\n      for (var i = 0, ii = offsets.length - 1; i < ii; ++i) {\n        var offsetStart = offsets[i];\n        var offsetEnd = offsets[i + 1];\n        cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n      }\n      return {obj: cffIndex, endPos: end};\n    },\n    parseNameIndex: function CFFParser_parseNameIndex(index) {\n      var names = [];\n      for (var i = 0, ii = index.count; i < ii; ++i) {\n        var name = index.get(i);\n        // OTS doesn't allow names to be over 127 characters.\n        var length = Math.min(name.length, 127);\n        var data = [];\n        // OTS also only permits certain characters in the name.\n        for (var j = 0; j < length; ++j) {\n          var c = name[j];\n          if (j === 0 && c === 0) {\n            data[j] = c;\n            continue;\n          }\n          if ((c < 33 || c > 126) || c === 91 /* [ */ || c === 93 /* ] */ ||\n              c === 40 /* ( */ || c === 41 /* ) */ || c === 123 /* { */ ||\n              c === 125 /* } */ || c === 60 /* < */ || c === 62 /* > */ ||\n              c === 47 /* / */ || c === 37 /* % */) {\n            data[j] = 95;\n            continue;\n          }\n          data[j] = c;\n        }\n        names.push(String.fromCharCode.apply(null, data));\n      }\n      return names;\n    },\n    parseStringIndex: function CFFParser_parseStringIndex(index) {\n      var strings = new CFFStrings();\n      for (var i = 0, ii = index.count; i < ii; ++i) {\n        var data = index.get(i);\n        strings.add(String.fromCharCode.apply(null, data));\n      }\n      return strings;\n    },\n    createDict: function CFFParser_createDict(Type, dict, strings) {\n      var cffDict = new Type(strings);\n      var types = cffDict.types;\n\n      for (var i = 0, ii = dict.length; i < ii; ++i) {\n        var pair = dict[i];\n        var key = pair[0];\n        var value = pair[1];\n        cffDict.setByKey(key, value);\n      }\n      return cffDict;\n    },\n    parseCharStrings: function CFFParser_parseCharStrings(charStringOffset) {\n      var charStrings = this.parseIndex(charStringOffset).obj;\n      var seacs = [];\n      var count = charStrings.count;\n      for (var i = 0; i < count; i++) {\n        var charstring = charStrings.get(i);\n\n        var stackSize = 0;\n        var stack = [];\n        var undefStack = true;\n        var hints = 0;\n        var valid = true;\n        var data = charstring;\n        var length = data.length;\n        for (var j = 0; j < length;) {\n          var value = data[j++];\n          var validationCommand = null;\n          if (value == 12) {\n            var q = data[j++];\n            if (q === 0) {\n              // The CFF specification state that the 'dotsection' command\n              // (12, 0) is deprecated and treated as a no-op, but all Type2\n              // charstrings processors should support them. Unfortunately\n              // the font sanitizer don't. As a workaround the sequence (12, 0)\n              // is replaced by a useless (0, hmoveto).\n              data[j - 2] = 139;\n              data[j - 1] = 22;\n              stackSize = 0;\n            } else {\n              validationCommand = CharstringValidationData12[q];\n            }\n          } else if (value === 28) { // number (16 bit)\n            stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;\n            j += 2;\n            stackSize++;\n          } else if (value == 14) {\n            if (stackSize >= 4) {\n              stackSize -= 4;\n              if (SEAC_ANALYSIS_ENABLED) {\n                seacs[i] = stack.slice(stackSize, stackSize + 4);\n                valid = false;\n              }\n            }\n          } else if (value >= 32 && value <= 246) {  // number\n            stack[stackSize] = value - 139;\n            stackSize++;\n          } else if (value >= 247 && value <= 254) {  // number (+1 bytes)\n            stack[stackSize] = value < 251 ?\n              ((value - 247) << 8) + data[j] + 108 :\n              -((value - 251) << 8) - data[j] - 108;\n            j++;\n            stackSize++;\n          } else if (value == 255) {  // number (32 bit)\n            stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16) |\n              (data[j + 2] << 8) | data[j + 3]) / 65536;\n            j += 4;\n            stackSize++;\n          } else if (value == 19 || value == 20) {\n            hints += stackSize >> 1;\n            j += (hints + 7) >> 3; // skipping right amount of hints flag data\n            stackSize = 0;\n          } else {\n            validationCommand = CharstringValidationData[value];\n          }\n          if (validationCommand) {\n            if (validationCommand.stem) {\n              hints += stackSize >> 1;\n            }\n            if ('min' in validationCommand) {\n              if (!undefStack && stackSize < validationCommand.min) {\n                warn('Not enough parameters for ' + validationCommand.id +\n                     '; actual: ' + stackSize +\n                     ', expected: ' + validationCommand.min);\n                valid = false;\n                break;\n              }\n            }\n            if ('stackDelta' in validationCommand) {\n              if ('stackFn' in validationCommand) {\n                validationCommand.stackFn(stack, stackSize);\n              }\n              stackSize += validationCommand.stackDelta;\n            } else if (validationCommand.resetStack) {\n              stackSize = 0;\n              undefStack = false;\n            } else if (validationCommand.undefStack) {\n              stackSize = 0;\n              undefStack = true;\n            }\n          }\n        }\n        if (!valid) {\n          // resetting invalid charstring to single 'endchar'\n          charStrings.set(i, new Uint8Array([14]));\n        }\n      }\n      return { charStrings: charStrings, seacs: seacs };\n    },\n    emptyPrivateDictionary:\n      function CFFParser_emptyPrivateDictionary(parentDict) {\n      var privateDict = this.createDict(CFFPrivateDict, [],\n                                        parentDict.strings);\n      parentDict.setByKey(18, [0, 0]);\n      parentDict.privateDict = privateDict;\n    },\n    parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n      // no private dict, do nothing\n      if (!parentDict.hasName('Private')) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n      var privateOffset = parentDict.getByName('Private');\n      // make sure the params are formatted correctly\n      if (!isArray(privateOffset) || privateOffset.length !== 2) {\n        parentDict.removeByName('Private');\n        return;\n      }\n      var size = privateOffset[0];\n      var offset = privateOffset[1];\n      // remove empty dicts or ones that refer to invalid location\n      if (size === 0 || offset >= this.bytes.length) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n\n      var privateDictEnd = offset + size;\n      var dictData = this.bytes.subarray(offset, privateDictEnd);\n      var dict = this.parseDict(dictData);\n      var privateDict = this.createDict(CFFPrivateDict, dict,\n                                        parentDict.strings);\n      parentDict.privateDict = privateDict;\n\n      // Parse the Subrs index also since it's relative to the private dict.\n      if (!privateDict.getByName('Subrs'))\n        return;\n      var subrsOffset = privateDict.getByName('Subrs');\n      var relativeOffset = offset + subrsOffset;\n      // Validate the offset.\n      if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n      var subrsIndex = this.parseIndex(relativeOffset);\n      privateDict.subrsIndex = subrsIndex.obj;\n    },\n    parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n      if (pos === 0) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE,\n                              ISOAdobeCharset);\n      } else if (pos == 1) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT,\n                              ExpertCharset);\n      } else if (pos == 2) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET,\n                              ExpertSubsetCharset);\n      }\n\n      var bytes = this.bytes;\n      var start = pos;\n      var format = bytes[pos++];\n      var charset = ['.notdef'];\n\n      // subtract 1 for the .notdef glyph\n      length -= 1;\n\n      switch (format) {\n        case 0:\n          for (var i = 0; i < length; i++) {\n            var id = (bytes[pos++] << 8) | bytes[pos++];\n            charset.push(cid ? id : strings.get(id));\n          }\n          break;\n        case 1:\n          while (charset.length <= length) {\n            var id = (bytes[pos++] << 8) | bytes[pos++];\n            var count = bytes[pos++];\n            for (var i = 0; i <= count; i++)\n              charset.push(cid ? id++ : strings.get(id++));\n          }\n          break;\n        case 2:\n          while (charset.length <= length) {\n            var id = (bytes[pos++] << 8) | bytes[pos++];\n            var count = (bytes[pos++] << 8) | bytes[pos++];\n            for (var i = 0; i <= count; i++)\n              charset.push(cid ? id++ : strings.get(id++));\n          }\n          break;\n        default:\n          error('Unknown charset format');\n      }\n      // Raw won't be needed if we actually compile the charset.\n      var end = pos;\n      var raw = bytes.subarray(start, end);\n\n      return new CFFCharset(false, format, charset, raw);\n    },\n    parseEncoding: function CFFParser_parseEncoding(pos,\n                                                    properties,\n                                                    strings,\n                                                    charset) {\n      var encoding = {};\n      var bytes = this.bytes;\n      var predefined = false;\n      var hasSupplement = false;\n      var format;\n      var raw = null;\n\n      function readSupplement() {\n        var supplementsCount = bytes[pos++];\n        for (var i = 0; i < supplementsCount; i++) {\n          var code = bytes[pos++];\n          var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n          encoding[code] = charset.indexOf(strings.get(sid));\n        }\n      }\n\n      if (pos === 0 || pos == 1) {\n        predefined = true;\n        format = pos;\n        var baseEncoding = pos ? Encodings.ExpertEncoding :\n                                 Encodings.StandardEncoding;\n        for (var i = 0, ii = charset.length; i < ii; i++) {\n          var index = baseEncoding.indexOf(charset[i]);\n          if (index != -1) {\n            encoding[index] = i;\n          }\n        }\n      } else {\n        var dataStart = pos;\n        var format = bytes[pos++];\n        switch (format & 0x7f) {\n          case 0:\n            var glyphsCount = bytes[pos++];\n            for (var i = 1; i <= glyphsCount; i++)\n              encoding[bytes[pos++]] = i;\n            break;\n\n          case 1:\n            var rangesCount = bytes[pos++];\n            var gid = 1;\n            for (var i = 0; i < rangesCount; i++) {\n              var start = bytes[pos++];\n              var left = bytes[pos++];\n              for (var j = start; j <= start + left; j++)\n                encoding[j] = gid++;\n            }\n            break;\n\n          default:\n            error('Unknow encoding format: ' + format + ' in CFF');\n            break;\n        }\n        var dataEnd = pos;\n        if (format & 0x80) {\n          // The font sanitizer does not support CFF encoding with a\n          // supplement, since the encoding is not really used to map\n          // between gid to glyph, let's overwrite what is declared in\n          // the top dictionary to let the sanitizer think the font use\n          // StandardEncoding, that's a lie but that's ok.\n          bytes[dataStart] &= 0x7f;\n          readSupplement();\n          hasSupplement = true;\n        }\n        raw = bytes.subarray(dataStart, dataEnd);\n      }\n      format = format & 0x7f;\n      return new CFFEncoding(predefined, format, encoding, raw);\n    },\n    parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n      var start = pos;\n      var bytes = this.bytes;\n      var format = bytes[pos++];\n      var fdSelect = [];\n      switch (format) {\n        case 0:\n          for (var i = 0; i < length; ++i) {\n            var id = bytes[pos++];\n            fdSelect.push(id);\n          }\n          break;\n        case 3:\n          var rangesCount = (bytes[pos++] << 8) | bytes[pos++];\n          for (var i = 0; i < rangesCount; ++i) {\n            var first = (bytes[pos++] << 8) | bytes[pos++];\n            var fdIndex = bytes[pos++];\n            var next = (bytes[pos] << 8) | bytes[pos + 1];\n            for (var j = first; j < next; ++j)\n              fdSelect.push(fdIndex);\n          }\n          // Advance past the sentinel(next).\n          pos += 2;\n          break;\n        default:\n          error('Unknown fdselect format ' + format);\n          break;\n      }\n      var end = pos;\n      return new CFFFDSelect(fdSelect, bytes.subarray(start, end));\n    }\n  };\n  return CFFParser;\n})();\n\n// Compact Font Format\nvar CFF = (function CFFClosure() {\n  function CFF() {\n    this.header = null;\n    this.names = [];\n    this.topDict = null;\n    this.strings = new CFFStrings();\n    this.globalSubrIndex = null;\n\n    // The following could really be per font, but since we only have one font\n    // store them here.\n    this.encoding = null;\n    this.charset = null;\n    this.charStrings = null;\n    this.fdArray = [];\n    this.fdSelect = null;\n\n    this.isCIDFont = false;\n  }\n  return CFF;\n})();\n\nvar CFFHeader = (function CFFHeaderClosure() {\n  function CFFHeader(major, minor, hdrSize, offSize) {\n    this.major = major;\n    this.minor = minor;\n    this.hdrSize = hdrSize;\n    this.offSize = offSize;\n  }\n  return CFFHeader;\n})();\n\nvar CFFStrings = (function CFFStringsClosure() {\n  function CFFStrings() {\n    this.strings = [];\n  }\n  CFFStrings.prototype = {\n    get: function CFFStrings_get(index) {\n      if (index >= 0 && index <= 390)\n        return CFFStandardStrings[index];\n      if (index - 391 <= this.strings.length)\n        return this.strings[index - 391];\n      return CFFStandardStrings[0];\n    },\n    add: function CFFStrings_add(value) {\n      this.strings.push(value);\n    },\n    get count() {\n      return this.strings.length;\n    }\n  };\n  return CFFStrings;\n})();\n\nvar CFFIndex = (function CFFIndexClosure() {\n  function CFFIndex() {\n    this.objects = [];\n    this.length = 0;\n  }\n  CFFIndex.prototype = {\n    add: function CFFIndex_add(data) {\n      this.length += data.length;\n      this.objects.push(data);\n    },\n    set: function CFFIndex_set(index, data) {\n      this.length += data.length - this.objects[index].length;\n      this.objects[index] = data;\n    },\n    get: function CFFIndex_get(index) {\n      return this.objects[index];\n    },\n    get count() {\n      return this.objects.length;\n    }\n  };\n  return CFFIndex;\n})();\n\nvar CFFDict = (function CFFDictClosure() {\n  function CFFDict(tables, strings) {\n    this.keyToNameMap = tables.keyToNameMap;\n    this.nameToKeyMap = tables.nameToKeyMap;\n    this.defaults = tables.defaults;\n    this.types = tables.types;\n    this.opcodes = tables.opcodes;\n    this.order = tables.order;\n    this.strings = strings;\n    this.values = {};\n  }\n  CFFDict.prototype = {\n    // value should always be an array\n    setByKey: function CFFDict_setByKey(key, value) {\n      if (!(key in this.keyToNameMap))\n        return false;\n      // ignore empty values\n      if (value.length === 0)\n        return true;\n      var type = this.types[key];\n      // remove the array wrapping these types of values\n      if (type === 'num' || type === 'sid' || type === 'offset')\n        value = value[0];\n      this.values[key] = value;\n      return true;\n    },\n    setByName: function CFFDict_setByName(name, value) {\n      if (!(name in this.nameToKeyMap)) {\n        error('Invalid dictionary name \"' + name + '\"');\n      }\n      this.values[this.nameToKeyMap[name]] = value;\n    },\n    hasName: function CFFDict_hasName(name) {\n      return this.nameToKeyMap[name] in this.values;\n    },\n    getByName: function CFFDict_getByName(name) {\n      if (!(name in this.nameToKeyMap))\n        error('Invalid dictionary name \"' + name + '\"');\n      var key = this.nameToKeyMap[name];\n      if (!(key in this.values))\n        return this.defaults[key];\n      return this.values[key];\n    },\n    removeByName: function CFFDict_removeByName(name) {\n      delete this.values[this.nameToKeyMap[name]];\n    }\n  };\n  CFFDict.createTables = function CFFDict_createTables(layout) {\n    var tables = {\n      keyToNameMap: {},\n      nameToKeyMap: {},\n      defaults: {},\n      types: {},\n      opcodes: {},\n      order: []\n    };\n    for (var i = 0, ii = layout.length; i < ii; ++i) {\n      var entry = layout[i];\n      var key = isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n      tables.keyToNameMap[key] = entry[1];\n      tables.nameToKeyMap[entry[1]] = key;\n      tables.types[key] = entry[2];\n      tables.defaults[key] = entry[3];\n      tables.opcodes[key] = isArray(entry[0]) ? entry[0] : [entry[0]];\n      tables.order.push(key);\n    }\n    return tables;\n  };\n  return CFFDict;\n})();\n\nvar CFFTopDict = (function CFFTopDictClosure() {\n  var layout = [\n    [[12, 30], 'ROS', ['sid', 'sid', 'num'], null],\n    [[12, 20], 'SyntheticBase', 'num', null],\n    [0, 'version', 'sid', null],\n    [1, 'Notice', 'sid', null],\n    [[12, 0], 'Copyright', 'sid', null],\n    [2, 'FullName', 'sid', null],\n    [3, 'FamilyName', 'sid', null],\n    [4, 'Weight', 'sid', null],\n    [[12, 1], 'isFixedPitch', 'num', 0],\n    [[12, 2], 'ItalicAngle', 'num', 0],\n    [[12, 3], 'UnderlinePosition', 'num', -100],\n    [[12, 4], 'UnderlineThickness', 'num', 50],\n    [[12, 5], 'PaintType', 'num', 0],\n    [[12, 6], 'CharstringType', 'num', 2],\n    [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'],\n                            [0.001, 0, 0, 0.001, 0, 0]],\n    [13, 'UniqueID', 'num', null],\n    [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]],\n    [[12, 8], 'StrokeWidth', 'num', 0],\n    [14, 'XUID', 'array', null],\n    [15, 'charset', 'offset', 0],\n    [16, 'Encoding', 'offset', 0],\n    [17, 'CharStrings', 'offset', 0],\n    [18, 'Private', ['offset', 'offset'], null],\n    [[12, 21], 'PostScript', 'sid', null],\n    [[12, 22], 'BaseFontName', 'sid', null],\n    [[12, 23], 'BaseFontBlend', 'delta', null],\n    [[12, 31], 'CIDFontVersion', 'num', 0],\n    [[12, 32], 'CIDFontRevision', 'num', 0],\n    [[12, 33], 'CIDFontType', 'num', 0],\n    [[12, 34], 'CIDCount', 'num', 8720],\n    [[12, 35], 'UIDBase', 'num', null],\n    // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes\n    // before FDArray.\n    [[12, 37], 'FDSelect', 'offset', null],\n    [[12, 36], 'FDArray', 'offset', null],\n    [[12, 38], 'FontName', 'sid', null]\n  ];\n  var tables = null;\n  function CFFTopDict(strings) {\n    if (tables === null)\n      tables = CFFDict.createTables(layout);\n    CFFDict.call(this, tables, strings);\n    this.privateDict = null;\n  }\n  CFFTopDict.prototype = Object.create(CFFDict.prototype);\n  return CFFTopDict;\n})();\n\nvar CFFPrivateDict = (function CFFPrivateDictClosure() {\n  var layout = [\n    [6, 'BlueValues', 'delta', null],\n    [7, 'OtherBlues', 'delta', null],\n    [8, 'FamilyBlues', 'delta', null],\n    [9, 'FamilyOtherBlues', 'delta', null],\n    [[12, 9], 'BlueScale', 'num', 0.039625],\n    [[12, 10], 'BlueShift', 'num', 7],\n    [[12, 11], 'BlueFuzz', 'num', 1],\n    [10, 'StdHW', 'num', null],\n    [11, 'StdVW', 'num', null],\n    [[12, 12], 'StemSnapH', 'delta', null],\n    [[12, 13], 'StemSnapV', 'delta', null],\n    [[12, 14], 'ForceBold', 'num', 0],\n    [[12, 17], 'LanguageGroup', 'num', 0],\n    [[12, 18], 'ExpansionFactor', 'num', 0.06],\n    [[12, 19], 'initialRandomSeed', 'num', 0],\n    [20, 'defaultWidthX', 'num', 0],\n    [21, 'nominalWidthX', 'num', 0],\n    [19, 'Subrs', 'offset', null]\n  ];\n  var tables = null;\n  function CFFPrivateDict(strings) {\n    if (tables === null)\n      tables = CFFDict.createTables(layout);\n    CFFDict.call(this, tables, strings);\n    this.subrsIndex = null;\n  }\n  CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n  return CFFPrivateDict;\n})();\n\nvar CFFCharsetPredefinedTypes = {\n  ISO_ADOBE: 0,\n  EXPERT: 1,\n  EXPERT_SUBSET: 2\n};\nvar CFFCharsetEmbeddedTypes = {\n  FORMAT0: 0,\n  FORMAT1: 1,\n  FORMAT2: 2\n};\nvar CFFCharset = (function CFFCharsetClosure() {\n  function CFFCharset(predefined, format, charset, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.charset = charset;\n    this.raw = raw;\n  }\n  return CFFCharset;\n})();\n\nvar CFFEncodingPredefinedTypes = {\n  STANDARD: 0,\n  EXPERT: 1\n};\nvar CFFCharsetEmbeddedTypes = {\n  FORMAT0: 0,\n  FORMAT1: 1\n};\nvar CFFEncoding = (function CFFEncodingClosure() {\n  function CFFEncoding(predefined, format, encoding, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.encoding = encoding;\n    this.raw = raw;\n  }\n  return CFFEncoding;\n})();\n\nvar CFFFDSelect = (function CFFFDSelectClosure() {\n  function CFFFDSelect(fdSelect, raw) {\n    this.fdSelect = fdSelect;\n    this.raw = raw;\n  }\n  return CFFFDSelect;\n})();\n\n// Helper class to keep track of where an offset is within the data and helps\n// filling in that offset once it's known.\nvar CFFOffsetTracker = (function CFFOffsetTrackerClosure() {\n  function CFFOffsetTracker() {\n    this.offsets = {};\n  }\n  CFFOffsetTracker.prototype = {\n    isTracking: function CFFOffsetTracker_isTracking(key) {\n      return key in this.offsets;\n    },\n    track: function CFFOffsetTracker_track(key, location) {\n      if (key in this.offsets)\n        error('Already tracking location of ' + key);\n      this.offsets[key] = location;\n    },\n    offset: function CFFOffsetTracker_offset(value) {\n      for (var key in this.offsets) {\n        this.offsets[key] += value;\n      }\n    },\n    setEntryLocation: function CFFOffsetTracker_setEntryLocation(key,\n                                                                 values,\n                                                                 output) {\n      if (!(key in this.offsets))\n        error('Not tracking location of ' + key);\n      var data = output.data;\n      var dataOffset = this.offsets[key];\n      var size = 5;\n      for (var i = 0, ii = values.length; i < ii; ++i) {\n        var offset0 = i * size + dataOffset;\n        var offset1 = offset0 + 1;\n        var offset2 = offset0 + 2;\n        var offset3 = offset0 + 3;\n        var offset4 = offset0 + 4;\n        // It's easy to screw up offsets so perform this sanity check.\n        if (data[offset0] !== 0x1d || data[offset1] !== 0 ||\n            data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0)\n          error('writing to an offset that is not empty');\n        var value = values[i];\n        data[offset0] = 0x1d;\n        data[offset1] = (value >> 24) & 0xFF;\n        data[offset2] = (value >> 16) & 0xFF;\n        data[offset3] = (value >> 8) & 0xFF;\n        data[offset4] = value & 0xFF;\n      }\n    }\n  };\n  return CFFOffsetTracker;\n})();\n\n// Takes a CFF and converts it to the binary representation.\nvar CFFCompiler = (function CFFCompilerClosure() {\n  function stringToArray(str) {\n    var array = [];\n    for (var i = 0, ii = str.length; i < ii; ++i)\n      array[i] = str.charCodeAt(i);\n\n    return array;\n  }\n  function CFFCompiler(cff) {\n    this.cff = cff;\n  }\n  CFFCompiler.prototype = {\n    compile: function CFFCompiler_compile() {\n      var cff = this.cff;\n      var output = {\n        data: [],\n        length: 0,\n        add: function CFFCompiler_add(data) {\n          this.data = this.data.concat(data);\n          this.length = this.data.length;\n        }\n      };\n\n      // Compile the five entries that must be in order.\n      var header = this.compileHeader(cff.header);\n      output.add(header);\n\n      var nameIndex = this.compileNameIndex(cff.names);\n      output.add(nameIndex);\n\n      if (cff.isCIDFont) {\n        // The spec is unclear on how font matrices should relate to each other\n        // when there is one in the main top dict and the sub top dicts.\n        // Windows handles this differently than linux and osx so we have to\n        // normalize to work on all.\n        // Rules based off of some mailing list discussions:\n        // - If main font has a matrix and subfont doesn't, use the main matrix.\n        // - If no main font matrix and there is a subfont matrix, use the\n        //   subfont matrix.\n        // - If both have matrices, concat together.\n        // - If neither have matrices, use default.\n        // To make this work on all platforms we move the top matrix into each\n        // sub top dict and concat if necessary.\n        if (cff.topDict.hasName('FontMatrix')) {\n          var base = cff.topDict.getByName('FontMatrix');\n          cff.topDict.removeByName('FontMatrix');\n          for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n            var subDict = cff.fdArray[i];\n            var matrix = base.slice(0);\n            if (subDict.hasName('FontMatrix')) {\n              matrix = Util.transform(matrix, subDict.getByName('FontMatrix'));\n            }\n            subDict.setByName('FontMatrix', matrix);\n          }\n        }\n      }\n\n      var compiled = this.compileTopDicts([cff.topDict],\n                                          output.length,\n                                          cff.isCIDFont);\n      output.add(compiled.output);\n      var topDictTracker = compiled.trackers[0];\n\n      var stringIndex = this.compileStringIndex(cff.strings.strings);\n      output.add(stringIndex);\n\n      var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n      output.add(globalSubrIndex);\n\n      // Now start on the other entries that have no specfic order.\n      if (cff.encoding && cff.topDict.hasName('Encoding')) {\n        if (cff.encoding.predefined) {\n          topDictTracker.setEntryLocation('Encoding', [cff.encoding.format],\n                                          output);\n        } else {\n          var encoding = this.compileEncoding(cff.encoding);\n          topDictTracker.setEntryLocation('Encoding', [output.length], output);\n          output.add(encoding);\n        }\n      }\n\n      if (cff.charset && cff.topDict.hasName('charset')) {\n        if (cff.charset.predefined) {\n          topDictTracker.setEntryLocation('charset', [cff.charset.format],\n                                          output);\n        } else {\n          var charset = this.compileCharset(cff.charset);\n          topDictTracker.setEntryLocation('charset', [output.length], output);\n          output.add(charset);\n        }\n      }\n\n      var charStrings = this.compileCharStrings(cff.charStrings);\n      topDictTracker.setEntryLocation('CharStrings', [output.length], output);\n      output.add(charStrings);\n\n      if (cff.isCIDFont) {\n        // For some reason FDSelect must be in front of FDArray on windows. OSX\n        // and linux don't seem to care.\n        topDictTracker.setEntryLocation('FDSelect', [output.length], output);\n        var fdSelect = this.compileFDSelect(cff.fdSelect.raw);\n        output.add(fdSelect);\n        // It is unclear if the sub font dictionary can have CID related\n        // dictionary keys, but the sanitizer doesn't like them so remove them.\n        var compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n        topDictTracker.setEntryLocation('FDArray', [output.length], output);\n        output.add(compiled.output);\n        var fontDictTrackers = compiled.trackers;\n\n        this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n      }\n\n      this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n\n      // If the font data ends with INDEX whose object data is zero-length,\n      // the sanitizer will bail out. Add a dummy byte to avoid that.\n      output.add([0]);\n\n      return output.data;\n    },\n    encodeNumber: function CFFCompiler_encodeNumber(value) {\n      if (parseFloat(value) == parseInt(value, 10) && !isNaN(value)) // isInt\n        return this.encodeInteger(value);\n      else\n        return this.encodeFloat(value);\n    },\n    encodeFloat: function CFFCompiler_encodeFloat(num) {\n      var value = num.toString();\n\n      // rounding inaccurate doubles\n      var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n      if (m) {\n        var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n        value = (Math.round(num * epsilon) / epsilon).toString();\n      }\n\n      var nibbles = '';\n      for (var i = 0, ii = value.length; i < ii; ++i) {\n        var a = value[i];\n        if (a === 'e') {\n          nibbles += value[++i] === '-' ? 'c' : 'b';\n        } else if (a === '.') {\n          nibbles += 'a';\n        } else if (a === '-') {\n          nibbles += 'e';\n        } else {\n          nibbles += a;\n        }\n      }\n      nibbles += (nibbles.length & 1) ? 'f' : 'ff';\n      var out = [30];\n      for (var i = 0, ii = nibbles.length; i < ii; i += 2) {\n        out.push(parseInt(nibbles.substring(i, i+2), 16));\n      }\n      return out;\n    },\n    encodeInteger: function CFFCompiler_encodeInteger(value) {\n      var code;\n      if (value >= -107 && value <= 107) {\n        code = [value + 139];\n      } else if (value >= 108 && value <= 1131) {\n        value = [value - 108];\n        code = [(value >> 8) + 247, value & 0xFF];\n      } else if (value >= -1131 && value <= -108) {\n        value = -value - 108;\n        code = [(value >> 8) + 251, value & 0xFF];\n      } else if (value >= -32768 && value <= 32767) {\n        code = [0x1c, (value >> 8) & 0xFF, value & 0xFF];\n      } else {\n        code = [0x1d,\n                (value >> 24) & 0xFF,\n                (value >> 16) & 0xFF,\n                (value >> 8) & 0xFF,\n                 value & 0xFF];\n      }\n      return code;\n    },\n    compileHeader: function CFFCompiler_compileHeader(header) {\n      return [\n        header.major,\n        header.minor,\n        header.hdrSize,\n        header.offSize\n      ];\n    },\n    compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n      var nameIndex = new CFFIndex();\n      for (var i = 0, ii = names.length; i < ii; ++i)\n        nameIndex.add(stringToArray(names[i]));\n      return this.compileIndex(nameIndex);\n    },\n    compileTopDicts: function CFFCompiler_compileTopDicts(dicts,\n                                                          length,\n                                                          removeCidKeys) {\n      var fontDictTrackers = [];\n      var fdArrayIndex = new CFFIndex();\n      for (var i = 0, ii = dicts.length; i < ii; ++i) {\n        var fontDict = dicts[i];\n        if (removeCidKeys) {\n          fontDict.removeByName('CIDFontVersion');\n          fontDict.removeByName('CIDFontRevision');\n          fontDict.removeByName('CIDFontType');\n          fontDict.removeByName('CIDCount');\n          fontDict.removeByName('UIDBase');\n        }\n        var fontDictTracker = new CFFOffsetTracker();\n        var fontDictData = this.compileDict(fontDict, fontDictTracker);\n        fontDictTrackers.push(fontDictTracker);\n        fdArrayIndex.add(fontDictData);\n        fontDictTracker.offset(length);\n      }\n      fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n      return {\n        trackers: fontDictTrackers,\n        output: fdArrayIndex\n      };\n    },\n    compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts,\n                                                                  trackers,\n                                                                  output) {\n      for (var i = 0, ii = dicts.length; i < ii; ++i) {\n        var fontDict = dicts[i];\n        assert(fontDict.privateDict && fontDict.hasName('Private'),\n               'There must be an private dictionary.');\n        var privateDict = fontDict.privateDict;\n        var privateDictTracker = new CFFOffsetTracker();\n        var privateDictData = this.compileDict(privateDict, privateDictTracker);\n\n        var outputLength = output.length;\n        privateDictTracker.offset(outputLength);\n        if (!privateDictData.length) {\n          // The private dictionary was empty, set the output length to zero to\n          // ensure the offset length isn't out of bounds in the eyes of the\n          // sanitizer.\n          outputLength = 0;\n        }\n\n        trackers[i].setEntryLocation('Private',\n                                     [privateDictData.length, outputLength],\n                                     output);\n        output.add(privateDictData);\n\n        if (privateDict.subrsIndex && privateDict.hasName('Subrs')) {\n          var subrs = this.compileIndex(privateDict.subrsIndex);\n          privateDictTracker.setEntryLocation('Subrs', [privateDictData.length],\n                                              output);\n          output.add(subrs);\n        }\n      }\n    },\n    compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n      var out = [];\n      // The dictionary keys must be in a certain order.\n      var order = dict.order;\n      for (var i = 0; i < order.length; ++i) {\n        var key = order[i];\n        if (!(key in dict.values))\n          continue;\n        var values = dict.values[key];\n        var types = dict.types[key];\n        if (!isArray(types)) types = [types];\n        if (!isArray(values)) values = [values];\n\n        // Remove any empty dict values.\n        if (values.length === 0)\n          continue;\n\n        for (var j = 0, jj = types.length; j < jj; ++j) {\n          var type = types[j];\n          var value = values[j];\n          switch (type) {\n            case 'num':\n            case 'sid':\n              out = out.concat(this.encodeNumber(value));\n              break;\n            case 'offset':\n              // For offsets we just insert a 32bit integer so we don't have to\n              // deal with figuring out the length of the offset when it gets\n              // replaced later on by the compiler.\n              var name = dict.keyToNameMap[key];\n              // Some offsets have the offset and the length, so just record the\n              // position of the first one.\n              if (!offsetTracker.isTracking(name))\n                offsetTracker.track(name, out.length);\n              out = out.concat([0x1d, 0, 0, 0, 0]);\n              break;\n            case 'array':\n            case 'delta':\n              out = out.concat(this.encodeNumber(value));\n              for (var k = 1, kk = values.length; k < kk; ++k)\n                out = out.concat(this.encodeNumber(values[k]));\n              break;\n            default:\n              error('Unknown data type of ' + type);\n              break;\n          }\n        }\n        out = out.concat(dict.opcodes[key]);\n      }\n      return out;\n    },\n    compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n      var stringIndex = new CFFIndex();\n      for (var i = 0, ii = strings.length; i < ii; ++i)\n        stringIndex.add(stringToArray(strings[i]));\n      return this.compileIndex(stringIndex);\n    },\n    compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n      var globalSubrIndex = this.cff.globalSubrIndex;\n      this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n    },\n    compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n      return this.compileIndex(charStrings);\n    },\n    compileCharset: function CFFCompiler_compileCharset(charset) {\n      return this.compileTypedArray(charset.raw);\n    },\n    compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n      return this.compileTypedArray(encoding.raw);\n    },\n    compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n      return this.compileTypedArray(fdSelect);\n    },\n    compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n      var out = [];\n      for (var i = 0, ii = data.length; i < ii; ++i)\n        out[i] = data[i];\n      return out;\n    },\n    compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n      trackers = trackers || [];\n      var objects = index.objects;\n      // First 2 bytes contains the number of objects contained into this index\n      var count = objects.length;\n\n      // If there is no object, just create an index. This technically\n      // should just be [0, 0] but OTS has an issue with that.\n      if (count === 0)\n        return [0, 0, 0];\n\n      var data = [(count >> 8) & 0xFF, count & 0xff];\n\n      var lastOffset = 1;\n      for (var i = 0; i < count; ++i)\n        lastOffset += objects[i].length;\n\n      var offsetSize;\n      if (lastOffset < 0x100)\n        offsetSize = 1;\n      else if (lastOffset < 0x10000)\n        offsetSize = 2;\n      else if (lastOffset < 0x1000000)\n        offsetSize = 3;\n      else\n        offsetSize = 4;\n\n      // Next byte contains the offset size use to reference object in the file\n      data.push(offsetSize);\n\n      // Add another offset after this one because we need a new offset\n      var relativeOffset = 1;\n      for (var i = 0; i < count + 1; i++) {\n        if (offsetSize === 1) {\n          data.push(relativeOffset & 0xFF);\n        } else if (offsetSize === 2) {\n          data.push((relativeOffset >> 8) & 0xFF,\n                     relativeOffset & 0xFF);\n        } else if (offsetSize === 3) {\n          data.push((relativeOffset >> 16) & 0xFF,\n                    (relativeOffset >> 8) & 0xFF,\n                     relativeOffset & 0xFF);\n        } else {\n          data.push((relativeOffset >>> 24) & 0xFF,\n                    (relativeOffset >> 16) & 0xFF,\n                    (relativeOffset >> 8) & 0xFF,\n                     relativeOffset & 0xFF);\n        }\n\n        if (objects[i])\n          relativeOffset += objects[i].length;\n      }\n      var offset = data.length;\n\n      for (var i = 0; i < count; i++) {\n        // Notify the tracker where the object will be offset in the data.\n        if (trackers[i])\n          trackers[i].offset(data.length);\n        for (var j = 0, jj = objects[i].length; j < jj; j++)\n          data.push(objects[i][j]);\n      }\n      return data;\n    }\n  };\n  return CFFCompiler;\n})();\n\n//MQZ. Mar.21.2013. Disable userAgent based test\n// Workaround for seac on Windows.\n//(function checkSeacSupport() {\n//  if (/Windows/.test(navigator.userAgent)) {\n//    SEAC_ANALYSIS_ENABLED = true;\n//  }\n//})();\n\n// Workaround for Private Use Area characters in Chrome on Windows\n// http://code.google.com/p/chromium/issues/detail?id=122465\n// https://github.com/mozilla/pdf.js/issues/1689\n//(function checkChromeWindows() {\n//  if (/Windows.*Chrome/.test(navigator.userAgent)) {\n//    SYMBOLIC_FONT_GLYPH_OFFSET = 0xF100;\n//  }\n//})();\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals error, Stream, GlyphsUnicode, CFFParser, Encodings, Util */\n\n'use strict';\n\nvar FontRendererFactory = (function FontRendererFactoryClosure() {\n  function getLong(data, offset) {\n    return (data[offset] << 24) | (data[offset + 1] << 16) |\n           (data[offset + 2] << 8) | data[offset + 3];\n  }\n\n  function getUshort(data, offset) {\n    return (data[offset] << 8) | data[offset + 1];\n  }\n\n  function parseCmap(data, start, end) {\n    var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) :\n                                                    getLong(data, start + 16);\n    var format = getUshort(data, start + offset);\n    if (format === 4) {\n      var length = getUshort(data, start + offset + 2);\n      var segCount = getUshort(data, start + offset + 6) >> 1;\n      var p = start + offset + 14;\n      var ranges = [];\n      for (var i = 0; i < segCount; i++, p += 2) {\n        ranges[i] = {end: getUshort(data, p)};\n      }\n      p += 2;\n      for (var i = 0; i < segCount; i++, p += 2) {\n        ranges[i].start = getUshort(data, p);\n      }\n      for (var i = 0; i < segCount; i++, p += 2) {\n        ranges[i].idDelta = getUshort(data, p);\n      }\n      for (var i = 0; i < segCount; i++, p += 2) {\n        var idOffset = getUshort(data, p);\n        if (idOffset === 0) {\n          continue;\n        }\n        ranges[i].ids = [];\n        for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n          ranges[i].ids[j] = getUshort(data, p + idOffset);\n          idOffset += 2;\n        }\n      }\n      return ranges;\n    } else if (format === 12) {\n      var length = getLong(data, start + offset + 4);\n      var groups = getLong(data, start + offset + 12);\n      var p = start + offset + 16;\n      var ranges = [];\n      for (var i = 0; i < groups; i++) {\n        ranges.push({\n          start: getLong(data, p),\n          end: getLong(data, p + 4),\n          idDelta: getLong(data, p + 8) - getLong(data, p)\n        });\n        p += 12;\n      }\n      return ranges;\n    }\n    error('not supported cmap: ' + format);\n  }\n\n  function parseCff(data, start, end) {\n    var properties = {};\n    var parser = new CFFParser(\n      new Stream(data, start, end - start), properties);\n    var cff = parser.parse();\n    return {\n      glyphs: cff.charStrings.objects,\n      subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex &&\n             cff.topDict.privateDict.subrsIndex.objects,\n      gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects\n    };\n  }\n\n  function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n    var itemSize, itemDecode;\n    if (isGlyphLocationsLong) {\n      itemSize = 4;\n      itemDecode = function fontItemDecodeLong(data, offset) {\n        return (data[offset] << 24) | (data[offset + 1] << 16) |\n               (data[offset + 2] << 8) | data[offset + 3];\n      };\n    } else {\n      itemSize = 2;\n      itemDecode = function fontItemDecode(data, offset) {\n        return (data[offset] << 9) | (data[offset + 1] << 1);\n      };\n    }\n    var glyphs = [];\n    var startOffset = itemDecode(loca, 0);\n    for (var j = itemSize; j < loca.length; j += itemSize) {\n      var endOffset = itemDecode(loca, j);\n      glyphs.push(glyf.subarray(startOffset, endOffset));\n      startOffset = endOffset;\n    }\n    return glyphs;\n  }\n\n  function lookupCmap(ranges, unicode) {\n    var code = unicode.charCodeAt(0);\n    var l = 0, r = ranges.length - 1;\n    while (l < r) {\n      var c = (l + r + 1) >> 1;\n      if (code < ranges[c].start) {\n        r = c - 1;\n      } else {\n        l = c;\n      }\n    }\n    if (ranges[l].start <= code && code <= ranges[l].end) {\n      return (ranges[l].idDelta + (ranges[l].ids ?\n        ranges[l].ids[code - ranges[l].start] : code)) & 0xFFFF;\n    }\n    return 0;\n  }\n\n  function compileGlyf(code, js, font) {\n    function moveTo(x, y) {\n      js.push('c.moveTo(' + x + ',' + y + ');');\n    }\n    function lineTo(x, y) {\n      js.push('c.lineTo(' + x + ',' + y + ');');\n    }\n    function quadraticCurveTo(xa, ya, x, y) {\n      js.push('c.quadraticCurveTo(' + xa + ',' + ya + ',' +\n                                   x + ',' + y + ');');\n    }\n\n    var i = 0;\n    var numberOfContours = ((code[i] << 24) | (code[i + 1] << 16)) >> 16;\n    var xMin = ((code[i + 2] << 24) | (code[i + 3] << 16)) >> 16;\n    var yMin = ((code[i + 4] << 24) | (code[i + 5] << 16)) >> 16;\n    var xMax = ((code[i + 6] << 24) | (code[i + 7] << 16)) >> 16;\n    var yMax = ((code[i + 8] << 24) | (code[i + 9] << 16)) >> 16;\n    i += 10;\n    if (numberOfContours < 0) {\n      // composite glyph\n      var x = 0, y = 0;\n      do {\n        var flags = (code[i] << 8) | code[i + 1];\n        var glyphIndex = (code[i + 2] << 8) | code[i + 3];\n        i += 4;\n        var arg1, arg2;\n        if ((flags & 0x01)) {\n          arg1 = ((code[i] << 24) | (code[i + 1] << 16)) >> 16;\n          arg2 = ((code[i + 2] << 24) | (code[i + 3] << 16)) >> 16;\n          i += 4;\n        } else {\n          arg1 = code[i++]; arg2 = code[i++];\n        }\n        if ((flags & 0x02)) {\n           x = arg1;\n           y = arg2;\n        } else {\n           x = 0; y = 0; // TODO \"they are points\" ?\n        }\n        var scaleX = 1, scaleY = 1, scale01 = 0, scale10 = 0;\n        if ((flags & 0x08)) {\n          scaleX =\n          scaleY = ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824;\n          i += 2;\n        } else if ((flags & 0x40)) {\n          scaleX = ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824;\n          scaleY = ((code[i + 2] << 24) | (code[i + 3] << 16)) / 1073741824;\n          i += 4;\n        } else if ((flags & 0x80)) {\n          scaleX = ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824;\n          scale01 = ((code[i + 2] << 24) | (code[i + 3] << 16)) / 1073741824;\n          scale10 = ((code[i + 4] << 24) | (code[i + 5] << 16)) / 1073741824;\n          scaleY = ((code[i + 6] << 24) | (code[i + 7] << 16)) / 1073741824;\n          i += 8;\n        }\n        var subglyph = font.glyphs[glyphIndex];\n        if (subglyph) {\n          js.push('c.save();');\n          js.push('c.transform(' + scaleX + ',' + scale01 + ',' +\n                  scale10 + ',' + scaleY + ',' + x + ',' + y + ');');\n          compileGlyf(subglyph, js, font);\n          js.push('c.restore();');\n        }\n      } while ((flags & 0x20));\n    } else {\n      // simple glyph\n      var endPtsOfContours = [];\n      for (var j = 0; j < numberOfContours; j++) {\n        endPtsOfContours.push((code[i] << 8) | code[i + 1]);\n        i += 2;\n      }\n      var instructionLength = (code[i] << 8) | code[i + 1];\n      i += 2 + instructionLength; // skipping the instructions\n      var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n      var points = [];\n      while (points.length < numberOfPoints) {\n        var flags = code[i++], repeat = 1;\n        if ((flags & 0x08)) {\n          repeat += code[i++];\n        }\n        while (repeat-- > 0) {\n          points.push({flags: flags});\n        }\n      }\n      var x = 0, y = 0;\n      for (var j = 0; j < numberOfPoints; j++) {\n        switch (points[j].flags & 0x12) {\n          case 0x00:\n            x += ((code[i] << 24) | (code[i + 1] << 16)) >> 16;\n            i += 2;\n            break;\n          case 0x02:\n            x -= code[i++];\n            break;\n          case 0x12:\n            x += code[i++];\n            break;\n        }\n        points[j].x = x;\n      }\n      for (var j = 0; j < numberOfPoints; j++) {\n        switch (points[j].flags & 0x24) {\n          case 0x00:\n            y += ((code[i] << 24) | (code[i + 1] << 16)) >> 16;\n            i += 2;\n            break;\n          case 0x04:\n            y -= code[i++];\n            break;\n          case 0x24:\n            y += code[i++];\n            break;\n        }\n        points[j].y = y;\n      }\n\n      var startPoint = 0;\n      for (var i = 0; i < numberOfContours; i++) {\n        var endPoint = endPtsOfContours[i];\n        // contours might have implicit points, which is located in the middle\n        // between two neighboring off-curve points\n        var contour = points.slice(startPoint, endPoint + 1);\n        if ((contour[0].flags & 1)) {\n          contour.push(contour[0]); // using start point at the contour end\n        } else if ((contour[contour.length - 1].flags & 1)) {\n          // first is off-curve point, trying to use one from the end\n          contour.unshift(contour[contour.length - 1]);\n        } else {\n          // start and end are off-curve points, creating implicit one\n          var p = {\n            flags: 1,\n            x: (contour[0].x + contour[contour.length - 1].x) / 2,\n            y: (contour[0].y + contour[contour.length - 1].y) / 2\n          };\n          contour.unshift(p);\n          contour.push(p);\n        }\n        moveTo(contour[0].x, contour[0].y);\n        for (var j = 1, jj = contour.length; j < jj; j++) {\n          if ((contour[j].flags & 1)) {\n            lineTo(contour[j].x, contour[j].y);\n          } else if ((contour[j + 1].flags & 1)){\n            quadraticCurveTo(contour[j].x, contour[j].y,\n                             contour[j + 1].x, contour[j + 1].y);\n            j++;\n          } else {\n            quadraticCurveTo(contour[j].x, contour[j].y,\n              (contour[j].x + contour[j + 1].x) / 2,\n              (contour[j].y + contour[j + 1].y) / 2);\n          }\n        }\n        startPoint = endPoint + 1;\n      }\n    }\n  }\n\n  function compileCharString(code, js, font) {\n    var stack = [];\n    var x = 0, y = 0;\n    var stems = 0;\n\n    function moveTo(x, y) {\n      js.push('c.moveTo(' + x + ',' + y + ');');\n    }\n    function lineTo(x, y) {\n      js.push('c.lineTo(' + x + ',' + y + ');');\n    }\n    function bezierCurveTo(x1, y1, x2, y2, x, y) {\n      js.push('c.bezierCurveTo(' + x1 + ',' + y1 + ',' + x2 + ',' + y2 + ',' +\n                                   x + ',' + y + ');');\n    }\n\n    function parse(code) {\n      var i = 0;\n      while (i < code.length) {\n        var stackClean = false;\n        var v = code[i++];\n        switch (v) {\n          case 1: // hstem\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n          case 3: // vstem\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n          case 4: // vmoveto\n            y += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n          case 5: // rlineto\n            while (stack.length > 0) {\n              x += stack.shift();\n              y += stack.shift();\n              lineTo(x, y);\n            }\n            break;\n          case 6: // hlineto\n            while (stack.length > 0) {\n              x += stack.shift();\n              lineTo(x, y);\n              if (stack.length === 0) {\n                break;\n              }\n              y += stack.shift();\n              lineTo(x, y);\n            }\n            break;\n          case 7: // vlineto\n            while (stack.length > 0) {\n              y += stack.shift();\n              lineTo(x, y);\n              if (stack.length === 0) {\n                break;\n              }\n              x += stack.shift();\n              lineTo(x, y);\n            }\n            break;\n          case 8: // rrcurveto\n            while (stack.length > 0) {\n              var xa = x + stack.shift(), ya = y + stack.shift();\n              var xb = xa + stack.shift(), yb = ya + stack.shift();\n              x = xb + stack.shift(); y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          case 10: // callsubr\n            var n = stack.pop() + font.subrsBias;\n            var subrCode = font.subrs[n];\n            if (subrCode) {\n              parse(subrCode);\n            }\n            break;\n          case 11: // return\n            return;\n          case 12:\n            v = code[i++];\n            switch (v) {\n              case 34: // flex\n                var xa = x + stack.shift();\n                var xb = xa + stack.shift(), y1 = y + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y, xb, y1, x, y1);\n                var xa = x + stack.shift();\n                var xb = xa + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y1, xb, y, x, y);\n                break;\n              case 35: // flex\n                var xa = x + stack.shift(), ya = y + stack.shift();\n                var xb = xa + stack.shift(), yb = ya + stack.shift();\n                x = xb + stack.shift(); y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                var xa = x + stack.shift(), ya = y + stack.shift();\n                var xb = xa + stack.shift(), yb = ya + stack.shift();\n                x = xb + stack.shift(); y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                stack.pop(); // fd\n                break;\n              case 36: // hflex1\n                var xa = x + stack.shift(), y1 = y + stack.shift();\n                var xb = xa + stack.shift(), y2 = y1 + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y1, xb, y2, x, y2);\n                var xa = x + stack.shift();\n                var xb = xa + stack.shift(), y3 = y2 + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y2, xb, y3, x, y);\n                break;\n              case 37: // flex1\n                var x0 = x, y0 = y;\n                var xa = x + stack.shift(), ya = y + stack.shift();\n                var xb = xa + stack.shift(), yb = ya + stack.shift();\n                x = xb + stack.shift(); y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                var xa = x + stack.shift(), ya = y + stack.shift();\n                var xb = xa + stack.shift(), yb = ya + stack.shift();\n                x = xb; y = yb;\n                if (Math.abs(x - x0) > Math.abs(y - y0))\n                  x += stack.shift();\n                else\n                  y += stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                break;\n              default:\n                error('unknown operator: 12 ' + v);\n            }\n            break;\n          case 14: // endchar\n            if (stack.length >= 4) {\n              var achar = stack.pop();\n              var bchar = stack.pop();\n              y = stack.pop();\n              x = stack.pop();\n              js.push('c.save();');\n              js.push('c.translate('+ x + ',' + y + ');');\n              var gid = lookupCmap(font.cmap, String.fromCharCode(\n                font.glyphNameMap[Encodings.StandardEncoding[achar]]));\n              compileCharString(font.glyphs[gid], js, font);\n              js.push('c.restore();');\n\n              gid = lookupCmap(font.cmap, String.fromCharCode(\n                font.glyphNameMap[Encodings.StandardEncoding[bchar]]));\n              compileCharString(font.glyphs[gid], js, font);\n            }\n            return;\n          case 18: // hstemhm\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n          case 19: // hintmask\n            stems += stack.length >> 1;\n            i += (stems + 7) >> 3;\n            stackClean = true;\n            break;\n          case 20: // cntrmask\n            stems += stack.length >> 1;\n            i += (stems + 7) >> 3;\n            stackClean = true;\n            break;\n          case 21: // rmoveto\n            y += stack.pop();\n            x += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n          case 22: // hmoveto\n            x += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n          case 23: // vstemhm\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n          case 24: // rcurveline\n            while (stack.length > 2) {\n              var xa = x + stack.shift(), ya = y + stack.shift();\n              var xb = xa + stack.shift(), yb = ya + stack.shift();\n              x = xb + stack.shift(); y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n            break;\n          case 25: // rlinecurve\n            while (stack.length > 6) {\n              x += stack.shift();\n              y += stack.shift();\n              lineTo(x, y);\n            }\n            var xa = x + stack.shift(), ya = y + stack.shift();\n            var xb = xa + stack.shift(), yb = ya + stack.shift();\n            x = xb + stack.shift(); y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n            break;\n          case 26: // vvcurveto\n            if (stack.length % 2) {\n              x += stack.shift();\n            }\n            while (stack.length > 0) {\n              var xa = x, ya = y + stack.shift();\n              var xb = xa + stack.shift(), yb = ya + stack.shift();\n              x = xb; y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          case 27: // hhcurveto\n            if (stack.length % 2) {\n              y += stack.shift();\n            }\n            while (stack.length > 0) {\n              var xa = x + stack.shift(), ya = y;\n              var xb = xa + stack.shift(), yb = ya + stack.shift();\n              x = xb + stack.shift(); y = yb;\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          case 28:\n            stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16);\n            i += 2;\n            break;\n          case 29: // callgsubr\n            var n = stack.pop() + font.gsubrsBias;\n            var subrCode = font.gsubrs[n];\n            if (subrCode) {\n              parse(subrCode);\n            }\n            break;\n          case 30: // vhcurveto\n            while (stack.length > 0) {\n              var xa = x, ya = y + stack.shift();\n              var xb = xa + stack.shift(), yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              if (stack.length === 0) {\n                break;\n              }\n\n              var xa = x + stack.shift(), ya = y;\n              var xb = xa + stack.shift(), yb = ya + stack.shift();\n              y = yb + stack.shift();\n              x = xb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          case 31: // hvcurveto\n            while (stack.length > 0) {\n              var xa = x + stack.shift(), ya = y;\n              var xb = xa + stack.shift(), yb = ya + stack.shift();\n              y = yb + stack.shift();\n              x = xb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              if (stack.length === 0) {\n                break;\n              }\n\n              var xa = x, ya = y + stack.shift();\n              var xb = xa + stack.shift(), yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          default:\n            if (v < 32)\n              error('unknown operator: ' + v);\n            if (v < 247)\n              stack.push(v - 139);\n            else if (v < 251)\n              stack.push((v - 247) * 256 + code[i++] + 108);\n            else if (v < 255)\n              stack.push(-(v - 251) * 256 - code[i++] - 108);\n            else {\n              stack.push(((code[i] << 24) | (code[i + 1] << 16) |\n                         (code[i + 2] << 8) | code[i + 3]) / 65536);\n              i += 4;\n            }\n            break;\n        }\n        if (stackClean) {\n          stack.length = 0;\n        }\n      }\n    }\n    parse(code);\n  }\n\n  var noop = '';\n\n  function CompiledFont(fontMatrix) {\n    this.compiledGlyphs = {};\n    this.fontMatrix = fontMatrix;\n  }\n  CompiledFont.prototype = {\n    getPathJs: function (unicode) {\n      var gid = lookupCmap(this.cmap, unicode);\n      var fn = this.compiledGlyphs[gid];\n      if (!fn) {\n        this.compiledGlyphs[gid] = fn = this.compileGlyph(this.glyphs[gid]);\n      }\n      return fn;\n    },\n\n    compileGlyph: function (code) {\n      if (!code || code.length === 0 || code[0] === 14) {\n        return noop;\n      }\n\n      var js = [];\n      js.push('c.save();');\n      js.push('c.transform(' + this.fontMatrix.join(',') + ');');\n      js.push('c.scale(size, -size);');\n\n      this.compileGlyphImpl(code, js);\n\n      js.push('c.restore();');\n\n      return js.join('\\n');\n    },\n\n    compileGlyphImpl: function () {\n      error('Children classes should implement this.');\n    },\n\n    hasBuiltPath: function (unicode) {\n      var gid = lookupCmap(this.cmap, unicode);\n      return gid in this.compiledGlyphs;\n    }\n  };\n\n  function TrueTypeCompiled(glyphs, cmap, fontMatrix) {\n    fontMatrix = fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0];\n    CompiledFont.call(this, fontMatrix);\n\n    this.glyphs = glyphs;\n    this.cmap = cmap;\n\n    this.compiledGlyphs = [];\n  }\n\n  Util.inherit(TrueTypeCompiled, CompiledFont, {\n    compileGlyphImpl: function (code, js) {\n      compileGlyf(code, js, this);\n    }\n  });\n\n  function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) {\n    fontMatrix = fontMatrix || [0.001, 0, 0, 0.001, 0, 0];\n    CompiledFont.call(this, fontMatrix);\n    this.glyphs = cffInfo.glyphs;\n    this.gsubrs = cffInfo.gsubrs || [];\n    this.subrs = cffInfo.subrs || [];\n    this.cmap = cmap;\n    this.glyphNameMap = glyphNameMap || GlyphsUnicode;\n\n    this.compiledGlyphs = [];\n    this.gsubrsBias = this.gsubrs.length < 1240 ? 107 :\n                      this.gsubrs.length < 33900 ? 1131 : 32768;\n    this.subrsBias = this.subrs.length < 1240 ? 107 :\n                     this.subrs.length < 33900 ? 1131 : 32768;\n  }\n\n  Util.inherit(Type2Compiled, CompiledFont, {\n    compileGlyphImpl: function (code, js) {\n      compileCharString(code, js, this);\n    }\n  });\n\n\n  return {\n    create: function FontRendererFactory_create(font) {\n      var data = new Uint8Array(font.data);\n      var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n      var numTables = getUshort(data, 4);\n      for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n        var tag = String.fromCharCode.apply(null, data.subarray(p, p + 4));\n        var offset = getLong(data, p + 8);\n        var length = getLong(data, p + 12);\n        switch (tag) {\n          case 'cmap':\n            cmap = parseCmap(data, offset, offset + length);\n            break;\n          case 'glyf':\n            glyf = data.subarray(offset, offset + length);\n            break;\n          case 'loca':\n            loca = data.subarray(offset, offset + length);\n            break;\n          case 'head':\n            unitsPerEm = getUshort(data, offset + 18);\n            indexToLocFormat = getUshort(data, offset + 50);\n            break;\n          case 'CFF ':\n            cff = parseCff(data, offset, offset + length);\n            break;\n        }\n      }\n\n      if (glyf) {\n        var fontMatrix = !unitsPerEm ? font.fontMatrix :\n          [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n        return new TrueTypeCompiled(\n          parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n      } else {\n        return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n      }\n    }\n  };\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use strict';\n\nvar GlyphsUnicode = {\n  A: 0x0041,\n  AE: 0x00C6,\n  AEacute: 0x01FC,\n  AEmacron: 0x01E2,\n  AEsmall: 0xF7E6,\n  Aacute: 0x00C1,\n  Aacutesmall: 0xF7E1,\n  Abreve: 0x0102,\n  Abreveacute: 0x1EAE,\n  Abrevecyrillic: 0x04D0,\n  Abrevedotbelow: 0x1EB6,\n  Abrevegrave: 0x1EB0,\n  Abrevehookabove: 0x1EB2,\n  Abrevetilde: 0x1EB4,\n  Acaron: 0x01CD,\n  Acircle: 0x24B6,\n  Acircumflex: 0x00C2,\n  Acircumflexacute: 0x1EA4,\n  Acircumflexdotbelow: 0x1EAC,\n  Acircumflexgrave: 0x1EA6,\n  Acircumflexhookabove: 0x1EA8,\n  Acircumflexsmall: 0xF7E2,\n  Acircumflextilde: 0x1EAA,\n  Acute: 0xF6C9,\n  Acutesmall: 0xF7B4,\n  Acyrillic: 0x0410,\n  Adblgrave: 0x0200,\n  Adieresis: 0x00C4,\n  Adieresiscyrillic: 0x04D2,\n  Adieresismacron: 0x01DE,\n  Adieresissmall: 0xF7E4,\n  Adotbelow: 0x1EA0,\n  Adotmacron: 0x01E0,\n  Agrave: 0x00C0,\n  Agravesmall: 0xF7E0,\n  Ahookabove: 0x1EA2,\n  Aiecyrillic: 0x04D4,\n  Ainvertedbreve: 0x0202,\n  Alpha: 0x0391,\n  Alphatonos: 0x0386,\n  Amacron: 0x0100,\n  Amonospace: 0xFF21,\n  Aogonek: 0x0104,\n  Aring: 0x00C5,\n  Aringacute: 0x01FA,\n  Aringbelow: 0x1E00,\n  Aringsmall: 0xF7E5,\n  Asmall: 0xF761,\n  Atilde: 0x00C3,\n  Atildesmall: 0xF7E3,\n  Aybarmenian: 0x0531,\n  B: 0x0042,\n  Bcircle: 0x24B7,\n  Bdotaccent: 0x1E02,\n  Bdotbelow: 0x1E04,\n  Becyrillic: 0x0411,\n  Benarmenian: 0x0532,\n  Beta: 0x0392,\n  Bhook: 0x0181,\n  Blinebelow: 0x1E06,\n  Bmonospace: 0xFF22,\n  Brevesmall: 0xF6F4,\n  Bsmall: 0xF762,\n  Btopbar: 0x0182,\n  C: 0x0043,\n  Caarmenian: 0x053E,\n  Cacute: 0x0106,\n  Caron: 0xF6CA,\n  Caronsmall: 0xF6F5,\n  Ccaron: 0x010C,\n  Ccedilla: 0x00C7,\n  Ccedillaacute: 0x1E08,\n  Ccedillasmall: 0xF7E7,\n  Ccircle: 0x24B8,\n  Ccircumflex: 0x0108,\n  Cdot: 0x010A,\n  Cdotaccent: 0x010A,\n  Cedillasmall: 0xF7B8,\n  Chaarmenian: 0x0549,\n  Cheabkhasiancyrillic: 0x04BC,\n  Checyrillic: 0x0427,\n  Chedescenderabkhasiancyrillic: 0x04BE,\n  Chedescendercyrillic: 0x04B6,\n  Chedieresiscyrillic: 0x04F4,\n  Cheharmenian: 0x0543,\n  Chekhakassiancyrillic: 0x04CB,\n  Cheverticalstrokecyrillic: 0x04B8,\n  Chi: 0x03A7,\n  Chook: 0x0187,\n  Circumflexsmall: 0xF6F6,\n  Cmonospace: 0xFF23,\n  Coarmenian: 0x0551,\n  Csmall: 0xF763,\n  D: 0x0044,\n  DZ: 0x01F1,\n  DZcaron: 0x01C4,\n  Daarmenian: 0x0534,\n  Dafrican: 0x0189,\n  Dcaron: 0x010E,\n  Dcedilla: 0x1E10,\n  Dcircle: 0x24B9,\n  Dcircumflexbelow: 0x1E12,\n  Dcroat: 0x0110,\n  Ddotaccent: 0x1E0A,\n  Ddotbelow: 0x1E0C,\n  Decyrillic: 0x0414,\n  Deicoptic: 0x03EE,\n  Delta: 0x2206,\n  Deltagreek: 0x0394,\n  Dhook: 0x018A,\n  Dieresis: 0xF6CB,\n  DieresisAcute: 0xF6CC,\n  DieresisGrave: 0xF6CD,\n  Dieresissmall: 0xF7A8,\n  Digammagreek: 0x03DC,\n  Djecyrillic: 0x0402,\n  Dlinebelow: 0x1E0E,\n  Dmonospace: 0xFF24,\n  Dotaccentsmall: 0xF6F7,\n  Dslash: 0x0110,\n  Dsmall: 0xF764,\n  Dtopbar: 0x018B,\n  Dz: 0x01F2,\n  Dzcaron: 0x01C5,\n  Dzeabkhasiancyrillic: 0x04E0,\n  Dzecyrillic: 0x0405,\n  Dzhecyrillic: 0x040F,\n  E: 0x0045,\n  Eacute: 0x00C9,\n  Eacutesmall: 0xF7E9,\n  Ebreve: 0x0114,\n  Ecaron: 0x011A,\n  Ecedillabreve: 0x1E1C,\n  Echarmenian: 0x0535,\n  Ecircle: 0x24BA,\n  Ecircumflex: 0x00CA,\n  Ecircumflexacute: 0x1EBE,\n  Ecircumflexbelow: 0x1E18,\n  Ecircumflexdotbelow: 0x1EC6,\n  Ecircumflexgrave: 0x1EC0,\n  Ecircumflexhookabove: 0x1EC2,\n  Ecircumflexsmall: 0xF7EA,\n  Ecircumflextilde: 0x1EC4,\n  Ecyrillic: 0x0404,\n  Edblgrave: 0x0204,\n  Edieresis: 0x00CB,\n  Edieresissmall: 0xF7EB,\n  Edot: 0x0116,\n  Edotaccent: 0x0116,\n  Edotbelow: 0x1EB8,\n  Efcyrillic: 0x0424,\n  Egrave: 0x00C8,\n  Egravesmall: 0xF7E8,\n  Eharmenian: 0x0537,\n  Ehookabove: 0x1EBA,\n  Eightroman: 0x2167,\n  Einvertedbreve: 0x0206,\n  Eiotifiedcyrillic: 0x0464,\n  Elcyrillic: 0x041B,\n  Elevenroman: 0x216A,\n  Emacron: 0x0112,\n  Emacronacute: 0x1E16,\n  Emacrongrave: 0x1E14,\n  Emcyrillic: 0x041C,\n  Emonospace: 0xFF25,\n  Encyrillic: 0x041D,\n  Endescendercyrillic: 0x04A2,\n  Eng: 0x014A,\n  Enghecyrillic: 0x04A4,\n  Enhookcyrillic: 0x04C7,\n  Eogonek: 0x0118,\n  Eopen: 0x0190,\n  Epsilon: 0x0395,\n  Epsilontonos: 0x0388,\n  Ercyrillic: 0x0420,\n  Ereversed: 0x018E,\n  Ereversedcyrillic: 0x042D,\n  Escyrillic: 0x0421,\n  Esdescendercyrillic: 0x04AA,\n  Esh: 0x01A9,\n  Esmall: 0xF765,\n  Eta: 0x0397,\n  Etarmenian: 0x0538,\n  Etatonos: 0x0389,\n  Eth: 0x00D0,\n  Ethsmall: 0xF7F0,\n  Etilde: 0x1EBC,\n  Etildebelow: 0x1E1A,\n  Euro: 0x20AC,\n  Ezh: 0x01B7,\n  Ezhcaron: 0x01EE,\n  Ezhreversed: 0x01B8,\n  F: 0x0046,\n  Fcircle: 0x24BB,\n  Fdotaccent: 0x1E1E,\n  Feharmenian: 0x0556,\n  Feicoptic: 0x03E4,\n  Fhook: 0x0191,\n  Fitacyrillic: 0x0472,\n  Fiveroman: 0x2164,\n  Fmonospace: 0xFF26,\n  Fourroman: 0x2163,\n  Fsmall: 0xF766,\n  G: 0x0047,\n  GBsquare: 0x3387,\n  Gacute: 0x01F4,\n  Gamma: 0x0393,\n  Gammaafrican: 0x0194,\n  Gangiacoptic: 0x03EA,\n  Gbreve: 0x011E,\n  Gcaron: 0x01E6,\n  Gcedilla: 0x0122,\n  Gcircle: 0x24BC,\n  Gcircumflex: 0x011C,\n  Gcommaaccent: 0x0122,\n  Gdot: 0x0120,\n  Gdotaccent: 0x0120,\n  Gecyrillic: 0x0413,\n  Ghadarmenian: 0x0542,\n  Ghemiddlehookcyrillic: 0x0494,\n  Ghestrokecyrillic: 0x0492,\n  Gheupturncyrillic: 0x0490,\n  Ghook: 0x0193,\n  Gimarmenian: 0x0533,\n  Gjecyrillic: 0x0403,\n  Gmacron: 0x1E20,\n  Gmonospace: 0xFF27,\n  Grave: 0xF6CE,\n  Gravesmall: 0xF760,\n  Gsmall: 0xF767,\n  Gsmallhook: 0x029B,\n  Gstroke: 0x01E4,\n  H: 0x0048,\n  H18533: 0x25CF,\n  H18543: 0x25AA,\n  H18551: 0x25AB,\n  H22073: 0x25A1,\n  HPsquare: 0x33CB,\n  Haabkhasiancyrillic: 0x04A8,\n  Hadescendercyrillic: 0x04B2,\n  Hardsigncyrillic: 0x042A,\n  Hbar: 0x0126,\n  Hbrevebelow: 0x1E2A,\n  Hcedilla: 0x1E28,\n  Hcircle: 0x24BD,\n  Hcircumflex: 0x0124,\n  Hdieresis: 0x1E26,\n  Hdotaccent: 0x1E22,\n  Hdotbelow: 0x1E24,\n  Hmonospace: 0xFF28,\n  Hoarmenian: 0x0540,\n  Horicoptic: 0x03E8,\n  Hsmall: 0xF768,\n  Hungarumlaut: 0xF6CF,\n  Hungarumlautsmall: 0xF6F8,\n  Hzsquare: 0x3390,\n  I: 0x0049,\n  IAcyrillic: 0x042F,\n  IJ: 0x0132,\n  IUcyrillic: 0x042E,\n  Iacute: 0x00CD,\n  Iacutesmall: 0xF7ED,\n  Ibreve: 0x012C,\n  Icaron: 0x01CF,\n  Icircle: 0x24BE,\n  Icircumflex: 0x00CE,\n  Icircumflexsmall: 0xF7EE,\n  Icyrillic: 0x0406,\n  Idblgrave: 0x0208,\n  Idieresis: 0x00CF,\n  Idieresisacute: 0x1E2E,\n  Idieresiscyrillic: 0x04E4,\n  Idieresissmall: 0xF7EF,\n  Idot: 0x0130,\n  Idotaccent: 0x0130,\n  Idotbelow: 0x1ECA,\n  Iebrevecyrillic: 0x04D6,\n  Iecyrillic: 0x0415,\n  Ifraktur: 0x2111,\n  Igrave: 0x00CC,\n  Igravesmall: 0xF7EC,\n  Ihookabove: 0x1EC8,\n  Iicyrillic: 0x0418,\n  Iinvertedbreve: 0x020A,\n  Iishortcyrillic: 0x0419,\n  Imacron: 0x012A,\n  Imacroncyrillic: 0x04E2,\n  Imonospace: 0xFF29,\n  Iniarmenian: 0x053B,\n  Iocyrillic: 0x0401,\n  Iogonek: 0x012E,\n  Iota: 0x0399,\n  Iotaafrican: 0x0196,\n  Iotadieresis: 0x03AA,\n  Iotatonos: 0x038A,\n  Ismall: 0xF769,\n  Istroke: 0x0197,\n  Itilde: 0x0128,\n  Itildebelow: 0x1E2C,\n  Izhitsacyrillic: 0x0474,\n  Izhitsadblgravecyrillic: 0x0476,\n  J: 0x004A,\n  Jaarmenian: 0x0541,\n  Jcircle: 0x24BF,\n  Jcircumflex: 0x0134,\n  Jecyrillic: 0x0408,\n  Jheharmenian: 0x054B,\n  Jmonospace: 0xFF2A,\n  Jsmall: 0xF76A,\n  K: 0x004B,\n  KBsquare: 0x3385,\n  KKsquare: 0x33CD,\n  Kabashkircyrillic: 0x04A0,\n  Kacute: 0x1E30,\n  Kacyrillic: 0x041A,\n  Kadescendercyrillic: 0x049A,\n  Kahookcyrillic: 0x04C3,\n  Kappa: 0x039A,\n  Kastrokecyrillic: 0x049E,\n  Kaverticalstrokecyrillic: 0x049C,\n  Kcaron: 0x01E8,\n  Kcedilla: 0x0136,\n  Kcircle: 0x24C0,\n  Kcommaaccent: 0x0136,\n  Kdotbelow: 0x1E32,\n  Keharmenian: 0x0554,\n  Kenarmenian: 0x053F,\n  Khacyrillic: 0x0425,\n  Kheicoptic: 0x03E6,\n  Khook: 0x0198,\n  Kjecyrillic: 0x040C,\n  Klinebelow: 0x1E34,\n  Kmonospace: 0xFF2B,\n  Koppacyrillic: 0x0480,\n  Koppagreek: 0x03DE,\n  Ksicyrillic: 0x046E,\n  Ksmall: 0xF76B,\n  L: 0x004C,\n  LJ: 0x01C7,\n  LL: 0xF6BF,\n  Lacute: 0x0139,\n  Lambda: 0x039B,\n  Lcaron: 0x013D,\n  Lcedilla: 0x013B,\n  Lcircle: 0x24C1,\n  Lcircumflexbelow: 0x1E3C,\n  Lcommaaccent: 0x013B,\n  Ldot: 0x013F,\n  Ldotaccent: 0x013F,\n  Ldotbelow: 0x1E36,\n  Ldotbelowmacron: 0x1E38,\n  Liwnarmenian: 0x053C,\n  Lj: 0x01C8,\n  Ljecyrillic: 0x0409,\n  Llinebelow: 0x1E3A,\n  Lmonospace: 0xFF2C,\n  Lslash: 0x0141,\n  Lslashsmall: 0xF6F9,\n  Lsmall: 0xF76C,\n  M: 0x004D,\n  MBsquare: 0x3386,\n  Macron: 0xF6D0,\n  Macronsmall: 0xF7AF,\n  Macute: 0x1E3E,\n  Mcircle: 0x24C2,\n  Mdotaccent: 0x1E40,\n  Mdotbelow: 0x1E42,\n  Menarmenian: 0x0544,\n  Mmonospace: 0xFF2D,\n  Msmall: 0xF76D,\n  Mturned: 0x019C,\n  Mu: 0x039C,\n  N: 0x004E,\n  NJ: 0x01CA,\n  Nacute: 0x0143,\n  Ncaron: 0x0147,\n  Ncedilla: 0x0145,\n  Ncircle: 0x24C3,\n  Ncircumflexbelow: 0x1E4A,\n  Ncommaaccent: 0x0145,\n  Ndotaccent: 0x1E44,\n  Ndotbelow: 0x1E46,\n  Nhookleft: 0x019D,\n  Nineroman: 0x2168,\n  Nj: 0x01CB,\n  Njecyrillic: 0x040A,\n  Nlinebelow: 0x1E48,\n  Nmonospace: 0xFF2E,\n  Nowarmenian: 0x0546,\n  Nsmall: 0xF76E,\n  Ntilde: 0x00D1,\n  Ntildesmall: 0xF7F1,\n  Nu: 0x039D,\n  O: 0x004F,\n  OE: 0x0152,\n  OEsmall: 0xF6FA,\n  Oacute: 0x00D3,\n  Oacutesmall: 0xF7F3,\n  Obarredcyrillic: 0x04E8,\n  Obarreddieresiscyrillic: 0x04EA,\n  Obreve: 0x014E,\n  Ocaron: 0x01D1,\n  Ocenteredtilde: 0x019F,\n  Ocircle: 0x24C4,\n  Ocircumflex: 0x00D4,\n  Ocircumflexacute: 0x1ED0,\n  Ocircumflexdotbelow: 0x1ED8,\n  Ocircumflexgrave: 0x1ED2,\n  Ocircumflexhookabove: 0x1ED4,\n  Ocircumflexsmall: 0xF7F4,\n  Ocircumflextilde: 0x1ED6,\n  Ocyrillic: 0x041E,\n  Odblacute: 0x0150,\n  Odblgrave: 0x020C,\n  Odieresis: 0x00D6,\n  Odieresiscyrillic: 0x04E6,\n  Odieresissmall: 0xF7F6,\n  Odotbelow: 0x1ECC,\n  Ogoneksmall: 0xF6FB,\n  Ograve: 0x00D2,\n  Ogravesmall: 0xF7F2,\n  Oharmenian: 0x0555,\n  Ohm: 0x2126,\n  Ohookabove: 0x1ECE,\n  Ohorn: 0x01A0,\n  Ohornacute: 0x1EDA,\n  Ohorndotbelow: 0x1EE2,\n  Ohorngrave: 0x1EDC,\n  Ohornhookabove: 0x1EDE,\n  Ohorntilde: 0x1EE0,\n  Ohungarumlaut: 0x0150,\n  Oi: 0x01A2,\n  Oinvertedbreve: 0x020E,\n  Omacron: 0x014C,\n  Omacronacute: 0x1E52,\n  Omacrongrave: 0x1E50,\n  Omega: 0x2126,\n  Omegacyrillic: 0x0460,\n  Omegagreek: 0x03A9,\n  Omegaroundcyrillic: 0x047A,\n  Omegatitlocyrillic: 0x047C,\n  Omegatonos: 0x038F,\n  Omicron: 0x039F,\n  Omicrontonos: 0x038C,\n  Omonospace: 0xFF2F,\n  Oneroman: 0x2160,\n  Oogonek: 0x01EA,\n  Oogonekmacron: 0x01EC,\n  Oopen: 0x0186,\n  Oslash: 0x00D8,\n  Oslashacute: 0x01FE,\n  Oslashsmall: 0xF7F8,\n  Osmall: 0xF76F,\n  Ostrokeacute: 0x01FE,\n  Otcyrillic: 0x047E,\n  Otilde: 0x00D5,\n  Otildeacute: 0x1E4C,\n  Otildedieresis: 0x1E4E,\n  Otildesmall: 0xF7F5,\n  P: 0x0050,\n  Pacute: 0x1E54,\n  Pcircle: 0x24C5,\n  Pdotaccent: 0x1E56,\n  Pecyrillic: 0x041F,\n  Peharmenian: 0x054A,\n  Pemiddlehookcyrillic: 0x04A6,\n  Phi: 0x03A6,\n  Phook: 0x01A4,\n  Pi: 0x03A0,\n  Piwrarmenian: 0x0553,\n  Pmonospace: 0xFF30,\n  Psi: 0x03A8,\n  Psicyrillic: 0x0470,\n  Psmall: 0xF770,\n  Q: 0x0051,\n  Qcircle: 0x24C6,\n  Qmonospace: 0xFF31,\n  Qsmall: 0xF771,\n  R: 0x0052,\n  Raarmenian: 0x054C,\n  Racute: 0x0154,\n  Rcaron: 0x0158,\n  Rcedilla: 0x0156,\n  Rcircle: 0x24C7,\n  Rcommaaccent: 0x0156,\n  Rdblgrave: 0x0210,\n  Rdotaccent: 0x1E58,\n  Rdotbelow: 0x1E5A,\n  Rdotbelowmacron: 0x1E5C,\n  Reharmenian: 0x0550,\n  Rfraktur: 0x211C,\n  Rho: 0x03A1,\n  Ringsmall: 0xF6FC,\n  Rinvertedbreve: 0x0212,\n  Rlinebelow: 0x1E5E,\n  Rmonospace: 0xFF32,\n  Rsmall: 0xF772,\n  Rsmallinverted: 0x0281,\n  Rsmallinvertedsuperior: 0x02B6,\n  S: 0x0053,\n  SF010000: 0x250C,\n  SF020000: 0x2514,\n  SF030000: 0x2510,\n  SF040000: 0x2518,\n  SF050000: 0x253C,\n  SF060000: 0x252C,\n  SF070000: 0x2534,\n  SF080000: 0x251C,\n  SF090000: 0x2524,\n  SF100000: 0x2500,\n  SF110000: 0x2502,\n  SF190000: 0x2561,\n  SF200000: 0x2562,\n  SF210000: 0x2556,\n  SF220000: 0x2555,\n  SF230000: 0x2563,\n  SF240000: 0x2551,\n  SF250000: 0x2557,\n  SF260000: 0x255D,\n  SF270000: 0x255C,\n  SF280000: 0x255B,\n  SF360000: 0x255E,\n  SF370000: 0x255F,\n  SF380000: 0x255A,\n  SF390000: 0x2554,\n  SF400000: 0x2569,\n  SF410000: 0x2566,\n  SF420000: 0x2560,\n  SF430000: 0x2550,\n  SF440000: 0x256C,\n  SF450000: 0x2567,\n  SF460000: 0x2568,\n  SF470000: 0x2564,\n  SF480000: 0x2565,\n  SF490000: 0x2559,\n  SF500000: 0x2558,\n  SF510000: 0x2552,\n  SF520000: 0x2553,\n  SF530000: 0x256B,\n  SF540000: 0x256A,\n  Sacute: 0x015A,\n  Sacutedotaccent: 0x1E64,\n  Sampigreek: 0x03E0,\n  Scaron: 0x0160,\n  Scarondotaccent: 0x1E66,\n  Scaronsmall: 0xF6FD,\n  Scedilla: 0x015E,\n  Schwa: 0x018F,\n  Schwacyrillic: 0x04D8,\n  Schwadieresiscyrillic: 0x04DA,\n  Scircle: 0x24C8,\n  Scircumflex: 0x015C,\n  Scommaaccent: 0x0218,\n  Sdotaccent: 0x1E60,\n  Sdotbelow: 0x1E62,\n  Sdotbelowdotaccent: 0x1E68,\n  Seharmenian: 0x054D,\n  Sevenroman: 0x2166,\n  Shaarmenian: 0x0547,\n  Shacyrillic: 0x0428,\n  Shchacyrillic: 0x0429,\n  Sheicoptic: 0x03E2,\n  Shhacyrillic: 0x04BA,\n  Shimacoptic: 0x03EC,\n  Sigma: 0x03A3,\n  Sixroman: 0x2165,\n  Smonospace: 0xFF33,\n  Softsigncyrillic: 0x042C,\n  Ssmall: 0xF773,\n  Stigmagreek: 0x03DA,\n  T: 0x0054,\n  Tau: 0x03A4,\n  Tbar: 0x0166,\n  Tcaron: 0x0164,\n  Tcedilla: 0x0162,\n  Tcircle: 0x24C9,\n  Tcircumflexbelow: 0x1E70,\n  Tcommaaccent: 0x0162,\n  Tdotaccent: 0x1E6A,\n  Tdotbelow: 0x1E6C,\n  Tecyrillic: 0x0422,\n  Tedescendercyrillic: 0x04AC,\n  Tenroman: 0x2169,\n  Tetsecyrillic: 0x04B4,\n  Theta: 0x0398,\n  Thook: 0x01AC,\n  Thorn: 0x00DE,\n  Thornsmall: 0xF7FE,\n  Threeroman: 0x2162,\n  Tildesmall: 0xF6FE,\n  Tiwnarmenian: 0x054F,\n  Tlinebelow: 0x1E6E,\n  Tmonospace: 0xFF34,\n  Toarmenian: 0x0539,\n  Tonefive: 0x01BC,\n  Tonesix: 0x0184,\n  Tonetwo: 0x01A7,\n  Tretroflexhook: 0x01AE,\n  Tsecyrillic: 0x0426,\n  Tshecyrillic: 0x040B,\n  Tsmall: 0xF774,\n  Twelveroman: 0x216B,\n  Tworoman: 0x2161,\n  U: 0x0055,\n  Uacute: 0x00DA,\n  Uacutesmall: 0xF7FA,\n  Ubreve: 0x016C,\n  Ucaron: 0x01D3,\n  Ucircle: 0x24CA,\n  Ucircumflex: 0x00DB,\n  Ucircumflexbelow: 0x1E76,\n  Ucircumflexsmall: 0xF7FB,\n  Ucyrillic: 0x0423,\n  Udblacute: 0x0170,\n  Udblgrave: 0x0214,\n  Udieresis: 0x00DC,\n  Udieresisacute: 0x01D7,\n  Udieresisbelow: 0x1E72,\n  Udieresiscaron: 0x01D9,\n  Udieresiscyrillic: 0x04F0,\n  Udieresisgrave: 0x01DB,\n  Udieresismacron: 0x01D5,\n  Udieresissmall: 0xF7FC,\n  Udotbelow: 0x1EE4,\n  Ugrave: 0x00D9,\n  Ugravesmall: 0xF7F9,\n  Uhookabove: 0x1EE6,\n  Uhorn: 0x01AF,\n  Uhornacute: 0x1EE8,\n  Uhorndotbelow: 0x1EF0,\n  Uhorngrave: 0x1EEA,\n  Uhornhookabove: 0x1EEC,\n  Uhorntilde: 0x1EEE,\n  Uhungarumlaut: 0x0170,\n  Uhungarumlautcyrillic: 0x04F2,\n  Uinvertedbreve: 0x0216,\n  Ukcyrillic: 0x0478,\n  Umacron: 0x016A,\n  Umacroncyrillic: 0x04EE,\n  Umacrondieresis: 0x1E7A,\n  Umonospace: 0xFF35,\n  Uogonek: 0x0172,\n  Upsilon: 0x03A5,\n  Upsilon1: 0x03D2,\n  Upsilonacutehooksymbolgreek: 0x03D3,\n  Upsilonafrican: 0x01B1,\n  Upsilondieresis: 0x03AB,\n  Upsilondieresishooksymbolgreek: 0x03D4,\n  Upsilonhooksymbol: 0x03D2,\n  Upsilontonos: 0x038E,\n  Uring: 0x016E,\n  Ushortcyrillic: 0x040E,\n  Usmall: 0xF775,\n  Ustraightcyrillic: 0x04AE,\n  Ustraightstrokecyrillic: 0x04B0,\n  Utilde: 0x0168,\n  Utildeacute: 0x1E78,\n  Utildebelow: 0x1E74,\n  V: 0x0056,\n  Vcircle: 0x24CB,\n  Vdotbelow: 0x1E7E,\n  Vecyrillic: 0x0412,\n  Vewarmenian: 0x054E,\n  Vhook: 0x01B2,\n  Vmonospace: 0xFF36,\n  Voarmenian: 0x0548,\n  Vsmall: 0xF776,\n  Vtilde: 0x1E7C,\n  W: 0x0057,\n  Wacute: 0x1E82,\n  Wcircle: 0x24CC,\n  Wcircumflex: 0x0174,\n  Wdieresis: 0x1E84,\n  Wdotaccent: 0x1E86,\n  Wdotbelow: 0x1E88,\n  Wgrave: 0x1E80,\n  Wmonospace: 0xFF37,\n  Wsmall: 0xF777,\n  X: 0x0058,\n  Xcircle: 0x24CD,\n  Xdieresis: 0x1E8C,\n  Xdotaccent: 0x1E8A,\n  Xeharmenian: 0x053D,\n  Xi: 0x039E,\n  Xmonospace: 0xFF38,\n  Xsmall: 0xF778,\n  Y: 0x0059,\n  Yacute: 0x00DD,\n  Yacutesmall: 0xF7FD,\n  Yatcyrillic: 0x0462,\n  Ycircle: 0x24CE,\n  Ycircumflex: 0x0176,\n  Ydieresis: 0x0178,\n  Ydieresissmall: 0xF7FF,\n  Ydotaccent: 0x1E8E,\n  Ydotbelow: 0x1EF4,\n  Yericyrillic: 0x042B,\n  Yerudieresiscyrillic: 0x04F8,\n  Ygrave: 0x1EF2,\n  Yhook: 0x01B3,\n  Yhookabove: 0x1EF6,\n  Yiarmenian: 0x0545,\n  Yicyrillic: 0x0407,\n  Yiwnarmenian: 0x0552,\n  Ymonospace: 0xFF39,\n  Ysmall: 0xF779,\n  Ytilde: 0x1EF8,\n  Yusbigcyrillic: 0x046A,\n  Yusbigiotifiedcyrillic: 0x046C,\n  Yuslittlecyrillic: 0x0466,\n  Yuslittleiotifiedcyrillic: 0x0468,\n  Z: 0x005A,\n  Zaarmenian: 0x0536,\n  Zacute: 0x0179,\n  Zcaron: 0x017D,\n  Zcaronsmall: 0xF6FF,\n  Zcircle: 0x24CF,\n  Zcircumflex: 0x1E90,\n  Zdot: 0x017B,\n  Zdotaccent: 0x017B,\n  Zdotbelow: 0x1E92,\n  Zecyrillic: 0x0417,\n  Zedescendercyrillic: 0x0498,\n  Zedieresiscyrillic: 0x04DE,\n  Zeta: 0x0396,\n  Zhearmenian: 0x053A,\n  Zhebrevecyrillic: 0x04C1,\n  Zhecyrillic: 0x0416,\n  Zhedescendercyrillic: 0x0496,\n  Zhedieresiscyrillic: 0x04DC,\n  Zlinebelow: 0x1E94,\n  Zmonospace: 0xFF3A,\n  Zsmall: 0xF77A,\n  Zstroke: 0x01B5,\n  a: 0x0061,\n  aabengali: 0x0986,\n  aacute: 0x00E1,\n  aadeva: 0x0906,\n  aagujarati: 0x0A86,\n  aagurmukhi: 0x0A06,\n  aamatragurmukhi: 0x0A3E,\n  aarusquare: 0x3303,\n  aavowelsignbengali: 0x09BE,\n  aavowelsigndeva: 0x093E,\n  aavowelsigngujarati: 0x0ABE,\n  abbreviationmarkarmenian: 0x055F,\n  abbreviationsigndeva: 0x0970,\n  abengali: 0x0985,\n  abopomofo: 0x311A,\n  abreve: 0x0103,\n  abreveacute: 0x1EAF,\n  abrevecyrillic: 0x04D1,\n  abrevedotbelow: 0x1EB7,\n  abrevegrave: 0x1EB1,\n  abrevehookabove: 0x1EB3,\n  abrevetilde: 0x1EB5,\n  acaron: 0x01CE,\n  acircle: 0x24D0,\n  acircumflex: 0x00E2,\n  acircumflexacute: 0x1EA5,\n  acircumflexdotbelow: 0x1EAD,\n  acircumflexgrave: 0x1EA7,\n  acircumflexhookabove: 0x1EA9,\n  acircumflextilde: 0x1EAB,\n  acute: 0x00B4,\n  acutebelowcmb: 0x0317,\n  acutecmb: 0x0301,\n  acutecomb: 0x0301,\n  acutedeva: 0x0954,\n  acutelowmod: 0x02CF,\n  acutetonecmb: 0x0341,\n  acyrillic: 0x0430,\n  adblgrave: 0x0201,\n  addakgurmukhi: 0x0A71,\n  adeva: 0x0905,\n  adieresis: 0x00E4,\n  adieresiscyrillic: 0x04D3,\n  adieresismacron: 0x01DF,\n  adotbelow: 0x1EA1,\n  adotmacron: 0x01E1,\n  ae: 0x00E6,\n  aeacute: 0x01FD,\n  aekorean: 0x3150,\n  aemacron: 0x01E3,\n  afii00208: 0x2015,\n  afii08941: 0x20A4,\n  afii10017: 0x0410,\n  afii10018: 0x0411,\n  afii10019: 0x0412,\n  afii10020: 0x0413,\n  afii10021: 0x0414,\n  afii10022: 0x0415,\n  afii10023: 0x0401,\n  afii10024: 0x0416,\n  afii10025: 0x0417,\n  afii10026: 0x0418,\n  afii10027: 0x0419,\n  afii10028: 0x041A,\n  afii10029: 0x041B,\n  afii10030: 0x041C,\n  afii10031: 0x041D,\n  afii10032: 0x041E,\n  afii10033: 0x041F,\n  afii10034: 0x0420,\n  afii10035: 0x0421,\n  afii10036: 0x0422,\n  afii10037: 0x0423,\n  afii10038: 0x0424,\n  afii10039: 0x0425,\n  afii10040: 0x0426,\n  afii10041: 0x0427,\n  afii10042: 0x0428,\n  afii10043: 0x0429,\n  afii10044: 0x042A,\n  afii10045: 0x042B,\n  afii10046: 0x042C,\n  afii10047: 0x042D,\n  afii10048: 0x042E,\n  afii10049: 0x042F,\n  afii10050: 0x0490,\n  afii10051: 0x0402,\n  afii10052: 0x0403,\n  afii10053: 0x0404,\n  afii10054: 0x0405,\n  afii10055: 0x0406,\n  afii10056: 0x0407,\n  afii10057: 0x0408,\n  afii10058: 0x0409,\n  afii10059: 0x040A,\n  afii10060: 0x040B,\n  afii10061: 0x040C,\n  afii10062: 0x040E,\n  afii10063: 0xF6C4,\n  afii10064: 0xF6C5,\n  afii10065: 0x0430,\n  afii10066: 0x0431,\n  afii10067: 0x0432,\n  afii10068: 0x0433,\n  afii10069: 0x0434,\n  afii10070: 0x0435,\n  afii10071: 0x0451,\n  afii10072: 0x0436,\n  afii10073: 0x0437,\n  afii10074: 0x0438,\n  afii10075: 0x0439,\n  afii10076: 0x043A,\n  afii10077: 0x043B,\n  afii10078: 0x043C,\n  afii10079: 0x043D,\n  afii10080: 0x043E,\n  afii10081: 0x043F,\n  afii10082: 0x0440,\n  afii10083: 0x0441,\n  afii10084: 0x0442,\n  afii10085: 0x0443,\n  afii10086: 0x0444,\n  afii10087: 0x0445,\n  afii10088: 0x0446,\n  afii10089: 0x0447,\n  afii10090: 0x0448,\n  afii10091: 0x0449,\n  afii10092: 0x044A,\n  afii10093: 0x044B,\n  afii10094: 0x044C,\n  afii10095: 0x044D,\n  afii10096: 0x044E,\n  afii10097: 0x044F,\n  afii10098: 0x0491,\n  afii10099: 0x0452,\n  afii10100: 0x0453,\n  afii10101: 0x0454,\n  afii10102: 0x0455,\n  afii10103: 0x0456,\n  afii10104: 0x0457,\n  afii10105: 0x0458,\n  afii10106: 0x0459,\n  afii10107: 0x045A,\n  afii10108: 0x045B,\n  afii10109: 0x045C,\n  afii10110: 0x045E,\n  afii10145: 0x040F,\n  afii10146: 0x0462,\n  afii10147: 0x0472,\n  afii10148: 0x0474,\n  afii10192: 0xF6C6,\n  afii10193: 0x045F,\n  afii10194: 0x0463,\n  afii10195: 0x0473,\n  afii10196: 0x0475,\n  afii10831: 0xF6C7,\n  afii10832: 0xF6C8,\n  afii10846: 0x04D9,\n  afii299: 0x200E,\n  afii300: 0x200F,\n  afii301: 0x200D,\n  afii57381: 0x066A,\n  afii57388: 0x060C,\n  afii57392: 0x0660,\n  afii57393: 0x0661,\n  afii57394: 0x0662,\n  afii57395: 0x0663,\n  afii57396: 0x0664,\n  afii57397: 0x0665,\n  afii57398: 0x0666,\n  afii57399: 0x0667,\n  afii57400: 0x0668,\n  afii57401: 0x0669,\n  afii57403: 0x061B,\n  afii57407: 0x061F,\n  afii57409: 0x0621,\n  afii57410: 0x0622,\n  afii57411: 0x0623,\n  afii57412: 0x0624,\n  afii57413: 0x0625,\n  afii57414: 0x0626,\n  afii57415: 0x0627,\n  afii57416: 0x0628,\n  afii57417: 0x0629,\n  afii57418: 0x062A,\n  afii57419: 0x062B,\n  afii57420: 0x062C,\n  afii57421: 0x062D,\n  afii57422: 0x062E,\n  afii57423: 0x062F,\n  afii57424: 0x0630,\n  afii57425: 0x0631,\n  afii57426: 0x0632,\n  afii57427: 0x0633,\n  afii57428: 0x0634,\n  afii57429: 0x0635,\n  afii57430: 0x0636,\n  afii57431: 0x0637,\n  afii57432: 0x0638,\n  afii57433: 0x0639,\n  afii57434: 0x063A,\n  afii57440: 0x0640,\n  afii57441: 0x0641,\n  afii57442: 0x0642,\n  afii57443: 0x0643,\n  afii57444: 0x0644,\n  afii57445: 0x0645,\n  afii57446: 0x0646,\n  afii57448: 0x0648,\n  afii57449: 0x0649,\n  afii57450: 0x064A,\n  afii57451: 0x064B,\n  afii57452: 0x064C,\n  afii57453: 0x064D,\n  afii57454: 0x064E,\n  afii57455: 0x064F,\n  afii57456: 0x0650,\n  afii57457: 0x0651,\n  afii57458: 0x0652,\n  afii57470: 0x0647,\n  afii57505: 0x06A4,\n  afii57506: 0x067E,\n  afii57507: 0x0686,\n  afii57508: 0x0698,\n  afii57509: 0x06AF,\n  afii57511: 0x0679,\n  afii57512: 0x0688,\n  afii57513: 0x0691,\n  afii57514: 0x06BA,\n  afii57519: 0x06D2,\n  afii57534: 0x06D5,\n  afii57636: 0x20AA,\n  afii57645: 0x05BE,\n  afii57658: 0x05C3,\n  afii57664: 0x05D0,\n  afii57665: 0x05D1,\n  afii57666: 0x05D2,\n  afii57667: 0x05D3,\n  afii57668: 0x05D4,\n  afii57669: 0x05D5,\n  afii57670: 0x05D6,\n  afii57671: 0x05D7,\n  afii57672: 0x05D8,\n  afii57673: 0x05D9,\n  afii57674: 0x05DA,\n  afii57675: 0x05DB,\n  afii57676: 0x05DC,\n  afii57677: 0x05DD,\n  afii57678: 0x05DE,\n  afii57679: 0x05DF,\n  afii57680: 0x05E0,\n  afii57681: 0x05E1,\n  afii57682: 0x05E2,\n  afii57683: 0x05E3,\n  afii57684: 0x05E4,\n  afii57685: 0x05E5,\n  afii57686: 0x05E6,\n  afii57687: 0x05E7,\n  afii57688: 0x05E8,\n  afii57689: 0x05E9,\n  afii57690: 0x05EA,\n  afii57694: 0xFB2A,\n  afii57695: 0xFB2B,\n  afii57700: 0xFB4B,\n  afii57705: 0xFB1F,\n  afii57716: 0x05F0,\n  afii57717: 0x05F1,\n  afii57718: 0x05F2,\n  afii57723: 0xFB35,\n  afii57793: 0x05B4,\n  afii57794: 0x05B5,\n  afii57795: 0x05B6,\n  afii57796: 0x05BB,\n  afii57797: 0x05B8,\n  afii57798: 0x05B7,\n  afii57799: 0x05B0,\n  afii57800: 0x05B2,\n  afii57801: 0x05B1,\n  afii57802: 0x05B3,\n  afii57803: 0x05C2,\n  afii57804: 0x05C1,\n  afii57806: 0x05B9,\n  afii57807: 0x05BC,\n  afii57839: 0x05BD,\n  afii57841: 0x05BF,\n  afii57842: 0x05C0,\n  afii57929: 0x02BC,\n  afii61248: 0x2105,\n  afii61289: 0x2113,\n  afii61352: 0x2116,\n  afii61573: 0x202C,\n  afii61574: 0x202D,\n  afii61575: 0x202E,\n  afii61664: 0x200C,\n  afii63167: 0x066D,\n  afii64937: 0x02BD,\n  agrave: 0x00E0,\n  agujarati: 0x0A85,\n  agurmukhi: 0x0A05,\n  ahiragana: 0x3042,\n  ahookabove: 0x1EA3,\n  aibengali: 0x0990,\n  aibopomofo: 0x311E,\n  aideva: 0x0910,\n  aiecyrillic: 0x04D5,\n  aigujarati: 0x0A90,\n  aigurmukhi: 0x0A10,\n  aimatragurmukhi: 0x0A48,\n  ainarabic: 0x0639,\n  ainfinalarabic: 0xFECA,\n  aininitialarabic: 0xFECB,\n  ainmedialarabic: 0xFECC,\n  ainvertedbreve: 0x0203,\n  aivowelsignbengali: 0x09C8,\n  aivowelsigndeva: 0x0948,\n  aivowelsigngujarati: 0x0AC8,\n  akatakana: 0x30A2,\n  akatakanahalfwidth: 0xFF71,\n  akorean: 0x314F,\n  alef: 0x05D0,\n  alefarabic: 0x0627,\n  alefdageshhebrew: 0xFB30,\n  aleffinalarabic: 0xFE8E,\n  alefhamzaabovearabic: 0x0623,\n  alefhamzaabovefinalarabic: 0xFE84,\n  alefhamzabelowarabic: 0x0625,\n  alefhamzabelowfinalarabic: 0xFE88,\n  alefhebrew: 0x05D0,\n  aleflamedhebrew: 0xFB4F,\n  alefmaddaabovearabic: 0x0622,\n  alefmaddaabovefinalarabic: 0xFE82,\n  alefmaksuraarabic: 0x0649,\n  alefmaksurafinalarabic: 0xFEF0,\n  alefmaksurainitialarabic: 0xFEF3,\n  alefmaksuramedialarabic: 0xFEF4,\n  alefpatahhebrew: 0xFB2E,\n  alefqamatshebrew: 0xFB2F,\n  aleph: 0x2135,\n  allequal: 0x224C,\n  alpha: 0x03B1,\n  alphatonos: 0x03AC,\n  amacron: 0x0101,\n  amonospace: 0xFF41,\n  ampersand: 0x0026,\n  ampersandmonospace: 0xFF06,\n  ampersandsmall: 0xF726,\n  amsquare: 0x33C2,\n  anbopomofo: 0x3122,\n  angbopomofo: 0x3124,\n  angbracketleft: 0x3008, // This glyph is missing from Adobe's original list.\n  angbracketright: 0x3009, // This glyph is missing from Adobe's original list.\n  angkhankhuthai: 0x0E5A,\n  angle: 0x2220,\n  anglebracketleft: 0x3008,\n  anglebracketleftvertical: 0xFE3F,\n  anglebracketright: 0x3009,\n  anglebracketrightvertical: 0xFE40,\n  angleleft: 0x2329,\n  angleright: 0x232A,\n  angstrom: 0x212B,\n  anoteleia: 0x0387,\n  anudattadeva: 0x0952,\n  anusvarabengali: 0x0982,\n  anusvaradeva: 0x0902,\n  anusvaragujarati: 0x0A82,\n  aogonek: 0x0105,\n  apaatosquare: 0x3300,\n  aparen: 0x249C,\n  apostrophearmenian: 0x055A,\n  apostrophemod: 0x02BC,\n  apple: 0xF8FF,\n  approaches: 0x2250,\n  approxequal: 0x2248,\n  approxequalorimage: 0x2252,\n  approximatelyequal: 0x2245,\n  araeaekorean: 0x318E,\n  araeakorean: 0x318D,\n  arc: 0x2312,\n  arighthalfring: 0x1E9A,\n  aring: 0x00E5,\n  aringacute: 0x01FB,\n  aringbelow: 0x1E01,\n  arrowboth: 0x2194,\n  arrowdashdown: 0x21E3,\n  arrowdashleft: 0x21E0,\n  arrowdashright: 0x21E2,\n  arrowdashup: 0x21E1,\n  arrowdblboth: 0x21D4,\n  arrowdbldown: 0x21D3,\n  arrowdblleft: 0x21D0,\n  arrowdblright: 0x21D2,\n  arrowdblup: 0x21D1,\n  arrowdown: 0x2193,\n  arrowdownleft: 0x2199,\n  arrowdownright: 0x2198,\n  arrowdownwhite: 0x21E9,\n  arrowheaddownmod: 0x02C5,\n  arrowheadleftmod: 0x02C2,\n  arrowheadrightmod: 0x02C3,\n  arrowheadupmod: 0x02C4,\n  arrowhorizex: 0xF8E7,\n  arrowleft: 0x2190,\n  arrowleftdbl: 0x21D0,\n  arrowleftdblstroke: 0x21CD,\n  arrowleftoverright: 0x21C6,\n  arrowleftwhite: 0x21E6,\n  arrowright: 0x2192,\n  arrowrightdblstroke: 0x21CF,\n  arrowrightheavy: 0x279E,\n  arrowrightoverleft: 0x21C4,\n  arrowrightwhite: 0x21E8,\n  arrowtableft: 0x21E4,\n  arrowtabright: 0x21E5,\n  arrowup: 0x2191,\n  arrowupdn: 0x2195,\n  arrowupdnbse: 0x21A8,\n  arrowupdownbase: 0x21A8,\n  arrowupleft: 0x2196,\n  arrowupleftofdown: 0x21C5,\n  arrowupright: 0x2197,\n  arrowupwhite: 0x21E7,\n  arrowvertex: 0xF8E6,\n  asciicircum: 0x005E,\n  asciicircummonospace: 0xFF3E,\n  asciitilde: 0x007E,\n  asciitildemonospace: 0xFF5E,\n  ascript: 0x0251,\n  ascriptturned: 0x0252,\n  asmallhiragana: 0x3041,\n  asmallkatakana: 0x30A1,\n  asmallkatakanahalfwidth: 0xFF67,\n  asterisk: 0x002A,\n  asteriskaltonearabic: 0x066D,\n  asteriskarabic: 0x066D,\n  asteriskmath: 0x2217,\n  asteriskmonospace: 0xFF0A,\n  asterisksmall: 0xFE61,\n  asterism: 0x2042,\n  asuperior: 0xF6E9,\n  asymptoticallyequal: 0x2243,\n  at: 0x0040,\n  atilde: 0x00E3,\n  atmonospace: 0xFF20,\n  atsmall: 0xFE6B,\n  aturned: 0x0250,\n  aubengali: 0x0994,\n  aubopomofo: 0x3120,\n  audeva: 0x0914,\n  augujarati: 0x0A94,\n  augurmukhi: 0x0A14,\n  aulengthmarkbengali: 0x09D7,\n  aumatragurmukhi: 0x0A4C,\n  auvowelsignbengali: 0x09CC,\n  auvowelsigndeva: 0x094C,\n  auvowelsigngujarati: 0x0ACC,\n  avagrahadeva: 0x093D,\n  aybarmenian: 0x0561,\n  ayin: 0x05E2,\n  ayinaltonehebrew: 0xFB20,\n  ayinhebrew: 0x05E2,\n  b: 0x0062,\n  babengali: 0x09AC,\n  backslash: 0x005C,\n  backslashmonospace: 0xFF3C,\n  badeva: 0x092C,\n  bagujarati: 0x0AAC,\n  bagurmukhi: 0x0A2C,\n  bahiragana: 0x3070,\n  bahtthai: 0x0E3F,\n  bakatakana: 0x30D0,\n  bar: 0x007C,\n  barmonospace: 0xFF5C,\n  bbopomofo: 0x3105,\n  bcircle: 0x24D1,\n  bdotaccent: 0x1E03,\n  bdotbelow: 0x1E05,\n  beamedsixteenthnotes: 0x266C,\n  because: 0x2235,\n  becyrillic: 0x0431,\n  beharabic: 0x0628,\n  behfinalarabic: 0xFE90,\n  behinitialarabic: 0xFE91,\n  behiragana: 0x3079,\n  behmedialarabic: 0xFE92,\n  behmeeminitialarabic: 0xFC9F,\n  behmeemisolatedarabic: 0xFC08,\n  behnoonfinalarabic: 0xFC6D,\n  bekatakana: 0x30D9,\n  benarmenian: 0x0562,\n  bet: 0x05D1,\n  beta: 0x03B2,\n  betasymbolgreek: 0x03D0,\n  betdagesh: 0xFB31,\n  betdageshhebrew: 0xFB31,\n  bethebrew: 0x05D1,\n  betrafehebrew: 0xFB4C,\n  bhabengali: 0x09AD,\n  bhadeva: 0x092D,\n  bhagujarati: 0x0AAD,\n  bhagurmukhi: 0x0A2D,\n  bhook: 0x0253,\n  bihiragana: 0x3073,\n  bikatakana: 0x30D3,\n  bilabialclick: 0x0298,\n  bindigurmukhi: 0x0A02,\n  birusquare: 0x3331,\n  blackcircle: 0x25CF,\n  blackdiamond: 0x25C6,\n  blackdownpointingtriangle: 0x25BC,\n  blackleftpointingpointer: 0x25C4,\n  blackleftpointingtriangle: 0x25C0,\n  blacklenticularbracketleft: 0x3010,\n  blacklenticularbracketleftvertical: 0xFE3B,\n  blacklenticularbracketright: 0x3011,\n  blacklenticularbracketrightvertical: 0xFE3C,\n  blacklowerlefttriangle: 0x25E3,\n  blacklowerrighttriangle: 0x25E2,\n  blackrectangle: 0x25AC,\n  blackrightpointingpointer: 0x25BA,\n  blackrightpointingtriangle: 0x25B6,\n  blacksmallsquare: 0x25AA,\n  blacksmilingface: 0x263B,\n  blacksquare: 0x25A0,\n  blackstar: 0x2605,\n  blackupperlefttriangle: 0x25E4,\n  blackupperrighttriangle: 0x25E5,\n  blackuppointingsmalltriangle: 0x25B4,\n  blackuppointingtriangle: 0x25B2,\n  blank: 0x2423,\n  blinebelow: 0x1E07,\n  block: 0x2588,\n  bmonospace: 0xFF42,\n  bobaimaithai: 0x0E1A,\n  bohiragana: 0x307C,\n  bokatakana: 0x30DC,\n  bparen: 0x249D,\n  bqsquare: 0x33C3,\n  braceex: 0xF8F4,\n  braceleft: 0x007B,\n  braceleftbt: 0xF8F3,\n  braceleftmid: 0xF8F2,\n  braceleftmonospace: 0xFF5B,\n  braceleftsmall: 0xFE5B,\n  bracelefttp: 0xF8F1,\n  braceleftvertical: 0xFE37,\n  braceright: 0x007D,\n  bracerightbt: 0xF8FE,\n  bracerightmid: 0xF8FD,\n  bracerightmonospace: 0xFF5D,\n  bracerightsmall: 0xFE5C,\n  bracerighttp: 0xF8FC,\n  bracerightvertical: 0xFE38,\n  bracketleft: 0x005B,\n  bracketleftbt: 0xF8F0,\n  bracketleftex: 0xF8EF,\n  bracketleftmonospace: 0xFF3B,\n  bracketlefttp: 0xF8EE,\n  bracketright: 0x005D,\n  bracketrightbt: 0xF8FB,\n  bracketrightex: 0xF8FA,\n  bracketrightmonospace: 0xFF3D,\n  bracketrighttp: 0xF8F9,\n  breve: 0x02D8,\n  brevebelowcmb: 0x032E,\n  brevecmb: 0x0306,\n  breveinvertedbelowcmb: 0x032F,\n  breveinvertedcmb: 0x0311,\n  breveinverteddoublecmb: 0x0361,\n  bridgebelowcmb: 0x032A,\n  bridgeinvertedbelowcmb: 0x033A,\n  brokenbar: 0x00A6,\n  bstroke: 0x0180,\n  bsuperior: 0xF6EA,\n  btopbar: 0x0183,\n  buhiragana: 0x3076,\n  bukatakana: 0x30D6,\n  bullet: 0x2022,\n  bulletinverse: 0x25D8,\n  bulletoperator: 0x2219,\n  bullseye: 0x25CE,\n  c: 0x0063,\n  caarmenian: 0x056E,\n  cabengali: 0x099A,\n  cacute: 0x0107,\n  cadeva: 0x091A,\n  cagujarati: 0x0A9A,\n  cagurmukhi: 0x0A1A,\n  calsquare: 0x3388,\n  candrabindubengali: 0x0981,\n  candrabinducmb: 0x0310,\n  candrabindudeva: 0x0901,\n  candrabindugujarati: 0x0A81,\n  capslock: 0x21EA,\n  careof: 0x2105,\n  caron: 0x02C7,\n  caronbelowcmb: 0x032C,\n  caroncmb: 0x030C,\n  carriagereturn: 0x21B5,\n  cbopomofo: 0x3118,\n  ccaron: 0x010D,\n  ccedilla: 0x00E7,\n  ccedillaacute: 0x1E09,\n  ccircle: 0x24D2,\n  ccircumflex: 0x0109,\n  ccurl: 0x0255,\n  cdot: 0x010B,\n  cdotaccent: 0x010B,\n  cdsquare: 0x33C5,\n  cedilla: 0x00B8,\n  cedillacmb: 0x0327,\n  cent: 0x00A2,\n  centigrade: 0x2103,\n  centinferior: 0xF6DF,\n  centmonospace: 0xFFE0,\n  centoldstyle: 0xF7A2,\n  centsuperior: 0xF6E0,\n  chaarmenian: 0x0579,\n  chabengali: 0x099B,\n  chadeva: 0x091B,\n  chagujarati: 0x0A9B,\n  chagurmukhi: 0x0A1B,\n  chbopomofo: 0x3114,\n  cheabkhasiancyrillic: 0x04BD,\n  checkmark: 0x2713,\n  checyrillic: 0x0447,\n  chedescenderabkhasiancyrillic: 0x04BF,\n  chedescendercyrillic: 0x04B7,\n  chedieresiscyrillic: 0x04F5,\n  cheharmenian: 0x0573,\n  chekhakassiancyrillic: 0x04CC,\n  cheverticalstrokecyrillic: 0x04B9,\n  chi: 0x03C7,\n  chieuchacirclekorean: 0x3277,\n  chieuchaparenkorean: 0x3217,\n  chieuchcirclekorean: 0x3269,\n  chieuchkorean: 0x314A,\n  chieuchparenkorean: 0x3209,\n  chochangthai: 0x0E0A,\n  chochanthai: 0x0E08,\n  chochingthai: 0x0E09,\n  chochoethai: 0x0E0C,\n  chook: 0x0188,\n  cieucacirclekorean: 0x3276,\n  cieucaparenkorean: 0x3216,\n  cieuccirclekorean: 0x3268,\n  cieuckorean: 0x3148,\n  cieucparenkorean: 0x3208,\n  cieucuparenkorean: 0x321C,\n  circle: 0x25CB,\n  circlecopyrt: 0x00A9, // This glyph is missing from Adobe's original list.\n  circlemultiply: 0x2297,\n  circleot: 0x2299,\n  circleplus: 0x2295,\n  circlepostalmark: 0x3036,\n  circlewithlefthalfblack: 0x25D0,\n  circlewithrighthalfblack: 0x25D1,\n  circumflex: 0x02C6,\n  circumflexbelowcmb: 0x032D,\n  circumflexcmb: 0x0302,\n  clear: 0x2327,\n  clickalveolar: 0x01C2,\n  clickdental: 0x01C0,\n  clicklateral: 0x01C1,\n  clickretroflex: 0x01C3,\n  club: 0x2663,\n  clubsuitblack: 0x2663,\n  clubsuitwhite: 0x2667,\n  cmcubedsquare: 0x33A4,\n  cmonospace: 0xFF43,\n  cmsquaredsquare: 0x33A0,\n  coarmenian: 0x0581,\n  colon: 0x003A,\n  colonmonetary: 0x20A1,\n  colonmonospace: 0xFF1A,\n  colonsign: 0x20A1,\n  colonsmall: 0xFE55,\n  colontriangularhalfmod: 0x02D1,\n  colontriangularmod: 0x02D0,\n  comma: 0x002C,\n  commaabovecmb: 0x0313,\n  commaaboverightcmb: 0x0315,\n  commaaccent: 0xF6C3,\n  commaarabic: 0x060C,\n  commaarmenian: 0x055D,\n  commainferior: 0xF6E1,\n  commamonospace: 0xFF0C,\n  commareversedabovecmb: 0x0314,\n  commareversedmod: 0x02BD,\n  commasmall: 0xFE50,\n  commasuperior: 0xF6E2,\n  commaturnedabovecmb: 0x0312,\n  commaturnedmod: 0x02BB,\n  compass: 0x263C,\n  congruent: 0x2245,\n  contourintegral: 0x222E,\n  control: 0x2303,\n  controlACK: 0x0006,\n  controlBEL: 0x0007,\n  controlBS: 0x0008,\n  controlCAN: 0x0018,\n  controlCR: 0x000D,\n  controlDC1: 0x0011,\n  controlDC2: 0x0012,\n  controlDC3: 0x0013,\n  controlDC4: 0x0014,\n  controlDEL: 0x007F,\n  controlDLE: 0x0010,\n  controlEM: 0x0019,\n  controlENQ: 0x0005,\n  controlEOT: 0x0004,\n  controlESC: 0x001B,\n  controlETB: 0x0017,\n  controlETX: 0x0003,\n  controlFF: 0x000C,\n  controlFS: 0x001C,\n  controlGS: 0x001D,\n  controlHT: 0x0009,\n  controlLF: 0x000A,\n  controlNAK: 0x0015,\n  controlRS: 0x001E,\n  controlSI: 0x000F,\n  controlSO: 0x000E,\n  controlSOT: 0x0002,\n  controlSTX: 0x0001,\n  controlSUB: 0x001A,\n  controlSYN: 0x0016,\n  controlUS: 0x001F,\n  controlVT: 0x000B,\n  copyright: 0x00A9,\n  copyrightsans: 0xF8E9,\n  copyrightserif: 0xF6D9,\n  cornerbracketleft: 0x300C,\n  cornerbracketlefthalfwidth: 0xFF62,\n  cornerbracketleftvertical: 0xFE41,\n  cornerbracketright: 0x300D,\n  cornerbracketrighthalfwidth: 0xFF63,\n  cornerbracketrightvertical: 0xFE42,\n  corporationsquare: 0x337F,\n  cosquare: 0x33C7,\n  coverkgsquare: 0x33C6,\n  cparen: 0x249E,\n  cruzeiro: 0x20A2,\n  cstretched: 0x0297,\n  curlyand: 0x22CF,\n  curlyor: 0x22CE,\n  currency: 0x00A4,\n  cyrBreve: 0xF6D1,\n  cyrFlex: 0xF6D2,\n  cyrbreve: 0xF6D4,\n  cyrflex: 0xF6D5,\n  d: 0x0064,\n  daarmenian: 0x0564,\n  dabengali: 0x09A6,\n  dadarabic: 0x0636,\n  dadeva: 0x0926,\n  dadfinalarabic: 0xFEBE,\n  dadinitialarabic: 0xFEBF,\n  dadmedialarabic: 0xFEC0,\n  dagesh: 0x05BC,\n  dageshhebrew: 0x05BC,\n  dagger: 0x2020,\n  daggerdbl: 0x2021,\n  dagujarati: 0x0AA6,\n  dagurmukhi: 0x0A26,\n  dahiragana: 0x3060,\n  dakatakana: 0x30C0,\n  dalarabic: 0x062F,\n  dalet: 0x05D3,\n  daletdagesh: 0xFB33,\n  daletdageshhebrew: 0xFB33,\n  dalethebrew: 0x05D3,\n  dalfinalarabic: 0xFEAA,\n  dammaarabic: 0x064F,\n  dammalowarabic: 0x064F,\n  dammatanaltonearabic: 0x064C,\n  dammatanarabic: 0x064C,\n  danda: 0x0964,\n  dargahebrew: 0x05A7,\n  dargalefthebrew: 0x05A7,\n  dasiapneumatacyrilliccmb: 0x0485,\n  dblGrave: 0xF6D3,\n  dblanglebracketleft: 0x300A,\n  dblanglebracketleftvertical: 0xFE3D,\n  dblanglebracketright: 0x300B,\n  dblanglebracketrightvertical: 0xFE3E,\n  dblarchinvertedbelowcmb: 0x032B,\n  dblarrowleft: 0x21D4,\n  dblarrowright: 0x21D2,\n  dbldanda: 0x0965,\n  dblgrave: 0xF6D6,\n  dblgravecmb: 0x030F,\n  dblintegral: 0x222C,\n  dbllowline: 0x2017,\n  dbllowlinecmb: 0x0333,\n  dbloverlinecmb: 0x033F,\n  dblprimemod: 0x02BA,\n  dblverticalbar: 0x2016,\n  dblverticallineabovecmb: 0x030E,\n  dbopomofo: 0x3109,\n  dbsquare: 0x33C8,\n  dcaron: 0x010F,\n  dcedilla: 0x1E11,\n  dcircle: 0x24D3,\n  dcircumflexbelow: 0x1E13,\n  dcroat: 0x0111,\n  ddabengali: 0x09A1,\n  ddadeva: 0x0921,\n  ddagujarati: 0x0AA1,\n  ddagurmukhi: 0x0A21,\n  ddalarabic: 0x0688,\n  ddalfinalarabic: 0xFB89,\n  dddhadeva: 0x095C,\n  ddhabengali: 0x09A2,\n  ddhadeva: 0x0922,\n  ddhagujarati: 0x0AA2,\n  ddhagurmukhi: 0x0A22,\n  ddotaccent: 0x1E0B,\n  ddotbelow: 0x1E0D,\n  decimalseparatorarabic: 0x066B,\n  decimalseparatorpersian: 0x066B,\n  decyrillic: 0x0434,\n  degree: 0x00B0,\n  dehihebrew: 0x05AD,\n  dehiragana: 0x3067,\n  deicoptic: 0x03EF,\n  dekatakana: 0x30C7,\n  deleteleft: 0x232B,\n  deleteright: 0x2326,\n  delta: 0x03B4,\n  deltaturned: 0x018D,\n  denominatorminusonenumeratorbengali: 0x09F8,\n  dezh: 0x02A4,\n  dhabengali: 0x09A7,\n  dhadeva: 0x0927,\n  dhagujarati: 0x0AA7,\n  dhagurmukhi: 0x0A27,\n  dhook: 0x0257,\n  dialytikatonos: 0x0385,\n  dialytikatonoscmb: 0x0344,\n  diamond: 0x2666,\n  diamondsuitwhite: 0x2662,\n  dieresis: 0x00A8,\n  dieresisacute: 0xF6D7,\n  dieresisbelowcmb: 0x0324,\n  dieresiscmb: 0x0308,\n  dieresisgrave: 0xF6D8,\n  dieresistonos: 0x0385,\n  dihiragana: 0x3062,\n  dikatakana: 0x30C2,\n  dittomark: 0x3003,\n  divide: 0x00F7,\n  divides: 0x2223,\n  divisionslash: 0x2215,\n  djecyrillic: 0x0452,\n  dkshade: 0x2593,\n  dlinebelow: 0x1E0F,\n  dlsquare: 0x3397,\n  dmacron: 0x0111,\n  dmonospace: 0xFF44,\n  dnblock: 0x2584,\n  dochadathai: 0x0E0E,\n  dodekthai: 0x0E14,\n  dohiragana: 0x3069,\n  dokatakana: 0x30C9,\n  dollar: 0x0024,\n  dollarinferior: 0xF6E3,\n  dollarmonospace: 0xFF04,\n  dollaroldstyle: 0xF724,\n  dollarsmall: 0xFE69,\n  dollarsuperior: 0xF6E4,\n  dong: 0x20AB,\n  dorusquare: 0x3326,\n  dotaccent: 0x02D9,\n  dotaccentcmb: 0x0307,\n  dotbelowcmb: 0x0323,\n  dotbelowcomb: 0x0323,\n  dotkatakana: 0x30FB,\n  dotlessi: 0x0131,\n  dotlessj: 0xF6BE,\n  dotlessjstrokehook: 0x0284,\n  dotmath: 0x22C5,\n  dottedcircle: 0x25CC,\n  doubleyodpatah: 0xFB1F,\n  doubleyodpatahhebrew: 0xFB1F,\n  downtackbelowcmb: 0x031E,\n  downtackmod: 0x02D5,\n  dparen: 0x249F,\n  dsuperior: 0xF6EB,\n  dtail: 0x0256,\n  dtopbar: 0x018C,\n  duhiragana: 0x3065,\n  dukatakana: 0x30C5,\n  dz: 0x01F3,\n  dzaltone: 0x02A3,\n  dzcaron: 0x01C6,\n  dzcurl: 0x02A5,\n  dzeabkhasiancyrillic: 0x04E1,\n  dzecyrillic: 0x0455,\n  dzhecyrillic: 0x045F,\n  e: 0x0065,\n  eacute: 0x00E9,\n  earth: 0x2641,\n  ebengali: 0x098F,\n  ebopomofo: 0x311C,\n  ebreve: 0x0115,\n  ecandradeva: 0x090D,\n  ecandragujarati: 0x0A8D,\n  ecandravowelsigndeva: 0x0945,\n  ecandravowelsigngujarati: 0x0AC5,\n  ecaron: 0x011B,\n  ecedillabreve: 0x1E1D,\n  echarmenian: 0x0565,\n  echyiwnarmenian: 0x0587,\n  ecircle: 0x24D4,\n  ecircumflex: 0x00EA,\n  ecircumflexacute: 0x1EBF,\n  ecircumflexbelow: 0x1E19,\n  ecircumflexdotbelow: 0x1EC7,\n  ecircumflexgrave: 0x1EC1,\n  ecircumflexhookabove: 0x1EC3,\n  ecircumflextilde: 0x1EC5,\n  ecyrillic: 0x0454,\n  edblgrave: 0x0205,\n  edeva: 0x090F,\n  edieresis: 0x00EB,\n  edot: 0x0117,\n  edotaccent: 0x0117,\n  edotbelow: 0x1EB9,\n  eegurmukhi: 0x0A0F,\n  eematragurmukhi: 0x0A47,\n  efcyrillic: 0x0444,\n  egrave: 0x00E8,\n  egujarati: 0x0A8F,\n  eharmenian: 0x0567,\n  ehbopomofo: 0x311D,\n  ehiragana: 0x3048,\n  ehookabove: 0x1EBB,\n  eibopomofo: 0x311F,\n  eight: 0x0038,\n  eightarabic: 0x0668,\n  eightbengali: 0x09EE,\n  eightcircle: 0x2467,\n  eightcircleinversesansserif: 0x2791,\n  eightdeva: 0x096E,\n  eighteencircle: 0x2471,\n  eighteenparen: 0x2485,\n  eighteenperiod: 0x2499,\n  eightgujarati: 0x0AEE,\n  eightgurmukhi: 0x0A6E,\n  eighthackarabic: 0x0668,\n  eighthangzhou: 0x3028,\n  eighthnotebeamed: 0x266B,\n  eightideographicparen: 0x3227,\n  eightinferior: 0x2088,\n  eightmonospace: 0xFF18,\n  eightoldstyle: 0xF738,\n  eightparen: 0x247B,\n  eightperiod: 0x248F,\n  eightpersian: 0x06F8,\n  eightroman: 0x2177,\n  eightsuperior: 0x2078,\n  eightthai: 0x0E58,\n  einvertedbreve: 0x0207,\n  eiotifiedcyrillic: 0x0465,\n  ekatakana: 0x30A8,\n  ekatakanahalfwidth: 0xFF74,\n  ekonkargurmukhi: 0x0A74,\n  ekorean: 0x3154,\n  elcyrillic: 0x043B,\n  element: 0x2208,\n  elevencircle: 0x246A,\n  elevenparen: 0x247E,\n  elevenperiod: 0x2492,\n  elevenroman: 0x217A,\n  ellipsis: 0x2026,\n  ellipsisvertical: 0x22EE,\n  emacron: 0x0113,\n  emacronacute: 0x1E17,\n  emacrongrave: 0x1E15,\n  emcyrillic: 0x043C,\n  emdash: 0x2014,\n  emdashvertical: 0xFE31,\n  emonospace: 0xFF45,\n  emphasismarkarmenian: 0x055B,\n  emptyset: 0x2205,\n  enbopomofo: 0x3123,\n  encyrillic: 0x043D,\n  endash: 0x2013,\n  endashvertical: 0xFE32,\n  endescendercyrillic: 0x04A3,\n  eng: 0x014B,\n  engbopomofo: 0x3125,\n  enghecyrillic: 0x04A5,\n  enhookcyrillic: 0x04C8,\n  enspace: 0x2002,\n  eogonek: 0x0119,\n  eokorean: 0x3153,\n  eopen: 0x025B,\n  eopenclosed: 0x029A,\n  eopenreversed: 0x025C,\n  eopenreversedclosed: 0x025E,\n  eopenreversedhook: 0x025D,\n  eparen: 0x24A0,\n  epsilon: 0x03B5,\n  epsilontonos: 0x03AD,\n  equal: 0x003D,\n  equalmonospace: 0xFF1D,\n  equalsmall: 0xFE66,\n  equalsuperior: 0x207C,\n  equivalence: 0x2261,\n  erbopomofo: 0x3126,\n  ercyrillic: 0x0440,\n  ereversed: 0x0258,\n  ereversedcyrillic: 0x044D,\n  escyrillic: 0x0441,\n  esdescendercyrillic: 0x04AB,\n  esh: 0x0283,\n  eshcurl: 0x0286,\n  eshortdeva: 0x090E,\n  eshortvowelsigndeva: 0x0946,\n  eshreversedloop: 0x01AA,\n  eshsquatreversed: 0x0285,\n  esmallhiragana: 0x3047,\n  esmallkatakana: 0x30A7,\n  esmallkatakanahalfwidth: 0xFF6A,\n  estimated: 0x212E,\n  esuperior: 0xF6EC,\n  eta: 0x03B7,\n  etarmenian: 0x0568,\n  etatonos: 0x03AE,\n  eth: 0x00F0,\n  etilde: 0x1EBD,\n  etildebelow: 0x1E1B,\n  etnahtafoukhhebrew: 0x0591,\n  etnahtafoukhlefthebrew: 0x0591,\n  etnahtahebrew: 0x0591,\n  etnahtalefthebrew: 0x0591,\n  eturned: 0x01DD,\n  eukorean: 0x3161,\n  euro: 0x20AC,\n  evowelsignbengali: 0x09C7,\n  evowelsigndeva: 0x0947,\n  evowelsigngujarati: 0x0AC7,\n  exclam: 0x0021,\n  exclamarmenian: 0x055C,\n  exclamdbl: 0x203C,\n  exclamdown: 0x00A1,\n  exclamdownsmall: 0xF7A1,\n  exclammonospace: 0xFF01,\n  exclamsmall: 0xF721,\n  existential: 0x2203,\n  ezh: 0x0292,\n  ezhcaron: 0x01EF,\n  ezhcurl: 0x0293,\n  ezhreversed: 0x01B9,\n  ezhtail: 0x01BA,\n  f: 0x0066,\n  fadeva: 0x095E,\n  fagurmukhi: 0x0A5E,\n  fahrenheit: 0x2109,\n  fathaarabic: 0x064E,\n  fathalowarabic: 0x064E,\n  fathatanarabic: 0x064B,\n  fbopomofo: 0x3108,\n  fcircle: 0x24D5,\n  fdotaccent: 0x1E1F,\n  feharabic: 0x0641,\n  feharmenian: 0x0586,\n  fehfinalarabic: 0xFED2,\n  fehinitialarabic: 0xFED3,\n  fehmedialarabic: 0xFED4,\n  feicoptic: 0x03E5,\n  female: 0x2640,\n  ff: 0xFB00,\n  ffi: 0xFB03,\n  ffl: 0xFB04,\n  fi: 0xFB01,\n  fifteencircle: 0x246E,\n  fifteenparen: 0x2482,\n  fifteenperiod: 0x2496,\n  figuredash: 0x2012,\n  filledbox: 0x25A0,\n  filledrect: 0x25AC,\n  finalkaf: 0x05DA,\n  finalkafdagesh: 0xFB3A,\n  finalkafdageshhebrew: 0xFB3A,\n  finalkafhebrew: 0x05DA,\n  finalmem: 0x05DD,\n  finalmemhebrew: 0x05DD,\n  finalnun: 0x05DF,\n  finalnunhebrew: 0x05DF,\n  finalpe: 0x05E3,\n  finalpehebrew: 0x05E3,\n  finaltsadi: 0x05E5,\n  finaltsadihebrew: 0x05E5,\n  firsttonechinese: 0x02C9,\n  fisheye: 0x25C9,\n  fitacyrillic: 0x0473,\n  five: 0x0035,\n  fivearabic: 0x0665,\n  fivebengali: 0x09EB,\n  fivecircle: 0x2464,\n  fivecircleinversesansserif: 0x278E,\n  fivedeva: 0x096B,\n  fiveeighths: 0x215D,\n  fivegujarati: 0x0AEB,\n  fivegurmukhi: 0x0A6B,\n  fivehackarabic: 0x0665,\n  fivehangzhou: 0x3025,\n  fiveideographicparen: 0x3224,\n  fiveinferior: 0x2085,\n  fivemonospace: 0xFF15,\n  fiveoldstyle: 0xF735,\n  fiveparen: 0x2478,\n  fiveperiod: 0x248C,\n  fivepersian: 0x06F5,\n  fiveroman: 0x2174,\n  fivesuperior: 0x2075,\n  fivethai: 0x0E55,\n  fl: 0xFB02,\n  florin: 0x0192,\n  fmonospace: 0xFF46,\n  fmsquare: 0x3399,\n  fofanthai: 0x0E1F,\n  fofathai: 0x0E1D,\n  fongmanthai: 0x0E4F,\n  forall: 0x2200,\n  four: 0x0034,\n  fourarabic: 0x0664,\n  fourbengali: 0x09EA,\n  fourcircle: 0x2463,\n  fourcircleinversesansserif: 0x278D,\n  fourdeva: 0x096A,\n  fourgujarati: 0x0AEA,\n  fourgurmukhi: 0x0A6A,\n  fourhackarabic: 0x0664,\n  fourhangzhou: 0x3024,\n  fourideographicparen: 0x3223,\n  fourinferior: 0x2084,\n  fourmonospace: 0xFF14,\n  fournumeratorbengali: 0x09F7,\n  fouroldstyle: 0xF734,\n  fourparen: 0x2477,\n  fourperiod: 0x248B,\n  fourpersian: 0x06F4,\n  fourroman: 0x2173,\n  foursuperior: 0x2074,\n  fourteencircle: 0x246D,\n  fourteenparen: 0x2481,\n  fourteenperiod: 0x2495,\n  fourthai: 0x0E54,\n  fourthtonechinese: 0x02CB,\n  fparen: 0x24A1,\n  fraction: 0x2044,\n  franc: 0x20A3,\n  g: 0x0067,\n  gabengali: 0x0997,\n  gacute: 0x01F5,\n  gadeva: 0x0917,\n  gafarabic: 0x06AF,\n  gaffinalarabic: 0xFB93,\n  gafinitialarabic: 0xFB94,\n  gafmedialarabic: 0xFB95,\n  gagujarati: 0x0A97,\n  gagurmukhi: 0x0A17,\n  gahiragana: 0x304C,\n  gakatakana: 0x30AC,\n  gamma: 0x03B3,\n  gammalatinsmall: 0x0263,\n  gammasuperior: 0x02E0,\n  gangiacoptic: 0x03EB,\n  gbopomofo: 0x310D,\n  gbreve: 0x011F,\n  gcaron: 0x01E7,\n  gcedilla: 0x0123,\n  gcircle: 0x24D6,\n  gcircumflex: 0x011D,\n  gcommaaccent: 0x0123,\n  gdot: 0x0121,\n  gdotaccent: 0x0121,\n  gecyrillic: 0x0433,\n  gehiragana: 0x3052,\n  gekatakana: 0x30B2,\n  geometricallyequal: 0x2251,\n  gereshaccenthebrew: 0x059C,\n  gereshhebrew: 0x05F3,\n  gereshmuqdamhebrew: 0x059D,\n  germandbls: 0x00DF,\n  gershayimaccenthebrew: 0x059E,\n  gershayimhebrew: 0x05F4,\n  getamark: 0x3013,\n  ghabengali: 0x0998,\n  ghadarmenian: 0x0572,\n  ghadeva: 0x0918,\n  ghagujarati: 0x0A98,\n  ghagurmukhi: 0x0A18,\n  ghainarabic: 0x063A,\n  ghainfinalarabic: 0xFECE,\n  ghaininitialarabic: 0xFECF,\n  ghainmedialarabic: 0xFED0,\n  ghemiddlehookcyrillic: 0x0495,\n  ghestrokecyrillic: 0x0493,\n  gheupturncyrillic: 0x0491,\n  ghhadeva: 0x095A,\n  ghhagurmukhi: 0x0A5A,\n  ghook: 0x0260,\n  ghzsquare: 0x3393,\n  gihiragana: 0x304E,\n  gikatakana: 0x30AE,\n  gimarmenian: 0x0563,\n  gimel: 0x05D2,\n  gimeldagesh: 0xFB32,\n  gimeldageshhebrew: 0xFB32,\n  gimelhebrew: 0x05D2,\n  gjecyrillic: 0x0453,\n  glottalinvertedstroke: 0x01BE,\n  glottalstop: 0x0294,\n  glottalstopinverted: 0x0296,\n  glottalstopmod: 0x02C0,\n  glottalstopreversed: 0x0295,\n  glottalstopreversedmod: 0x02C1,\n  glottalstopreversedsuperior: 0x02E4,\n  glottalstopstroke: 0x02A1,\n  glottalstopstrokereversed: 0x02A2,\n  gmacron: 0x1E21,\n  gmonospace: 0xFF47,\n  gohiragana: 0x3054,\n  gokatakana: 0x30B4,\n  gparen: 0x24A2,\n  gpasquare: 0x33AC,\n  gradient: 0x2207,\n  grave: 0x0060,\n  gravebelowcmb: 0x0316,\n  gravecmb: 0x0300,\n  gravecomb: 0x0300,\n  gravedeva: 0x0953,\n  gravelowmod: 0x02CE,\n  gravemonospace: 0xFF40,\n  gravetonecmb: 0x0340,\n  greater: 0x003E,\n  greaterequal: 0x2265,\n  greaterequalorless: 0x22DB,\n  greatermonospace: 0xFF1E,\n  greaterorequivalent: 0x2273,\n  greaterorless: 0x2277,\n  greateroverequal: 0x2267,\n  greatersmall: 0xFE65,\n  gscript: 0x0261,\n  gstroke: 0x01E5,\n  guhiragana: 0x3050,\n  guillemotleft: 0x00AB,\n  guillemotright: 0x00BB,\n  guilsinglleft: 0x2039,\n  guilsinglright: 0x203A,\n  gukatakana: 0x30B0,\n  guramusquare: 0x3318,\n  gysquare: 0x33C9,\n  h: 0x0068,\n  haabkhasiancyrillic: 0x04A9,\n  haaltonearabic: 0x06C1,\n  habengali: 0x09B9,\n  hadescendercyrillic: 0x04B3,\n  hadeva: 0x0939,\n  hagujarati: 0x0AB9,\n  hagurmukhi: 0x0A39,\n  haharabic: 0x062D,\n  hahfinalarabic: 0xFEA2,\n  hahinitialarabic: 0xFEA3,\n  hahiragana: 0x306F,\n  hahmedialarabic: 0xFEA4,\n  haitusquare: 0x332A,\n  hakatakana: 0x30CF,\n  hakatakanahalfwidth: 0xFF8A,\n  halantgurmukhi: 0x0A4D,\n  hamzaarabic: 0x0621,\n  hamzalowarabic: 0x0621,\n  hangulfiller: 0x3164,\n  hardsigncyrillic: 0x044A,\n  harpoonleftbarbup: 0x21BC,\n  harpoonrightbarbup: 0x21C0,\n  hasquare: 0x33CA,\n  hatafpatah: 0x05B2,\n  hatafpatah16: 0x05B2,\n  hatafpatah23: 0x05B2,\n  hatafpatah2f: 0x05B2,\n  hatafpatahhebrew: 0x05B2,\n  hatafpatahnarrowhebrew: 0x05B2,\n  hatafpatahquarterhebrew: 0x05B2,\n  hatafpatahwidehebrew: 0x05B2,\n  hatafqamats: 0x05B3,\n  hatafqamats1b: 0x05B3,\n  hatafqamats28: 0x05B3,\n  hatafqamats34: 0x05B3,\n  hatafqamatshebrew: 0x05B3,\n  hatafqamatsnarrowhebrew: 0x05B3,\n  hatafqamatsquarterhebrew: 0x05B3,\n  hatafqamatswidehebrew: 0x05B3,\n  hatafsegol: 0x05B1,\n  hatafsegol17: 0x05B1,\n  hatafsegol24: 0x05B1,\n  hatafsegol30: 0x05B1,\n  hatafsegolhebrew: 0x05B1,\n  hatafsegolnarrowhebrew: 0x05B1,\n  hatafsegolquarterhebrew: 0x05B1,\n  hatafsegolwidehebrew: 0x05B1,\n  hbar: 0x0127,\n  hbopomofo: 0x310F,\n  hbrevebelow: 0x1E2B,\n  hcedilla: 0x1E29,\n  hcircle: 0x24D7,\n  hcircumflex: 0x0125,\n  hdieresis: 0x1E27,\n  hdotaccent: 0x1E23,\n  hdotbelow: 0x1E25,\n  he: 0x05D4,\n  heart: 0x2665,\n  heartsuitblack: 0x2665,\n  heartsuitwhite: 0x2661,\n  hedagesh: 0xFB34,\n  hedageshhebrew: 0xFB34,\n  hehaltonearabic: 0x06C1,\n  heharabic: 0x0647,\n  hehebrew: 0x05D4,\n  hehfinalaltonearabic: 0xFBA7,\n  hehfinalalttwoarabic: 0xFEEA,\n  hehfinalarabic: 0xFEEA,\n  hehhamzaabovefinalarabic: 0xFBA5,\n  hehhamzaaboveisolatedarabic: 0xFBA4,\n  hehinitialaltonearabic: 0xFBA8,\n  hehinitialarabic: 0xFEEB,\n  hehiragana: 0x3078,\n  hehmedialaltonearabic: 0xFBA9,\n  hehmedialarabic: 0xFEEC,\n  heiseierasquare: 0x337B,\n  hekatakana: 0x30D8,\n  hekatakanahalfwidth: 0xFF8D,\n  hekutaarusquare: 0x3336,\n  henghook: 0x0267,\n  herutusquare: 0x3339,\n  het: 0x05D7,\n  hethebrew: 0x05D7,\n  hhook: 0x0266,\n  hhooksuperior: 0x02B1,\n  hieuhacirclekorean: 0x327B,\n  hieuhaparenkorean: 0x321B,\n  hieuhcirclekorean: 0x326D,\n  hieuhkorean: 0x314E,\n  hieuhparenkorean: 0x320D,\n  hihiragana: 0x3072,\n  hikatakana: 0x30D2,\n  hikatakanahalfwidth: 0xFF8B,\n  hiriq: 0x05B4,\n  hiriq14: 0x05B4,\n  hiriq21: 0x05B4,\n  hiriq2d: 0x05B4,\n  hiriqhebrew: 0x05B4,\n  hiriqnarrowhebrew: 0x05B4,\n  hiriqquarterhebrew: 0x05B4,\n  hiriqwidehebrew: 0x05B4,\n  hlinebelow: 0x1E96,\n  hmonospace: 0xFF48,\n  hoarmenian: 0x0570,\n  hohipthai: 0x0E2B,\n  hohiragana: 0x307B,\n  hokatakana: 0x30DB,\n  hokatakanahalfwidth: 0xFF8E,\n  holam: 0x05B9,\n  holam19: 0x05B9,\n  holam26: 0x05B9,\n  holam32: 0x05B9,\n  holamhebrew: 0x05B9,\n  holamnarrowhebrew: 0x05B9,\n  holamquarterhebrew: 0x05B9,\n  holamwidehebrew: 0x05B9,\n  honokhukthai: 0x0E2E,\n  hookabovecomb: 0x0309,\n  hookcmb: 0x0309,\n  hookpalatalizedbelowcmb: 0x0321,\n  hookretroflexbelowcmb: 0x0322,\n  hoonsquare: 0x3342,\n  horicoptic: 0x03E9,\n  horizontalbar: 0x2015,\n  horncmb: 0x031B,\n  hotsprings: 0x2668,\n  house: 0x2302,\n  hparen: 0x24A3,\n  hsuperior: 0x02B0,\n  hturned: 0x0265,\n  huhiragana: 0x3075,\n  huiitosquare: 0x3333,\n  hukatakana: 0x30D5,\n  hukatakanahalfwidth: 0xFF8C,\n  hungarumlaut: 0x02DD,\n  hungarumlautcmb: 0x030B,\n  hv: 0x0195,\n  hyphen: 0x002D,\n  hypheninferior: 0xF6E5,\n  hyphenmonospace: 0xFF0D,\n  hyphensmall: 0xFE63,\n  hyphensuperior: 0xF6E6,\n  hyphentwo: 0x2010,\n  i: 0x0069,\n  iacute: 0x00ED,\n  iacyrillic: 0x044F,\n  ibengali: 0x0987,\n  ibopomofo: 0x3127,\n  ibreve: 0x012D,\n  icaron: 0x01D0,\n  icircle: 0x24D8,\n  icircumflex: 0x00EE,\n  icyrillic: 0x0456,\n  idblgrave: 0x0209,\n  ideographearthcircle: 0x328F,\n  ideographfirecircle: 0x328B,\n  ideographicallianceparen: 0x323F,\n  ideographiccallparen: 0x323A,\n  ideographiccentrecircle: 0x32A5,\n  ideographicclose: 0x3006,\n  ideographiccomma: 0x3001,\n  ideographiccommaleft: 0xFF64,\n  ideographiccongratulationparen: 0x3237,\n  ideographiccorrectcircle: 0x32A3,\n  ideographicearthparen: 0x322F,\n  ideographicenterpriseparen: 0x323D,\n  ideographicexcellentcircle: 0x329D,\n  ideographicfestivalparen: 0x3240,\n  ideographicfinancialcircle: 0x3296,\n  ideographicfinancialparen: 0x3236,\n  ideographicfireparen: 0x322B,\n  ideographichaveparen: 0x3232,\n  ideographichighcircle: 0x32A4,\n  ideographiciterationmark: 0x3005,\n  ideographiclaborcircle: 0x3298,\n  ideographiclaborparen: 0x3238,\n  ideographicleftcircle: 0x32A7,\n  ideographiclowcircle: 0x32A6,\n  ideographicmedicinecircle: 0x32A9,\n  ideographicmetalparen: 0x322E,\n  ideographicmoonparen: 0x322A,\n  ideographicnameparen: 0x3234,\n  ideographicperiod: 0x3002,\n  ideographicprintcircle: 0x329E,\n  ideographicreachparen: 0x3243,\n  ideographicrepresentparen: 0x3239,\n  ideographicresourceparen: 0x323E,\n  ideographicrightcircle: 0x32A8,\n  ideographicsecretcircle: 0x3299,\n  ideographicselfparen: 0x3242,\n  ideographicsocietyparen: 0x3233,\n  ideographicspace: 0x3000,\n  ideographicspecialparen: 0x3235,\n  ideographicstockparen: 0x3231,\n  ideographicstudyparen: 0x323B,\n  ideographicsunparen: 0x3230,\n  ideographicsuperviseparen: 0x323C,\n  ideographicwaterparen: 0x322C,\n  ideographicwoodparen: 0x322D,\n  ideographiczero: 0x3007,\n  ideographmetalcircle: 0x328E,\n  ideographmooncircle: 0x328A,\n  ideographnamecircle: 0x3294,\n  ideographsuncircle: 0x3290,\n  ideographwatercircle: 0x328C,\n  ideographwoodcircle: 0x328D,\n  ideva: 0x0907,\n  idieresis: 0x00EF,\n  idieresisacute: 0x1E2F,\n  idieresiscyrillic: 0x04E5,\n  idotbelow: 0x1ECB,\n  iebrevecyrillic: 0x04D7,\n  iecyrillic: 0x0435,\n  ieungacirclekorean: 0x3275,\n  ieungaparenkorean: 0x3215,\n  ieungcirclekorean: 0x3267,\n  ieungkorean: 0x3147,\n  ieungparenkorean: 0x3207,\n  igrave: 0x00EC,\n  igujarati: 0x0A87,\n  igurmukhi: 0x0A07,\n  ihiragana: 0x3044,\n  ihookabove: 0x1EC9,\n  iibengali: 0x0988,\n  iicyrillic: 0x0438,\n  iideva: 0x0908,\n  iigujarati: 0x0A88,\n  iigurmukhi: 0x0A08,\n  iimatragurmukhi: 0x0A40,\n  iinvertedbreve: 0x020B,\n  iishortcyrillic: 0x0439,\n  iivowelsignbengali: 0x09C0,\n  iivowelsigndeva: 0x0940,\n  iivowelsigngujarati: 0x0AC0,\n  ij: 0x0133,\n  ikatakana: 0x30A4,\n  ikatakanahalfwidth: 0xFF72,\n  ikorean: 0x3163,\n  ilde: 0x02DC,\n  iluyhebrew: 0x05AC,\n  imacron: 0x012B,\n  imacroncyrillic: 0x04E3,\n  imageorapproximatelyequal: 0x2253,\n  imatragurmukhi: 0x0A3F,\n  imonospace: 0xFF49,\n  increment: 0x2206,\n  infinity: 0x221E,\n  iniarmenian: 0x056B,\n  integral: 0x222B,\n  integralbottom: 0x2321,\n  integralbt: 0x2321,\n  integralex: 0xF8F5,\n  integraltop: 0x2320,\n  integraltp: 0x2320,\n  intersection: 0x2229,\n  intisquare: 0x3305,\n  invbullet: 0x25D8,\n  invcircle: 0x25D9,\n  invsmileface: 0x263B,\n  iocyrillic: 0x0451,\n  iogonek: 0x012F,\n  iota: 0x03B9,\n  iotadieresis: 0x03CA,\n  iotadieresistonos: 0x0390,\n  iotalatin: 0x0269,\n  iotatonos: 0x03AF,\n  iparen: 0x24A4,\n  irigurmukhi: 0x0A72,\n  ismallhiragana: 0x3043,\n  ismallkatakana: 0x30A3,\n  ismallkatakanahalfwidth: 0xFF68,\n  issharbengali: 0x09FA,\n  istroke: 0x0268,\n  isuperior: 0xF6ED,\n  iterationhiragana: 0x309D,\n  iterationkatakana: 0x30FD,\n  itilde: 0x0129,\n  itildebelow: 0x1E2D,\n  iubopomofo: 0x3129,\n  iucyrillic: 0x044E,\n  ivowelsignbengali: 0x09BF,\n  ivowelsigndeva: 0x093F,\n  ivowelsigngujarati: 0x0ABF,\n  izhitsacyrillic: 0x0475,\n  izhitsadblgravecyrillic: 0x0477,\n  j: 0x006A,\n  jaarmenian: 0x0571,\n  jabengali: 0x099C,\n  jadeva: 0x091C,\n  jagujarati: 0x0A9C,\n  jagurmukhi: 0x0A1C,\n  jbopomofo: 0x3110,\n  jcaron: 0x01F0,\n  jcircle: 0x24D9,\n  jcircumflex: 0x0135,\n  jcrossedtail: 0x029D,\n  jdotlessstroke: 0x025F,\n  jecyrillic: 0x0458,\n  jeemarabic: 0x062C,\n  jeemfinalarabic: 0xFE9E,\n  jeeminitialarabic: 0xFE9F,\n  jeemmedialarabic: 0xFEA0,\n  jeharabic: 0x0698,\n  jehfinalarabic: 0xFB8B,\n  jhabengali: 0x099D,\n  jhadeva: 0x091D,\n  jhagujarati: 0x0A9D,\n  jhagurmukhi: 0x0A1D,\n  jheharmenian: 0x057B,\n  jis: 0x3004,\n  jmonospace: 0xFF4A,\n  jparen: 0x24A5,\n  jsuperior: 0x02B2,\n  k: 0x006B,\n  kabashkircyrillic: 0x04A1,\n  kabengali: 0x0995,\n  kacute: 0x1E31,\n  kacyrillic: 0x043A,\n  kadescendercyrillic: 0x049B,\n  kadeva: 0x0915,\n  kaf: 0x05DB,\n  kafarabic: 0x0643,\n  kafdagesh: 0xFB3B,\n  kafdageshhebrew: 0xFB3B,\n  kaffinalarabic: 0xFEDA,\n  kafhebrew: 0x05DB,\n  kafinitialarabic: 0xFEDB,\n  kafmedialarabic: 0xFEDC,\n  kafrafehebrew: 0xFB4D,\n  kagujarati: 0x0A95,\n  kagurmukhi: 0x0A15,\n  kahiragana: 0x304B,\n  kahookcyrillic: 0x04C4,\n  kakatakana: 0x30AB,\n  kakatakanahalfwidth: 0xFF76,\n  kappa: 0x03BA,\n  kappasymbolgreek: 0x03F0,\n  kapyeounmieumkorean: 0x3171,\n  kapyeounphieuphkorean: 0x3184,\n  kapyeounpieupkorean: 0x3178,\n  kapyeounssangpieupkorean: 0x3179,\n  karoriisquare: 0x330D,\n  kashidaautoarabic: 0x0640,\n  kashidaautonosidebearingarabic: 0x0640,\n  kasmallkatakana: 0x30F5,\n  kasquare: 0x3384,\n  kasraarabic: 0x0650,\n  kasratanarabic: 0x064D,\n  kastrokecyrillic: 0x049F,\n  katahiraprolongmarkhalfwidth: 0xFF70,\n  kaverticalstrokecyrillic: 0x049D,\n  kbopomofo: 0x310E,\n  kcalsquare: 0x3389,\n  kcaron: 0x01E9,\n  kcedilla: 0x0137,\n  kcircle: 0x24DA,\n  kcommaaccent: 0x0137,\n  kdotbelow: 0x1E33,\n  keharmenian: 0x0584,\n  kehiragana: 0x3051,\n  kekatakana: 0x30B1,\n  kekatakanahalfwidth: 0xFF79,\n  kenarmenian: 0x056F,\n  kesmallkatakana: 0x30F6,\n  kgreenlandic: 0x0138,\n  khabengali: 0x0996,\n  khacyrillic: 0x0445,\n  khadeva: 0x0916,\n  khagujarati: 0x0A96,\n  khagurmukhi: 0x0A16,\n  khaharabic: 0x062E,\n  khahfinalarabic: 0xFEA6,\n  khahinitialarabic: 0xFEA7,\n  khahmedialarabic: 0xFEA8,\n  kheicoptic: 0x03E7,\n  khhadeva: 0x0959,\n  khhagurmukhi: 0x0A59,\n  khieukhacirclekorean: 0x3278,\n  khieukhaparenkorean: 0x3218,\n  khieukhcirclekorean: 0x326A,\n  khieukhkorean: 0x314B,\n  khieukhparenkorean: 0x320A,\n  khokhaithai: 0x0E02,\n  khokhonthai: 0x0E05,\n  khokhuatthai: 0x0E03,\n  khokhwaithai: 0x0E04,\n  khomutthai: 0x0E5B,\n  khook: 0x0199,\n  khorakhangthai: 0x0E06,\n  khzsquare: 0x3391,\n  kihiragana: 0x304D,\n  kikatakana: 0x30AD,\n  kikatakanahalfwidth: 0xFF77,\n  kiroguramusquare: 0x3315,\n  kiromeetorusquare: 0x3316,\n  kirosquare: 0x3314,\n  kiyeokacirclekorean: 0x326E,\n  kiyeokaparenkorean: 0x320E,\n  kiyeokcirclekorean: 0x3260,\n  kiyeokkorean: 0x3131,\n  kiyeokparenkorean: 0x3200,\n  kiyeoksioskorean: 0x3133,\n  kjecyrillic: 0x045C,\n  klinebelow: 0x1E35,\n  klsquare: 0x3398,\n  kmcubedsquare: 0x33A6,\n  kmonospace: 0xFF4B,\n  kmsquaredsquare: 0x33A2,\n  kohiragana: 0x3053,\n  kohmsquare: 0x33C0,\n  kokaithai: 0x0E01,\n  kokatakana: 0x30B3,\n  kokatakanahalfwidth: 0xFF7A,\n  kooposquare: 0x331E,\n  koppacyrillic: 0x0481,\n  koreanstandardsymbol: 0x327F,\n  koroniscmb: 0x0343,\n  kparen: 0x24A6,\n  kpasquare: 0x33AA,\n  ksicyrillic: 0x046F,\n  ktsquare: 0x33CF,\n  kturned: 0x029E,\n  kuhiragana: 0x304F,\n  kukatakana: 0x30AF,\n  kukatakanahalfwidth: 0xFF78,\n  kvsquare: 0x33B8,\n  kwsquare: 0x33BE,\n  l: 0x006C,\n  labengali: 0x09B2,\n  lacute: 0x013A,\n  ladeva: 0x0932,\n  lagujarati: 0x0AB2,\n  lagurmukhi: 0x0A32,\n  lakkhangyaothai: 0x0E45,\n  lamaleffinalarabic: 0xFEFC,\n  lamalefhamzaabovefinalarabic: 0xFEF8,\n  lamalefhamzaaboveisolatedarabic: 0xFEF7,\n  lamalefhamzabelowfinalarabic: 0xFEFA,\n  lamalefhamzabelowisolatedarabic: 0xFEF9,\n  lamalefisolatedarabic: 0xFEFB,\n  lamalefmaddaabovefinalarabic: 0xFEF6,\n  lamalefmaddaaboveisolatedarabic: 0xFEF5,\n  lamarabic: 0x0644,\n  lambda: 0x03BB,\n  lambdastroke: 0x019B,\n  lamed: 0x05DC,\n  lameddagesh: 0xFB3C,\n  lameddageshhebrew: 0xFB3C,\n  lamedhebrew: 0x05DC,\n  lamfinalarabic: 0xFEDE,\n  lamhahinitialarabic: 0xFCCA,\n  laminitialarabic: 0xFEDF,\n  lamjeeminitialarabic: 0xFCC9,\n  lamkhahinitialarabic: 0xFCCB,\n  lamlamhehisolatedarabic: 0xFDF2,\n  lammedialarabic: 0xFEE0,\n  lammeemhahinitialarabic: 0xFD88,\n  lammeeminitialarabic: 0xFCCC,\n  largecircle: 0x25EF,\n  lbar: 0x019A,\n  lbelt: 0x026C,\n  lbopomofo: 0x310C,\n  lcaron: 0x013E,\n  lcedilla: 0x013C,\n  lcircle: 0x24DB,\n  lcircumflexbelow: 0x1E3D,\n  lcommaaccent: 0x013C,\n  ldot: 0x0140,\n  ldotaccent: 0x0140,\n  ldotbelow: 0x1E37,\n  ldotbelowmacron: 0x1E39,\n  leftangleabovecmb: 0x031A,\n  lefttackbelowcmb: 0x0318,\n  less: 0x003C,\n  lessequal: 0x2264,\n  lessequalorgreater: 0x22DA,\n  lessmonospace: 0xFF1C,\n  lessorequivalent: 0x2272,\n  lessorgreater: 0x2276,\n  lessoverequal: 0x2266,\n  lesssmall: 0xFE64,\n  lezh: 0x026E,\n  lfblock: 0x258C,\n  lhookretroflex: 0x026D,\n  lira: 0x20A4,\n  liwnarmenian: 0x056C,\n  lj: 0x01C9,\n  ljecyrillic: 0x0459,\n  ll: 0xF6C0,\n  lladeva: 0x0933,\n  llagujarati: 0x0AB3,\n  llinebelow: 0x1E3B,\n  llladeva: 0x0934,\n  llvocalicbengali: 0x09E1,\n  llvocalicdeva: 0x0961,\n  llvocalicvowelsignbengali: 0x09E3,\n  llvocalicvowelsigndeva: 0x0963,\n  lmiddletilde: 0x026B,\n  lmonospace: 0xFF4C,\n  lmsquare: 0x33D0,\n  lochulathai: 0x0E2C,\n  logicaland: 0x2227,\n  logicalnot: 0x00AC,\n  logicalnotreversed: 0x2310,\n  logicalor: 0x2228,\n  lolingthai: 0x0E25,\n  longs: 0x017F,\n  lowlinecenterline: 0xFE4E,\n  lowlinecmb: 0x0332,\n  lowlinedashed: 0xFE4D,\n  lozenge: 0x25CA,\n  lparen: 0x24A7,\n  lslash: 0x0142,\n  lsquare: 0x2113,\n  lsuperior: 0xF6EE,\n  ltshade: 0x2591,\n  luthai: 0x0E26,\n  lvocalicbengali: 0x098C,\n  lvocalicdeva: 0x090C,\n  lvocalicvowelsignbengali: 0x09E2,\n  lvocalicvowelsigndeva: 0x0962,\n  lxsquare: 0x33D3,\n  m: 0x006D,\n  mabengali: 0x09AE,\n  macron: 0x00AF,\n  macronbelowcmb: 0x0331,\n  macroncmb: 0x0304,\n  macronlowmod: 0x02CD,\n  macronmonospace: 0xFFE3,\n  macute: 0x1E3F,\n  madeva: 0x092E,\n  magujarati: 0x0AAE,\n  magurmukhi: 0x0A2E,\n  mahapakhhebrew: 0x05A4,\n  mahapakhlefthebrew: 0x05A4,\n  mahiragana: 0x307E,\n  maichattawalowleftthai: 0xF895,\n  maichattawalowrightthai: 0xF894,\n  maichattawathai: 0x0E4B,\n  maichattawaupperleftthai: 0xF893,\n  maieklowleftthai: 0xF88C,\n  maieklowrightthai: 0xF88B,\n  maiekthai: 0x0E48,\n  maiekupperleftthai: 0xF88A,\n  maihanakatleftthai: 0xF884,\n  maihanakatthai: 0x0E31,\n  maitaikhuleftthai: 0xF889,\n  maitaikhuthai: 0x0E47,\n  maitholowleftthai: 0xF88F,\n  maitholowrightthai: 0xF88E,\n  maithothai: 0x0E49,\n  maithoupperleftthai: 0xF88D,\n  maitrilowleftthai: 0xF892,\n  maitrilowrightthai: 0xF891,\n  maitrithai: 0x0E4A,\n  maitriupperleftthai: 0xF890,\n  maiyamokthai: 0x0E46,\n  makatakana: 0x30DE,\n  makatakanahalfwidth: 0xFF8F,\n  male: 0x2642,\n  mansyonsquare: 0x3347,\n  maqafhebrew: 0x05BE,\n  mars: 0x2642,\n  masoracirclehebrew: 0x05AF,\n  masquare: 0x3383,\n  mbopomofo: 0x3107,\n  mbsquare: 0x33D4,\n  mcircle: 0x24DC,\n  mcubedsquare: 0x33A5,\n  mdotaccent: 0x1E41,\n  mdotbelow: 0x1E43,\n  meemarabic: 0x0645,\n  meemfinalarabic: 0xFEE2,\n  meeminitialarabic: 0xFEE3,\n  meemmedialarabic: 0xFEE4,\n  meemmeeminitialarabic: 0xFCD1,\n  meemmeemisolatedarabic: 0xFC48,\n  meetorusquare: 0x334D,\n  mehiragana: 0x3081,\n  meizierasquare: 0x337E,\n  mekatakana: 0x30E1,\n  mekatakanahalfwidth: 0xFF92,\n  mem: 0x05DE,\n  memdagesh: 0xFB3E,\n  memdageshhebrew: 0xFB3E,\n  memhebrew: 0x05DE,\n  menarmenian: 0x0574,\n  merkhahebrew: 0x05A5,\n  merkhakefulahebrew: 0x05A6,\n  merkhakefulalefthebrew: 0x05A6,\n  merkhalefthebrew: 0x05A5,\n  mhook: 0x0271,\n  mhzsquare: 0x3392,\n  middledotkatakanahalfwidth: 0xFF65,\n  middot: 0x00B7,\n  mieumacirclekorean: 0x3272,\n  mieumaparenkorean: 0x3212,\n  mieumcirclekorean: 0x3264,\n  mieumkorean: 0x3141,\n  mieumpansioskorean: 0x3170,\n  mieumparenkorean: 0x3204,\n  mieumpieupkorean: 0x316E,\n  mieumsioskorean: 0x316F,\n  mihiragana: 0x307F,\n  mikatakana: 0x30DF,\n  mikatakanahalfwidth: 0xFF90,\n  minus: 0x2212,\n  minusbelowcmb: 0x0320,\n  minuscircle: 0x2296,\n  minusmod: 0x02D7,\n  minusplus: 0x2213,\n  minute: 0x2032,\n  miribaarusquare: 0x334A,\n  mirisquare: 0x3349,\n  mlonglegturned: 0x0270,\n  mlsquare: 0x3396,\n  mmcubedsquare: 0x33A3,\n  mmonospace: 0xFF4D,\n  mmsquaredsquare: 0x339F,\n  mohiragana: 0x3082,\n  mohmsquare: 0x33C1,\n  mokatakana: 0x30E2,\n  mokatakanahalfwidth: 0xFF93,\n  molsquare: 0x33D6,\n  momathai: 0x0E21,\n  moverssquare: 0x33A7,\n  moverssquaredsquare: 0x33A8,\n  mparen: 0x24A8,\n  mpasquare: 0x33AB,\n  mssquare: 0x33B3,\n  msuperior: 0xF6EF,\n  mturned: 0x026F,\n  mu: 0x00B5,\n  mu1: 0x00B5,\n  muasquare: 0x3382,\n  muchgreater: 0x226B,\n  muchless: 0x226A,\n  mufsquare: 0x338C,\n  mugreek: 0x03BC,\n  mugsquare: 0x338D,\n  muhiragana: 0x3080,\n  mukatakana: 0x30E0,\n  mukatakanahalfwidth: 0xFF91,\n  mulsquare: 0x3395,\n  multiply: 0x00D7,\n  mumsquare: 0x339B,\n  munahhebrew: 0x05A3,\n  munahlefthebrew: 0x05A3,\n  musicalnote: 0x266A,\n  musicalnotedbl: 0x266B,\n  musicflatsign: 0x266D,\n  musicsharpsign: 0x266F,\n  mussquare: 0x33B2,\n  muvsquare: 0x33B6,\n  muwsquare: 0x33BC,\n  mvmegasquare: 0x33B9,\n  mvsquare: 0x33B7,\n  mwmegasquare: 0x33BF,\n  mwsquare: 0x33BD,\n  n: 0x006E,\n  nabengali: 0x09A8,\n  nabla: 0x2207,\n  nacute: 0x0144,\n  nadeva: 0x0928,\n  nagujarati: 0x0AA8,\n  nagurmukhi: 0x0A28,\n  nahiragana: 0x306A,\n  nakatakana: 0x30CA,\n  nakatakanahalfwidth: 0xFF85,\n  napostrophe: 0x0149,\n  nasquare: 0x3381,\n  nbopomofo: 0x310B,\n  nbspace: 0x00A0,\n  ncaron: 0x0148,\n  ncedilla: 0x0146,\n  ncircle: 0x24DD,\n  ncircumflexbelow: 0x1E4B,\n  ncommaaccent: 0x0146,\n  ndotaccent: 0x1E45,\n  ndotbelow: 0x1E47,\n  nehiragana: 0x306D,\n  nekatakana: 0x30CD,\n  nekatakanahalfwidth: 0xFF88,\n  newsheqelsign: 0x20AA,\n  nfsquare: 0x338B,\n  ngabengali: 0x0999,\n  ngadeva: 0x0919,\n  ngagujarati: 0x0A99,\n  ngagurmukhi: 0x0A19,\n  ngonguthai: 0x0E07,\n  nhiragana: 0x3093,\n  nhookleft: 0x0272,\n  nhookretroflex: 0x0273,\n  nieunacirclekorean: 0x326F,\n  nieunaparenkorean: 0x320F,\n  nieuncieuckorean: 0x3135,\n  nieuncirclekorean: 0x3261,\n  nieunhieuhkorean: 0x3136,\n  nieunkorean: 0x3134,\n  nieunpansioskorean: 0x3168,\n  nieunparenkorean: 0x3201,\n  nieunsioskorean: 0x3167,\n  nieuntikeutkorean: 0x3166,\n  nihiragana: 0x306B,\n  nikatakana: 0x30CB,\n  nikatakanahalfwidth: 0xFF86,\n  nikhahitleftthai: 0xF899,\n  nikhahitthai: 0x0E4D,\n  nine: 0x0039,\n  ninearabic: 0x0669,\n  ninebengali: 0x09EF,\n  ninecircle: 0x2468,\n  ninecircleinversesansserif: 0x2792,\n  ninedeva: 0x096F,\n  ninegujarati: 0x0AEF,\n  ninegurmukhi: 0x0A6F,\n  ninehackarabic: 0x0669,\n  ninehangzhou: 0x3029,\n  nineideographicparen: 0x3228,\n  nineinferior: 0x2089,\n  ninemonospace: 0xFF19,\n  nineoldstyle: 0xF739,\n  nineparen: 0x247C,\n  nineperiod: 0x2490,\n  ninepersian: 0x06F9,\n  nineroman: 0x2178,\n  ninesuperior: 0x2079,\n  nineteencircle: 0x2472,\n  nineteenparen: 0x2486,\n  nineteenperiod: 0x249A,\n  ninethai: 0x0E59,\n  nj: 0x01CC,\n  njecyrillic: 0x045A,\n  nkatakana: 0x30F3,\n  nkatakanahalfwidth: 0xFF9D,\n  nlegrightlong: 0x019E,\n  nlinebelow: 0x1E49,\n  nmonospace: 0xFF4E,\n  nmsquare: 0x339A,\n  nnabengali: 0x09A3,\n  nnadeva: 0x0923,\n  nnagujarati: 0x0AA3,\n  nnagurmukhi: 0x0A23,\n  nnnadeva: 0x0929,\n  nohiragana: 0x306E,\n  nokatakana: 0x30CE,\n  nokatakanahalfwidth: 0xFF89,\n  nonbreakingspace: 0x00A0,\n  nonenthai: 0x0E13,\n  nonuthai: 0x0E19,\n  noonarabic: 0x0646,\n  noonfinalarabic: 0xFEE6,\n  noonghunnaarabic: 0x06BA,\n  noonghunnafinalarabic: 0xFB9F,\n  nooninitialarabic: 0xFEE7,\n  noonjeeminitialarabic: 0xFCD2,\n  noonjeemisolatedarabic: 0xFC4B,\n  noonmedialarabic: 0xFEE8,\n  noonmeeminitialarabic: 0xFCD5,\n  noonmeemisolatedarabic: 0xFC4E,\n  noonnoonfinalarabic: 0xFC8D,\n  notcontains: 0x220C,\n  notelement: 0x2209,\n  notelementof: 0x2209,\n  notequal: 0x2260,\n  notgreater: 0x226F,\n  notgreaternorequal: 0x2271,\n  notgreaternorless: 0x2279,\n  notidentical: 0x2262,\n  notless: 0x226E,\n  notlessnorequal: 0x2270,\n  notparallel: 0x2226,\n  notprecedes: 0x2280,\n  notsubset: 0x2284,\n  notsucceeds: 0x2281,\n  notsuperset: 0x2285,\n  nowarmenian: 0x0576,\n  nparen: 0x24A9,\n  nssquare: 0x33B1,\n  nsuperior: 0x207F,\n  ntilde: 0x00F1,\n  nu: 0x03BD,\n  nuhiragana: 0x306C,\n  nukatakana: 0x30CC,\n  nukatakanahalfwidth: 0xFF87,\n  nuktabengali: 0x09BC,\n  nuktadeva: 0x093C,\n  nuktagujarati: 0x0ABC,\n  nuktagurmukhi: 0x0A3C,\n  numbersign: 0x0023,\n  numbersignmonospace: 0xFF03,\n  numbersignsmall: 0xFE5F,\n  numeralsigngreek: 0x0374,\n  numeralsignlowergreek: 0x0375,\n  numero: 0x2116,\n  nun: 0x05E0,\n  nundagesh: 0xFB40,\n  nundageshhebrew: 0xFB40,\n  nunhebrew: 0x05E0,\n  nvsquare: 0x33B5,\n  nwsquare: 0x33BB,\n  nyabengali: 0x099E,\n  nyadeva: 0x091E,\n  nyagujarati: 0x0A9E,\n  nyagurmukhi: 0x0A1E,\n  o: 0x006F,\n  oacute: 0x00F3,\n  oangthai: 0x0E2D,\n  obarred: 0x0275,\n  obarredcyrillic: 0x04E9,\n  obarreddieresiscyrillic: 0x04EB,\n  obengali: 0x0993,\n  obopomofo: 0x311B,\n  obreve: 0x014F,\n  ocandradeva: 0x0911,\n  ocandragujarati: 0x0A91,\n  ocandravowelsigndeva: 0x0949,\n  ocandravowelsigngujarati: 0x0AC9,\n  ocaron: 0x01D2,\n  ocircle: 0x24DE,\n  ocircumflex: 0x00F4,\n  ocircumflexacute: 0x1ED1,\n  ocircumflexdotbelow: 0x1ED9,\n  ocircumflexgrave: 0x1ED3,\n  ocircumflexhookabove: 0x1ED5,\n  ocircumflextilde: 0x1ED7,\n  ocyrillic: 0x043E,\n  odblacute: 0x0151,\n  odblgrave: 0x020D,\n  odeva: 0x0913,\n  odieresis: 0x00F6,\n  odieresiscyrillic: 0x04E7,\n  odotbelow: 0x1ECD,\n  oe: 0x0153,\n  oekorean: 0x315A,\n  ogonek: 0x02DB,\n  ogonekcmb: 0x0328,\n  ograve: 0x00F2,\n  ogujarati: 0x0A93,\n  oharmenian: 0x0585,\n  ohiragana: 0x304A,\n  ohookabove: 0x1ECF,\n  ohorn: 0x01A1,\n  ohornacute: 0x1EDB,\n  ohorndotbelow: 0x1EE3,\n  ohorngrave: 0x1EDD,\n  ohornhookabove: 0x1EDF,\n  ohorntilde: 0x1EE1,\n  ohungarumlaut: 0x0151,\n  oi: 0x01A3,\n  oinvertedbreve: 0x020F,\n  okatakana: 0x30AA,\n  okatakanahalfwidth: 0xFF75,\n  okorean: 0x3157,\n  olehebrew: 0x05AB,\n  omacron: 0x014D,\n  omacronacute: 0x1E53,\n  omacrongrave: 0x1E51,\n  omdeva: 0x0950,\n  omega: 0x03C9,\n  omega1: 0x03D6,\n  omegacyrillic: 0x0461,\n  omegalatinclosed: 0x0277,\n  omegaroundcyrillic: 0x047B,\n  omegatitlocyrillic: 0x047D,\n  omegatonos: 0x03CE,\n  omgujarati: 0x0AD0,\n  omicron: 0x03BF,\n  omicrontonos: 0x03CC,\n  omonospace: 0xFF4F,\n  one: 0x0031,\n  onearabic: 0x0661,\n  onebengali: 0x09E7,\n  onecircle: 0x2460,\n  onecircleinversesansserif: 0x278A,\n  onedeva: 0x0967,\n  onedotenleader: 0x2024,\n  oneeighth: 0x215B,\n  onefitted: 0xF6DC,\n  onegujarati: 0x0AE7,\n  onegurmukhi: 0x0A67,\n  onehackarabic: 0x0661,\n  onehalf: 0x00BD,\n  onehangzhou: 0x3021,\n  oneideographicparen: 0x3220,\n  oneinferior: 0x2081,\n  onemonospace: 0xFF11,\n  onenumeratorbengali: 0x09F4,\n  oneoldstyle: 0xF731,\n  oneparen: 0x2474,\n  oneperiod: 0x2488,\n  onepersian: 0x06F1,\n  onequarter: 0x00BC,\n  oneroman: 0x2170,\n  onesuperior: 0x00B9,\n  onethai: 0x0E51,\n  onethird: 0x2153,\n  oogonek: 0x01EB,\n  oogonekmacron: 0x01ED,\n  oogurmukhi: 0x0A13,\n  oomatragurmukhi: 0x0A4B,\n  oopen: 0x0254,\n  oparen: 0x24AA,\n  openbullet: 0x25E6,\n  option: 0x2325,\n  ordfeminine: 0x00AA,\n  ordmasculine: 0x00BA,\n  orthogonal: 0x221F,\n  oshortdeva: 0x0912,\n  oshortvowelsigndeva: 0x094A,\n  oslash: 0x00F8,\n  oslashacute: 0x01FF,\n  osmallhiragana: 0x3049,\n  osmallkatakana: 0x30A9,\n  osmallkatakanahalfwidth: 0xFF6B,\n  ostrokeacute: 0x01FF,\n  osuperior: 0xF6F0,\n  otcyrillic: 0x047F,\n  otilde: 0x00F5,\n  otildeacute: 0x1E4D,\n  otildedieresis: 0x1E4F,\n  oubopomofo: 0x3121,\n  overline: 0x203E,\n  overlinecenterline: 0xFE4A,\n  overlinecmb: 0x0305,\n  overlinedashed: 0xFE49,\n  overlinedblwavy: 0xFE4C,\n  overlinewavy: 0xFE4B,\n  overscore: 0x00AF,\n  ovowelsignbengali: 0x09CB,\n  ovowelsigndeva: 0x094B,\n  ovowelsigngujarati: 0x0ACB,\n  p: 0x0070,\n  paampssquare: 0x3380,\n  paasentosquare: 0x332B,\n  pabengali: 0x09AA,\n  pacute: 0x1E55,\n  padeva: 0x092A,\n  pagedown: 0x21DF,\n  pageup: 0x21DE,\n  pagujarati: 0x0AAA,\n  pagurmukhi: 0x0A2A,\n  pahiragana: 0x3071,\n  paiyannoithai: 0x0E2F,\n  pakatakana: 0x30D1,\n  palatalizationcyrilliccmb: 0x0484,\n  palochkacyrillic: 0x04C0,\n  pansioskorean: 0x317F,\n  paragraph: 0x00B6,\n  parallel: 0x2225,\n  parenleft: 0x0028,\n  parenleftaltonearabic: 0xFD3E,\n  parenleftbt: 0xF8ED,\n  parenleftex: 0xF8EC,\n  parenleftinferior: 0x208D,\n  parenleftmonospace: 0xFF08,\n  parenleftsmall: 0xFE59,\n  parenleftsuperior: 0x207D,\n  parenlefttp: 0xF8EB,\n  parenleftvertical: 0xFE35,\n  parenright: 0x0029,\n  parenrightaltonearabic: 0xFD3F,\n  parenrightbt: 0xF8F8,\n  parenrightex: 0xF8F7,\n  parenrightinferior: 0x208E,\n  parenrightmonospace: 0xFF09,\n  parenrightsmall: 0xFE5A,\n  parenrightsuperior: 0x207E,\n  parenrighttp: 0xF8F6,\n  parenrightvertical: 0xFE36,\n  partialdiff: 0x2202,\n  paseqhebrew: 0x05C0,\n  pashtahebrew: 0x0599,\n  pasquare: 0x33A9,\n  patah: 0x05B7,\n  patah11: 0x05B7,\n  patah1d: 0x05B7,\n  patah2a: 0x05B7,\n  patahhebrew: 0x05B7,\n  patahnarrowhebrew: 0x05B7,\n  patahquarterhebrew: 0x05B7,\n  patahwidehebrew: 0x05B7,\n  pazerhebrew: 0x05A1,\n  pbopomofo: 0x3106,\n  pcircle: 0x24DF,\n  pdotaccent: 0x1E57,\n  pe: 0x05E4,\n  pecyrillic: 0x043F,\n  pedagesh: 0xFB44,\n  pedageshhebrew: 0xFB44,\n  peezisquare: 0x333B,\n  pefinaldageshhebrew: 0xFB43,\n  peharabic: 0x067E,\n  peharmenian: 0x057A,\n  pehebrew: 0x05E4,\n  pehfinalarabic: 0xFB57,\n  pehinitialarabic: 0xFB58,\n  pehiragana: 0x307A,\n  pehmedialarabic: 0xFB59,\n  pekatakana: 0x30DA,\n  pemiddlehookcyrillic: 0x04A7,\n  perafehebrew: 0xFB4E,\n  percent: 0x0025,\n  percentarabic: 0x066A,\n  percentmonospace: 0xFF05,\n  percentsmall: 0xFE6A,\n  period: 0x002E,\n  periodarmenian: 0x0589,\n  periodcentered: 0x00B7,\n  periodhalfwidth: 0xFF61,\n  periodinferior: 0xF6E7,\n  periodmonospace: 0xFF0E,\n  periodsmall: 0xFE52,\n  periodsuperior: 0xF6E8,\n  perispomenigreekcmb: 0x0342,\n  perpendicular: 0x22A5,\n  perthousand: 0x2030,\n  peseta: 0x20A7,\n  pfsquare: 0x338A,\n  phabengali: 0x09AB,\n  phadeva: 0x092B,\n  phagujarati: 0x0AAB,\n  phagurmukhi: 0x0A2B,\n  phi: 0x03C6,\n  phi1: 0x03D5,\n  phieuphacirclekorean: 0x327A,\n  phieuphaparenkorean: 0x321A,\n  phieuphcirclekorean: 0x326C,\n  phieuphkorean: 0x314D,\n  phieuphparenkorean: 0x320C,\n  philatin: 0x0278,\n  phinthuthai: 0x0E3A,\n  phisymbolgreek: 0x03D5,\n  phook: 0x01A5,\n  phophanthai: 0x0E1E,\n  phophungthai: 0x0E1C,\n  phosamphaothai: 0x0E20,\n  pi: 0x03C0,\n  pieupacirclekorean: 0x3273,\n  pieupaparenkorean: 0x3213,\n  pieupcieuckorean: 0x3176,\n  pieupcirclekorean: 0x3265,\n  pieupkiyeokkorean: 0x3172,\n  pieupkorean: 0x3142,\n  pieupparenkorean: 0x3205,\n  pieupsioskiyeokkorean: 0x3174,\n  pieupsioskorean: 0x3144,\n  pieupsiostikeutkorean: 0x3175,\n  pieupthieuthkorean: 0x3177,\n  pieuptikeutkorean: 0x3173,\n  pihiragana: 0x3074,\n  pikatakana: 0x30D4,\n  pisymbolgreek: 0x03D6,\n  piwrarmenian: 0x0583,\n  plus: 0x002B,\n  plusbelowcmb: 0x031F,\n  pluscircle: 0x2295,\n  plusminus: 0x00B1,\n  plusmod: 0x02D6,\n  plusmonospace: 0xFF0B,\n  plussmall: 0xFE62,\n  plussuperior: 0x207A,\n  pmonospace: 0xFF50,\n  pmsquare: 0x33D8,\n  pohiragana: 0x307D,\n  pointingindexdownwhite: 0x261F,\n  pointingindexleftwhite: 0x261C,\n  pointingindexrightwhite: 0x261E,\n  pointingindexupwhite: 0x261D,\n  pokatakana: 0x30DD,\n  poplathai: 0x0E1B,\n  postalmark: 0x3012,\n  postalmarkface: 0x3020,\n  pparen: 0x24AB,\n  precedes: 0x227A,\n  prescription: 0x211E,\n  primemod: 0x02B9,\n  primereversed: 0x2035,\n  product: 0x220F,\n  projective: 0x2305,\n  prolongedkana: 0x30FC,\n  propellor: 0x2318,\n  propersubset: 0x2282,\n  propersuperset: 0x2283,\n  proportion: 0x2237,\n  proportional: 0x221D,\n  psi: 0x03C8,\n  psicyrillic: 0x0471,\n  psilipneumatacyrilliccmb: 0x0486,\n  pssquare: 0x33B0,\n  puhiragana: 0x3077,\n  pukatakana: 0x30D7,\n  pvsquare: 0x33B4,\n  pwsquare: 0x33BA,\n  q: 0x0071,\n  qadeva: 0x0958,\n  qadmahebrew: 0x05A8,\n  qafarabic: 0x0642,\n  qaffinalarabic: 0xFED6,\n  qafinitialarabic: 0xFED7,\n  qafmedialarabic: 0xFED8,\n  qamats: 0x05B8,\n  qamats10: 0x05B8,\n  qamats1a: 0x05B8,\n  qamats1c: 0x05B8,\n  qamats27: 0x05B8,\n  qamats29: 0x05B8,\n  qamats33: 0x05B8,\n  qamatsde: 0x05B8,\n  qamatshebrew: 0x05B8,\n  qamatsnarrowhebrew: 0x05B8,\n  qamatsqatanhebrew: 0x05B8,\n  qamatsqatannarrowhebrew: 0x05B8,\n  qamatsqatanquarterhebrew: 0x05B8,\n  qamatsqatanwidehebrew: 0x05B8,\n  qamatsquarterhebrew: 0x05B8,\n  qamatswidehebrew: 0x05B8,\n  qarneyparahebrew: 0x059F,\n  qbopomofo: 0x3111,\n  qcircle: 0x24E0,\n  qhook: 0x02A0,\n  qmonospace: 0xFF51,\n  qof: 0x05E7,\n  qofdagesh: 0xFB47,\n  qofdageshhebrew: 0xFB47,\n  qofhebrew: 0x05E7,\n  qparen: 0x24AC,\n  quarternote: 0x2669,\n  qubuts: 0x05BB,\n  qubuts18: 0x05BB,\n  qubuts25: 0x05BB,\n  qubuts31: 0x05BB,\n  qubutshebrew: 0x05BB,\n  qubutsnarrowhebrew: 0x05BB,\n  qubutsquarterhebrew: 0x05BB,\n  qubutswidehebrew: 0x05BB,\n  question: 0x003F,\n  questionarabic: 0x061F,\n  questionarmenian: 0x055E,\n  questiondown: 0x00BF,\n  questiondownsmall: 0xF7BF,\n  questiongreek: 0x037E,\n  questionmonospace: 0xFF1F,\n  questionsmall: 0xF73F,\n  quotedbl: 0x0022,\n  quotedblbase: 0x201E,\n  quotedblleft: 0x201C,\n  quotedblmonospace: 0xFF02,\n  quotedblprime: 0x301E,\n  quotedblprimereversed: 0x301D,\n  quotedblright: 0x201D,\n  quoteleft: 0x2018,\n  quoteleftreversed: 0x201B,\n  quotereversed: 0x201B,\n  quoteright: 0x2019,\n  quoterightn: 0x0149,\n  quotesinglbase: 0x201A,\n  quotesingle: 0x0027,\n  quotesinglemonospace: 0xFF07,\n  r: 0x0072,\n  raarmenian: 0x057C,\n  rabengali: 0x09B0,\n  racute: 0x0155,\n  radeva: 0x0930,\n  radical: 0x221A,\n  radicalex: 0xF8E5,\n  radoverssquare: 0x33AE,\n  radoverssquaredsquare: 0x33AF,\n  radsquare: 0x33AD,\n  rafe: 0x05BF,\n  rafehebrew: 0x05BF,\n  ragujarati: 0x0AB0,\n  ragurmukhi: 0x0A30,\n  rahiragana: 0x3089,\n  rakatakana: 0x30E9,\n  rakatakanahalfwidth: 0xFF97,\n  ralowerdiagonalbengali: 0x09F1,\n  ramiddlediagonalbengali: 0x09F0,\n  ramshorn: 0x0264,\n  ratio: 0x2236,\n  rbopomofo: 0x3116,\n  rcaron: 0x0159,\n  rcedilla: 0x0157,\n  rcircle: 0x24E1,\n  rcommaaccent: 0x0157,\n  rdblgrave: 0x0211,\n  rdotaccent: 0x1E59,\n  rdotbelow: 0x1E5B,\n  rdotbelowmacron: 0x1E5D,\n  referencemark: 0x203B,\n  reflexsubset: 0x2286,\n  reflexsuperset: 0x2287,\n  registered: 0x00AE,\n  registersans: 0xF8E8,\n  registerserif: 0xF6DA,\n  reharabic: 0x0631,\n  reharmenian: 0x0580,\n  rehfinalarabic: 0xFEAE,\n  rehiragana: 0x308C,\n  rekatakana: 0x30EC,\n  rekatakanahalfwidth: 0xFF9A,\n  resh: 0x05E8,\n  reshdageshhebrew: 0xFB48,\n  reshhebrew: 0x05E8,\n  reversedtilde: 0x223D,\n  reviahebrew: 0x0597,\n  reviamugrashhebrew: 0x0597,\n  revlogicalnot: 0x2310,\n  rfishhook: 0x027E,\n  rfishhookreversed: 0x027F,\n  rhabengali: 0x09DD,\n  rhadeva: 0x095D,\n  rho: 0x03C1,\n  rhook: 0x027D,\n  rhookturned: 0x027B,\n  rhookturnedsuperior: 0x02B5,\n  rhosymbolgreek: 0x03F1,\n  rhotichookmod: 0x02DE,\n  rieulacirclekorean: 0x3271,\n  rieulaparenkorean: 0x3211,\n  rieulcirclekorean: 0x3263,\n  rieulhieuhkorean: 0x3140,\n  rieulkiyeokkorean: 0x313A,\n  rieulkiyeoksioskorean: 0x3169,\n  rieulkorean: 0x3139,\n  rieulmieumkorean: 0x313B,\n  rieulpansioskorean: 0x316C,\n  rieulparenkorean: 0x3203,\n  rieulphieuphkorean: 0x313F,\n  rieulpieupkorean: 0x313C,\n  rieulpieupsioskorean: 0x316B,\n  rieulsioskorean: 0x313D,\n  rieulthieuthkorean: 0x313E,\n  rieultikeutkorean: 0x316A,\n  rieulyeorinhieuhkorean: 0x316D,\n  rightangle: 0x221F,\n  righttackbelowcmb: 0x0319,\n  righttriangle: 0x22BF,\n  rihiragana: 0x308A,\n  rikatakana: 0x30EA,\n  rikatakanahalfwidth: 0xFF98,\n  ring: 0x02DA,\n  ringbelowcmb: 0x0325,\n  ringcmb: 0x030A,\n  ringhalfleft: 0x02BF,\n  ringhalfleftarmenian: 0x0559,\n  ringhalfleftbelowcmb: 0x031C,\n  ringhalfleftcentered: 0x02D3,\n  ringhalfright: 0x02BE,\n  ringhalfrightbelowcmb: 0x0339,\n  ringhalfrightcentered: 0x02D2,\n  rinvertedbreve: 0x0213,\n  rittorusquare: 0x3351,\n  rlinebelow: 0x1E5F,\n  rlongleg: 0x027C,\n  rlonglegturned: 0x027A,\n  rmonospace: 0xFF52,\n  rohiragana: 0x308D,\n  rokatakana: 0x30ED,\n  rokatakanahalfwidth: 0xFF9B,\n  roruathai: 0x0E23,\n  rparen: 0x24AD,\n  rrabengali: 0x09DC,\n  rradeva: 0x0931,\n  rragurmukhi: 0x0A5C,\n  rreharabic: 0x0691,\n  rrehfinalarabic: 0xFB8D,\n  rrvocalicbengali: 0x09E0,\n  rrvocalicdeva: 0x0960,\n  rrvocalicgujarati: 0x0AE0,\n  rrvocalicvowelsignbengali: 0x09C4,\n  rrvocalicvowelsigndeva: 0x0944,\n  rrvocalicvowelsigngujarati: 0x0AC4,\n  rsuperior: 0xF6F1,\n  rtblock: 0x2590,\n  rturned: 0x0279,\n  rturnedsuperior: 0x02B4,\n  ruhiragana: 0x308B,\n  rukatakana: 0x30EB,\n  rukatakanahalfwidth: 0xFF99,\n  rupeemarkbengali: 0x09F2,\n  rupeesignbengali: 0x09F3,\n  rupiah: 0xF6DD,\n  ruthai: 0x0E24,\n  rvocalicbengali: 0x098B,\n  rvocalicdeva: 0x090B,\n  rvocalicgujarati: 0x0A8B,\n  rvocalicvowelsignbengali: 0x09C3,\n  rvocalicvowelsigndeva: 0x0943,\n  rvocalicvowelsigngujarati: 0x0AC3,\n  s: 0x0073,\n  sabengali: 0x09B8,\n  sacute: 0x015B,\n  sacutedotaccent: 0x1E65,\n  sadarabic: 0x0635,\n  sadeva: 0x0938,\n  sadfinalarabic: 0xFEBA,\n  sadinitialarabic: 0xFEBB,\n  sadmedialarabic: 0xFEBC,\n  sagujarati: 0x0AB8,\n  sagurmukhi: 0x0A38,\n  sahiragana: 0x3055,\n  sakatakana: 0x30B5,\n  sakatakanahalfwidth: 0xFF7B,\n  sallallahoualayhewasallamarabic: 0xFDFA,\n  samekh: 0x05E1,\n  samekhdagesh: 0xFB41,\n  samekhdageshhebrew: 0xFB41,\n  samekhhebrew: 0x05E1,\n  saraaathai: 0x0E32,\n  saraaethai: 0x0E41,\n  saraaimaimalaithai: 0x0E44,\n  saraaimaimuanthai: 0x0E43,\n  saraamthai: 0x0E33,\n  saraathai: 0x0E30,\n  saraethai: 0x0E40,\n  saraiileftthai: 0xF886,\n  saraiithai: 0x0E35,\n  saraileftthai: 0xF885,\n  saraithai: 0x0E34,\n  saraothai: 0x0E42,\n  saraueeleftthai: 0xF888,\n  saraueethai: 0x0E37,\n  saraueleftthai: 0xF887,\n  sarauethai: 0x0E36,\n  sarauthai: 0x0E38,\n  sarauuthai: 0x0E39,\n  sbopomofo: 0x3119,\n  scaron: 0x0161,\n  scarondotaccent: 0x1E67,\n  scedilla: 0x015F,\n  schwa: 0x0259,\n  schwacyrillic: 0x04D9,\n  schwadieresiscyrillic: 0x04DB,\n  schwahook: 0x025A,\n  scircle: 0x24E2,\n  scircumflex: 0x015D,\n  scommaaccent: 0x0219,\n  sdotaccent: 0x1E61,\n  sdotbelow: 0x1E63,\n  sdotbelowdotaccent: 0x1E69,\n  seagullbelowcmb: 0x033C,\n  second: 0x2033,\n  secondtonechinese: 0x02CA,\n  section: 0x00A7,\n  seenarabic: 0x0633,\n  seenfinalarabic: 0xFEB2,\n  seeninitialarabic: 0xFEB3,\n  seenmedialarabic: 0xFEB4,\n  segol: 0x05B6,\n  segol13: 0x05B6,\n  segol1f: 0x05B6,\n  segol2c: 0x05B6,\n  segolhebrew: 0x05B6,\n  segolnarrowhebrew: 0x05B6,\n  segolquarterhebrew: 0x05B6,\n  segoltahebrew: 0x0592,\n  segolwidehebrew: 0x05B6,\n  seharmenian: 0x057D,\n  sehiragana: 0x305B,\n  sekatakana: 0x30BB,\n  sekatakanahalfwidth: 0xFF7E,\n  semicolon: 0x003B,\n  semicolonarabic: 0x061B,\n  semicolonmonospace: 0xFF1B,\n  semicolonsmall: 0xFE54,\n  semivoicedmarkkana: 0x309C,\n  semivoicedmarkkanahalfwidth: 0xFF9F,\n  sentisquare: 0x3322,\n  sentosquare: 0x3323,\n  seven: 0x0037,\n  sevenarabic: 0x0667,\n  sevenbengali: 0x09ED,\n  sevencircle: 0x2466,\n  sevencircleinversesansserif: 0x2790,\n  sevendeva: 0x096D,\n  seveneighths: 0x215E,\n  sevengujarati: 0x0AED,\n  sevengurmukhi: 0x0A6D,\n  sevenhackarabic: 0x0667,\n  sevenhangzhou: 0x3027,\n  sevenideographicparen: 0x3226,\n  seveninferior: 0x2087,\n  sevenmonospace: 0xFF17,\n  sevenoldstyle: 0xF737,\n  sevenparen: 0x247A,\n  sevenperiod: 0x248E,\n  sevenpersian: 0x06F7,\n  sevenroman: 0x2176,\n  sevensuperior: 0x2077,\n  seventeencircle: 0x2470,\n  seventeenparen: 0x2484,\n  seventeenperiod: 0x2498,\n  seventhai: 0x0E57,\n  sfthyphen: 0x00AD,\n  shaarmenian: 0x0577,\n  shabengali: 0x09B6,\n  shacyrillic: 0x0448,\n  shaddaarabic: 0x0651,\n  shaddadammaarabic: 0xFC61,\n  shaddadammatanarabic: 0xFC5E,\n  shaddafathaarabic: 0xFC60,\n  shaddakasraarabic: 0xFC62,\n  shaddakasratanarabic: 0xFC5F,\n  shade: 0x2592,\n  shadedark: 0x2593,\n  shadelight: 0x2591,\n  shademedium: 0x2592,\n  shadeva: 0x0936,\n  shagujarati: 0x0AB6,\n  shagurmukhi: 0x0A36,\n  shalshelethebrew: 0x0593,\n  shbopomofo: 0x3115,\n  shchacyrillic: 0x0449,\n  sheenarabic: 0x0634,\n  sheenfinalarabic: 0xFEB6,\n  sheeninitialarabic: 0xFEB7,\n  sheenmedialarabic: 0xFEB8,\n  sheicoptic: 0x03E3,\n  sheqel: 0x20AA,\n  sheqelhebrew: 0x20AA,\n  sheva: 0x05B0,\n  sheva115: 0x05B0,\n  sheva15: 0x05B0,\n  sheva22: 0x05B0,\n  sheva2e: 0x05B0,\n  shevahebrew: 0x05B0,\n  shevanarrowhebrew: 0x05B0,\n  shevaquarterhebrew: 0x05B0,\n  shevawidehebrew: 0x05B0,\n  shhacyrillic: 0x04BB,\n  shimacoptic: 0x03ED,\n  shin: 0x05E9,\n  shindagesh: 0xFB49,\n  shindageshhebrew: 0xFB49,\n  shindageshshindot: 0xFB2C,\n  shindageshshindothebrew: 0xFB2C,\n  shindageshsindot: 0xFB2D,\n  shindageshsindothebrew: 0xFB2D,\n  shindothebrew: 0x05C1,\n  shinhebrew: 0x05E9,\n  shinshindot: 0xFB2A,\n  shinshindothebrew: 0xFB2A,\n  shinsindot: 0xFB2B,\n  shinsindothebrew: 0xFB2B,\n  shook: 0x0282,\n  sigma: 0x03C3,\n  sigma1: 0x03C2,\n  sigmafinal: 0x03C2,\n  sigmalunatesymbolgreek: 0x03F2,\n  sihiragana: 0x3057,\n  sikatakana: 0x30B7,\n  sikatakanahalfwidth: 0xFF7C,\n  siluqhebrew: 0x05BD,\n  siluqlefthebrew: 0x05BD,\n  similar: 0x223C,\n  sindothebrew: 0x05C2,\n  siosacirclekorean: 0x3274,\n  siosaparenkorean: 0x3214,\n  sioscieuckorean: 0x317E,\n  sioscirclekorean: 0x3266,\n  sioskiyeokkorean: 0x317A,\n  sioskorean: 0x3145,\n  siosnieunkorean: 0x317B,\n  siosparenkorean: 0x3206,\n  siospieupkorean: 0x317D,\n  siostikeutkorean: 0x317C,\n  six: 0x0036,\n  sixarabic: 0x0666,\n  sixbengali: 0x09EC,\n  sixcircle: 0x2465,\n  sixcircleinversesansserif: 0x278F,\n  sixdeva: 0x096C,\n  sixgujarati: 0x0AEC,\n  sixgurmukhi: 0x0A6C,\n  sixhackarabic: 0x0666,\n  sixhangzhou: 0x3026,\n  sixideographicparen: 0x3225,\n  sixinferior: 0x2086,\n  sixmonospace: 0xFF16,\n  sixoldstyle: 0xF736,\n  sixparen: 0x2479,\n  sixperiod: 0x248D,\n  sixpersian: 0x06F6,\n  sixroman: 0x2175,\n  sixsuperior: 0x2076,\n  sixteencircle: 0x246F,\n  sixteencurrencydenominatorbengali: 0x09F9,\n  sixteenparen: 0x2483,\n  sixteenperiod: 0x2497,\n  sixthai: 0x0E56,\n  slash: 0x002F,\n  slashmonospace: 0xFF0F,\n  slong: 0x017F,\n  slongdotaccent: 0x1E9B,\n  smileface: 0x263A,\n  smonospace: 0xFF53,\n  sofpasuqhebrew: 0x05C3,\n  softhyphen: 0x00AD,\n  softsigncyrillic: 0x044C,\n  sohiragana: 0x305D,\n  sokatakana: 0x30BD,\n  sokatakanahalfwidth: 0xFF7F,\n  soliduslongoverlaycmb: 0x0338,\n  solidusshortoverlaycmb: 0x0337,\n  sorusithai: 0x0E29,\n  sosalathai: 0x0E28,\n  sosothai: 0x0E0B,\n  sosuathai: 0x0E2A,\n  space: 0x0020,\n  spacehackarabic: 0x0020,\n  spade: 0x2660,\n  spadesuitblack: 0x2660,\n  spadesuitwhite: 0x2664,\n  sparen: 0x24AE,\n  squarebelowcmb: 0x033B,\n  squarecc: 0x33C4,\n  squarecm: 0x339D,\n  squarediagonalcrosshatchfill: 0x25A9,\n  squarehorizontalfill: 0x25A4,\n  squarekg: 0x338F,\n  squarekm: 0x339E,\n  squarekmcapital: 0x33CE,\n  squareln: 0x33D1,\n  squarelog: 0x33D2,\n  squaremg: 0x338E,\n  squaremil: 0x33D5,\n  squaremm: 0x339C,\n  squaremsquared: 0x33A1,\n  squareorthogonalcrosshatchfill: 0x25A6,\n  squareupperlefttolowerrightfill: 0x25A7,\n  squareupperrighttolowerleftfill: 0x25A8,\n  squareverticalfill: 0x25A5,\n  squarewhitewithsmallblack: 0x25A3,\n  srsquare: 0x33DB,\n  ssabengali: 0x09B7,\n  ssadeva: 0x0937,\n  ssagujarati: 0x0AB7,\n  ssangcieuckorean: 0x3149,\n  ssanghieuhkorean: 0x3185,\n  ssangieungkorean: 0x3180,\n  ssangkiyeokkorean: 0x3132,\n  ssangnieunkorean: 0x3165,\n  ssangpieupkorean: 0x3143,\n  ssangsioskorean: 0x3146,\n  ssangtikeutkorean: 0x3138,\n  ssuperior: 0xF6F2,\n  sterling: 0x00A3,\n  sterlingmonospace: 0xFFE1,\n  strokelongoverlaycmb: 0x0336,\n  strokeshortoverlaycmb: 0x0335,\n  subset: 0x2282,\n  subsetnotequal: 0x228A,\n  subsetorequal: 0x2286,\n  succeeds: 0x227B,\n  suchthat: 0x220B,\n  suhiragana: 0x3059,\n  sukatakana: 0x30B9,\n  sukatakanahalfwidth: 0xFF7D,\n  sukunarabic: 0x0652,\n  summation: 0x2211,\n  sun: 0x263C,\n  superset: 0x2283,\n  supersetnotequal: 0x228B,\n  supersetorequal: 0x2287,\n  svsquare: 0x33DC,\n  syouwaerasquare: 0x337C,\n  t: 0x0074,\n  tabengali: 0x09A4,\n  tackdown: 0x22A4,\n  tackleft: 0x22A3,\n  tadeva: 0x0924,\n  tagujarati: 0x0AA4,\n  tagurmukhi: 0x0A24,\n  taharabic: 0x0637,\n  tahfinalarabic: 0xFEC2,\n  tahinitialarabic: 0xFEC3,\n  tahiragana: 0x305F,\n  tahmedialarabic: 0xFEC4,\n  taisyouerasquare: 0x337D,\n  takatakana: 0x30BF,\n  takatakanahalfwidth: 0xFF80,\n  tatweelarabic: 0x0640,\n  tau: 0x03C4,\n  tav: 0x05EA,\n  tavdages: 0xFB4A,\n  tavdagesh: 0xFB4A,\n  tavdageshhebrew: 0xFB4A,\n  tavhebrew: 0x05EA,\n  tbar: 0x0167,\n  tbopomofo: 0x310A,\n  tcaron: 0x0165,\n  tccurl: 0x02A8,\n  tcedilla: 0x0163,\n  tcheharabic: 0x0686,\n  tchehfinalarabic: 0xFB7B,\n  tchehinitialarabic: 0xFB7C,\n  tchehmedialarabic: 0xFB7D,\n  tcircle: 0x24E3,\n  tcircumflexbelow: 0x1E71,\n  tcommaaccent: 0x0163,\n  tdieresis: 0x1E97,\n  tdotaccent: 0x1E6B,\n  tdotbelow: 0x1E6D,\n  tecyrillic: 0x0442,\n  tedescendercyrillic: 0x04AD,\n  teharabic: 0x062A,\n  tehfinalarabic: 0xFE96,\n  tehhahinitialarabic: 0xFCA2,\n  tehhahisolatedarabic: 0xFC0C,\n  tehinitialarabic: 0xFE97,\n  tehiragana: 0x3066,\n  tehjeeminitialarabic: 0xFCA1,\n  tehjeemisolatedarabic: 0xFC0B,\n  tehmarbutaarabic: 0x0629,\n  tehmarbutafinalarabic: 0xFE94,\n  tehmedialarabic: 0xFE98,\n  tehmeeminitialarabic: 0xFCA4,\n  tehmeemisolatedarabic: 0xFC0E,\n  tehnoonfinalarabic: 0xFC73,\n  tekatakana: 0x30C6,\n  tekatakanahalfwidth: 0xFF83,\n  telephone: 0x2121,\n  telephoneblack: 0x260E,\n  telishagedolahebrew: 0x05A0,\n  telishaqetanahebrew: 0x05A9,\n  tencircle: 0x2469,\n  tenideographicparen: 0x3229,\n  tenparen: 0x247D,\n  tenperiod: 0x2491,\n  tenroman: 0x2179,\n  tesh: 0x02A7,\n  tet: 0x05D8,\n  tetdagesh: 0xFB38,\n  tetdageshhebrew: 0xFB38,\n  tethebrew: 0x05D8,\n  tetsecyrillic: 0x04B5,\n  tevirhebrew: 0x059B,\n  tevirlefthebrew: 0x059B,\n  thabengali: 0x09A5,\n  thadeva: 0x0925,\n  thagujarati: 0x0AA5,\n  thagurmukhi: 0x0A25,\n  thalarabic: 0x0630,\n  thalfinalarabic: 0xFEAC,\n  thanthakhatlowleftthai: 0xF898,\n  thanthakhatlowrightthai: 0xF897,\n  thanthakhatthai: 0x0E4C,\n  thanthakhatupperleftthai: 0xF896,\n  theharabic: 0x062B,\n  thehfinalarabic: 0xFE9A,\n  thehinitialarabic: 0xFE9B,\n  thehmedialarabic: 0xFE9C,\n  thereexists: 0x2203,\n  therefore: 0x2234,\n  theta: 0x03B8,\n  theta1: 0x03D1,\n  thetasymbolgreek: 0x03D1,\n  thieuthacirclekorean: 0x3279,\n  thieuthaparenkorean: 0x3219,\n  thieuthcirclekorean: 0x326B,\n  thieuthkorean: 0x314C,\n  thieuthparenkorean: 0x320B,\n  thirteencircle: 0x246C,\n  thirteenparen: 0x2480,\n  thirteenperiod: 0x2494,\n  thonangmonthothai: 0x0E11,\n  thook: 0x01AD,\n  thophuthaothai: 0x0E12,\n  thorn: 0x00FE,\n  thothahanthai: 0x0E17,\n  thothanthai: 0x0E10,\n  thothongthai: 0x0E18,\n  thothungthai: 0x0E16,\n  thousandcyrillic: 0x0482,\n  thousandsseparatorarabic: 0x066C,\n  thousandsseparatorpersian: 0x066C,\n  three: 0x0033,\n  threearabic: 0x0663,\n  threebengali: 0x09E9,\n  threecircle: 0x2462,\n  threecircleinversesansserif: 0x278C,\n  threedeva: 0x0969,\n  threeeighths: 0x215C,\n  threegujarati: 0x0AE9,\n  threegurmukhi: 0x0A69,\n  threehackarabic: 0x0663,\n  threehangzhou: 0x3023,\n  threeideographicparen: 0x3222,\n  threeinferior: 0x2083,\n  threemonospace: 0xFF13,\n  threenumeratorbengali: 0x09F6,\n  threeoldstyle: 0xF733,\n  threeparen: 0x2476,\n  threeperiod: 0x248A,\n  threepersian: 0x06F3,\n  threequarters: 0x00BE,\n  threequartersemdash: 0xF6DE,\n  threeroman: 0x2172,\n  threesuperior: 0x00B3,\n  threethai: 0x0E53,\n  thzsquare: 0x3394,\n  tihiragana: 0x3061,\n  tikatakana: 0x30C1,\n  tikatakanahalfwidth: 0xFF81,\n  tikeutacirclekorean: 0x3270,\n  tikeutaparenkorean: 0x3210,\n  tikeutcirclekorean: 0x3262,\n  tikeutkorean: 0x3137,\n  tikeutparenkorean: 0x3202,\n  tilde: 0x02DC,\n  tildebelowcmb: 0x0330,\n  tildecmb: 0x0303,\n  tildecomb: 0x0303,\n  tildedoublecmb: 0x0360,\n  tildeoperator: 0x223C,\n  tildeoverlaycmb: 0x0334,\n  tildeverticalcmb: 0x033E,\n  timescircle: 0x2297,\n  tipehahebrew: 0x0596,\n  tipehalefthebrew: 0x0596,\n  tippigurmukhi: 0x0A70,\n  titlocyrilliccmb: 0x0483,\n  tiwnarmenian: 0x057F,\n  tlinebelow: 0x1E6F,\n  tmonospace: 0xFF54,\n  toarmenian: 0x0569,\n  tohiragana: 0x3068,\n  tokatakana: 0x30C8,\n  tokatakanahalfwidth: 0xFF84,\n  tonebarextrahighmod: 0x02E5,\n  tonebarextralowmod: 0x02E9,\n  tonebarhighmod: 0x02E6,\n  tonebarlowmod: 0x02E8,\n  tonebarmidmod: 0x02E7,\n  tonefive: 0x01BD,\n  tonesix: 0x0185,\n  tonetwo: 0x01A8,\n  tonos: 0x0384,\n  tonsquare: 0x3327,\n  topatakthai: 0x0E0F,\n  tortoiseshellbracketleft: 0x3014,\n  tortoiseshellbracketleftsmall: 0xFE5D,\n  tortoiseshellbracketleftvertical: 0xFE39,\n  tortoiseshellbracketright: 0x3015,\n  tortoiseshellbracketrightsmall: 0xFE5E,\n  tortoiseshellbracketrightvertical: 0xFE3A,\n  totaothai: 0x0E15,\n  tpalatalhook: 0x01AB,\n  tparen: 0x24AF,\n  trademark: 0x2122,\n  trademarksans: 0xF8EA,\n  trademarkserif: 0xF6DB,\n  tretroflexhook: 0x0288,\n  triagdn: 0x25BC,\n  triaglf: 0x25C4,\n  triagrt: 0x25BA,\n  triagup: 0x25B2,\n  ts: 0x02A6,\n  tsadi: 0x05E6,\n  tsadidagesh: 0xFB46,\n  tsadidageshhebrew: 0xFB46,\n  tsadihebrew: 0x05E6,\n  tsecyrillic: 0x0446,\n  tsere: 0x05B5,\n  tsere12: 0x05B5,\n  tsere1e: 0x05B5,\n  tsere2b: 0x05B5,\n  tserehebrew: 0x05B5,\n  tserenarrowhebrew: 0x05B5,\n  tserequarterhebrew: 0x05B5,\n  tserewidehebrew: 0x05B5,\n  tshecyrillic: 0x045B,\n  tsuperior: 0xF6F3,\n  ttabengali: 0x099F,\n  ttadeva: 0x091F,\n  ttagujarati: 0x0A9F,\n  ttagurmukhi: 0x0A1F,\n  tteharabic: 0x0679,\n  ttehfinalarabic: 0xFB67,\n  ttehinitialarabic: 0xFB68,\n  ttehmedialarabic: 0xFB69,\n  tthabengali: 0x09A0,\n  tthadeva: 0x0920,\n  tthagujarati: 0x0AA0,\n  tthagurmukhi: 0x0A20,\n  tturned: 0x0287,\n  tuhiragana: 0x3064,\n  tukatakana: 0x30C4,\n  tukatakanahalfwidth: 0xFF82,\n  tusmallhiragana: 0x3063,\n  tusmallkatakana: 0x30C3,\n  tusmallkatakanahalfwidth: 0xFF6F,\n  twelvecircle: 0x246B,\n  twelveparen: 0x247F,\n  twelveperiod: 0x2493,\n  twelveroman: 0x217B,\n  twentycircle: 0x2473,\n  twentyhangzhou: 0x5344,\n  twentyparen: 0x2487,\n  twentyperiod: 0x249B,\n  two: 0x0032,\n  twoarabic: 0x0662,\n  twobengali: 0x09E8,\n  twocircle: 0x2461,\n  twocircleinversesansserif: 0x278B,\n  twodeva: 0x0968,\n  twodotenleader: 0x2025,\n  twodotleader: 0x2025,\n  twodotleadervertical: 0xFE30,\n  twogujarati: 0x0AE8,\n  twogurmukhi: 0x0A68,\n  twohackarabic: 0x0662,\n  twohangzhou: 0x3022,\n  twoideographicparen: 0x3221,\n  twoinferior: 0x2082,\n  twomonospace: 0xFF12,\n  twonumeratorbengali: 0x09F5,\n  twooldstyle: 0xF732,\n  twoparen: 0x2475,\n  twoperiod: 0x2489,\n  twopersian: 0x06F2,\n  tworoman: 0x2171,\n  twostroke: 0x01BB,\n  twosuperior: 0x00B2,\n  twothai: 0x0E52,\n  twothirds: 0x2154,\n  u: 0x0075,\n  uacute: 0x00FA,\n  ubar: 0x0289,\n  ubengali: 0x0989,\n  ubopomofo: 0x3128,\n  ubreve: 0x016D,\n  ucaron: 0x01D4,\n  ucircle: 0x24E4,\n  ucircumflex: 0x00FB,\n  ucircumflexbelow: 0x1E77,\n  ucyrillic: 0x0443,\n  udattadeva: 0x0951,\n  udblacute: 0x0171,\n  udblgrave: 0x0215,\n  udeva: 0x0909,\n  udieresis: 0x00FC,\n  udieresisacute: 0x01D8,\n  udieresisbelow: 0x1E73,\n  udieresiscaron: 0x01DA,\n  udieresiscyrillic: 0x04F1,\n  udieresisgrave: 0x01DC,\n  udieresismacron: 0x01D6,\n  udotbelow: 0x1EE5,\n  ugrave: 0x00F9,\n  ugujarati: 0x0A89,\n  ugurmukhi: 0x0A09,\n  uhiragana: 0x3046,\n  uhookabove: 0x1EE7,\n  uhorn: 0x01B0,\n  uhornacute: 0x1EE9,\n  uhorndotbelow: 0x1EF1,\n  uhorngrave: 0x1EEB,\n  uhornhookabove: 0x1EED,\n  uhorntilde: 0x1EEF,\n  uhungarumlaut: 0x0171,\n  uhungarumlautcyrillic: 0x04F3,\n  uinvertedbreve: 0x0217,\n  ukatakana: 0x30A6,\n  ukatakanahalfwidth: 0xFF73,\n  ukcyrillic: 0x0479,\n  ukorean: 0x315C,\n  umacron: 0x016B,\n  umacroncyrillic: 0x04EF,\n  umacrondieresis: 0x1E7B,\n  umatragurmukhi: 0x0A41,\n  umonospace: 0xFF55,\n  underscore: 0x005F,\n  underscoredbl: 0x2017,\n  underscoremonospace: 0xFF3F,\n  underscorevertical: 0xFE33,\n  underscorewavy: 0xFE4F,\n  union: 0x222A,\n  universal: 0x2200,\n  uogonek: 0x0173,\n  uparen: 0x24B0,\n  upblock: 0x2580,\n  upperdothebrew: 0x05C4,\n  upsilon: 0x03C5,\n  upsilondieresis: 0x03CB,\n  upsilondieresistonos: 0x03B0,\n  upsilonlatin: 0x028A,\n  upsilontonos: 0x03CD,\n  uptackbelowcmb: 0x031D,\n  uptackmod: 0x02D4,\n  uragurmukhi: 0x0A73,\n  uring: 0x016F,\n  ushortcyrillic: 0x045E,\n  usmallhiragana: 0x3045,\n  usmallkatakana: 0x30A5,\n  usmallkatakanahalfwidth: 0xFF69,\n  ustraightcyrillic: 0x04AF,\n  ustraightstrokecyrillic: 0x04B1,\n  utilde: 0x0169,\n  utildeacute: 0x1E79,\n  utildebelow: 0x1E75,\n  uubengali: 0x098A,\n  uudeva: 0x090A,\n  uugujarati: 0x0A8A,\n  uugurmukhi: 0x0A0A,\n  uumatragurmukhi: 0x0A42,\n  uuvowelsignbengali: 0x09C2,\n  uuvowelsigndeva: 0x0942,\n  uuvowelsigngujarati: 0x0AC2,\n  uvowelsignbengali: 0x09C1,\n  uvowelsigndeva: 0x0941,\n  uvowelsigngujarati: 0x0AC1,\n  v: 0x0076,\n  vadeva: 0x0935,\n  vagujarati: 0x0AB5,\n  vagurmukhi: 0x0A35,\n  vakatakana: 0x30F7,\n  vav: 0x05D5,\n  vavdagesh: 0xFB35,\n  vavdagesh65: 0xFB35,\n  vavdageshhebrew: 0xFB35,\n  vavhebrew: 0x05D5,\n  vavholam: 0xFB4B,\n  vavholamhebrew: 0xFB4B,\n  vavvavhebrew: 0x05F0,\n  vavyodhebrew: 0x05F1,\n  vcircle: 0x24E5,\n  vdotbelow: 0x1E7F,\n  vecyrillic: 0x0432,\n  veharabic: 0x06A4,\n  vehfinalarabic: 0xFB6B,\n  vehinitialarabic: 0xFB6C,\n  vehmedialarabic: 0xFB6D,\n  vekatakana: 0x30F9,\n  venus: 0x2640,\n  verticalbar: 0x007C,\n  verticallineabovecmb: 0x030D,\n  verticallinebelowcmb: 0x0329,\n  verticallinelowmod: 0x02CC,\n  verticallinemod: 0x02C8,\n  vewarmenian: 0x057E,\n  vhook: 0x028B,\n  vikatakana: 0x30F8,\n  viramabengali: 0x09CD,\n  viramadeva: 0x094D,\n  viramagujarati: 0x0ACD,\n  visargabengali: 0x0983,\n  visargadeva: 0x0903,\n  visargagujarati: 0x0A83,\n  vmonospace: 0xFF56,\n  voarmenian: 0x0578,\n  voicediterationhiragana: 0x309E,\n  voicediterationkatakana: 0x30FE,\n  voicedmarkkana: 0x309B,\n  voicedmarkkanahalfwidth: 0xFF9E,\n  vokatakana: 0x30FA,\n  vparen: 0x24B1,\n  vtilde: 0x1E7D,\n  vturned: 0x028C,\n  vuhiragana: 0x3094,\n  vukatakana: 0x30F4,\n  w: 0x0077,\n  wacute: 0x1E83,\n  waekorean: 0x3159,\n  wahiragana: 0x308F,\n  wakatakana: 0x30EF,\n  wakatakanahalfwidth: 0xFF9C,\n  wakorean: 0x3158,\n  wasmallhiragana: 0x308E,\n  wasmallkatakana: 0x30EE,\n  wattosquare: 0x3357,\n  wavedash: 0x301C,\n  wavyunderscorevertical: 0xFE34,\n  wawarabic: 0x0648,\n  wawfinalarabic: 0xFEEE,\n  wawhamzaabovearabic: 0x0624,\n  wawhamzaabovefinalarabic: 0xFE86,\n  wbsquare: 0x33DD,\n  wcircle: 0x24E6,\n  wcircumflex: 0x0175,\n  wdieresis: 0x1E85,\n  wdotaccent: 0x1E87,\n  wdotbelow: 0x1E89,\n  wehiragana: 0x3091,\n  weierstrass: 0x2118,\n  wekatakana: 0x30F1,\n  wekorean: 0x315E,\n  weokorean: 0x315D,\n  wgrave: 0x1E81,\n  whitebullet: 0x25E6,\n  whitecircle: 0x25CB,\n  whitecircleinverse: 0x25D9,\n  whitecornerbracketleft: 0x300E,\n  whitecornerbracketleftvertical: 0xFE43,\n  whitecornerbracketright: 0x300F,\n  whitecornerbracketrightvertical: 0xFE44,\n  whitediamond: 0x25C7,\n  whitediamondcontainingblacksmalldiamond: 0x25C8,\n  whitedownpointingsmalltriangle: 0x25BF,\n  whitedownpointingtriangle: 0x25BD,\n  whiteleftpointingsmalltriangle: 0x25C3,\n  whiteleftpointingtriangle: 0x25C1,\n  whitelenticularbracketleft: 0x3016,\n  whitelenticularbracketright: 0x3017,\n  whiterightpointingsmalltriangle: 0x25B9,\n  whiterightpointingtriangle: 0x25B7,\n  whitesmallsquare: 0x25AB,\n  whitesmilingface: 0x263A,\n  whitesquare: 0x25A1,\n  whitestar: 0x2606,\n  whitetelephone: 0x260F,\n  whitetortoiseshellbracketleft: 0x3018,\n  whitetortoiseshellbracketright: 0x3019,\n  whiteuppointingsmalltriangle: 0x25B5,\n  whiteuppointingtriangle: 0x25B3,\n  wihiragana: 0x3090,\n  wikatakana: 0x30F0,\n  wikorean: 0x315F,\n  wmonospace: 0xFF57,\n  wohiragana: 0x3092,\n  wokatakana: 0x30F2,\n  wokatakanahalfwidth: 0xFF66,\n  won: 0x20A9,\n  wonmonospace: 0xFFE6,\n  wowaenthai: 0x0E27,\n  wparen: 0x24B2,\n  wring: 0x1E98,\n  wsuperior: 0x02B7,\n  wturned: 0x028D,\n  wynn: 0x01BF,\n  x: 0x0078,\n  xabovecmb: 0x033D,\n  xbopomofo: 0x3112,\n  xcircle: 0x24E7,\n  xdieresis: 0x1E8D,\n  xdotaccent: 0x1E8B,\n  xeharmenian: 0x056D,\n  xi: 0x03BE,\n  xmonospace: 0xFF58,\n  xparen: 0x24B3,\n  xsuperior: 0x02E3,\n  y: 0x0079,\n  yaadosquare: 0x334E,\n  yabengali: 0x09AF,\n  yacute: 0x00FD,\n  yadeva: 0x092F,\n  yaekorean: 0x3152,\n  yagujarati: 0x0AAF,\n  yagurmukhi: 0x0A2F,\n  yahiragana: 0x3084,\n  yakatakana: 0x30E4,\n  yakatakanahalfwidth: 0xFF94,\n  yakorean: 0x3151,\n  yamakkanthai: 0x0E4E,\n  yasmallhiragana: 0x3083,\n  yasmallkatakana: 0x30E3,\n  yasmallkatakanahalfwidth: 0xFF6C,\n  yatcyrillic: 0x0463,\n  ycircle: 0x24E8,\n  ycircumflex: 0x0177,\n  ydieresis: 0x00FF,\n  ydotaccent: 0x1E8F,\n  ydotbelow: 0x1EF5,\n  yeharabic: 0x064A,\n  yehbarreearabic: 0x06D2,\n  yehbarreefinalarabic: 0xFBAF,\n  yehfinalarabic: 0xFEF2,\n  yehhamzaabovearabic: 0x0626,\n  yehhamzaabovefinalarabic: 0xFE8A,\n  yehhamzaaboveinitialarabic: 0xFE8B,\n  yehhamzaabovemedialarabic: 0xFE8C,\n  yehinitialarabic: 0xFEF3,\n  yehmedialarabic: 0xFEF4,\n  yehmeeminitialarabic: 0xFCDD,\n  yehmeemisolatedarabic: 0xFC58,\n  yehnoonfinalarabic: 0xFC94,\n  yehthreedotsbelowarabic: 0x06D1,\n  yekorean: 0x3156,\n  yen: 0x00A5,\n  yenmonospace: 0xFFE5,\n  yeokorean: 0x3155,\n  yeorinhieuhkorean: 0x3186,\n  yerahbenyomohebrew: 0x05AA,\n  yerahbenyomolefthebrew: 0x05AA,\n  yericyrillic: 0x044B,\n  yerudieresiscyrillic: 0x04F9,\n  yesieungkorean: 0x3181,\n  yesieungpansioskorean: 0x3183,\n  yesieungsioskorean: 0x3182,\n  yetivhebrew: 0x059A,\n  ygrave: 0x1EF3,\n  yhook: 0x01B4,\n  yhookabove: 0x1EF7,\n  yiarmenian: 0x0575,\n  yicyrillic: 0x0457,\n  yikorean: 0x3162,\n  yinyang: 0x262F,\n  yiwnarmenian: 0x0582,\n  ymonospace: 0xFF59,\n  yod: 0x05D9,\n  yoddagesh: 0xFB39,\n  yoddageshhebrew: 0xFB39,\n  yodhebrew: 0x05D9,\n  yodyodhebrew: 0x05F2,\n  yodyodpatahhebrew: 0xFB1F,\n  yohiragana: 0x3088,\n  yoikorean: 0x3189,\n  yokatakana: 0x30E8,\n  yokatakanahalfwidth: 0xFF96,\n  yokorean: 0x315B,\n  yosmallhiragana: 0x3087,\n  yosmallkatakana: 0x30E7,\n  yosmallkatakanahalfwidth: 0xFF6E,\n  yotgreek: 0x03F3,\n  yoyaekorean: 0x3188,\n  yoyakorean: 0x3187,\n  yoyakthai: 0x0E22,\n  yoyingthai: 0x0E0D,\n  yparen: 0x24B4,\n  ypogegrammeni: 0x037A,\n  ypogegrammenigreekcmb: 0x0345,\n  yr: 0x01A6,\n  yring: 0x1E99,\n  ysuperior: 0x02B8,\n  ytilde: 0x1EF9,\n  yturned: 0x028E,\n  yuhiragana: 0x3086,\n  yuikorean: 0x318C,\n  yukatakana: 0x30E6,\n  yukatakanahalfwidth: 0xFF95,\n  yukorean: 0x3160,\n  yusbigcyrillic: 0x046B,\n  yusbigiotifiedcyrillic: 0x046D,\n  yuslittlecyrillic: 0x0467,\n  yuslittleiotifiedcyrillic: 0x0469,\n  yusmallhiragana: 0x3085,\n  yusmallkatakana: 0x30E5,\n  yusmallkatakanahalfwidth: 0xFF6D,\n  yuyekorean: 0x318B,\n  yuyeokorean: 0x318A,\n  yyabengali: 0x09DF,\n  yyadeva: 0x095F,\n  z: 0x007A,\n  zaarmenian: 0x0566,\n  zacute: 0x017A,\n  zadeva: 0x095B,\n  zagurmukhi: 0x0A5B,\n  zaharabic: 0x0638,\n  zahfinalarabic: 0xFEC6,\n  zahinitialarabic: 0xFEC7,\n  zahiragana: 0x3056,\n  zahmedialarabic: 0xFEC8,\n  zainarabic: 0x0632,\n  zainfinalarabic: 0xFEB0,\n  zakatakana: 0x30B6,\n  zaqefgadolhebrew: 0x0595,\n  zaqefqatanhebrew: 0x0594,\n  zarqahebrew: 0x0598,\n  zayin: 0x05D6,\n  zayindagesh: 0xFB36,\n  zayindageshhebrew: 0xFB36,\n  zayinhebrew: 0x05D6,\n  zbopomofo: 0x3117,\n  zcaron: 0x017E,\n  zcircle: 0x24E9,\n  zcircumflex: 0x1E91,\n  zcurl: 0x0291,\n  zdot: 0x017C,\n  zdotaccent: 0x017C,\n  zdotbelow: 0x1E93,\n  zecyrillic: 0x0437,\n  zedescendercyrillic: 0x0499,\n  zedieresiscyrillic: 0x04DF,\n  zehiragana: 0x305C,\n  zekatakana: 0x30BC,\n  zero: 0x0030,\n  zeroarabic: 0x0660,\n  zerobengali: 0x09E6,\n  zerodeva: 0x0966,\n  zerogujarati: 0x0AE6,\n  zerogurmukhi: 0x0A66,\n  zerohackarabic: 0x0660,\n  zeroinferior: 0x2080,\n  zeromonospace: 0xFF10,\n  zerooldstyle: 0xF730,\n  zeropersian: 0x06F0,\n  zerosuperior: 0x2070,\n  zerothai: 0x0E50,\n  zerowidthjoiner: 0xFEFF,\n  zerowidthnonjoiner: 0x200C,\n  zerowidthspace: 0x200B,\n  zeta: 0x03B6,\n  zhbopomofo: 0x3113,\n  zhearmenian: 0x056A,\n  zhebrevecyrillic: 0x04C2,\n  zhecyrillic: 0x0436,\n  zhedescendercyrillic: 0x0497,\n  zhedieresiscyrillic: 0x04DD,\n  zihiragana: 0x3058,\n  zikatakana: 0x30B8,\n  zinorhebrew: 0x05AE,\n  zlinebelow: 0x1E95,\n  zmonospace: 0xFF5A,\n  zohiragana: 0x305E,\n  zokatakana: 0x30BE,\n  zparen: 0x24B5,\n  zretroflexhook: 0x0290,\n  zstroke: 0x01B6,\n  zuhiragana: 0x305A,\n  zukatakana: 0x30BA,\n  '.notdef': 0x0000\n};\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals ColorSpace, error, isArray, isStream, JpegStream, Name, Promise,\n           Stream, TODO, warn */\n\n'use strict';\n\nvar PDFImage = (function PDFImageClosure() {\n  /**\n   * Decode the image in the main thread if it supported. Resovles the promise\n   * when the image data is ready.\n   */\n  function handleImageData(handler, xref, res, image, promise) {\n    if (image instanceof JpegStream && image.isNativelyDecodable(xref, res)) {\n      // For natively supported jpegs send them to the main thread for decoding.\n      var dict = image.dict;\n      var colorSpace = dict.get('ColorSpace', 'CS');\n      colorSpace = ColorSpace.parse(colorSpace, xref, res);\n      var numComps = colorSpace.numComps;\n      handler.send('JpegDecode', [image.getIR(), numComps], function(message) {\n        var data = message.data;\n        var stream = new Stream(data, 0, data.length, image.dict);\n        promise.resolve(stream);\n      });\n    } else {\n      promise.resolve(image);\n    }\n  }\n  /**\n   * Decode and clamp a value. The formula is different from the spec because we\n   * don't decode to float range [0,1], we decode it in the [0,max] range.\n   */\n  function decodeAndClamp(value, addend, coefficient, max) {\n    value = addend + value * coefficient;\n    // Clamp the value to the range\n    return value < 0 ? 0 : value > max ? max : value;\n  }\n  function PDFImage(xref, res, image, inline, smask, mask, isMask) {\n    this.image = image;\n    if (image.getParams) {\n      // JPX/JPEG2000 streams directly contain bits per component\n      // and color space mode information.\n      TODO('get params from actual stream');\n      // var bits = ...\n      // var colorspace = ...\n    }\n    // TODO cache rendered images?\n\n    var dict = image.dict;\n    this.width = dict.get('Width', 'W');\n    this.height = dict.get('Height', 'H');\n\n    if (this.width < 1 || this.height < 1)\n      error('Invalid image width: ' + this.width + ' or height: ' +\n            this.height);\n\n    this.interpolate = dict.get('Interpolate', 'I') || false;\n    this.imageMask = dict.get('ImageMask', 'IM') || false;\n    this.matte = dict.get('Matte') || false;\n\n    var bitsPerComponent = image.bitsPerComponent;\n    if (!bitsPerComponent) {\n      bitsPerComponent = dict.get('BitsPerComponent', 'BPC');\n      if (!bitsPerComponent) {\n        if (this.imageMask)\n          bitsPerComponent = 1;\n        else\n          error('Bits per component missing in image: ' + this.imageMask);\n      }\n    }\n    this.bpc = bitsPerComponent;\n\n    if (!this.imageMask) {\n      var colorSpace = dict.get('ColorSpace', 'CS');\n      if (!colorSpace) {\n        TODO('JPX images (which don\"t require color spaces');\n        colorSpace = new Name('DeviceRGB');\n      }\n      this.colorSpace = ColorSpace.parse(colorSpace, xref, res);\n      this.numComps = this.colorSpace.numComps;\n    }\n\n    this.decode = dict.get('Decode', 'D');\n    this.needsDecode = false;\n    if (this.decode &&\n        ((this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode)) ||\n         (isMask && !ColorSpace.isDefaultDecode(this.decode, 1)))) {\n      this.needsDecode = true;\n      // Do some preprocessing to avoid more math.\n      var max = (1 << bitsPerComponent) - 1;\n      this.decodeCoefficients = [];\n      this.decodeAddends = [];\n      for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n        var dmin = this.decode[i];\n        var dmax = this.decode[i + 1];\n        this.decodeCoefficients[j] = dmax - dmin;\n        this.decodeAddends[j] = max * dmin;\n      }\n    }\n\n    if (smask) {\n      this.smask = new PDFImage(xref, res, smask, false);\n    } else if (mask) {\n      if (isStream(mask)) {\n        this.mask = new PDFImage(xref, res, mask, false, null, null, true);\n      } else {\n        // Color key mask (just an array).\n        this.mask = mask;\n      }\n    }\n  }\n  /**\n   * Handles processing of image data and calls the callback with an argument\n   * of a PDFImage when the image is ready to be used.\n   */\n  PDFImage.buildImage = function PDFImage_buildImage(callback, handler, xref,\n                                                     res, image, inline) {\n    var imageDataPromise = new Promise();\n    var smaskPromise = new Promise();\n    var maskPromise = new Promise();\n    // The image data and smask data may not be ready yet, wait till both are\n    // resolved.\n    Promise.all([imageDataPromise, smaskPromise, maskPromise]).then(\n        function(results) {\n      var imageData = results[0], smaskData = results[1], maskData = results[2];\n      var image = new PDFImage(xref, res, imageData, inline, smaskData,\n                               maskData);\n      callback(image);\n    });\n\n    handleImageData(handler, xref, res, image, imageDataPromise);\n\n    var smask = image.dict.get('SMask');\n    var mask = image.dict.get('Mask');\n\n    if (smask) {\n      handleImageData(handler, xref, res, smask, smaskPromise);\n      maskPromise.resolve(null);\n    } else {\n      smaskPromise.resolve(null);\n      if (mask) {\n        if (isStream(mask)) {\n          handleImageData(handler, xref, res, mask, maskPromise);\n        } else if (isArray(mask)) {\n          maskPromise.resolve(mask);\n        } else {\n          warn('Unsupported mask format.');\n          maskPromise.resolve(null);\n        }\n      } else {\n        maskPromise.resolve(null);\n      }\n    }\n  };\n\n  /**\n   * Resize an image using the nearest neighbor algorithm.  Currently only\n   * supports one and three component images.\n   * @param {TypedArray} pixels The original image with one component.\n   * @param {Number} bpc Number of bits per component.\n   * @param {Number} components Number of color components, 1 or 3 is supported.\n   * @param {Number} w1 Original width.\n   * @param {Number} h1 Original height.\n   * @param {Number} w2 New width.\n   * @param {Number} h2 New height.\n   * @return {TypedArray} Resized image data.\n   */\n  PDFImage.resize = function PDFImage_resize(pixels, bpc, components,\n                                             w1, h1, w2, h2) {\n    var length = w2 * h2 * components;\n    var temp = bpc <= 8 ? new Uint8Array(length) :\n        bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n    var xRatio = w1 / w2;\n    var yRatio = h1 / h2;\n    var px, py, newIndex, oldIndex;\n    for (var i = 0; i < h2; i++) {\n      for (var j = 0; j < w2; j++) {\n        px = Math.floor(j * xRatio);\n        py = Math.floor(i * yRatio);\n        newIndex = (i * w2) + j;\n        oldIndex = ((py * w1) + px);\n        if (components === 1) {\n          temp[newIndex] = pixels[oldIndex];\n        } else if (components === 3) {\n          newIndex *= 3;\n          oldIndex *= 3;\n          temp[newIndex] = pixels[oldIndex];\n          temp[newIndex + 1] = pixels[oldIndex + 1];\n          temp[newIndex + 2] = pixels[oldIndex + 2];\n        }\n      }\n    }\n    return temp;\n  };\n\n  PDFImage.createMask = function PDFImage_createMask(imgArray, width, height,\n                                                     inverseDecode) {\n    var buffer = new Uint8Array(width * height * 4);\n    var imgArrayPos = 0;\n    var i, j, mask, buf;\n    // removing making non-masked pixels transparent\n    var bufferPos = 3; // alpha component offset\n    for (i = 0; i < height; i++) {\n      mask = 0;\n      for (j = 0; j < width; j++) {\n        if (!mask) {\n          buf = imgArray[imgArrayPos++];\n          mask = 128;\n        }\n        if (!(buf & mask) !== inverseDecode) {\n          buffer[bufferPos] = 255;\n        }\n        bufferPos += 4;\n        mask >>= 1;\n      }\n    }\n    return {data: buffer, width: width, height: height};\n  };\n\n  PDFImage.prototype = {\n    get drawWidth() {\n      if (!this.smask)\n        return this.width;\n      return Math.max(this.width, this.smask.width);\n    },\n    get drawHeight() {\n      if (!this.smask)\n        return this.height;\n      return Math.max(this.height, this.smask.height);\n    },\n    decodeBuffer: function PDFImage_decodeBuffer(buffer) {\n      var bpc = this.bpc;\n      var decodeMap = this.decode;\n      var numComps = this.numComps;\n\n      var decodeAddends, decodeCoefficients;\n      var decodeAddends = this.decodeAddends;\n      var decodeCoefficients = this.decodeCoefficients;\n      var max = (1 << bpc) - 1;\n\n      if (bpc === 1) {\n        // If the buffer needed decode that means it just needs to be inverted.\n        for (var i = 0, ii = buffer.length; i < ii; i++) {\n          buffer[i] = +!(buffer[i]);\n        }\n        return;\n      }\n      var index = 0;\n      for (var i = 0, ii = this.width * this.height; i < ii; i++) {\n        for (var j = 0; j < numComps; j++) {\n          buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j],\n                                            decodeCoefficients[j], max);\n          index++;\n        }\n      }\n    },\n    getComponents: function PDFImage_getComponents(buffer) {\n      var bpc = this.bpc;\n\n      // This image doesn't require any extra work.\n      if (bpc === 8)\n        return buffer;\n\n      var bufferLength = buffer.length;\n      var width = this.width;\n      var height = this.height;\n      var numComps = this.numComps;\n\n      var length = width * height * numComps;\n      var bufferPos = 0;\n      var output = bpc <= 8 ? new Uint8Array(length) :\n        bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n      var rowComps = width * numComps;\n\n      var max = (1 << bpc) - 1;\n\n      if (bpc === 1) {\n        // Optimization for reading 1 bpc images.\n        var mask = 0;\n        var buf = 0;\n\n        for (var i = 0, ii = length; i < ii; ++i) {\n          if (i % rowComps === 0) {\n            mask = 0;\n            buf = 0;\n          } else {\n            mask >>= 1;\n          }\n\n          if (mask <= 0) {\n            buf = buffer[bufferPos++];\n            mask = 128;\n          }\n\n          output[i] = +!!(buf & mask);\n        }\n      } else {\n        // The general case that handles all other bpc values.\n        var bits = 0, buf = 0;\n        for (var i = 0, ii = length; i < ii; ++i) {\n          if (i % rowComps === 0) {\n            buf = 0;\n            bits = 0;\n          }\n\n          while (bits < bpc) {\n            buf = (buf << 8) | buffer[bufferPos++];\n            bits += 8;\n          }\n\n          var remainingBits = bits - bpc;\n          var value = buf >> remainingBits;\n          output[i] = value < 0 ? 0 : value > max ? max : value;\n          buf = buf & ((1 << remainingBits) - 1);\n          bits = remainingBits;\n        }\n      }\n      return output;\n    },\n    getOpacity: function PDFImage_getOpacity(width, height, image) {\n      var smask = this.smask;\n      var mask = this.mask;\n      var originalWidth = this.width;\n      var originalHeight = this.height;\n      var buf;\n\n      if (smask) {\n        var sw = smask.width;\n        var sh = smask.height;\n        buf = new Uint8Array(sw * sh);\n        smask.fillGrayBuffer(buf);\n        if (sw != width || sh != height)\n          buf = PDFImage.resize(buf, smask.bpc, 1, sw, sh, width, height);\n      } else if (mask) {\n        if (mask instanceof PDFImage) {\n          var sw = mask.width;\n          var sh = mask.height;\n          buf = new Uint8Array(sw * sh);\n          mask.numComps = 1;\n          mask.fillGrayBuffer(buf);\n\n          // Need to invert values in buffer\n          for (var i = 0, ii = sw * sh; i < ii; ++i)\n            buf[i] = 255 - buf[i];\n\n          if (sw != width || sh != height)\n            buf = PDFImage.resize(buf, mask.bpc, 1, sw, sh, width, height);\n        } else if (isArray(mask)) {\n          // Color key mask: if any of the compontents are outside the range\n          // then they should be painted.\n          buf = new Uint8Array(width * height);\n          var numComps = this.numComps;\n          for (var i = 0, ii = width * height; i < ii; ++i) {\n            var opacity = 0;\n            var imageOffset = i * numComps;\n            for (var j = 0; j < numComps; ++j) {\n              var color = image[imageOffset + j];\n              var maskOffset = j * 2;\n              if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n                opacity = 255;\n                break;\n              }\n            }\n            buf[i] = opacity;\n          }\n        } else {\n          error('Unknown mask format.');\n        }\n      } else {\n        buf = new Uint8Array(width * height);\n        for (var i = 0, ii = width * height; i < ii; ++i)\n          buf[i] = 255;\n      }\n      return buf;\n    },\n    undoPreblend: function PDFImage_undoPreblend(buffer, width, height) {\n      var matte = this.smask && this.smask.matte;\n      if (!matte) {\n        return;\n      }\n\n      function clamp(value) {\n        return (value < 0 ? 0 : value > 255 ? 255 : value) | 0;\n      }\n\n      var matteRgb = this.colorSpace.getRgb(matte, 0);\n      var length = width * height * 4;\n      for (var i = 0; i < length; i += 4) {\n        var alpha = buffer[i + 3];\n        if (alpha === 0) {\n          // according formula we have to get Infinity in all components\n          // making it as white (tipical paper color) should be okay\n          buffer[i] = 255;\n          buffer[i + 1] = 255;\n          buffer[i + 2] = 255;\n          continue;\n        }\n        var k = 255 / alpha;\n        buffer[i] = clamp((buffer[i] - matteRgb[0]) * k + matteRgb[0]);\n        buffer[i + 1] = clamp((buffer[i + 1] - matteRgb[1]) * k + matteRgb[1]);\n        buffer[i + 2] = clamp((buffer[i + 2] - matteRgb[2]) * k + matteRgb[2]);\n      }\n    },\n    fillRgbaBuffer: function PDFImage_fillRgbaBuffer(buffer, width, height) {\n      var numComps = this.numComps;\n      var originalWidth = this.width;\n      var originalHeight = this.height;\n      var bpc = this.bpc;\n\n      // rows start at byte boundary;\n      var rowBytes = (originalWidth * numComps * bpc + 7) >> 3;\n      var imgArray = this.getImageBytes(originalHeight * rowBytes);\n\n      // imgArray can be incomplete (e.g. after CCITT fax encoding)\n      var actualHeight = 0 | (imgArray.length / rowBytes *\n                         height / originalHeight);\n      var comps = this.getComponents(imgArray);\n      // Build opacity here since color key masking needs to be perormed on\n      // undecoded values.\n      var opacity = this.getOpacity(width, height, comps);\n\n      if (this.needsDecode) {\n        this.decodeBuffer(comps);\n      }\n      var rgbBuf = this.colorSpace.createRgbBuffer(comps, 0,\n                                    originalWidth * originalHeight, bpc);\n      if (originalWidth != width || originalHeight != height)\n        rgbBuf = PDFImage.resize(rgbBuf, this.bpc, 3, originalWidth,\n                                originalHeight, width, height);\n      var compsPos = 0;\n      var opacityPos = 0;\n      var length = width * actualHeight * 4;\n\n      for (var i = 0; i < length; i += 4) {\n        buffer[i] = rgbBuf[compsPos++];\n        buffer[i + 1] = rgbBuf[compsPos++];\n        buffer[i + 2] = rgbBuf[compsPos++];\n        buffer[i + 3] = opacity[opacityPos++];\n      }\n\n      this.undoPreblend(buffer, width, actualHeight);\n    },\n    fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) {\n      var numComps = this.numComps;\n      if (numComps != 1)\n        error('Reading gray scale from a color image: ' + numComps);\n\n      var width = this.width;\n      var height = this.height;\n      var bpc = this.bpc;\n\n      // rows start at byte boundary;\n      var rowBytes = (width * numComps * bpc + 7) >> 3;\n      var imgArray = this.getImageBytes(height * rowBytes);\n\n      var comps = this.getComponents(imgArray);\n      if (this.needsDecode) {\n        this.decodeBuffer(comps);\n      }\n      var length = width * height;\n      // we aren't using a colorspace so we need to scale the value\n      var scale = 255 / ((1 << bpc) - 1);\n      for (var i = 0; i < length; ++i)\n        buffer[i] = (scale * comps[i]) | 0;\n    },\n    getImageData: function PDFImage_getImageData() {\n      var drawWidth = this.drawWidth;\n      var drawHeight = this.drawHeight;\n      var imgData = {\n        width: drawWidth,\n        height: drawHeight,\n        data: new Uint8Array(drawWidth * drawHeight * 4)\n      };\n\n\t\tvar pixels = imgData.data;\n\t\ttry {\n\t\t\tthis.fillRgbaBuffer(pixels, drawWidth, drawHeight);\n\t\t} catch (e) {\n\t\t\twarn('Unable to decode image: ' + e); // keep moving on\n\t\t}\n\n      return imgData;\n    },\n    getImageBytes: function PDFImage_getImageBytes(length) {\n      this.image.reset();\n      return this.image.getBytes(length);\n    }\n  };\n  return PDFImage;\n})();\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use strict';\n\n// The Metrics object contains glyph widths (in glyph space units).\n// As per PDF spec, for most fonts (Type 3 being an exception) a glyph\n// space unit corresponds to 1/1000th of text space unit.\nvar Metrics = {\n  'Courier': 600,\n  'Courier-Bold': 600,\n  'Courier-BoldOblique': 600,\n  'Courier-Oblique': 600,\n  'Helvetica' : {\n    'space': 278,\n    'exclam': 278,\n    'quotedbl': 355,\n    'numbersign': 556,\n    'dollar': 556,\n    'percent': 889,\n    'ampersand': 667,\n    'quoteright': 222,\n    'parenleft': 333,\n    'parenright': 333,\n    'asterisk': 389,\n    'plus': 584,\n    'comma': 278,\n    'hyphen': 333,\n    'period': 278,\n    'slash': 278,\n    'zero': 556,\n    'one': 556,\n    'two': 556,\n    'three': 556,\n    'four': 556,\n    'five': 556,\n    'six': 556,\n    'seven': 556,\n    'eight': 556,\n    'nine': 556,\n    'colon': 278,\n    'semicolon': 278,\n    'less': 584,\n    'equal': 584,\n    'greater': 584,\n    'question': 556,\n    'at': 1015,\n    'A': 667,\n    'B': 667,\n    'C': 722,\n    'D': 722,\n    'E': 667,\n    'F': 611,\n    'G': 778,\n    'H': 722,\n    'I': 278,\n    'J': 500,\n    'K': 667,\n    'L': 556,\n    'M': 833,\n    'N': 722,\n    'O': 778,\n    'P': 667,\n    'Q': 778,\n    'R': 722,\n    'S': 667,\n    'T': 611,\n    'U': 722,\n    'V': 667,\n    'W': 944,\n    'X': 667,\n    'Y': 667,\n    'Z': 611,\n    'bracketleft': 278,\n    'backslash': 278,\n    'bracketright': 278,\n    'asciicircum': 469,\n    'underscore': 556,\n    'quoteleft': 222,\n    'a': 556,\n    'b': 556,\n    'c': 500,\n    'd': 556,\n    'e': 556,\n    'f': 278,\n    'g': 556,\n    'h': 556,\n    'i': 222,\n    'j': 222,\n    'k': 500,\n    'l': 222,\n    'm': 833,\n    'n': 556,\n    'o': 556,\n    'p': 556,\n    'q': 556,\n    'r': 333,\n    's': 500,\n    't': 278,\n    'u': 556,\n    'v': 500,\n    'w': 722,\n    'x': 500,\n    'y': 500,\n    'z': 500,\n    'braceleft': 334,\n    'bar': 260,\n    'braceright': 334,\n    'asciitilde': 584,\n    'exclamdown': 333,\n    'cent': 556,\n    'sterling': 556,\n    'fraction': 167,\n    'yen': 556,\n    'florin': 556,\n    'section': 556,\n    'currency': 556,\n    'quotesingle': 191,\n    'quotedblleft': 333,\n    'guillemotleft': 556,\n    'guilsinglleft': 333,\n    'guilsinglright': 333,\n    'fi': 500,\n    'fl': 500,\n    'endash': 556,\n    'dagger': 556,\n    'daggerdbl': 556,\n    'periodcentered': 278,\n    'paragraph': 537,\n    'bullet': 350,\n    'quotesinglbase': 222,\n    'quotedblbase': 333,\n    'quotedblright': 333,\n    'guillemotright': 556,\n    'ellipsis': 1000,\n    'perthousand': 1000,\n    'questiondown': 611,\n    'grave': 333,\n    'acute': 333,\n    'circumflex': 333,\n    'tilde': 333,\n    'macron': 333,\n    'breve': 333,\n    'dotaccent': 333,\n    'dieresis': 333,\n    'ring': 333,\n    'cedilla': 333,\n    'hungarumlaut': 333,\n    'ogonek': 333,\n    'caron': 333,\n    'emdash': 1000,\n    'AE': 1000,\n    'ordfeminine': 370,\n    'Lslash': 556,\n    'Oslash': 778,\n    'OE': 1000,\n    'ordmasculine': 365,\n    'ae': 889,\n    'dotlessi': 278,\n    'lslash': 222,\n    'oslash': 611,\n    'oe': 944,\n    'germandbls': 611,\n    'Idieresis': 278,\n    'eacute': 556,\n    'abreve': 556,\n    'uhungarumlaut': 556,\n    'ecaron': 556,\n    'Ydieresis': 667,\n    'divide': 584,\n    'Yacute': 667,\n    'Acircumflex': 667,\n    'aacute': 556,\n    'Ucircumflex': 722,\n    'yacute': 500,\n    'scommaaccent': 500,\n    'ecircumflex': 556,\n    'Uring': 722,\n    'Udieresis': 722,\n    'aogonek': 556,\n    'Uacute': 722,\n    'uogonek': 556,\n    'Edieresis': 667,\n    'Dcroat': 722,\n    'commaaccent': 250,\n    'copyright': 737,\n    'Emacron': 667,\n    'ccaron': 500,\n    'aring': 556,\n    'Ncommaaccent': 722,\n    'lacute': 222,\n    'agrave': 556,\n    'Tcommaaccent': 611,\n    'Cacute': 722,\n    'atilde': 556,\n    'Edotaccent': 667,\n    'scaron': 500,\n    'scedilla': 500,\n    'iacute': 278,\n    'lozenge': 471,\n    'Rcaron': 722,\n    'Gcommaaccent': 778,\n    'ucircumflex': 556,\n    'acircumflex': 556,\n    'Amacron': 667,\n    'rcaron': 333,\n    'ccedilla': 500,\n    'Zdotaccent': 611,\n    'Thorn': 667,\n    'Omacron': 778,\n    'Racute': 722,\n    'Sacute': 667,\n    'dcaron': 643,\n    'Umacron': 722,\n    'uring': 556,\n    'threesuperior': 333,\n    'Ograve': 778,\n    'Agrave': 667,\n    'Abreve': 667,\n    'multiply': 584,\n    'uacute': 556,\n    'Tcaron': 611,\n    'partialdiff': 476,\n    'ydieresis': 500,\n    'Nacute': 722,\n    'icircumflex': 278,\n    'Ecircumflex': 667,\n    'adieresis': 556,\n    'edieresis': 556,\n    'cacute': 500,\n    'nacute': 556,\n    'umacron': 556,\n    'Ncaron': 722,\n    'Iacute': 278,\n    'plusminus': 584,\n    'brokenbar': 260,\n    'registered': 737,\n    'Gbreve': 778,\n    'Idotaccent': 278,\n    'summation': 600,\n    'Egrave': 667,\n    'racute': 333,\n    'omacron': 556,\n    'Zacute': 611,\n    'Zcaron': 611,\n    'greaterequal': 549,\n    'Eth': 722,\n    'Ccedilla': 722,\n    'lcommaaccent': 222,\n    'tcaron': 317,\n    'eogonek': 556,\n    'Uogonek': 722,\n    'Aacute': 667,\n    'Adieresis': 667,\n    'egrave': 556,\n    'zacute': 500,\n    'iogonek': 222,\n    'Oacute': 778,\n    'oacute': 556,\n    'amacron': 556,\n    'sacute': 500,\n    'idieresis': 278,\n    'Ocircumflex': 778,\n    'Ugrave': 722,\n    'Delta': 612,\n    'thorn': 556,\n    'twosuperior': 333,\n    'Odieresis': 778,\n    'mu': 556,\n    'igrave': 278,\n    'ohungarumlaut': 556,\n    'Eogonek': 667,\n    'dcroat': 556,\n    'threequarters': 834,\n    'Scedilla': 667,\n    'lcaron': 299,\n    'Kcommaaccent': 667,\n    'Lacute': 556,\n    'trademark': 1000,\n    'edotaccent': 556,\n    'Igrave': 278,\n    'Imacron': 278,\n    'Lcaron': 556,\n    'onehalf': 834,\n    'lessequal': 549,\n    'ocircumflex': 556,\n    'ntilde': 556,\n    'Uhungarumlaut': 722,\n    'Eacute': 667,\n    'emacron': 556,\n    'gbreve': 556,\n    'onequarter': 834,\n    'Scaron': 667,\n    'Scommaaccent': 667,\n    'Ohungarumlaut': 778,\n    'degree': 400,\n    'ograve': 556,\n    'Ccaron': 722,\n    'ugrave': 556,\n    'radical': 453,\n    'Dcaron': 722,\n    'rcommaaccent': 333,\n    'Ntilde': 722,\n    'otilde': 556,\n    'Rcommaaccent': 722,\n    'Lcommaaccent': 556,\n    'Atilde': 667,\n    'Aogonek': 667,\n    'Aring': 667,\n    'Otilde': 778,\n    'zdotaccent': 500,\n    'Ecaron': 667,\n    'Iogonek': 278,\n    'kcommaaccent': 500,\n    'minus': 584,\n    'Icircumflex': 278,\n    'ncaron': 556,\n    'tcommaaccent': 278,\n    'logicalnot': 584,\n    'odieresis': 556,\n    'udieresis': 556,\n    'notequal': 549,\n    'gcommaaccent': 556,\n    'eth': 556,\n    'zcaron': 500,\n    'ncommaaccent': 556,\n    'onesuperior': 333,\n    'imacron': 278,\n    'Euro': 556\n  },\n  'Helvetica-Bold': {\n    'space': 278,\n    'exclam': 333,\n    'quotedbl': 474,\n    'numbersign': 556,\n    'dollar': 556,\n    'percent': 889,\n    'ampersand': 722,\n    'quoteright': 278,\n    'parenleft': 333,\n    'parenright': 333,\n    'asterisk': 389,\n    'plus': 584,\n    'comma': 278,\n    'hyphen': 333,\n    'period': 278,\n    'slash': 278,\n    'zero': 556,\n    'one': 556,\n    'two': 556,\n    'three': 556,\n    'four': 556,\n    'five': 556,\n    'six': 556,\n    'seven': 556,\n    'eight': 556,\n    'nine': 556,\n    'colon': 333,\n    'semicolon': 333,\n    'less': 584,\n    'equal': 584,\n    'greater': 584,\n    'question': 611,\n    'at': 975,\n    'A': 722,\n    'B': 722,\n    'C': 722,\n    'D': 722,\n    'E': 667,\n    'F': 611,\n    'G': 778,\n    'H': 722,\n    'I': 278,\n    'J': 556,\n    'K': 722,\n    'L': 611,\n    'M': 833,\n    'N': 722,\n    'O': 778,\n    'P': 667,\n    'Q': 778,\n    'R': 722,\n    'S': 667,\n    'T': 611,\n    'U': 722,\n    'V': 667,\n    'W': 944,\n    'X': 667,\n    'Y': 667,\n    'Z': 611,\n    'bracketleft': 333,\n    'backslash': 278,\n    'bracketright': 333,\n    'asciicircum': 584,\n    'underscore': 556,\n    'quoteleft': 278,\n    'a': 556,\n    'b': 611,\n    'c': 556,\n    'd': 611,\n    'e': 556,\n    'f': 333,\n    'g': 611,\n    'h': 611,\n    'i': 278,\n    'j': 278,\n    'k': 556,\n    'l': 278,\n    'm': 889,\n    'n': 611,\n    'o': 611,\n    'p': 611,\n    'q': 611,\n    'r': 389,\n    's': 556,\n    't': 333,\n    'u': 611,\n    'v': 556,\n    'w': 778,\n    'x': 556,\n    'y': 556,\n    'z': 500,\n    'braceleft': 389,\n    'bar': 280,\n    'braceright': 389,\n    'asciitilde': 584,\n    'exclamdown': 333,\n    'cent': 556,\n    'sterling': 556,\n    'fraction': 167,\n    'yen': 556,\n    'florin': 556,\n    'section': 556,\n    'currency': 556,\n    'quotesingle': 238,\n    'quotedblleft': 500,\n    'guillemotleft': 556,\n    'guilsinglleft': 333,\n    'guilsinglright': 333,\n    'fi': 611,\n    'fl': 611,\n    'endash': 556,\n    'dagger': 556,\n    'daggerdbl': 556,\n    'periodcentered': 278,\n    'paragraph': 556,\n    'bullet': 350,\n    'quotesinglbase': 278,\n    'quotedblbase': 500,\n    'quotedblright': 500,\n    'guillemotright': 556,\n    'ellipsis': 1000,\n    'perthousand': 1000,\n    'questiondown': 611,\n    'grave': 333,\n    'acute': 333,\n    'circumflex': 333,\n    'tilde': 333,\n    'macron': 333,\n    'breve': 333,\n    'dotaccent': 333,\n    'dieresis': 333,\n    'ring': 333,\n    'cedilla': 333,\n    'hungarumlaut': 333,\n    'ogonek': 333,\n    'caron': 333,\n    'emdash': 1000,\n    'AE': 1000,\n    'ordfeminine': 370,\n    'Lslash': 611,\n    'Oslash': 778,\n    'OE': 1000,\n    'ordmasculine': 365,\n    'ae': 889,\n    'dotlessi': 278,\n    'lslash': 278,\n    'oslash': 611,\n    'oe': 944,\n    'germandbls': 611,\n    'Idieresis': 278,\n    'eacute': 556,\n    'abreve': 556,\n    'uhungarumlaut': 611,\n    'ecaron': 556,\n    'Ydieresis': 667,\n    'divide': 584,\n    'Yacute': 667,\n    'Acircumflex': 722,\n    'aacute': 556,\n    'Ucircumflex': 722,\n    'yacute': 556,\n    'scommaaccent': 556,\n    'ecircumflex': 556,\n    'Uring': 722,\n    'Udieresis': 722,\n    'aogonek': 556,\n    'Uacute': 722,\n    'uogonek': 611,\n    'Edieresis': 667,\n    'Dcroat': 722,\n    'commaaccent': 250,\n    'copyright': 737,\n    'Emacron': 667,\n    'ccaron': 556,\n    'aring': 556,\n    'Ncommaaccent': 722,\n    'lacute': 278,\n    'agrave': 556,\n    'Tcommaaccent': 611,\n    'Cacute': 722,\n    'atilde': 556,\n    'Edotaccent': 667,\n    'scaron': 556,\n    'scedilla': 556,\n    'iacute': 278,\n    'lozenge': 494,\n    'Rcaron': 722,\n    'Gcommaaccent': 778,\n    'ucircumflex': 611,\n    'acircumflex': 556,\n    'Amacron': 722,\n    'rcaron': 389,\n    'ccedilla': 556,\n    'Zdotaccent': 611,\n    'Thorn': 667,\n    'Omacron': 778,\n    'Racute': 722,\n    'Sacute': 667,\n    'dcaron': 743,\n    'Umacron': 722,\n    'uring': 611,\n    'threesuperior': 333,\n    'Ograve': 778,\n    'Agrave': 722,\n    'Abreve': 722,\n    'multiply': 584,\n    'uacute': 611,\n    'Tcaron': 611,\n    'partialdiff': 494,\n    'ydieresis': 556,\n    'Nacute': 722,\n    'icircumflex': 278,\n    'Ecircumflex': 667,\n    'adieresis': 556,\n    'edieresis': 556,\n    'cacute': 556,\n    'nacute': 611,\n    'umacron': 611,\n    'Ncaron': 722,\n    'Iacute': 278,\n    'plusminus': 584,\n    'brokenbar': 280,\n    'registered': 737,\n    'Gbreve': 778,\n    'Idotaccent': 278,\n    'summation': 600,\n    'Egrave': 667,\n    'racute': 389,\n    'omacron': 611,\n    'Zacute': 611,\n    'Zcaron': 611,\n    'greaterequal': 549,\n    'Eth': 722,\n    'Ccedilla': 722,\n    'lcommaaccent': 278,\n    'tcaron': 389,\n    'eogonek': 556,\n    'Uogonek': 722,\n    'Aacute': 722,\n    'Adieresis': 722,\n    'egrave': 556,\n    'zacute': 500,\n    'iogonek': 278,\n    'Oacute': 778,\n    'oacute': 611,\n    'amacron': 556,\n    'sacute': 556,\n    'idieresis': 278,\n    'Ocircumflex': 778,\n    'Ugrave': 722,\n    'Delta': 612,\n    'thorn': 611,\n    'twosuperior': 333,\n    'Odieresis': 778,\n    'mu': 611,\n    'igrave': 278,\n    'ohungarumlaut': 611,\n    'Eogonek': 667,\n    'dcroat': 611,\n    'threequarters': 834,\n    'Scedilla': 667,\n    'lcaron': 400,\n    'Kcommaaccent': 722,\n    'Lacute': 611,\n    'trademark': 1000,\n    'edotaccent': 556,\n    'Igrave': 278,\n    'Imacron': 278,\n    'Lcaron': 611,\n    'onehalf': 834,\n    'lessequal': 549,\n    'ocircumflex': 611,\n    'ntilde': 611,\n    'Uhungarumlaut': 722,\n    'Eacute': 667,\n    'emacron': 556,\n    'gbreve': 611,\n    'onequarter': 834,\n    'Scaron': 667,\n    'Scommaaccent': 667,\n    'Ohungarumlaut': 778,\n    'degree': 400,\n    'ograve': 611,\n    'Ccaron': 722,\n    'ugrave': 611,\n    'radical': 549,\n    'Dcaron': 722,\n    'rcommaaccent': 389,\n    'Ntilde': 722,\n    'otilde': 611,\n    'Rcommaaccent': 722,\n    'Lcommaaccent': 611,\n    'Atilde': 722,\n    'Aogonek': 722,\n    'Aring': 722,\n    'Otilde': 778,\n    'zdotaccent': 500,\n    'Ecaron': 667,\n    'Iogonek': 278,\n    'kcommaaccent': 556,\n    'minus': 584,\n    'Icircumflex': 278,\n    'ncaron': 611,\n    'tcommaaccent': 333,\n    'logicalnot': 584,\n    'odieresis': 611,\n    'udieresis': 611,\n    'notequal': 549,\n    'gcommaaccent': 611,\n    'eth': 611,\n    'zcaron': 500,\n    'ncommaaccent': 611,\n    'onesuperior': 333,\n    'imacron': 278,\n    'Euro': 556\n  },\n  'Helvetica-BoldOblique': {\n    'space': 278,\n    'exclam': 333,\n    'quotedbl': 474,\n    'numbersign': 556,\n    'dollar': 556,\n    'percent': 889,\n    'ampersand': 722,\n    'quoteright': 278,\n    'parenleft': 333,\n    'parenright': 333,\n    'asterisk': 389,\n    'plus': 584,\n    'comma': 278,\n    'hyphen': 333,\n    'period': 278,\n    'slash': 278,\n    'zero': 556,\n    'one': 556,\n    'two': 556,\n    'three': 556,\n    'four': 556,\n    'five': 556,\n    'six': 556,\n    'seven': 556,\n    'eight': 556,\n    'nine': 556,\n    'colon': 333,\n    'semicolon': 333,\n    'less': 584,\n    'equal': 584,\n    'greater': 584,\n    'question': 611,\n    'at': 975,\n    'A': 722,\n    'B': 722,\n    'C': 722,\n    'D': 722,\n    'E': 667,\n    'F': 611,\n    'G': 778,\n    'H': 722,\n    'I': 278,\n    'J': 556,\n    'K': 722,\n    'L': 611,\n    'M': 833,\n    'N': 722,\n    'O': 778,\n    'P': 667,\n    'Q': 778,\n    'R': 722,\n    'S': 667,\n    'T': 611,\n    'U': 722,\n    'V': 667,\n    'W': 944,\n    'X': 667,\n    'Y': 667,\n    'Z': 611,\n    'bracketleft': 333,\n    'backslash': 278,\n    'bracketright': 333,\n    'asciicircum': 584,\n    'underscore': 556,\n    'quoteleft': 278,\n    'a': 556,\n    'b': 611,\n    'c': 556,\n    'd': 611,\n    'e': 556,\n    'f': 333,\n    'g': 611,\n    'h': 611,\n    'i': 278,\n    'j': 278,\n    'k': 556,\n    'l': 278,\n    'm': 889,\n    'n': 611,\n    'o': 611,\n    'p': 611,\n    'q': 611,\n    'r': 389,\n    's': 556,\n    't': 333,\n    'u': 611,\n    'v': 556,\n    'w': 778,\n    'x': 556,\n    'y': 556,\n    'z': 500,\n    'braceleft': 389,\n    'bar': 280,\n    'braceright': 389,\n    'asciitilde': 584,\n    'exclamdown': 333,\n    'cent': 556,\n    'sterling': 556,\n    'fraction': 167,\n    'yen': 556,\n    'florin': 556,\n    'section': 556,\n    'currency': 556,\n    'quotesingle': 238,\n    'quotedblleft': 500,\n    'guillemotleft': 556,\n    'guilsinglleft': 333,\n    'guilsinglright': 333,\n    'fi': 611,\n    'fl': 611,\n    'endash': 556,\n    'dagger': 556,\n    'daggerdbl': 556,\n    'periodcentered': 278,\n    'paragraph': 556,\n    'bullet': 350,\n    'quotesinglbase': 278,\n    'quotedblbase': 500,\n    'quotedblright': 500,\n    'guillemotright': 556,\n    'ellipsis': 1000,\n    'perthousand': 1000,\n    'questiondown': 611,\n    'grave': 333,\n    'acute': 333,\n    'circumflex': 333,\n    'tilde': 333,\n    'macron': 333,\n    'breve': 333,\n    'dotaccent': 333,\n    'dieresis': 333,\n    'ring': 333,\n    'cedilla': 333,\n    'hungarumlaut': 333,\n    'ogonek': 333,\n    'caron': 333,\n    'emdash': 1000,\n    'AE': 1000,\n    'ordfeminine': 370,\n    'Lslash': 611,\n    'Oslash': 778,\n    'OE': 1000,\n    'ordmasculine': 365,\n    'ae': 889,\n    'dotlessi': 278,\n    'lslash': 278,\n    'oslash': 611,\n    'oe': 944,\n    'germandbls': 611,\n    'Idieresis': 278,\n    'eacute': 556,\n    'abreve': 556,\n    'uhungarumlaut': 611,\n    'ecaron': 556,\n    'Ydieresis': 667,\n    'divide': 584,\n    'Yacute': 667,\n    'Acircumflex': 722,\n    'aacute': 556,\n    'Ucircumflex': 722,\n    'yacute': 556,\n    'scommaaccent': 556,\n    'ecircumflex': 556,\n    'Uring': 722,\n    'Udieresis': 722,\n    'aogonek': 556,\n    'Uacute': 722,\n    'uogonek': 611,\n    'Edieresis': 667,\n    'Dcroat': 722,\n    'commaaccent': 250,\n    'copyright': 737,\n    'Emacron': 667,\n    'ccaron': 556,\n    'aring': 556,\n    'Ncommaaccent': 722,\n    'lacute': 278,\n    'agrave': 556,\n    'Tcommaaccent': 611,\n    'Cacute': 722,\n    'atilde': 556,\n    'Edotaccent': 667,\n    'scaron': 556,\n    'scedilla': 556,\n    'iacute': 278,\n    'lozenge': 494,\n    'Rcaron': 722,\n    'Gcommaaccent': 778,\n    'ucircumflex': 611,\n    'acircumflex': 556,\n    'Amacron': 722,\n    'rcaron': 389,\n    'ccedilla': 556,\n    'Zdotaccent': 611,\n    'Thorn': 667,\n    'Omacron': 778,\n    'Racute': 722,\n    'Sacute': 667,\n    'dcaron': 743,\n    'Umacron': 722,\n    'uring': 611,\n    'threesuperior': 333,\n    'Ograve': 778,\n    'Agrave': 722,\n    'Abreve': 722,\n    'multiply': 584,\n    'uacute': 611,\n    'Tcaron': 611,\n    'partialdiff': 494,\n    'ydieresis': 556,\n    'Nacute': 722,\n    'icircumflex': 278,\n    'Ecircumflex': 667,\n    'adieresis': 556,\n    'edieresis': 556,\n    'cacute': 556,\n    'nacute': 611,\n    'umacron': 611,\n    'Ncaron': 722,\n    'Iacute': 278,\n    'plusminus': 584,\n    'brokenbar': 280,\n    'registered': 737,\n    'Gbreve': 778,\n    'Idotaccent': 278,\n    'summation': 600,\n    'Egrave': 667,\n    'racute': 389,\n    'omacron': 611,\n    'Zacute': 611,\n    'Zcaron': 611,\n    'greaterequal': 549,\n    'Eth': 722,\n    'Ccedilla': 722,\n    'lcommaaccent': 278,\n    'tcaron': 389,\n    'eogonek': 556,\n    'Uogonek': 722,\n    'Aacute': 722,\n    'Adieresis': 722,\n    'egrave': 556,\n    'zacute': 500,\n    'iogonek': 278,\n    'Oacute': 778,\n    'oacute': 611,\n    'amacron': 556,\n    'sacute': 556,\n    'idieresis': 278,\n    'Ocircumflex': 778,\n    'Ugrave': 722,\n    'Delta': 612,\n    'thorn': 611,\n    'twosuperior': 333,\n    'Odieresis': 778,\n    'mu': 611,\n    'igrave': 278,\n    'ohungarumlaut': 611,\n    'Eogonek': 667,\n    'dcroat': 611,\n    'threequarters': 834,\n    'Scedilla': 667,\n    'lcaron': 400,\n    'Kcommaaccent': 722,\n    'Lacute': 611,\n    'trademark': 1000,\n    'edotaccent': 556,\n    'Igrave': 278,\n    'Imacron': 278,\n    'Lcaron': 611,\n    'onehalf': 834,\n    'lessequal': 549,\n    'ocircumflex': 611,\n    'ntilde': 611,\n    'Uhungarumlaut': 722,\n    'Eacute': 667,\n    'emacron': 556,\n    'gbreve': 611,\n    'onequarter': 834,\n    'Scaron': 667,\n    'Scommaaccent': 667,\n    'Ohungarumlaut': 778,\n    'degree': 400,\n    'ograve': 611,\n    'Ccaron': 722,\n    'ugrave': 611,\n    'radical': 549,\n    'Dcaron': 722,\n    'rcommaaccent': 389,\n    'Ntilde': 722,\n    'otilde': 611,\n    'Rcommaaccent': 722,\n    'Lcommaaccent': 611,\n    'Atilde': 722,\n    'Aogonek': 722,\n    'Aring': 722,\n    'Otilde': 778,\n    'zdotaccent': 500,\n    'Ecaron': 667,\n    'Iogonek': 278,\n    'kcommaaccent': 556,\n    'minus': 584,\n    'Icircumflex': 278,\n    'ncaron': 611,\n    'tcommaaccent': 333,\n    'logicalnot': 584,\n    'odieresis': 611,\n    'udieresis': 611,\n    'notequal': 549,\n    'gcommaaccent': 611,\n    'eth': 611,\n    'zcaron': 500,\n    'ncommaaccent': 611,\n    'onesuperior': 333,\n    'imacron': 278,\n    'Euro': 556\n  },\n  'Helvetica-Oblique' : {\n    'space': 278,\n    'exclam': 278,\n    'quotedbl': 355,\n    'numbersign': 556,\n    'dollar': 556,\n    'percent': 889,\n    'ampersand': 667,\n    'quoteright': 222,\n    'parenleft': 333,\n    'parenright': 333,\n    'asterisk': 389,\n    'plus': 584,\n    'comma': 278,\n    'hyphen': 333,\n    'period': 278,\n    'slash': 278,\n    'zero': 556,\n    'one': 556,\n    'two': 556,\n    'three': 556,\n    'four': 556,\n    'five': 556,\n    'six': 556,\n    'seven': 556,\n    'eight': 556,\n    'nine': 556,\n    'colon': 278,\n    'semicolon': 278,\n    'less': 584,\n    'equal': 584,\n    'greater': 584,\n    'question': 556,\n    'at': 1015,\n    'A': 667,\n    'B': 667,\n    'C': 722,\n    'D': 722,\n    'E': 667,\n    'F': 611,\n    'G': 778,\n    'H': 722,\n    'I': 278,\n    'J': 500,\n    'K': 667,\n    'L': 556,\n    'M': 833,\n    'N': 722,\n    'O': 778,\n    'P': 667,\n    'Q': 778,\n    'R': 722,\n    'S': 667,\n    'T': 611,\n    'U': 722,\n    'V': 667,\n    'W': 944,\n    'X': 667,\n    'Y': 667,\n    'Z': 611,\n    'bracketleft': 278,\n    'backslash': 278,\n    'bracketright': 278,\n    'asciicircum': 469,\n    'underscore': 556,\n    'quoteleft': 222,\n    'a': 556,\n    'b': 556,\n    'c': 500,\n    'd': 556,\n    'e': 556,\n    'f': 278,\n    'g': 556,\n    'h': 556,\n    'i': 222,\n    'j': 222,\n    'k': 500,\n    'l': 222,\n    'm': 833,\n    'n': 556,\n    'o': 556,\n    'p': 556,\n    'q': 556,\n    'r': 333,\n    's': 500,\n    't': 278,\n    'u': 556,\n    'v': 500,\n    'w': 722,\n    'x': 500,\n    'y': 500,\n    'z': 500,\n    'braceleft': 334,\n    'bar': 260,\n    'braceright': 334,\n    'asciitilde': 584,\n    'exclamdown': 333,\n    'cent': 556,\n    'sterling': 556,\n    'fraction': 167,\n    'yen': 556,\n    'florin': 556,\n    'section': 556,\n    'currency': 556,\n    'quotesingle': 191,\n    'quotedblleft': 333,\n    'guillemotleft': 556,\n    'guilsinglleft': 333,\n    'guilsinglright': 333,\n    'fi': 500,\n    'fl': 500,\n    'endash': 556,\n    'dagger': 556,\n    'daggerdbl': 556,\n    'periodcentered': 278,\n    'paragraph': 537,\n    'bullet': 350,\n    'quotesinglbase': 222,\n    'quotedblbase': 333,\n    'quotedblright': 333,\n    'guillemotright': 556,\n    'ellipsis': 1000,\n    'perthousand': 1000,\n    'questiondown': 611,\n    'grave': 333,\n    'acute': 333,\n    'circumflex': 333,\n    'tilde': 333,\n    'macron': 333,\n    'breve': 333,\n    'dotaccent': 333,\n    'dieresis': 333,\n    'ring': 333,\n    'cedilla': 333,\n    'hungarumlaut': 333,\n    'ogonek': 333,\n    'caron': 333,\n    'emdash': 1000,\n    'AE': 1000,\n    'ordfeminine': 370,\n    'Lslash': 556,\n    'Oslash': 778,\n    'OE': 1000,\n    'ordmasculine': 365,\n    'ae': 889,\n    'dotlessi': 278,\n    'lslash': 222,\n    'oslash': 611,\n    'oe': 944,\n    'germandbls': 611,\n    'Idieresis': 278,\n    'eacute': 556,\n    'abreve': 556,\n    'uhungarumlaut': 556,\n    'ecaron': 556,\n    'Ydieresis': 667,\n    'divide': 584,\n    'Yacute': 667,\n    'Acircumflex': 667,\n    'aacute': 556,\n    'Ucircumflex': 722,\n    'yacute': 500,\n    'scommaaccent': 500,\n    'ecircumflex': 556,\n    'Uring': 722,\n    'Udieresis': 722,\n    'aogonek': 556,\n    'Uacute': 722,\n    'uogonek': 556,\n    'Edieresis': 667,\n    'Dcroat': 722,\n    'commaaccent': 250,\n    'copyright': 737,\n    'Emacron': 667,\n    'ccaron': 500,\n    'aring': 556,\n    'Ncommaaccent': 722,\n    'lacute': 222,\n    'agrave': 556,\n    'Tcommaaccent': 611,\n    'Cacute': 722,\n    'atilde': 556,\n    'Edotaccent': 667,\n    'scaron': 500,\n    'scedilla': 500,\n    'iacute': 278,\n    'lozenge': 471,\n    'Rcaron': 722,\n    'Gcommaaccent': 778,\n    'ucircumflex': 556,\n    'acircumflex': 556,\n    'Amacron': 667,\n    'rcaron': 333,\n    'ccedilla': 500,\n    'Zdotaccent': 611,\n    'Thorn': 667,\n    'Omacron': 778,\n    'Racute': 722,\n    'Sacute': 667,\n    'dcaron': 643,\n    'Umacron': 722,\n    'uring': 556,\n    'threesuperior': 333,\n    'Ograve': 778,\n    'Agrave': 667,\n    'Abreve': 667,\n    'multiply': 584,\n    'uacute': 556,\n    'Tcaron': 611,\n    'partialdiff': 476,\n    'ydieresis': 500,\n    'Nacute': 722,\n    'icircumflex': 278,\n    'Ecircumflex': 667,\n    'adieresis': 556,\n    'edieresis': 556,\n    'cacute': 500,\n    'nacute': 556,\n    'umacron': 556,\n    'Ncaron': 722,\n    'Iacute': 278,\n    'plusminus': 584,\n    'brokenbar': 260,\n    'registered': 737,\n    'Gbreve': 778,\n    'Idotaccent': 278,\n    'summation': 600,\n    'Egrave': 667,\n    'racute': 333,\n    'omacron': 556,\n    'Zacute': 611,\n    'Zcaron': 611,\n    'greaterequal': 549,\n    'Eth': 722,\n    'Ccedilla': 722,\n    'lcommaaccent': 222,\n    'tcaron': 317,\n    'eogonek': 556,\n    'Uogonek': 722,\n    'Aacute': 667,\n    'Adieresis': 667,\n    'egrave': 556,\n    'zacute': 500,\n    'iogonek': 222,\n    'Oacute': 778,\n    'oacute': 556,\n    'amacron': 556,\n    'sacute': 500,\n    'idieresis': 278,\n    'Ocircumflex': 778,\n    'Ugrave': 722,\n    'Delta': 612,\n    'thorn': 556,\n    'twosuperior': 333,\n    'Odieresis': 778,\n    'mu': 556,\n    'igrave': 278,\n    'ohungarumlaut': 556,\n    'Eogonek': 667,\n    'dcroat': 556,\n    'threequarters': 834,\n    'Scedilla': 667,\n    'lcaron': 299,\n    'Kcommaaccent': 667,\n    'Lacute': 556,\n    'trademark': 1000,\n    'edotaccent': 556,\n    'Igrave': 278,\n    'Imacron': 278,\n    'Lcaron': 556,\n    'onehalf': 834,\n    'lessequal': 549,\n    'ocircumflex': 556,\n    'ntilde': 556,\n    'Uhungarumlaut': 722,\n    'Eacute': 667,\n    'emacron': 556,\n    'gbreve': 556,\n    'onequarter': 834,\n    'Scaron': 667,\n    'Scommaaccent': 667,\n    'Ohungarumlaut': 778,\n    'degree': 400,\n    'ograve': 556,\n    'Ccaron': 722,\n    'ugrave': 556,\n    'radical': 453,\n    'Dcaron': 722,\n    'rcommaaccent': 333,\n    'Ntilde': 722,\n    'otilde': 556,\n    'Rcommaaccent': 722,\n    'Lcommaaccent': 556,\n    'Atilde': 667,\n    'Aogonek': 667,\n    'Aring': 667,\n    'Otilde': 778,\n    'zdotaccent': 500,\n    'Ecaron': 667,\n    'Iogonek': 278,\n    'kcommaaccent': 500,\n    'minus': 584,\n    'Icircumflex': 278,\n    'ncaron': 556,\n    'tcommaaccent': 278,\n    'logicalnot': 584,\n    'odieresis': 556,\n    'udieresis': 556,\n    'notequal': 549,\n    'gcommaaccent': 556,\n    'eth': 556,\n    'zcaron': 500,\n    'ncommaaccent': 556,\n    'onesuperior': 333,\n    'imacron': 278,\n    'Euro': 556\n  },\n  'Symbol': {\n    'space': 250,\n    'exclam': 333,\n    'universal': 713,\n    'numbersign': 500,\n    'existential': 549,\n    'percent': 833,\n    'ampersand': 778,\n    'suchthat': 439,\n    'parenleft': 333,\n    'parenright': 333,\n    'asteriskmath': 500,\n    'plus': 549,\n    'comma': 250,\n    'minus': 549,\n    'period': 250,\n    'slash': 278,\n    'zero': 500,\n    'one': 500,\n    'two': 500,\n    'three': 500,\n    'four': 500,\n    'five': 500,\n    'six': 500,\n    'seven': 500,\n    'eight': 500,\n    'nine': 500,\n    'colon': 278,\n    'semicolon': 278,\n    'less': 549,\n    'equal': 549,\n    'greater': 549,\n    'question': 444,\n    'congruent': 549,\n    'Alpha': 722,\n    'Beta': 667,\n    'Chi': 722,\n    'Delta': 612,\n    'Epsilon': 611,\n    'Phi': 763,\n    'Gamma': 603,\n    'Eta': 722,\n    'Iota': 333,\n    'theta1': 631,\n    'Kappa': 722,\n    'Lambda': 686,\n    'Mu': 889,\n    'Nu': 722,\n    'Omicron': 722,\n    'Pi': 768,\n    'Theta': 741,\n    'Rho': 556,\n    'Sigma': 592,\n    'Tau': 611,\n    'Upsilon': 690,\n    'sigma1': 439,\n    'Omega': 768,\n    'Xi': 645,\n    'Psi': 795,\n    'Zeta': 611,\n    'bracketleft': 333,\n    'therefore': 863,\n    'bracketright': 333,\n    'perpendicular': 658,\n    'underscore': 500,\n    'radicalex': 500,\n    'alpha': 631,\n    'beta': 549,\n    'chi': 549,\n    'delta': 494,\n    'epsilon': 439,\n    'phi': 521,\n    'gamma': 411,\n    'eta': 603,\n    'iota': 329,\n    'phi1': 603,\n    'kappa': 549,\n    'lambda': 549,\n    'mu': 576,\n    'nu': 521,\n    'omicron': 549,\n    'pi': 549,\n    'theta': 521,\n    'rho': 549,\n    'sigma': 603,\n    'tau': 439,\n    'upsilon': 576,\n    'omega1': 713,\n    'omega': 686,\n    'xi': 493,\n    'psi': 686,\n    'zeta': 494,\n    'braceleft': 480,\n    'bar': 200,\n    'braceright': 480,\n    'similar': 549,\n    'Euro': 750,\n    'Upsilon1': 620,\n    'minute': 247,\n    'lessequal': 549,\n    'fraction': 167,\n    'infinity': 713,\n    'florin': 500,\n    'club': 753,\n    'diamond': 753,\n    'heart': 753,\n    'spade': 753,\n    'arrowboth': 1042,\n    'arrowleft': 987,\n    'arrowup': 603,\n    'arrowright': 987,\n    'arrowdown': 603,\n    'degree': 400,\n    'plusminus': 549,\n    'second': 411,\n    'greaterequal': 549,\n    'multiply': 549,\n    'proportional': 713,\n    'partialdiff': 494,\n    'bullet': 460,\n    'divide': 549,\n    'notequal': 549,\n    'equivalence': 549,\n    'approxequal': 549,\n    'ellipsis': 1000,\n    'arrowvertex': 603,\n    'arrowhorizex': 1000,\n    'carriagereturn': 658,\n    'aleph': 823,\n    'Ifraktur': 686,\n    'Rfraktur': 795,\n    'weierstrass': 987,\n    'circlemultiply': 768,\n    'circleplus': 768,\n    'emptyset': 823,\n    'intersection': 768,\n    'union': 768,\n    'propersuperset': 713,\n    'reflexsuperset': 713,\n    'notsubset': 713,\n    'propersubset': 713,\n    'reflexsubset': 713,\n    'element': 713,\n    'notelement': 713,\n    'angle': 768,\n    'gradient': 713,\n    'registerserif': 790,\n    'copyrightserif': 790,\n    'trademarkserif': 890,\n    'product': 823,\n    'radical': 549,\n    'dotmath': 250,\n    'logicalnot': 713,\n    'logicaland': 603,\n    'logicalor': 603,\n    'arrowdblboth': 1042,\n    'arrowdblleft': 987,\n    'arrowdblup': 603,\n    'arrowdblright': 987,\n    'arrowdbldown': 603,\n    'lozenge': 494,\n    'angleleft': 329,\n    'registersans': 790,\n    'copyrightsans': 790,\n    'trademarksans': 786,\n    'summation': 713,\n    'parenlefttp': 384,\n    'parenleftex': 384,\n    'parenleftbt': 384,\n    'bracketlefttp': 384,\n    'bracketleftex': 384,\n    'bracketleftbt': 384,\n    'bracelefttp': 494,\n    'braceleftmid': 494,\n    'braceleftbt': 494,\n    'braceex': 494,\n    'angleright': 329,\n    'integral': 274,\n    'integraltp': 686,\n    'integralex': 686,\n    'integralbt': 686,\n    'parenrighttp': 384,\n    'parenrightex': 384,\n    'parenrightbt': 384,\n    'bracketrighttp': 384,\n    'bracketrightex': 384,\n    'bracketrightbt': 384,\n    'bracerighttp': 494,\n    'bracerightmid': 494,\n    'bracerightbt': 494,\n    'apple': 790\n  },\n  'Times-Roman': {\n    'space': 250,\n    'exclam': 333,\n    'quotedbl': 408,\n    'numbersign': 500,\n    'dollar': 500,\n    'percent': 833,\n    'ampersand': 778,\n    'quoteright': 333,\n    'parenleft': 333,\n    'parenright': 333,\n    'asterisk': 500,\n    'plus': 564,\n    'comma': 250,\n    'hyphen': 333,\n    'period': 250,\n    'slash': 278,\n    'zero': 500,\n    'one': 500,\n    'two': 500,\n    'three': 500,\n    'four': 500,\n    'five': 500,\n    'six': 500,\n    'seven': 500,\n    'eight': 500,\n    'nine': 500,\n    'colon': 278,\n    'semicolon': 278,\n    'less': 564,\n    'equal': 564,\n    'greater': 564,\n    'question': 444,\n    'at': 921,\n    'A': 722,\n    'B': 667,\n    'C': 667,\n    'D': 722,\n    'E': 611,\n    'F': 556,\n    'G': 722,\n    'H': 722,\n    'I': 333,\n    'J': 389,\n    'K': 722,\n    'L': 611,\n    'M': 889,\n    'N': 722,\n    'O': 722,\n    'P': 556,\n    'Q': 722,\n    'R': 667,\n    'S': 556,\n    'T': 611,\n    'U': 722,\n    'V': 722,\n    'W': 944,\n    'X': 722,\n    'Y': 722,\n    'Z': 611,\n    'bracketleft': 333,\n    'backslash': 278,\n    'bracketright': 333,\n    'asciicircum': 469,\n    'underscore': 500,\n    'quoteleft': 333,\n    'a': 444,\n    'b': 500,\n    'c': 444,\n    'd': 500,\n    'e': 444,\n    'f': 333,\n    'g': 500,\n    'h': 500,\n    'i': 278,\n    'j': 278,\n    'k': 500,\n    'l': 278,\n    'm': 778,\n    'n': 500,\n    'o': 500,\n    'p': 500,\n    'q': 500,\n    'r': 333,\n    's': 389,\n    't': 278,\n    'u': 500,\n    'v': 500,\n    'w': 722,\n    'x': 500,\n    'y': 500,\n    'z': 444,\n    'braceleft': 480,\n    'bar': 200,\n    'braceright': 480,\n    'asciitilde': 541,\n    'exclamdown': 333,\n    'cent': 500,\n    'sterling': 500,\n    'fraction': 167,\n    'yen': 500,\n    'florin': 500,\n    'section': 500,\n    'currency': 500,\n    'quotesingle': 180,\n    'quotedblleft': 444,\n    'guillemotleft': 500,\n    'guilsinglleft': 333,\n    'guilsinglright': 333,\n    'fi': 556,\n    'fl': 556,\n    'endash': 500,\n    'dagger': 500,\n    'daggerdbl': 500,\n    'periodcentered': 250,\n    'paragraph': 453,\n    'bullet': 350,\n    'quotesinglbase': 333,\n    'quotedblbase': 444,\n    'quotedblright': 444,\n    'guillemotright': 500,\n    'ellipsis': 1000,\n    'perthousand': 1000,\n    'questiondown': 444,\n    'grave': 333,\n    'acute': 333,\n    'circumflex': 333,\n    'tilde': 333,\n    'macron': 333,\n    'breve': 333,\n    'dotaccent': 333,\n    'dieresis': 333,\n    'ring': 333,\n    'cedilla': 333,\n    'hungarumlaut': 333,\n    'ogonek': 333,\n    'caron': 333,\n    'emdash': 1000,\n    'AE': 889,\n    'ordfeminine': 276,\n    'Lslash': 611,\n    'Oslash': 722,\n    'OE': 889,\n    'ordmasculine': 310,\n    'ae': 667,\n    'dotlessi': 278,\n    'lslash': 278,\n    'oslash': 500,\n    'oe': 722,\n    'germandbls': 500,\n    'Idieresis': 333,\n    'eacute': 444,\n    'abreve': 444,\n    'uhungarumlaut': 500,\n    'ecaron': 444,\n    'Ydieresis': 722,\n    'divide': 564,\n    'Yacute': 722,\n    'Acircumflex': 722,\n    'aacute': 444,\n    'Ucircumflex': 722,\n    'yacute': 500,\n    'scommaaccent': 389,\n    'ecircumflex': 444,\n    'Uring': 722,\n    'Udieresis': 722,\n    'aogonek': 444,\n    'Uacute': 722,\n    'uogonek': 500,\n    'Edieresis': 611,\n    'Dcroat': 722,\n    'commaaccent': 250,\n    'copyright': 760,\n    'Emacron': 611,\n    'ccaron': 444,\n    'aring': 444,\n    'Ncommaaccent': 722,\n    'lacute': 278,\n    'agrave': 444,\n    'Tcommaaccent': 611,\n    'Cacute': 667,\n    'atilde': 444,\n    'Edotaccent': 611,\n    'scaron': 389,\n    'scedilla': 389,\n    'iacute': 278,\n    'lozenge': 471,\n    'Rcaron': 667,\n    'Gcommaaccent': 722,\n    'ucircumflex': 500,\n    'acircumflex': 444,\n    'Amacron': 722,\n    'rcaron': 333,\n    'ccedilla': 444,\n    'Zdotaccent': 611,\n    'Thorn': 556,\n    'Omacron': 722,\n    'Racute': 667,\n    'Sacute': 556,\n    'dcaron': 588,\n    'Umacron': 722,\n    'uring': 500,\n    'threesuperior': 300,\n    'Ograve': 722,\n    'Agrave': 722,\n    'Abreve': 722,\n    'multiply': 564,\n    'uacute': 500,\n    'Tcaron': 611,\n    'partialdiff': 476,\n    'ydieresis': 500,\n    'Nacute': 722,\n    'icircumflex': 278,\n    'Ecircumflex': 611,\n    'adieresis': 444,\n    'edieresis': 444,\n    'cacute': 444,\n    'nacute': 500,\n    'umacron': 500,\n    'Ncaron': 722,\n    'Iacute': 333,\n    'plusminus': 564,\n    'brokenbar': 200,\n    'registered': 760,\n    'Gbreve': 722,\n    'Idotaccent': 333,\n    'summation': 600,\n    'Egrave': 611,\n    'racute': 333,\n    'omacron': 500,\n    'Zacute': 611,\n    'Zcaron': 611,\n    'greaterequal': 549,\n    'Eth': 722,\n    'Ccedilla': 667,\n    'lcommaaccent': 278,\n    'tcaron': 326,\n    'eogonek': 444,\n    'Uogonek': 722,\n    'Aacute': 722,\n    'Adieresis': 722,\n    'egrave': 444,\n    'zacute': 444,\n    'iogonek': 278,\n    'Oacute': 722,\n    'oacute': 500,\n    'amacron': 444,\n    'sacute': 389,\n    'idieresis': 278,\n    'Ocircumflex': 722,\n    'Ugrave': 722,\n    'Delta': 612,\n    'thorn': 500,\n    'twosuperior': 300,\n    'Odieresis': 722,\n    'mu': 500,\n    'igrave': 278,\n    'ohungarumlaut': 500,\n    'Eogonek': 611,\n    'dcroat': 500,\n    'threequarters': 750,\n    'Scedilla': 556,\n    'lcaron': 344,\n    'Kcommaaccent': 722,\n    'Lacute': 611,\n    'trademark': 980,\n    'edotaccent': 444,\n    'Igrave': 333,\n    'Imacron': 333,\n    'Lcaron': 611,\n    'onehalf': 750,\n    'lessequal': 549,\n    'ocircumflex': 500,\n    'ntilde': 500,\n    'Uhungarumlaut': 722,\n    'Eacute': 611,\n    'emacron': 444,\n    'gbreve': 500,\n    'onequarter': 750,\n    'Scaron': 556,\n    'Scommaaccent': 556,\n    'Ohungarumlaut': 722,\n    'degree': 400,\n    'ograve': 500,\n    'Ccaron': 667,\n    'ugrave': 500,\n    'radical': 453,\n    'Dcaron': 722,\n    'rcommaaccent': 333,\n    'Ntilde': 722,\n    'otilde': 500,\n    'Rcommaaccent': 667,\n    'Lcommaaccent': 611,\n    'Atilde': 722,\n    'Aogonek': 722,\n    'Aring': 722,\n    'Otilde': 722,\n    'zdotaccent': 444,\n    'Ecaron': 611,\n    'Iogonek': 333,\n    'kcommaaccent': 500,\n    'minus': 564,\n    'Icircumflex': 333,\n    'ncaron': 500,\n    'tcommaaccent': 278,\n    'logicalnot': 564,\n    'odieresis': 500,\n    'udieresis': 500,\n    'notequal': 549,\n    'gcommaaccent': 500,\n    'eth': 500,\n    'zcaron': 444,\n    'ncommaaccent': 500,\n    'onesuperior': 300,\n    'imacron': 278,\n    'Euro': 500\n  },\n  'Times-Bold': {\n    'space': 250,\n    'exclam': 333,\n    'quotedbl': 555,\n    'numbersign': 500,\n    'dollar': 500,\n    'percent': 1000,\n    'ampersand': 833,\n    'quoteright': 333,\n    'parenleft': 333,\n    'parenright': 333,\n    'asterisk': 500,\n    'plus': 570,\n    'comma': 250,\n    'hyphen': 333,\n    'period': 250,\n    'slash': 278,\n    'zero': 500,\n    'one': 500,\n    'two': 500,\n    'three': 500,\n    'four': 500,\n    'five': 500,\n    'six': 500,\n    'seven': 500,\n    'eight': 500,\n    'nine': 500,\n    'colon': 333,\n    'semicolon': 333,\n    'less': 570,\n    'equal': 570,\n    'greater': 570,\n    'question': 500,\n    'at': 930,\n    'A': 722,\n    'B': 667,\n    'C': 722,\n    'D': 722,\n    'E': 667,\n    'F': 611,\n    'G': 778,\n    'H': 778,\n    'I': 389,\n    'J': 500,\n    'K': 778,\n    'L': 667,\n    'M': 944,\n    'N': 722,\n    'O': 778,\n    'P': 611,\n    'Q': 778,\n    'R': 722,\n    'S': 556,\n    'T': 667,\n    'U': 722,\n    'V': 722,\n    'W': 1000,\n    'X': 722,\n    'Y': 722,\n    'Z': 667,\n    'bracketleft': 333,\n    'backslash': 278,\n    'bracketright': 333,\n    'asciicircum': 581,\n    'underscore': 500,\n    'quoteleft': 333,\n    'a': 500,\n    'b': 556,\n    'c': 444,\n    'd': 556,\n    'e': 444,\n    'f': 333,\n    'g': 500,\n    'h': 556,\n    'i': 278,\n    'j': 333,\n    'k': 556,\n    'l': 278,\n    'm': 833,\n    'n': 556,\n    'o': 500,\n    'p': 556,\n    'q': 556,\n    'r': 444,\n    's': 389,\n    't': 333,\n    'u': 556,\n    'v': 500,\n    'w': 722,\n    'x': 500,\n    'y': 500,\n    'z': 444,\n    'braceleft': 394,\n    'bar': 220,\n    'braceright': 394,\n    'asciitilde': 520,\n    'exclamdown': 333,\n    'cent': 500,\n    'sterling': 500,\n    'fraction': 167,\n    'yen': 500,\n    'florin': 500,\n    'section': 500,\n    'currency': 500,\n    'quotesingle': 278,\n    'quotedblleft': 500,\n    'guillemotleft': 500,\n    'guilsinglleft': 333,\n    'guilsinglright': 333,\n    'fi': 556,\n    'fl': 556,\n    'endash': 500,\n    'dagger': 500,\n    'daggerdbl': 500,\n    'periodcentered': 250,\n    'paragraph': 540,\n    'bullet': 350,\n    'quotesinglbase': 333,\n    'quotedblbase': 500,\n    'quotedblright': 500,\n    'guillemotright': 500,\n    'ellipsis': 1000,\n    'perthousand': 1000,\n    'questiondown': 500,\n    'grave': 333,\n    'acute': 333,\n    'circumflex': 333,\n    'tilde': 333,\n    'macron': 333,\n    'breve': 333,\n    'dotaccent': 333,\n    'dieresis': 333,\n    'ring': 333,\n    'cedilla': 333,\n    'hungarumlaut': 333,\n    'ogonek': 333,\n    'caron': 333,\n    'emdash': 1000,\n    'AE': 1000,\n    'ordfeminine': 300,\n    'Lslash': 667,\n    'Oslash': 778,\n    'OE': 1000,\n    'ordmasculine': 330,\n    'ae': 722,\n    'dotlessi': 278,\n    'lslash': 278,\n    'oslash': 500,\n    'oe': 722,\n    'germandbls': 556,\n    'Idieresis': 389,\n    'eacute': 444,\n    'abreve': 500,\n    'uhungarumlaut': 556,\n    'ecaron': 444,\n    'Ydieresis': 722,\n    'divide': 570,\n    'Yacute': 722,\n    'Acircumflex': 722,\n    'aacute': 500,\n    'Ucircumflex': 722,\n    'yacute': 500,\n    'scommaaccent': 389,\n    'ecircumflex': 444,\n    'Uring': 722,\n    'Udieresis': 722,\n    'aogonek': 500,\n    'Uacute': 722,\n    'uogonek': 556,\n    'Edieresis': 667,\n    'Dcroat': 722,\n    'commaaccent': 250,\n    'copyright': 747,\n    'Emacron': 667,\n    'ccaron': 444,\n    'aring': 500,\n    'Ncommaaccent': 722,\n    'lacute': 278,\n    'agrave': 500,\n    'Tcommaaccent': 667,\n    'Cacute': 722,\n    'atilde': 500,\n    'Edotaccent': 667,\n    'scaron': 389,\n    'scedilla': 389,\n    'iacute': 278,\n    'lozenge': 494,\n    'Rcaron': 722,\n    'Gcommaaccent': 778,\n    'ucircumflex': 556,\n    'acircumflex': 500,\n    'Amacron': 722,\n    'rcaron': 444,\n    'ccedilla': 444,\n    'Zdotaccent': 667,\n    'Thorn': 611,\n    'Omacron': 778,\n    'Racute': 722,\n    'Sacute': 556,\n    'dcaron': 672,\n    'Umacron': 722,\n    'uring': 556,\n    'threesuperior': 300,\n    'Ograve': 778,\n    'Agrave': 722,\n    'Abreve': 722,\n    'multiply': 570,\n    'uacute': 556,\n    'Tcaron': 667,\n    'partialdiff': 494,\n    'ydieresis': 500,\n    'Nacute': 722,\n    'icircumflex': 278,\n    'Ecircumflex': 667,\n    'adieresis': 500,\n    'edieresis': 444,\n    'cacute': 444,\n    'nacute': 556,\n    'umacron': 556,\n    'Ncaron': 722,\n    'Iacute': 389,\n    'plusminus': 570,\n    'brokenbar': 220,\n    'registered': 747,\n    'Gbreve': 778,\n    'Idotaccent': 389,\n    'summation': 600,\n    'Egrave': 667,\n    'racute': 444,\n    'omacron': 500,\n    'Zacute': 667,\n    'Zcaron': 667,\n    'greaterequal': 549,\n    'Eth': 722,\n    'Ccedilla': 722,\n    'lcommaaccent': 278,\n    'tcaron': 416,\n    'eogonek': 444,\n    'Uogonek': 722,\n    'Aacute': 722,\n    'Adieresis': 722,\n    'egrave': 444,\n    'zacute': 444,\n    'iogonek': 278,\n    'Oacute': 778,\n    'oacute': 500,\n    'amacron': 500,\n    'sacute': 389,\n    'idieresis': 278,\n    'Ocircumflex': 778,\n    'Ugrave': 722,\n    'Delta': 612,\n    'thorn': 556,\n    'twosuperior': 300,\n    'Odieresis': 778,\n    'mu': 556,\n    'igrave': 278,\n    'ohungarumlaut': 500,\n    'Eogonek': 667,\n    'dcroat': 556,\n    'threequarters': 750,\n    'Scedilla': 556,\n    'lcaron': 394,\n    'Kcommaaccent': 778,\n    'Lacute': 667,\n    'trademark': 1000,\n    'edotaccent': 444,\n    'Igrave': 389,\n    'Imacron': 389,\n    'Lcaron': 667,\n    'onehalf': 750,\n    'lessequal': 549,\n    'ocircumflex': 500,\n    'ntilde': 556,\n    'Uhungarumlaut': 722,\n    'Eacute': 667,\n    'emacron': 444,\n    'gbreve': 500,\n    'onequarter': 750,\n    'Scaron': 556,\n    'Scommaaccent': 556,\n    'Ohungarumlaut': 778,\n    'degree': 400,\n    'ograve': 500,\n    'Ccaron': 722,\n    'ugrave': 556,\n    'radical': 549,\n    'Dcaron': 722,\n    'rcommaaccent': 444,\n    'Ntilde': 722,\n    'otilde': 500,\n    'Rcommaaccent': 722,\n    'Lcommaaccent': 667,\n    'Atilde': 722,\n    'Aogonek': 722,\n    'Aring': 722,\n    'Otilde': 778,\n    'zdotaccent': 444,\n    'Ecaron': 667,\n    'Iogonek': 389,\n    'kcommaaccent': 556,\n    'minus': 570,\n    'Icircumflex': 389,\n    'ncaron': 556,\n    'tcommaaccent': 333,\n    'logicalnot': 570,\n    'odieresis': 500,\n    'udieresis': 556,\n    'notequal': 549,\n    'gcommaaccent': 500,\n    'eth': 500,\n    'zcaron': 444,\n    'ncommaaccent': 556,\n    'onesuperior': 300,\n    'imacron': 278,\n    'Euro': 500\n  },\n  'Times-BoldItalic': {\n    'space': 250,\n    'exclam': 389,\n    'quotedbl': 555,\n    'numbersign': 500,\n    'dollar': 500,\n    'percent': 833,\n    'ampersand': 778,\n    'quoteright': 333,\n    'parenleft': 333,\n    'parenright': 333,\n    'asterisk': 500,\n    'plus': 570,\n    'comma': 250,\n    'hyphen': 333,\n    'period': 250,\n    'slash': 278,\n    'zero': 500,\n    'one': 500,\n    'two': 500,\n    'three': 500,\n    'four': 500,\n    'five': 500,\n    'six': 500,\n    'seven': 500,\n    'eight': 500,\n    'nine': 500,\n    'colon': 333,\n    'semicolon': 333,\n    'less': 570,\n    'equal': 570,\n    'greater': 570,\n    'question': 500,\n    'at': 832,\n    'A': 667,\n    'B': 667,\n    'C': 667,\n    'D': 722,\n    'E': 667,\n    'F': 667,\n    'G': 722,\n    'H': 778,\n    'I': 389,\n    'J': 500,\n    'K': 667,\n    'L': 611,\n    'M': 889,\n    'N': 722,\n    'O': 722,\n    'P': 611,\n    'Q': 722,\n    'R': 667,\n    'S': 556,\n    'T': 611,\n    'U': 722,\n    'V': 667,\n    'W': 889,\n    'X': 667,\n    'Y': 611,\n    'Z': 611,\n    'bracketleft': 333,\n    'backslash': 278,\n    'bracketright': 333,\n    'asciicircum': 570,\n    'underscore': 500,\n    'quoteleft': 333,\n    'a': 500,\n    'b': 500,\n    'c': 444,\n    'd': 500,\n    'e': 444,\n    'f': 333,\n    'g': 500,\n    'h': 556,\n    'i': 278,\n    'j': 278,\n    'k': 500,\n    'l': 278,\n    'm': 778,\n    'n': 556,\n    'o': 500,\n    'p': 500,\n    'q': 500,\n    'r': 389,\n    's': 389,\n    't': 278,\n    'u': 556,\n    'v': 444,\n    'w': 667,\n    'x': 500,\n    'y': 444,\n    'z': 389,\n    'braceleft': 348,\n    'bar': 220,\n    'braceright': 348,\n    'asciitilde': 570,\n    'exclamdown': 389,\n    'cent': 500,\n    'sterling': 500,\n    'fraction': 167,\n    'yen': 500,\n    'florin': 500,\n    'section': 500,\n    'currency': 500,\n    'quotesingle': 278,\n    'quotedblleft': 500,\n    'guillemotleft': 500,\n    'guilsinglleft': 333,\n    'guilsinglright': 333,\n    'fi': 556,\n    'fl': 556,\n    'endash': 500,\n    'dagger': 500,\n    'daggerdbl': 500,\n    'periodcentered': 250,\n    'paragraph': 500,\n    'bullet': 350,\n    'quotesinglbase': 333,\n    'quotedblbase': 500,\n    'quotedblright': 500,\n    'guillemotright': 500,\n    'ellipsis': 1000,\n    'perthousand': 1000,\n    'questiondown': 500,\n    'grave': 333,\n    'acute': 333,\n    'circumflex': 333,\n    'tilde': 333,\n    'macron': 333,\n    'breve': 333,\n    'dotaccent': 333,\n    'dieresis': 333,\n    'ring': 333,\n    'cedilla': 333,\n    'hungarumlaut': 333,\n    'ogonek': 333,\n    'caron': 333,\n    'emdash': 1000,\n    'AE': 944,\n    'ordfeminine': 266,\n    'Lslash': 611,\n    'Oslash': 722,\n    'OE': 944,\n    'ordmasculine': 300,\n    'ae': 722,\n    'dotlessi': 278,\n    'lslash': 278,\n    'oslash': 500,\n    'oe': 722,\n    'germandbls': 500,\n    'Idieresis': 389,\n    'eacute': 444,\n    'abreve': 500,\n    'uhungarumlaut': 556,\n    'ecaron': 444,\n    'Ydieresis': 611,\n    'divide': 570,\n    'Yacute': 611,\n    'Acircumflex': 667,\n    'aacute': 500,\n    'Ucircumflex': 722,\n    'yacute': 444,\n    'scommaaccent': 389,\n    'ecircumflex': 444,\n    'Uring': 722,\n    'Udieresis': 722,\n    'aogonek': 500,\n    'Uacute': 722,\n    'uogonek': 556,\n    'Edieresis': 667,\n    'Dcroat': 722,\n    'commaaccent': 250,\n    'copyright': 747,\n    'Emacron': 667,\n    'ccaron': 444,\n    'aring': 500,\n    'Ncommaaccent': 722,\n    'lacute': 278,\n    'agrave': 500,\n    'Tcommaaccent': 611,\n    'Cacute': 667,\n    'atilde': 500,\n    'Edotaccent': 667,\n    'scaron': 389,\n    'scedilla': 389,\n    'iacute': 278,\n    'lozenge': 494,\n    'Rcaron': 667,\n    'Gcommaaccent': 722,\n    'ucircumflex': 556,\n    'acircumflex': 500,\n    'Amacron': 667,\n    'rcaron': 389,\n    'ccedilla': 444,\n    'Zdotaccent': 611,\n    'Thorn': 611,\n    'Omacron': 722,\n    'Racute': 667,\n    'Sacute': 556,\n    'dcaron': 608,\n    'Umacron': 722,\n    'uring': 556,\n    'threesuperior': 300,\n    'Ograve': 722,\n    'Agrave': 667,\n    'Abreve': 667,\n    'multiply': 570,\n    'uacute': 556,\n    'Tcaron': 611,\n    'partialdiff': 494,\n    'ydieresis': 444,\n    'Nacute': 722,\n    'icircumflex': 278,\n    'Ecircumflex': 667,\n    'adieresis': 500,\n    'edieresis': 444,\n    'cacute': 444,\n    'nacute': 556,\n    'umacron': 556,\n    'Ncaron': 722,\n    'Iacute': 389,\n    'plusminus': 570,\n    'brokenbar': 220,\n    'registered': 747,\n    'Gbreve': 722,\n    'Idotaccent': 389,\n    'summation': 600,\n    'Egrave': 667,\n    'racute': 389,\n    'omacron': 500,\n    'Zacute': 611,\n    'Zcaron': 611,\n    'greaterequal': 549,\n    'Eth': 722,\n    'Ccedilla': 667,\n    'lcommaaccent': 278,\n    'tcaron': 366,\n    'eogonek': 444,\n    'Uogonek': 722,\n    'Aacute': 667,\n    'Adieresis': 667,\n    'egrave': 444,\n    'zacute': 389,\n    'iogonek': 278,\n    'Oacute': 722,\n    'oacute': 500,\n    'amacron': 500,\n    'sacute': 389,\n    'idieresis': 278,\n    'Ocircumflex': 722,\n    'Ugrave': 722,\n    'Delta': 612,\n    'thorn': 500,\n    'twosuperior': 300,\n    'Odieresis': 722,\n    'mu': 576,\n    'igrave': 278,\n    'ohungarumlaut': 500,\n    'Eogonek': 667,\n    'dcroat': 500,\n    'threequarters': 750,\n    'Scedilla': 556,\n    'lcaron': 382,\n    'Kcommaaccent': 667,\n    'Lacute': 611,\n    'trademark': 1000,\n    'edotaccent': 444,\n    'Igrave': 389,\n    'Imacron': 389,\n    'Lcaron': 611,\n    'onehalf': 750,\n    'lessequal': 549,\n    'ocircumflex': 500,\n    'ntilde': 556,\n    'Uhungarumlaut': 722,\n    'Eacute': 667,\n    'emacron': 444,\n    'gbreve': 500,\n    'onequarter': 750,\n    'Scaron': 556,\n    'Scommaaccent': 556,\n    'Ohungarumlaut': 722,\n    'degree': 400,\n    'ograve': 500,\n    'Ccaron': 667,\n    'ugrave': 556,\n    'radical': 549,\n    'Dcaron': 722,\n    'rcommaaccent': 389,\n    'Ntilde': 722,\n    'otilde': 500,\n    'Rcommaaccent': 667,\n    'Lcommaaccent': 611,\n    'Atilde': 667,\n    'Aogonek': 667,\n    'Aring': 667,\n    'Otilde': 722,\n    'zdotaccent': 389,\n    'Ecaron': 667,\n    'Iogonek': 389,\n    'kcommaaccent': 500,\n    'minus': 606,\n    'Icircumflex': 389,\n    'ncaron': 556,\n    'tcommaaccent': 278,\n    'logicalnot': 606,\n    'odieresis': 500,\n    'udieresis': 556,\n    'notequal': 549,\n    'gcommaaccent': 500,\n    'eth': 500,\n    'zcaron': 389,\n    'ncommaaccent': 556,\n    'onesuperior': 300,\n    'imacron': 278,\n    'Euro': 500\n  },\n  'Times-Italic': {\n    'space': 250,\n    'exclam': 333,\n    'quotedbl': 420,\n    'numbersign': 500,\n    'dollar': 500,\n    'percent': 833,\n    'ampersand': 778,\n    'quoteright': 333,\n    'parenleft': 333,\n    'parenright': 333,\n    'asterisk': 500,\n    'plus': 675,\n    'comma': 250,\n    'hyphen': 333,\n    'period': 250,\n    'slash': 278,\n    'zero': 500,\n    'one': 500,\n    'two': 500,\n    'three': 500,\n    'four': 500,\n    'five': 500,\n    'six': 500,\n    'seven': 500,\n    'eight': 500,\n    'nine': 500,\n    'colon': 333,\n    'semicolon': 333,\n    'less': 675,\n    'equal': 675,\n    'greater': 675,\n    'question': 500,\n    'at': 920,\n    'A': 611,\n    'B': 611,\n    'C': 667,\n    'D': 722,\n    'E': 611,\n    'F': 611,\n    'G': 722,\n    'H': 722,\n    'I': 333,\n    'J': 444,\n    'K': 667,\n    'L': 556,\n    'M': 833,\n    'N': 667,\n    'O': 722,\n    'P': 611,\n    'Q': 722,\n    'R': 611,\n    'S': 500,\n    'T': 556,\n    'U': 722,\n    'V': 611,\n    'W': 833,\n    'X': 611,\n    'Y': 556,\n    'Z': 556,\n    'bracketleft': 389,\n    'backslash': 278,\n    'bracketright': 389,\n    'asciicircum': 422,\n    'underscore': 500,\n    'quoteleft': 333,\n    'a': 500,\n    'b': 500,\n    'c': 444,\n    'd': 500,\n    'e': 444,\n    'f': 278,\n    'g': 500,\n    'h': 500,\n    'i': 278,\n    'j': 278,\n    'k': 444,\n    'l': 278,\n    'm': 722,\n    'n': 500,\n    'o': 500,\n    'p': 500,\n    'q': 500,\n    'r': 389,\n    's': 389,\n    't': 278,\n    'u': 500,\n    'v': 444,\n    'w': 667,\n    'x': 444,\n    'y': 444,\n    'z': 389,\n    'braceleft': 400,\n    'bar': 275,\n    'braceright': 400,\n    'asciitilde': 541,\n    'exclamdown': 389,\n    'cent': 500,\n    'sterling': 500,\n    'fraction': 167,\n    'yen': 500,\n    'florin': 500,\n    'section': 500,\n    'currency': 500,\n    'quotesingle': 214,\n    'quotedblleft': 556,\n    'guillemotleft': 500,\n    'guilsinglleft': 333,\n    'guilsinglright': 333,\n    'fi': 500,\n    'fl': 500,\n    'endash': 500,\n    'dagger': 500,\n    'daggerdbl': 500,\n    'periodcentered': 250,\n    'paragraph': 523,\n    'bullet': 350,\n    'quotesinglbase': 333,\n    'quotedblbase': 556,\n    'quotedblright': 556,\n    'guillemotright': 500,\n    'ellipsis': 889,\n    'perthousand': 1000,\n    'questiondown': 500,\n    'grave': 333,\n    'acute': 333,\n    'circumflex': 333,\n    'tilde': 333,\n    'macron': 333,\n    'breve': 333,\n    'dotaccent': 333,\n    'dieresis': 333,\n    'ring': 333,\n    'cedilla': 333,\n    'hungarumlaut': 333,\n    'ogonek': 333,\n    'caron': 333,\n    'emdash': 889,\n    'AE': 889,\n    'ordfeminine': 276,\n    'Lslash': 556,\n    'Oslash': 722,\n    'OE': 944,\n    'ordmasculine': 310,\n    'ae': 667,\n    'dotlessi': 278,\n    'lslash': 278,\n    'oslash': 500,\n    'oe': 667,\n    'germandbls': 500,\n    'Idieresis': 333,\n    'eacute': 444,\n    'abreve': 500,\n    'uhungarumlaut': 500,\n    'ecaron': 444,\n    'Ydieresis': 556,\n    'divide': 675,\n    'Yacute': 556,\n    'Acircumflex': 611,\n    'aacute': 500,\n    'Ucircumflex': 722,\n    'yacute': 444,\n    'scommaaccent': 389,\n    'ecircumflex': 444,\n    'Uring': 722,\n    'Udieresis': 722,\n    'aogonek': 500,\n    'Uacute': 722,\n    'uogonek': 500,\n    'Edieresis': 611,\n    'Dcroat': 722,\n    'commaaccent': 250,\n    'copyright': 760,\n    'Emacron': 611,\n    'ccaron': 444,\n    'aring': 500,\n    'Ncommaaccent': 667,\n    'lacute': 278,\n    'agrave': 500,\n    'Tcommaaccent': 556,\n    'Cacute': 667,\n    'atilde': 500,\n    'Edotaccent': 611,\n    'scaron': 389,\n    'scedilla': 389,\n    'iacute': 278,\n    'lozenge': 471,\n    'Rcaron': 611,\n    'Gcommaaccent': 722,\n    'ucircumflex': 500,\n    'acircumflex': 500,\n    'Amacron': 611,\n    'rcaron': 389,\n    'ccedilla': 444,\n    'Zdotaccent': 556,\n    'Thorn': 611,\n    'Omacron': 722,\n    'Racute': 611,\n    'Sacute': 500,\n    'dcaron': 544,\n    'Umacron': 722,\n    'uring': 500,\n    'threesuperior': 300,\n    'Ograve': 722,\n    'Agrave': 611,\n    'Abreve': 611,\n    'multiply': 675,\n    'uacute': 500,\n    'Tcaron': 556,\n    'partialdiff': 476,\n    'ydieresis': 444,\n    'Nacute': 667,\n    'icircumflex': 278,\n    'Ecircumflex': 611,\n    'adieresis': 500,\n    'edieresis': 444,\n    'cacute': 444,\n    'nacute': 500,\n    'umacron': 500,\n    'Ncaron': 667,\n    'Iacute': 333,\n    'plusminus': 675,\n    'brokenbar': 275,\n    'registered': 760,\n    'Gbreve': 722,\n    'Idotaccent': 333,\n    'summation': 600,\n    'Egrave': 611,\n    'racute': 389,\n    'omacron': 500,\n    'Zacute': 556,\n    'Zcaron': 556,\n    'greaterequal': 549,\n    'Eth': 722,\n    'Ccedilla': 667,\n    'lcommaaccent': 278,\n    'tcaron': 300,\n    'eogonek': 444,\n    'Uogonek': 722,\n    'Aacute': 611,\n    'Adieresis': 611,\n    'egrave': 444,\n    'zacute': 389,\n    'iogonek': 278,\n    'Oacute': 722,\n    'oacute': 500,\n    'amacron': 500,\n    'sacute': 389,\n    'idieresis': 278,\n    'Ocircumflex': 722,\n    'Ugrave': 722,\n    'Delta': 612,\n    'thorn': 500,\n    'twosuperior': 300,\n    'Odieresis': 722,\n    'mu': 500,\n    'igrave': 278,\n    'ohungarumlaut': 500,\n    'Eogonek': 611,\n    'dcroat': 500,\n    'threequarters': 750,\n    'Scedilla': 500,\n    'lcaron': 300,\n    'Kcommaaccent': 667,\n    'Lacute': 556,\n    'trademark': 980,\n    'edotaccent': 444,\n    'Igrave': 333,\n    'Imacron': 333,\n    'Lcaron': 611,\n    'onehalf': 750,\n    'lessequal': 549,\n    'ocircumflex': 500,\n    'ntilde': 500,\n    'Uhungarumlaut': 722,\n    'Eacute': 611,\n    'emacron': 444,\n    'gbreve': 500,\n    'onequarter': 750,\n    'Scaron': 500,\n    'Scommaaccent': 500,\n    'Ohungarumlaut': 722,\n    'degree': 400,\n    'ograve': 500,\n    'Ccaron': 667,\n    'ugrave': 500,\n    'radical': 453,\n    'Dcaron': 722,\n    'rcommaaccent': 389,\n    'Ntilde': 667,\n    'otilde': 500,\n    'Rcommaaccent': 611,\n    'Lcommaaccent': 556,\n    'Atilde': 611,\n    'Aogonek': 611,\n    'Aring': 611,\n    'Otilde': 722,\n    'zdotaccent': 389,\n    'Ecaron': 611,\n    'Iogonek': 333,\n    'kcommaaccent': 444,\n    'minus': 675,\n    'Icircumflex': 333,\n    'ncaron': 500,\n    'tcommaaccent': 278,\n    'logicalnot': 675,\n    'odieresis': 500,\n    'udieresis': 500,\n    'notequal': 549,\n    'gcommaaccent': 500,\n    'eth': 500,\n    'zcaron': 389,\n    'ncommaaccent': 500,\n    'onesuperior': 300,\n    'imacron': 278,\n    'Euro': 500\n  },\n  'ZapfDingbats': {\n    'space': 278,\n    'a1': 974,\n    'a2': 961,\n    'a202': 974,\n    'a3': 980,\n    'a4': 719,\n    'a5': 789,\n    'a119': 790,\n    'a118': 791,\n    'a117': 690,\n    'a11': 960,\n    'a12': 939,\n    'a13': 549,\n    'a14': 855,\n    'a15': 911,\n    'a16': 933,\n    'a105': 911,\n    'a17': 945,\n    'a18': 974,\n    'a19': 755,\n    'a20': 846,\n    'a21': 762,\n    'a22': 761,\n    'a23': 571,\n    'a24': 677,\n    'a25': 763,\n    'a26': 760,\n    'a27': 759,\n    'a28': 754,\n    'a6': 494,\n    'a7': 552,\n    'a8': 537,\n    'a9': 577,\n    'a10': 692,\n    'a29': 786,\n    'a30': 788,\n    'a31': 788,\n    'a32': 790,\n    'a33': 793,\n    'a34': 794,\n    'a35': 816,\n    'a36': 823,\n    'a37': 789,\n    'a38': 841,\n    'a39': 823,\n    'a40': 833,\n    'a41': 816,\n    'a42': 831,\n    'a43': 923,\n    'a44': 744,\n    'a45': 723,\n    'a46': 749,\n    'a47': 790,\n    'a48': 792,\n    'a49': 695,\n    'a50': 776,\n    'a51': 768,\n    'a52': 792,\n    'a53': 759,\n    'a54': 707,\n    'a55': 708,\n    'a56': 682,\n    'a57': 701,\n    'a58': 826,\n    'a59': 815,\n    'a60': 789,\n    'a61': 789,\n    'a62': 707,\n    'a63': 687,\n    'a64': 696,\n    'a65': 689,\n    'a66': 786,\n    'a67': 787,\n    'a68': 713,\n    'a69': 791,\n    'a70': 785,\n    'a71': 791,\n    'a72': 873,\n    'a73': 761,\n    'a74': 762,\n    'a203': 762,\n    'a75': 759,\n    'a204': 759,\n    'a76': 892,\n    'a77': 892,\n    'a78': 788,\n    'a79': 784,\n    'a81': 438,\n    'a82': 138,\n    'a83': 277,\n    'a84': 415,\n    'a97': 392,\n    'a98': 392,\n    'a99': 668,\n    'a100': 668,\n    'a89': 390,\n    'a90': 390,\n    'a93': 317,\n    'a94': 317,\n    'a91': 276,\n    'a92': 276,\n    'a205': 509,\n    'a85': 509,\n    'a206': 410,\n    'a86': 410,\n    'a87': 234,\n    'a88': 234,\n    'a95': 334,\n    'a96': 334,\n    'a101': 732,\n    'a102': 544,\n    'a103': 544,\n    'a104': 910,\n    'a106': 667,\n    'a107': 760,\n    'a108': 760,\n    'a112': 776,\n    'a111': 595,\n    'a110': 694,\n    'a109': 626,\n    'a120': 788,\n    'a121': 788,\n    'a122': 788,\n    'a123': 788,\n    'a124': 788,\n    'a125': 788,\n    'a126': 788,\n    'a127': 788,\n    'a128': 788,\n    'a129': 788,\n    'a130': 788,\n    'a131': 788,\n    'a132': 788,\n    'a133': 788,\n    'a134': 788,\n    'a135': 788,\n    'a136': 788,\n    'a137': 788,\n    'a138': 788,\n    'a139': 788,\n    'a140': 788,\n    'a141': 788,\n    'a142': 788,\n    'a143': 788,\n    'a144': 788,\n    'a145': 788,\n    'a146': 788,\n    'a147': 788,\n    'a148': 788,\n    'a149': 788,\n    'a150': 788,\n    'a151': 788,\n    'a152': 788,\n    'a153': 788,\n    'a154': 788,\n    'a155': 788,\n    'a156': 788,\n    'a157': 788,\n    'a158': 788,\n    'a159': 788,\n    'a160': 894,\n    'a161': 838,\n    'a163': 1016,\n    'a164': 458,\n    'a196': 748,\n    'a165': 924,\n    'a192': 748,\n    'a166': 918,\n    'a167': 927,\n    'a168': 928,\n    'a169': 928,\n    'a170': 834,\n    'a171': 873,\n    'a172': 828,\n    'a173': 924,\n    'a162': 924,\n    'a174': 917,\n    'a175': 930,\n    'a176': 931,\n    'a177': 463,\n    'a178': 883,\n    'a179': 836,\n    'a193': 836,\n    'a180': 867,\n    'a199': 867,\n    'a181': 696,\n    'a200': 696,\n    'a182': 874,\n    'a201': 874,\n    'a183': 760,\n    'a184': 946,\n    'a197': 771,\n    'a185': 865,\n    'a194': 771,\n    'a198': 888,\n    'a186': 967,\n    'a195': 888,\n    'a187': 831,\n    'a188': 873,\n    'a189': 927,\n    'a190': 970,\n    'a191': 918\n  }\n};\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals Ascii85Stream, AsciiHexStream, CCITTFaxStream, Cmd, Dict, error,\n           FlateStream, isArray, isCmd, isDict, isInt, isName, isNum, isRef,\n           isString, Jbig2Stream, JpegStream, JpxStream, LZWStream, Name,\n           NullStream, PredictorStream, Ref, RunLengthStream, warn, info */\n\n'use strict';\n\nvar EOF = {};\n\nfunction isEOF(v) {\n  return v == EOF;\n}\n\nvar Parser = (function ParserClosure() {\n  function Parser(lexer, allowStreams, xref) {\n    this.lexer = lexer;\n    this.allowStreams = allowStreams;\n    this.xref = xref;\n    this.refill();\n  }\n\n  Parser.prototype = {\n    saveState: function Parser_saveState() {\n      this.state = {\n        buf1: this.buf1,\n        buf2: this.buf2,\n        streamPos: this.lexer.stream.pos\n      };\n    },\n\n    restoreState: function Parser_restoreState() {\n      var state = this.state;\n      this.buf1 = state.buf1;\n      this.buf2 = state.buf2;\n      this.lexer.stream.pos = state.streamPos;\n    },\n\n    refill: function Parser_refill() {\n      this.buf1 = this.lexer.getObj();\n      this.buf2 = this.lexer.getObj();\n    },\n    shift: function Parser_shift() {\n      if (isCmd(this.buf2, 'ID')) {\n        this.buf1 = this.buf2;\n        this.buf2 = null;\n      } else {\n        this.buf1 = this.buf2;\n        this.buf2 = this.lexer.getObj();\n      }\n    },\n    getObj: function Parser_getObj(cipherTransform) {\n      if (isCmd(this.buf1, 'BI')) { // inline image\n        this.shift();\n        return this.makeInlineImage(cipherTransform);\n      }\n      if (isCmd(this.buf1, '[')) { // array\n        this.shift();\n        var array = [];\n        while (!isCmd(this.buf1, ']') && !isEOF(this.buf1))\n          array.push(this.getObj(cipherTransform));\n        if (isEOF(this.buf1))\n          error('End of file inside array');\n        this.shift();\n        return array;\n      }\n      if (isCmd(this.buf1, '<<')) { // dictionary or stream\n        this.shift();\n        var dict = new Dict(this.xref);\n        while (!isCmd(this.buf1, '>>') && !isEOF(this.buf1)) {\n          if (!isName(this.buf1)) {\n            info('Malformed dictionary, key must be a name object');\n            this.shift();\n            continue;\n          }\n\n          var key = this.buf1.name;\n          this.shift();\n          if (isEOF(this.buf1))\n            break;\n          dict.set(key, this.getObj(cipherTransform));\n        }\n        if (isEOF(this.buf1))\n          error('End of file inside dictionary');\n\n        // stream objects are not allowed inside content streams or\n        // object streams\n        if (isCmd(this.buf2, 'stream')) {\n          return this.allowStreams ?\n            this.makeStream(dict, cipherTransform) : dict;\n        }\n        this.shift();\n        return dict;\n      }\n      if (isInt(this.buf1)) { // indirect reference or integer\n        var num = this.buf1;\n        this.shift();\n        if (isInt(this.buf1) && isCmd(this.buf2, 'R')) {\n          var ref = new Ref(num, this.buf1);\n          this.shift();\n          this.shift();\n          return ref;\n        }\n        return num;\n      }\n      if (isString(this.buf1)) { // string\n        var str = this.buf1;\n        this.shift();\n        if (cipherTransform)\n          str = cipherTransform.decryptString(str);\n        return str;\n      }\n\n      // simple object\n      var obj = this.buf1;\n      this.shift();\n      return obj;\n    },\n    makeInlineImage: function Parser_makeInlineImage(cipherTransform) {\n      var lexer = this.lexer;\n      var stream = lexer.stream;\n\n      // parse dictionary\n      var dict = new Dict();\n      while (!isCmd(this.buf1, 'ID') && !isEOF(this.buf1)) {\n        if (!isName(this.buf1))\n          error('Dictionary key must be a name object');\n\n        var key = this.buf1.name;\n        this.shift();\n        if (isEOF(this.buf1))\n          break;\n        dict.set(key, this.getObj(cipherTransform));\n      }\n\n      // parse image stream\n      var startPos = stream.pos;\n\n      // searching for the /EI\\s/\n      var state = 0, ch, i, ii;\n      while (state != 4 && (ch = stream.getByte()) !== -1) {\n        switch (ch | 0) {\n          case 0x20:\n          case 0x0D:\n          case 0x0A:\n            // let's check next five bytes to be ASCII... just be sure\n            var followingBytes = stream.peekBytes(5);\n            for (i = 0, ii = followingBytes.length; i < ii; i++) {\n              ch = followingBytes[i];\n              if (ch !== 0x0A && ch !== 0x0D && (ch < 0x20 || ch > 0x7F)) {\n                // not a LF, CR, SPACE or any visible ASCII character\n                state = 0;\n                break; // some binary stuff found, resetting the state\n              }\n            }\n            state = state === 3 ? 4 : 0;\n            break;\n          case 0x45:\n            state = 2;\n            break;\n          case 0x49:\n            state = state === 2 ? 3 : 0;\n            break;\n          default:\n            state = 0;\n            break;\n        }\n      }\n\n      var length = (stream.pos - 4) - startPos;\n      var imageStream = stream.makeSubStream(startPos, length, dict);\n      if (cipherTransform)\n        imageStream = cipherTransform.createStream(imageStream);\n      imageStream = this.filter(imageStream, dict, length);\n      imageStream.dict = dict;\n\n      this.buf2 = Cmd.get('EI');\n      this.shift();\n\n      return imageStream;\n    },\n    fetchIfRef: function Parser_fetchIfRef(obj) {\n      // not relying on the xref.fetchIfRef -- xref might not be set\n      return isRef(obj) ? this.xref.fetch(obj) : obj;\n    },\n    makeStream: function Parser_makeStream(dict, cipherTransform) {\n      var lexer = this.lexer;\n      var stream = lexer.stream;\n\n      // get stream start position\n      lexer.skipToNextLine();\n      var pos = stream.pos - 1;\n\n      // get length\n      var length = this.fetchIfRef(dict.get('Length'));\n      if (!isInt(length)) {\n        info('Bad ' + length + ' attribute in stream');\n        length = 0;\n      }\n\n      // skip over the stream data\n      stream.pos = pos + length;\n      lexer.nextChar();\n\n      this.shift(); // '>>'\n      this.shift(); // 'stream'\n      if (!isCmd(this.buf1, 'endstream')) {\n        // bad stream length, scanning for endstream\n        stream.pos = pos;\n        var SCAN_BLOCK_SIZE = 2048;\n        var ENDSTREAM_SIGNATURE_LENGTH = 9;\n        var ENDSTREAM_SIGNATURE = [0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65,\n                                   0x61, 0x6D];\n        var skipped = 0, found = false;\n        while (stream.pos < stream.end) {\n          var scanBytes = stream.peekBytes(SCAN_BLOCK_SIZE);\n          var scanLength = scanBytes.length - ENDSTREAM_SIGNATURE_LENGTH;\n          var found = false, i, ii, j;\n          for (i = 0, j = 0; i < scanLength; i++) {\n            var b = scanBytes[i];\n            if (b !== ENDSTREAM_SIGNATURE[j]) {\n              i -= j;\n              j = 0;\n            } else {\n              j++;\n              if (j >= ENDSTREAM_SIGNATURE_LENGTH) {\n                found = true;\n                break;\n              }\n            }\n          }\n          if (found) {\n            skipped += i - ENDSTREAM_SIGNATURE_LENGTH;\n            stream.pos += i - ENDSTREAM_SIGNATURE_LENGTH;\n            break;\n          }\n          skipped += scanLength;\n          stream.pos += scanLength;\n        }\n        if (!found) {\n          error('Missing endstream');\n        }\n        length = skipped;\n\n        lexer.nextChar();\n        this.shift();\n        this.shift();\n      }\n      this.shift(); // 'endstream'\n\n      stream = stream.makeSubStream(pos, length, dict);\n      if (cipherTransform)\n        stream = cipherTransform.createStream(stream);\n      stream = this.filter(stream, dict, length);\n      stream.dict = dict;\n      return stream;\n    },\n    filter: function Parser_filter(stream, dict, length) {\n      var filter = this.fetchIfRef(dict.get('Filter', 'F'));\n      var params = this.fetchIfRef(dict.get('DecodeParms', 'DP'));\n      if (isName(filter))\n        return this.makeFilter(stream, filter.name, length, params);\n      if (isArray(filter)) {\n        var filterArray = filter;\n        var paramsArray = params;\n        for (var i = 0, ii = filterArray.length; i < ii; ++i) {\n          filter = filterArray[i];\n          if (!isName(filter))\n            error('Bad filter name: ' + filter);\n\n          params = null;\n          if (isArray(paramsArray) && (i in paramsArray))\n            params = paramsArray[i];\n          stream = this.makeFilter(stream, filter.name, length, params);\n          // after the first stream the length variable is invalid\n          length = null;\n        }\n      }\n      return stream;\n    },\n    makeFilter: function Parser_makeFilter(stream, name, length, params) {\n      if (stream.dict.get('Length') === 0) {\n        return new NullStream(stream);\n      }\n      if (name == 'FlateDecode' || name == 'Fl') {\n        if (params) {\n          return new PredictorStream(new FlateStream(stream), params);\n        }\n        return new FlateStream(stream);\n      }\n      if (name == 'LZWDecode' || name == 'LZW') {\n        var earlyChange = 1;\n        if (params) {\n          if (params.has('EarlyChange'))\n            earlyChange = params.get('EarlyChange');\n          return new PredictorStream(\n            new LZWStream(stream, earlyChange), params);\n        }\n        return new LZWStream(stream, earlyChange);\n      }\n      if (name == 'DCTDecode' || name == 'DCT') {\n        var bytes = stream.getBytes(length);\n        return new JpegStream(bytes, stream.dict, this.xref);\n      }\n      if (name == 'JPXDecode' || name == 'JPX') {\n        var bytes = stream.getBytes(length);\n        return new JpxStream(bytes, stream.dict);\n      }\n      if (name == 'ASCII85Decode' || name == 'A85') {\n        return new Ascii85Stream(stream);\n      }\n      if (name == 'ASCIIHexDecode' || name == 'AHx') {\n        return new AsciiHexStream(stream);\n      }\n      if (name == 'CCITTFaxDecode' || name == 'CCF') {\n        return new CCITTFaxStream(stream, params);\n      }\n      if (name == 'RunLengthDecode' || name == 'RL') {\n        return new RunLengthStream(stream);\n      }\n      if (name == 'JBIG2Decode') {\n        var bytes = stream.getBytes(length);\n        return new Jbig2Stream(bytes, stream.dict);\n      }\n      warn('filter \"' + name + '\" not supported yet');\n      return stream;\n    }\n  };\n\n  return Parser;\n})();\n\nvar Lexer = (function LexerClosure() {\n  function Lexer(stream, knownCommands) {\n    this.stream = stream;\n    this.nextChar();\n\n    // The PDFs might have \"glued\" commands with other commands, operands or\n    // literals, e.g. \"q1\". The knownCommands is a dictionary of the valid\n    // commands and their prefixes. The prefixes are built the following way:\n    // if there a command that is a prefix of the other valid command or\n    // literal (e.g. 'f' and 'false') the following prefixes must be included,\n    // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no\n    // other commands or literals as a prefix. The knowCommands is optional.\n    this.knownCommands = knownCommands;\n  }\n\n  Lexer.isSpace = function Lexer_isSpace(ch) {\n    // space is one of the following characters: SPACE, TAB, CR, or LF\n    return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n  };\n\n  // A '1' in this array means the character is white space.  A '1' or\n  // '2' means the character ends a name or command.\n  var specialChars = [\n    1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,   // 0x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 1x\n    1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2,   // 2x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0,   // 3x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 4x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0,   // 5x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 6x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0,   // 7x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 8x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 9x\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // ax\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // bx\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // cx\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // dx\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // ex\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0    // fx\n  ];\n\n  function toHexDigit(ch) {\n    if (ch >= 0x30 && ch <= 0x39) { // '0'-'9'\n      return ch & 0x0F;\n    }\n    if ((ch >= 0x41 && ch <= 0x46) || (ch >= 0x61 && ch <= 0x66)) {\n      // 'A'-'F', 'a'-'f'\n      return (ch & 0x0F) + 9;\n    }\n    return -1;\n  }\n\n  Lexer.prototype = {\n    nextChar: function Lexer_nextChar() {\n      return (this.currentChar = this.stream.getByte());\n    },\n    getNumber: function Lexer_getNumber() {\n      var floating = false;\n      var ch = this.currentChar;\n      var str = String.fromCharCode(ch);\n      while ((ch = this.nextChar()) >= 0) {\n        if (ch === 0x2E && !floating) { // '.'\n          str += '.';\n          floating = true;\n        } else if (ch === 0x2D) { // '-'\n          // ignore minus signs in the middle of numbers to match\n          // Adobe's behavior\n          warn('Badly formated number');\n        } else if (ch >= 0x30 && ch <= 0x39) { // '0'-'9'\n          str += String.fromCharCode(ch);\n        } else if (ch === 0x45 || ch === 0x65) { // 'E', 'e'\n          floating = true;\n        } else {\n          // the last character doesn't belong to us\n          break;\n        }\n      }\n      var value = parseFloat(str);\n      if (isNaN(value))\n        error('Invalid floating point number: ' + value);\n      return value;\n    },\n    getString: function Lexer_getString() {\n      var numParen = 1;\n      var done = false;\n      var str = '';\n\n      var ch = this.nextChar();\n      while (true) {\n        var charBuffered = false;\n        switch (ch | 0) {\n          case -1:\n            warn('Unterminated string');\n            done = true;\n            break;\n          case 0x28: // '('\n            ++numParen;\n            str += '(';\n            break;\n          case 0x29: // ')'\n            if (--numParen === 0) {\n              this.nextChar(); // consume strings ')'\n              done = true;\n            } else {\n              str += ')';\n            }\n            break;\n          case 0x5C: // '\\\\'\n            ch = this.nextChar();\n            switch (ch) {\n              case -1:\n                warn('Unterminated string');\n                done = true;\n                break;\n              case 0x6E: // 'n'\n                str += '\\n';\n                break;\n              case 0x72: // 'r'\n                str += '\\r';\n                break;\n              case 0x74: // 't'\n                str += '\\t';\n                break;\n              case 0x62: // 'b'\n                str += '\\b';\n                break;\n              case 0x66: // 'f'\n                str += '\\f';\n                break;\n              case 0x5C: // '\\'\n              case 0x28: // '('\n              case 0x29: // ')'\n                str += String.fromCharCode(ch);\n                break;\n              case 0x30: case 0x31: case 0x32: case 0x33: // '0'-'3'\n              case 0x34: case 0x35: case 0x36: case 0x37: // '4'-'7'\n                var x = ch & 0x0F;\n                ch = this.nextChar();\n                charBuffered = true;\n                if (ch >= 0x30 && ch <= 0x37) { // '0'-'7'\n                  x = (x << 3) + (ch & 0x0F);\n                  ch = this.nextChar();\n                  if (ch >= 0x30 && ch <= 0x37) {  // '0'-'7'\n                    charBuffered = false;\n                    x = (x << 3) + (ch & 0x0F);\n                  }\n                }\n\n                str += String.fromCharCode(x);\n                break;\n              case 0x0A: case 0x0D: // LF, CR\n                break;\n              default:\n                str += String.fromCharCode(ch);\n                break;\n            }\n            break;\n          default:\n            str += String.fromCharCode(ch);\n            break;\n        }\n        if (done) {\n          break;\n        }\n        if (!charBuffered) {\n          ch = this.nextChar();\n        }\n      }\n      return str;\n    },\n    getName: function Lexer_getName() {\n      var str = '', ch;\n      while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n        if (ch === 0x23) { // '#'\n          ch = this.nextChar();\n          var x = toHexDigit(ch);\n          if (x != -1) {\n            var x2 = toHexDigit(this.nextChar());\n            if (x2 == -1)\n              error('Illegal digit in hex char in name: ' + x2);\n            str += String.fromCharCode((x << 4) | x2);\n          } else {\n            str += '#';\n            str += String.fromCharCode(ch);\n          }\n        } else {\n          str += String.fromCharCode(ch);\n        }\n      }\n      if (str.length > 127) {\n        warn('Name token is longer than allowed by the spec: ' + str.length);\n      }\n      return new Name(str);\n    },\n    getHexString: function Lexer_getHexString() {\n      var str = '';\n      var ch = this.currentChar;\n      var isFirstHex = true;\n      var firstDigit;\n      var secondDigit;\n      while (true) {\n        if (ch < 0) {\n          warn('Unterminated hex string');\n          break;\n        } else if (ch === 0x3E) { // '>'\n          this.nextChar();\n          break;\n        } else if (specialChars[ch] === 1) {\n          ch = this.nextChar();\n          continue;\n        } else {\n          if (isFirstHex) {\n            firstDigit = toHexDigit(ch);\n            if (firstDigit === -1) {\n              warn('Ignoring invalid character \"' + ch + '\" in hex string');\n              ch = this.nextChar();\n              continue;\n            }\n          } else {\n            secondDigit = toHexDigit(ch);\n            if (secondDigit === -1) {\n              warn('Ignoring invalid character \"' + ch + '\" in hex string');\n              ch = this.nextChar();\n              continue;\n            }\n            str += String.fromCharCode((firstDigit << 4) | secondDigit);\n          }\n          isFirstHex = !isFirstHex;\n          ch = this.nextChar();\n        }\n      }\n      return str;\n    },\n    getObj: function Lexer_getObj() {\n      // skip whitespace and comments\n      var comment = false;\n      var ch = this.currentChar;\n      while (true) {\n        if (ch < 0) {\n          return EOF;\n        }\n        if (comment) {\n          if (ch === 0x0A || ch == 0x0D) // LF, CR\n            comment = false;\n        } else if (ch === 0x25) { // '%'\n          comment = true;\n        } else if (specialChars[ch] !== 1) {\n          break;\n        }\n        ch = this.nextChar();\n      }\n\n      // start reading token\n      switch (ch | 0) {\n        case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: // '0'-'4'\n        case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: // '5'-'9'\n        case 0x2B: case 0x2D: case 0x2E: // '+', '-', '.'\n          return this.getNumber();\n        case 0x28: // '('\n          return this.getString();\n        case 0x2F: // '/'\n          return this.getName();\n        // array punctuation\n        case 0x5B: // '['\n          this.nextChar();\n          return Cmd.get('[');\n        case 0x5D: // ']'\n          this.nextChar();\n          return Cmd.get(']');\n        // hex string or dict punctuation\n        case 0x3C: // '<'\n          ch = this.nextChar();\n          if (ch === 0x3C) {\n            // dict punctuation\n            this.nextChar();\n            return Cmd.get('<<');\n          }\n          return this.getHexString();\n        // dict punctuation\n        case 0x3E: // '>'\n          ch = this.nextChar();\n          if (ch === 0x3E) {\n            this.nextChar();\n            return Cmd.get('>>');\n          }\n          return Cmd.get('>');\n        case 0x7B: // '{'\n          this.nextChar();\n          return Cmd.get('{');\n        case 0x7D: // '}'\n          this.nextChar();\n          return Cmd.get('}');\n        case 0x29: // ')'\n          error('Illegal character: ' + ch);\n          break;\n      }\n\n      // command\n      var str = String.fromCharCode(ch);\n      var knownCommands = this.knownCommands;\n      var knownCommandFound = knownCommands && (str in knownCommands);\n      while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n        // stop if known command is found and next character does not make\n        // the str a command\n        var possibleCommand = str + String.fromCharCode(ch);\n        if (knownCommandFound && !(possibleCommand in knownCommands)) {\n          break;\n        }\n        if (str.length == 128)\n          error('Command token too long: ' + str.length);\n        str = possibleCommand;\n        knownCommandFound = knownCommands && (str in knownCommands);\n      }\n      if (str == 'true')\n        return true;\n      if (str == 'false')\n        return false;\n      if (str == 'null')\n        return null;\n      return Cmd.get(str);\n    },\n    skipToNextLine: function Lexer_skipToNextLine() {\n      var stream = this.stream;\n      var ch = this.currentChar;\n      while (ch >= 0) {\n        if (ch === 0x0D) { // CR\n          ch = this.nextChar();\n          if (ch === 0x0A) { // LF\n            this.nextChar();\n          }\n          break;\n        } else if (ch === 0x0A) { // LF\n          this.nextChar();\n          break;\n        }\n        ch = this.nextChar();\n      }\n    }\n  };\n\n  return Lexer;\n})();\n\nvar Linearization = (function LinearizationClosure() {\n  function Linearization(stream) {\n    this.parser = new Parser(new Lexer(stream), false, null);\n    var obj1 = this.parser.getObj();\n    var obj2 = this.parser.getObj();\n    var obj3 = this.parser.getObj();\n    this.linDict = this.parser.getObj();\n    if (isInt(obj1) && isInt(obj2) && isCmd(obj3, 'obj') &&\n        isDict(this.linDict)) {\n      var obj = this.linDict.get('Linearized');\n      if (!(isNum(obj) && obj > 0))\n        this.linDict = null;\n    }\n  }\n\n  Linearization.prototype = {\n    getInt: function Linearization_getInt(name) {\n      var linDict = this.linDict;\n      var obj;\n      if (isDict(linDict) &&\n          isInt(obj = linDict.get(name)) &&\n          obj > 0) {\n        return obj;\n      }\n      error('\"' + name + '\" field in linearization table is invalid');\n    },\n    getHint: function Linearization_getHint(index) {\n      var linDict = this.linDict;\n      var obj1, obj2;\n      if (isDict(linDict) &&\n          isArray(obj1 = linDict.get('H')) &&\n          obj1.length >= 2 &&\n          isInt(obj2 = obj1[index]) &&\n          obj2 > 0) {\n        return obj2;\n      }\n      error('Hints table in linearization table is invalid: ' + index);\n    },\n    get length() {\n      if (!isDict(this.linDict))\n        return 0;\n      return this.getInt('L');\n    },\n    get hintsOffset() {\n      return this.getHint(0);\n    },\n    get hintsLength() {\n      return this.getHint(1);\n    },\n    get hintsOffset2() {\n      return this.getHint(2);\n    },\n    get hintsLenth2() {\n      return this.getHint(3);\n    },\n    get objectNumberFirst() {\n      return this.getInt('O');\n    },\n    get endFirst() {\n      return this.getInt('E');\n    },\n    get numPages() {\n      return this.getInt('N');\n    },\n    get mainXRefEntriesOffset() {\n      return this.getInt('T');\n    },\n    get pageFirst() {\n      return this.getInt('P');\n    }\n  };\n\n  return Linearization;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals bytesToString, ColorSpace, Dict, EOF, error, info, Jbig2Image,\n           JpegImage, JpxImage, Lexer, Util, PDFJS */\n\n'use strict';\n\nvar Stream = (function StreamClosure() {\n  function Stream(arrayBuffer, start, length, dict) {\n    this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer :\n      new Uint8Array(arrayBuffer);\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = (start + length) || this.bytes.length;\n    this.dict = dict;\n  }\n\n  // required methods for a stream. if a particular stream does not\n  // implement these, an error should be thrown\n  Stream.prototype = {\n    get length() {\n      return this.end - this.start;\n    },\n    getByte: function Stream_getByte() {\n      if (this.pos >= this.end)\n        return -1;\n      return this.bytes[this.pos++];\n    },\n    // returns subarray of original buffer\n    // should only be read\n    getBytes: function Stream_getBytes(length) {\n      var bytes = this.bytes;\n      var pos = this.pos;\n      var strEnd = this.end;\n\n      if (!length)\n        return bytes.subarray(pos, strEnd);\n\n      var end = pos + length;\n      if (end > strEnd)\n        end = strEnd;\n\n      this.pos = end;\n      return bytes.subarray(pos, end);\n    },\n    peekBytes: function Stream_peekBytes(length) {\n      var bytes = this.getBytes(length);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n    skip: function Stream_skip(n) {\n      if (!n)\n        n = 1;\n      this.pos += n;\n    },\n    reset: function Stream_reset() {\n      this.pos = this.start;\n    },\n    moveStart: function Stream_moveStart() {\n      this.start = this.pos;\n    },\n    makeSubStream: function Stream_makeSubStream(start, length, dict) {\n      return new Stream(this.bytes.buffer, start, length, dict);\n    },\n    isStream: true\n  };\n\n  return Stream;\n})();\n\nvar StringStream = (function StringStreamClosure() {\n  function StringStream(str) {\n    var length = str.length;\n    var bytes = new Uint8Array(length);\n    for (var n = 0; n < length; ++n)\n      bytes[n] = str.charCodeAt(n);\n    Stream.call(this, bytes);\n  }\n\n  StringStream.prototype = Stream.prototype;\n\n  return StringStream;\n})();\n\n// super class for the decoding streams\nvar DecodeStream = (function DecodeStreamClosure() {\n  function DecodeStream() {\n    this.pos = 0;\n    this.bufferLength = 0;\n    this.eof = false;\n    this.buffer = null;\n  }\n\n  DecodeStream.prototype = {\n    ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n      var buffer = this.buffer;\n      var current = buffer ? buffer.byteLength : 0;\n      if (requested < current)\n        return buffer;\n      var size = 512;\n      while (size < requested)\n        size <<= 1;\n      var buffer2 = new Uint8Array(size);\n      for (var i = 0; i < current; ++i)\n        buffer2[i] = buffer[i];\n      return (this.buffer = buffer2);\n    },\n    getByte: function DecodeStream_getByte() {\n      var pos = this.pos;\n      while (this.bufferLength <= pos) {\n        if (this.eof)\n          return -1;\n        this.readBlock();\n      }\n      return this.buffer[this.pos++];\n    },\n    getBytes: function DecodeStream_getBytes(length) {\n      var end, pos = this.pos;\n\n      if (length) {\n        this.ensureBuffer(pos + length);\n        end = pos + length;\n\n        while (!this.eof && this.bufferLength < end)\n          this.readBlock();\n\n        var bufEnd = this.bufferLength;\n        if (end > bufEnd)\n          end = bufEnd;\n      } else {\n        while (!this.eof)\n          this.readBlock();\n\n        end = this.bufferLength;\n\n        // checking if bufferLength is still 0 then\n        // the buffer has to be initialized\n        if (!end)\n          this.buffer = new Uint8Array(0);\n      }\n\n      this.pos = end;\n      return this.buffer.subarray(pos, end);\n    },\n    peekBytes: function DecodeStream_peekBytes(length) {\n      var bytes = this.getBytes(length);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n    makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n      var end = start + length;\n      while (this.bufferLength <= end && !this.eof)\n        this.readBlock();\n      return new Stream(this.buffer, start, length, dict);\n    },\n    skip: function Stream_skip(n) {\n      if (!n)\n        n = 1;\n      this.pos += n;\n    },\n    reset: function DecodeStream_reset() {\n      this.pos = 0;\n    },\n    getBaseStreams: function DecodeStream_getBaseStreams() {\n      if (this.str && this.str.getBaseStreams) {\n        return this.str.getBaseStreams();\n      }\n      return [];\n    }\n  };\n\n  return DecodeStream;\n})();\n\nvar FakeStream = (function FakeStreamClosure() {\n  function FakeStream(stream) {\n    this.dict = stream.dict;\n    DecodeStream.call(this);\n  }\n\n  FakeStream.prototype = Object.create(DecodeStream.prototype);\n  FakeStream.prototype.readBlock = function FakeStream_readBlock() {\n    var bufferLength = this.bufferLength;\n    bufferLength += 1024;\n    var buffer = this.ensureBuffer(bufferLength);\n    this.bufferLength = bufferLength;\n  };\n\n  FakeStream.prototype.getBytes = function FakeStream_getBytes(length) {\n    var end, pos = this.pos;\n\n    if (length) {\n      this.ensureBuffer(pos + length);\n      end = pos + length;\n\n      while (!this.eof && this.bufferLength < end)\n        this.readBlock();\n\n      var bufEnd = this.bufferLength;\n      if (end > bufEnd)\n        end = bufEnd;\n    } else {\n      this.eof = true;\n      end = this.bufferLength;\n    }\n\n    this.pos = end;\n    return this.buffer.subarray(pos, end);\n  };\n\n  return FakeStream;\n})();\n\nvar StreamsSequenceStream = (function StreamsSequenceStreamClosure() {\n  function StreamsSequenceStream(streams) {\n    this.streams = streams;\n    DecodeStream.call(this);\n  }\n\n  StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n\n  StreamsSequenceStream.prototype.readBlock =\n    function streamSequenceStreamReadBlock() {\n\n    var streams = this.streams;\n    if (streams.length === 0) {\n      this.eof = true;\n      return;\n    }\n    var stream = streams.shift();\n    var chunk = stream.getBytes();\n    var bufferLength = this.bufferLength;\n    var newLength = bufferLength + chunk.length;\n    var buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  };\n\n  StreamsSequenceStream.prototype.getBaseStreams =\n    function StreamsSequenceStream_getBaseStreams() {\n\n    var baseStreams = [];\n    for (var i = 0, ii = this.streams.length; i < ii; i++) {\n      var stream = this.streams[i];\n      if (stream.getBaseStreams) {\n        Util.concatenateToArray(baseStreams, stream.getBaseStreams());\n      }\n    }\n    return baseStreams;\n  };\n\n  return StreamsSequenceStream;\n})();\n\nvar FlateStream = (function FlateStreamClosure() {\n  var codeLenCodeMap = new Uint32Array([\n    16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15\n  ]);\n\n  var lengthDecode = new Uint32Array([\n    0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n    0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n    0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n    0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102\n  ]);\n\n  var distDecode = new Uint32Array([\n    0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n    0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n    0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n    0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001\n  ]);\n\n  var fixedLitCodeTab = [new Uint32Array([\n    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n    0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n    0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n    0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n    0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n    0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n    0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n    0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n    0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n    0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n    0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n    0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n    0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n    0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n    0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n    0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n    0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n    0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n    0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n    0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n    0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n    0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n    0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n    0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n    0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n    0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n    0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n    0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n    0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n    0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n    0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n    0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n    0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n    0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n    0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n    0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n    0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n    0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n    0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n    0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n    0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n    0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n    0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n    0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n    0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n    0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n    0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n    0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n    0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff\n  ]), 9];\n\n  var fixedDistCodeTab = [new Uint32Array([\n    0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n    0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n    0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n    0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000\n  ]), 5];\n\n  function FlateStream(stream) {\n    var bytes = stream.getBytes();\n    var bytesPos = 0;\n\n    this.dict = stream.dict;\n    var cmf = bytes[bytesPos++];\n    var flg = bytes[bytesPos++];\n    if (cmf == -1 || flg == -1)\n      error('Invalid header in flate stream: ' + cmf + ', ' + flg);\n    if ((cmf & 0x0f) != 0x08)\n      error('Unknown compression method in flate stream: ' + cmf + ', ' + flg);\n    if ((((cmf << 8) + flg) % 31) !== 0)\n      error('Bad FCHECK in flate stream: ' + cmf + ', ' + flg);\n    if (flg & 0x20)\n      error('FDICT bit set in flate stream: ' + cmf + ', ' + flg);\n\n    this.bytes = bytes;\n    this.bytesPos = bytesPos;\n\n    this.codeSize = 0;\n    this.codeBuf = 0;\n\n    DecodeStream.call(this);\n  }\n\n  FlateStream.prototype = Object.create(DecodeStream.prototype);\n\n  FlateStream.prototype.getBits = function FlateStream_getBits(bits) {\n    var codeSize = this.codeSize;\n    var codeBuf = this.codeBuf;\n    var bytes = this.bytes;\n    var bytesPos = this.bytesPos;\n\n    var b;\n    while (codeSize < bits) {\n      if (typeof (b = bytes[bytesPos++]) == 'undefined')\n        error('Bad encoding in flate stream');\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    b = codeBuf & ((1 << bits) - 1);\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n    this.bytesPos = bytesPos;\n    return b;\n  };\n\n  FlateStream.prototype.getCode = function FlateStream_getCode(table) {\n    var codes = table[0];\n    var maxLen = table[1];\n    var codeSize = this.codeSize;\n    var codeBuf = this.codeBuf;\n    var bytes = this.bytes;\n    var bytesPos = this.bytesPos;\n\n    while (codeSize < maxLen) {\n      var b;\n      if (typeof (b = bytes[bytesPos++]) == 'undefined')\n        error('Bad encoding in flate stream');\n      codeBuf |= (b << codeSize);\n      codeSize += 8;\n    }\n    var code = codes[codeBuf & ((1 << maxLen) - 1)];\n    var codeLen = code >> 16;\n    var codeVal = code & 0xffff;\n    if (codeSize === 0 || codeSize < codeLen || codeLen === 0)\n      error('Bad encoding in flate stream');\n    this.codeBuf = (codeBuf >> codeLen);\n    this.codeSize = (codeSize - codeLen);\n    this.bytesPos = bytesPos;\n    return codeVal;\n  };\n\n  FlateStream.prototype.generateHuffmanTable =\n    function flateStreamGenerateHuffmanTable(lengths) {\n    var n = lengths.length;\n\n    // find max code length\n    var maxLen = 0;\n    for (var i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen)\n        maxLen = lengths[i];\n    }\n\n    // build the table\n    var size = 1 << maxLen;\n    var codes = new Uint32Array(size);\n    for (var len = 1, code = 0, skip = 2;\n         len <= maxLen;\n         ++len, code <<= 1, skip <<= 1) {\n      for (var val = 0; val < n; ++val) {\n        if (lengths[val] == len) {\n          // bit-reverse the code\n          var code2 = 0;\n          var t = code;\n          for (var i = 0; i < len; ++i) {\n            code2 = (code2 << 1) | (t & 1);\n            t >>= 1;\n          }\n\n          // fill the table entries\n          for (var i = code2; i < size; i += skip)\n            codes[i] = (len << 16) | val;\n\n          ++code;\n        }\n      }\n    }\n\n    return [codes, maxLen];\n  };\n\n  FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n    // read block header\n    var hdr = this.getBits(3);\n    if (hdr & 1)\n      this.eof = true;\n    hdr >>= 1;\n\n    if (hdr === 0) { // uncompressed block\n      var bytes = this.bytes;\n      var bytesPos = this.bytesPos;\n      var b;\n\n      if (typeof (b = bytes[bytesPos++]) == 'undefined')\n        error('Bad block header in flate stream');\n      var blockLen = b;\n      if (typeof (b = bytes[bytesPos++]) == 'undefined')\n        error('Bad block header in flate stream');\n      blockLen |= (b << 8);\n      if (typeof (b = bytes[bytesPos++]) == 'undefined')\n        error('Bad block header in flate stream');\n      var check = b;\n      if (typeof (b = bytes[bytesPos++]) == 'undefined')\n        error('Bad block header in flate stream');\n      check |= (b << 8);\n      if (check != (~blockLen & 0xffff) &&\n          (blockLen !== 0 || check !== 0)) {\n        // Ignoring error for bad \"empty\" block (see issue 1277)\n        error('Bad uncompressed block length in flate stream');\n      }\n\n      this.codeBuf = 0;\n      this.codeSize = 0;\n\n      var bufferLength = this.bufferLength;\n      var buffer = this.ensureBuffer(bufferLength + blockLen);\n      var end = bufferLength + blockLen;\n      this.bufferLength = end;\n      for (var n = bufferLength; n < end; ++n) {\n        if (typeof (b = bytes[bytesPos++]) == 'undefined') {\n          this.eof = true;\n          break;\n        }\n        buffer[n] = b;\n      }\n      this.bytesPos = bytesPos;\n      return;\n    }\n\n    var litCodeTable;\n    var distCodeTable;\n    if (hdr == 1) { // compressed block, fixed codes\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr == 2) { // compressed block, dynamic codes\n      var numLitCodes = this.getBits(5) + 257;\n      var numDistCodes = this.getBits(5) + 1;\n      var numCodeLenCodes = this.getBits(4) + 4;\n\n      // build the code lengths code table\n      var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n      for (var i = 0; i < numCodeLenCodes; ++i)\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n      // build the literal and distance code tables\n      var len = 0;\n      var i = 0;\n      var codes = numLitCodes + numDistCodes;\n      var codeLengths = new Uint8Array(codes);\n      while (i < codes) {\n        var code = this.getCode(codeLenCodeTab);\n        if (code == 16) {\n          var bitsLength = 2, bitsOffset = 3, what = len;\n        } else if (code == 17) {\n          var bitsLength = 3, bitsOffset = 3, what = (len = 0);\n        } else if (code == 18) {\n          var bitsLength = 7, bitsOffset = 11, what = (len = 0);\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n\n        var repeatLength = this.getBits(bitsLength) + bitsOffset;\n        while (repeatLength-- > 0)\n          codeLengths[i++] = what;\n      }\n\n      litCodeTable =\n        this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n      distCodeTable =\n        this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n    } else {\n      error('Unknown block type in flate stream');\n    }\n\n    var buffer = this.buffer;\n    var limit = buffer ? buffer.length : 0;\n    var pos = this.bufferLength;\n    while (true) {\n      var code1 = this.getCode(litCodeTable);\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n        buffer[pos++] = code1;\n        continue;\n      }\n      if (code1 == 256) {\n        this.bufferLength = pos;\n        return;\n      }\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      var code2 = code1 >> 16;\n      if (code2 > 0)\n        code2 = this.getBits(code2);\n      var len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n      if (code2 > 0)\n        code2 = this.getBits(code2);\n      var dist = (code1 & 0xffff) + code2;\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n      for (var k = 0; k < len; ++k, ++pos)\n        buffer[pos] = buffer[pos - dist];\n    }\n  };\n\n  return FlateStream;\n})();\n\nvar PredictorStream = (function PredictorStreamClosure() {\n  function PredictorStream(str, params) {\n    var predictor = this.predictor = params.get('Predictor') || 1;\n\n    if (predictor <= 1)\n      return str; // no prediction\n    if (predictor !== 2 && (predictor < 10 || predictor > 15))\n      error('Unsupported predictor: ' + predictor);\n\n    if (predictor === 2)\n      this.readBlock = this.readBlockTiff;\n    else\n      this.readBlock = this.readBlockPng;\n\n    this.str = str;\n    this.dict = str.dict;\n\n    var colors = this.colors = params.get('Colors') || 1;\n    var bits = this.bits = params.get('BitsPerComponent') || 8;\n    var columns = this.columns = params.get('Columns') || 1;\n\n    this.pixBytes = (colors * bits + 7) >> 3;\n    this.rowBytes = (columns * colors * bits + 7) >> 3;\n\n    DecodeStream.call(this);\n    return this;\n  }\n\n  PredictorStream.prototype = Object.create(DecodeStream.prototype);\n\n  PredictorStream.prototype.readBlockTiff =\n    function predictorStreamReadBlockTiff() {\n    var rowBytes = this.rowBytes;\n\n    var bufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n    var bits = this.bits;\n    var colors = this.colors;\n\n    var rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n    if (this.eof) {\n      return;\n    }\n\n    var inbuf = 0, outbuf = 0;\n    var inbits = 0, outbits = 0;\n    var pos = bufferLength;\n\n    if (bits === 1) {\n      for (var i = 0; i < rowBytes; ++i) {\n        var c = rawBytes[i];\n        inbuf = (inbuf << 8) | c;\n        // bitwise addition is exclusive or\n        // first shift inbuf and then add\n        buffer[pos++] = (c ^ (inbuf >> colors)) & 0xFF;\n        // truncate inbuf (assumes colors < 16)\n        inbuf &= 0xFFFF;\n      }\n    } else if (bits === 8) {\n      for (var i = 0; i < colors; ++i)\n        buffer[pos++] = rawBytes[i];\n      for (; i < rowBytes; ++i) {\n        buffer[pos] = buffer[pos - colors] + rawBytes[i];\n        pos++;\n      }\n    } else {\n      var compArray = new Uint8Array(colors + 1);\n      var bitMask = (1 << bits) - 1;\n      var j = 0, k = bufferLength;\n      var columns = this.columns;\n      for (var i = 0; i < columns; ++i) {\n        for (var kk = 0; kk < colors; ++kk) {\n          if (inbits < bits) {\n            inbuf = (inbuf << 8) | (rawBytes[j++] & 0xFF);\n            inbits += 8;\n          }\n          compArray[kk] = (compArray[kk] +\n                           (inbuf >> (inbits - bits))) & bitMask;\n          inbits -= bits;\n          outbuf = (outbuf << bits) | compArray[kk];\n          outbits += bits;\n          if (outbits >= 8) {\n            buffer[k++] = (outbuf >> (outbits - 8)) & 0xFF;\n            outbits -= 8;\n          }\n        }\n      }\n      if (outbits > 0) {\n        buffer[k++] = (outbuf << (8 - outbits)) +\n        (inbuf & ((1 << (8 - outbits)) - 1));\n      }\n    }\n    this.bufferLength += rowBytes;\n  };\n\n  PredictorStream.prototype.readBlockPng =\n    function predictorStreamReadBlockPng() {\n\n    var rowBytes = this.rowBytes;\n    var pixBytes = this.pixBytes;\n\n    var predictor = this.str.getByte();\n    var rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n    if (this.eof) {\n      return;\n    }\n\n    var bufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n    var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n    if (prevRow.length === 0)\n      prevRow = new Uint8Array(rowBytes);\n\n    var j = bufferLength;\n    switch (predictor) {\n      case 0:\n        for (var i = 0; i < rowBytes; ++i)\n          buffer[j++] = rawBytes[i];\n        break;\n      case 1:\n        for (var i = 0; i < pixBytes; ++i)\n          buffer[j++] = rawBytes[i];\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xFF;\n          j++;\n        }\n        break;\n      case 2:\n        for (var i = 0; i < rowBytes; ++i)\n          buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xFF;\n        break;\n      case 3:\n        for (var i = 0; i < pixBytes; ++i)\n          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (((prevRow[i] + buffer[j - pixBytes]) >> 1) +\n                           rawBytes[i]) & 0xFF;\n          j++;\n        }\n        break;\n      case 4:\n        // we need to save the up left pixels values. the simplest way\n        // is to create a new buffer\n        for (var i = 0; i < pixBytes; ++i) {\n          var up = prevRow[i];\n          var c = rawBytes[i];\n          buffer[j++] = up + c;\n        }\n        for (; i < rowBytes; ++i) {\n          var up = prevRow[i];\n          var upLeft = prevRow[i - pixBytes];\n          var left = buffer[j - pixBytes];\n          var p = left + up - upLeft;\n\n          var pa = p - left;\n          if (pa < 0)\n            pa = -pa;\n          var pb = p - up;\n          if (pb < 0)\n            pb = -pb;\n          var pc = p - upLeft;\n          if (pc < 0)\n            pc = -pc;\n\n          var c = rawBytes[i];\n          if (pa <= pb && pa <= pc)\n            buffer[j++] = left + c;\n          else if (pb <= pc)\n            buffer[j++] = up + c;\n          else\n            buffer[j++] = upLeft + c;\n        }\n        break;\n      default:\n        error('Unsupported predictor: ' + predictor);\n    }\n    this.bufferLength += rowBytes;\n  };\n\n  return PredictorStream;\n})();\n\n/**\n * Depending on the type of JPEG a JpegStream is handled in different ways. For\n * JPEG's that are supported natively such as DeviceGray and DeviceRGB the image\n * data is stored and then loaded by the browser.  For unsupported JPEG's we use\n * a library to decode these images and the stream behaves like all the other\n * DecodeStreams.\n */\nvar JpegStream = (function JpegStreamClosure() {\n  function JpegStream(bytes, dict, xref) {\n    // TODO: per poppler, some images may have 'junk' before that\n    // need to be removed\n    this.dict = dict;\n    this.bytes = bytes;\n\n    DecodeStream.call(this);\n  }\n\n  JpegStream.prototype = Object.create(DecodeStream.prototype);\n\n  JpegStream.prototype.ensureBuffer = function JpegStream_ensureBuffer(req) {\n    if (this.bufferLength)\n      return;\n    try {\n      var jpegImage = new JpegImage();\n      if (this.colorTransform != -1)\n        jpegImage.colorTransform = this.colorTransform;\n      jpegImage.parse(this.bytes);\n      var width = jpegImage.width;\n      var height = jpegImage.height;\n      var data = jpegImage.getData(width, height);\n      this.buffer = data;\n      this.bufferLength = data.length;\n      this.eof = true;\n    } catch (e) {\n      error('JPEG error: ' + e);\n    }\n  };\n  JpegStream.prototype.getIR = function JpegStream_getIR() {\n    return PDFJS.createObjectURL(this.bytes, 'image/jpeg');\n  };\n  /**\n   * Checks if the image can be decoded and displayed by the browser without any\n   * further processing such as color space conversions.\n   */\n  JpegStream.prototype.isNativelySupported =\n    function JpegStream_isNativelySupported(xref, res) {\n    var cs = ColorSpace.parse(this.dict.get('ColorSpace', 'CS'), xref, res);\n    return cs.name === 'DeviceGray' || cs.name === 'DeviceRGB';\n  };\n  /**\n   * Checks if the image can be decoded by the browser.\n   */\n  JpegStream.prototype.isNativelyDecodable =\n    function JpegStream_isNativelyDecodable(xref, res) {\n    var cs = ColorSpace.parse(this.dict.get('ColorSpace', 'CS'), xref, res);\n    var numComps = cs.numComps;\n    return numComps == 1 || numComps == 3;\n  };\n\n  return JpegStream;\n})();\n\n/**\n * For JPEG 2000's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nvar JpxStream = (function JpxStreamClosure() {\n  function JpxStream(bytes, dict) {\n    this.dict = dict;\n    this.bytes = bytes;\n\n    DecodeStream.call(this);\n  }\n\n  JpxStream.prototype = Object.create(DecodeStream.prototype);\n\n  JpxStream.prototype.ensureBuffer = function JpxStream_ensureBuffer(req) {\n    if (this.bufferLength)\n      return;\n\n    var jpxImage = new JpxImage();\n    jpxImage.parse(this.bytes);\n\n    var width = jpxImage.width;\n    var height = jpxImage.height;\n    var componentsCount = jpxImage.componentsCount;\n    if (componentsCount != 1 && componentsCount != 3 && componentsCount != 4)\n      error('JPX with ' + componentsCount + ' components is not supported');\n\n    var data = new Uint8Array(width * height * componentsCount);\n\n    for (var k = 0, kk = jpxImage.tiles.length; k < kk; k++) {\n      var tileCompoments = jpxImage.tiles[k];\n      var tileWidth = tileCompoments[0].width;\n      var tileHeight = tileCompoments[0].height;\n      var tileLeft = tileCompoments[0].left;\n      var tileTop = tileCompoments[0].top;\n\n      var dataPosition, sourcePosition, data0, data1, data2, data3, rowFeed;\n      switch (componentsCount) {\n        case 1:\n          data0 = tileCompoments[0].items;\n\n          dataPosition = width * tileTop + tileLeft;\n          rowFeed = width - tileWidth;\n          sourcePosition = 0;\n          for (var j = 0; j < tileHeight; j++) {\n            for (var i = 0; i < tileWidth; i++)\n              data[dataPosition++] = data0[sourcePosition++];\n            dataPosition += rowFeed;\n          }\n          break;\n        case 3:\n          data0 = tileCompoments[0].items;\n          data1 = tileCompoments[1].items;\n          data2 = tileCompoments[2].items;\n\n          dataPosition = (width * tileTop + tileLeft) * 3;\n          rowFeed = (width - tileWidth) * 3;\n          sourcePosition = 0;\n          for (var j = 0; j < tileHeight; j++) {\n            for (var i = 0; i < tileWidth; i++) {\n              data[dataPosition++] = data0[sourcePosition];\n              data[dataPosition++] = data1[sourcePosition];\n              data[dataPosition++] = data2[sourcePosition];\n              sourcePosition++;\n            }\n            dataPosition += rowFeed;\n          }\n          break;\n        case 4:\n          data0 = tileCompoments[0].items;\n          data1 = tileCompoments[1].items;\n          data2 = tileCompoments[2].items;\n          data3 = tileCompoments[3].items;\n\n          dataPosition = (width * tileTop + tileLeft) * 4;\n          rowFeed = (width - tileWidth) * 4;\n          sourcePosition = 0;\n          for (var j = 0; j < tileHeight; j++) {\n            for (var i = 0; i < tileWidth; i++) {\n              data[dataPosition++] = data0[sourcePosition];\n              data[dataPosition++] = data1[sourcePosition];\n              data[dataPosition++] = data2[sourcePosition];\n              data[dataPosition++] = data3[sourcePosition];\n              sourcePosition++;\n            }\n            dataPosition += rowFeed;\n          }\n          break;\n      }\n    }\n\n    this.buffer = data;\n    this.bufferLength = data.length;\n    this.eof = true;\n  };\n\n  return JpxStream;\n})();\n\n/**\n * For JBIG2's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nvar Jbig2Stream = (function Jbig2StreamClosure() {\n  function Jbig2Stream(bytes, dict) {\n    this.dict = dict;\n    this.bytes = bytes;\n\n    DecodeStream.call(this);\n  }\n\n  Jbig2Stream.prototype = Object.create(DecodeStream.prototype);\n\n  Jbig2Stream.prototype.ensureBuffer = function Jbig2Stream_ensureBuffer(req) {\n    if (this.bufferLength)\n      return;\n\n    var jbig2Image = new Jbig2Image();\n\n    var chunks = [], decodeParams = this.dict.get('DecodeParms');\n    if (decodeParams && decodeParams.has('JBIG2Globals')) {\n      var globalsStream = decodeParams.get('JBIG2Globals');\n      var globals = globalsStream.getBytes();\n      chunks.push({data: globals, start: 0, end: globals.length});\n    }\n    chunks.push({data: this.bytes, start: 0, end: this.bytes.length});\n    var data = jbig2Image.parseChunks(chunks);\n    var dataLength = data.length;\n\n    // JBIG2 had black as 1 and white as 0, inverting the colors\n    for (var i = 0; i < dataLength; i++)\n      data[i] ^= 0xFF;\n\n    this.buffer = data;\n    this.bufferLength = dataLength;\n    this.eof = true;\n  };\n\n  return Jbig2Stream;\n})();\n\nvar DecryptStream = (function DecryptStreamClosure() {\n  function DecryptStream(str, decrypt) {\n    this.str = str;\n    this.dict = str.dict;\n    this.decrypt = decrypt;\n    this.nextChunk = null;\n    this.initialized = false;\n\n    DecodeStream.call(this);\n  }\n\n  var chunkSize = 512;\n\n  DecryptStream.prototype = Object.create(DecodeStream.prototype);\n\n  DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n    var chunk;\n    if (this.initialized) {\n      chunk = this.nextChunk;\n    } else {\n      chunk = this.str.getBytes(chunkSize);\n      this.initialized = true;\n    }\n    if (!chunk || chunk.length === 0) {\n      this.eof = true;\n      return;\n    }\n    this.nextChunk = this.str.getBytes(chunkSize);\n    var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n\n    var decrypt = this.decrypt;\n    chunk = decrypt(chunk, !hasMoreData);\n\n    var bufferLength = this.bufferLength;\n    var i, n = chunk.length;\n    var buffer = this.ensureBuffer(bufferLength + n);\n    for (i = 0; i < n; i++)\n      buffer[bufferLength++] = chunk[i];\n    this.bufferLength = bufferLength;\n  };\n\n  return DecryptStream;\n})();\n\nvar Ascii85Stream = (function Ascii85StreamClosure() {\n  function Ascii85Stream(str) {\n    this.str = str;\n    this.dict = str.dict;\n    this.input = new Uint8Array(5);\n\n    DecodeStream.call(this);\n  }\n\n  Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\n\n  Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {\n    var TILDA_CHAR = 0x7E; // '~'\n    var Z_LOWER_CHAR = 0x7A; // 'z'\n    var EOF = -1;\n\n    var str = this.str;\n\n    var c = str.getByte();\n    while (Lexer.isSpace(c)) {\n      c = str.getByte();\n    }\n\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n\n    var bufferLength = this.bufferLength, buffer;\n\n    // special code for z\n    if (c == Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n      for (var i = 0; i < 4; ++i)\n        buffer[bufferLength + i] = 0;\n      this.bufferLength += 4;\n    } else {\n      var input = this.input;\n      input[0] = c;\n      for (var i = 1; i < 5; ++i) {\n        c = str.getByte();\n        while (Lexer.isSpace(c)) {\n          c = str.getByte();\n        }\n\n        input[i] = c;\n\n        if (c === EOF || c == TILDA_CHAR)\n          break;\n      }\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n\n      // partial ending;\n      if (i < 5) {\n        for (; i < 5; ++i)\n          input[i] = 0x21 + 84;\n        this.eof = true;\n      }\n      var t = 0;\n      for (var i = 0; i < 5; ++i)\n        t = t * 85 + (input[i] - 0x21);\n\n      for (var i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xFF;\n        t >>= 8;\n      }\n    }\n  };\n\n  return Ascii85Stream;\n})();\n\nvar AsciiHexStream = (function AsciiHexStreamClosure() {\n  function AsciiHexStream(str) {\n    this.str = str;\n    this.dict = str.dict;\n\n    this.firstDigit = -1;\n\n    DecodeStream.call(this);\n  }\n\n  AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n\n  AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n    var UPSTREAM_BLOCK_SIZE = 8000;\n    var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n\n    var maxDecodeLength = (bytes.length + 1) >> 1;\n    var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    var bufferLength = this.bufferLength;\n\n    var firstDigit = this.firstDigit;\n    for (var i = 0, ii = bytes.length; i < ii; i++) {\n      var ch = bytes[i], digit;\n      if (ch >= 0x30 && ch <= 0x39) { // '0'-'9'\n        digit = ch & 0x0F;\n      } else if ((ch >= 0x41 && ch <= 0x46) || (ch >= 0x61 && ch <= 0x66)) {\n        // 'A'-'Z', 'a'-'z'\n        digit = (ch & 0x0F) + 9;\n      } else if (ch === 0x3E) { // '>'\n        this.eof = true;\n        break;\n      } else { // probably whitespace\n        continue; // ignoring\n      }\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = (firstDigit << 4) | digit;\n        firstDigit = -1;\n      }\n    }\n    if (firstDigit >= 0 && this.eof) {\n      // incomplete byte\n      buffer[bufferLength++] = (firstDigit << 4);\n      firstDigit = -1;\n    }\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  };\n\n  return AsciiHexStream;\n})();\n\nvar RunLengthStream = (function RunLengthStreamClosure() {\n  function RunLengthStream(str) {\n    this.str = str;\n    this.dict = str.dict;\n\n    DecodeStream.call(this);\n  }\n\n  RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n\n  RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n    // The repeatHeader has following format. The first byte defines type of run\n    // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n    // (in addition to the second byte from the header), n = 129 through 255 -\n    // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n    var repeatHeader = this.str.getBytes(2);\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] == 128) {\n      this.eof = true;\n      return;\n    }\n\n    var bufferLength = this.bufferLength;\n    var n = repeatHeader[0];\n    if (n < 128) {\n      // copy n bytes\n      var buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n      if (n > 0) {\n        var source = this.str.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      var b = repeatHeader[1];\n      var buffer = this.ensureBuffer(bufferLength + n + 1);\n      for (var i = 0; i < n; i++)\n        buffer[bufferLength++] = b;\n    }\n    this.bufferLength = bufferLength;\n  };\n\n  return RunLengthStream;\n})();\n\nvar CCITTFaxStream = (function CCITTFaxStreamClosure() {\n\n  var ccittEOL = -2;\n  var twoDimPass = 0;\n  var twoDimHoriz = 1;\n  var twoDimVert0 = 2;\n  var twoDimVertR1 = 3;\n  var twoDimVertL1 = 4;\n  var twoDimVertR2 = 5;\n  var twoDimVertL2 = 6;\n  var twoDimVertR3 = 7;\n  var twoDimVertL3 = 8;\n\n  var twoDimTable = [\n    [-1, -1], [-1, -1],                   // 000000x\n    [7, twoDimVertL3],                    // 0000010\n    [7, twoDimVertR3],                    // 0000011\n    [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n    [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n    [4, twoDimPass], [4, twoDimPass],     // 0001xxx\n    [4, twoDimPass], [4, twoDimPass],\n    [4, twoDimPass], [4, twoDimPass],\n    [4, twoDimPass], [4, twoDimPass],\n    [3, twoDimHoriz], [3, twoDimHoriz],   // 001xxxx\n    [3, twoDimHoriz], [3, twoDimHoriz],\n    [3, twoDimHoriz], [3, twoDimHoriz],\n    [3, twoDimHoriz], [3, twoDimHoriz],\n    [3, twoDimHoriz], [3, twoDimHoriz],\n    [3, twoDimHoriz], [3, twoDimHoriz],\n    [3, twoDimHoriz], [3, twoDimHoriz],\n    [3, twoDimHoriz], [3, twoDimHoriz],\n    [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n    [3, twoDimVertL1], [3, twoDimVertL1],\n    [3, twoDimVertL1], [3, twoDimVertL1],\n    [3, twoDimVertL1], [3, twoDimVertL1],\n    [3, twoDimVertL1], [3, twoDimVertL1],\n    [3, twoDimVertL1], [3, twoDimVertL1],\n    [3, twoDimVertL1], [3, twoDimVertL1],\n    [3, twoDimVertL1], [3, twoDimVertL1],\n    [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n    [3, twoDimVertR1], [3, twoDimVertR1],\n    [3, twoDimVertR1], [3, twoDimVertR1],\n    [3, twoDimVertR1], [3, twoDimVertR1],\n    [3, twoDimVertR1], [3, twoDimVertR1],\n    [3, twoDimVertR1], [3, twoDimVertR1],\n    [3, twoDimVertR1], [3, twoDimVertR1],\n    [3, twoDimVertR1], [3, twoDimVertR1],\n    [1, twoDimVert0], [1, twoDimVert0],   // 1xxxxxx\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0],\n    [1, twoDimVert0], [1, twoDimVert0]\n  ];\n\n  var whiteTable1 = [\n    [-1, -1],                               // 00000\n    [12, ccittEOL],                         // 00001\n    [-1, -1], [-1, -1],                     // 0001x\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n    [11, 1792], [11, 1792],                 // 1000x\n    [12, 1984],                             // 10010\n    [12, 2048],                             // 10011\n    [12, 2112],                             // 10100\n    [12, 2176],                             // 10101\n    [12, 2240],                             // 10110\n    [12, 2304],                             // 10111\n    [11, 1856], [11, 1856],                 // 1100x\n    [11, 1920], [11, 1920],                 // 1101x\n    [12, 2368],                             // 11100\n    [12, 2432],                             // 11101\n    [12, 2496],                             // 11110\n    [12, 2560]                              // 11111\n  ];\n\n  var whiteTable2 = [\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1],     // 0000000xx\n    [8, 29], [8, 29],                           // 00000010x\n    [8, 30], [8, 30],                           // 00000011x\n    [8, 45], [8, 45],                           // 00000100x\n    [8, 46], [8, 46],                           // 00000101x\n    [7, 22], [7, 22], [7, 22], [7, 22],         // 0000011xx\n    [7, 23], [7, 23], [7, 23], [7, 23],         // 0000100xx\n    [8, 47], [8, 47],                           // 00001010x\n    [8, 48], [8, 48],                           // 00001011x\n    [6, 13], [6, 13], [6, 13], [6, 13],         // 000011xxx\n    [6, 13], [6, 13], [6, 13], [6, 13],\n    [7, 20], [7, 20], [7, 20], [7, 20],         // 0001000xx\n    [8, 33], [8, 33],                           // 00010010x\n    [8, 34], [8, 34],                           // 00010011x\n    [8, 35], [8, 35],                           // 00010100x\n    [8, 36], [8, 36],                           // 00010101x\n    [8, 37], [8, 37],                           // 00010110x\n    [8, 38], [8, 38],                           // 00010111x\n    [7, 19], [7, 19], [7, 19], [7, 19],         // 0001100xx\n    [8, 31], [8, 31],                           // 00011010x\n    [8, 32], [8, 32],                           // 00011011x\n    [6, 1], [6, 1], [6, 1], [6, 1],             // 000111xxx\n    [6, 1], [6, 1], [6, 1], [6, 1],\n    [6, 12], [6, 12], [6, 12], [6, 12],         // 001000xxx\n    [6, 12], [6, 12], [6, 12], [6, 12],\n    [8, 53], [8, 53],                           // 00100100x\n    [8, 54], [8, 54],                           // 00100101x\n    [7, 26], [7, 26], [7, 26], [7, 26],         // 0010011xx\n    [8, 39], [8, 39],                           // 00101000x\n    [8, 40], [8, 40],                           // 00101001x\n    [8, 41], [8, 41],                           // 00101010x\n    [8, 42], [8, 42],                           // 00101011x\n    [8, 43], [8, 43],                           // 00101100x\n    [8, 44], [8, 44],                           // 00101101x\n    [7, 21], [7, 21], [7, 21], [7, 21],         // 0010111xx\n    [7, 28], [7, 28], [7, 28], [7, 28],         // 0011000xx\n    [8, 61], [8, 61],                           // 00110010x\n    [8, 62], [8, 62],                           // 00110011x\n    [8, 63], [8, 63],                           // 00110100x\n    [8, 0], [8, 0],                             // 00110101x\n    [8, 320], [8, 320],                         // 00110110x\n    [8, 384], [8, 384],                         // 00110111x\n    [5, 10], [5, 10], [5, 10], [5, 10],         // 00111xxxx\n    [5, 10], [5, 10], [5, 10], [5, 10],\n    [5, 10], [5, 10], [5, 10], [5, 10],\n    [5, 10], [5, 10], [5, 10], [5, 10],\n    [5, 11], [5, 11], [5, 11], [5, 11],         // 01000xxxx\n    [5, 11], [5, 11], [5, 11], [5, 11],\n    [5, 11], [5, 11], [5, 11], [5, 11],\n    [5, 11], [5, 11], [5, 11], [5, 11],\n    [7, 27], [7, 27], [7, 27], [7, 27],         // 0100100xx\n    [8, 59], [8, 59],                           // 01001010x\n    [8, 60], [8, 60],                           // 01001011x\n    [9, 1472],                                  // 010011000\n    [9, 1536],                                  // 010011001\n    [9, 1600],                                  // 010011010\n    [9, 1728],                                  // 010011011\n    [7, 18], [7, 18], [7, 18], [7, 18],         // 0100111xx\n    [7, 24], [7, 24], [7, 24], [7, 24],         // 0101000xx\n    [8, 49], [8, 49],                           // 01010010x\n    [8, 50], [8, 50],                           // 01010011x\n    [8, 51], [8, 51],                           // 01010100x\n    [8, 52], [8, 52],                           // 01010101x\n    [7, 25], [7, 25], [7, 25], [7, 25],         // 0101011xx\n    [8, 55], [8, 55],                           // 01011000x\n    [8, 56], [8, 56],                           // 01011001x\n    [8, 57], [8, 57],                           // 01011010x\n    [8, 58], [8, 58],                           // 01011011x\n    [6, 192], [6, 192], [6, 192], [6, 192],     // 010111xxx\n    [6, 192], [6, 192], [6, 192], [6, 192],\n    [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n    [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n    [8, 448], [8, 448],                         // 01100100x\n    [8, 512], [8, 512],                         // 01100101x\n    [9, 704],                                   // 011001100\n    [9, 768],                                   // 011001101\n    [8, 640], [8, 640],                         // 01100111x\n    [8, 576], [8, 576],                         // 01101000x\n    [9, 832],                                   // 011010010\n    [9, 896],                                   // 011010011\n    [9, 960],                                   // 011010100\n    [9, 1024],                                  // 011010101\n    [9, 1088],                                  // 011010110\n    [9, 1152],                                  // 011010111\n    [9, 1216],                                  // 011011000\n    [9, 1280],                                  // 011011001\n    [9, 1344],                                  // 011011010\n    [9, 1408],                                  // 011011011\n    [7, 256], [7, 256], [7, 256], [7, 256],     // 0110111xx\n    [4, 2], [4, 2], [4, 2], [4, 2],             // 0111xxxxx\n    [4, 2], [4, 2], [4, 2], [4, 2],\n    [4, 2], [4, 2], [4, 2], [4, 2],\n    [4, 2], [4, 2], [4, 2], [4, 2],\n    [4, 2], [4, 2], [4, 2], [4, 2],\n    [4, 2], [4, 2], [4, 2], [4, 2],\n    [4, 2], [4, 2], [4, 2], [4, 2],\n    [4, 2], [4, 2], [4, 2], [4, 2],\n    [4, 3], [4, 3], [4, 3], [4, 3],             // 1000xxxxx\n    [4, 3], [4, 3], [4, 3], [4, 3],\n    [4, 3], [4, 3], [4, 3], [4, 3],\n    [4, 3], [4, 3], [4, 3], [4, 3],\n    [4, 3], [4, 3], [4, 3], [4, 3],\n    [4, 3], [4, 3], [4, 3], [4, 3],\n    [4, 3], [4, 3], [4, 3], [4, 3],\n    [4, 3], [4, 3], [4, 3], [4, 3],\n    [5, 128], [5, 128], [5, 128], [5, 128],     // 10010xxxx\n    [5, 128], [5, 128], [5, 128], [5, 128],\n    [5, 128], [5, 128], [5, 128], [5, 128],\n    [5, 128], [5, 128], [5, 128], [5, 128],\n    [5, 8], [5, 8], [5, 8], [5, 8],             // 10011xxxx\n    [5, 8], [5, 8], [5, 8], [5, 8],\n    [5, 8], [5, 8], [5, 8], [5, 8],\n    [5, 8], [5, 8], [5, 8], [5, 8],\n    [5, 9], [5, 9], [5, 9], [5, 9],             // 10100xxxx\n    [5, 9], [5, 9], [5, 9], [5, 9],\n    [5, 9], [5, 9], [5, 9], [5, 9],\n    [5, 9], [5, 9], [5, 9], [5, 9],\n    [6, 16], [6, 16], [6, 16], [6, 16],         // 101010xxx\n    [6, 16], [6, 16], [6, 16], [6, 16],\n    [6, 17], [6, 17], [6, 17], [6, 17],         // 101011xxx\n    [6, 17], [6, 17], [6, 17], [6, 17],\n    [4, 4], [4, 4], [4, 4], [4, 4],             // 1011xxxxx\n    [4, 4], [4, 4], [4, 4], [4, 4],\n    [4, 4], [4, 4], [4, 4], [4, 4],\n    [4, 4], [4, 4], [4, 4], [4, 4],\n    [4, 4], [4, 4], [4, 4], [4, 4],\n    [4, 4], [4, 4], [4, 4], [4, 4],\n    [4, 4], [4, 4], [4, 4], [4, 4],\n    [4, 4], [4, 4], [4, 4], [4, 4],\n    [4, 5], [4, 5], [4, 5], [4, 5],             // 1100xxxxx\n    [4, 5], [4, 5], [4, 5], [4, 5],\n    [4, 5], [4, 5], [4, 5], [4, 5],\n    [4, 5], [4, 5], [4, 5], [4, 5],\n    [4, 5], [4, 5], [4, 5], [4, 5],\n    [4, 5], [4, 5], [4, 5], [4, 5],\n    [4, 5], [4, 5], [4, 5], [4, 5],\n    [4, 5], [4, 5], [4, 5], [4, 5],\n    [6, 14], [6, 14], [6, 14], [6, 14],         // 110100xxx\n    [6, 14], [6, 14], [6, 14], [6, 14],\n    [6, 15], [6, 15], [6, 15], [6, 15],         // 110101xxx\n    [6, 15], [6, 15], [6, 15], [6, 15],\n    [5, 64], [5, 64], [5, 64], [5, 64],         // 11011xxxx\n    [5, 64], [5, 64], [5, 64], [5, 64],\n    [5, 64], [5, 64], [5, 64], [5, 64],\n    [5, 64], [5, 64], [5, 64], [5, 64],\n    [4, 6], [4, 6], [4, 6], [4, 6],             // 1110xxxxx\n    [4, 6], [4, 6], [4, 6], [4, 6],\n    [4, 6], [4, 6], [4, 6], [4, 6],\n    [4, 6], [4, 6], [4, 6], [4, 6],\n    [4, 6], [4, 6], [4, 6], [4, 6],\n    [4, 6], [4, 6], [4, 6], [4, 6],\n    [4, 6], [4, 6], [4, 6], [4, 6],\n    [4, 6], [4, 6], [4, 6], [4, 6],\n    [4, 7], [4, 7], [4, 7], [4, 7],             // 1111xxxxx\n    [4, 7], [4, 7], [4, 7], [4, 7],\n    [4, 7], [4, 7], [4, 7], [4, 7],\n    [4, 7], [4, 7], [4, 7], [4, 7],\n    [4, 7], [4, 7], [4, 7], [4, 7],\n    [4, 7], [4, 7], [4, 7], [4, 7],\n    [4, 7], [4, 7], [4, 7], [4, 7],\n    [4, 7], [4, 7], [4, 7], [4, 7]\n  ];\n\n  var blackTable1 = [\n    [-1, -1], [-1, -1],                             // 000000000000x\n    [12, ccittEOL], [12, ccittEOL],                 // 000000000001x\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000001xx\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000010xx\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000011xx\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000100xx\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000101xx\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000110xx\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000111xx\n    [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n    [12, 1984], [12, 1984],                         // 000000010010x\n    [12, 2048], [12, 2048],                         // 000000010011x\n    [12, 2112], [12, 2112],                         // 000000010100x\n    [12, 2176], [12, 2176],                         // 000000010101x\n    [12, 2240], [12, 2240],                         // 000000010110x\n    [12, 2304], [12, 2304],                         // 000000010111x\n    [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n    [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n    [12, 2368], [12, 2368],                         // 000000011100x\n    [12, 2432], [12, 2432],                         // 000000011101x\n    [12, 2496], [12, 2496],                         // 000000011110x\n    [12, 2560], [12, 2560],                         // 000000011111x\n    [10, 18], [10, 18], [10, 18], [10, 18],         // 0000001000xxx\n    [10, 18], [10, 18], [10, 18], [10, 18],\n    [12, 52], [12, 52],                             // 000000100100x\n    [13, 640],                                      // 0000001001010\n    [13, 704],                                      // 0000001001011\n    [13, 768],                                      // 0000001001100\n    [13, 832],                                      // 0000001001101\n    [12, 55], [12, 55],                             // 000000100111x\n    [12, 56], [12, 56],                             // 000000101000x\n    [13, 1280],                                     // 0000001010010\n    [13, 1344],                                     // 0000001010011\n    [13, 1408],                                     // 0000001010100\n    [13, 1472],                                     // 0000001010101\n    [12, 59], [12, 59],                             // 000000101011x\n    [12, 60], [12, 60],                             // 000000101100x\n    [13, 1536],                                     // 0000001011010\n    [13, 1600],                                     // 0000001011011\n    [11, 24], [11, 24], [11, 24], [11, 24],         // 00000010111xx\n    [11, 25], [11, 25], [11, 25], [11, 25],         // 00000011000xx\n    [13, 1664],                                     // 0000001100100\n    [13, 1728],                                     // 0000001100101\n    [12, 320], [12, 320],                           // 000000110011x\n    [12, 384], [12, 384],                           // 000000110100x\n    [12, 448], [12, 448],                           // 000000110101x\n    [13, 512],                                      // 0000001101100\n    [13, 576],                                      // 0000001101101\n    [12, 53], [12, 53],                             // 000000110111x\n    [12, 54], [12, 54],                             // 000000111000x\n    [13, 896],                                      // 0000001110010\n    [13, 960],                                      // 0000001110011\n    [13, 1024],                                     // 0000001110100\n    [13, 1088],                                     // 0000001110101\n    [13, 1152],                                     // 0000001110110\n    [13, 1216],                                     // 0000001110111\n    [10, 64], [10, 64], [10, 64], [10, 64],         // 0000001111xxx\n    [10, 64], [10, 64], [10, 64], [10, 64]\n  ];\n\n  var blackTable2 = [\n    [8, 13], [8, 13], [8, 13], [8, 13],     // 00000100xxxx\n    [8, 13], [8, 13], [8, 13], [8, 13],\n    [8, 13], [8, 13], [8, 13], [8, 13],\n    [8, 13], [8, 13], [8, 13], [8, 13],\n    [11, 23], [11, 23],                     // 00000101000x\n    [12, 50],                               // 000001010010\n    [12, 51],                               // 000001010011\n    [12, 44],                               // 000001010100\n    [12, 45],                               // 000001010101\n    [12, 46],                               // 000001010110\n    [12, 47],                               // 000001010111\n    [12, 57],                               // 000001011000\n    [12, 58],                               // 000001011001\n    [12, 61],                               // 000001011010\n    [12, 256],                              // 000001011011\n    [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n    [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n    [12, 48],                               // 000001100100\n    [12, 49],                               // 000001100101\n    [12, 62],                               // 000001100110\n    [12, 63],                               // 000001100111\n    [12, 30],                               // 000001101000\n    [12, 31],                               // 000001101001\n    [12, 32],                               // 000001101010\n    [12, 33],                               // 000001101011\n    [12, 40],                               // 000001101100\n    [12, 41],                               // 000001101101\n    [11, 22], [11, 22],                     // 00000110111x\n    [8, 14], [8, 14], [8, 14], [8, 14],     // 00000111xxxx\n    [8, 14], [8, 14], [8, 14], [8, 14],\n    [8, 14], [8, 14], [8, 14], [8, 14],\n    [8, 14], [8, 14], [8, 14], [8, 14],\n    [7, 10], [7, 10], [7, 10], [7, 10],     // 0000100xxxxx\n    [7, 10], [7, 10], [7, 10], [7, 10],\n    [7, 10], [7, 10], [7, 10], [7, 10],\n    [7, 10], [7, 10], [7, 10], [7, 10],\n    [7, 10], [7, 10], [7, 10], [7, 10],\n    [7, 10], [7, 10], [7, 10], [7, 10],\n    [7, 10], [7, 10], [7, 10], [7, 10],\n    [7, 10], [7, 10], [7, 10], [7, 10],\n    [7, 11], [7, 11], [7, 11], [7, 11],     // 0000101xxxxx\n    [7, 11], [7, 11], [7, 11], [7, 11],\n    [7, 11], [7, 11], [7, 11], [7, 11],\n    [7, 11], [7, 11], [7, 11], [7, 11],\n    [7, 11], [7, 11], [7, 11], [7, 11],\n    [7, 11], [7, 11], [7, 11], [7, 11],\n    [7, 11], [7, 11], [7, 11], [7, 11],\n    [7, 11], [7, 11], [7, 11], [7, 11],\n    [9, 15], [9, 15], [9, 15], [9, 15],     // 000011000xxx\n    [9, 15], [9, 15], [9, 15], [9, 15],\n    [12, 128],                              // 000011001000\n    [12, 192],                              // 000011001001\n    [12, 26],                               // 000011001010\n    [12, 27],                               // 000011001011\n    [12, 28],                               // 000011001100\n    [12, 29],                               // 000011001101\n    [11, 19], [11, 19],                     // 00001100111x\n    [11, 20], [11, 20],                     // 00001101000x\n    [12, 34],                               // 000011010010\n    [12, 35],                               // 000011010011\n    [12, 36],                               // 000011010100\n    [12, 37],                               // 000011010101\n    [12, 38],                               // 000011010110\n    [12, 39],                               // 000011010111\n    [11, 21], [11, 21],                     // 00001101100x\n    [12, 42],                               // 000011011010\n    [12, 43],                               // 000011011011\n    [10, 0], [10, 0], [10, 0], [10, 0],     // 0000110111xx\n    [7, 12], [7, 12], [7, 12], [7, 12],     // 0000111xxxxx\n    [7, 12], [7, 12], [7, 12], [7, 12],\n    [7, 12], [7, 12], [7, 12], [7, 12],\n    [7, 12], [7, 12], [7, 12], [7, 12],\n    [7, 12], [7, 12], [7, 12], [7, 12],\n    [7, 12], [7, 12], [7, 12], [7, 12],\n    [7, 12], [7, 12], [7, 12], [7, 12],\n    [7, 12], [7, 12], [7, 12], [7, 12]\n  ];\n\n  var blackTable3 = [\n    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n    [6, 9],                                 // 000100\n    [6, 8],                                 // 000101\n    [5, 7], [5, 7],                         // 00011x\n    [4, 6], [4, 6], [4, 6], [4, 6],         // 0010xx\n    [4, 5], [4, 5], [4, 5], [4, 5],         // 0011xx\n    [3, 1], [3, 1], [3, 1], [3, 1],         // 010xxx\n    [3, 1], [3, 1], [3, 1], [3, 1],\n    [3, 4], [3, 4], [3, 4], [3, 4],         // 011xxx\n    [3, 4], [3, 4], [3, 4], [3, 4],\n    [2, 3], [2, 3], [2, 3], [2, 3],         // 10xxxx\n    [2, 3], [2, 3], [2, 3], [2, 3],\n    [2, 3], [2, 3], [2, 3], [2, 3],\n    [2, 3], [2, 3], [2, 3], [2, 3],\n    [2, 2], [2, 2], [2, 2], [2, 2],         // 11xxxx\n    [2, 2], [2, 2], [2, 2], [2, 2],\n    [2, 2], [2, 2], [2, 2], [2, 2],\n    [2, 2], [2, 2], [2, 2], [2, 2]\n  ];\n\n  function CCITTFaxStream(str, params) {\n    this.str = str;\n    this.dict = str.dict;\n\n\tif (!(params instanceof Dict)) {\n\t\tparams = new Dict();\n\t}\n\n    this.encoding = params.get('K') || 0;\n    this.eoline = params.get('EndOfLine') || false;\n    this.byteAlign = params.get('EncodedByteAlign') || false;\n    this.columns = params.get('Columns') || 1728;\n    this.rows = params.get('Rows') || 0;\n    var eoblock = params.get('EndOfBlock');\n    if (eoblock === null || eoblock === undefined)\n      eoblock = true;\n    this.eoblock = eoblock;\n    this.black = params.get('BlackIs1') || false;\n\n    this.codingLine = new Uint32Array(this.columns + 1);\n    this.refLine = new Uint32Array(this.columns + 2);\n\n    this.codingLine[0] = this.columns;\n    this.codingPos = 0;\n\n    this.row = 0;\n    this.nextLine2D = this.encoding < 0;\n    this.inputBits = 0;\n    this.inputBuf = 0;\n    this.outputBits = 0;\n    this.buf = EOF;\n\n    var code1;\n    while ((code1 = this.lookBits(12)) === 0) {\n      this.eatBits(1);\n    }\n    if (code1 == 1) {\n      this.eatBits(12);\n    }\n    if (this.encoding > 0) {\n      this.nextLine2D = !this.lookBits(1);\n      this.eatBits(1);\n    }\n\n    DecodeStream.call(this);\n  }\n\n  CCITTFaxStream.prototype = Object.create(DecodeStream.prototype);\n\n  CCITTFaxStream.prototype.readBlock = function CCITTFaxStream_readBlock() {\n    while (!this.eof) {\n      var c = this.lookChar();\n      this.buf = EOF;\n      this.ensureBuffer(this.bufferLength + 1);\n      this.buffer[this.bufferLength++] = c;\n    }\n  };\n\n  CCITTFaxStream.prototype.addPixels =\n    function ccittFaxStreamAddPixels(a1, blackPixels) {\n    var codingLine = this.codingLine;\n    var codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        info('row is wrong length: ' + a1 + ' > ' + this.columns);\n        this.err = true;\n        a1 = this.columns;\n      }\n      if ((codingPos & 1) ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    }\n    this.codingPos = codingPos;\n  };\n\n  CCITTFaxStream.prototype.addPixelsNeg =\n    function ccittFaxStreamAddPixelsNeg(a1, blackPixels) {\n    var codingLine = this.codingLine;\n    var codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        info('row is wrong length: ' + a1 + ' > ' + this.columns);\n        this.err = true;\n        a1 = this.columns;\n      }\n      if ((codingPos & 1) ^ blackPixels)\n        ++codingPos;\n\n      codingLine[codingPos] = a1;\n    } else if (a1 < codingLine[codingPos]) {\n      if (a1 < 0) {\n        info('invalid code');\n        this.err = true;\n        a1 = 0;\n      }\n      while (codingPos > 0 && a1 < codingLine[codingPos - 1])\n        --codingPos;\n      codingLine[codingPos] = a1;\n    }\n\n    this.codingPos = codingPos;\n  };\n\n  CCITTFaxStream.prototype.lookChar = function CCITTFaxStream_lookChar() {\n    if (this.buf != EOF)\n      return this.buf;\n\n    var refLine = this.refLine;\n    var codingLine = this.codingLine;\n    var columns = this.columns;\n\n    var refPos, blackPixels, bits;\n\n    if (this.outputBits === 0) {\n      if (this.eof)\n        return null;\n\n      this.err = false;\n\n      var code1, code2, code3;\n      if (this.nextLine2D) {\n        for (var i = 0; codingLine[i] < columns; ++i)\n          refLine[i] = codingLine[i];\n\n        refLine[i++] = columns;\n        refLine[i] = columns;\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        refPos = 0;\n        blackPixels = 0;\n\n        while (codingLine[this.codingPos] < columns) {\n          code1 = this.getTwoDimCode();\n          switch (code1) {\n            case twoDimPass:\n              this.addPixels(refLine[refPos + 1], blackPixels);\n              if (refLine[refPos + 1] < columns)\n                refPos += 2;\n              break;\n            case twoDimHoriz:\n              code1 = code2 = 0;\n              if (blackPixels) {\n                do {\n                  code1 += (code3 = this.getBlackCode());\n                } while (code3 >= 64);\n                do {\n                  code2 += (code3 = this.getWhiteCode());\n                } while (code3 >= 64);\n              } else {\n                do {\n                  code1 += (code3 = this.getWhiteCode());\n                } while (code3 >= 64);\n                do {\n                  code2 += (code3 = this.getBlackCode());\n                } while (code3 >= 64);\n              }\n              this.addPixels(codingLine[this.codingPos] +\n                             code1, blackPixels);\n              if (codingLine[this.codingPos] < columns) {\n                this.addPixels(codingLine[this.codingPos] + code2,\n                               blackPixels ^ 1);\n              }\n              while (refLine[refPos] <= codingLine[this.codingPos] &&\n                     refLine[refPos] < columns) {\n                refPos += 2;\n              }\n              break;\n            case twoDimVertR3:\n              this.addPixels(refLine[refPos] + 3, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (refLine[refPos] <= codingLine[this.codingPos] &&\n                       refLine[refPos] < columns)\n                  refPos += 2;\n              }\n              break;\n            case twoDimVertR2:\n              this.addPixels(refLine[refPos] + 2, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (refLine[refPos] <= codingLine[this.codingPos] &&\n                       refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertR1:\n              this.addPixels(refLine[refPos] + 1, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (refLine[refPos] <= codingLine[this.codingPos] &&\n                       refLine[refPos] < columns)\n                  refPos += 2;\n              }\n              break;\n            case twoDimVert0:\n              this.addPixels(refLine[refPos], blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (refLine[refPos] <= codingLine[this.codingPos] &&\n                       refLine[refPos] < columns)\n                  refPos += 2;\n              }\n              break;\n            case twoDimVertL3:\n              this.addPixelsNeg(refLine[refPos] - 3, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0)\n                  --refPos;\n                else\n                  ++refPos;\n                while (refLine[refPos] <= codingLine[this.codingPos] &&\n                       refLine[refPos] < columns)\n                  refPos += 2;\n              }\n              break;\n            case twoDimVertL2:\n              this.addPixelsNeg(refLine[refPos] - 2, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0)\n                  --refPos;\n                else\n                  ++refPos;\n                while (refLine[refPos] <= codingLine[this.codingPos] &&\n                       refLine[refPos] < columns)\n                  refPos += 2;\n              }\n              break;\n            case twoDimVertL1:\n              this.addPixelsNeg(refLine[refPos] - 1, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0)\n                  --refPos;\n                else\n                  ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] &&\n                       refLine[refPos] < columns)\n                  refPos += 2;\n              }\n              break;\n            case EOF:\n              this.addPixels(columns, 0);\n              this.eof = true;\n              break;\n            default:\n              info('bad 2d code');\n              this.addPixels(columns, 0);\n              this.err = true;\n          }\n        }\n      } else {\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        blackPixels = 0;\n        while (codingLine[this.codingPos] < columns) {\n          code1 = 0;\n          if (blackPixels) {\n            do {\n              code1 += (code3 = this.getBlackCode());\n            } while (code3 >= 64);\n          } else {\n            do {\n              code1 += (code3 = this.getWhiteCode());\n            } while (code3 >= 64);\n          }\n          this.addPixels(codingLine[this.codingPos] + code1, blackPixels);\n          blackPixels ^= 1;\n        }\n      }\n\n      if (this.byteAlign)\n        this.inputBits &= ~7;\n\n      var gotEOL = false;\n\n      if (!this.eoblock && this.row == this.rows - 1) {\n        this.eof = true;\n      } else {\n        code1 = this.lookBits(12);\n        while (code1 === 0) {\n          this.eatBits(1);\n          code1 = this.lookBits(12);\n        }\n        if (code1 == 1) {\n          this.eatBits(12);\n          gotEOL = true;\n        } else if (code1 == EOF) {\n          this.eof = true;\n        }\n      }\n\n      if (!this.eof && this.encoding > 0) {\n        this.nextLine2D = !this.lookBits(1);\n        this.eatBits(1);\n      }\n\n      if (this.eoblock && gotEOL) {\n        code1 = this.lookBits(12);\n        if (code1 == 1) {\n          this.eatBits(12);\n          if (this.encoding > 0) {\n            this.lookBits(1);\n            this.eatBits(1);\n          }\n          if (this.encoding >= 0) {\n            for (var i = 0; i < 4; ++i) {\n              code1 = this.lookBits(12);\n              if (code1 != 1)\n                info('bad rtc code: ' + code1);\n              this.eatBits(12);\n              if (this.encoding > 0) {\n                this.lookBits(1);\n                this.eatBits(1);\n              }\n            }\n          }\n          this.eof = true;\n        }\n      } else if (this.err && this.eoline) {\n        while (true) {\n          code1 = this.lookBits(13);\n          if (code1 == EOF) {\n            this.eof = true;\n            return null;\n          }\n          if ((code1 >> 1) == 1) {\n            break;\n          }\n          this.eatBits(1);\n        }\n        this.eatBits(12);\n        if (this.encoding > 0) {\n          this.eatBits(1);\n          this.nextLine2D = !(code1 & 1);\n        }\n      }\n\n      if (codingLine[0] > 0)\n        this.outputBits = codingLine[this.codingPos = 0];\n      else\n        this.outputBits = codingLine[this.codingPos = 1];\n      this.row++;\n    }\n\n    if (this.outputBits >= 8) {\n      this.buf = (this.codingPos & 1) ? 0 : 0xFF;\n      this.outputBits -= 8;\n      if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n        this.codingPos++;\n        this.outputBits = (codingLine[this.codingPos] -\n                           codingLine[this.codingPos - 1]);\n      }\n    } else {\n      var bits = 8;\n      this.buf = 0;\n      do {\n        if (this.outputBits > bits) {\n          this.buf <<= bits;\n          if (!(this.codingPos & 1)) {\n            this.buf |= 0xFF >> (8 - bits);\n          }\n          this.outputBits -= bits;\n          bits = 0;\n        } else {\n          this.buf <<= this.outputBits;\n          if (!(this.codingPos & 1)) {\n            this.buf |= 0xFF >> (8 - this.outputBits);\n          }\n          bits -= this.outputBits;\n          this.outputBits = 0;\n          if (codingLine[this.codingPos] < columns) {\n            this.codingPos++;\n            this.outputBits = (codingLine[this.codingPos] -\n                               codingLine[this.codingPos - 1]);\n          } else if (bits > 0) {\n            this.buf <<= bits;\n            bits = 0;\n          }\n        }\n      } while (bits);\n    }\n    if (this.black) {\n      this.buf ^= 0xFF;\n    }\n    return this.buf;\n  };\n\n  // This functions returns the code found from the table.\n  // The start and end parameters set the boundaries for searching the table.\n  // The limit parameter is optional. Function returns an array with three\n  // values. The first array element indicates whether a valid code is being\n  // returned. The second array element is the actual code. The third array\n  // element indicates whether EOF was reached.\n  CCITTFaxStream.prototype.findTableCode =\n    function ccittFaxStreamFindTableCode(start, end, table, limit) {\n\n    var limitValue = limit || 0;\n    for (var i = start; i <= end; ++i) {\n      var code = this.lookBits(i);\n      if (code == EOF)\n        return [true, 1, false];\n      if (i < end)\n        code <<= end - i;\n      if (!limitValue || code >= limitValue) {\n        var p = table[code - limitValue];\n        if (p[0] == i) {\n          this.eatBits(i);\n          return [true, p[1], true];\n        }\n      }\n    }\n    return [false, 0, false];\n  };\n\n  CCITTFaxStream.prototype.getTwoDimCode =\n    function ccittFaxStreamGetTwoDimCode() {\n\n    var code = 0;\n    var p;\n    if (this.eoblock) {\n      code = this.lookBits(7);\n      p = twoDimTable[code];\n      if (p && p[0] > 0) {\n        this.eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      var result = this.findTableCode(1, 7, twoDimTable);\n      if (result[0] && result[2])\n        return result[1];\n    }\n    info('Bad two dim code');\n    return EOF;\n  };\n\n  CCITTFaxStream.prototype.getWhiteCode =\n    function ccittFaxStreamGetWhiteCode() {\n\n    var code = 0;\n    var p;\n    var n;\n    if (this.eoblock) {\n      code = this.lookBits(12);\n      if (code == EOF)\n        return 1;\n\n      if ((code >> 5) === 0)\n        p = whiteTable1[code];\n      else\n        p = whiteTable2[code >> 3];\n\n      if (p[0] > 0) {\n        this.eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      var result = this.findTableCode(1, 9, whiteTable2);\n      if (result[0])\n        return result[1];\n\n      result = this.findTableCode(11, 12, whiteTable1);\n      if (result[0])\n        return result[1];\n    }\n    info('bad white code');\n    this.eatBits(1);\n    return 1;\n  };\n\n  CCITTFaxStream.prototype.getBlackCode =\n    function ccittFaxStreamGetBlackCode() {\n\n    var code, p;\n    if (this.eoblock) {\n      code = this.lookBits(13);\n      if (code == EOF)\n        return 1;\n      if ((code >> 7) === 0)\n        p = blackTable1[code];\n      else if ((code >> 9) === 0 && (code >> 7) !== 0)\n        p = blackTable2[(code >> 1) - 64];\n      else\n        p = blackTable3[code >> 7];\n\n      if (p[0] > 0) {\n        this.eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      var result = this.findTableCode(2, 6, blackTable3);\n      if (result[0])\n        return result[1];\n\n      result = this.findTableCode(7, 12, blackTable2, 64);\n      if (result[0])\n        return result[1];\n\n      result = this.findTableCode(10, 13, blackTable1);\n      if (result[0])\n        return result[1];\n    }\n    info('bad black code');\n    this.eatBits(1);\n    return 1;\n  };\n\n  CCITTFaxStream.prototype.lookBits = function CCITTFaxStream_lookBits(n) {\n    var c;\n    while (this.inputBits < n) {\n      if ((c = this.str.getByte()) === -1) {\n        if (this.inputBits === 0)\n          return EOF;\n        return ((this.inputBuf << (n - this.inputBits)) &\n                (0xFFFF >> (16 - n)));\n      }\n      this.inputBuf = (this.inputBuf << 8) + c;\n      this.inputBits += 8;\n    }\n    return (this.inputBuf >> (this.inputBits - n)) & (0xFFFF >> (16 - n));\n  };\n\n  CCITTFaxStream.prototype.eatBits = function CCITTFaxStream_eatBits(n) {\n    if ((this.inputBits -= n) < 0)\n      this.inputBits = 0;\n  };\n\n  return CCITTFaxStream;\n})();\n\nvar LZWStream = (function LZWStreamClosure() {\n  function LZWStream(str, earlyChange) {\n    this.str = str;\n    this.dict = str.dict;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n\n    var maxLzwDictionarySize = 4096;\n    var lzwState = {\n      earlyChange: earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0\n    };\n    for (var i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n    this.lzwState = lzwState;\n\n    DecodeStream.call(this);\n  }\n\n  LZWStream.prototype = Object.create(DecodeStream.prototype);\n\n  LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n    var bitsCached = this.bitsCached;\n    var cachedData = this.cachedData;\n    while (bitsCached < n) {\n      var c = this.str.getByte();\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n      cachedData = (cachedData << 8) | c;\n      bitsCached += 8;\n    }\n    this.bitsCached = (bitsCached -= n);\n    this.cachedData = cachedData;\n    this.lastCode = null;\n    return (cachedData >>> bitsCached) & ((1 << n) - 1);\n  };\n\n  LZWStream.prototype.readBlock = function LZWStream_readBlock() {\n    var blockSize = 512;\n    var estimatedDecodedSize = blockSize * 2, decodedSizeDelta = blockSize;\n    var i, j, q;\n\n    var lzwState = this.lzwState;\n    if (!lzwState)\n      return; // eof was found\n\n    var earlyChange = lzwState.earlyChange;\n    var nextCode = lzwState.nextCode;\n    var dictionaryValues = lzwState.dictionaryValues;\n    var dictionaryLengths = lzwState.dictionaryLengths;\n    var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    var codeLength = lzwState.codeLength;\n    var prevCode = lzwState.prevCode;\n    var currentSequence = lzwState.currentSequence;\n    var currentSequenceLength = lzwState.currentSequenceLength;\n\n    var decodedLength = 0;\n    var currentBufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n    for (i = 0; i < blockSize; i++) {\n      var code = this.readBits(codeLength);\n      var hasPrev = currentSequenceLength > 0;\n      if (code < 256) {\n        currentSequence[0] = code;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code == 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength = (nextCode + earlyChange) & (nextCode + earlyChange - 1) ?\n          codeLength : Math.min(Math.log(nextCode + earlyChange) /\n          0.6931471805599453 + 1, 12) | 0;\n      }\n      prevCode = code;\n\n      decodedLength += currentSequenceLength;\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n      for (j = 0; j < currentSequenceLength; j++)\n        buffer[currentBufferLength++] = currentSequence[j];\n    }\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n\n    this.bufferLength = currentBufferLength;\n  };\n\n  return LZWStream;\n})();\n\nvar NullStream = (function NullStreamClosure() {\n  function NullStream() {\n    Stream.call(this, new Uint8Array(0));\n  }\n\n  NullStream.prototype = Stream.prototype;\n\n  return NullStream;\n})();\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals error, globalScope, InvalidPDFException, log,\n           MissingPDFException, PasswordException, PDFJS, Promise,\n           UnknownErrorException, NetworkManager, LocalPdfManager,\n           NetworkPdfManager, XRefParseException,\n           isInt, PasswordResponses, MessageHandler, Ref */\n\n\"use strict\";\n\n//MQZ. Oct.11.2012. Add Worker's postMessage API\nglobalScope.postMessage = function WorkerTransport_postMessage(obj) {\n\t//  log(\"Inside globalScope.postMessage:\" + JSON.stringify(obj));\n};\n\nvar WorkerMessageHandler = (PDFJS.WorkerMessageHandler = {\n\tsetup: function wphSetup(handler) {\n\t\tvar pdfManager;\n\n\t\tfunction loadDocument(recoveryMode) {\n\t\t\tvar loadDocumentPromise = new Promise();\n\n\t\t\tvar parseSuccess = function parseSuccess() {\n\t\t\t\tvar numPagesPromise = pdfManager.ensureModel(\"numPages\");\n\t\t\t\tvar fingerprintPromise = pdfManager.ensureModel(\"fingerprint\");\n\t\t\t\tvar outlinePromise = pdfManager.ensureCatalog(\"documentOutline\");\n\t\t\t\tvar infoPromise = pdfManager.ensureModel(\"documentInfo\");\n\t\t\t\tvar metadataPromise = pdfManager.ensureCatalog(\"metadata\");\n\t\t\t\tvar encryptedPromise = pdfManager.ensureXRef(\"encrypt\");\n\t\t\t\tvar javaScriptPromise = pdfManager.ensureCatalog(\"javaScript\");\n\t\t\t\tPromise.all([\n\t\t\t\t\tnumPagesPromise,\n\t\t\t\t\tfingerprintPromise,\n\t\t\t\t\toutlinePromise,\n\t\t\t\t\tinfoPromise,\n\t\t\t\t\tmetadataPromise,\n\t\t\t\t\tencryptedPromise,\n\t\t\t\t\tjavaScriptPromise,\n\t\t\t\t]).then(function onDocReady(results) {\n\t\t\t\t\tvar doc = {\n\t\t\t\t\t\tnumPages: results[0],\n\t\t\t\t\t\tfingerprint: results[1],\n\t\t\t\t\t\toutline: results[2],\n\t\t\t\t\t\tinfo: results[3],\n\t\t\t\t\t\tmetadata: results[4],\n\t\t\t\t\t\tencrypted: !!results[5],\n\t\t\t\t\t\tjavaScript: results[6],\n\t\t\t\t\t};\n\t\t\t\t\tloadDocumentPromise.resolve(doc);\n\t\t\t\t}, parseFailure);\n\t\t\t};\n\n\t\t\tvar parseFailure = function parseFailure(e) {\n\t\t\t\tloadDocumentPromise.reject(e);\n\t\t\t};\n\n\t\t\tpdfManager.ensureModel(\"checkHeader\", []).then(function () {\n\t\t\t\tpdfManager.ensureModel(\"parseStartXRef\", []).then(function () {\n\t\t\t\t\tpdfManager\n\t\t\t\t\t\t.ensureModel(\"parse\", [recoveryMode])\n\t\t\t\t\t\t.then(parseSuccess, parseFailure);\n\t\t\t\t}, parseFailure);\n\t\t\t}, parseFailure);\n\n\t\t\treturn loadDocumentPromise;\n\t\t}\n\n\t\tfunction getPdfManager(data) {\n\t\t\tvar pdfManagerPromise = new Promise();\n\n\t\t\tvar source = data.source;\n\t\t\tvar disableRange = data.disableRange;\n\t\t\tif (source.data) {\n\t\t\t\ttry {\n\t\t\t\t\tpdfManager = new LocalPdfManager(source.data, source.password);\n\t\t\t\t\tpdfManagerPromise.resolve();\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tpdfManagerPromise.reject(ex);\n\t\t\t\t}\n\t\t\t\treturn pdfManagerPromise;\n\t\t\t} else if (source.chunkedViewerLoading) {\n\t\t\t\ttry {\n\t\t\t\t\tpdfManager = new NetworkPdfManager(source, handler);\n\t\t\t\t\tpdfManagerPromise.resolve();\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tpdfManagerPromise.reject(ex);\n\t\t\t\t}\n\t\t\t\treturn pdfManagerPromise;\n\t\t\t}\n\n\t\t\tvar networkManager = new NetworkManager(source.url, {\n\t\t\t\thttpHeaders: source.httpHeaders,\n\t\t\t});\n\t\t\tvar fullRequestXhrId = networkManager.requestFull({\n\t\t\t\tonHeadersReceived: function onHeadersReceived() {\n\t\t\t\t\tif (disableRange) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar fullRequestXhr = networkManager.getRequestXhr(fullRequestXhrId);\n\t\t\t\t\tif (fullRequestXhr.getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar contentEncoding =\n\t\t\t\t\t\tfullRequestXhr.getResponseHeader(\"Content-Encoding\") || \"identity\";\n\t\t\t\t\tif (contentEncoding !== \"identity\") {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar length = fullRequestXhr.getResponseHeader(\"Content-Length\");\n\t\t\t\t\tlength = parseInt(length, 10);\n\t\t\t\t\tif (!isInt(length)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// NOTE: by cancelling the full request, and then issuing range\n\t\t\t\t\t// requests, there will be an issue for sites where you can only\n\t\t\t\t\t// request the pdf once. However, if this is the case, then the\n\t\t\t\t\t// server should not be returning that it can support range requests.\n\t\t\t\t\tnetworkManager.abortRequest(fullRequestXhrId);\n\n\t\t\t\t\tsource.length = length;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpdfManager = new NetworkPdfManager(source, handler);\n\t\t\t\t\t\tpdfManagerPromise.resolve(pdfManager);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tpdfManagerPromise.reject(ex);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tonDone: function onDone(args) {\n\t\t\t\t\t// the data is array, instantiating directly from it\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpdfManager = new LocalPdfManager(args.chunk, source.password);\n\t\t\t\t\t\tpdfManagerPromise.resolve();\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tpdfManagerPromise.reject(ex);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tonError: function onError(status) {\n\t\t\t\t\tif (status == 404) {\n\t\t\t\t\t\tvar exception = new MissingPDFException(\n\t\t\t\t\t\t\t'Missing PDF \"' + source.url + '\".'\n\t\t\t\t\t\t);\n\t\t\t\t\t\thandler.send(\"MissingPDF\", { exception: exception });\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandler.send(\n\t\t\t\t\t\t\t\"DocError\",\n\t\t\t\t\t\t\t\"Unexpected server response (\" +\n\t\t\t\t\t\t\t\tstatus +\n\t\t\t\t\t\t\t\t') while retrieving PDF \"' +\n\t\t\t\t\t\t\t\tsource.url +\n\t\t\t\t\t\t\t\t'\".'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tonProgress: function onProgress(evt) {\n\t\t\t\t\thandler.send(\"DocProgress\", {\n\t\t\t\t\t\tloaded: evt.loaded,\n\t\t\t\t\t\ttotal: evt.lengthComputable ? evt.total : void 0,\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn pdfManagerPromise;\n\t\t}\n\n\t\thandler.on(\"test\", function wphSetupTest(data) {\n\t\t\t// check if Uint8Array can be sent to worker\n\t\t\tif (!(data instanceof Uint8Array)) {\n\t\t\t\thandler.send(\"test\", false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// making sure postMessage transfers are working\n\t\t\tvar supportTransfers = data[0] === 255;\n\t\t\thandler.postMessageTransfers = supportTransfers;\n\t\t\t// check if the response property is supported by xhr\n\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\tvar responseExists = \"response\" in xhr;\n\t\t\t// check if the property is actually implemented\n\t\t\ttry {\n\t\t\t\tvar dummy = xhr.responseType;\n\t\t\t} catch (e) {\n\t\t\t\tresponseExists = false;\n\t\t\t}\n\t\t\tif (!responseExists) {\n\t\t\t\thandler.send(\"test\", false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thandler.send(\"test\", {\n\t\t\t\tsupportTypedArray: true,\n\t\t\t\tsupportTransfers: supportTransfers,\n\t\t\t});\n\t\t});\n\n\t\thandler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n\t\t\tvar onSuccess = function (doc) {\n\t\t\t\thandler.send(\"GetDoc\", { pdfInfo: doc });\n\t\t\t};\n\n\t\t\tvar onFailure = function (e) {\n\t\t\t\tif (e instanceof PasswordException) {\n\t\t\t\t\tif (e.code === PasswordResponses.NEED_PASSWORD) {\n\t\t\t\t\t\thandler.send(\"NeedPassword\", {\n\t\t\t\t\t\t\texception: e,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (e.code === PasswordResponses.INCORRECT_PASSWORD) {\n\t\t\t\t\t\thandler.send(\"IncorrectPassword\", {\n\t\t\t\t\t\t\texception: e,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (e instanceof InvalidPDFException) {\n\t\t\t\t\thandler.send(\"InvalidPDF\", {\n\t\t\t\t\t\texception: e,\n\t\t\t\t\t});\n\t\t\t\t} else if (e instanceof MissingPDFException) {\n\t\t\t\t\thandler.send(\"MissingPDF\", {\n\t\t\t\t\t\texception: e,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\thandler.send(\"UnknownError\", {\n\t\t\t\t\t\texception: new UnknownErrorException(e.message, e.toString()),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tPDFJS.maxImageSize =\n\t\t\t\tdata.maxImageSize === undefined ? -1 : data.maxImageSize;\n\t\t\tPDFJS.disableFontFace = data.disableFontFace;\n\n\t\t\tgetPdfManager(data).then(function pdfManagerReady() {\n\t\t\t\tloadDocument(false).then(\n\t\t\t\t\tonSuccess,\n\t\t\t\t\tfunction loadFailure(ex) {\n\t\t\t\t\t\t// Try again with recoveryMode == true\n\t\t\t\t\t\tif (!(ex instanceof XRefParseException)) {\n\t\t\t\t\t\t\tif (ex instanceof PasswordException) {\n\t\t\t\t\t\t\t\t// after password exception prepare to receive a new password\n\t\t\t\t\t\t\t\t// to repeat loading\n\t\t\t\t\t\t\t\tpdfManager.passwordChangedPromise = new Promise();\n\t\t\t\t\t\t\t\tpdfManager.passwordChangedPromise.then(pdfManagerReady);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tonFailure(ex);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpdfManager.requestLoadedStream();\n\t\t\t\t\t\tpdfManager.onLoadedStream().then(function () {\n\t\t\t\t\t\t\tloadDocument(true).then(onSuccess, onFailure);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tonFailure\n\t\t\t\t);\n\t\t\t}, onFailure);\n\t\t});\n\n\t\thandler.on(\"GetPageRequest\", function wphSetupGetPage(data) {\n\t\t\tvar pageIndex = data.pageIndex;\n\t\t\tpdfManager.getPage(pageIndex).then(function (page) {\n\t\t\t\tvar rotatePromise = pdfManager.ensure(page, \"rotate\");\n\t\t\t\tvar refPromise = pdfManager.ensure(page, \"ref\");\n\t\t\t\tvar viewPromise = pdfManager.ensure(page, \"view\");\n\n\t\t\t\tPromise.all([rotatePromise, refPromise, viewPromise]).then(function (\n\t\t\t\t\tresults\n\t\t\t\t) {\n\t\t\t\t\tvar page = {\n\t\t\t\t\t\tpageIndex: data.pageIndex,\n\t\t\t\t\t\trotate: results[0],\n\t\t\t\t\t\tref: results[1],\n\t\t\t\t\t\tview: results[2],\n\t\t\t\t\t};\n\n\t\t\t\t\thandler.send(\"GetPage\", { pageInfo: page });\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\thandler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data, promise) {\n\t\t\tvar ref = new Ref(data.ref.num, data.ref.gen);\n\t\t\tpdfManager.pdfModel.catalog.getPageIndex(ref).then(function (pageIndex) {\n\t\t\t\tpromise.resolve(pageIndex);\n\t\t\t}, promise.reject.bind(promise));\n\t\t});\n\n\t\thandler.on(\n\t\t\t\"GetDestinations\",\n\t\t\tfunction wphSetupGetDestinations(data, promise) {\n\t\t\t\tpdfManager.ensureCatalog(\"destinations\").then(function (destinations) {\n\t\t\t\t\tpromise.resolve(destinations);\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\n\t\thandler.on(\"GetData\", function wphSetupGetData(data, promise) {\n\t\t\tpdfManager.requestLoadedStream();\n\t\t\tpdfManager.onLoadedStream().then(function (stream) {\n\t\t\t\tpromise.resolve(stream.bytes);\n\t\t\t});\n\t\t});\n\n\t\thandler.on(\"DataLoaded\", function wphSetupDataLoaded(data, promise) {\n\t\t\tpdfManager.onLoadedStream().then(function (stream) {\n\t\t\t\tpromise.resolve({ length: stream.bytes.byteLength });\n\t\t\t});\n\t\t});\n\n\t\thandler.on(\"UpdatePassword\", function wphSetupUpdatePassword(data) {\n\t\t\tpdfManager.updatePassword(data);\n\t\t});\n\n\t\thandler.on(\"GetAnnotationsRequest\", function wphSetupGetAnnotations(data) {\n\t\t\tpdfManager.getPage(data.pageIndex).then(function (page) {\n\t\t\t\tpdfManager\n\t\t\t\t\t.ensure(page, \"getAnnotationsData\", [])\n\t\t\t\t\t.then(function (annotationsData) {\n\t\t\t\t\t\thandler.send(\"GetAnnotations\", {\n\t\t\t\t\t\t\tpageIndex: data.pageIndex,\n\t\t\t\t\t\t\tannotations: annotationsData,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\thandler.on(\n\t\t\t\"RenderPageRequest\",\n\t\t\tfunction wphSetupRenderPage(data) {\n\t\t\t\tpdfManager.getPage(data.pageIndex).then(function (page) {\n\t\t\t\t\tvar pageNum = data.pageIndex + 1;\n\t\t\t\t\t//        var start = Date.now();\n\t\t\t\t\t// Pre compile the pdf page and fetch the fonts/images.\n\t\t\t\t\tpage.getOperatorList(handler).then(\n\t\t\t\t\t\tfunction (operatorList) {\n\t\t\t\t\t\t\t//          log('page=%d - getOperatorList: time=%dms, len=%d', pageNum,\n\t\t\t\t\t\t\t//              Date.now() - start, operatorList.fnArray.length);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction (e) {\n\t\t\t\t\t\t\tvar minimumStackMessage =\n\t\t\t\t\t\t\t\t\"worker.js: while trying to getPage() and getOperatorList()\";\n\n\t\t\t\t\t\t\tvar wrappedException;\n\n\t\t\t\t\t\t\t// Turn the error into an obj that can be serialized\n\t\t\t\t\t\t\tif (typeof e === \"string\") {\n\t\t\t\t\t\t\t\twrappedException = {\n\t\t\t\t\t\t\t\t\tmessage: e,\n\t\t\t\t\t\t\t\t\tstack: minimumStackMessage,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else if (typeof e === \"object\") {\n\t\t\t\t\t\t\t\twrappedException = {\n\t\t\t\t\t\t\t\t\tmessage: e.message || e.toString(),\n\t\t\t\t\t\t\t\t\tstack: e.stack || minimumStackMessage,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twrappedException = {\n\t\t\t\t\t\t\t\t\tmessage: \"Unknown exception type: \" + typeof e,\n\t\t\t\t\t\t\t\t\tstack: minimumStackMessage,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\thandler.send(\"PageError\", {\n\t\t\t\t\t\t\t\tpageNum: pageNum,\n\t\t\t\t\t\t\t\terror: wrappedException,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t},\n\t\t\tthis\n\t\t);\n\n\t\thandler.on(\"GetTextContent\", function wphExtractText(data, promise) {\n\t\t\tpdfManager.getPage(data.pageIndex).then(function (page) {\n\t\t\t\tvar pageNum = data.pageIndex + 1;\n\t\t\t\tvar start = Date.now();\n\t\t\t\tpage.extractTextContent().then(\n\t\t\t\t\tfunction (textContent) {\n\t\t\t\t\t\tpromise.resolve(textContent);\n\t\t\t\t\t\t//MQZ 03/17/2016 comment out log\n\t\t\t\t\t\t//log('text indexing: page=%d - time=%dms', pageNum,\n\t\t\t\t\t\t//    Date.now() - start);\n\t\t\t\t\t},\n\t\t\t\t\tfunction (e) {\n\t\t\t\t\t\t// Skip errored pages\n\t\t\t\t\t\tpromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\n\t\thandler.on(\"Cleanup\", function wphCleanup(data, promise) {\n\t\t\tpdfManager.cleanup();\n\t\t\tpromise.resolve(true);\n\t\t});\n\n\t\thandler.on(\"Terminate\", function wphTerminate(data, promise) {\n\t\t\tpdfManager.terminate();\n\t\t\tpromise.resolve();\n\t\t});\n\t},\n});\n\nvar consoleTimer = {};\n\nvar workerConsole = {\n\tlog: function log() {\n\t\tvar args = Array.prototype.slice.call(arguments);\n\t\tglobalScope.postMessage({\n\t\t\taction: \"console_log\",\n\t\t\tdata: args,\n\t\t});\n\t},\n\n\terror: function error() {\n\t\tvar args = Array.prototype.slice.call(arguments);\n\t\tglobalScope.postMessage({\n\t\t\taction: \"console_error\",\n\t\t\tdata: args,\n\t\t});\n\t\tthrow \"pdf.js execution error\";\n\t},\n\n\ttime: function time(name) {\n\t\tconsoleTimer[name] = Date.now();\n\t},\n\n\ttimeEnd: function timeEnd(name) {\n\t\tvar time = consoleTimer[name];\n\t\tif (!time) {\n\t\t\terror(\"Unkown timer name \" + name);\n\t\t}\n\t\tthis.log(\"Timer:\", name, Date.now() - time);\n\t},\n};\n\n// Worker thread?\nif (typeof window === \"undefined\") {\n\tglobalScope.console = workerConsole;\n\n\t// Add a logger so we can pass warnings on to the main thread, errors will\n\t// throw an exception which will be forwarded on automatically.\n\tPDFJS.LogManager.addLogger({\n\t\twarn: function (msg) {\n\t\t\tglobalScope.postMessage({\n\t\t\t\taction: \"_warn\",\n\t\t\t\tdata: msg,\n\t\t\t});\n\t\t},\n\t});\n\n\tvar handler = new MessageHandler(\"worker_processor\", globalScope);\n\tWorkerMessageHandler.setup(handler);\n}\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals error, globalScope, warn */\n\n'use strict';\n\nvar JpxImage = (function JpxImageClosure() {\n  // Table E.1\n  var SubbandsGainLog2 = {\n    'LL': 0,\n    'LH': 1,\n    'HL': 1,\n    'HH': 2\n  };\n  function JpxImage() {\n    this.failOnCorruptedImage = false;\n  }\n  JpxImage.prototype = {\n    load: function JpxImage_load(url) {\n      var xhr = new XMLHttpRequest();\n      xhr.open('GET', url, true);\n      xhr.responseType = 'arraybuffer';\n      xhr.onload = (function() {\n        // TODO catch parse error\n        var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n        this.parse(data);\n        if (this.onload)\n          this.onload();\n      }).bind(this);\n      xhr.send(null);\n    },\n    parse: function JpxImage_parse(data) {\n      function readUint(data, offset, bytes) {\n        var n = 0;\n        for (var i = 0; i < bytes; i++)\n          n = n * 256 + (data[offset + i] & 0xFF);\n        return n;\n      }\n      var position = 0, length = data.length;\n      while (position < length) {\n        var headerSize = 8;\n        var lbox = readUint(data, position, 4);\n        var tbox = readUint(data, position + 4, 4);\n        position += headerSize;\n        if (lbox == 1) {\n          lbox = readUint(data, position, 8);\n          position += 8;\n          headerSize += 8;\n        }\n        if (lbox === 0)\n          lbox = length - position + headerSize;\n        if (lbox < headerSize)\n          error('JPX error: Invalid box field size');\n        var dataLength = lbox - headerSize;\n        var jumpDataLength = true;\n        switch (tbox) {\n          case 0x6A501A1A: // 'jP\\032\\032'\n            // TODO\n            break;\n          case 0x6A703268: // 'jp2h'\n            jumpDataLength = false; // parsing child boxes\n            break;\n          case 0x636F6C72: // 'colr'\n            // TODO\n            break;\n          case 0x6A703263: // 'jp2c'\n            this.parseCodestream(data, position, position + dataLength);\n            break;\n        }\n        if (jumpDataLength)\n          position += dataLength;\n      }\n    },\n    parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n      var context = {};\n      try {\n        var position = start;\n        while (position < end) {\n          var code = readUint16(data, position);\n          position += 2;\n\n          var length = 0, j;\n          switch (code) {\n            case 0xFF4F: // Start of codestream (SOC)\n              context.mainHeader = true;\n              break;\n            case 0xFFD9: // End of codestream (EOC)\n              break;\n            case 0xFF51: // Image and tile size (SIZ)\n              length = readUint16(data, position);\n              var siz = {};\n              siz.Xsiz = readUint32(data, position + 4);\n              siz.Ysiz = readUint32(data, position + 8);\n              siz.XOsiz = readUint32(data, position + 12);\n              siz.YOsiz = readUint32(data, position + 16);\n              siz.XTsiz = readUint32(data, position + 20);\n              siz.YTsiz = readUint32(data, position + 24);\n              siz.XTOsiz = readUint32(data, position + 28);\n              siz.YTOsiz = readUint32(data, position + 32);\n              var componentsCount = readUint16(data, position + 36);\n              siz.Csiz = componentsCount;\n              var components = [];\n              j = position + 38;\n              for (var i = 0; i < componentsCount; i++) {\n                var component = {\n                  precision: (data[j] & 0x7F) + 1,\n                  isSigned: !!(data[j] & 0x80),\n                  XRsiz: data[j + 1],\n                  YRsiz: data[j + 1]\n                };\n                calculateComponentDimensions(component, siz);\n                components.push(component);\n              }\n              context.SIZ = siz;\n              context.components = components;\n              calculateTileGrids(context, components);\n              context.QCC = [];\n              context.COC = [];\n              break;\n            case 0xFF5C: // Quantization default (QCD)\n              length = readUint16(data, position);\n              var qcd = {};\n              j = position + 2;\n              var sqcd = data[j++];\n              var spqcdSize, scalarExpounded;\n              switch (sqcd & 0x1F) {\n                case 0:\n                  spqcdSize = 8;\n                  scalarExpounded = true;\n                  break;\n                case 1:\n                  spqcdSize = 16;\n                  scalarExpounded = false;\n                  break;\n                case 2:\n                  spqcdSize = 16;\n                  scalarExpounded = true;\n                  break;\n                default:\n                  throw 'Invalid SQcd value ' + sqcd;\n              }\n              qcd.noQuantization = spqcdSize == 8;\n              qcd.scalarExpounded = scalarExpounded;\n              qcd.guardBits = sqcd >> 5;\n              var spqcds = [];\n              while (j < length + position) {\n                var spqcd = {};\n                if (spqcdSize == 8) {\n                  spqcd.epsilon = data[j++] >> 3;\n                  spqcd.mu = 0;\n                } else {\n                  spqcd.epsilon = data[j] >> 3;\n                  spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n                  j += 2;\n                }\n                spqcds.push(spqcd);\n              }\n              qcd.SPqcds = spqcds;\n              if (context.mainHeader)\n                context.QCD = qcd;\n              else {\n                context.currentTile.QCD = qcd;\n                context.currentTile.QCC = [];\n              }\n              break;\n            case 0xFF5D: // Quantization component (QCC)\n              length = readUint16(data, position);\n              var qcc = {};\n              j = position + 2;\n              var cqcc;\n              if (context.SIZ.Csiz < 257)\n                cqcc = data[j++];\n              else {\n                cqcc = readUint16(data, j);\n                j += 2;\n              }\n              var sqcd = data[j++];\n              var spqcdSize, scalarExpounded;\n              switch (sqcd & 0x1F) {\n                case 0:\n                  spqcdSize = 8;\n                  scalarExpounded = true;\n                  break;\n                case 1:\n                  spqcdSize = 16;\n                  scalarExpounded = false;\n                  break;\n                case 2:\n                  spqcdSize = 16;\n                  scalarExpounded = true;\n                  break;\n                default:\n                  throw 'Invalid SQcd value ' + sqcd;\n              }\n              qcc.noQuantization = spqcdSize == 8;\n              qcc.scalarExpounded = scalarExpounded;\n              qcc.guardBits = sqcd >> 5;\n              var spqcds = [];\n              while (j < length + position) {\n                var spqcd = {};\n                if (spqcdSize == 8) {\n                  spqcd.epsilon = data[j++] >> 3;\n                  spqcd.mu = 0;\n                } else {\n                  spqcd.epsilon = data[j] >> 3;\n                  spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n                  j += 2;\n                }\n                spqcds.push(spqcd);\n              }\n              qcc.SPqcds = spqcds;\n              if (context.mainHeader)\n                context.QCC[cqcc] = qcc;\n              else\n                context.currentTile.QCC[cqcc] = qcc;\n              break;\n            case 0xFF52: // Coding style default (COD)\n              length = readUint16(data, position);\n              var cod = {};\n              j = position + 2;\n              var scod = data[j++];\n              cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n              cod.sopMarkerUsed = !!(scod & 2);\n              cod.ephMarkerUsed = !!(scod & 4);\n              var codingStyle = {};\n              cod.progressionOrder = data[j++];\n              cod.layersCount = readUint16(data, j);\n              j += 2;\n              cod.multipleComponentTransform = data[j++];\n\n              cod.decompositionLevelsCount = data[j++];\n              cod.xcb = (data[j++] & 0xF) + 2;\n              cod.ycb = (data[j++] & 0xF) + 2;\n              var blockStyle = data[j++];\n              cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n              cod.resetContextProbabilities = !!(blockStyle & 2);\n              cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n              cod.verticalyStripe = !!(blockStyle & 8);\n              cod.predictableTermination = !!(blockStyle & 16);\n              cod.segmentationSymbolUsed = !!(blockStyle & 32);\n              cod.transformation = data[j++];\n              if (cod.entropyCoderWithCustomPrecincts) {\n                var precinctsSizes = {};\n                while (j < length + position) {\n                  var precinctsSize = data[j];\n                  precinctsSizes.push({\n                    PPx: precinctsSize & 0xF,\n                    PPy: precinctsSize >> 4\n                  });\n                }\n                cod.precinctsSizes = precinctsSizes;\n              }\n\n              if (cod.sopMarkerUsed || cod.ephMarkerUsed ||\n                  cod.selectiveArithmeticCodingBypass ||\n                  cod.resetContextProbabilities ||\n                  cod.terminationOnEachCodingPass ||\n                  cod.verticalyStripe || cod.predictableTermination)\n                throw 'Unsupported COD options: ' +\n                  globalScope.JSON.stringify(cod);\n\n              if (context.mainHeader)\n                context.COD = cod;\n              else {\n                context.currentTile.COD = cod;\n                context.currentTile.COC = [];\n              }\n              break;\n            case 0xFF90: // Start of tile-part (SOT)\n              length = readUint16(data, position);\n              var tile = {};\n              tile.index = readUint16(data, position + 2);\n              tile.length = readUint32(data, position + 4);\n              tile.dataEnd = tile.length + position - 2;\n              tile.partIndex = data[position + 8];\n              tile.partsCount = data[position + 9];\n\n              context.mainHeader = false;\n              if (tile.partIndex === 0) {\n                // reset component specific settings\n                tile.COD = context.COD;\n                tile.COC = context.COC.slice(0); // clone of the global COC\n                tile.QCD = context.QCD;\n                tile.QCC = context.QCC.slice(0); // clone of the global COC\n              }\n              context.currentTile = tile;\n              break;\n            case 0xFF93: // Start of data (SOD)\n              var tile = context.currentTile;\n              if (tile.partIndex === 0) {\n                initializeTile(context, tile.index);\n                buildPackets(context);\n              }\n\n              // moving to the end of the data\n              length = tile.dataEnd - position;\n\n              parseTilePackets(context, data, position, length);\n              break;\n            case 0xFF64: // Comment (COM)\n              length = readUint16(data, position);\n              // skipping content\n              break;\n            default:\n              throw 'Unknown codestream code: ' + code.toString(16);\n          }\n          position += length;\n        }\n      } catch (e) {\n        if (this.failOnCorruptedImage)\n          error('JPX error: ' + e);\n        else\n          warn('JPX error: ' + e + '. Trying to recover');\n      }\n      this.tiles = transformComponents(context);\n      this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n      this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n      this.componentsCount = context.SIZ.Csiz;\n    }\n  };\n  function readUint32(data, offset) {\n    return (data[offset] << 24) | (data[offset + 1] << 16) |\n      (data[offset + 2] << 8) | data[offset + 3];\n  }\n  function readUint16(data, offset) {\n    return (data[offset] << 8) | data[offset + 1];\n  }\n  function log2(x) {\n    var n = 1, i = 0;\n    while (x > n) {\n      n <<= 1;\n      i++;\n    }\n    return i;\n  }\n  function calculateComponentDimensions(component, siz) {\n    // Section B.2 Component mapping\n    component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n    component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n    component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n    component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n    component.width = component.x1 - component.x0;\n    component.height = component.y1 - component.y0;\n  }\n  function calculateTileGrids(context, components) {\n    var siz = context.SIZ;\n    // Section B.3 Division into tile and tile-components\n    var tiles = [];\n    var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n    var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n    for (var q = 0; q < numYtiles; q++) {\n      for (var p = 0; p < numXtiles; p++) {\n        var tile = {};\n        tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n        tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n        tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n        tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n        tile.width = tile.tx1 - tile.tx0;\n        tile.height = tile.ty1 - tile.ty0;\n        tile.components = [];\n        tiles.push(tile);\n      }\n    }\n    context.tiles = tiles;\n\n    var componentsCount = siz.Csiz;\n    for (var i = 0, ii = componentsCount; i < ii; i++) {\n      var component = components[i];\n      var tileComponents = [];\n      for (var j = 0, jj = tiles.length; j < jj; j++) {\n        var tileComponent = {}, tile = tiles[j];\n        tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n        tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n        tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n        tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n        tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n        tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n        tile.components[i] = tileComponent;\n      }\n    }\n  }\n  function getBlocksDimensions(context, component, r) {\n    var codOrCoc = component.codingStyleParameters;\n    var result = {};\n    if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n      result.PPx = 15;\n      result.PPy = 15;\n    } else {\n      result.PPx = codOrCoc.precinctsSizes[r].PPx;\n      result.PPy = codOrCoc.precinctsSizes[r].PPy;\n    }\n    // calculate codeblock size as described in section B.7\n    result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) :\n      Math.min(codOrCoc.xcb, result.PPx);\n    result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) :\n      Math.min(codOrCoc.ycb, result.PPy);\n    return result;\n  }\n  function buildPrecincts(context, resolution, dimensions) {\n    // Section B.6 Division resolution to precincts\n    var precinctWidth = 1 << dimensions.PPx;\n    var precinctHeight = 1 << dimensions.PPy;\n    var numprecinctswide = resolution.trx1 > resolution.trx0 ?\n      Math.ceil(resolution.trx1 / precinctWidth) -\n      Math.floor(resolution.trx0 / precinctWidth) : 0;\n    var numprecinctshigh = resolution.try1 > resolution.try0 ?\n      Math.ceil(resolution.try1 / precinctHeight) -\n      Math.floor(resolution.try0 / precinctHeight) : 0;\n    var numprecincts = numprecinctswide * numprecinctshigh;\n    var precinctXOffset = Math.floor(resolution.trx0 / precinctWidth) *\n      precinctWidth;\n    var precinctYOffset = Math.floor(resolution.try0 / precinctHeight) *\n      precinctHeight;\n    resolution.precinctParameters = {\n      precinctXOffset: precinctXOffset,\n      precinctYOffset: precinctYOffset,\n      precinctWidth: precinctWidth,\n      precinctHeight: precinctHeight,\n      numprecinctswide: numprecinctswide,\n      numprecinctshigh: numprecinctshigh,\n      numprecincts: numprecincts\n    };\n  }\n  function buildCodeblocks(context, subband, dimensions) {\n    // Section B.7 Division sub-band into code-blocks\n    var xcb_ = dimensions.xcb_;\n    var ycb_ = dimensions.ycb_;\n    var codeblockWidth = 1 << xcb_;\n    var codeblockHeight = 1 << ycb_;\n    var cbx0 = Math.floor(subband.tbx0 / codeblockWidth);\n    var cby0 = Math.floor(subband.tby0 / codeblockHeight);\n    var cbx1 = Math.ceil(subband.tbx1 / codeblockWidth);\n    var cby1 = Math.ceil(subband.tby1 / codeblockHeight);\n    var precinctParameters = subband.resolution.precinctParameters;\n    var codeblocks = [];\n    var precincts = [];\n    for (var j = cby0; j < cby1; j++) {\n      for (var i = cbx0; i < cbx1; i++) {\n        var codeblock = {\n          cbx: i,\n          cby: j,\n          tbx0: codeblockWidth * i,\n          tby0: codeblockHeight * j,\n          tbx1: codeblockWidth * (i + 1),\n          tby1: codeblockHeight * (j + 1)\n        };\n        // calculate precinct number\n        var pi = Math.floor((codeblock.tbx0 -\n          precinctParameters.precinctXOffset) /\n          precinctParameters.precinctWidth);\n        var pj = Math.floor((codeblock.tby0 -\n          precinctParameters.precinctYOffset) /\n          precinctParameters.precinctHeight);\n        var precinctNumber = pj +\n          pi * precinctParameters.numprecinctswide;\n        codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n        codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n        codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n        codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n        codeblock.precinctNumber = precinctNumber;\n        codeblock.subbandType = subband.type;\n        var coefficientsLength = (codeblock.tbx1_ - codeblock.tbx0_) *\n          (codeblock.tby1_ - codeblock.tby0_);\n        codeblock.Lblock = 3;\n        codeblocks.push(codeblock);\n        // building precinct for the sub-band\n        var precinct;\n        if (precinctNumber in precincts) {\n          precinct = precincts[precinctNumber];\n          precinct.cbxMin = Math.min(precinct.cbxMin, i);\n          precinct.cbyMin = Math.min(precinct.cbyMin, j);\n          precinct.cbxMax = Math.max(precinct.cbxMax, i);\n          precinct.cbyMax = Math.max(precinct.cbyMax, j);\n        } else {\n          precincts[precinctNumber] = precinct = {\n            cbxMin: i,\n            cbyMin: j,\n            cbxMax: i,\n            cbyMax: j\n          };\n        }\n        codeblock.precinct = precinct;\n      }\n    }\n    subband.codeblockParameters = {\n      codeblockWidth: xcb_,\n      codeblockHeight: ycb_,\n      numcodeblockwide: cbx1 - cbx0 + 1,\n      numcodeblockhigh: cby1 - cby1 + 1\n    };\n    subband.codeblocks = codeblocks;\n    for (var i = 0, ii = codeblocks.length; i < ii; i++) {\n      var codeblock = codeblocks[i];\n      var precinctNumber = codeblock.precinctNumber;\n    }\n    subband.precincts = precincts;\n  }\n  function createPacket(resolution, precinctNumber, layerNumber) {\n    var precinctCodeblocks = [];\n    // Section B.10.8 Order of info in packet\n    var subbands = resolution.subbands;\n    // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n    for (var i = 0, ii = subbands.length; i < ii; i++) {\n      var subband = subbands[i];\n      var codeblocks = subband.codeblocks;\n      for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n        var codeblock = codeblocks[j];\n        if (codeblock.precinctNumber != precinctNumber)\n          continue;\n        precinctCodeblocks.push(codeblock);\n      }\n    }\n    return {\n      layerNumber: layerNumber,\n      codeblocks: precinctCodeblocks\n    };\n  }\n  function LayerResolutionComponentPositionIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var maxDecompositionLevelsCount = 0;\n    for (var q = 0; q < componentsCount; q++) {\n      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,\n        tile.components[q].codingStyleParameters.decompositionLevelsCount);\n    }\n\n    var l = 0, r = 0, i = 0, k = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      // Section B.12.1.1 Layer-resolution-component-position\n      for (; l < layersCount; l++) {\n        for (; r <= maxDecompositionLevelsCount; r++) {\n          for (; i < componentsCount; i++) {\n            var component = tile.components[i];\n            if (r > component.codingStyleParameters.decompositionLevelsCount)\n              continue;\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n            for (; k < numprecincts;) {\n              var packet = createPacket(resolution, k, l);\n              k++;\n              return packet;\n            }\n            k = 0;\n          }\n          i = 0;\n        }\n        r = 0;\n      }\n      throw 'Out of packets';\n    };\n  }\n  function ResolutionLayerComponentPositionIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var maxDecompositionLevelsCount = 0;\n    for (var q = 0; q < componentsCount; q++) {\n      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,\n        tile.components[q].codingStyleParameters.decompositionLevelsCount);\n    }\n\n    var r = 0, l = 0, i = 0, k = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      // Section B.12.1.2 Resolution-layer-component-position\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; l < layersCount; l++) {\n          for (; i < componentsCount; i++) {\n            var component = tile.components[i];\n            if (r > component.codingStyleParameters.decompositionLevelsCount)\n              continue;\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n            for (; k < numprecincts;) {\n              var packet = createPacket(resolution, k, l);\n              k++;\n              return packet;\n            }\n            k = 0;\n          }\n          i = 0;\n        }\n        l = 0;\n      }\n      throw 'Out of packets';\n    };\n  }\n  function buildPackets(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var componentsCount = siz.Csiz;\n    // Creating resolutions and sub-bands for each component\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var decompositionLevelsCount =\n        component.codingStyleParameters.decompositionLevelsCount;\n      // Section B.5 Resolution levels and sub-bands\n      var resolutions = [];\n      var subbands = [];\n      for (var r = 0; r <= decompositionLevelsCount; r++) {\n        var blocksDimensions = getBlocksDimensions(context, component, r);\n        var resolution = {};\n        var scale = 1 << (decompositionLevelsCount - r);\n        resolution.trx0 = Math.ceil(component.tcx0 / scale);\n        resolution.try0 = Math.ceil(component.tcy0 / scale);\n        resolution.trx1 = Math.ceil(component.tcx1 / scale);\n        resolution.try1 = Math.ceil(component.tcy1 / scale);\n        buildPrecincts(context, resolution, blocksDimensions);\n        resolutions.push(resolution);\n\n        var subband;\n        if (r === 0) {\n          // one sub-band (LL) with last decomposition\n          subband = {};\n          subband.type = 'LL';\n          subband.tbx0 = Math.ceil(component.tcx0 / scale);\n          subband.tby0 = Math.ceil(component.tcy0 / scale);\n          subband.tbx1 = Math.ceil(component.tcx1 / scale);\n          subband.tby1 = Math.ceil(component.tcy1 / scale);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolution.subbands = [subband];\n        } else {\n          var bscale = 1 << (decompositionLevelsCount - r + 1);\n          var resolutionSubbands = [];\n          // three sub-bands (HL, LH and HH) with rest of decompositions\n          subband = {};\n          subband.type = 'HL';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n\n          subband = {};\n          subband.type = 'LH';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n\n          subband = {};\n          subband.type = 'HH';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n\n          resolution.subbands = resolutionSubbands;\n        }\n      }\n      component.resolutions = resolutions;\n      component.subbands = subbands;\n    }\n    // Generate the packets sequence\n    var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n    var packetsIterator;\n    switch (progressionOrder) {\n      case 0:\n        tile.packetsIterator =\n          new LayerResolutionComponentPositionIterator(context);\n        break;\n      case 1:\n        tile.packetsIterator =\n          new ResolutionLayerComponentPositionIterator(context);\n        break;\n      default:\n        throw 'Unsupported progression order ' + progressionOrder;\n    }\n  }\n  function parseTilePackets(context, data, offset, dataLength) {\n    var position = 0;\n    var buffer, bufferSize = 0, skipNextBit = false;\n    function readBits(count) {\n      while (bufferSize < count) {\n        var b = data[offset + position];\n        position++;\n        if (skipNextBit) {\n          buffer = (buffer << 7) | b;\n          bufferSize += 7;\n          skipNextBit = false;\n        } else {\n          buffer = (buffer << 8) | b;\n          bufferSize += 8;\n        }\n        if (b == 0xFF) {\n          skipNextBit = true;\n        }\n      }\n      bufferSize -= count;\n      return (buffer >>> bufferSize) & ((1 << count) - 1);\n    }\n    function alignToByte() {\n      bufferSize = 0;\n      if (skipNextBit) {\n        position++;\n        skipNextBit = false;\n      }\n    }\n    function readCodingpasses() {\n      var value = readBits(1);\n      if (value === 0)\n        return 1;\n      value = (value << 1) | readBits(1);\n      if (value == 0x02)\n        return 2;\n      value = (value << 2) | readBits(2);\n      if (value <= 0x0E)\n        return (value & 0x03) + 3;\n      value = (value << 5) | readBits(5);\n      if (value <= 0x1FE)\n        return (value & 0x1F) + 6;\n      value = (value << 7) | readBits(7);\n      return (value & 0x7F) + 37;\n    }\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var packetsIterator = tile.packetsIterator;\n    while (position < dataLength) {\n      var packet = packetsIterator.nextPacket();\n      if (!readBits(1)) {\n        alignToByte();\n        continue;\n      }\n      var layerNumber = packet.layerNumber;\n      var queue = [];\n      for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n        var codeblock = packet.codeblocks[i];\n        var precinct = codeblock.precinct;\n        var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n        var codeblockRow = codeblock.cby - precinct.cbyMin;\n        var codeblockIncluded = false;\n        var firstTimeInclusion = false;\n        if ('included' in codeblock) {\n          codeblockIncluded = !!readBits(1);\n        } else {\n          // reading inclusion tree\n          var precinct = codeblock.precinct;\n          var inclusionTree, zeroBitPlanesTree;\n          if ('inclusionTree' in precinct) {\n            inclusionTree = precinct.inclusionTree;\n          } else {\n            // building inclusion and zero bit-planes trees\n            var width = precinct.cbxMax - precinct.cbxMin + 1;\n            var height = precinct.cbyMax - precinct.cbyMin + 1;\n            inclusionTree = new InclusionTree(width, height, layerNumber);\n            zeroBitPlanesTree = new TagTree(width, height);\n            precinct.inclusionTree = inclusionTree;\n            precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n          }\n\n          if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n            while (true) {\n              if (readBits(1)) {\n                var valueReady = !inclusionTree.nextLevel();\n                if (valueReady) {\n                  codeblock.included = true;\n                  codeblockIncluded = firstTimeInclusion = true;\n                  break;\n                }\n              } else {\n                inclusionTree.incrementValue(layerNumber);\n                break;\n              }\n            }\n          }\n        }\n        if (!codeblockIncluded)\n          continue;\n        if (firstTimeInclusion) {\n          zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n          zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n          while (true) {\n            if (readBits(1)) {\n              var valueReady = !zeroBitPlanesTree.nextLevel();\n              if (valueReady)\n                break;\n            } else\n              zeroBitPlanesTree.incrementValue();\n          }\n          codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n        }\n        var codingpasses = readCodingpasses();\n        while (readBits(1))\n          codeblock.Lblock++;\n        var codingpassesLog2 = log2(codingpasses);\n        // rounding down log2\n        var bits = ((codingpasses < (1 << codingpassesLog2)) ?\n          codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n        var codedDataLength = readBits(bits);\n        queue.push({\n          codeblock: codeblock,\n          codingpasses: codingpasses,\n          dataLength: codedDataLength\n        });\n      }\n      alignToByte();\n      while (queue.length > 0) {\n        var packetItem = queue.shift();\n        var codeblock = packetItem.codeblock;\n        if (!('data' in codeblock))\n          codeblock.data = [];\n        codeblock.data.push({\n          data: data,\n          start: offset + position,\n          end: offset + position + packetItem.dataLength,\n          codingpasses: packetItem.codingpasses\n        });\n        position += packetItem.dataLength;\n      }\n    }\n    return position;\n  }\n  function copyCoefficients(coefficients, x0, y0, width, height,\n                            delta, mb, codeblocks, transformation,\n                            segmentationSymbolUsed) {\n    var r = 0.5; // formula (E-6)\n    for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n      var codeblock = codeblocks[i];\n      var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n      var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n      if (blockWidth === 0 || blockHeight === 0)\n        continue;\n      if (!('data' in codeblock))\n        continue;\n\n      var bitModel, currentCodingpassType;\n      bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType,\n        codeblock.zeroBitPlanes);\n      currentCodingpassType = 2; // first bit plane starts from cleanup\n\n      // collect data\n      var data = codeblock.data, totalLength = 0, codingpasses = 0;\n      for (var q = 0, qq = data.length; q < qq; q++) {\n        var dataItem = data[q];\n        totalLength += dataItem.end - dataItem.start;\n        codingpasses += dataItem.codingpasses;\n      }\n      var encodedData = new Uint8Array(totalLength), k = 0;\n      for (var q = 0, qq = data.length; q < qq; q++) {\n        var dataItem = data[q];\n        var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n        encodedData.set(chunk, k);\n        k += chunk.length;\n      }\n      // decoding the item\n      var decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n      bitModel.setDecoder(decoder);\n\n      for (var q = 0; q < codingpasses; q++) {\n        switch (currentCodingpassType) {\n          case 0:\n            bitModel.runSignificancePropogationPass();\n            break;\n          case 1:\n            bitModel.runMagnitudeRefinementPass();\n            break;\n          case 2:\n            bitModel.runCleanupPass();\n            if (segmentationSymbolUsed)\n              bitModel.checkSegmentationSymbol();\n            break;\n        }\n        currentCodingpassType = (currentCodingpassType + 1) % 3;\n      }\n\n      var offset = (codeblock.tbx0_ - x0) + (codeblock.tby0_ - y0) * width;\n      var position = 0;\n      for (var j = 0; j < blockHeight; j++) {\n        for (var k = 0; k < blockWidth; k++) {\n          var n = (bitModel.coefficentsSign[position] ? -1 : 1) *\n            bitModel.coefficentsMagnitude[position];\n          var nb = bitModel.bitsDecoded[position], correction;\n          if (transformation === 0 || mb > nb) {\n            // use r only if transformation is irreversible or\n            // not all bitplanes were decoded for reversible transformation\n            n += n < 0 ? n - r : n > 0 ? n + r : 0;\n            correction = 1 << (mb - nb);\n          } else\n            correction = 1;\n          coefficients[offset++] = n * correction * delta;\n          position++;\n        }\n        offset += width - blockWidth;\n      }\n    }\n  }\n  function transformTile(context, tile, c) {\n    var component = tile.components[c];\n    var codingStyleParameters = component.codingStyleParameters;\n    var quantizationParameters = component.quantizationParameters;\n    var decompositionLevelsCount =\n      codingStyleParameters.decompositionLevelsCount;\n    var spqcds = quantizationParameters.SPqcds;\n    var scalarExpounded = quantizationParameters.scalarExpounded;\n    var guardBits = quantizationParameters.guardBits;\n    var transformation = codingStyleParameters.transformation;\n    var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n    var precision = context.components[c].precision;\n\n    var subbandCoefficients = [];\n    var k = 0, b = 0;\n    for (var i = 0; i <= decompositionLevelsCount; i++) {\n      var resolution = component.resolutions[i];\n\n      for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n        var mu, epsilon;\n        if (!scalarExpounded) {\n          // formula E-5\n          mu = spqcds[0].mu;\n          epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n        } else {\n          mu = spqcds[b].mu;\n          epsilon = spqcds[b].epsilon;\n        }\n\n        var subband = resolution.subbands[j];\n        var width = subband.tbx1 - subband.tbx0;\n        var height = subband.tby1 - subband.tby0;\n        var gainLog2 = SubbandsGainLog2[subband.type];\n\n        // calulate quantization coefficient (Section E.1.1.1)\n        var delta = Math.pow(2, (precision + gainLog2) - epsilon) *\n          (1 + mu / 2048);\n        var mb = (guardBits + epsilon - 1);\n\n        var coefficients = new Float32Array(width * height);\n        copyCoefficients(coefficients, subband.tbx0, subband.tby0,\n          width, height, delta, mb, subband.codeblocks, transformation,\n          segmentationSymbolUsed);\n\n        subbandCoefficients.push({\n          width: width,\n          height: height,\n          items: coefficients\n        });\n\n        b++;\n      }\n    }\n\n    var transformation = codingStyleParameters.transformation;\n    var transform = transformation === 0 ? new IrreversibleTransform() :\n      new ReversibleTransform();\n    var result = transform.calculate(subbandCoefficients,\n      component.tcx0, component.tcy0);\n    return {\n      left: component.tcx0,\n      top: component.tcy0,\n      width: result.width,\n      height: result.height,\n      items: result.items\n    };\n  }\n  function transformComponents(context) {\n    var siz = context.SIZ;\n    var components = context.components;\n    var componentsCount = siz.Csiz;\n    var resultImages = [];\n    for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n      var tile = context.tiles[i];\n      var result = [];\n      for (var c = 0; c < componentsCount; c++) {\n        var image = transformTile(context, tile, c);\n        result.push(image);\n      }\n\n      // Section G.2.2 Inverse multi component transform\n      if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n        var y0items = result[0].items;\n        var y1items = result[1].items;\n        var y2items = result[2].items;\n        for (var j = 0, jj = y0items.length; j < jj; j++) {\n          var y0 = y0items[j], y1 = y1items[j], y2 = y2items[j];\n          var i1 = y0 - ((y2 + y1) >> 2);\n          y1items[j] = i1;\n          y0items[j] = y2 + i1;\n          y2items[j] = y1 + i1;\n        }\n      }\n\n      // Section G.1 DC level shifting to unsigned component values\n      for (var c = 0; c < componentsCount; c++) {\n        var component = components[c];\n        if (component.isSigned)\n          continue;\n\n        var offset = 1 << (component.precision - 1);\n        var tileImage = result[c];\n        var items = tileImage.items;\n        for (var j = 0, jj = items.length; j < jj; j++)\n          items[j] += offset;\n      }\n\n      // To simplify things: shift and clamp output to 8 bit unsigned\n      for (var c = 0; c < componentsCount; c++) {\n        var component = components[c];\n        var offset = component.isSigned ? 128 : 0;\n        var shift = component.precision - 8;\n        var tileImage = result[c];\n        var items = tileImage.items;\n        var data = new Uint8Array(items.length);\n        for (var j = 0, jj = items.length; j < jj; j++) {\n          var value = (items[j] >> shift) + offset;\n          data[j] = value < 0 ? 0 : value > 255 ? 255 : value;\n        }\n        result[c].items = data;\n      }\n\n      resultImages.push(result);\n    }\n    return resultImages;\n  }\n  function initializeTile(context, tileIndex) {\n    var siz = context.SIZ;\n    var componentsCount = siz.Csiz;\n    var tile = context.tiles[tileIndex];\n    var resultTiles = [];\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var qcdOrQcc = c in context.currentTile.QCC ?\n        context.currentTile.QCC[c] : context.currentTile.QCD;\n      component.quantizationParameters = qcdOrQcc;\n      var codOrCoc = c in context.currentTile.COC ?\n        context.currentTile.COC[c] : context.currentTile.COD;\n      component.codingStyleParameters = codOrCoc;\n    }\n    tile.codingStyleDefaultParameters = context.currentTile.COD;\n  }\n\n  // Section B.10.2 Tag trees\n  var TagTree = (function TagTreeClosure() {\n    function TagTree(width, height) {\n      var levelsLength = log2(Math.max(width, height)) + 1;\n      this.levels = [];\n      for (var i = 0; i < levelsLength; i++) {\n        var level = {\n          width: width,\n          height: height,\n          items: []\n        };\n        this.levels.push(level);\n        width = Math.ceil(width / 2);\n        height = Math.ceil(height / 2);\n      }\n    }\n    TagTree.prototype = {\n      reset: function TagTree_reset(i, j) {\n        var currentLevel = 0, value = 0;\n        while (currentLevel < this.levels.length) {\n          var level = this.levels[currentLevel];\n          var index = i + j * level.width;\n          if (index in level.items) {\n            value = level.items[index];\n            break;\n          }\n          level.index = index;\n          i >>= 1;\n          j >>= 1;\n          currentLevel++;\n        }\n        currentLevel--;\n        var level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        this.currentLevel = currentLevel;\n        delete this.value;\n      },\n      incrementValue: function TagTree_incrementValue() {\n        var level = this.levels[this.currentLevel];\n        level.items[level.index]++;\n      },\n      nextLevel: function TagTree_nextLevel() {\n        var currentLevel = this.currentLevel;\n        var level = this.levels[currentLevel];\n        var value = level.items[level.index];\n        currentLevel--;\n        if (currentLevel < 0) {\n          this.value = value;\n          return false;\n        }\n\n        this.currentLevel = currentLevel;\n        var level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        return true;\n      }\n    };\n    return TagTree;\n  })();\n\n  var InclusionTree = (function InclusionTreeClosure() {\n    function InclusionTree(width, height,  defaultValue) {\n      var levelsLength = log2(Math.max(width, height)) + 1;\n      this.levels = [];\n      for (var i = 0; i < levelsLength; i++) {\n        var items = new Uint8Array(width * height);\n        for (var j = 0, jj = items.length; j < jj; j++)\n          items[j] = defaultValue;\n\n        var level = {\n          width: width,\n          height: height,\n          items: items\n        };\n        this.levels.push(level);\n\n        width = Math.ceil(width / 2);\n        height = Math.ceil(height / 2);\n      }\n    }\n    InclusionTree.prototype = {\n      reset: function InclusionTree_reset(i, j, stopValue) {\n        var currentLevel = 0;\n        while (currentLevel < this.levels.length) {\n          var level = this.levels[currentLevel];\n          var index = i + j * level.width;\n          level.index = index;\n          var value = level.items[index];\n\n          if (value == 0xFF)\n            break;\n\n          if (value > stopValue) {\n            this.currentLevel = currentLevel;\n            // already know about this one, propagating the value to top levels\n            this.propagateValues();\n            return false;\n          }\n\n          i >>= 1;\n          j >>= 1;\n          currentLevel++;\n        }\n        this.currentLevel = currentLevel - 1;\n        return true;\n      },\n      incrementValue: function InclusionTree_incrementValue(stopValue) {\n        var level = this.levels[this.currentLevel];\n        level.items[level.index] = stopValue + 1;\n        this.propagateValues();\n      },\n      propagateValues: function InclusionTree_propagateValues() {\n        var levelIndex = this.currentLevel;\n        var level = this.levels[levelIndex];\n        var currentValue = level.items[level.index];\n        while (--levelIndex >= 0) {\n          var level = this.levels[levelIndex];\n          level.items[level.index] = currentValue;\n        }\n      },\n      nextLevel: function InclusionTree_nextLevel() {\n        var currentLevel = this.currentLevel;\n        var level = this.levels[currentLevel];\n        var value = level.items[level.index];\n        level.items[level.index] = 0xFF;\n        currentLevel--;\n        if (currentLevel < 0)\n          return false;\n\n        this.currentLevel = currentLevel;\n        var level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        return true;\n      }\n    };\n    return InclusionTree;\n  })();\n\n  // Implements C.3. Arithmetic decoding procedures\n  var ArithmeticDecoder = (function ArithmeticDecoderClosure() {\n    var QeTable = [\n      {qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1},\n      {qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0},\n      {qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0},\n      {qe: 0x0AC1, nmps: 4, nlps: 12, switchFlag: 0},\n      {qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0},\n      {qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0},\n      {qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1},\n      {qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0},\n      {qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0},\n      {qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0},\n      {qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0},\n      {qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0},\n      {qe: 0x1C01, nmps: 13, nlps: 20, switchFlag: 0},\n      {qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0},\n      {qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1},\n      {qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0},\n      {qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0},\n      {qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0},\n      {qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0},\n      {qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0},\n      {qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0},\n      {qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0},\n      {qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0},\n      {qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0},\n      {qe: 0x1C01, nmps: 25, nlps: 22, switchFlag: 0},\n      {qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0},\n      {qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0},\n      {qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0},\n      {qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0},\n      {qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0},\n      {qe: 0x0AC1, nmps: 31, nlps: 28, switchFlag: 0},\n      {qe: 0x09C1, nmps: 32, nlps: 29, switchFlag: 0},\n      {qe: 0x08A1, nmps: 33, nlps: 30, switchFlag: 0},\n      {qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0},\n      {qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0},\n      {qe: 0x02A1, nmps: 36, nlps: 33, switchFlag: 0},\n      {qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0},\n      {qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0},\n      {qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0},\n      {qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0},\n      {qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0},\n      {qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0},\n      {qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0},\n      {qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0},\n      {qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0},\n      {qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0},\n      {qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0}\n    ];\n\n    function ArithmeticDecoder(data, start, end) {\n      this.data = data;\n      this.bp = start;\n      this.dataEnd = end;\n\n      this.chigh = data[start];\n      this.clow = 0;\n\n      this.byteIn();\n\n      this.chigh = ((this.chigh << 7) & 0xFFFF) | ((this.clow >> 9) & 0x7F);\n      this.clow = (this.clow << 7) & 0xFFFF;\n      this.ct -= 7;\n      this.a = 0x8000;\n    }\n\n    ArithmeticDecoder.prototype = {\n      byteIn: function ArithmeticDecoder_byteIn() {\n        var data = this.data;\n        var bp = this.bp;\n        if (data[bp] == 0xFF) {\n          var b1 = data[bp + 1];\n          if (b1 > 0x8F) {\n            this.clow += 0xFF00;\n            this.ct = 8;\n          } else {\n            bp++;\n            this.clow += (data[bp] << 9);\n            this.ct = 7;\n            this.bp = bp;\n          }\n        } else {\n          bp++;\n          this.clow += bp < this.dataEnd ? (data[bp] << 8) : 0xFF00;\n          this.ct = 8;\n          this.bp = bp;\n        }\n        if (this.clow > 0xFFFF) {\n          this.chigh += (this.clow >> 16);\n          this.clow &= 0xFFFF;\n        }\n      },\n      readBit: function ArithmeticDecoder_readBit(cx) {\n        var qeIcx = QeTable[cx.index].qe;\n        this.a -= qeIcx;\n\n        if (this.chigh < qeIcx) {\n          var d = this.exchangeLps(cx);\n          this.renormD();\n          return d;\n        } else {\n          this.chigh -= qeIcx;\n          if ((this.a & 0x8000) === 0) {\n            var d = this.exchangeMps(cx);\n            this.renormD();\n            return d;\n          } else {\n            return cx.mps;\n          }\n        }\n      },\n      renormD: function ArithmeticDecoder_renormD() {\n        do {\n          if (this.ct === 0)\n            this.byteIn();\n\n          this.a <<= 1;\n          this.chigh = ((this.chigh << 1) & 0xFFFF) | ((this.clow >> 15) & 1);\n          this.clow = (this.clow << 1) & 0xFFFF;\n          this.ct--;\n        } while ((this.a & 0x8000) === 0);\n      },\n      exchangeMps: function ArithmeticDecoder_exchangeMps(cx) {\n        var d;\n        var qeTableIcx = QeTable[cx.index];\n        if (this.a < qeTableIcx.qe) {\n          d = 1 - cx.mps;\n\n          if (qeTableIcx.switchFlag == 1) {\n            cx.mps = 1 - cx.mps;\n          }\n          cx.index = qeTableIcx.nlps;\n        } else {\n          d = cx.mps;\n          cx.index = qeTableIcx.nmps;\n        }\n        return d;\n      },\n      exchangeLps: function ArithmeticDecoder_exchangeLps(cx) {\n        var d;\n        var qeTableIcx = QeTable[cx.index];\n        if (this.a < qeTableIcx.qe) {\n          this.a = qeTableIcx.qe;\n          d = cx.mps;\n          cx.index = qeTableIcx.nmps;\n        } else {\n          this.a = qeTableIcx.qe;\n          d = 1 - cx.mps;\n\n          if (qeTableIcx.switchFlag == 1) {\n            cx.mps = 1 - cx.mps;\n          }\n          cx.index = qeTableIcx.nlps;\n        }\n        return d;\n      }\n    };\n\n    return ArithmeticDecoder;\n  })();\n\n  // Section D. Coefficient bit modeling\n  var BitModel = (function BitModelClosure() {\n    // Table D-1\n    // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n    // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n    var LLAndLHContextsLabel = new Uint8Array([\n      0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n      7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n      8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8\n    ]);\n    var HLContextLabel = new Uint8Array([\n      0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n      8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n      4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8\n    ]);\n    var HHContextLabel = new Uint8Array([\n      0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n      5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n      8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8\n    ]);\n\n    // Table D-2\n    function calcSignContribution(significance0, sign0, significance1, sign1) {\n      if (significance1) {\n        if (!sign1)\n          return significance0 ? (!sign0 ? 1 : 0) : 1;\n        else\n          return significance0 ? (!sign0 ? 0 : -1) : -1;\n      } else\n        return significance0 ? (!sign0 ? 1 : -1) : 0;\n    }\n    // Table D-3\n    var SignContextLabels = [\n      {contextLabel: 13, xorBit: 0},\n      {contextLabel: 12, xorBit: 0},\n      {contextLabel: 11, xorBit: 0},\n      {contextLabel: 10, xorBit: 0},\n      {contextLabel: 9, xorBit: 0},\n      {contextLabel: 10, xorBit: 1},\n      {contextLabel: 11, xorBit: 1},\n      {contextLabel: 12, xorBit: 1},\n      {contextLabel: 13, xorBit: 1}\n    ];\n\n    function BitModel(width, height, subband, zeroBitPlanes) {\n      this.width = width;\n      this.height = height;\n\n      this.contextLabelTable = subband == 'HH' ? HHContextLabel :\n        subband == 'HL' ? HLContextLabel : LLAndLHContextsLabel;\n\n      var coefficientCount = width * height;\n\n      // coefficients outside the encoding region treated as insignificant\n      // add border state cells for significanceState\n      this.neighborsSignificance = new Uint8Array(coefficientCount);\n      this.coefficentsSign = new Uint8Array(coefficientCount);\n      this.coefficentsMagnitude = new Uint32Array(coefficientCount);\n      this.processingFlags = new Uint8Array(coefficientCount);\n\n      var bitsDecoded = new Uint8Array(this.width * this.height);\n      for (var i = 0, ii = bitsDecoded.length; i < ii; i++)\n        bitsDecoded[i] = zeroBitPlanes;\n      this.bitsDecoded = bitsDecoded;\n\n      this.reset();\n    }\n\n    BitModel.prototype = {\n      setDecoder: function BitModel_setDecoder(decoder) {\n        this.decoder = decoder;\n      },\n      reset: function BitModel_reset() {\n        this.uniformContext = {index: 46, mps: 0};\n        this.runLengthContext = {index: 3, mps: 0};\n        this.contexts = [];\n        this.contexts.push({index: 4, mps: 0});\n        for (var i = 1; i <= 16; i++)\n          this.contexts.push({index: 0, mps: 0});\n      },\n      setNeighborsSignificance:\n        function BitModel_setNeighborsSignificance(row, column) {\n        var neighborsSignificance = this.neighborsSignificance;\n        var width = this.width, height = this.height;\n        var index = row * width + column;\n        if (row > 0) {\n          if (column > 0)\n            neighborsSignificance[index - width - 1] += 0x10;\n          if (column + 1 < width)\n            neighborsSignificance[index - width + 1] += 0x10;\n          neighborsSignificance[index - width] += 0x04;\n        }\n        if (row + 1 < height) {\n          if (column > 0)\n            neighborsSignificance[index + width - 1] += 0x10;\n          if (column + 1 < width)\n            neighborsSignificance[index + width + 1] += 0x10;\n          neighborsSignificance[index + width] += 0x04;\n        }\n        if (column > 0)\n          neighborsSignificance[index - 1] += 0x01;\n        if (column + 1 < width)\n          neighborsSignificance[index + 1] += 0x01;\n        neighborsSignificance[index] |= 0x80;\n      },\n      runSignificancePropogationPass:\n        function BitModel_runSignificancePropogationPass() {\n        var decoder = this.decoder;\n        var width = this.width, height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var contextLabels = this.contextLabels;\n        var neighborsSignificance = this.neighborsSignificance;\n        var processingFlags = this.processingFlags;\n        var contexts = this.contexts;\n        var labels = this.contextLabelTable;\n        var bitsDecoded = this.bitsDecoded;\n        // clear processed flag\n        var processedInverseMask = ~1;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        for (var q = 0, qq = width * height; q < qq; q++)\n          processingFlags[q] &= processedInverseMask;\n\n        for (var i0 = 0; i0 < height; i0 += 4) {\n          for (var j = 0; j < width; j++) {\n            var index = i0 * width + j;\n            for (var i1 = 0; i1 < 4; i1++, index += width) {\n              var i = i0 + i1;\n              if (i >= height)\n                break;\n\n              if (coefficentsMagnitude[index] || !neighborsSignificance[index])\n                continue;\n\n              var contextLabel = labels[neighborsSignificance[index]];\n              var cx = contexts[contextLabel];\n              var decision = decoder.readBit(cx);\n              if (decision) {\n                var sign = this.decodeSignBit(i, j);\n                coefficentsSign[index] = sign;\n                coefficentsMagnitude[index] = 1;\n                this.setNeighborsSignificance(i, j);\n                processingFlags[index] |= firstMagnitudeBitMask;\n              }\n              bitsDecoded[index]++;\n              processingFlags[index] |= processedMask;\n            }\n          }\n        }\n      },\n      decodeSignBit: function BitModel_decodeSignBit(row, column) {\n        var width = this.width, height = this.height;\n        var index = row * width + column;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var horizontalContribution = calcSignContribution(\n          column > 0 && coefficentsMagnitude[index - 1],\n          coefficentsSign[index - 1],\n          column + 1 < width && coefficentsMagnitude[index + 1],\n          coefficentsSign[index + 1]);\n        var verticalContribution = calcSignContribution(\n          row > 0 && coefficentsMagnitude[index - width],\n          coefficentsSign[index - width],\n          row + 1 < height && coefficentsMagnitude[index + width],\n          coefficentsSign[index + width]);\n\n        var contextLabelAndXor = SignContextLabels[\n          3 * (1 - horizontalContribution) + (1 - verticalContribution)];\n        var contextLabel = contextLabelAndXor.contextLabel;\n        var cx = this.contexts[contextLabel];\n        var decoded = this.decoder.readBit(cx);\n        return decoded ^ contextLabelAndXor.xorBit;\n      },\n      runMagnitudeRefinementPass:\n        function BitModel_runMagnitudeRefinementPass() {\n        var decoder = this.decoder;\n        var width = this.width, height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var neighborsSignificance = this.neighborsSignificance;\n        var contexts = this.contexts;\n        var bitsDecoded = this.bitsDecoded;\n        var processingFlags = this.processingFlags;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        for (var i0 = 0; i0 < height; i0 += 4) {\n          for (var j = 0; j < width; j++) {\n            for (var i1 = 0; i1 < 4; i1++) {\n              var i = i0 + i1;\n              if (i >= height)\n                break;\n              var index = i * width + j;\n\n              // significant but not those that have just become\n              if (!coefficentsMagnitude[index] ||\n                (processingFlags[index] & processedMask) !== 0)\n                continue;\n\n              var contextLabel = 16;\n              if ((processingFlags[index] &\n                firstMagnitudeBitMask) !== 0) {\n                processingFlags[i * width + j] ^= firstMagnitudeBitMask;\n                // first refinement\n                var significance = neighborsSignificance[index];\n                var sumOfSignificance = (significance & 3) +\n                  ((significance >> 2) & 3) + ((significance >> 4) & 7);\n                contextLabel = sumOfSignificance >= 1 ? 15 : 14;\n              }\n\n              var cx = contexts[contextLabel];\n              var bit = decoder.readBit(cx);\n              coefficentsMagnitude[index] =\n                (coefficentsMagnitude[index] << 1) | bit;\n              bitsDecoded[index]++;\n              processingFlags[index] |= processedMask;\n            }\n          }\n        }\n      },\n      runCleanupPass: function BitModel_runCleanupPass() {\n        var decoder = this.decoder;\n        var width = this.width, height = this.height;\n        var neighborsSignificance = this.neighborsSignificance;\n        var significanceState = this.significanceState;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var contexts = this.contexts;\n        var labels = this.contextLabelTable;\n        var bitsDecoded = this.bitsDecoded;\n        var processingFlags = this.processingFlags;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        var oneRowDown = width;\n        var twoRowsDown = width * 2;\n        var threeRowsDown = width * 3;\n        for (var i0 = 0; i0 < height; i0 += 4) {\n          for (var j = 0; j < width; j++) {\n            var index0 = i0 * width + j;\n            // using the property: labels[neighborsSignificance[index]] == 0\n            // when neighborsSignificance[index] == 0\n            var allEmpty = i0 + 3 < height &&\n              processingFlags[index0] === 0 &&\n              processingFlags[index0 + oneRowDown] === 0 &&\n              processingFlags[index0 + twoRowsDown] === 0 &&\n              processingFlags[index0 + threeRowsDown] === 0 &&\n              neighborsSignificance[index0] === 0 &&\n              neighborsSignificance[index0 + oneRowDown] === 0 &&\n              neighborsSignificance[index0 + twoRowsDown] === 0 &&\n              neighborsSignificance[index0 + threeRowsDown] === 0;\n            var i1 = 0, index = index0;\n            var cx, i;\n            if (allEmpty) {\n              cx = this.runLengthContext;\n              var hasSignificantCoefficent = decoder.readBit(cx);\n              if (!hasSignificantCoefficent) {\n                bitsDecoded[index0]++;\n                bitsDecoded[index0 + oneRowDown]++;\n                bitsDecoded[index0 + twoRowsDown]++;\n                bitsDecoded[index0 + threeRowsDown]++;\n                continue; // next column\n              }\n              cx = this.uniformContext;\n              i1 = (decoder.readBit(cx) << 1) | decoder.readBit(cx);\n              i = i0 + i1;\n              index += i1 * width;\n\n              var sign = this.decodeSignBit(i, j);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j);\n              processingFlags[index] |= firstMagnitudeBitMask;\n\n              index = index0;\n              for (var i2 = i0; i2 <= i; i2++, index += width)\n                bitsDecoded[index]++;\n\n              i1++;\n            }\n            for (; i1 < 4; i1++, index += width) {\n              i = i0 + i1;\n              if (i >= height)\n                break;\n\n              if (coefficentsMagnitude[index] ||\n                (processingFlags[index] & processedMask) !== 0)\n                continue;\n\n              var contextLabel = labels[neighborsSignificance[index]];\n              cx = contexts[contextLabel];\n              var decision = decoder.readBit(cx);\n              if (decision == 1) {\n                var sign = this.decodeSignBit(i, j);\n                coefficentsSign[index] = sign;\n                coefficentsMagnitude[index] = 1;\n                this.setNeighborsSignificance(i, j);\n                processingFlags[index] |= firstMagnitudeBitMask;\n              }\n              bitsDecoded[index]++;\n            }\n          }\n        }\n      },\n      checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n        var decoder = this.decoder;\n        var cx = this.uniformContext;\n        var symbol = (decoder.readBit(cx) << 3) | (decoder.readBit(cx) << 2) |\n                     (decoder.readBit(cx) << 1) | decoder.readBit(cx);\n        if (symbol != 0xA)\n          throw 'Invalid segmentation symbol';\n      }\n    };\n\n    return BitModel;\n  })();\n\n  // Section F, Discrete wavelet transofrmation\n  var Transform = (function TransformClosure() {\n    function Transform() {\n    }\n    Transform.prototype.calculate =\n      function transformCalculate(subbands, u0, v0) {\n      var ll = subbands[0];\n      for (var i = 1, ii = subbands.length, j = 1; i < ii; i += 3, j++) {\n        ll = this.iterate(ll, subbands[i], subbands[i + 1],\n                          subbands[i + 2], u0, v0);\n      }\n      return ll;\n    };\n    Transform.prototype.expand = function expand(buffer, bufferPadding, step) {\n        // Section F.3.7 extending... using max extension of 4\n        var i1 = bufferPadding - 1, j1 = bufferPadding + 1;\n        var i2 = bufferPadding + step - 2, j2 = bufferPadding + step;\n        buffer[i1--] = buffer[j1++];\n        buffer[j2++] = buffer[i2--];\n        buffer[i1--] = buffer[j1++];\n        buffer[j2++] = buffer[i2--];\n        buffer[i1--] = buffer[j1++];\n        buffer[j2++] = buffer[i2--];\n        buffer[i1--] = buffer[j1++];\n        buffer[j2++] = buffer[i2--];\n    };\n    Transform.prototype.iterate = function Transform_iterate(ll, hl, lh, hh,\n                                                            u0, v0) {\n      var llWidth = ll.width, llHeight = ll.height, llItems = ll.items;\n      var hlWidth = hl.width, hlHeight = hl.height, hlItems = hl.items;\n      var lhWidth = lh.width, lhHeight = lh.height, lhItems = lh.items;\n      var hhWidth = hh.width, hhHeight = hh.height, hhItems = hh.items;\n\n      // Section F.3.3 interleave\n      var width = llWidth + hlWidth;\n      var height = llHeight + lhHeight;\n      var items = new Float32Array(width * height);\n      for (var i = 0, ii = llHeight; i < ii; i++) {\n        var k = i * llWidth, l = i * 2 * width;\n        for (var j = 0, jj = llWidth; j < jj; j++, k++, l += 2)\n          items[l] = llItems[k];\n      }\n      for (var i = 0, ii = hlHeight; i < ii; i++) {\n        var k = i * hlWidth, l = i * 2 * width + 1;\n        for (var j = 0, jj = hlWidth; j < jj; j++, k++, l += 2)\n          items[l] = hlItems[k];\n      }\n      for (var i = 0, ii = lhHeight; i < ii; i++) {\n        var k = i * lhWidth, l = (i * 2 + 1) * width;\n        for (var j = 0, jj = lhWidth; j < jj; j++, k++, l += 2)\n          items[l] = lhItems[k];\n      }\n      for (var i = 0, ii = hhHeight; i < ii; i++) {\n        var k = i * hhWidth, l = (i * 2 + 1) * width + 1;\n        for (var j = 0, jj = hhWidth; j < jj; j++, k++, l += 2)\n          items[l] = hhItems[k];\n      }\n\n      var bufferPadding = 4;\n      var bufferLength = new Float32Array(Math.max(width, height) +\n        2 * bufferPadding);\n      var buffer = new Float32Array(bufferLength);\n      var bufferOut = new Float32Array(bufferLength);\n\n      // Section F.3.4 HOR_SR\n      for (var v = 0; v < height; v++) {\n        if (width == 1) {\n          // if width = 1, when u0 even keep items as is, when odd divide by 2\n          if ((u0 % 1) !== 0) {\n            items[v * width] /= 2;\n          }\n          continue;\n        }\n\n        var k = v * width;\n        var l = bufferPadding;\n        for (var u = 0; u < width; u++, k++, l++)\n          buffer[l] = items[k];\n\n        this.expand(buffer, bufferPadding, width);\n        this.filter(buffer, bufferPadding, width, u0, bufferOut);\n\n        k = v * width;\n        l = bufferPadding;\n        for (var u = 0; u < width; u++, k++, l++)\n          items[k] = bufferOut[l];\n      }\n\n      // Section F.3.5 VER_SR\n      for (var u = 0; u < width; u++) {\n        if (height == 1) {\n          // if height = 1, when v0 even keep items as is, when odd divide by 2\n          if ((v0 % 1) !== 0) {\n            items[u] /= 2;\n          }\n          continue;\n        }\n\n        var k = u;\n        var l = bufferPadding;\n        for (var v = 0; v < height; v++, k += width, l++)\n          buffer[l] = items[k];\n\n        this.expand(buffer, bufferPadding, height);\n        this.filter(buffer, bufferPadding, height, v0, bufferOut);\n\n        k = u;\n        l = bufferPadding;\n        for (var v = 0; v < height; v++, k += width, l++)\n          items[k] = bufferOut[l];\n      }\n      return {\n        width: width,\n        height: height,\n        items: items\n      };\n    };\n    return Transform;\n  })();\n\n  // Section 3.8.2 Irreversible 9-7 filter\n  var IrreversibleTransform = (function IrreversibleTransformClosure() {\n    function IrreversibleTransform() {\n      Transform.call(this);\n    }\n\n    IrreversibleTransform.prototype = Object.create(Transform.prototype);\n    IrreversibleTransform.prototype.filter =\n      function irreversibleTransformFilter(y, offset, length, i0, x) {\n      var i0_ = Math.floor(i0 / 2);\n      var i1_ = Math.floor((i0 + length) / 2);\n      var offset_ = offset - (i0 % 1);\n\n      var alpha = -1.586134342059924;\n      var beta = -0.052980118572961;\n      var gamma = 0.882911075530934;\n      var delta = 0.443506852043971;\n      var K = 1.230174104914001;\n      var K_ = 1 / K;\n\n      // step 1\n      var j = offset_ - 2;\n      for (var n = i0_ - 1, nn = i1_ + 2; n < nn; n++, j += 2)\n        x[j] = K * y[j];\n\n      // step 2\n      var j = offset_ - 3;\n      for (var n = i0_ - 2, nn = i1_ + 2; n < nn; n++, j += 2)\n        x[j] = K_ * y[j];\n\n      // step 3\n      var j = offset_ - 2;\n      for (var n = i0_ - 1, nn = i1_ + 2; n < nn; n++, j += 2)\n        x[j] -= delta * (x[j - 1] + x[j + 1]);\n\n      // step 4\n      var j = offset_ - 1;\n      for (var n = i0_ - 1, nn = i1_ + 1; n < nn; n++, j += 2)\n        x[j] -= gamma * (x[j - 1] + x[j + 1]);\n\n      // step 5\n      var j = offset_;\n      for (var n = i0_, nn = i1_ + 1; n < nn; n++, j += 2)\n        x[j] -= beta * (x[j - 1] + x[j + 1]);\n\n      // step 6\n      var j = offset_ + 1;\n      for (var n = i0_, nn = i1_; n < nn; n++, j += 2)\n        x[j] -= alpha * (x[j - 1] + x[j + 1]);\n    };\n\n    return IrreversibleTransform;\n  })();\n\n  // Section 3.8.1 Reversible 5-3 filter\n  var ReversibleTransform = (function ReversibleTransformClosure() {\n    function ReversibleTransform() {\n      Transform.call(this);\n    }\n\n    ReversibleTransform.prototype = Object.create(Transform.prototype);\n    ReversibleTransform.prototype.filter =\n      function reversibleTransformFilter(y, offset, length, i0, x) {\n      var i0_ = Math.floor(i0 / 2);\n      var i1_ = Math.floor((i0 + length) / 2);\n      var offset_ = offset - (i0 % 1);\n\n      for (var n = i0_, nn = i1_ + 1, j = offset_; n < nn; n++, j += 2)\n        x[j] = y[j] - Math.floor((y[j - 1] + y[j + 1] + 2) / 4);\n\n      for (var n = i0_, nn = i1_, j = offset_ + 1; n < nn; n++, j += 2)\n        x[j] = y[j] + Math.floor((x[j - 1] + x[j + 1]) / 2);\n    };\n\n    return ReversibleTransform;\n  })();\n\n  return JpxImage;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* globals error, shadow */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use strict';\n\nvar Jbig2Image = (function Jbig2ImageClosure() {\n\n  // Annex E. Arithmetic Coding\n  var ArithmeticDecoder = (function ArithmeticDecoderClosure() {\n    var QeTable = [\n      {qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1},\n      {qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0},\n      {qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0},\n      {qe: 0x0AC1, nmps: 4, nlps: 12, switchFlag: 0},\n      {qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0},\n      {qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0},\n      {qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1},\n      {qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0},\n      {qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0},\n      {qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0},\n      {qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0},\n      {qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0},\n      {qe: 0x1C01, nmps: 13, nlps: 20, switchFlag: 0},\n      {qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0},\n      {qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1},\n      {qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0},\n      {qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0},\n      {qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0},\n      {qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0},\n      {qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0},\n      {qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0},\n      {qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0},\n      {qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0},\n      {qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0},\n      {qe: 0x1C01, nmps: 25, nlps: 22, switchFlag: 0},\n      {qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0},\n      {qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0},\n      {qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0},\n      {qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0},\n      {qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0},\n      {qe: 0x0AC1, nmps: 31, nlps: 28, switchFlag: 0},\n      {qe: 0x09C1, nmps: 32, nlps: 29, switchFlag: 0},\n      {qe: 0x08A1, nmps: 33, nlps: 30, switchFlag: 0},\n      {qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0},\n      {qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0},\n      {qe: 0x02A1, nmps: 36, nlps: 33, switchFlag: 0},\n      {qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0},\n      {qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0},\n      {qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0},\n      {qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0},\n      {qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0},\n      {qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0},\n      {qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0},\n      {qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0},\n      {qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0},\n      {qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0},\n      {qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0}\n    ];\n\n    function ArithmeticDecoder(data, start, end) {\n      this.data = data;\n      this.bp = start;\n      this.dataEnd = end;\n\n      this.chigh = data[start];\n      this.clow = 0;\n\n      this.byteIn();\n\n      this.chigh = ((this.chigh << 7) & 0xFFFF) | ((this.clow >> 9) & 0x7F);\n      this.clow = (this.clow << 7) & 0xFFFF;\n      this.ct -= 7;\n      this.a = 0x8000;\n    }\n\n    ArithmeticDecoder.prototype = {\n      byteIn: function ArithmeticDecoder_byteIn() {\n        var data = this.data;\n        var bp = this.bp;\n        if (data[bp] == 0xFF) {\n          var b1 = data[bp + 1];\n          if (b1 > 0x8F) {\n            this.clow += 0xFF00;\n            this.ct = 8;\n          } else {\n            bp++;\n            this.clow += (data[bp] << 9);\n            this.ct = 7;\n            this.bp = bp;\n          }\n        } else {\n          bp++;\n          this.clow += bp < this.dataEnd ? (data[bp] << 8) : 0xFF00;\n          this.ct = 8;\n          this.bp = bp;\n        }\n        if (this.clow > 0xFFFF) {\n          this.chigh += (this.clow >> 16);\n          this.clow &= 0xFFFF;\n        }\n      },\n      readBit: function ArithmeticDecoder_readBit(contexts, pos) {\n        // contexts are packed into 1 byte: \n        // highest 7 bits carry cx.index, lowest bit carries cx.mps\n        var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1;\n        var qeTableIcx = QeTable[cx_index];\n        var qeIcx = qeTableIcx.qe;\n        var nmpsIcx = qeTableIcx.nmps;\n        var nlpsIcx = qeTableIcx.nlps;\n        var switchIcx = qeTableIcx.switchFlag;\n        var d;\n        this.a -= qeIcx;\n\n        if (this.chigh < qeIcx) {\n          // exchangeLps\n          if (this.a < qeIcx) {\n            this.a = qeIcx;\n            d = cx_mps;\n            cx_index = nmpsIcx;\n          } else {\n            this.a = qeIcx;\n            d = 1 - cx_mps;\n            if (switchIcx) {\n              cx_mps = d;\n            }\n            cx_index = nlpsIcx;\n          }\n        } else {\n          this.chigh -= qeIcx;\n          if ((this.a & 0x8000) !== 0) {\n            return cx_mps;\n          }\n          // exchangeMps\n          if (this.a < qeIcx) {\n            d = 1 - cx_mps;\n            if (switchIcx) {\n              cx_mps = d;\n            }\n            cx_index = nlpsIcx;\n          } else {\n            d = cx_mps;\n            cx_index = nmpsIcx;\n          }\n        }\n        // renormD;\n        do {\n          if (this.ct === 0)\n            this.byteIn();\n\n          this.a <<= 1;\n          this.chigh = ((this.chigh << 1) & 0xFFFF) | ((this.clow >> 15) & 1);\n          this.clow = (this.clow << 1) & 0xFFFF;\n          this.ct--;\n        } while ((this.a & 0x8000) === 0);\n\n        contexts[pos] = cx_index << 1 | cx_mps;\n        return d;\n      }\n    };\n\n    return ArithmeticDecoder;\n  })();\n\n  // Utility data structures\n  function ContextCache() {}\n\n  ContextCache.prototype = {\n    getContexts: function(id) {\n      if (id in this)\n        return this[id];\n      return (this[id] = new Int8Array(1<<16));\n    }\n  };\n\n  function DecodingContext(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  DecodingContext.prototype = {\n    get decoder() {\n      var decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n      return shadow(this, 'decoder', decoder);\n    },\n    get contextCache() {\n      var cache = new ContextCache();\n      return shadow(this, 'contextCache', cache);\n    }\n  };\n\n  // Annex A. Arithmetic Integer Decoding Procedure\n  // A.2 Procedure for decoding values\n  function decodeInteger(contextCache, procedure, decoder) {\n    var contexts = contextCache.getContexts(procedure);\n\n    var prev = 1;\n    var state = 1, v = 0, s;\n    var toRead = 32, offset = 4436; // defaults for state 7\n    while (state) {\n      var bit = decoder.readBit(contexts, prev);\n      prev = prev < 256 ? (prev << 1) | bit :\n        (((prev << 1) | bit) & 511) | 256;\n      switch (state) {\n        case 1:\n          s = !!bit;\n          break;\n        case 2:\n          if (bit) break;\n          state = 7;\n          toRead = 2;\n          offset = 0;\n          break;\n        case 3:\n          if (bit) break;\n          state = 7;\n          toRead = 4;\n          offset = 4;\n          break;\n        case 4:\n          if (bit) break;\n          state = 7;\n          toRead = 6;\n          offset = 20;\n          break;\n        case 5:\n          if (bit) break;\n          state = 7;\n          toRead = 8;\n          offset = 84;\n          break;\n        case 6:\n          if (bit) break;\n          state = 7;\n          toRead = 12;\n          offset = 340;\n          break;\n        default:\n          v = v * 2 + bit;\n          if (--toRead === 0)\n            state = 0;\n          continue;\n      }\n      state++;\n    }\n    v += offset;\n    return !s ? v : v > 0 ? -v : null;\n  }\n\n  // A.3 The IAID decoding procedure\n  function decodeIAID(contextCache, decoder, codeLength) {\n    var contexts = contextCache.getContexts('IAID');\n\n    var prev = 1;\n    for (var i = 0; i < codeLength; i++) {\n      var bit = decoder.readBit(contexts, prev);\n      prev = (prev * 2) + bit;\n    }\n    if (codeLength < 31)\n      return prev & ((1 << codeLength) - 1);\n    else\n      return prev - Math.pow(2, codeLength);\n  }\n\n  // 7.3 Segment types\n  var SegmentTypes = [\n    'SymbolDictionary', null, null, null, 'IntermediateTextRegion', null,\n    'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null,\n    null, null, null, null, null, 'patternDictionary', null, null, null,\n    'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion',\n    'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null,\n    null, null, null, null, null, 'IntermediateGenericRegion', null,\n    'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion',\n    'IntermediateGenericRefinementRegion', null,\n    'ImmediateGenericRefinementRegion',\n    'ImmediateLosslessGenericRefinementRegion', null, null, null, null,\n    'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles',\n    'Tables', null, null, null, null, null, null, null, null,\n    'Extension'\n  ];\n\n  var CodingTemplates = [\n    [{x: -1, y: -2}, {x: 0, y: -2}, {x: 1, y: -2}, {x: -2, y: -1},\n     {x: -1, y: -1}, {x: 0, y: -1}, {x: 1, y: -1}, {x: 2, y: -1},\n     {x: -4, y: 0}, {x: -3, y: 0}, {x: -2, y: 0}, {x: -1, y: 0}],\n    [{x: -1, y: -2}, {x: 0, y: -2}, {x: 1, y: -2}, {x: 2, y: -2},\n     {x: -2, y: -1}, {x: -1, y: -1}, {x: 0, y: -1}, {x: 1, y: -1},\n     {x: 2, y: -1}, {x: -3, y: 0}, {x: -2, y: 0}, {x: -1, y: 0}],\n    [{x: -1, y: -2}, {x: 0, y: -2}, {x: 1, y: -2}, {x: -2, y: -1},\n     {x: -1, y: -1}, {x: 0, y: -1}, {x: 1, y: -1}, {x: -2, y: 0},\n     {x: -1, y: 0}],\n    [{x: -3, y: -1}, {x: -2, y: -1}, {x: -1, y: -1}, {x: 0, y: -1},\n     {x: 1, y: -1}, {x: -4, y: 0}, {x: -3, y: 0}, {x: -2, y: 0}, {x: -1, y: 0}]\n  ];\n\n  var RefinementTemplates = [\n    {\n      coding: [{x: 0, y: -1}, {x: 1, y: -1}, {x: -1, y: 0}],\n      reference: [{x: 0, y: -1}, {x: 1, y: -1}, {x: -1, y: 0}, {x: 0, y: 0},\n                  {x: 1, y: 0}, {x: -1, y: 1}, {x: 0, y: 1}, {x: 1, y: 1}]\n    },\n    {\n      coding: [{x: -1, y: -1}, {x: 0, y: -1}, {x: 1, y: -1}, {x: -1, y: 0}],\n      reference: [{x: 0, y: -1}, {x: -1, y: 0}, {x: 0, y: 0}, {x: 1, y: 0},\n                  {x: 0, y: 1}, {x: 1, y: 1}]\n    }\n  ];\n\n  var ReusedContexts = [\n    0x1CD3, // '00111001101' (template) + '0011' (at),\n    0x079A, // '001111001101' + '0',\n    0x00E3, // '001110001' + '1',\n    0x018B  // '011000101' + '1'\n  ];\n\n  var RefinementReusedContexts = [\n    0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n    0x0008  // '0000' + '001000'\n  ];\n\n  function log2(x) {\n    var n = 1, i = 0;\n    while (x > n) {\n      n <<= 1;\n      i++;\n    }\n    return i;\n  }\n\n  function readInt32(data, start) {\n    return (data[start] << 24) | (data[start + 1] << 16) |\n           (data[start + 2] << 8) | data[start + 3];\n  }\n\n  function readUint32(data, start) {\n    var value = readInt32(data, start);\n    return value & 0x80000000 ? (value + 4294967296) : value;\n  }\n\n  function readUint16(data, start) {\n    return (data[start] << 8) | data[start + 1];\n  }\n\n  function readInt8(data, start) {\n    return (data[start] << 24) >> 24;\n  }\n\n  // 6.2 Generic Region Decoding Procedure\n  function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at,\n                        decodingContext) {\n    if (mmr)\n      error('JBIG2 error: MMR encoding is not supported');\n\n    var useskip = !!skip;\n    var template = CodingTemplates[templateIndex].concat(at);\n    var templateLength = template.length;\n    var templateX = new Int32Array(templateLength);\n    var templateY = new Int32Array(templateLength);\n    for (var k = 0; k < templateLength; k++) {\n      templateX[k] = template[k].x;\n      templateY[k] = template[k].y;\n    }\n\n    var pseudoPixelContext = ReusedContexts[templateIndex];\n    var bitmap = [];\n\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts('GB');\n\n    var ltp = 0;\n    for (var i = 0; i < height; i++) {\n      if (prediction) {\n        var sltp = decoder.readBit(contexts, pseudoPixelContext);\n        ltp ^= sltp;\n      }\n      if (ltp) {\n        bitmap.push(bitmap[bitmap.length - 1]); // duplicate previous row\n        continue;\n      }\n      var row = new Uint8Array(width);\n      bitmap.push(row);\n      for (var j = 0; j < width; j++) {\n        if (useskip && skip[i][j]) {\n          row[j] = 0;\n          continue;\n        }\n        var contextLabel = 0;\n        for (var k = 0; k < templateLength; k++) {\n          var i0 = i + templateY[k], j0 = j + templateX[k];\n          if (i0 < 0 || j0 < 0 || j0 >= width)\n            contextLabel <<= 1; // out of bound pixel\n          else\n            contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n        }\n        var pixel = decoder.readBit(contexts, contextLabel);\n        row[j] = pixel;\n      }\n    }\n    return bitmap;\n  }\n\n  // 6.3.2 Generic Refinement Region Decoding Procedure\n  function decodeRefinement(width, height, templateIndex, referenceBitmap,\n                            offsetX, offsetY, prediction, at,\n                            decodingContext) {\n    var codingTemplate = RefinementTemplates[templateIndex].coding;\n    if (templateIndex === 0)\n      codingTemplate = codingTemplate.concat([at[0]]);\n    var codingTemplateLength = codingTemplate.length;\n    var codingTemplateX = new Int32Array(codingTemplateLength);\n    var codingTemplateY = new Int32Array(codingTemplateLength);\n    for (var k = 0; k < codingTemplateLength; k++) {\n      codingTemplateX[k] = codingTemplate[k].x;\n      codingTemplateY[k] = codingTemplate[k].y;\n    }\n    var referenceTemplate = RefinementTemplates[templateIndex].reference;\n    if (templateIndex === 0)\n      referenceTemplate = referenceTemplate.concat([at[1]]);\n    var referenceTemplateLength = referenceTemplate.length;\n    var referenceTemplateX = new Int32Array(referenceTemplateLength);\n    var referenceTemplateY = new Int32Array(referenceTemplateLength);\n    for (var k = 0; k < referenceTemplateLength; k++) {\n      referenceTemplateX[k] = referenceTemplate[k].x;\n      referenceTemplateY[k] = referenceTemplate[k].y;\n    }\n    var referenceWidth = referenceBitmap[0].length;\n    var referenceHeight = referenceBitmap.length;\n\n    var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n    var bitmap = [];\n\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts('GR');\n\n    var ltp = 0;\n    for (var i = 0; i < height; i++) {\n      if (prediction) {\n        var sltp = decoder.readBit(contexts, pseudoPixelContext);\n        ltp ^= sltp;\n      }\n      var row = new Uint8Array(width);\n      bitmap.push(row);\n      for (var j = 0; j < width; j++) {\n        if (ltp)\n          error('JBIG2 error: prediction is not supported');\n\n        var contextLabel = 0;\n        for (var k = 0; k < codingTemplateLength; k++) {\n          var i0 = i + codingTemplateY[k], j0 = j + codingTemplateX[k];\n          if (i0 < 0 || j0 < 0 || j0 >= width)\n            contextLabel <<= 1; // out of bound pixel\n          else\n            contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n        }\n        for (var k = 0; k < referenceTemplateLength; k++) {\n          var i0 = i + referenceTemplateY[k] + offsetY;\n          var j0 = j + referenceTemplateX[k] + offsetX;\n          if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth)\n            contextLabel <<= 1; // out of bound pixel\n          else\n            contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n        }\n        var pixel = decoder.readBit(contexts, contextLabel);\n        row[j] = pixel;\n      }\n    }\n\n    return bitmap;\n  }\n\n  // 6.5.5 Decoding the symbol dictionary\n  function decodeSymbolDictionary(huffman, refinement, symbols,\n                                  numberOfNewSymbols, numberOfExportedSymbols,\n                                  huffmanTables, templateIndex, at,\n                                  refinementTemplateIndex, refinementAt,\n                                  decodingContext) {\n    if (huffman)\n      error('JBIG2 error: huffman is not supported');\n\n    var newSymbols = [];\n    var currentHeight = 0;\n    var symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n    var decoder = decodingContext.decoder;\n    var contextCache = decodingContext.contextCache;\n\n    while (newSymbols.length < numberOfNewSymbols) {\n      var deltaHeight = decodeInteger(contextCache, 'IADH', decoder); // 6.5.6\n      currentHeight += deltaHeight;\n      var currentWidth = 0;\n      var totalWidth = 0;\n      while (true) {\n        var deltaWidth = decodeInteger(contextCache, 'IADW', decoder); // 6.5.7\n        if (deltaWidth === null)\n          break; // OOB\n        currentWidth += deltaWidth;\n        totalWidth += currentWidth;\n        var bitmap;\n        if (refinement) {\n          // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n          var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder);\n          if (numberOfInstances > 1)\n            error('JBIG2 error: number of instances > 1 is not supported');\n          var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n          var rdx = decodeInteger(contextCache, 'IARDX', decoder); // 6.4.11.3\n          var rdy = decodeInteger(contextCache, 'IARDY', decoder); // 6.4.11.4\n          var symbol = symbolId < symbols.length ? symbols[symbolId] :\n            newSymbols[symbolId - symbols.length];\n          bitmap = decodeRefinement(currentWidth, currentHeight,\n            refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt,\n            decodingContext);\n        } else {\n          // 6.5.8.1 Direct-coded symbol bitmap\n          bitmap = decodeBitmap(false, currentWidth, currentHeight,\n            templateIndex, false, null, at, decodingContext);\n        }\n        newSymbols.push(bitmap);\n      }\n    }\n    // 6.5.10 Exported symbols\n    var exportedSymbols = [];\n    var flags = [], currentFlag = false;\n    var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n    while (flags.length < totalSymbolsLength) {\n      var runLength = decodeInteger(contextCache, 'IAEX', decoder);\n      while (runLength--)\n        flags.push(currentFlag);\n      currentFlag = !currentFlag;\n    }\n    for (var i = 0, ii = symbols.length; i < ii; i++)\n      if (flags[i]) exportedSymbols.push(symbols[i]);\n    for (var j = 0; j < numberOfNewSymbols; i++, j++)\n      if (flags[i]) exportedSymbols.push(newSymbols[j]);\n    return exportedSymbols;\n  }\n\n  function decodeTextRegion(huffman, refinement, width, height,\n                            defaultPixelValue, numberOfSymbolInstances,\n                            stripSize, inputSymbols, symbolCodeLength,\n                            transposed, dsOffset, referenceCorner,\n                            combinationOperator, huffmanTables,\n                            refinementTemplateIndex, refinementAt,\n                            decodingContext) {\n    if (huffman)\n      error('JBIG2 error: huffman is not supported');\n\n    // Prepare bitmap\n    var bitmap = [];\n    for (var i = 0; i < height; i++) {\n      var row = new Uint8Array(width);\n      if (defaultPixelValue) {\n        for (var j = 0; j < width; j++)\n          row[j] = defaultPixelValue;\n      }\n      bitmap.push(row);\n    }\n\n    var decoder = decodingContext.decoder;\n    var contextCache = decodingContext.contextCache;\n    var stripT = -decodeInteger(contextCache, 'IADT', decoder); // 6.4.6\n    var firstS = 0;\n    var i = 0;\n    while (i < numberOfSymbolInstances) {\n      var deltaT = decodeInteger(contextCache, 'IADT', decoder); // 6.4.6\n      stripT += deltaT;\n\n      var deltaFirstS = decodeInteger(contextCache, 'IAFS', decoder); // 6.4.7\n      firstS += deltaFirstS;\n      var currentS = firstS;\n      do {\n        var currentT = stripSize == 1 ? 0 :\n          decodeInteger(contextCache, 'IAIT', decoder); // 6.4.9\n        var t = stripSize * stripT + currentT;\n        var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n        var applyRefinement = refinement &&\n          decodeInteger(contextCache, 'IARI', decoder);\n        var symbolBitmap = inputSymbols[symbolId];\n        var symbolWidth = symbolBitmap[0].length;\n        var symbolHeight = symbolBitmap.length;\n        if (applyRefinement) {\n          var rdw = decodeInteger(contextCache, 'IARDW', decoder); // 6.4.11.1\n          var rdh = decodeInteger(contextCache, 'IARDH', decoder); // 6.4.11.2\n          var rdx = decodeInteger(contextCache, 'IARDX', decoder); // 6.4.11.3\n          var rdy = decodeInteger(contextCache, 'IARDY', decoder); // 6.4.11.4\n          symbolWidth += rdw;\n          symbolHeight += rdh;\n          symbolBitmap = decodeRefinement(symbolWidth, symbolHeight,\n            refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx,\n            (rdh >> 1) + rdy, false, refinementAt,\n            decodingContext);\n        }\n        var offsetT = t - ((referenceCorner & 1) ? 0 : symbolHeight);\n        var offsetS = currentS - ((referenceCorner & 2) ? symbolWidth : 0);\n        if (transposed) {\n          // Place Symbol Bitmap from T1,S1  \n          for (var s2 = 0; s2 < symbolHeight; s2++) {\n            var row = bitmap[offsetS + s2];\n            if (!row) {\n              continue;\n            }\n            var symbolRow = symbolBitmap[s2];\n            // To ignore Parts of Symbol bitmap which goes\n            // outside bitmap region\n            var maxWidth = Math.min(width - offsetT, symbolWidth);\n            switch (combinationOperator) {\n              case 0: // OR\n                for (var t2 = 0; t2 < maxWidth; t2++) {\n                  row[offsetT + t2] |= symbolRow[t2];\n                }\n                break;\n              case 2: // XOR\n                for (var t2 = 0; t2 < maxWidth; t2++) {\n                  row[offsetT + t2] ^= symbolRow[t2];\n                }\n                break;\n              default:\n                error('JBIG2 error: operator ' + combinationOperator +\n                      ' is not supported');\n            }\n          }\n          currentS += symbolHeight - 1;\n        } else {\n          for (var t2 = 0; t2 < symbolHeight; t2++) {\n            var row = bitmap[offsetT + t2];\n            if (!row) {\n              continue;\n            }\n            var symbolRow = symbolBitmap[t2];\n            switch (combinationOperator) {\n              case 0: // OR\n                for (var s2 = 0; s2 < symbolWidth; s2++) {\n                  row[offsetS + s2] |= symbolRow[s2];\n                }\n                break;\n              case 2: // XOR\n                for (var s2 = 0; s2 < symbolWidth; s2++) {\n                  row[offsetS + s2] ^= symbolRow[s2];\n                }\n                break;\n              default:\n                error('JBIG2 error: operator ' + combinationOperator +\n                      ' is not supported');\n            }\n          }\n          currentS += symbolWidth - 1;\n        }\n        i++;\n        var deltaS = decodeInteger(contextCache, 'IADS', decoder); // 6.4.8\n        if (deltaS === null)\n          break; // OOB\n        currentS += deltaS + dsOffset;\n      } while (true);\n    }\n    return bitmap;\n  }\n\n  function readSegmentHeader(data, start) {\n    var segmentHeader = {};\n    segmentHeader.number = readUint32(data, start);\n    var flags = data[start + 4];\n    var segmentType = flags & 0x3F;\n    if (!SegmentTypes[segmentType])\n      error('JBIG2 error: invalid segment type: ' + segmentType);\n    segmentHeader.type = segmentType;\n    segmentHeader.typeName = SegmentTypes[segmentType];\n    segmentHeader.deferredNonRetain = !!(flags & 0x80);\n    var pageAssociationFieldSize = !!(flags & 0x40);\n    var referredFlags = data[start + 5];\n    var referredToCount = (referredFlags >> 5) & 7;\n    var retainBits = [referredFlags & 31];\n    var position = start + 6;\n    if (referredFlags == 7) {\n      referredToCount = readInt32(data, position - 1) & 0x1FFFFFFF;\n      position += 3;\n      var bytes = (referredToCount + 7) >> 3;\n      retainBits[0] = data[position++];\n      while (--bytes > 0) {\n        retainBits.push(data[position++]);\n      }\n    } else if (referredFlags == 5 || referredFlags == 6)\n      error('JBIG2 error: invalid referred-to flags');\n    segmentHeader.retainBits = retainBits;\n    var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 :\n      segmentHeader.number <= 65536 ? 2 : 4;\n    var referredTo = [];\n    for (var i = 0; i < referredToCount; i++) {\n      var number = referredToSegmentNumberSize == 1 ? data[position] :\n        referredToSegmentNumberSize == 2 ? readUint16(data, position) :\n        readUint32(data, position);\n      referredTo.push(number);\n      position += referredToSegmentNumberSize;\n    }\n    segmentHeader.referredTo = referredTo;\n    if (!pageAssociationFieldSize)\n      segmentHeader.pageAssociation = data[position++];\n    else {\n      segmentHeader.pageAssociation = readUint32(data, position);\n      position += 4;\n    }\n    segmentHeader.length = readUint32(data, position);\n    position += 4;\n    if (segmentHeader.length == 0xFFFFFFFF) {\n      // 7.2.7 Segment data length, unknown segment length\n      if (segmentType === 38) { // ImmediateGenericRegion\n        var genericRegionInfo = readRegionSegmentInformation(data, position);\n        var genericRegionSegmentFlags = data[position +\n          RegionSegmentInformationFieldLength];\n        var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n        // searching for the segment end\n        var searchPatternLength = 6;\n        var searchPattern = new Uint8Array(searchPatternLength);\n        if (!genericRegionMmr) {\n          searchPattern[0] = 0xFF;\n          searchPattern[1] = 0xAC;\n        }\n        searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xFF;\n        searchPattern[3] = (genericRegionInfo.height >> 16) & 0xFF;\n        searchPattern[4] = (genericRegionInfo.height >> 8) & 0xFF;\n        searchPattern[5] = genericRegionInfo.height & 0xFF;\n        for (var i = position, ii = data.length; i < ii; i++) {\n          var j = 0;\n          while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n            j++;\n          }\n          if (j == searchPatternLength) {\n            segmentHeader.length = i + searchPatternLength;\n            break;\n          }\n        }\n        if (segmentHeader.length == 0xFFFFFFFF) {\n          error('JBIG2 error: segment end was not found');\n        }\n      } else {\n        error('JBIG2 error: invalid unknown segment length');\n      }\n    }\n    segmentHeader.headerEnd = position;\n    return segmentHeader;\n  }\n\n  function readSegments(header, data, start, end) {\n    var segments = [];\n    var position = start;\n    while (position < end) {\n      var segmentHeader = readSegmentHeader(data, position);\n      position = segmentHeader.headerEnd;\n      var segment = {\n        header: segmentHeader,\n        data: data\n      };\n      if (!header.randomAccess) {\n        segment.start = position;\n        position += segmentHeader.length;\n        segment.end = position;\n      }\n      segments.push(segment);\n      if (segmentHeader.type == 51)\n        break; // end of file is found\n    }\n    if (header.randomAccess) {\n      for (var i = 0, ii = segments.length; i < ii; i++) {\n        segments[i].start = position;\n        position += segments[i].header.length;\n        segments[i].end = position;\n      }\n    }\n    return segments;\n  }\n\n  // 7.4.1 Region segment information field\n  function readRegionSegmentInformation(data, start) {\n    return {\n      width: readUint32(data, start),\n      height: readUint32(data, start + 4),\n      x: readUint32(data, start + 8),\n      y: readUint32(data, start + 12),\n      combinationOperator: data[start + 16] & 7\n    };\n  }\n  var RegionSegmentInformationFieldLength = 17;\n\n  function processSegment(segment, visitor) {\n    var header = segment.header;\n\n    var data = segment.data, position = segment.start, end = segment.end;\n    var args;\n    switch (header.type) {\n      case 0: // SymbolDictionary\n        // 7.4.2 Symbol dictionary segment syntax\n        var dictionary = {};\n        var dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n        dictionary.huffman = !!(dictionaryFlags & 1);\n        dictionary.refinement = !!(dictionaryFlags & 2);\n        dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n        dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n        dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n        dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n        dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n        dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n        dictionary.template = (dictionaryFlags >> 10) & 3;\n        dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n        position += 2;\n        if (!dictionary.huffman) {\n          var atLength = dictionary.template === 0 ? 4 : 1;\n          var at = [];\n          for (var i = 0; i < atLength; i++) {\n            at.push({\n              x: readInt8(data, position),\n              y: readInt8(data, position + 1)\n            });\n            position += 2;\n          }\n          dictionary.at = at;\n        }\n        if (dictionary.refinement && !dictionary.refinementTemplate) {\n          var at = [];\n          for (var i = 0; i < 2; i++) {\n            at.push({\n              x: readInt8(data, position),\n              y: readInt8(data, position + 1)\n            });\n            position += 2;\n          }\n          dictionary.refinementAt = at;\n        }\n        dictionary.numberOfExportedSymbols = readUint32(data, position);\n        position += 4;\n        dictionary.numberOfNewSymbols = readUint32(data, position);\n        position += 4;\n        args = [dictionary, header.number, header.referredTo,\n                data, position, end];\n        break;\n      case 6: // ImmediateTextRegion\n      case 7: // ImmediateLosslessTextRegion\n        var textRegion = {};\n        textRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var textRegionSegmentFlags = readUint16(data, position);\n        position += 2;\n        textRegion.huffman = !!(textRegionSegmentFlags & 1);\n        textRegion.refinement = !!(textRegionSegmentFlags & 2);\n        textRegion.stripSize = 1 << ((textRegionSegmentFlags >> 2) & 3);\n        textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n        textRegion.transposed = !!(textRegionSegmentFlags & 64);\n        textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n        textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n        textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n        textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n        if (textRegion.huffman) {\n          var textRegionHuffmanFlags = readUint16(data, position);\n          position += 2;\n          textRegion.huffmanFS = (textRegionHuffmanFlags) & 3;\n          textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n          textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n          textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n          textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n          textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n          textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n          textRegion.huffmanRefinementSizeSelector =\n            !!(textRegionHuffmanFlags & 14);\n        }\n        if (textRegion.refinement && !textRegion.refinementTemplate) {\n          var at = [];\n          for (var i = 0; i < 2; i++) {\n            at.push({\n              x: readInt8(data, position),\n              y: readInt8(data, position + 1)\n            });\n            position += 2;\n          }\n          textRegion.refinementAt = at;\n        }\n        textRegion.numberOfSymbolInstances = readUint32(data, position);\n        position += 4;\n        // TODO 7.4.3.1.7 Symbol ID Huffman table decoding\n        if (textRegion.huffman)\n          error('JBIG2 error: huffman is not supported');\n        args = [textRegion, header.referredTo, data, position, end];\n        break;\n      case 38: // ImmediateGenericRegion\n      case 39: // ImmediateLosslessGenericRegion\n        var genericRegion = {};\n        genericRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var genericRegionSegmentFlags = data[position++];\n        genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n        genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n        genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n        if (!genericRegion.mmr) {\n          var atLength = genericRegion.template === 0 ? 4 : 1;\n          var at = [];\n          for (var i = 0; i < atLength; i++) {\n            at.push({\n              x: readInt8(data, position),\n              y: readInt8(data, position + 1)\n            });\n            position += 2;\n          }\n          genericRegion.at = at;\n        }\n        args = [genericRegion, data, position, end];\n        break;\n      case 48: // PageInformation\n        var pageInfo = {\n          width: readUint32(data, position),\n          height: readUint32(data, position + 4),\n          resolutionX: readUint32(data, position + 8),\n          resolutionY: readUint32(data, position + 12)\n        };\n        if (pageInfo.height == 0xFFFFFFFF)\n          delete pageInfo.height;\n        var pageSegmentFlags = data[position + 16];\n        var pageStripingInformatiom = readUint16(data, position + 17);\n        pageInfo.lossless = !!(pageSegmentFlags & 1);\n        pageInfo.refinement = !!(pageSegmentFlags & 2);\n        pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n        pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n        pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n        pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n        args = [pageInfo];\n        break;\n      case 49: // EndOfPage\n        break;\n      case 50: // EndOfStripe\n        break;\n      case 51: // EndOfFile\n        break;\n      case 62: // 7.4.15 defines 2 extension types which\n               // are comments and can be ignored.\n        break;\n      default:\n        error('JBIG2 error: segment type ' + header.typeName + '(' +\n              header.type + ') is not implemented');\n    }\n    var callbackName = 'on' + header.typeName;\n    if (callbackName in visitor)\n      visitor[callbackName].apply(visitor, args);\n  }\n\n  function processSegments(segments, visitor) {\n    for (var i = 0, ii = segments.length; i < ii; i++)\n      processSegment(segments[i], visitor);\n  }\n\n  function parseJbig2(data, start, end) {\n    var position = start;\n    if (data[position] != 0x97 || data[position + 1] != 0x4A ||\n        data[position + 2] != 0x42 || data[position + 3] != 0x32 ||\n        data[position + 4] != 0x0D || data[position + 5] != 0x0A ||\n        data[position + 6] != 0x1A || data[position + 7] != 0x0A)\n      error('JBIG2 error: invalid header');\n    var header = {};\n    position += 8;\n    var flags = data[position++];\n    header.randomAccess = !(flags & 1);\n    if (!(flags & 2)) {\n      header.numberOfPages = readUint32(data, position);\n      position += 4;\n    }\n    var segments = readSegments(header, data, position, end);\n    error('Not implemented');\n    // processSegments(segments, new SimpleSegmentVisitor());\n  }\n\n  function parseJbig2Chunks(chunks) {\n    var visitor = new SimpleSegmentVisitor();\n    for (var i = 0, ii = chunks.length; i < ii; i++) {\n      var chunk = chunks[i];\n      var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n      processSegments(segments, visitor);\n    }\n    return visitor.buffer;\n  }\n\n  function SimpleSegmentVisitor() {}\n\n  SimpleSegmentVisitor.prototype = {\n    onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n      this.currentPageInfo = info;\n      var rowSize = (info.width + 7) >> 3;\n      var buffer = new Uint8Array(rowSize * info.height);\n      var fill = info.defaultPixelValue ? 0xFF : 0;\n      for (var i = 0, ii = buffer.length; i < ii; i++)\n        buffer[i] = fill;\n      this.buffer = buffer;\n    },\n    drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n      var pageInfo = this.currentPageInfo;\n      var width = regionInfo.width, height = regionInfo.height;\n      var rowSize = (pageInfo.width + 7) >> 3;\n      var combinationOperator = pageInfo.combinationOperatorOverride ?\n        regionInfo.combinationOperator : pageInfo.combinationOperator;\n      var buffer = this.buffer;\n      for (var i = 0; i < height; i++) {\n        var mask = 128 >> (regionInfo.x & 7);\n        var offset = (i + regionInfo.y) * rowSize + (regionInfo.x >> 3);\n        switch (combinationOperator) {\n          case 0: // OR\n            for (var j = 0; j < width; j++) {\n              buffer[offset] |= bitmap[i][j] ? mask : 0;\n              mask >>= 1;\n              if (!mask) {\n                mask = 128;\n                offset++;\n              }\n            }\n            break;\n          case 2: // XOR\n            for (var j = 0; j < width; j++) {\n              buffer[offset] ^= bitmap[i][j] ? mask : 0;\n              mask >>= 1;\n              if (!mask) {\n                mask = 128;\n                offset++;\n              }\n            }\n            break;\n          default:\n            error('JBIG2 error: operator ' + combinationOperator +\n                  ' is not supported');\n        }\n      }\n    },\n    onImmediateGenericRegion:\n      function SimpleSegmentVisitor_onImmediateGenericRegion(region, data,\n                                                             start, end) {\n      var regionInfo = region.info;\n      var decodingContext = new DecodingContext(data, start, end);\n      var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height,\n                                region.template, region.prediction, null,\n                                region.at, decodingContext);\n      this.drawBitmap(regionInfo, bitmap);\n    },\n    onImmediateLosslessGenericRegion:\n      function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n      this.onImmediateGenericRegion.apply(this, arguments);\n    },\n    onSymbolDictionary:\n      function SimpleSegmentVisitor_onSymbolDictionary(dictionary,\n                                                       currentSegment,\n                                                       referredSegments,\n                                                       data, start, end) {\n      var huffmanTables;\n      if (dictionary.huffman)\n        error('JBIG2 error: huffman is not supported');\n\n      // Combines exported symbols from all referred segments\n      var symbols = this.symbols;\n      if (!symbols)\n        this.symbols = symbols = {};\n\n      var inputSymbols = [];\n      for (var i = 0, ii = referredSegments.length; i < ii; i++)\n        inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]);\n\n      var decodingContext = new DecodingContext(data, start, end);\n      symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman,\n        dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols,\n        dictionary.numberOfExportedSymbols, huffmanTables,\n        dictionary.template, dictionary.at,\n        dictionary.refinementTemplate, dictionary.refinementAt,\n        decodingContext);\n    },\n    onImmediateTextRegion:\n      function SimpleSegmentVisitor_onImmediateTextRegion(region,\n                                                          referredSegments,\n                                                          data, start, end) {\n      var regionInfo = region.info;\n      var huffmanTables;\n\n      // Combines exported symbols from all referred segments\n      var symbols = this.symbols;\n      var inputSymbols = [];\n      for (var i = 0, ii = referredSegments.length; i < ii; i++)\n        inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]);\n      var symbolCodeLength = log2(inputSymbols.length);\n\n      var decodingContext = new DecodingContext(data, start, end);\n      var bitmap = decodeTextRegion(region.huffman, region.refinement,\n        regionInfo.width, regionInfo.height, region.defaultPixelValue,\n        region.numberOfSymbolInstances, region.stripSize, inputSymbols,\n        symbolCodeLength, region.transposed, region.dsOffset,\n        region.referenceCorner, region.combinationOperator, huffmanTables,\n        region.refinementTemplate, region.refinementAt, decodingContext);\n      this.drawBitmap(regionInfo, bitmap);\n    },\n    onImmediateLosslessTextRegion:\n      function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n        this.onImmediateTextRegion.apply(this, arguments);\n    }\n  };\n\n  function Jbig2Image() {}\n\n  Jbig2Image.prototype = {\n    parseChunks: function Jbig2Image_parseChunks(chunks) {\n      return parseJbig2Chunks(chunks);\n    }\n  };\n\n  return Jbig2Image;\n})();\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* globals PDFJS */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use strict';\n\nvar bidi = PDFJS.bidi = (function bidiClosure() {\n  // Character types for symbols from 0000 to 00FF.\n  var baseTypes = [\n    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS',\n    'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',\n    'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON',\n    'ON', 'ON', 'ON', 'ON', 'ON', 'CS', 'ON', 'CS', 'ON', 'EN', 'EN', 'EN',\n    'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'ON', 'ON', 'ON', 'ON', 'ON',\n    'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON',\n    'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n    'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN',\n    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',\n    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',\n    'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON',\n    'ON', 'ON', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON',\n    'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n    'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n    'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'\n  ];\n\n  // Character types for symbols from 0600 to 06FF\n  var arabicTypes = [\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM',\n    'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN',\n    'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM',\n    'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'ON', 'NSM',\n    'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'\n  ];\n\n  function isOdd(i) {\n    return (i & 1) !== 0;\n  }\n\n  function isEven(i) {\n    return (i & 1) === 0;\n  }\n\n  function findUnequal(arr, start, value) {\n    var j;\n    for (var j = start, jj = arr.length; j < jj; ++j) {\n      if (arr[j] != value)\n        return j;\n    }\n    return j;\n  }\n\n  function setValues(arr, start, end, value) {\n    for (var j = start; j < end; ++j) {\n      arr[j] = value;\n    }\n  }\n\n  function reverseValues(arr, start, end) {\n    for (var i = start, j = end - 1; i < j; ++i, --j) {\n      var temp = arr[i];\n      arr[i] = arr[j];\n      arr[j] = temp;\n    }\n  }\n\n  function mirrorGlyphs(c) {\n    /*\n     # BidiMirroring-1.txt\n     0028; 0029 # LEFT PARENTHESIS\n     0029; 0028 # RIGHT PARENTHESIS\n     003C; 003E # LESS-THAN SIGN\n     003E; 003C # GREATER-THAN SIGN\n     005B; 005D # LEFT SQUARE BRACKET\n     005D; 005B # RIGHT SQUARE BRACKET\n     007B; 007D # LEFT CURLY BRACKET\n     007D; 007B # RIGHT CURLY BRACKET\n     00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\n     00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\n     */\n    switch (c) {\n      case '(':\n        return ')';\n      case ')':\n        return '(';\n      case '<':\n        return '>';\n      case '>':\n        return '<';\n      case ']':\n        return '[';\n      case '[':\n        return ']';\n      case '}':\n        return '{';\n      case '{':\n        return '}';\n      case '\\u00AB':\n        return '\\u00BB';\n      case '\\u00BB':\n        return '\\u00AB';\n      default:\n        return c;\n    }\n  }\n\n  function BidiResult(str, isLTR, vertical) {\n    this.str = str;\n    this.dir = vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl';\n  }\n\n  function bidi(str, startLevel, vertical) {\n    var isLTR = true;\n    var strLength = str.length;\n    if (strLength === 0 || vertical)\n      return new BidiResult(str, isLTR, vertical);\n\n    // get types, fill arrays\n\n    var chars = [];\n    var types = [];\n    var oldtypes = [];\n    var numBidi = 0;\n\n    for (var i = 0; i < strLength; ++i) {\n      chars[i] = str.charAt(i);\n\n      var charCode = str.charCodeAt(i);\n      var charType = 'L';\n      if (charCode <= 0x00ff)\n        charType = baseTypes[charCode];\n      else if (0x0590 <= charCode && charCode <= 0x05f4)\n        charType = 'R';\n      else if (0x0600 <= charCode && charCode <= 0x06ff)\n        charType = arabicTypes[charCode & 0xff];\n      else if (0x0700 <= charCode && charCode <= 0x08AC)\n        charType = 'AL';\n\n      if (charType == 'R' || charType == 'AL' || charType == 'AN')\n        numBidi++;\n\n      oldtypes[i] = types[i] = charType;\n    }\n\n    // detect the bidi method\n    //  if there are no rtl characters then no bidi needed\n    //  if less than 30% chars are rtl then string is primarily ltr\n    //  if more than 30% chars are rtl then string is primarily rtl\n    if (numBidi === 0) {\n      isLTR = true;\n      return new BidiResult(str, isLTR);\n    }\n\n    if (startLevel == -1) {\n      if ((strLength / numBidi) < 0.3) {\n        isLTR = true;\n        startLevel = 0;\n      } else {\n        isLTR = false;\n        startLevel = 1;\n      }\n    }\n\n    var levels = [];\n\n    for (var i = 0; i < strLength; ++i) {\n      levels[i] = startLevel;\n    }\n\n    /*\n     X1-X10: skip most of this, since we are NOT doing the embeddings.\n     */\n\n    var e = isOdd(startLevel) ? 'R' : 'L';\n    var sor = e;\n    var eor = sor;\n\n    /*\n     W1. Examine each non-spacing mark (NSM) in the level run, and change the\n     type of the NSM to the type of the previous character. If the NSM is at the\n     start of the level run, it will get the type of sor.\n     */\n\n    var lastType = sor;\n    for (var i = 0; i < strLength; ++i) {\n      if (types[i] == 'NSM')\n        types[i] = lastType;\n      else\n        lastType = types[i];\n    }\n\n    /*\n     W2. Search backwards from each instance of a European number until the\n     first strong type (R, L, AL, or sor) is found.  If an AL is found, change\n     the type of the European number to Arabic number.\n     */\n\n    var lastType = sor;\n    for (var i = 0; i < strLength; ++i) {\n      var t = types[i];\n      if (t == 'EN')\n        types[i] = (lastType == 'AL') ? 'AN' : 'EN';\n      else if (t == 'R' || t == 'L' || t == 'AL')\n        lastType = t;\n    }\n\n    /*\n     W3. Change all ALs to R.\n     */\n\n    for (var i = 0; i < strLength; ++i) {\n      var t = types[i];\n      if (t == 'AL')\n        types[i] = 'R';\n    }\n\n    /*\n     W4. A single European separator between two European numbers changes to a\n     European number. A single common separator between two numbers of the same\n     type changes to that type:\n     */\n\n    for (var i = 1; i < strLength - 1; ++i) {\n      if (types[i] == 'ES' && types[i - 1] == 'EN' && types[i + 1] == 'EN')\n        types[i] = 'EN';\n      if (types[i] == 'CS' && (types[i - 1] == 'EN' || types[i - 1] == 'AN') &&\n          types[i + 1] == types[i - 1])\n        types[i] = types[i - 1];\n    }\n\n    /*\n     W5. A sequence of European terminators adjacent to European numbers changes\n     to all European numbers:\n     */\n\n    for (var i = 0; i < strLength; ++i) {\n      if (types[i] == 'EN') {\n        // do before\n        for (var j = i - 1; j >= 0; --j) {\n          if (types[j] != 'ET')\n            break;\n          types[j] = 'EN';\n        }\n        // do after\n        for (var j = i + 1; j < strLength; --j) {\n          if (types[j] != 'ET')\n            break;\n          types[j] = 'EN';\n        }\n      }\n    }\n\n    /*\n     W6. Otherwise, separators and terminators change to Other Neutral:\n     */\n\n    for (var i = 0; i < strLength; ++i) {\n      var t = types[i];\n      if (t == 'WS' || t == 'ES' || t == 'ET' || t == 'CS')\n        types[i] = 'ON';\n    }\n\n    /*\n     W7. Search backwards from each instance of a European number until the\n     first strong type (R, L, or sor) is found. If an L is found,  then change\n     the type of the European number to L.\n     */\n\n    var lastType = sor;\n    for (var i = 0; i < strLength; ++i) {\n      var t = types[i];\n      if (t == 'EN')\n        types[i] = (lastType == 'L') ? 'L' : 'EN';\n      else if (t == 'R' || t == 'L')\n        lastType = t;\n    }\n\n    /*\n     N1. A sequence of neutrals takes the direction of the surrounding strong\n     text if the text on both sides has the same direction. European and Arabic\n     numbers are treated as though they were R. Start-of-level-run (sor) and\n     end-of-level-run (eor) are used at level run boundaries.\n     */\n\n    for (var i = 0; i < strLength; ++i) {\n      if (types[i] == 'ON') {\n        var end = findUnequal(types, i + 1, 'ON');\n        var before = sor;\n        if (i > 0)\n          before = types[i - 1];\n        var after = eor;\n        if (end + 1 < strLength)\n          after = types[end + 1];\n        if (before != 'L')\n          before = 'R';\n        if (after != 'L')\n          after = 'R';\n        if (before == after)\n          setValues(types, i, end, before);\n        i = end - 1; // reset to end (-1 so next iteration is ok)\n      }\n    }\n\n    /*\n     N2. Any remaining neutrals take the embedding direction.\n     */\n\n    for (var i = 0; i < strLength; ++i) {\n      if (types[i] == 'ON')\n        types[i] = e;\n    }\n\n    /*\n     I1. For all characters with an even (left-to-right) embedding direction,\n     those of type R go up one level and those of type AN or EN go up two\n     levels.\n     I2. For all characters with an odd (right-to-left) embedding direction,\n     those of type L, EN or AN go up one level.\n     */\n\n    for (var i = 0; i < strLength; ++i) {\n      var t = types[i];\n      if (isEven(levels[i])) {\n        if (t == 'R') {\n          levels[i] += 1;\n        } else if (t == 'AN' || t == 'EN') {\n          levels[i] += 2;\n        }\n      } else { // isOdd, so\n        if (t == 'L' || t == 'AN' || t == 'EN') {\n          levels[i] += 1;\n        }\n      }\n    }\n\n    /*\n     L1. On each line, reset the embedding level of the following characters to\n     the paragraph embedding level:\n\n     segment separators,\n     paragraph separators,\n     any sequence of whitespace characters preceding a segment separator or\n     paragraph separator, and any sequence of white space characters at the end\n     of the line.\n     */\n\n    // don't bother as text is only single line\n\n    /*\n     L2. From the highest level found in the text to the lowest odd level on\n     each line, reverse any contiguous sequence of characters that are at that\n     level or higher.\n     */\n\n    // find highest level & lowest odd level\n\n    var highestLevel = -1;\n    var lowestOddLevel = 99;\n    for (var i = 0, ii = levels.length; i < ii; ++i) {\n      var level = levels[i];\n      if (highestLevel < level)\n        highestLevel = level;\n      if (lowestOddLevel > level && isOdd(level))\n        lowestOddLevel = level;\n    }\n\n    // now reverse between those limits\n\n    for (var level = highestLevel; level >= lowestOddLevel; --level) {\n      // find segments to reverse\n      var start = -1;\n      for (var i = 0, ii = levels.length; i < ii; ++i) {\n        if (levels[i] < level) {\n          if (start >= 0) {\n            reverseValues(chars, start, i);\n            start = -1;\n          }\n        } else if (start < 0) {\n          start = i;\n        }\n      }\n      if (start >= 0) {\n        reverseValues(chars, start, levels.length);\n      }\n    }\n\n    /*\n     L3. Combining marks applied to a right-to-left base character will at this\n     point precede their base character. If the rendering engine expects them to\n     follow the base characters in the final display process, then the ordering\n     of the marks and the base character must be reversed.\n     */\n\n    // don't bother for now\n\n    /*\n     L4. A character that possesses the mirrored property as specified by\n     Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved\n     directionality of that character is R.\n     */\n\n    // don't mirror as characters are already mirrored in the pdf\n\n    // Finally, return string\n\n    var result = '';\n    for (var i = 0, ii = chars.length; i < ii; ++i) {\n      var ch = chars[i];\n      if (ch != '<' && ch != '>')\n        result += ch;\n    }\n\n    return new BidiResult(result, isLTR);\n  }\n\n  return bidi;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/*\n   Copyright 2011 notmasteryet\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\n// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n//   (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n//   (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n//   in PostScript Level 2, Technical Note #5116\n//   (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\nvar JpegImage = (function jpegImage() {\n  \"use strict\";\n  var dctZigZag = new Int32Array([\n     0,\n     1,  8,\n    16,  9,  2,\n     3, 10, 17, 24,\n    32, 25, 18, 11, 4,\n     5, 12, 19, 26, 33, 40,\n    48, 41, 34, 27, 20, 13,  6,\n     7, 14, 21, 28, 35, 42, 49, 56,\n    57, 50, 43, 36, 29, 22, 15,\n    23, 30, 37, 44, 51, 58,\n    59, 52, 45, 38, 31,\n    39, 46, 53, 60,\n    61, 54, 47,\n    55, 62,\n    63\n  ]);\n\n  var dctCos1  =  4017   // cos(pi/16)\n  var dctSin1  =   799   // sin(pi/16)\n  var dctCos3  =  3406   // cos(3*pi/16)\n  var dctSin3  =  2276   // sin(3*pi/16)\n  var dctCos6  =  1567   // cos(6*pi/16)\n  var dctSin6  =  3784   // sin(6*pi/16)\n  var dctSqrt2 =  5793   // sqrt(2)\n  var dctSqrt1d2 = 2896  // sqrt(2) / 2\n\n  function constructor() {\n  }\n\n  function buildHuffmanTable(codeLengths, values) {\n    var k = 0, code = [], i, j, length = 16;\n    while (length > 0 && !codeLengths[length - 1])\n      length--;\n    code.push({children: [], index: 0});\n    var p = code[0], q;\n    for (i = 0; i < length; i++) {\n      for (j = 0; j < codeLengths[i]; j++) {\n        p = code.pop();\n        p.children[p.index] = values[k];\n        while (p.index > 0) {\n          p = code.pop();\n        }\n        p.index++;\n        code.push(p);\n        while (code.length <= i) {\n          code.push(q = {children: [], index: 0});\n          p.children[p.index] = q.children;\n          p = q;\n        }\n        k++;\n      }\n      if (i + 1 < length) {\n        // p here points to last code\n        code.push(q = {children: [], index: 0});\n        p.children[p.index] = q.children;\n        p = q;\n      }\n    }\n    return code[0].children;\n  }\n\n  function decodeScan(data, offset,\n                      frame, components, resetInterval,\n                      spectralStart, spectralEnd,\n                      successivePrev, successive) {\n    var precision = frame.precision;\n    var samplesPerLine = frame.samplesPerLine;\n    var scanLines = frame.scanLines;\n    var mcusPerLine = frame.mcusPerLine;\n    var progressive = frame.progressive;\n    var maxH = frame.maxH, maxV = frame.maxV;\n\n    var startOffset = offset, bitsData = 0, bitsCount = 0;\n    function readBit() {\n      if (bitsCount > 0) {\n        bitsCount--;\n        return (bitsData >> bitsCount) & 1;\n      }\n      bitsData = data[offset++];\n      if (bitsData == 0xFF) {\n        var nextByte = data[offset++];\n        if (nextByte) {\n          throw \"unexpected marker: \" + ((bitsData << 8) | nextByte).toString(16);\n        }\n        // unstuff 0\n      }\n      bitsCount = 7;\n      return bitsData >>> 7;\n    }\n    function decodeHuffman(tree) {\n      var node = tree, bit;\n      while ((bit = readBit()) !== null) {\n        node = node[bit];\n        if (typeof node === 'number')\n          return node;\n        if (typeof node !== 'object')\n          throw \"invalid huffman sequence\";\n      }\n      return null;\n    }\n    function receive(length) {\n      var n = 0;\n      while (length > 0) {\n        var bit = readBit();\n        if (bit === null) return;\n        n = (n << 1) | bit;\n        length--;\n      }\n      return n;\n    }\n    function receiveAndExtend(length) {\n      var n = receive(length);\n      if (n >= 1 << (length - 1))\n        return n;\n      return n + (-1 << length) + 1;\n    }\n    function decodeBaseline(component, zz) {\n      var t = decodeHuffman(component.huffmanTableDC);\n      var diff = t === 0 ? 0 : receiveAndExtend(t);\n      zz[0]= (component.pred += diff);\n      var k = 1;\n      while (k < 64) {\n        var rs = decodeHuffman(component.huffmanTableAC);\n        var s = rs & 15, r = rs >> 4;\n        if (s === 0) {\n          if (r < 15)\n            break;\n          k += 16;\n          continue;\n        }\n        k += r;\n        var z = dctZigZag[k];\n        zz[z] = receiveAndExtend(s);\n        k++;\n      }\n    }\n    function decodeDCFirst(component, zz) {\n      var t = decodeHuffman(component.huffmanTableDC);\n      var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);\n      zz[0] = (component.pred += diff);\n    }\n    function decodeDCSuccessive(component, zz) {\n      zz[0] |= readBit() << successive;\n    }\n    var eobrun = 0;\n    function decodeACFirst(component, zz) {\n      if (eobrun > 0) {\n        eobrun--;\n        return;\n      }\n      var k = spectralStart, e = spectralEnd;\n      while (k <= e) {\n        var rs = decodeHuffman(component.huffmanTableAC);\n        var s = rs & 15, r = rs >> 4;\n        if (s === 0) {\n          if (r < 15) {\n            eobrun = receive(r) + (1 << r) - 1;\n            break;\n          }\n          k += 16;\n          continue;\n        }\n        k += r;\n        var z = dctZigZag[k];\n        zz[z] = receiveAndExtend(s) * (1 << successive);\n        k++;\n      }\n    }\n    var successiveACState = 0, successiveACNextValue;\n    function decodeACSuccessive(component, zz) {\n      var k = spectralStart, e = spectralEnd, r = 0;\n      while (k <= e) {\n        var z = dctZigZag[k];\n        switch (successiveACState) {\n        case 0: // initial state\n          var rs = decodeHuffman(component.huffmanTableAC);\n          var s = rs & 15, r = rs >> 4;\n          if (s === 0) {\n            if (r < 15) {\n              eobrun = receive(r) + (1 << r);\n              successiveACState = 4;\n            } else {\n              r = 16;\n              successiveACState = 1;\n            }\n          } else {\n            if (s !== 1)\n              throw \"invalid ACn encoding\";\n            successiveACNextValue = receiveAndExtend(s);\n            successiveACState = r ? 2 : 3;\n          }\n          continue;\n        case 1: // skipping r zero items\n        case 2:\n          if (zz[z])\n            zz[z] += (readBit() << successive);\n          else {\n            r--;\n            if (r === 0)\n              successiveACState = successiveACState == 2 ? 3 : 0;\n          }\n          break;\n        case 3: // set value for a zero item\n          if (zz[z])\n            zz[z] += (readBit() << successive);\n          else {\n            zz[z] = successiveACNextValue << successive;\n            successiveACState = 0;\n          }\n          break;\n        case 4: // eob\n          if (zz[z])\n            zz[z] += (readBit() << successive);\n          break;\n        }\n        k++;\n      }\n      if (successiveACState === 4) {\n        eobrun--;\n        if (eobrun === 0)\n          successiveACState = 0;\n      }\n    }\n    function decodeMcu(component, decode, mcu, row, col) {\n      var mcuRow = (mcu / mcusPerLine) | 0;\n      var mcuCol = mcu % mcusPerLine;\n      var blockRow = mcuRow * component.v + row;\n      var blockCol = mcuCol * component.h + col;\n      decode(component, component.blocks[blockRow][blockCol]);\n    }\n    function decodeBlock(component, decode, mcu) {\n      var blockRow = (mcu / component.blocksPerLine) | 0;\n      var blockCol = mcu % component.blocksPerLine;\n      decode(component, component.blocks[blockRow][blockCol]);\n    }\n\n    var componentsLength = components.length;\n    var component, i, j, k, n;\n    var decodeFn;\n    if (progressive) {\n      if (spectralStart === 0)\n        decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n      else\n        decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n    } else {\n      decodeFn = decodeBaseline;\n    }\n\n    var mcu = 0, marker;\n    var mcuExpected;\n    if (componentsLength == 1) {\n      mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n    } else {\n      mcuExpected = mcusPerLine * frame.mcusPerColumn;\n    }\n    if (!resetInterval) resetInterval = mcuExpected;\n\n    var h, v;\n    while (mcu < mcuExpected) {\n      // reset interval stuff\n      for (i = 0; i < componentsLength; i++)\n        components[i].pred = 0;\n      eobrun = 0;\n\n      if (componentsLength == 1) {\n        component = components[0];\n        for (n = 0; n < resetInterval; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < resetInterval; n++) {\n          for (i = 0; i < componentsLength; i++) {\n            component = components[i];\n            h = component.h;\n            v = component.v;\n            for (j = 0; j < v; j++) {\n              for (k = 0; k < h; k++) {\n                decodeMcu(component, decodeFn, mcu, j, k);\n              }\n            }\n          }\n          mcu++;\n        }\n      }\n\n      // find marker\n      bitsCount = 0;\n      marker = (data[offset] << 8) | data[offset + 1];\n      if (marker <= 0xFF00) {\n        throw \"marker was not found\";\n      }\n\n      if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx\n        offset += 2;\n      }\n      else\n        break;\n    }\n\n    return offset - startOffset;\n  }\n\n  function buildComponentData(frame, component) {\n    var lines = [];\n    var blocksPerLine = component.blocksPerLine;\n    var blocksPerColumn = component.blocksPerColumn;\n    var samplesPerLine = blocksPerLine << 3;\n    var R = new Int32Array(64), r = new Uint8Array(64);\n\n    // A port of poppler's IDCT method which in turn is taken from:\n    //   Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n    //   \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n    //   IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n    //   988-991.\n    function quantizeAndInverse(zz, dataOut, dataIn) {\n      var qt = component.quantizationTable;\n      var v0, v1, v2, v3, v4, v5, v6, v7, t;\n      var p = dataIn;\n      var i;\n\n      // dequant\n      for (i = 0; i < 64; i++)\n        p[i] = zz[i] * qt[i];\n\n      // inverse DCT on rows\n      for (i = 0; i < 8; ++i) {\n        var row = 8 * i;\n\n        // check for all-zero AC coefficients\n        if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 &&\n            p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 &&\n            p[7 + row] == 0) {\n          t = (dctSqrt2 * p[0 + row] + 512) >> 10;\n          p[0 + row] = t;\n          p[1 + row] = t;\n          p[2 + row] = t;\n          p[3 + row] = t;\n          p[4 + row] = t;\n          p[5 + row] = t;\n          p[6 + row] = t;\n          p[7 + row] = t;\n          continue;\n        }\n\n        // stage 4\n        v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;\n        v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;\n        v2 = p[2 + row];\n        v3 = p[6 + row];\n        v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;\n        v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;\n        v5 = p[3 + row] << 4;\n        v6 = p[5 + row] << 4;\n\n        // stage 3\n        t = (v0 - v1+ 1) >> 1;\n        v0 = (v0 + v1 + 1) >> 1;\n        v1 = t;\n        t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n        v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n        v3 = t;\n        t = (v4 - v6 + 1) >> 1;\n        v4 = (v4 + v6 + 1) >> 1;\n        v6 = t;\n        t = (v7 + v5 + 1) >> 1;\n        v5 = (v7 - v5 + 1) >> 1;\n        v7 = t;\n\n        // stage 2\n        t = (v0 - v3 + 1) >> 1;\n        v0 = (v0 + v3 + 1) >> 1;\n        v3 = t;\n        t = (v1 - v2 + 1) >> 1;\n        v1 = (v1 + v2 + 1) >> 1;\n        v2 = t;\n        t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n        v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n        v7 = t;\n        t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n        v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n        v6 = t;\n\n        // stage 1\n        p[0 + row] = v0 + v7;\n        p[7 + row] = v0 - v7;\n        p[1 + row] = v1 + v6;\n        p[6 + row] = v1 - v6;\n        p[2 + row] = v2 + v5;\n        p[5 + row] = v2 - v5;\n        p[3 + row] = v3 + v4;\n        p[4 + row] = v3 - v4;\n      }\n\n      // inverse DCT on columns\n      for (i = 0; i < 8; ++i) {\n        var col = i;\n\n        // check for all-zero AC coefficients\n        if (p[1*8 + col] == 0 && p[2*8 + col] == 0 && p[3*8 + col] == 0 &&\n            p[4*8 + col] == 0 && p[5*8 + col] == 0 && p[6*8 + col] == 0 &&\n            p[7*8 + col] == 0) {\n          t = (dctSqrt2 * dataIn[i+0] + 8192) >> 14;\n          p[0*8 + col] = t;\n          p[1*8 + col] = t;\n          p[2*8 + col] = t;\n          p[3*8 + col] = t;\n          p[4*8 + col] = t;\n          p[5*8 + col] = t;\n          p[6*8 + col] = t;\n          p[7*8 + col] = t;\n          continue;\n        }\n\n        // stage 4\n        v0 = (dctSqrt2 * p[0*8 + col] + 2048) >> 12;\n        v1 = (dctSqrt2 * p[4*8 + col] + 2048) >> 12;\n        v2 = p[2*8 + col];\n        v3 = p[6*8 + col];\n        v4 = (dctSqrt1d2 * (p[1*8 + col] - p[7*8 + col]) + 2048) >> 12;\n        v7 = (dctSqrt1d2 * (p[1*8 + col] + p[7*8 + col]) + 2048) >> 12;\n        v5 = p[3*8 + col];\n        v6 = p[5*8 + col];\n\n        // stage 3\n        t = (v0 - v1 + 1) >> 1;\n        v0 = (v0 + v1 + 1) >> 1;\n        v1 = t;\n        t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n        v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n        v3 = t;\n        t = (v4 - v6 + 1) >> 1;\n        v4 = (v4 + v6 + 1) >> 1;\n        v6 = t;\n        t = (v7 + v5 + 1) >> 1;\n        v5 = (v7 - v5 + 1) >> 1;\n        v7 = t;\n\n        // stage 2\n        t = (v0 - v3 + 1) >> 1;\n        v0 = (v0 + v3 + 1) >> 1;\n        v3 = t;\n        t = (v1 - v2 + 1) >> 1;\n        v1 = (v1 + v2 + 1) >> 1;\n        v2 = t;\n        t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n        v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n        v7 = t;\n        t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n        v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n        v6 = t;\n\n        // stage 1\n        p[0*8 + col] = v0 + v7;\n        p[7*8 + col] = v0 - v7;\n        p[1*8 + col] = v1 + v6;\n        p[6*8 + col] = v1 - v6;\n        p[2*8 + col] = v2 + v5;\n        p[5*8 + col] = v2 - v5;\n        p[3*8 + col] = v3 + v4;\n        p[4*8 + col] = v3 - v4;\n      }\n\n      // convert to 8-bit integers\n      for (i = 0; i < 64; ++i) {\n        var sample = 128 + ((p[i] + 8) >> 4);\n        dataOut[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample;\n      }\n    }\n\n    var i, j;\n    for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n      var scanLine = blockRow << 3;\n      for (i = 0; i < 8; i++)\n        lines.push(new Uint8Array(samplesPerLine));\n      for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n        quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n\n        var offset = 0, sample = blockCol << 3;\n        for (j = 0; j < 8; j++) {\n          var line = lines[scanLine + j];\n          for (i = 0; i < 8; i++)\n            line[sample + i] = r[offset++];\n        }\n      }\n    }\n    return lines;\n  }\n\n  constructor.prototype = {\n    load: function load(path) {\n      var xhr = new XMLHttpRequest();\n      xhr.open(\"GET\", path, true);\n      xhr.responseType = \"arraybuffer\";\n      xhr.onload = (function() {\n        // TODO catch parse error\n        var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n        this.parse(data);\n        if (this.onload)\n          this.onload();\n      }).bind(this);\n      xhr.send(null);\n    },\n    parse: function parse(data) {\n      var offset = 0, length = data.length;\n      function readUint16() {\n        var value = (data[offset] << 8) | data[offset + 1];\n        offset += 2;\n        return value;\n      }\n      function readDataBlock() {\n        var length = readUint16();\n        var array = data.subarray(offset, offset + length - 2);\n        offset += array.length;\n        return array;\n      }\n      function prepareComponents(frame) {\n        var maxH = 0, maxV = 0;\n        var component, componentId;\n        for (componentId in frame.components) {\n          if (frame.components.hasOwnProperty(componentId)) {\n            component = frame.components[componentId];\n            if (maxH < component.h) maxH = component.h;\n            if (maxV < component.v) maxV = component.v;\n          }\n        }\n        var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);\n        var mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);\n        for (componentId in frame.components) {\n          if (frame.components.hasOwnProperty(componentId)) {\n            component = frame.components[componentId];\n            var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);\n            var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines  / 8) * component.v / maxV);\n            var blocksPerLineForMcu = mcusPerLine * component.h;\n            var blocksPerColumnForMcu = mcusPerColumn * component.v;\n            var blocks = [];\n            for (var i = 0; i < blocksPerColumnForMcu; i++) {\n              var row = [];\n              for (var j = 0; j < blocksPerLineForMcu; j++)\n                row.push(new Int32Array(64));\n              blocks.push(row);\n            }\n            component.blocksPerLine = blocksPerLine;\n            component.blocksPerColumn = blocksPerColumn;\n            component.blocks = blocks;\n          }\n        }\n        frame.maxH = maxH;\n        frame.maxV = maxV;\n        frame.mcusPerLine = mcusPerLine;\n        frame.mcusPerColumn = mcusPerColumn;\n      }\n      var jfif = null;\n      var adobe = null;\n      var pixels = null;\n      var frame, resetInterval;\n      var quantizationTables = [], frames = [];\n      var huffmanTablesAC = [], huffmanTablesDC = [];\n      var fileMarker = readUint16();\n      if (fileMarker != 0xFFD8) { // SOI (Start of Image)\n        throw \"SOI not found\";\n      }\n\n      fileMarker = readUint16();\n      while (fileMarker != 0xFFD9) { // EOI (End of image)\n        var i, j, l;\n        switch(fileMarker) {\n          case 0xFFE0: // APP0 (Application Specific)\n          case 0xFFE1: // APP1\n          case 0xFFE2: // APP2\n          case 0xFFE3: // APP3\n          case 0xFFE4: // APP4\n          case 0xFFE5: // APP5\n          case 0xFFE6: // APP6\n          case 0xFFE7: // APP7\n          case 0xFFE8: // APP8\n          case 0xFFE9: // APP9\n          case 0xFFEA: // APP10\n          case 0xFFEB: // APP11\n          case 0xFFEC: // APP12\n          case 0xFFED: // APP13\n          case 0xFFEE: // APP14\n          case 0xFFEF: // APP15\n          case 0xFFFE: // COM (Comment)\n            var appData = readDataBlock();\n\n            if (fileMarker === 0xFFE0) {\n              if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 &&\n                appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\\x00'\n                jfif = {\n                  version: { major: appData[5], minor: appData[6] },\n                  densityUnits: appData[7],\n                  xDensity: (appData[8] << 8) | appData[9],\n                  yDensity: (appData[10] << 8) | appData[11],\n                  thumbWidth: appData[12],\n                  thumbHeight: appData[13],\n                  thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n                };\n              }\n            }\n            // TODO APP1 - Exif\n            if (fileMarker === 0xFFEE) {\n              if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F &&\n                appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\\x00'\n                adobe = {\n                  version: appData[6],\n                  flags0: (appData[7] << 8) | appData[8],\n                  flags1: (appData[9] << 8) | appData[10],\n                  transformCode: appData[11]\n                };\n              }\n            }\n            break;\n\n          case 0xFFDB: // DQT (Define Quantization Tables)\n            var quantizationTablesLength = readUint16();\n            var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n            while (offset < quantizationTablesEnd) {\n              var quantizationTableSpec = data[offset++];\n              var tableData = new Int32Array(64);\n              if ((quantizationTableSpec >> 4) === 0) { // 8 bit values\n                for (j = 0; j < 64; j++) {\n                  var z = dctZigZag[j];\n                  tableData[z] = data[offset++];\n                }\n              } else if ((quantizationTableSpec >> 4) === 1) { //16 bit\n                for (j = 0; j < 64; j++) {\n                  var z = dctZigZag[j];\n                  tableData[z] = readUint16();\n                }\n              } else\n                throw \"DQT: invalid table spec\";\n              quantizationTables[quantizationTableSpec & 15] = tableData;\n            }\n            break;\n\n          case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)\n          case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)\n            readUint16(); // skip data length\n            frame = {};\n            frame.progressive = (fileMarker === 0xFFC2);\n            frame.precision = data[offset++];\n            frame.scanLines = readUint16();\n            frame.samplesPerLine = readUint16();\n            frame.components = {};\n            frame.componentsOrder = [];\n            var componentsCount = data[offset++], componentId;\n            var maxH = 0, maxV = 0;\n            for (i = 0; i < componentsCount; i++) {\n              componentId = data[offset];\n              var h = data[offset + 1] >> 4;\n              var v = data[offset + 1] & 15;\n              var qId = data[offset + 2];\n              frame.componentsOrder.push(componentId);\n              frame.components[componentId] = {\n                h: h,\n                v: v,\n                quantizationTable: quantizationTables[qId]\n              };\n              offset += 3;\n            }\n            prepareComponents(frame);\n            frames.push(frame);\n            break;\n\n          case 0xFFC4: // DHT (Define Huffman Tables)\n            var huffmanLength = readUint16();\n            for (i = 2; i < huffmanLength;) {\n              var huffmanTableSpec = data[offset++];\n              var codeLengths = new Uint8Array(16);\n              var codeLengthSum = 0;\n              for (j = 0; j < 16; j++, offset++)\n                codeLengthSum += (codeLengths[j] = data[offset]);\n              var huffmanValues = new Uint8Array(codeLengthSum);\n              for (j = 0; j < codeLengthSum; j++, offset++)\n                huffmanValues[j] = data[offset];\n              i += 17 + codeLengthSum;\n\n              ((huffmanTableSpec >> 4) === 0 ? \n                huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] =\n                buildHuffmanTable(codeLengths, huffmanValues);\n            }\n            break;\n\n          case 0xFFDD: // DRI (Define Restart Interval)\n            readUint16(); // skip data length\n            resetInterval = readUint16();\n            break;\n\n          case 0xFFDA: // SOS (Start of Scan)\n            var scanLength = readUint16();\n            var selectorsCount = data[offset++];\n            var components = [], component;\n            for (i = 0; i < selectorsCount; i++) {\n              component = frame.components[data[offset++]];\n              var tableSpec = data[offset++];\n              component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n              component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n              components.push(component);\n            }\n            var spectralStart = data[offset++];\n            var spectralEnd = data[offset++];\n            var successiveApproximation = data[offset++];\n            var processed = decodeScan(data, offset,\n              frame, components, resetInterval,\n              spectralStart, spectralEnd,\n              successiveApproximation >> 4, successiveApproximation & 15);\n            offset += processed;\n            break;\n          default:\n            if (data[offset - 3] == 0xFF &&\n                data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n              // could be incorrect encoding -- last 0xFF byte of the previous\n              // block was eaten by the encoder\n              offset -= 3;\n              break;\n            }\n            throw \"unknown JPEG marker \" + fileMarker.toString(16);\n        }\n        fileMarker = readUint16();\n      }\n      if (frames.length != 1)\n        throw \"only single frame JPEGs supported\";\n\n      this.width = frame.samplesPerLine;\n      this.height = frame.scanLines;\n      this.jfif = jfif;\n      this.adobe = adobe;\n      this.components = [];\n      for (var i = 0; i < frame.componentsOrder.length; i++) {\n        var component = frame.components[frame.componentsOrder[i]];\n        this.components.push({\n          lines: buildComponentData(frame, component),\n          scaleX: component.h / frame.maxH,\n          scaleY: component.v / frame.maxV\n        });\n      }\n    },\n    getData: function getData(width, height) {\n      function clampTo8bit(a) {\n        return a < 0 ? 0 : a > 255 ? 255 : a;\n      }\n      var scaleX = this.width / width, scaleY = this.height / height;\n\n      var component1, component2, component3, component4;\n      var component1Line, component2Line, component3Line, component4Line;\n      var x, y;\n      var offset = 0;\n      var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n      var colorTransform;\n      var dataLength = width * height * this.components.length;\n      var data = new Uint8Array(dataLength);\n      switch (this.components.length) {\n        case 1:\n          component1 = this.components[0];\n          for (y = 0; y < height; y++) {\n            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n            for (x = 0; x < width; x++) {\n              Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n\n              data[offset++] = Y;\n            }\n          }\n          break;\n        case 3:\n          // The default transform for three components is true\n          colorTransform = true;\n          // The adobe transform marker overrides any previous setting\n          if (this.adobe && this.adobe.transformCode)\n            colorTransform = true;\n          else if (typeof this.colorTransform !== 'undefined')\n            colorTransform = !!this.colorTransform;\n\n          component1 = this.components[0];\n          component2 = this.components[1];\n          component3 = this.components[2];\n          for (y = 0; y < height; y++) {\n            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n            component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];\n            component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];\n            for (x = 0; x < width; x++) {\n              if (!colorTransform) {\n                R = component1Line[0 | (x * component1.scaleX * scaleX)];\n                G = component2Line[0 | (x * component2.scaleX * scaleX)];\n                B = component3Line[0 | (x * component3.scaleX * scaleX)];\n              } else {\n                Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n                Cb = component2Line[0 | (x * component2.scaleX * scaleX)];\n                Cr = component3Line[0 | (x * component3.scaleX * scaleX)];\n\n                R = clampTo8bit(Y + 1.402 * (Cr - 128));\n                G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n                B = clampTo8bit(Y + 1.772 * (Cb - 128));\n              }\n\n              data[offset++] = R;\n              data[offset++] = G;\n              data[offset++] = B;\n            }\n          }\n          break;\n        case 4:\n          if (!this.adobe)\n            throw 'Unsupported color mode (4 components)';\n          // The default transform for four components is false\n          colorTransform = false;\n          // The adobe transform marker overrides any previous setting\n          if (this.adobe && this.adobe.transformCode)\n            colorTransform = true;\n          else if (typeof this.colorTransform !== 'undefined')\n            colorTransform = !!this.colorTransform;\n\n          component1 = this.components[0];\n          component2 = this.components[1];\n          component3 = this.components[2];\n          component4 = this.components[3];\n          for (y = 0; y < height; y++) {\n            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n            component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];\n            component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];\n            component4Line = component4.lines[0 | (y * component4.scaleY * scaleY)];\n            for (x = 0; x < width; x++) {\n              if (!colorTransform) {\n                C = component1Line[0 | (x * component1.scaleX * scaleX)];\n                M = component2Line[0 | (x * component2.scaleX * scaleX)];\n                Ye = component3Line[0 | (x * component3.scaleX * scaleX)];\n                K = component4Line[0 | (x * component4.scaleX * scaleX)];\n              } else {\n                Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n                Cb = component2Line[0 | (x * component2.scaleX * scaleX)];\n                Cr = component3Line[0 | (x * component3.scaleX * scaleX)];\n                K = component4Line[0 | (x * component4.scaleX * scaleX)];\n\n                C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n                M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n                Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n              }\n              data[offset++] = C;\n              data[offset++] = M;\n              data[offset++] = Ye;\n              data[offset++] = K;\n            }\n          }\n          break;\n        default:\n          throw 'Unsupported color mode';\n      }\n      return data;\n    },\n    copyToImageData: function copyToImageData(imageData) {\n      var width = imageData.width, height = imageData.height;\n      var imageDataArray = imageData.data;\n      var data = this.getData(width, height);\n      var i = 0, j = 0, x, y;\n      var Y, K, C, M, R, G, B;\n      switch (this.components.length) {\n        case 1:\n          for (y = 0; y < height; y++) {\n            for (x = 0; x < width; x++) {\n              Y = data[i++];\n\n              imageDataArray[j++] = Y;\n              imageDataArray[j++] = Y;\n              imageDataArray[j++] = Y;\n              imageDataArray[j++] = 255;\n            }\n          }\n          break;\n        case 3:\n          for (y = 0; y < height; y++) {\n            for (x = 0; x < width; x++) {\n              R = data[i++];\n              G = data[i++];\n              B = data[i++];\n\n              imageDataArray[j++] = R;\n              imageDataArray[j++] = G;\n              imageDataArray[j++] = B;\n              imageDataArray[j++] = 255;\n            }\n          }\n          break;\n        case 4:\n          for (y = 0; y < height; y++) {\n            for (x = 0; x < width; x++) {\n              C = data[i++];\n              M = data[i++];\n              Y = data[i++];\n              K = data[i++];\n\n              R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n              G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n              B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n\n              imageDataArray[j++] = R;\n              imageDataArray[j++] = G;\n              imageDataArray[j++] = B;\n              imageDataArray[j++] = 255;\n            }\n          }\n          break;\n        default:\n          throw 'Unsupported color mode';\n      }\n    }\n  };\n\n  return constructor;\n})();/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals assert, MissingDataException, isInt, NetworkManager, Promise,\n           isEmptyObj */\n\n'use strict';\n\nvar ChunkedStream = (function ChunkedStreamClosure() {\n  function ChunkedStream(length, chunkSize, manager) {\n    this.bytes = new Uint8Array(length);\n    this.start = 0;\n    this.pos = 0;\n    this.end = length;\n    this.chunkSize = chunkSize;\n    this.loadedChunks = [];\n    this.numChunksLoaded = 0;\n    this.numChunks = Math.ceil(length / chunkSize);\n    this.manager = manager;\n    this.initialDataLength = 0;\n  }\n\n  // required methods for a stream. if a particular stream does not\n  // implement these, an error should be thrown\n  ChunkedStream.prototype = {\n\n    getMissingChunks: function ChunkedStream_getMissingChunks() {\n      var chunks = [];\n      for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n        if (!(chunk in this.loadedChunks)) {\n          chunks.push(chunk);\n        }\n      }\n      return chunks;\n    },\n\n    getBaseStreams: function ChunkedStream_getBaseStreams() {\n      return [this];\n    },\n\n    allChunksLoaded: function ChunkedStream_allChunksLoaded() {\n      return this.numChunksLoaded === this.numChunks;\n    },\n\n    onReceiveData: function(begin, chunk) {\n      var end = begin + chunk.byteLength;\n\n      assert(begin % this.chunkSize === 0, 'Bad begin offset: ' + begin);\n      // Using this.length is inaccurate here since this.start can be moved\n      // See ChunkedStream.moveStart()\n      var length = this.bytes.length;\n      assert(end % this.chunkSize === 0 || end === length,\n        'Bad end offset: ' + end);\n\n      this.bytes.set(new Uint8Array(chunk), begin);\n      var chunkSize = this.chunkSize;\n      var beginChunk = Math.floor(begin / chunkSize);\n      var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n      for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!(chunk in this.loadedChunks)) {\n          this.loadedChunks[chunk] = true;\n          ++this.numChunksLoaded;\n        }\n      }\n    },\n\n    onReceiveInitialData: function (data) {\n      this.bytes.set(data);\n      this.initialDataLength = data.length;\n      var endChunk = this.end === data.length ?\n                     this.numChunks : Math.floor(data.length / this.chunkSize);\n      for (var i = 0; i < endChunk; i++) {\n        this.loadedChunks[i] = true;\n        ++this.numChunksLoaded;\n      }\n    },\n\n    ensureRange: function ChunkedStream_ensureRange(begin, end) {\n      if (begin >= end) {\n        return;\n      }\n\n      if (end <= this.initialDataLength) {\n        return;\n      }\n\n      var chunkSize = this.chunkSize;\n      var beginChunk = Math.floor(begin / chunkSize);\n      var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n      for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!(chunk in this.loadedChunks)) {\n          throw new MissingDataException(begin, end);\n        }\n      }\n    },\n\n    nextEmptyChunk: function ChunkedStream_nextEmptyChunk(beginChunk) {\n      for (var chunk = beginChunk, n = this.numChunks; chunk < n; ++chunk) {\n        if (!(chunk in this.loadedChunks)) {\n          return chunk;\n        }\n      }\n      // Wrap around to beginning\n      for (var chunk = 0; chunk < beginChunk; ++chunk) {\n        if (!(chunk in this.loadedChunks)) {\n          return chunk;\n        }\n      }\n      return null;\n    },\n\n    hasChunk: function ChunkedStream_hasChunk(chunk) {\n      return chunk in this.loadedChunks;\n    },\n\n    get length() {\n      return this.end - this.start;\n    },\n\n    getByte: function ChunkedStream_getByte() {\n      var pos = this.pos;\n      if (pos >= this.end) {\n        return -1;\n      }\n      this.ensureRange(pos, pos + 1);\n      return this.bytes[this.pos++];\n    },\n\n    // returns subarray of original buffer\n    // should only be read\n    getBytes: function ChunkedStream_getBytes(length) {\n      var bytes = this.bytes;\n      var pos = this.pos;\n      var strEnd = this.end;\n\n      if (!length) {\n        this.ensureRange(pos, strEnd);\n        return bytes.subarray(pos, strEnd);\n      }\n\n      var end = pos + length;\n      if (end > strEnd)\n        end = strEnd;\n      this.ensureRange(pos, end);\n\n      this.pos = end;\n      return bytes.subarray(pos, end);\n    },\n\n    peekBytes: function ChunkedStream_peekBytes(length) {\n      var bytes = this.getBytes(length);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n\n    getByteRange: function ChunkedStream_getBytes(begin, end) {\n      this.ensureRange(begin, end);\n      return this.bytes.subarray(begin, end);\n    },\n\n    skip: function ChunkedStream_skip(n) {\n      if (!n)\n        n = 1;\n      this.pos += n;\n    },\n\n    reset: function ChunkedStream_reset() {\n      this.pos = this.start;\n    },\n\n    moveStart: function ChunkedStream_moveStart() {\n      this.start = this.pos;\n    },\n\n    makeSubStream: function ChunkedStream_makeSubStream(start, length, dict) {\n      function ChunkedStreamSubstream() {}\n      ChunkedStreamSubstream.prototype = Object.create(this);\n      ChunkedStreamSubstream.prototype.getMissingChunks = function() {\n        var chunkSize = this.chunkSize;\n        var beginChunk = Math.floor(this.start / chunkSize);\n        var endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n        var missingChunks = [];\n        for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n          if (!(chunk in this.loadedChunks)) {\n            missingChunks.push(chunk);\n          }\n        }\n        return missingChunks;\n      };\n      var subStream = new ChunkedStreamSubstream();\n      subStream.pos = subStream.start = start;\n      subStream.end = start + length || this.end;\n      subStream.dict = dict;\n      return subStream;\n    },\n\n    isStream: true\n  };\n\n  return ChunkedStream;\n})();\n\nvar ChunkedStreamManager = (function ChunkedStreamManagerClosure() {\n\n  function ChunkedStreamManager(length, chunkSize, url, args) {\n    var self = this;\n    this.stream = new ChunkedStream(length, chunkSize, this);\n    this.length = length;\n    this.chunkSize = chunkSize;\n    this.url = url;\n    this.disableAutoFetch = args.disableAutoFetch;\n    var msgHandler = this.msgHandler = args.msgHandler;\n\n    if (args.chunkedViewerLoading) {\n      msgHandler.on('OnDataRange', this.onReceiveData.bind(this));\n      msgHandler.on('OnDataProgress', this.onProgress.bind(this));\n      this.sendRequest = function ChunkedStreamManager_sendRequest(begin, end) {\n        msgHandler.send('RequestDataRange', { begin: begin, end: end });\n      };\n    } else {\n\n      var getXhr = function getXhr() {\n//#if B2G\n//      return new XMLHttpRequest({ mozSystem: true });\n//#else\n        return new XMLHttpRequest();\n//#endif\n      };\n      this.networkManager = new NetworkManager(this.url, {\n        getXhr: getXhr,\n        httpHeaders: args.httpHeaders\n      });\n      this.sendRequest = function ChunkedStreamManager_sendRequest(begin, end) {\n        this.networkManager.requestRange(begin, end, {\n          onDone: this.onReceiveData.bind(this),\n          onProgress: this.onProgress.bind(this)\n        });\n      };\n    }\n\n    this.currRequestId = 0;\n\n    this.chunksNeededByRequest = {};\n    this.requestsByChunk = {};\n    this.callbacksByRequest = {};\n\n    this.loadedStream = new Promise();\n    if (args.initialData) {\n      this.setInitialData(args.initialData);\n    }\n  }\n\n  ChunkedStreamManager.prototype = {\n\n    setInitialData: function ChunkedStreamManager_setInitialData(data) {\n      this.stream.onReceiveInitialData(data);\n      if (this.stream.allChunksLoaded()) {\n        this.loadedStream.resolve(this.stream);\n      } else if (this.msgHandler) {\n        this.msgHandler.send('DocProgress', {\n          loaded: data.length,\n          total: this.length\n        });\n      }\n    },\n\n    onLoadedStream: function ChunkedStreamManager_getLoadedStream() {\n      return this.loadedStream;\n    },\n\n    // Get all the chunks that are not yet loaded and groups them into\n    // contiguous ranges to load in as few requests as possible\n    requestAllChunks: function ChunkedStreamManager_requestAllChunks() {\n      var missingChunks = this.stream.getMissingChunks();\n      this.requestChunks(missingChunks);\n      return this.loadedStream;\n    },\n\n    requestChunks: function ChunkedStreamManager_requestChunks(chunks,\n                                                               callback) {\n      var requestId = this.currRequestId++;\n\n      var chunksNeeded;\n      this.chunksNeededByRequest[requestId] = chunksNeeded = {};\n      for (var i = 0, ii = chunks.length; i < ii; i++) {\n        if (!this.stream.hasChunk(chunks[i])) {\n          chunksNeeded[chunks[i]] = true;\n        }\n      }\n\n      if (isEmptyObj(chunksNeeded)) {\n        if (callback) {\n          callback();\n        }\n        return;\n      }\n\n      this.callbacksByRequest[requestId] = callback;\n\n      var chunksToRequest = [];\n      for (var chunk in chunksNeeded) {\n        chunk = chunk | 0;\n        if (!(chunk in this.requestsByChunk)) {\n          this.requestsByChunk[chunk] = [];\n          chunksToRequest.push(chunk);\n        }\n        this.requestsByChunk[chunk].push(requestId);\n      }\n\n      if (!chunksToRequest.length) {\n        return;\n      }\n\n      var groupedChunksToRequest = this.groupChunks(chunksToRequest);\n\n      for (var i = 0; i < groupedChunksToRequest.length; ++i) {\n        var groupedChunk = groupedChunksToRequest[i];\n        var begin = groupedChunk.beginChunk * this.chunkSize;\n        var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n        this.sendRequest(begin, end);\n      }\n    },\n\n    getStream: function ChunkedStreamManager_getStream() {\n      return this.stream;\n    },\n\n    // Loads any chunks in the requested range that are not yet loaded\n    requestRange: function ChunkedStreamManager_requestRange(\n                      begin, end, callback) {\n\n      end = Math.min(end, this.length);\n\n      var beginChunk = this.getBeginChunk(begin);\n      var endChunk = this.getEndChunk(end);\n\n      var chunks = [];\n      for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n        chunks.push(chunk);\n      }\n\n      this.requestChunks(chunks, callback);\n    },\n\n    requestRanges: function ChunkedStreamManager_requestRanges(ranges,\n                                                               callback) {\n      ranges = ranges || [];\n      var chunksToRequest = [];\n\n      for (var i = 0; i < ranges.length; i++) {\n        var beginChunk = this.getBeginChunk(ranges[i].begin);\n        var endChunk = this.getEndChunk(ranges[i].end);\n        for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n          if (chunksToRequest.indexOf(chunk) < 0) {\n            chunksToRequest.push(chunk);\n          }\n        }\n      }\n\n      chunksToRequest.sort(function(a, b) { return a - b; });\n      this.requestChunks(chunksToRequest, callback);\n    },\n\n    // Groups a sorted array of chunks into as few continguous larger\n    // chunks as possible\n    groupChunks: function ChunkedStreamManager_groupChunks(chunks) {\n      var groupedChunks = [];\n      var beginChunk = -1;\n      var prevChunk = -1;\n      for (var i = 0; i < chunks.length; ++i) {\n        var chunk = chunks[i];\n\n        if (beginChunk < 0) {\n          beginChunk = chunk;\n        }\n\n        if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n          groupedChunks.push({\n            beginChunk: beginChunk, endChunk: prevChunk + 1});\n          beginChunk = chunk;\n        }\n        if (i + 1 === chunks.length) {\n          groupedChunks.push({\n            beginChunk: beginChunk, endChunk: chunk + 1});\n        }\n\n        prevChunk = chunk;\n      }\n      return groupedChunks;\n    },\n\n    onProgress: function ChunkedStreamManager_onProgress(args) {\n      var bytesLoaded = this.stream.numChunksLoaded * this.chunkSize +\n                        args.loaded;\n      this.msgHandler.send('DocProgress', {\n        loaded: bytesLoaded,\n        total: this.length\n      });\n    },\n\n    onReceiveData: function ChunkedStreamManager_onReceiveData(args) {\n      var chunk = args.chunk;\n      var begin = args.begin;\n      var end = begin + chunk.byteLength;\n\n      var beginChunk = this.getBeginChunk(begin);\n      var endChunk = this.getEndChunk(end);\n\n      this.stream.onReceiveData(begin, chunk);\n      if (this.stream.allChunksLoaded()) {\n        this.loadedStream.resolve(this.stream);\n      }\n\n      var loadedRequests = [];\n      for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n\n        // The server might return more chunks than requested\n        var requestIds = this.requestsByChunk[chunk] || [];\n        delete this.requestsByChunk[chunk];\n\n        for (var i = 0; i < requestIds.length; ++i) {\n          var requestId = requestIds[i];\n          var chunksNeeded = this.chunksNeededByRequest[requestId];\n          if (chunk in chunksNeeded) {\n            delete chunksNeeded[chunk];\n          }\n\n          if (!isEmptyObj(chunksNeeded)) {\n            continue;\n          }\n\n          loadedRequests.push(requestId);\n        }\n      }\n\n      // If there are no pending requests, automatically fetch the next\n      // unfetched chunk of the PDF\n      if (!this.disableAutoFetch && isEmptyObj(this.requestsByChunk)) {\n        var nextEmptyChunk;\n        if (this.stream.numChunksLoaded === 1) {\n          // This is a special optimization so that after fetching the first\n          // chunk, rather than fetching the second chunk, we fetch the last\n          // chunk.\n          var lastChunk = this.stream.numChunks - 1;\n          if (!this.stream.hasChunk(lastChunk)) {\n            nextEmptyChunk = lastChunk;\n          }\n        } else {\n          nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n        }\n        if (isInt(nextEmptyChunk)) {\n          this.requestChunks([nextEmptyChunk]);\n        }\n      }\n\n      for (var i = 0; i < loadedRequests.length; ++i) {\n        var requestId = loadedRequests[i];\n        var callback = this.callbacksByRequest[requestId];\n        delete this.callbacksByRequest[requestId];\n        if (callback) {\n          callback();\n        }\n      }\n\n      this.msgHandler.send('DocProgress', {\n        loaded: this.stream.numChunksLoaded * this.chunkSize,\n        total: this.length\n      });\n    },\n\n    getBeginChunk: function ChunkedStreamManager_getBeginChunk(begin) {\n      var chunk = Math.floor(begin / this.chunkSize);\n      return chunk;\n    },\n\n    getEndChunk: function ChunkedStreamManager_getEndChunk(end) {\n      if (end % this.chunkSize === 0) {\n        return end / this.chunkSize;\n      }\n\n      // 0 -> 0\n      // 1 -> 1\n      // 99 -> 1\n      // 100 -> 1\n      // 101 -> 2\n      var chunk = Math.floor((end - 1) / this.chunkSize) + 1;\n      return chunk;\n    }\n  };\n\n  return ChunkedStreamManager;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals NotImplementedException, MissingDataException, Promise, Stream,\n           PDFDocument, ChunkedStreamManager */\n\n'use strict';\n\n// TODO(mack): Make use of PDFJS.Util.inherit() when it becomes available\nvar BasePdfManager = (function BasePdfManagerClosure() {\n  function BasePdfManager() {\n    throw new Error('Cannot initialize BaseManagerManager');\n  }\n\n  BasePdfManager.prototype = {\n    onLoadedStream: function BasePdfManager_onLoadedStream() {\n      throw new NotImplementedException();\n    },\n\n    ensureModel: function BasePdfManager_ensureModel(prop, args) {\n      return this.ensure(this.pdfModel, prop, args);\n    },\n\n    ensureXRef: function BasePdfManager_ensureXRef(prop, args) {\n      return this.ensure(this.pdfModel.xref, prop, args);\n    },\n\n    ensureCatalog: function BasePdfManager_ensureCatalog(prop, args) {\n      return this.ensure(this.pdfModel.catalog, prop, args);\n    },\n\n    getPage: function BasePdfManager_pagePage(pageIndex) {\n      return this.pdfModel.getPage(pageIndex);\n    },\n\n    cleanup: function BasePdfManager_cleanup() {\n      return this.pdfModel.cleanup();\n    },\n\n    ensure: function BasePdfManager_ensure(obj, prop, args) {\n      return new NotImplementedException();\n    },\n\n    requestRange: function BasePdfManager_ensure(begin, end) {\n      return new NotImplementedException();\n    },\n\n    requestLoadedStream: function BasePdfManager_requestLoadedStream() {\n      return new NotImplementedException();\n    },\n\n    updatePassword: function BasePdfManager_updatePassword(password) {\n      this.pdfModel.xref.password = this.password = password;\n      if (this.passwordChangedPromise) {\n        this.passwordChangedPromise.resolve();\n      }\n    },\n\n    terminate: function BasePdfManager_terminate() {\n      return new NotImplementedException();\n    }\n  };\n\n  return BasePdfManager;\n})();\n\nvar LocalPdfManager = (function LocalPdfManagerClosure() {\n  function LocalPdfManager(data, password) {\n    var stream = new Stream(data);\n    this.pdfModel = new PDFDocument(this, stream, password);\n    this.loadedStream = new Promise();\n    this.loadedStream.resolve(stream);\n  }\n\n  LocalPdfManager.prototype = Object.create(BasePdfManager.prototype);\n  LocalPdfManager.prototype.constructor = LocalPdfManager;\n\n  LocalPdfManager.prototype.ensure =\n      function LocalPdfManager_ensure(obj, prop, args) {\n    var promise = new Promise();\n    try {\n      var value = obj[prop];\n      var result;\n      if (typeof(value) === 'function') {\n        result = value.apply(obj, args);\n      } else {\n        result = value;\n      }\n      promise.resolve(result);\n    } catch (e) {\n      console.log(e.stack);\n      promise.reject(e);\n    }\n    return promise;\n  };\n\n  LocalPdfManager.prototype.requestRange =\n      function LocalPdfManager_requestRange(begin, end) {\n    var promise = new Promise();\n    promise.resolve();\n    return promise;\n  };\n\n  LocalPdfManager.prototype.requestLoadedStream =\n      function LocalPdfManager_requestLoadedStream() {\n  };\n\n  LocalPdfManager.prototype.onLoadedStream =\n      function LocalPdfManager_getLoadedStream() {\n    return this.loadedStream;\n  };\n\n  LocalPdfManager.prototype.terminate =\n      function LocalPdfManager_terminate() {\n    return;\n  };\n\n  return LocalPdfManager;\n})();\n\nvar NetworkPdfManager = (function NetworkPdfManagerClosure() {\n\n  var CHUNK_SIZE = 65536;\n\n  function NetworkPdfManager(args, msgHandler) {\n\n    this.msgHandler = msgHandler;\n\n    var params = {\n      msgHandler: msgHandler,\n      httpHeaders: args.httpHeaders,\n      chunkedViewerLoading: args.chunkedViewerLoading,\n      disableAutoFetch: args.disableAutoFetch,\n      initialData: args.initialData\n    };\n    this.streamManager = new ChunkedStreamManager(args.length, CHUNK_SIZE,\n                                                  args.url, params);\n\n    this.pdfModel = new PDFDocument(this, this.streamManager.getStream(),\n                                    args.password);\n  }\n\n  NetworkPdfManager.prototype = Object.create(BasePdfManager.prototype);\n  NetworkPdfManager.prototype.constructor = NetworkPdfManager;\n\n  NetworkPdfManager.prototype.ensure =\n      function NetworkPdfManager_ensure(obj, prop, args) {\n    var promise = new Promise();\n    this.ensureHelper(promise, obj, prop, args);\n    return promise;\n  };\n\n  NetworkPdfManager.prototype.ensureHelper =\n      function NetworkPdfManager_ensureHelper(promise, obj, prop, args) {\n    try {\n      var result;\n      var value = obj[prop];\n      if (typeof(value) === 'function') {\n        result = value.apply(obj, args);\n      } else {\n        result = value;\n      }\n      promise.resolve(result);\n    } catch(e) {\n      if (!(e instanceof MissingDataException)) {\n        console.log(e.stack);\n        promise.reject(e);\n        return;\n      }\n\n      this.streamManager.requestRange(e.begin, e.end, function() {\n        this.ensureHelper(promise, obj, prop, args);\n      }.bind(this));\n    }\n  };\n\n  NetworkPdfManager.prototype.requestRange =\n      function NetworkPdfManager_requestRange(begin, end) {\n    var promise = new Promise();\n    this.streamManager.requestRange(begin, end, function() {\n      promise.resolve();\n    });\n    return promise;\n  };\n\n  NetworkPdfManager.prototype.requestLoadedStream =\n      function NetworkPdfManager_requestLoadedStream() {\n    this.streamManager.requestAllChunks();\n  };\n\n  NetworkPdfManager.prototype.onLoadedStream =\n      function NetworkPdfManager_getLoadedStream() {\n    return this.streamManager.onLoadedStream();\n  };\n\n  NetworkPdfManager.prototype.terminate =\n      function NetworkPdfManager_terminate() {\n    this.streamManager.networkManager.abortAllRequests();\n  };\n\n  return NetworkPdfManager;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals Util, isString, isInt, warn, error, isCmd, isEOF, isName, Lexer,\n           isStream */\n\n'use strict';\n\nvar CMAP_CODESPACES = {\n  'Adobe-CNS1-0': [[], [0, 14335]],\n  'Adobe-CNS1-1': [[], [0, 17407]],\n  'Adobe-CNS1-2': [[], [0, 17663]],\n  'Adobe-CNS1-3': [[], [0, 18943]],\n  'Adobe-CNS1-4': [[], [0, 19199]],\n  'Adobe-CNS1-5': [[], [0, 19199]],\n  'Adobe-CNS1-6': [[], [0, 19199]],\n  'Adobe-CNS1-UCS2': [[], [0, 65535]],\n  'B5-H': [[0, 128], [41280, 65278]],\n  'B5-V': [[0, 128], [41280, 65278]],\n  'B5pc-H': [[0, 128, 253, 255], [41280, 64766]],\n  'B5pc-V': [[0, 128, 253, 255], [41280, 64766]],\n  'CNS-EUC-H': [[0, 128], [41377, 65278], [],\n    [2392957345, 2392981246, 2393022881, 2393046782, 2393088417, 2393112318]],\n  'CNS-EUC-V': [[0, 128], [41377, 65278], [],\n    [2392957345, 2392981246, 2393022881, 2393046782, 2393088417, 2393112318]],\n  'CNS1-H': [[], [8481, 32382]],\n  'CNS1-V': [[], [8481, 32382]],\n  'CNS2-H': [[], [8481, 32382]],\n  'CNS2-V': [[], [8481, 32382]],\n  'ETen-B5-H': [[0, 128], [41280, 65278]],\n  'ETen-B5-V': [[0, 128], [41280, 65278]],\n  'ETenms-B5-H': [[0, 128], [41280, 65278]],\n  'ETenms-B5-V': [[0, 128], [41280, 65278]],\n  'ETHK-B5-H': [[0, 128], [34624, 65278]],\n  'ETHK-B5-V': [[0, 128], [34624, 65278]],\n  'HKdla-B5-H': [[0, 128], [41280, 65278]],\n  'HKdla-B5-V': [[0, 128], [41280, 65278]],\n  'HKdlb-B5-H': [[0, 128], [36416, 65278]],\n  'HKdlb-B5-V': [[0, 128], [36416, 65278]],\n  'HKgccs-B5-H': [[0, 128], [35392, 65278]],\n  'HKgccs-B5-V': [[0, 128], [35392, 65278]],\n  'HKm314-B5-H': [[0, 128], [41280, 65278]],\n  'HKm314-B5-V': [[0, 128], [41280, 65278]],\n  'HKm471-B5-H': [[0, 128], [41280, 65278]],\n  'HKm471-B5-V': [[0, 128], [41280, 65278]],\n  'HKscs-B5-H': [[0, 128], [34624, 65278]],\n  'HKscs-B5-V': [[0, 128], [34624, 65278]],\n  'UniCNS-UCS2-H': [[], [0, 55295, 57344, 65535]],\n  'UniCNS-UCS2-V': [[], [0, 55295, 57344, 65535]],\n  'UniCNS-UTF16-H': [[], [0, 55295, 57344, 65535], [],\n    [3623934976, 3690979327]],\n  'UniCNS-UTF16-V': [[], [0, 55295, 57344, 65535], [],\n    [3623934976, 3690979327]],\n  'Adobe-GB1-0': [[], [0, 7935]],\n  'Adobe-GB1-1': [[], [0, 9983]],\n  'Adobe-GB1-2': [[], [0, 22271]],\n  'Adobe-GB1-3': [[], [0, 22527]],\n  'Adobe-GB1-4': [[], [0, 29183]],\n  'Adobe-GB1-5': [[], [0, 30463]],\n  'Adobe-GB1-UCS2': [[], [0, 65535]],\n  'GB-EUC-H': [[0, 128], [41377, 65278]],\n  'GB-EUC-V': [[0, 128], [41377, 65278]],\n  'GB-H': [[], [8481, 32382]],\n  'GB-V': [[], [8481, 32382]],\n  'GBK-EUC-H': [[0, 128], [33088, 65278]],\n  'GBK-EUC-V': [[0, 128], [33088, 65278]],\n  'GBK2K-H': [[0, 127], [33088, 65278], [], [2167439664, 4265213497]],\n  'GBK2K-V': [[0, 127], [33088, 65278], [], [2167439664, 4265213497]],\n  'GBKp-EUC-H': [[0, 128], [33088, 65278]],\n  'GBKp-EUC-V': [[0, 128], [33088, 65278]],\n  'GBpc-EUC-H': [[0, 128, 253, 255], [41377, 64766]],\n  'GBpc-EUC-V': [[0, 128, 253, 255], [41377, 64766]],\n  'GBT-EUC-H': [[0, 128], [41377, 65278]],\n  'GBT-EUC-V': [[0, 128], [41377, 65278]],\n  'GBT-H': [[], [8481, 32382]],\n  'GBT-V': [[], [8481, 32382]],\n  'GBTpc-EUC-H': [[0, 128, 253, 255], [41377, 64766]],\n  'GBTpc-EUC-V': [[0, 128, 253, 255], [41377, 64766]],\n  'UniGB-UCS2-H': [[], [0, 55295, 57344, 65535]],\n  'UniGB-UCS2-V': [[], [0, 55295, 57344, 65535]],\n  'UniGB-UTF16-H': [[], [0, 55295, 57344, 65535], [], [3623934976, 3690979327]],\n  'UniGB-UTF16-V': [[], [0, 55295, 57344, 65535], [], [3623934976, 3690979327]],\n  '78-EUC-H': [[0, 128], [36512, 36575, 41377, 65278]],\n  '78-EUC-V': [[0, 128], [36512, 36575, 41377, 65278]],\n  '78-H': [[], [8481, 32382]],\n  '78-RKSJ-H': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  '78-RKSJ-V': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  '78-V': [[], [8481, 32382]],\n  '78ms-RKSJ-H': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  '78ms-RKSJ-V': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  '83pv-RKSJ-H': [[0, 128, 160, 223, 253, 255], [33088, 40956, 57408, 64764]],\n  '90ms-RKSJ-H': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  '90ms-RKSJ-V': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  '90msp-RKSJ-H': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  '90msp-RKSJ-V': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  '90pv-RKSJ-H': [[0, 128, 160, 223, 253, 255], [33088, 40956, 57408, 64764]],\n  '90pv-RKSJ-V': [[0, 128, 160, 223, 253, 255], [33088, 40956, 57408, 64764]],\n  'Add-H': [[], [8481, 32382]],\n  'Add-RKSJ-H': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  'Add-RKSJ-V': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  'Add-V': [[], [8481, 32382]],\n  'Adobe-Japan1-0': [[], [0, 8447]],\n  'Adobe-Japan1-1': [[], [0, 8447]],\n  'Adobe-Japan1-2': [[], [0, 8959]],\n  'Adobe-Japan1-3': [[], [0, 9471]],\n  'Adobe-Japan1-4': [[], [0, 15615]],\n  'Adobe-Japan1-5': [[], [0, 20479]],\n  'Adobe-Japan1-6': [[], [0, 23295]],\n  'Adobe-Japan1-UCS2': [[], [0, 65535]],\n  'Adobe-Japan2-0': [[], [0, 6143]],\n  'EUC-H': [[0, 128], [36512, 36575, 41377, 65278]],\n  'EUC-V': [[0, 128], [36512, 36575, 41377, 65278]],\n  'Ext-H': [[], [8481, 32382]],\n  'Ext-RKSJ-H': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  'Ext-RKSJ-V': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  'Ext-V': [[], [8481, 32382]],\n  'H': [[], [8481, 32382]],\n  'Hankaku': [[0, 255], []],\n  'Hiragana': [[0, 255], []],\n  'Hojo-EUC-H': [[], [], [9413025, 9436926], []],\n  'Hojo-EUC-V': [[], [], [9413025, 9436926], []],\n  'Hojo-H': [[], [8481, 32382]],\n  'Hojo-V': [[], [8481, 32382]],\n  'Katakana': [[0, 255], []],\n  'NWP-H': [[], [8481, 32382]],\n  'NWP-V': [[], [8481, 32382]],\n  'RKSJ-H': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  'RKSJ-V': [[0, 128, 160, 223], [33088, 40956, 57408, 64764]],\n  'Roman': [[0, 255], []],\n  'UniHojo-UCS2-H': [[], [0, 55295, 57344, 65535]],\n  'UniHojo-UCS2-V': [[], [0, 55295, 57344, 65535]],\n  'UniHojo-UTF16-H': [[], [0, 55295, 57344, 65535], [],\n    [3623934976, 3690979327]],\n  'UniHojo-UTF16-V': [[], [0, 55295, 57344, 65535], [],\n    [3623934976, 3690979327]],\n  'UniJIS-UCS2-H': [[], [0, 55295, 57344, 65535]],\n  'UniJIS-UCS2-HW-H': [[], [0, 55295, 57344, 65535]],\n  'UniJIS-UCS2-HW-V': [[], [0, 55295, 57344, 65535]],\n  'UniJIS-UCS2-V': [[], [0, 55295, 57344, 65535]],\n  'UniJIS-UTF16-H': [[], [0, 55295, 57344, 65535], [],\n    [3623934976, 3690979327]],\n  'UniJIS-UTF16-V': [[], [0, 55295, 57344, 65535], [],\n    [3623934976, 3690979327]],\n  'UniJISPro-UCS2-HW-V': [[], [0, 55295, 57344, 65535]],\n  'UniJISPro-UCS2-V': [[], [0, 55295, 57344, 65535]],\n  'V': [[], [8481, 32382]],\n  'WP-Symbol': [[0, 255], []],\n  'Adobe-Korea1-0': [[], [0, 9471]],\n  'Adobe-Korea1-1': [[], [0, 18175]],\n  'Adobe-Korea1-2': [[], [0, 18431]],\n  'Adobe-Korea1-UCS2': [[], [0, 65535]],\n  'KSC-EUC-H': [[0, 128], [41377, 65278]],\n  'KSC-EUC-V': [[0, 128], [41377, 65278]],\n  'KSC-H': [[], [8481, 32382]],\n  'KSC-Johab-H': [[0, 128], [33857, 54270, 55345, 57086, 57393, 63998]],\n  'KSC-Johab-V': [[0, 128], [33857, 54270, 55345, 57086, 57393, 63998]],\n  'KSC-V': [[], [8481, 32382]],\n  'KSCms-UHC-H': [[0, 128], [33089, 65278]],\n  'KSCms-UHC-HW-H': [[0, 128], [33089, 65278]],\n  'KSCms-UHC-HW-V': [[0, 128], [33089, 65278]],\n  'KSCms-UHC-V': [[0, 128], [33089, 65278]],\n  'KSCpc-EUC-H': [[0, 132, 254, 255], [41281, 65022]],\n  'KSCpc-EUC-V': [[0, 132, 254, 255], [41281, 65022]],\n  'UniKS-UCS2-H': [[], [0, 55295, 57344, 65535]],\n  'UniKS-UCS2-V': [[], [0, 55295, 57344, 65535]],\n  'UniKS-UTF16-H': [[], [0, 55295, 57344, 65535], [], [3623934976, 3690979327]],\n  'UniKS-UTF16-V': [[], [0, 55295, 57344, 65535], [], [3623934976, 3690979327]]\n};\n\n// CMap, not to be confused with TrueType's cmap.\nvar CMap = (function CMapClosure() {\n  function CMap() {\n    // Codespace ranges are stored as follows:\n    // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]]\n    // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...]\n    this.codespaceRanges = [[], [], [], []];\n    this.map = [];\n    this.vertical = false;\n  }\n  CMap.prototype = {\n    addCodespaceRange: function(n, low, high) {\n      this.codespaceRanges[n - 1].push(low, high);\n    },\n\n    mapRange: function(low, high, dstLow) {\n      var lastByte = dstLow.length - 1;\n      while (low <= high) {\n        this.map[low] = dstLow;\n        // Only the last byte has to be incremented.\n        dstLow = dstLow.substring(0, lastByte) +\n                 String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);\n        ++low;\n      }\n    },\n\n    mapRangeToArray: function(low, high, array) {\n      var i = 0;\n      while (low <= high) {\n        this.map[low] = array[i++];\n        ++low;\n      }\n    },\n\n    mapOne: function(src, dst) {\n      this.map[src] = dst;\n    },\n\n    lookup: function(code) {\n      return this.map[code];\n    },\n\n    readCharCode: function(str, offset) {\n      var c = 0;\n      var codespaceRanges = this.codespaceRanges;\n      var codespaceRangesLen = this.codespaceRanges.length;\n      // 9.7.6.2 CMap Mapping\n      // The code length is at most 4.\n      for (var n = 0; n < codespaceRangesLen; n++) {\n        c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0;\n        // Check each codespace range to see if it falls within.\n        var codespaceRange = codespaceRanges[n];\n        for (var k = 0, kk = codespaceRange.length; k < kk;) {\n          var low = codespaceRange[k++];\n          var high = codespaceRange[k++];\n          if (c >= low && c <= high) {\n            return [c, n + 1];\n          }\n        }\n      }\n\n      return [0, 1];\n    }\n\n  };\n  return CMap;\n})();\n\nvar IdentityCMap = (function IdentityCMapClosure() {\n  function IdentityCMap(vertical, n) {\n    CMap.call(this);\n    this.vertical = vertical;\n    this.addCodespaceRange(n, 0, 0xffff);\n    this.mapRange(0, 0xffff, '\\u0000');\n  }\n  Util.inherit(IdentityCMap, CMap, {});\n\n  return IdentityCMap;\n})();\n\nvar CMapFactory = (function CMapFactoryClosure() {\n  function strToInt(str) {\n    var a = 0;\n    for (var i = 0; i < str.length; i++) {\n      a = (a << 8) | str.charCodeAt(i);\n    }\n    return a >>> 0;\n  }\n\n  function expectString(obj) {\n    if (!isString(obj)) {\n      error('Malformed CMap: expected string.');\n    }\n  }\n\n  function expectInt(obj) {\n    if (!isInt(obj)) {\n      error('Malformed CMap: expected int.');\n    }\n  }\n\n  function parseBfChar(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, 'endbfchar')) {\n        return;\n      }\n      expectString(obj);\n      var src = strToInt(obj);\n      obj = lexer.getObj();\n      // TODO are /dstName used?\n      expectString(obj);\n      var dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseBfRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, 'endbfrange')) {\n        return;\n      }\n      expectString(obj);\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var high = strToInt(obj);\n      obj = lexer.getObj();\n      if (isInt(obj) || isString(obj)) {\n        var dstLow = isInt(obj) ? String.fromCharCode(obj) : obj;\n        cMap.mapRange(low, high, dstLow);\n      } else if (isCmd(obj, '[')) {\n        obj = lexer.getObj();\n        var array = [];\n        while (!isCmd(obj, ']') && !isEOF(obj)) {\n          array.push(obj);\n          obj = lexer.getObj();\n        }\n        cMap.mapRangeToArray(low, high, array);\n      } else {\n        break;\n      }\n    }\n    error('Invalid bf range.');\n  }\n\n  function parseCidChar(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, 'endcidchar')) {\n        return;\n      }\n      expectString(obj);\n      var src = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      var dst = String.fromCharCode(obj);\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseCidRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, 'endcidrange')) {\n        return;\n      }\n      expectString(obj);\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var high = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      var dstLow = String.fromCharCode(obj);\n      cMap.mapRange(low, high, dstLow);\n    }\n  }\n\n  function parseCodespaceRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, 'endcodespacerange')) {\n        return;\n      }\n      if (!isString(obj)) {\n        break;\n      }\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      if (!isString(obj)) {\n        break;\n      }\n      var high = strToInt(obj);\n      cMap.addCodespaceRange(obj.length, low, high);\n    }\n    error('Invalid codespace range.');\n  }\n\n  function parseCmap(cMap, lexer) {\n    objLoop: while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      } else if (isCmd(obj)) {\n        switch (obj.cmd) {\n          case 'endcMap':\n            break objLoop;\n          case 'usecMap':\n            // TODO\n            break;\n          case 'begincodespacerange':\n            parseCodespaceRange(cMap, lexer);\n            break;\n          case 'beginbfchar':\n            parseBfChar(cMap, lexer);\n            break;\n          case 'begincidchar':\n            parseCidChar(cMap, lexer);\n            break;\n          case 'beginbfrange':\n            parseBfRange(cMap, lexer);\n            break;\n          case 'begincidrange':\n            parseCidRange(cMap, lexer);\n            break;\n        }\n      }\n    }\n  }\n  return {\n    create: function (encoding) {\n      if (isName(encoding)) {\n        switch (encoding.name) {\n          case 'Identity-H':\n            return new IdentityCMap(false, 2);\n          case 'Identity-V':\n            return new IdentityCMap(true, 2);\n          default:\n            if (encoding.name in CMAP_CODESPACES) {\n              // XXX: Temporary hack so the correct amount of bytes are read in\n              // CMap.readCharCode.\n              var cMap = new CMap();\n              cMap.codespaceRanges = CMAP_CODESPACES[encoding.name];\n              return cMap;\n            }\n            return null;\n        }\n      } else if (isStream(encoding)) {\n        var cMap = new CMap();\n        var lexer = new Lexer(encoding);\n        try {\n          parseCmap(cMap, lexer);\n        } catch (e) {\n          warn('Invalid CMap data. ' + e);\n        }\n        return cMap;\n      }\n      error('Encoding required.');\n    }\n  };\n})();\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use strict';\n\nvar CIDToUnicodeMaps = {\n  'Adobe-Japan1': [[32, 160], {f: 12, c: 33}, [45, 8209], {f: 46, c: 46}, 165,\n    {f: 2, c: 93}, [95, 818], [96, 768], {f: 27, c: 97}, 166, 125, [732, 771],\n    [700, 8217], 92, [699, 8216], 124, [126, 8764], {f: 3, c: 161}, 8260, 402,\n    0, 164, 8220, 171, {f: 2, c: 8249}, {f: 2, c: 64257}, [8210, 8211], 0, 0,\n    [183, 8729], 0, 8226, 8218, 8222, 8221, 187, 0, 0, 191, {f: 2, c: 769},\n    [175, 772], {f: 3, c: 774}, 778, [184, 807], 779, 808, 780, [822, 8212],\n    198, 170, 321, 216, 338, 186, 230, 305, 322, 248, 339, 223, 173, 169, 172,\n    174, 0, 0, {f: 2, c: 178}, 181, 185, {f: 3, c: 188}, {f: 6, c: 192},\n    {f: 16, c: 199}, 0, {f: 6, c: 217}, {f: 6, c: 224}, {f: 16, c: 231}, 0,\n    {f: 7, c: 249}, 352, 376, 381, [773, 8254], 353, 8482, 382, 0, 8194,\n    {f: 59, c: 33}, 165, {f: 31, c: 93}, 65512, {f: 2, c: 125}, 0,\n    {f: 63, c: 65377}, {s: 243}, [8195, 12288],\n    {f: 2, c: 12289}, 65292, 65294, 12539, {f: 2, c: 65306}, 65311, 65281,\n    {f: 2, c: 12443}, 180, 65344, 168, 65342, 65507, 65343, {f: 2, c: 12541},\n    {f: 2, c: 12445}, 12291, 20189, {f: 3, c: 12293}, 12540, 8213, 8208, 65295,\n    65340, [12316, 65374], 8214, 65372, 8230, 8229, {s: 4}, {f: 2, c: 65288},\n    {f: 2, c: 12308}, 65339, 65341, 65371, 65373, {f: 10, c: 12296}, 65291,\n    [8722, 65293], 177, 215, 247, 65309, 8800, 65308, 65310, {f: 2, c: 8806},\n    8734, 8756, 9794, 9792, 176, {f: 2, c: 8242}, 8451, 65509, 65284,\n    {f: 2, c: 65504}, 65285, 65283, 65286, 65290, 65312, 167, 9734, 9733, 9675,\n    9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8251, 12306,\n    8594, {f: 2, c: 8592}, 8595, 12307, 8712, 8715, {f: 2, c: 8838},\n    {f: 2, c: 8834}, 8746, 8745, {f: 2, c: 8743}, 65506, 8658, 8660, 8704,\n    8707, 8736, 8869, 8978, 8706, 8711, 8801, 8786, {f: 2, c: 8810}, 8730,\n    8765, 8733, 8757, {f: 2, c: 8747}, 8491, 8240, 9839, 9837, 9834,\n    {f: 2, c: 8224}, 182, 9711, {f: 10, c: 65296}, {f: 26, c: 65313},\n    {f: 26, c: 65345}, {f: 83, c: 12353}, {f: 86, c: 12449}, {f: 17, c: 913},\n    {f: 7, c: 931}, {f: 17, c: 945}, {f: 7, c: 963}, {f: 6, c: 1040}, 1025,\n    {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, 20124, 21782, 23043, 38463,\n    21696, 24859, 25384, 23030, 36898, 33909, 33564, 31312, 24746, 25569,\n    28197, 26093, 33894, 33446, 39925, 26771, 22311, 26017, 25201, 23451,\n    22992, 34427, 39156, 32098, 32190, 39822, 25110, 31903, 34999, 23433,\n    24245, 25353, 26263, 26696, 38343, 38797, 26447, 20197, 20234, 20301,\n    20381, 20553, 22258, 22839, 22996, 23041, 23561, 24799, 24847, 24944,\n    26131, 26885, 28858, 30031, 30064, 31227, 32173, 32239, 32963, 33806,\n    [12176, 34915], 35586, 36949, 36986, 21307, 20117, 20133, 22495, 32946,\n    37057, 30959, [12032, 19968], 22769, 28322, 36920, 31282, 33576, 33419,\n    39983, 20801, 21360, 21693, 21729, 22240, 23035, 24341, 39154, 28139,\n    32996, 34093, 38498, 38512, 38560, 38907, 21515, 21491, 23431, 28879,\n    [12155, 32701], 36802, [12204, 38632], 21359, 40284, 31418, 19985, 30867,\n    [12165, 33276], 28198, 22040, 21764, 27421, 34074, 39995, 23013, 21417,\n    28006, [12128, 29916], 38287, 22082, 20113, 36939, 38642, 33615, 39180,\n    21473, 21942, 23344, 24433, 26144, 26355, 26628, 27704, 27891, 27945,\n    29787, 30408, 31310, 38964, 33521, 34907, 35424, 37613, 28082, 30123,\n    30410, 39365, 24742, 35585, 36234, 38322, 27022, 21421, 20870, 22290,\n    22576, 22852, 23476, 24310, 24616, 25513, 25588, 27839, 28436, 28814,\n    28948, 29017, 29141, 29503, 32257, 33398, 33489, 34199, 36960, 37467,\n    40219, 22633, 26044, 27738, 29989, 20985, 22830, 22885, 24448, 24540,\n    25276, 26106, 27178, 27431, 27572, 29579, 32705, 35158, 40236, 40206,\n    [12009, 40644], 23713, 27798, 33659, 20740, 23627, 25014, 33222, 26742,\n    29281, [12036, 20057], 20474, 21368, 24681, 28201, 31311, [12211, 38899],\n    19979, 21270, 20206, 20309, 20285, 20385, 20339, 21152, 21487, 22025,\n    22799, 23233, 23478, 23521, 31185, 26247, 26524, 26550, 27468, 27827,\n    [12117, 28779], 29634, 31117, [12146, 31166], 31292, 31623, 33457, 33499,\n    33540, 33655, 33775, 33747, 34662, 35506, 22057, 36008, 36838, 36942,\n    38686, 34442, 20420, 23784, 25105, [12123, 29273], 30011, 33253, 33469,\n    34558, 36032, 38597, 39187, 39381, 20171, 20250, 35299, 22238, 22602,\n    22730, 24315, 24555, 24618, 24724, 24674, 25040, 25106, 25296, 25913,\n    39745, 26214, 26800, 28023, 28784, 30028, 30342, 32117, 33445, 34809,\n    38283, 38542, [12185, 35997], 20977, 21182, 22806, 21683, 23475, 23830,\n    24936, 27010, 28079, 30861, 33995, 34903, 35442, 37799, 39608, 28012,\n    39336, 34521, 22435, 26623, 34510, 37390, 21123, 22151, 21508, 24275,\n    25313, 25785, 26684, 26680, 27579, 29554, 30906, 31339, 35226,\n    [12179, 35282], 36203, 36611, 37101, 38307, 38548, [12208, 38761], 23398,\n    23731, 27005, {f: 2, c: 38989}, 25499, 31520, 27179, 27263, 26806, 39949,\n    28511, 21106, 21917, 24688, 25324, 27963, 28167, 28369, 33883, 35088,\n    36676, 19988, 39993, 21494, 26907, 27194, 38788, 26666, 20828, 31427,\n    33970, 37340, 37772, 22107, 40232, 26658, 33541, 33841, 31909, 21000,\n    33477, [12129, 29926], 20094, 20355, 20896, 23506, 21002, 21208, 21223,\n    24059, 21914, 22570, 23014, 23436, 23448, 23515, [12082, 24178], 24185,\n    24739, 24863, 24931, 25022, 25563, 25954, 26577, 26707, 26874, 27454,\n    27475, 27735, 28450, 28567, 28485, 29872, [12130, 29976], 30435, 30475,\n    31487, 31649, 31777, 32233, [12152, 32566], 32752, 32925, 33382, 33694,\n    35251, 35532, 36011, 36996, 37969, 38291, 38289, 38306, 38501, 38867,\n    39208, 33304, 20024, 21547, 23736, 24012, 29609, 30284, 30524, 23721,\n    32747, 36107, 38593, 38929, 38996, 39000, 20225, 20238, 21361, 21916,\n    22120, 22522, 22855, 23305, 23492, 23696, 24076, 24190, 24524, 25582,\n    26426, 26071, 26082, 26399, 26827, 26820, 27231, 24112, 27589, 27671,\n    27773, 30079, 31048, 23395, 31232, 32000, 24509, 35215, 35352, 36020,\n    36215, 36556, 36637, 39138, 39438, [12004, 12225, 39740], [12018, 20096],\n    20605, 20736, 22931, 23452, 25135, 25216, 25836, 27450, 29344, 30097,\n    31047, 32681, 34811, 35516, 35696, 25516, 33738, 38816, 21513, 21507,\n    21931, 26708, 27224, 35440, 30759, 26485, [12233, 40653], 21364, 23458,\n    33050, 34384, 36870, 19992, 20037, 20167, 20241, 21450, 21560, 23470,\n    [12088, 24339], 24613, 25937, 26429, 27714, 27762, 27875, 28792, 29699,\n    31350, 31406, 31496, 32026, 31998, 32102, 26087, [12124, 29275], 21435,\n    23621, 24040, 25298, 25312, 25369, 28192, 34394, 35377, 36317, 37624,\n    28417, 31142, [12226, 39770], 20136, {f: 2, c: 20139}, 20379, 20384, 20689,\n    20807, 31478, 20849, 20982, 21332, 21281, 21375, 21483, 21932, 22659,\n    23777, 24375, 24394, 24623, 24656, 24685, 25375, 25945, 27211, 27841,\n    29378, 29421, 30703, 33016, 33029, 33288, 34126, 37111, 37857, 38911,\n    39255, 39514, 20208, 20957, 23597, 26241, 26989, 23616, 26354, 26997,\n    [12127, 29577], 26704, 31873, 20677, 21220, 22343, [12081, 24062], 37670,\n    [12100, 26020], 27427, 27453, 29748, 31105, 31165, 31563, 32202, 33465,\n    33740, 34943, 35167, 35641, 36817, [12198, 37329], 21535, 37504, 20061,\n    20534, 21477, 21306, 29399, 29590, 30697, 33510, 36527, 39366, 39368,\n    39378, 20855, 24858, 34398, 21936, 31354, 20598, 23507, 36935, 38533,\n    20018, 27355, 37351, 23633, 23624, 25496, 31391, 27795, 38772, 36705,\n    31402, 29066, 38536, 31874, 26647, 32368, 26705, 37740, 21234, 21531,\n    34219, 35347, 32676, 36557, 37089, 21350, 34952, 31041, 20418, 20670,\n    21009, 20804, 21843, 22317, 29674, 22411, 22865, 24418, 24452, 24693,\n    24950, 24935, 25001, 25522, 25658, 25964, 26223, 26690, 28179, 30054,\n    31293, 31995, 32076, 32153, 32331, 32619, 33550, 33610, 34509, 35336,\n    35427, 35686, 36605, 38938, 40335, 33464, 36814, 39912, 21127, 25119,\n    25731, 28608, 38553, 26689, 20625, [12107, 27424], 27770, 28500,\n    [12147, 31348], 32080, [12174, 34880], 35363, [12105, 26376], 20214, 20537,\n    20518, 20581, 20860, 21048, 21091, 21927, 22287, 22533, 23244, 24314,\n    25010, 25080, 25331, 25458, 26908, 27177, 29309, [12125, 29356], 29486,\n    30740, 30831, 32121, 30476, 32937, [12178, 35211], 35609, 36066, 36562,\n    36963, 37749, 38522, 38997, 39443, 40568, 20803, 21407, 21427, 24187,\n    24358, 28187, 28304, [12126, 29572], 29694, 32067, 33335, [12180, 35328],\n    35578, 38480, 20046, 20491, 21476, 21628, 22266, 22993, 23396,\n    [12080, 24049], 24235, 24359, [12094, 25144], 25925, 26543, 28246, 29392,\n    31946, 34996, 32929, 32993, 33776, [11969, 34382], 35463, 36328, 37431,\n    38599, 39015, [12238, 40723], 20116, 20114, 20237, 21320, 21577, 21566,\n    23087, 24460, 24481, 24735, 26791, 27278, 29786, 30849, 35486, 35492,\n    35703, 37264, 20062, 39881, 20132, 20348, 20399, 20505, 20502, 20809,\n    20844, 21151, 21177, 21246, 21402, [12061, 21475], 21521, 21518, 21897,\n    22353, 22434, 22909, 23380, 23389, 23439, [12079, 24037], 24039, 24055,\n    24184, 24195, 24218, 24247, 24344, 24658, 24908, 25239, 25304, 25511,\n    25915, 26114, 26179, 26356, 26477, 26657, 26775, 27083, 27743, 27946,\n    28009, 28207, 28317, 30002, 30343, 30828, 31295, 31968, 32005, 32024,\n    32094, 32177, 32789, 32771, 32943, 32945, 33108, 33167, 33322, 33618,\n    [12175, 34892], 34913, 35611, 36002, 36092, 37066, 37237, 37489, 30783,\n    37628, 38308, 38477, 38917, [12217, 39321], [12220, 39640], 40251, 21083,\n    21163, 21495, 21512, 22741, 25335, 28640, 35946, 36703, 40633, 20811,\n    21051, 21578, 22269, 31296, 37239, 40288, [12234, 40658], 29508, 28425,\n    33136, 29969, 24573, 24794, [12219, 39592], 29403, 36796, 27492, 38915,\n    20170, 22256, 22372, 22718, 23130, 24680, 25031, 26127, 26118, 26681,\n    26801, 28151, 30165, 32058, [12169, 33390], 39746, 20123, 20304, 21449,\n    21766, 23919, 24038, 24046, 26619, 27801, 29811, 30722, 35408, 37782,\n    35039, 22352, 24231, 25387, 20661, 20652, 20877, 26368, 21705, 22622,\n    22971, 23472, 24425, 25165, 25505, 26685, 27507, 28168, 28797, 37319,\n    29312, 30741, 30758, 31085, 25998, 32048, 33756, 35009, 36617, 38555,\n    21092, 22312, 26448, 32618, 36001, 20916, 22338, 38442, 22586, 27018,\n    32948, 21682, 23822, 22524, 30869, 40442, 20316, 21066, 21643, 25662,\n    26152, 26388, 26613, 31364, 31574, 32034, 37679, 26716, 39853, 31545,\n    21273, 20874, 21047, 23519, 25334, 25774, 25830, 26413, 27578, 34217,\n    38609, 30352, 39894, 25420, 37638, 39851, [12139, 30399], 26194, 19977,\n    20632, 21442, [12077, 23665], 24808, 25746, 25955, 26719, 29158, 29642,\n    29987, 31639, 32386, 34453, 35715, 36059, 37240, 39184, 26028, 26283,\n    27531, 20181, 20180, 20282, 20351, 21050, 21496, 21490, 21987, 22235,\n    [12064, 22763], 22987, 22985, 23039, [12070, 23376], 23629, 24066, 24107,\n    24535, 24605, 25351, [12096, 25903], 23388, 26031, 26045, 26088, 26525,\n    [12108, 27490], 27515, [12114, 27663], 29509, 31049, 31169, [12151, 31992],\n    32025, 32043, 32930, 33026, [12164, 33267], 35222, 35422, 35433, 35430,\n    35468, 35566, 36039, 36060, 38604, 39164, [12013, 27503], 20107, 20284,\n    20365, 20816, 23383, 23546, 24904, 25345, 26178, 27425, 28363, 27835,\n    29246, 29885, 30164, 30913, [12144, 31034], [12157, 32780], [12159, 32819],\n    [12163, 33258], 33940, 36766, 27728, [12229, 40575], 24335, 35672, 40235,\n    31482, 36600, 23437, 38635, 19971, 21489, 22519, 22833, 23241, 23460,\n    24713, 28287, 28422, 30142, 36074, 23455, 34048, 31712, 20594, 26612,\n    33437, 23649, 34122, 32286, 33294, 20889, 23556, 25448, 36198, 26012,\n    29038, 31038, 32023, 32773, 35613, [12190, 36554], 36974, 34503, 37034,\n    20511, 21242, 23610, 26451, 28796, 29237, 37196, 37320, 37675, 33509,\n    23490, 24369, 24825, 20027, 21462, 23432, [12095, 25163], 26417, 27530,\n    29417, 29664, 31278, 33131, 36259, 37202, [12216, 39318], 20754, 21463,\n    21610, 23551, 25480, 27193, 32172, 38656, 22234, 21454, 21608, 23447,\n    23601, 24030, 20462, 24833, 25342, 27954, 31168, 31179, 32066, 32333,\n    32722, 33261, [12168, 33311], 33936, 34886, 35186, 35728, 36468, 36655,\n    36913, 37195, 37228, 38598, 37276, 20160, 20303, 20805, [12055, 21313],\n    24467, 25102, 26580, 27713, 28171, 29539, 32294, 37325, 37507, 21460,\n    22809, 23487, 28113, 31069, 32302, 31899, 22654, 29087, 20986, 34899,\n    36848, 20426, 23803, 26149, 30636, 31459, 33308, 39423, 20934, 24490,\n    26092, 26991, 27529, 28147, 28310, 28516, 30462, 32020, 24033, 36981,\n    37255, 38918, 20966, 21021, 25152, 26257, 26329, 28186, 24246, 32210,\n    32626, 26360, 34223, 34295, 35576, 21161, 21465, [12069, 22899], 24207,\n    24464, 24661, 37604, 38500, 20663, 20767, 21213, 21280, 21319, 21484,\n    21736, 21830, 21809, 22039, 22888, 22974, 23100, 23477, 23558,\n    [12073, 23567], 23569, 23578, 24196, 24202, 24288, 24432, 25215, 25220,\n    25307, 25484, 25463, 26119, 26124, 26157, 26230, 26494, 26786, 27167,\n    27189, 27836, 28040, 28169, 28248, 28988, 28966, 29031, 30151, 30465,\n    30813, 30977, 31077, 31216, 31456, 31505, 31911, 32057, 32918, 33750,\n    33931, 34121, 34909, 35059, 35359, 35388, 35412, 35443, 35937, 36062,\n    37284, 37478, 37758, 37912, 38556, 38808, 19978, 19976, 19998, 20055,\n    20887, 21104, 22478, 22580, 22732, 23330, 24120, 24773, 25854, 26465,\n    26454, 27972, 29366, 30067, 31331, 33976, 35698, 37304, 37664, 22065,\n    22516, 39166, 25325, 26893, 27542, 29165, 32340, 32887, [12170, 33394],\n    35302, [12215, 39135], 34645, 36785, 23611, 20280, 20449, 20405, 21767,\n    23072, 23517, 23529, [12092, 24515], 24910, 25391, 26032, 26187, 26862,\n    27035, 28024, 28145, 30003, 30137, 30495, 31070, 31206, 32051,\n    [12162, 33251], 33455, 34218, 35242, 35386, [12189, 36523], [12191, 36763],\n    36914, 37341, 38663, [12040, 20154], 20161, 20995, 22645, 22764, 23563,\n    29978, 23613, 33102, 35338, 36805, 38499, 38765, 31525, 35535, 38920,\n    37218, 22259, 21416, 36887, 21561, 22402, 24101, 25512, [12116, 27700],\n    28810, 30561, 31883, 32736, 34928, 36930, 37204, 37648, 37656, 38543,\n    29790, 39620, 23815, 23913, 25968, 26530, 36264, 38619, 25454, 26441,\n    26905, 33733, 38935, 38592, 35070, 28548, 25722, [12072, 23544], 19990,\n    28716, 30045, 26159, 20932, 21046, 21218, 22995, 24449, 24615, 25104,\n    25919, 25972, 26143, 26228, 26866, 26646, 27491, 28165, 29298,\n    [12131, 29983], 30427, 31934, 32854, 22768, 35069, [11972, 35199], 35488,\n    35475, 35531, 36893, 37266, [11992, 38738], 38745, [12011, 25993], 31246,\n    33030, 38587, 24109, 24796, 25114, 26021, 26132, 26512, [12143, 30707],\n    31309, 31821, 32318, 33034, 36012, [12186, 36196], 36321, 36447, 30889,\n    20999, 25305, 25509, 25666, 25240, 35373, 31363, 31680, 35500, 38634,\n    32118, [12166, 33292], 34633, 20185, 20808, 21315, 21344, 23459, 23554,\n    23574, 24029, 25126, 25159, 25776, 26643, 26676, 27849, 27973, 27927,\n    26579, 28508, 29006, 29053, 26059, 31359, 31661, 32218, 32330, 32680,\n    33146, [12167, 33307], 33337, 34214, 35438, 36046, 36341, 36984, 36983,\n    37549, 37521, 38275, 39854, 21069, 21892, 28472, 28982, 20840, 31109,\n    32341, 33203, 31950, 22092, 22609, 23720, 25514, 26366, 26365, 26970,\n    29401, 30095, 30094, 30990, 31062, 31199, 31895, 32032, 32068, 34311,\n    35380, 38459, 36961, [12239, 40736], 20711, 21109, 21452, 21474, 20489,\n    21930, 22766, 22863, 29245, 23435, 23652, 21277, 24803, 24819, 25436,\n    25475, 25407, 25531, 25805, 26089, 26361, 24035, 27085, 27133, 28437,\n    29157, 20105, 30185, 30456, 31379, 31967, 32207, 32156, 32865, 33609,\n    33624, 33900, 33980, 34299, 35013, [12187, 36208], 36865, 36973, 37783,\n    38684, 39442, 20687, 22679, 24974, 33235, 34101, 36104, 36896, 20419,\n    20596, 21063, 21363, 24687, 25417, 26463, 28204, [12188, 36275], 36895,\n    20439, 23646, 36042, 26063, 32154, 21330, 34966, 20854, 25539, 23384,\n    23403, 23562, 25613, 26449, 36956, 20182, 22810, 22826, 27760, 35409,\n    21822, 22549, 22949, 24816, 25171, 26561, 33333, 26965, 38464, 39364,\n    39464, 20307, 22534, 23550, 32784, 23729, 24111, 24453, 24608, 24907,\n    25140, 26367, 27888, 28382, 32974, 33151, 33492, 34955, 36024, 36864,\n    36910, 38538, 40667, 39899, 20195, 21488, [12068, 22823], 31532, 37261,\n    38988, 40441, 28381, 28711, 21331, 21828, 23429, 25176, 25246, 25299,\n    27810, 28655, 29730, 35351, 37944, 28609, 35582, 33592, 20967, 34552,\n    21482, 21481, 20294, 36948, [12192, 36784], 22890, 33073, 24061, 31466,\n    36799, 26842, [12181, 35895], 29432, 40008, 27197, 35504, 20025, 21336,\n    22022, 22374, 25285, 25506, 26086, 27470, 28129, 28251, 28845, 30701,\n    31471, 31658, 32187, 32829, 32966, 34507, 35477, 37723, 22243, 22727,\n    24382, 26029, 26262, 27264, 27573, 30007, 35527, 20516, 30693, 22320,\n    24347, 24677, 26234, 27744, 30196, 31258, 32622, 33268, 34584, 36933,\n    39347, 31689, 30044, [12149, 31481], 31569, 33988, 36880, 31209, 31378,\n    33590, 23265, 30528, 20013, 20210, 23449, 24544, 25277, 26172, 26609,\n    27880, [12173, 34411], 34935, 35387, 37198, 37619, 39376, 27159, 28710,\n    29482, 33511, 33879, 36015, 19969, 20806, 20939, 21899, 23541, 24086,\n    24115, 24193, 24340, 24373, 24427, 24500, 25074, 25361, 26274, 26397,\n    28526, 29266, 30010, 30522, 32884, 33081, 33144, 34678, 35519, 35548,\n    36229, 36339, 37530, [11985, 12199, 38263], 38914, [12227, 40165], 21189,\n    25431, 30452, 26389, 27784, 29645, 36035, 37806, 38515, 27941, 22684,\n    26894, 27084, 36861, 37786, 30171, 36890, 22618, 26626, 25524, 27131,\n    20291, 28460, 26584, 36795, 34086, 32180, 37716, 26943, 28528, 22378,\n    22775, 23340, 32044, [12118, 29226], 21514, 37347, 40372, 20141, 20302,\n    20572, 20597, 21059, 35998, 21576, 22564, 23450, 24093, 24213, 24237,\n    24311, 24351, 24716, 25269, 25402, 25552, 26799, 27712, 30855, 31118,\n    31243, 32224, 33351, 35330, 35558, 36420, 36883, 37048, 37165, 37336,\n    [12237, 40718], 27877, 25688, 25826, 25973, 28404, 30340, 31515, 36969,\n    37841, 28346, 21746, 24505, 25764, 36685, 36845, 37444, 20856, 22635,\n    22825, 23637, 24215, 28155, 32399, 29980, 36028, 36578, 39003, 28857,\n    20253, 27583, 28593, [12133, 30000], 38651, 20814, 21520, 22581, 22615,\n    22956, 23648, 24466, [12099, 26007], 26460, 28193, 30331, 33759, 36077,\n    36884, 37117, 37709, 30757, 30778, 21162, 24230, [12063, 22303], 22900,\n    24594, 20498, 20826, 20908, 20941, [12049, 20992], 21776, 22612, 22616,\n    22871, 23445, 23798, 23947, 24764, 25237, 25645, 26481, 26691, 26812,\n    26847, 30423, 28120, 28271, 28059, 28783, 29128, 24403, 30168, 31095,\n    31561, 31572, 31570, 31958, 32113, 21040, 33891, 34153, 34276, 35342,\n    35588, [12182, 35910], 36367, 36867, 36879, 37913, 38518, 38957, 39472,\n    38360, 20685, 21205, 21516, 22530, 23566, 24999, 25758, 27934, 30643,\n    31461, 33012, 33796, 36947, 37509, 23776, 40199, 21311, 24471, 24499,\n    28060, 29305, 30563, 31167, 31716, 27602, 29420, 35501, 26627, 27233,\n    20984, 31361, 26932, 23626, 40182, 33515, 23493, [12195, 37193], 28702,\n    22136, 23663, 24775, 25958, 27788, 35930, 36929, 38931, 21585, 26311,\n    37389, 22856, 37027, 20869, 20045, 20970, 34201, 35598, 28760, 25466,\n    37707, 26978, 39348, 32260, 30071, 21335, 26976, 36575, 38627, 27741,\n    [12038, 20108], 23612, 24336, 36841, 21250, 36049, [12161, 32905], 34425,\n    24319, [12103, 26085], 20083, [12042, 20837], 22914, 23615, 38894, 20219,\n    22922, 24525, 35469, 28641, 31152, 31074, 23527, 33905, 29483, 29105,\n    24180, 24565, 25467, 25754, 29123, 31896, 20035, 24316, 20043, 22492,\n    22178, 24745, 28611, 32013, 33021, 33075, 33215, 36786, 35223, 34468,\n    24052, 25226, 25773, 35207, 26487, 27874, 27966, 29750, 30772, 23110,\n    32629, 33453, [12218, 39340], 20467, 24259, 25309, 25490, 25943, 26479,\n    30403, 29260, 32972, 32954, 36649, 37197, 20493, 22521, 23186, 26757,\n    26995, 29028, 29437, 36023, 22770, 36064, 38506, 36889, 34687, 31204,\n    30695, 33833, 20271, 21093, 21338, 25293, 26575, 27850, [12137, 30333],\n    31636, 31893, 33334, 34180, 36843, 26333, 28448, 29190, 32283, 33707,\n    39361, [12008, 40614], 20989, 31665, 30834, 31672, 32903, 31560, 27368,\n    24161, 32908, 30033, 30048, [12043, 20843], 37474, 28300, 30330, 37271,\n    39658, 20240, 32624, 25244, 31567, 38309, 40169, 22138, 22617, 34532,\n    38588, 20276, 21028, 21322, 21453, 21467, 24070, 25644, 26001, 26495,\n    27710, 27726, 29256, 29359, 29677, 30036, 32321, 33324, 34281, 36009,\n    31684, [12196, 37318], 29033, 38930, 39151, 25405, 26217, 30058, 30436,\n    30928, 34115, 34542, 21290, 21329, 21542, 22915, 24199, 24444, 24754,\n    25161, 25209, 25259, 26000, [12112, 27604], 27852, 30130, [12138, 30382],\n    30865, 31192, 32203, 32631, 32933, 34987, 35513, 36027, 36991,\n    [12206, 38750], [12214, 39131], 27147, 31800, 20633, 23614, 24494, 26503,\n    27608, 29749, 30473, 32654, [12240, 40763], 26570, 31255, 21305,\n    [12134, 30091], 39661, 24422, 33181, 33777, 32920, 24380, 24517, 30050,\n    31558, 36924, 26727, 23019, 23195, 32016, 30334, 35628, 20469, 24426,\n    27161, 27703, 28418, 29922, 31080, 34920, 35413, 35961, 24287, 25551,\n    30149, 31186, 33495, 37672, 37618, 33948, 34541, 39981, 21697, 24428,\n    25996, 27996, 28693, 36007, 36051, 38971, 25935, 29942, 19981, 20184,\n    22496, 22827, 23142, 23500, 20904, 24067, 24220, 24598, 25206, 25975,\n    26023, 26222, 28014, [12119, 29238], 31526, 33104, 33178, 33433, 35676,\n    36000, 36070, 36212, [12201, 38428], 38468, 20398, 25771, 27494, 33310,\n    33889, 34154, 37096, 23553, 26963, [12213, 39080], 33914, 34135, 20239,\n    21103, 24489, 24133, 26381, 31119, 33145, 35079, 35206, 28149, 24343,\n    25173, 27832, 20175, 29289, 39826, 20998, 21563, 22132, 22707, 24996,\n    25198, 28954, 22894, 31881, 31966, 32027, 38640, [12098, 25991], 32862,\n    19993, 20341, 20853, 22592, 24163, 24179, 24330, 26564, 20006, 34109,\n    38281, 38491, [12150, 31859], [12212, 38913], 20731, 22721, 30294, 30887,\n    21029, 30629, 34065, 31622, 20559, 22793, [12122, 29255], 31687, 32232,\n    36794, 36820, 36941, 20415, 21193, 23081, 24321, 38829, 20445, 33303,\n    37610, 22275, 25429, 27497, 29995, 35036, 36628, 31298, 21215, 22675,\n    24917, 25098, 26286, [11935, 27597], 31807, 33769, 20515, 20472, 21253,\n    21574, 22577, 22857, 23453, 23792, 23791, 23849, 24214, 25265, 25447,\n    25918, [12101, 26041], 26379, 27861, 27873, 28921, 30770, 32299, 32990,\n    33459, 33804, 34028, 34562, 35090, 35370, 35914, 37030, 37586, 39165,\n    40179, 40300, 20047, 20129, 20621, 21078, 22346, 22952, 24125,\n    {f: 2, c: 24536}, 25151, 26292, 26395, 26576, 26834, 20882, 32033, 32938,\n    33192, 35584, 35980, 36031, 37502, 38450, 21536, 38956, 21271, 20693,\n    [12056, 21340], 22696, 25778, 26420, 29287, 30566, 31302, 37350, 21187,\n    27809, 27526, 22528, 24140, 22868, 26412, 32763, 20961, 30406, 25705,\n    30952, 39764, [12231, 40635], 22475, 22969, 26151, 26522, 27598, 21737,\n    27097, 24149, 33180, 26517, 39850, 26622, 40018, 26717, 20134, 20451,\n    [12060, 21448], 25273, 26411, 27819, 36804, 20397, 32365, 40639, 19975,\n    24930, 28288, 28459, 34067, 21619, 26410, 39749, [11922, 24051], 31637,\n    23724, 23494, 34588, 28234, 34001, 31252, 33032, 22937, 31885,\n    [11936, 27665], 30496, 21209, 22818, 28961, 29279, [12141, 30683], 38695,\n    40289, 26891, 23167, 23064, 20901, 21517, 21629, 26126, 30431, 36855,\n    37528, 40180, 23018, 29277, 28357, 20813, 26825, 32191, 32236,\n    [12207, 38754], 40634, 25720, 27169, 33538, 22916, 23391, [12113, 27611],\n    29467, 30450, 32178, 32791, 33945, 20786, [12106, 26408], 40665,\n    [12140, 30446], 26466, 21247, 39173, 23588, 25147, 31870, 36016, 21839,\n    24758, 32011, [12200, 38272], 21249, 20063, 20918, 22812, 29242, 32822,\n    37326, 24357, [12142, 30690], 21380, 24441, 32004, 34220, 35379, 36493,\n    38742, 26611, 34222, 37971, 24841, 24840, 27833, 30290, 35565, 36664,\n    21807, 20305, 20778, 21191, 21451, 23461, 24189, 24736, 24962, 25558,\n    26377, 26586, 28263, 28044, {f: 2, c: 29494}, 30001, 31056, 35029, 35480,\n    36938, [12194, 37009], 37109, 38596, 34701, [12067, 22805], 20104, 20313,\n    19982, 35465, 36671, 38928, 20653, 24188, 22934, 23481, 24248, 25562,\n    25594, 25793, 26332, 26954, 27096, 27915, 28342, 29076, [12132, 29992],\n    31407, [12154, 32650], 32768, 33865, 33993, 35201, 35617, 36362, 36965,\n    38525, 39178, 24958, 25233, 27442, 27779, 28020, 32716, 32764, 28096,\n    32645, 34746, 35064, 26469, 33713, 38972, 38647, 27931, 32097, 33853,\n    37226, 20081, 21365, 23888, 27396, 28651, 34253, 34349, 35239, 21033,\n    21519, 23653, 26446, 26792, 29702, 29827, 30178, 35023, 35041,\n    [12197, 37324], 38626, 38520, 24459, 29575, [12148, 31435], 33870, 25504,\n    30053, 21129, 27969, 28316, 29705, 30041, 30827, 31890, 38534,\n    [12015, 31452], [12243, 40845], 20406, 24942, 26053, 34396, 20102, 20142,\n    20698, 20001, 20940, 23534, 26009, 26753, 28092, 29471, 30274, 30637,\n    31260, 31975, 33391, 35538, 36988, 37327, 38517, 38936, [12050, 21147],\n    32209, 20523, 21400, 26519, 28107, 29136, 29747, 33256, 36650, 38563,\n    40023, 40607, 29792, 22593, 28057, 32047, 39006, 20196, 20278, 20363,\n    20919, 21169, 23994, 24604, 29618, 31036, 33491, 37428, 38583, 38646,\n    38666, 40599, 40802, 26278, 27508, 21015, 21155, 28872, 35010, 24265,\n    24651, 24976, 28451, 29001, 31806, 32244, 32879, 34030, 36899, 37676,\n    21570, 39791, 27347, 28809, 36034, 36335, 38706, 21172, 23105, 24266,\n    24324, 26391, 27004, 27028, 28010, 28431, 29282, 29436, 31725,\n    [12156, 32769], 32894, 34635, 37070, 20845, 40595, 31108, 32907, 37682,\n    35542, 20525, 21644, 35441, 27498, 36036, 33031, 24785, 26528, 40434,\n    20121, 20120, 39952, 35435, 34241, 34152, 26880, 28286, 30871, 33109,\n    24332, 19984, 19989, 20010, 20017, [12034, 20022], 20028, [12035, 20031],\n    20034, 20054, 20056, 20098, [12037, 20101], 35947, 20106, 33298, 24333,\n    20110, {f: 2, c: 20126}, [12039, 20128], 20130, 20144, 20147, 20150, 20174,\n    20173, 20164, 20166, 20162, 20183, 20190, 20205, 20191, 20215, 20233,\n    20314, 20272, 20315, 20317, 20311, 20295, 20342, 20360, 20367, 20376,\n    20347, 20329, 20336, 20369, 20335, 20358, 20374, 20760, 20436, 20447,\n    20430, 20440, 20443, 20433, 20442, 20432, {f: 2, c: 20452}, 20506, 20520,\n    20500, 20522, 20517, 20485, 20252, 20470, 20513, 20521, 20524, 20478,\n    20463, 20497, 20486, 20547, 20551, 26371, 20565, 20560, 20552, 20570,\n    20566, 20588, 20600, 20608, 20634, 20613, 20660, 20658, {f: 2, c: 20681},\n    20659, 20674, 20694, 20702, 20709, 20717, 20707, 20718, 20729, 20725,\n    20745, {f: 2, c: 20737}, 20758, 20757, 20756, 20762, 20769, 20794, 20791,\n    20796, 20795, [12041, 20799], [11918, 20800], 20818, 20812, 20820, 20834,\n    31480, {f: 2, c: 20841}, 20846, 20864, [12044, 20866], 22232, 20876, 20873,\n    20879, 20881, 20883, 20885, [12045, 20886], 20900, 20902, 20898,\n    {f: 2, c: 20905}, [12046, 20907], 20915, {f: 2, c: 20913}, 20912, 20917,\n    20925, 20933, 20937, 20955, [12047, 20960], 34389, 20969, 20973, 20976,\n    [12048, 20981], 20990, 20996, 21003, 21012, 21006, 21031, 21034, 21038,\n    21043, 21049, 21071, 21060, {f: 2, c: 21067}, 21086, 21076, 21098, 21108,\n    21097, 21107, 21119, 21117, 21133, 21140, 21138, 21105, 21128, 21137,\n    36776, 36775, {f: 2, c: 21164}, 21180, 21173, 21185, 21197, 21207, 21214,\n    21219, 21222, 39149, 21216, 21235, 21237, 21240, [12051, 21241], 21254,\n    21256, 30008, 21261, 21264, 21263, [12052, 21269], [12053, 21274], 21283,\n    21295, 21297, 21299, [12054, 21304], 21312, 21318, 21317, 19991, 21321,\n    21325, 20950, 21342, [12057, 21353], 21358, 22808, 21371, 21367,\n    [12058, 21378], 21398, 21408, 21414, 21413, 21422, 21424, [12059, 21430],\n    21443, 31762, 38617, 21471, 26364, 29166, 21486, 21480, 21485, 21498,\n    21505, 21565, 21568, {f: 2, c: 21548}, 21564, 21550, 21558, 21545, 21533,\n    21582, 21647, 21621, 21646, 21599, 21617, 21623, 21616, 21650, 21627,\n    21632, 21622, 21636, 21648, 21638, 21703, 21666, 21688, 21669, 21676,\n    21700, 21704, 21672, 21675, 21698, 21668, 21694, 21692, 21720,\n    {f: 2, c: 21733}, 21775, 21780, 21757, 21742, 21741, 21754, 21730, 21817,\n    21824, 21859, 21836, 21806, 21852, 21829, {f: 2, c: 21846}, 21816, 21811,\n    21853, 21913, 21888, 21679, 21898, 21919, 21883, 21886, 21912, 21918,\n    21934, 21884, 21891, 21929, 21895, 21928, 21978, 21957, 21983, 21956,\n    21980, 21988, 21972, 22036, 22007, 22038, 22014, 22013, 22043, 22009,\n    22094, 22096, 29151, 22068, 22070, 22066, 22072, 22123, 22116, 22063,\n    22124, 22122, 22150, 22144, 22154, 22176, 22164, 22159, 22181, 22190,\n    22198, 22196, 22210, 22204, 22209, 22211, 22208, 22216, 22222, 22225,\n    22227, [12062, 22231], 22254, 22265, 22272, 22271, 22276, 22281, 22280,\n    22283, 22285, 22291, 22296, 22294, 21959, 22300, 22310, {f: 2, c: 22327},\n    22350, 22331, 22336, 22351, 22377, 22464, 22408, 22369, 22399, 22409,\n    22419, 22432, 22451, 22436, 22442, 22448, 22467, 22470, 22484,\n    {f: 2, c: 22482}, 22538, 22486, 22499, 22539, 22553, 22557, 22642, 22561,\n    22626, 22603, 22640, 27584, 22610, 22589, 22649, 22661, 22713, 22687,\n    22699, 22714, 22750, 22715, 22712, 22702, 22725, 22739, 22737, 22743,\n    22745, 22744, 22757, 22748, 22756, 22751, 22767, 22778, 22777,\n    {f: 3, c: 22779}, [12065, 22786], [12066, 22794], 22800, 22811, 26790,\n    22821, {f: 2, c: 22828}, 22834, 22840, 22846, 31442, 22869, 22864, 22862,\n    22874, 22872, 22882, 22880, 22887, 22892, 22889, 22904, 22913, 22941,\n    20318, 20395, 22947, 22962, 22982, 23016, 23004, 22925, {f: 2, c: 23001},\n    23077, 23071, 23057, 23068, 23049, 23066, 23104, 23148, 23113,\n    {f: 2, c: 23093}, 23138, 23146, 23194, 23228, 23230, 23243, 23234, 23229,\n    23267, 23255, 23270, 23273, 23254, {f: 2, c: 23290}, 23308, 23307, 23318,\n    23346, 23248, 23338, 23350, 23358, 23363, 23365, 23360, 23377, 23381,\n    {f: 2, c: 23386}, 23397, 23401, 23408, 23411, 23413, 23416, 25992, 23418,\n    [12071, 23424], 23427, 23462, 23480, 23491, 23495, 23497, 23508, 23504,\n    23524, 23526, 23522, 23518, 23525, 23531, 23536, 23542, 23539, 23557,\n    {f: 2, c: 23559}, 23565, 23571, 23584, [11920, 12074, 23586], 23592,\n    [12075, 23608], 23609, 23617, 23622, 23630, 23635, 23632, 23631, 23409,\n    23660, [12076, 23662], 20066, 23670, 23673, 23692, 23697, 23700, 22939,\n    23723, 23739, 23734, 23740, 23735, 23749, 23742, 23751, 23769, 23785,\n    23805, 23802, 23789, 23948, 23786, 23819, 23829, 23831, 23900, 23839,\n    23835, 23825, 23828, 23842, 23834, 23833, 23832, 23884, 23890, 23886,\n    23883, 23916, 23923, 23926, 23943, 23940, 23938, 23970, 23965, 23980,\n    23982, 23997, 23952, 23991, 23996, 24009, 24013, 24019, 24018, 24022,\n    [12078, 24027], 24043, 24050, 24053, 24075, 24090, 24089, 24081, 24091,\n    {f: 2, c: 24118}, 24132, 24131, 24128, 24142, 24151, 24148, 24159, 24162,\n    24164, 24135, {f: 2, c: 24181}, [11923, 12083, 24186], 40636,\n    [12084, 24191], 24224, {f: 2, c: 24257}, 24264, 24272, 24271, 24278, 24291,\n    24285, {f: 2, c: 24282}, 24290, 24289, {f: 2, c: 24296}, 24300, 24305,\n    24307, 24304, [12085, 24308], 24312, [12086, 24318], 24323, 24329, 24413,\n    24412, [12087, 24331], 24337, 24342, 24361, 24365, 24376, 24385, 24392,\n    24396, 24398, 24367, [11924, 24401], {f: 2, c: 24406}, 24409,\n    [12090, 24417], 24429, [12091, 24435], 24439, 24451, 24450, 24447, 24458,\n    24456, 24465, 24455, 24478, 24473, 24472, 24480, 24488, 24493, 24508,\n    24534, 24571, 24548, 24568, 24561, 24541, 24755, 24575, 24609, 24672,\n    24601, 24592, 24617, 24590, 24625, 24603, 24597, 24619, 24614, 24591,\n    24634, 24666, 24641, 24682, 24695, 24671, 24650, 24646, 24653, 24675,\n    24643, 24676, 24642, 24684, 24683, 24665, 24705, 24717, 24807, 24707,\n    24730, 24708, 24731, {f: 2, c: 24726}, 24722, 24743, 24715, 24801, 24760,\n    24800, 24787, 24756, 24560, 24765, 24774, 24757, 24792, 24909, 24853,\n    24838, {f: 2, c: 24822}, 24832, 24820, 24826, 24835, 24865, 24827, 24817,\n    {f: 2, c: 24845}, 24903, 24894, 24872, 24871, 24906, 24895, 24892, 24876,\n    24884, 24893, 24898, 24900, 24947, 24951, {f: 3, c: 24920}, 24939, 24948,\n    24943, 24933, 24945, 24927, 24925, 24915, 24949, 24985, 24982, 24967,\n    25004, 24980, 24986, 24970, 24977, 25003, 25006, 25036, 25034, 25033,\n    25079, 25032, 25027, 25030, 25018, 25035, 32633, 25037, 25062, 25059,\n    25078, 25082, 25076, 25087, 25085, 25084, 25086, 25088, [12093, 25096],\n    25097, 25101, 25100, 25108, 25115, 25118, 25121, 25130, 25134, 25136,\n    {f: 2, c: 25138}, 25153, 25166, 25182, 25187, 25179, 25184, 25192, 25212,\n    25218, 25225, 25214, {f: 2, c: 25234}, 25238, 25300, 25219, 25236, 25303,\n    25297, 25275, 25295, 25343, 25286, 25812, 25288, 25308, 25292, 25290,\n    25282, 25287, 25243, 25289, 25356, 25326, 25329, 25383, 25346, 25352,\n    25327, 25333, 25424, 25406, 25421, 25628, 25423, 25494, 25486, 25472,\n    25515, 25462, 25507, 25487, 25481, 25503, 25525, 25451, 25449, 25534,\n    25577, 25536, 25542, 25571, 25545, 25554, 25590, 25540, 25622, 25652,\n    25606, 25619, 25638, 25654, 25885, 25623, 25640, 25615, 25703, 25711,\n    25718, 25678, 25898, 25749, 25747, 25765, 25769, 25736, 25788, 25818,\n    25810, 25797, 25799, 25787, 25816, 25794, 25841, 25831, 33289,\n    {f: 2, c: 25824}, 25260, 25827, 25839, 25900, 25846, 25844, 25842, 25850,\n    25856, 25853, 25880, 25884, 25861, 25892, 25891, 25899, [12097, 25908],\n    [11929, 25909], 25911, 25910, 25912, 30027, 25928, 25942, 25941, 25933,\n    25944, 25950, 25949, 25970, 25976, {f: 2, c: 25986}, 35722, 26011, 26015,\n    26027, 26039, 26051, 26054, 26049, 26052, 26060, 26066, 26075, 26073,\n    [12102, 26080], [11931, 26081], 26097, 26482, 26122, 26115, 26107, 26483,\n    {f: 2, c: 26165}, 26164, 26140, 26191, 26180, 26185, 26177, 26206, 26205,\n    26212, {f: 2, c: 26215}, 26207, 26210, 26224, 26243, 26248, 26254, 26249,\n    26244, 26264, 26269, 26305, 26297, 26313, 26302, 26300, 26308, 26296,\n    26326, 26330, 26336, 26175, 26342, 26345, [12104, 26352], 26357, 26359,\n    26383, 26390, 26398, {f: 2, c: 26406}, 38712, 26414, 26431, 26422, 26433,\n    26424, 26423, 26438, 26462, 26464, 26457, {f: 2, c: 26467}, 26505, 26480,\n    26537, 26492, 26474, 26508, 26507, 26534, 26529, 26501, 26551, 26607,\n    26548, 26604, 26547, 26601, 26552, 26596, 26590, 26589, 26594, 26606,\n    26553, 26574, 26566, 26599, 27292, 26654, 26694, 26665, 26688, 26701,\n    26674, 26702, 26803, 26667, 26713, 26723, 26743, 26751, 26783, 26767,\n    26797, 26772, 26781, 26779, 26755, 27310, 26809, 26740, 26805, 26784,\n    26810, 26895, 26765, 26750, 26881, 26826, 26888, 26840, 26914, 26918,\n    26849, 26892, 26829, 26836, 26855, 26837, 26934, 26898, 26884, 26839,\n    26851, 26917, 26873, 26848, 26863, 26920, 26922, 26906, 26915, 26913,\n    26822, 27001, 26999, 26972, 27000, 26987, 26964, 27006, 26990, 26937,\n    26996, 26941, 26969, 26928, 26977, 26974, 26973, 27009, 26986, 27058,\n    27054, 27088, 27071, 27073, 27091, 27070, 27086, 23528, 27082, 27101,\n    27067, 27075, 27047, 27182, 27025, 27040, 27036, 27029, 27060, 27102,\n    27112, 27138, 27163, 27135, 27402, 27129, 27122, 27111, 27141, 27057,\n    27166, 27117, 27156, 27115, 27146, 27154, 27329, 27171, 27155, 27204,\n    27148, 27250, 27190, 27256, 27207, 27234, 27225, 27238, 27208, 27192,\n    27170, 27280, 27277, 27296, 27268, {f: 2, c: 27298}, 27287, 34327, 27323,\n    27331, 27330, 27320, 27315, 27308, 27358, 27345, 27359, 27306, 27354,\n    27370, 27387, 27397, 34326, 27386, 27410, 27414, 39729, 27423, 27448,\n    27447, 30428, 27449, 39150, 27463, 27459, 27465, 27472, 27481, 27476,\n    27483, 27487, 27489, 27512, [12109, 27513], {f: 2, c: 27519}, 27524, 27523,\n    27533, 27544, 27541, 27550, 27556, {f: 2, c: 27562}, 27567, 27570, 27569,\n    [12110, 27571], 27575, 27580, 27590, [12111, 27595], 27603, 27615, 27628,\n    27627, 27635, 27631, 40638, 27656, 27667, [12115, 27668], 27675, 27684,\n    27683, 27742, 27733, 27746, 27754, 27778, 27789, 27802, 27777, 27803,\n    27774, 27752, 27763, 27794, 27792, 27844, 27889, 27859, 27837, 27863,\n    27845, 27869, 27822, 27825, 27838, 27834, 27867, 27887, 27865, 27882,\n    27935, 34893, 27958, 27947, 27965, 27960, 27929, 27957, 27955, 27922,\n    27916, 28003, 28051, 28004, 27994, 28025, 27993, 28046, 28053, 28644,\n    28037, 28153, 28181, 28170, 28085, 28103, 28134, 28088, 28102, 28140,\n    28126, 28108, 28136, 28114, 28101, 28154, 28121, 28132, 28117, 28138,\n    28142, 28205, 28270, 28206, 28185, 28274, 28255, 28222, 28195, 28267,\n    28203, 28278, 28237, 28191, 28227, 28218, 28238, 28196, 28415, 28189,\n    28216, 28290, 28330, 28312, 28361, 28343, 28371, 28349, 28335, 28356,\n    28338, {f: 2, c: 28372}, 28303, 28325, 28354, 28319, 28481, 28433, 28748,\n    28396, 28408, 28414, 28479, 28402, 28465, 28399, 28466, 28364, 28478,\n    28435, 28407, 28550, 28538, 28536, 28545, 28544, 28527, 28507, 28659,\n    28525, 28546, 28540, 28504, 28558, 28561, 28610, 28518, 28595, 28579,\n    28577, 28580, 28601, 28614, 28586, 28639, 28629, 28652, 28628, 28632,\n    28657, 28654, 28635, 28681, 28683, 28666, 28689, 28673, 28687, 28670,\n    28699, 28698, 28532, 28701, 28696, 28703, 28720, 28734, 28722, 28753,\n    28771, 28825, 28818, 28847, 28913, 28844, 28856, 28851, 28846, 28895,\n    28875, 28893, 28889, 28937, 28925, 28956, 28953, 29029, 29013, 29064,\n    29030, 29026, 29004, 29014, 29036, 29071, 29179, 29060, 29077, 29096,\n    29100, 29143, 29113, 29118, 29138, 29129, 29140, 29134, 29152, 29164,\n    29159, 29173, 29180, 29177, 29183, 29197, 29200, 29211, 29224, 29229,\n    29228, 29232, 29234, [12120, 29243], 29244, [12121, 29247], 29248, 29254,\n    29259, 29272, 29300, 29310, 29314, 29313, 29319, 29330, 29334, 29346,\n    29351, 29369, 29362, 29379, 29382, 29380, 29390, 29394, 29410,\n    {f: 2, c: 29408}, 29433, 29431, 20495, 29463, 29450, 29468, 29462, 29469,\n    29492, 29487, 29481, 29477, 29502, {f: 2, c: 29518}, 40664, 29527, 29546,\n    29544, 29552, 29560, 29557, 29563, 29562, 29640, 29619, 29646, 29627,\n    29632, 29669, 29678, 29662, 29858, 29701, 29807, 29733, 29688, 29746,\n    29754, 29781, 29759, 29791, 29785, 29761, 29788, 29801, 29808, 29795,\n    29802, 29814, 29822, 29835, 29854, 29863, 29898, 29903, 29908, 29681,\n    29920, 29923, 29927, 29929, 29934, 29938, {f: 2, c: 29936}, 29944, 29943,\n    29956, 29955, 29957, 29964, 29966, 29965, 29973, 29971, 29982, 29990,\n    29996, 30012, 30020, 30029, 30026, 30025, 30043, 30022, 30042, 30057,\n    30052, 30055, 30059, 30061, 30072, 30070, {f: 2, c: 30086}, 30068, 30090,\n    30089, 30082, 30100, 30106, 30109, 30117, 30115, 30146, 30131, 30147,\n    30133, 30141, 30136, 30140, 30129, 30157, 30154, 30162, 30169, 30179,\n    30174, {f: 2, c: 30206}, 30204, 30209, 30192, 30202, {f: 2, c: 30194},\n    30219, 30221, 30217, 30239, 30247, {f: 3, c: 30240}, 30244, 30260, 30256,\n    30267, {f: 2, c: 30279}, 30278, 30300, 30296, {f: 2, c: 30305},\n    {f: 3, c: 30312}, 30311, 30316, 30320, 30322, [12136, 30326], 30328, 30332,\n    30336, 30339, 30344, 30347, 30350, 30358, 30355, {f: 2, c: 30361}, 30384,\n    30388, {f: 3, c: 30392}, 30402, 30413, 30422, 30418, 30430, 30433, 30437,\n    30439, 30442, 34351, 30459, 30472, 30471, 30468, 30505, 30500, 30494,\n    {f: 2, c: 30501}, 30491, {f: 2, c: 30519}, 30535, 30554, 30568, 30571,\n    30555, 30565, 30591, 30590, 30585, 30606, 30603, 30609, 30624, 30622,\n    30640, 30646, 30649, 30655, {f: 2, c: 30652}, 30651, 30663, 30669, 30679,\n    30682, 30684, 30691, 30702, 30716, 30732, 30738, 31014, 30752, 31018,\n    30789, 30862, 30836, 30854, 30844, 30874, 30860, 30883, 30901, 30890,\n    30895, 30929, 30918, 30923, 30932, 30910, 30908, 30917, 30922, 30956,\n    30951, 30938, 30973, 30964, 30983, 30994, 30993, 31001, 31020, 31019,\n    31040, 31072, 31063, 31071, 31066, 31061, 31059, 31098, 31103, 31114,\n    31133, 31143, 40779, 31146, 31150, 31155, {f: 2, c: 31161}, 31177, 31189,\n    31207, 31212, 31201, 31203, 31240, 31245, {f: 2, c: 31256}, 31264, 31263,\n    31104, 31281, 31291, 31294, 31287, 31299, 31319, 31305, {f: 2, c: 31329},\n    31337, 40861, 31344, 31353, 31357, 31368, 31383, 31381, 31384, 31382,\n    31401, 31432, 31408, 31414, 31429, 31428, 31423, 36995, 31431, 31434,\n    31437, 31439, 31445, 31443, {f: 2, c: 31449}, 31453, {f: 2, c: 31457},\n    31462, 31469, 31472, 31490, 31503, 31498, 31494, 31539, {f: 2, c: 31512},\n    31518, 31541, 31528, 31542, 31568, 31610, 31492, 31565, 31499, 31564,\n    31557, 31605, 31589, 31604, 31591, {f: 2, c: 31600}, 31596, 31598, 31645,\n    31640, 31647, 31629, 31644, 31642, 31627, 31634, 31631, 31581, 31641,\n    31691, 31681, 31692, 31695, 31668, 31686, 31709, 31721, 31761, 31764,\n    31718, 31717, 31840, 31744, 31751, 31763, 31731, 31735, 31767, 31757,\n    31734, 31779, 31783, 31786, 31775, 31799, 31787, 31805, 31820, 31811,\n    31828, 31823, 31808, 31824, 31832, 31839, 31844, 31830, 31845, 31852,\n    31861, 31875, 31888, 31908, 31917, 31906, 31915, 31905, 31912, 31923,\n    31922, 31921, 31918, 31929, 31933, 31936, 31941, 31938, 31960, 31954,\n    31964, 31970, 39739, 31983, 31986, 31988, 31990, 31994, 32006, 32002,\n    32028, 32021, 32010, 32069, 32075, 32046, 32050, 32063, 32053, 32070,\n    32115, 32086, 32078, 32114, 32104, 32110, 32079, 32099, 32147, 32137,\n    32091, 32143, 32125, 32155, 32186, 32174, 32163, 32181, 32199, 32189,\n    32171, 32317, 32162, 32175, 32220, 32184, 32159, 32176, 32216, 32221,\n    32228, 32222, 32251, 32242, 32225, 32261, 32266, 32291, 32289, 32274,\n    32305, 32287, 32265, 32267, 32290, 32326, 32358, 32315, 32309, 32313,\n    32323, 32311, 32306, 32314, 32359, 32349, 32342, 32350, {f: 2, c: 32345},\n    32377, 32362, 32361, 32380, 32379, 32387, 32213, 32381, 36782, 32383,\n    {f: 2, c: 32392}, 32396, 32402, 32400, {f: 2, c: 32403}, 32406, 32398,\n    {f: 2, c: 32411}, 32568, 32570, 32581, {f: 3, c: 32588}, 32592,\n    [12153, 32593], 32597, 32596, 32600, {f: 2, c: 32607}, {f: 2, c: 32616},\n    32615, 32632, 32642, 32646, 32643, 32648, 32647, 32652, 32660, 32670,\n    32669, 32666, 32675, 32687, 32690, 32697, 32686, 32694, 32696, 35697,\n    {f: 2, c: 32709}, 32714, 32725, 32724, 32737, 32742, 32745, 32755, 32761,\n    39132, 32774, 32772, 32779, [12158, 32786], {f: 2, c: 32792}, 32796, 32801,\n    32808, 32831, 32827, 32842, 32838, 32850, 32856, 32858, 32863, 32866,\n    32872, 32883, 32882, 32880, 32886, 32889, 32893, [12160, 32895], 32900,\n    32902, 32901, 32923, 32915, 32922, 32941, 20880, 32940, 32987, 32997,\n    32985, 32989, 32964, 32986, 32982, 33033, 33007, 33009, 33051, 33065,\n    33059, 33071, 33099, 38539, 33094, 33086, 33107, 33105, 33020, 33137,\n    33134, {f: 2, c: 33125}, 33140, 33155, 33160, 33162, 33152, 33154, 33184,\n    33173, 33188, 33187, 33119, 33171, 33193, 33200, 33205, 33214, 33208,\n    33213, 33216, 33218, 33210, 33225, 33229, 33233, 33241, 33240, 33224,\n    33242, {f: 2, c: 33247}, 33255, {f: 2, c: 33274}, 33278, {f: 2, c: 33281},\n    33285, 33287, 33290, 33293, 33296, 33302, 33321, 33323, 33336, 33331,\n    33344, 33369, 33368, 33373, 33370, 33375, 33380, 33378, 33384,\n    {f: 2, c: 33386}, 33326, 33393, 33399, [12171, 33400], 33406, 33421, 33426,\n    33451, 33439, 33467, 33452, 33505, 33507, 33503, 33490, 33524, 33523,\n    33530, 33683, 33539, 33531, 33529, 33502, 33542, 33500, 33545, 33497,\n    33589, 33588, 33558, 33586, 33585, 33600, 33593, 33616, 33605, 33583,\n    33579, {f: 2, c: 33559}, 33669, 33690, 33706, 33695, 33698, 33686, 33571,\n    33678, 33671, 33674, 33660, 33717, 33651, 33653, 33696, 33673, 33704,\n    33780, 33811, 33771, 33742, 33789, 33795, 33752, 33803, 33729, 33783,\n    33799, 33760, 33778, 33805, 33826, 33824, 33725, 33848, 34054, 33787,\n    33901, 33834, 33852, 34138, 33924, 33911, 33899, 33965, 33902, 33922,\n    33897, 33862, 33836, 33903, 33913, 33845, 33994, 33890, 33977, 33983,\n    33951, 34009, 33997, 33979, 34010, 34000, 33985, 33990, 34006, 33953,\n    34081, 34047, 34036, {f: 2, c: 34071}, 34092, 34079, 34069, 34068, 34044,\n    34112, 34147, 34136, 34120, 34113, 34306, 34123, 34133, 34176, 34212,\n    34184, 34193, 34186, 34216, 34157, 34196, 34203, 34282, 34183, 34204,\n    34167, 34174, 34192, 34249, 34234, 34255, 34233, 34256, 34261, 34269,\n    34277, 34268, 34297, 34314, 34323, 34315, 34302, 34298, 34310, 34338,\n    34330, 34352, 34367, [12172, 34381], 20053, 34388, 34399, 34407, 34417,\n    34451, 34467, {f: 2, c: 34473}, {f: 2, c: 34443}, 34486, 34479, 34500,\n    34502, 34480, 34505, 34851, 34475, 34516, 34526, 34537, 34540, 34527,\n    34523, 34543, 34578, 34566, 34568, 34560, 34563, 34555, 34577, 34569,\n    34573, 34553, 34570, 34612, 34623, 34615, 34619, 34597, 34601, 34586,\n    34656, 34655, 34680, 34636, 34638, 34676, 34647, 34664, 34670, 34649,\n    34643, 34659, 34666, 34821, 34722, 34719, 34690, 34735, 34763, 34749,\n    34752, 34768, 38614, 34731, 34756, 34739, 34759, 34758, 34747, 34799,\n    34802, 34784, 34831, 34829, 34814, {f: 2, c: 34806}, 34830, 34770, 34833,\n    34838, 34837, 34850, 34849, 34865, 34870, 34873, 34855, 34875, 34884,\n    34882, 34898, 34905, 34910, 34914, 34923, 34945, 34942, 34974, 34933,\n    34941, 34997, 34930, 34946, 34967, 34962, 34990, 34969, 34978, 34957,\n    34980, 34992, 35007, 34993, {f: 2, c: 35011}, 35028, {f: 2, c: 35032},\n    35037, 35065, 35074, 35068, 35060, 35048, 35058, 35076, 35084, 35082,\n    35091, 35139, 35102, 35109, {f: 2, c: 35114}, 35137, 35140, 35131, 35126,\n    35128, 35148, 35101, 35168, 35166, 35174, 35172, 35181, 35178, 35183,\n    35188, 35191, [12177, 35198], 35203, 35208, 35210, 35219, 35224, 35233,\n    35241, 35238, 35244, 35247, 35250, 35258, 35261, {f: 2, c: 35263}, 35290,\n    {f: 2, c: 35292}, 35303, 35316, 35320, 35331, 35350, 35344, 35340, 35355,\n    35357, 35365, 35382, 35393, 35419, 35410, 35398, 35400, 35452, 35437,\n    35436, 35426, 35461, 35458, 35460, 35496, 35489, 35473, {f: 2, c: 35493},\n    35482, 35491, 35524, 35533, 35522, 35546, 35563, 35571, 35559, 35556,\n    35569, 35604, 35552, 35554, 35575, 35550, 35547, 35596, 35591, 35610,\n    35553, 35606, 35600, 35607, 35616, 35635, 38827, 35622, 35627, 35646,\n    35624, 35649, 35660, 35663, 35662, 35657, 35670, 35675, 35674, 35691,\n    35679, 35692, 35695, 35700, 35709, 35712, 35724, 35726, {f: 2, c: 35730},\n    35734, {f: 2, c: 35737}, 35898, 35905, 35903, 35912, 35916, 35918, 35920,\n    [12183, 35925], 35938, 35948, [12184, 35960], 35962, 35970, 35977, 35973,\n    35978, {f: 2, c: 35981}, 35988, 35964, 35992, 25117, 36013, 36010, 36029,\n    {f: 2, c: 36018}, 36014, 36022, 36040, 36033, 36068, 36067, 36058, 36093,\n    {f: 2, c: 36090}, {f: 2, c: 36100}, 36106, 36103, 36111, 36109, 36112,\n    40782, 36115, 36045, 36116, 36118, 36199, 36205, 36209, 36211, 36225,\n    36249, 36290, 36286, 36282, 36303, 36314, 36310, 36300, 36315, 36299,\n    {f: 2, c: 36330}, 36319, 36323, 36348, {f: 2, c: 36360}, 36351,\n    {f: 2, c: 36381}, 36368, 36383, 36418, 36405, 36400, 36404, 36426, 36423,\n    36425, 36428, 36432, 36424, 36441, 36452, 36448, 36394, 36451, 36437,\n    36470, 36466, 36476, 36481, 36487, 36485, 36484, 36491, 36490, 36499,\n    36497, 36500, 36505, 36522, 36513, 36524, 36528, 36550, 36529, 36542,\n    36549, 36552, 36555, 36571, 36579, 36604, 36603, 36587, 36606, 36618,\n    36613, 36629, 36626, 36633, 36627, 36636, 36639, 36635, 36620, 36646,\n    36659, 36667, 36665, 36677, 36674, 36670, 36684, 36681, 36678, 36686,\n    36695, 36700, {f: 3, c: 36706}, 36764, 36767, 36771, 36781, 36783, 36791,\n    36826, 36837, 36834, 36842, 36847, 36999, 36852, 36869, {f: 2, c: 36857},\n    36881, 36885, 36897, 36877, 36894, 36886, 36875, 36903, 36918, 36917,\n    36921, 36856, {f: 4, c: 36943}, 36878, 36937, 36926, 36950, 36952, 36958,\n    36968, 36975, 36982, 38568, 36978, 36994, 36989, 36993, 36992, 37002,\n    37001, 37007, 37032, 37039, 37041, 37045, 37090, 37092, 25160, 37083,\n    37122, 37138, 37145, 37170, 37168, 37194, 37206, 37208, 37219, 37221,\n    37225, 37235, 37234, 37259, 37257, 37250, 37282, 37291, 37295, 37290,\n    37301, 37300, 37306, {f: 2, c: 37312}, 37321, 37323, 37328, 37334, 37343,\n    37345, 37339, 37372, {f: 2, c: 37365}, 37406, 37375, 37396, 37420, 37397,\n    37393, 37470, 37463, 37445, 37449, 37476, 37448, 37525, 37439, 37451,\n    37456, 37532, 37526, 37523, 37531, 37466, 37583, 37561, 37559, 37609,\n    37647, 37626, 37700, 37678, 37657, 37666, 37658, 37667, 37690, 37685,\n    37691, 37724, 37728, 37756, 37742, 37718, 37808, {f: 2, c: 37804}, 37780,\n    37817, {f: 2, c: 37846}, 37864, 37861, 37848, 37827, 37853, 37840, 37832,\n    37860, 37914, 37908, 37907, 37891, 37895, 37904, 37942, 37931, 37941,\n    37921, 37946, 37953, 37970, 37956, 37979, 37984, 37986, 37982, 37994,\n    37417, 38000, 38005, 38007, 38013, 37978, 38012, 38014, 38017, 38015,\n    38274, 38279, 38282, 38292, 38294, {f: 2, c: 38296}, 38304, 38312, 38311,\n    38317, 38332, 38331, 38329, 38334, 38346, 28662, 38339, 38349, 38348,\n    38357, 38356, 38358, 38364, 38369, 38373, 38370, 38433, 38440,\n    {f: 2, c: 38446}, 38466, 38476, 38479, 38475, 38519, 38492, 38494, 38493,\n    38495, 38502, 38514, 38508, 38541, 38552, 38549, 38551, 38570, 38567,\n    {f: 2, c: 38577}, 38576, 38580, [12202, 38582], 38584, [12203, 38585],\n    38606, 38603, 38601, 38605, 35149, 38620, 38669, 38613, 38649, 38660,\n    38662, 38664, 38675, 38670, 38673, 38671, 38678, 38681, 38692, 38698,\n    38704, 38713, {f: 2, c: 38717}, 38724, 38726, 38728, 38722, 38729, 38748,\n    38752, 38756, 38758, 38760, 21202, 38763, 38769, 38777, 38789, 38780,\n    38785, 38778, 38790, 38795, {f: 2, c: 38799}, 38812, 38824, 38822, 38819,\n    {f: 2, c: 38835}, 38851, 38854, 38856, [12209, 38859], 38876,\n    [12210, 38893], 40783, 38898, 31455, 38902, 38901, 38927, 38924, 38968,\n    38948, 38945, 38967, 38973, 38982, 38991, 38987, 39019, {f: 3, c: 39023},\n    39028, 39027, 39082, 39087, 39089, 39094, 39108, 39107, 39110, 39145,\n    39147, 39171, 39177, 39186, 39188, 39192, 39201, {f: 2, c: 39197}, 39204,\n    39200, 39212, 39214, {f: 2, c: 39229}, 39234, 39241, 39237, 39248, 39243,\n    {f: 2, c: 39249}, 39244, 39253, {f: 2, c: 39319}, 39333, {f: 2, c: 39341},\n    39356, 39391, 39387, 39389, 39384, 39377, {f: 2, c: 39405},\n    {f: 2, c: 39409}, 39419, 39416, 39425, 39439, 39429, 39394, 39449, 39467,\n    39479, 39493, 39490, 39488, 39491, 39486, 39509, 39501, 39515, 39511,\n    39519, 39522, 39525, 39524, 39529, 39531, 39530, 39597, 39600, 39612,\n    39616, 39631, 39633, {f: 2, c: 39635}, 39646, [12221, 39647],\n    {f: 2, c: 39650}, 39654, 39663, 39659, 39662, 39668, 39665, 39671, 39675,\n    39686, 39704, 39706, 39711, {f: 2, c: 39714}, [12222, 39717],\n    {f: 4, c: 39719}, 39726, [12223, 39727], [12224, 39730], 39748, 39747,\n    39759, {f: 2, c: 39757}, 39761, 39768, 39796, 39827, 39811, 39825,\n    {f: 2, c: 39830}, {f: 2, c: 39839}, 39848, 39860, 39872, 39882, 39865,\n    39878, 39887, {f: 2, c: 39889}, 39907, 39906, 39908, 39892, 39905, 39994,\n    39922, 39921, 39920, 39957, 39956, 39945, 39955, 39948, 39942, 39944,\n    39954, 39946, 39940, 39982, 39963, 39973, 39972, 39969, 39984, 40007,\n    39986, 40006, 39998, 40026, 40032, 40039, 40054, 40056, 40167, 40172,\n    40176, 40201, 40200, 40171, 40195, 40198, 40234, 40230, 40367, 40227,\n    40223, 40260, 40213, 40210, 40257, 40255, 40254, 40262, 40264,\n    {f: 2, c: 40285}, 40292, 40273, 40272, 40281, 40306, 40329, 40327, 40363,\n    40303, 40314, 40346, 40356, 40361, 40370, 40388, 40385, 40379, 40376,\n    40378, 40390, 40399, 40386, 40409, 40403, 40440, 40422, 40429, 40431,\n    40445, {f: 2, c: 40474}, 40478, [12228, 40565], 40569, 40573, 40577, 40584,\n    {f: 2, c: 40587}, 40594, 40597, 40593, 40605, [12230, 40613], 40617, 40632,\n    40618, 40621, 38753, 40652, {f: 3, c: 40654}, 40660, 40668, 40670, 40669,\n    40672, 40677, 40680, 40687, 40692, {f: 2, c: 40694}, [12235, 40697],\n    {f: 2, c: 40699}, [12236, 40701], {f: 2, c: 40711}, 30391, 40725, 40737,\n    40748, 40766, [12241, 40778], [12242, 40786], 40788, 40803,\n    {f: 3, c: 40799}, {f: 2, c: 40806}, 40812, 40810, 40823, 40818, 40822,\n    40853, [12244, 40860], [12245, 40864], 22575, 27079, 36953, 29796, 0,\n    {f: 76, c: 9472}, {f: 20, c: 9312}, {f: 10, c: 8544}, 13129, 13076, 0,\n    13133, 0, 13095, 0, 13110, 13137, 0, 13069, 13094, 0, 13099, 13130, 0,\n    {f: 3, c: 13212}, {f: 2, c: 13198}, 13252, 13217, 12317, 12319, 8470,\n    13261, 0, {f: 5, c: 12964}, {f: 2, c: 12849}, 12857, 13182, 13181, 13180,\n    8750, 8721, {s: 3}, 8735, 8895, 0, 0, 21854, {s: 7}, 167133, 0, 0, 28976,\n    0, 40407, {s: 4}, 64054, 0, 0, 22169, 15694, {s: 4}, 20448, 0, 0, 36544, 0,\n    194797, {s: 4}, 153716, 32363, 33606, 167670, {s: 3}, 40572, 0, 0, 26171,\n    0, 40628, {s: 4}, 26629, {s: 5}, 23650, 0, 194780, 0, 32353, 0, 0, 64070,\n    {s: 5}, 34083, 37292, {s: 7}, 34796, {s: 8}, 25620, 0, 0, 39506, {s: 4},\n    64074, 0, 194692, {s: 4}, 31774, {s: 6}, 64016, 25681, 0, 0, 63980, 22625,\n    39002, 0, 194679, {s: 3}, 31153, 0, 28678, {s: 9}, 22218, {s: 3}, 21085, 0,\n    28497, 37297, {s: 10}, 64106, {s: 6}, 38960, 0, 40629, {s: 9}, 33802,\n    63939, {f: 2, c: 63890}, 63897, 0, 34847, 194575, 0, 194771, 194584,\n    {s: 7}, 137754, 23643, {s: 4}, 25890, 0, 0, 26618, 0, 26766, 0, 148432,\n    194848, {s: 21}, 34110, {s: 15}, 30562, {s: 12}, 65075, 0,\n    {f: 2, c: 65073}, {s: 4}, 65072, {f: 2, c: 65077}, {f: 2, c: 65081}, 0, 0,\n    {f: 2, c: 65079}, {f: 2, c: 65087}, {f: 2, c: 65085}, {f: 4, c: 65089},\n    {f: 2, c: 65083}, {s: 41}, {f: 3, c: 12436}, 0, 0, 22099, {s: 41}, 65508,\n    65287, 65282, 0, 9665, 9655, 8681, 8679, 8678, 8680, 9634, 9831, 9825,\n    9828, 9826, 13216, 13218, {f: 2, c: 13220}, 13207, 8467, 13208, 13235,\n    13234, 13233, 13232, {f: 3, c: 13189}, 13259, 13200, 13268, 13206, 13090,\n    13078, 13080, 13077, 13059, 13091, 13143, 13122, 13113, 13115, 13056,\n    13105, 13127, 13086, 13098, 0, 13183, 8481, 9742, 12342, 12320, {s: 3},\n    {f: 9, c: 9352}, {f: 20, c: 9332}, 12881, {f: 10, c: 8560},\n    {f: 10, c: 12882}, {f: 26, c: 9372}, 12867, 12861, 12863, 12852, 12856,\n    12851, 12860, 12866, 12862, 12854, 12853, 12859, 12864, 12858, 12976,\n    12973, 12969, 12975, 12948, 12970, 12952, 12971, 12946, 12945, 12947,\n    12972, 12974, 12950, {s: 8}, {f: 3, c: 9131}, 0, {f: 3, c: 9127}, 0, 13260,\n    13061, 0, 0, 13215, 13219, 13222, 0, 0, 12958, {f: 2, c: 13192}, 13256,\n    8749, 0, 12848, {f: 6, c: 12842}, 12855, 12865, 10145, {s: 3}, 9673, 9824,\n    9829, 9827, 9830, {f: 4, c: 9728}, 9758, {f: 2, c: 9756}, 9759, 12953,\n    9450, {f: 2, c: 8554}, {s: 3}, {f: 8, c: 9601}, 9615, 9614, 9613, 9612,\n    9611, 9610, 9609, {f: 2, c: 9620}, {f: 2, c: 9581}, 9584, 9583, 9552, 9566,\n    9578, 9569, {f: 2, c: 9698}, 9701, 9700, 0, 0, {f: 3, c: 9585}, {s: 20},\n    20956, 29081, {f: 9, c: 10102}, {s: 3}, {f: 2, c: 8570}, {s: 3}, 8575,\n    8458, 8457, 0, 0, 12292, 8646, {f: 2, c: 8644}, 0, {f: 4, c: 12535}, 0, 0,\n    12957, {s: 3}, 13179, {s: 3}, 13107, 13134, {s: 30}, 32394, 35100, 37704,\n    37512, 34012, 20425, 28859, 26161, 26824, 37625, 26363, 24389,\n    [12033, 20008], 20193, 20220, 20224, 20227, 20281, 20310, 20370, 20362,\n    20378, 20372, 20429, 20544, 20514, 20479, 20510, 20550, 20592, 20546,\n    20628, 20724, 20696, 20810, 20836, 20893, 20926, 20972, 21013, 21148,\n    21158, 21184, 21211, 21248, 0, 21284, 21362, 21395, 21426, 21469, 64014,\n    21660, 21642, 21673, 21759, 21894, 22361, 22373, 22444, 22472, 22471,\n    64015, 0, 22686, 22706, 22795, 22867, 22875, 22877, 22883, 22948, 22970,\n    23382, 23488, 29999, 23512, 0, 23582, 23718, 23738, 23797, 23847, 23891, 0,\n    23874, 23917, {f: 2, c: 23992}, 24016, 24353, 24372, 24423, 24503, 24542,\n    24669, 24709, 24714, 24798, 24789, 24864, 24818, 24849, 24887, 24880,\n    24984, 25107, 25254, 25589, 25696, 25757, 25806, 25934, 26112, 26133,\n    26121, 26158, 0, 26148, 26213, 26199, 26201, 64018, 26227, 26265, 26272,\n    26290, 26303, 26362, 26382, 0, 26470, 26555, 26706, 26560, 0, 26692, 26831,\n    64019, 26984, 64020, 27032, 27106, 27184, 27243, 27206, 27251, 27262,\n    27362, 27364, 27606, 27711, 27740, 27782, 27759, 27866, 27908, 28039,\n    28015, 28054, 28076, 28111, 28152, 28146, 28156, 28217, 28252, 28199,\n    28220, 28351, 28552, 28597, 28661, 28677, 28679, 28712, 28805, 28843,\n    28943, 28932, 29020, {f: 2, c: 28998}, 0, 29121, 29182, 29361, 29374,\n    29476, 64022, 29559, 29629, 29641, 29654, 29667, 29650, 29703, 29685,\n    29734, 29738, 29737, 29742, 0, 29833, 29855, 29953, 30063, 30338, 30364,\n    30366, 30363, 30374, 64023, 30534, 21167, 30753, 30798, 30820, 30842,\n    31024, {f: 3, c: 64024}, 31124, 64027, 31131, 31441, 31463, 64028, 31467,\n    31646, 64029, 32072, 0, 32183, 32160, 32214, 32338, 32583, 32673, 64030,\n    33537, 33634, 33663, 33735, 33782, 33864, 33972, 34131, 34137, 34155,\n    64031, 34224, {f: 2, c: 64032}, 34823, 35061, 35346, 35383, 35449, 35495,\n    35518, 35551, 64034, 35574, 35667, 35711, 36080, 36084, 36114, 36214,\n    64035, 36559, 0, 64037, 36967, 37086, 64038, 37141, 37159, 37338, 37335,\n    37342, {f: 2, c: 37357}, {f: 2, c: 37348}, 37382, 37392, 37386, 37434,\n    37440, 37436, 37454, 37465, 37457, 37433, 37479, 37543, {f: 2, c: 37495},\n    37607, 37591, 37593, 37584, 64039, 37589, 37600, 37587, 37669, 37665,\n    37627, 64040, 37662, 37631, 37661, 37634, 37744, 37719, 37796, 37830,\n    37854, 37880, 37937, 37957, 37960, 38290, 0, 64041, 38557, 38575, 38707,\n    38715, 38723, 38733, 38735, [12205, 38737], 0, 38999, 39013,\n    {f: 2, c: 64042}, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794,\n    39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, 0, 92,\n    {s: 634}, 8364, 8486, 0, 0, 64256, {f: 2, c: 64259}, 257, 299, 363, 275,\n    333, 256, 298, 362, 274, 332, {f: 4, c: 8539}, {f: 2, c: 8531}, 8304,\n    {f: 6, c: 8308}, {f: 10, c: 8320}, 461, 282, 0, 7868, 463, 0, 296, 465, 0,\n    467, 366, 360, 462, 283, 0, 7869, 464, 0, 297, 466, 0, 468, 367, 361, 593,\n    8049, 8048, 509, 0, 596, 0, 0, 601, 0, 0, 602, 0, 0, 603, 8051, 8050, 0,\n    331, 629, 652, 0, 0, 658, 643, 720, {s: 682}, {f: 10, c: 12832}, {s: 108},\n    {f: 4, c: 12892}, {f: 15, c: 12977}, {s: 50}, {f: 26, c: 9424},\n    {f: 26, c: 9398}, {s: 48}, {f: 47, c: 13008}, 0, {f: 10, c: 12928}, 12944,\n    {f: 6, c: 12938}, 0, 12959, {s: 6}, {f: 2, c: 12960}, 12955, 12954, 12963,\n    12962, 12951, 0, 12956, 12949, {s: 6}, 9676, {s: 11}, 10111,\n    {f: 10, c: 9451}, {s: 510}, 8414, {s: 815}, 13274, {s: 3}, 8448, 13250, 0,\n    0, 8453, 0, 13169, 0, 0, 13197, 13211, {s: 3}, {f: 2, c: 13271}, {s: 3},\n    {f: 2, c: 13057}, 13060, 13062, 0, 13064, 0, 13063, 13066, 0, 13065, 0,\n    13067, 0, 13068, {f: 6, c: 13070}, 0, 13079, 0, 13081, 0, {f: 4, c: 13082},\n    {f: 3, c: 13087}, 13092, 0, 13093, 0, 0, {f: 2, c: 13096}, 0, 13101, 0, 0,\n    {f: 3, c: 13102}, 13106, 0, 0, {f: 2, c: 13108}, 13116, {s: 3}, 13111, 0,\n    13112, 13114, 13117, 13121, {f: 3, c: 13118}, {f: 4, c: 13123}, 13128,\n    {f: 2, c: 13131}, {f: 2, c: 13135}, 0, 0, 13138, 13140, 0, 0, 13139,\n    {f: 2, c: 13141}, {s: 132}, 8501, 976, 8714, 8463, 0, 981, 987, 977, 0,\n    {f: 2, c: 9832}, 9836, {s: 5}, 12347, 0, {f: 3, c: 12339}, 8252, 8265,\n    {s: 5}, 8723, 0, 8771, {f: 2, c: 8818}, {s: 6}, {f: 2, c: 12312},\n    {f: 2, c: 65375}, {s: 10}, 9115, {f: 2, c: 9117}, 9120, {s: 4}, 9121,\n    {f: 2, c: 9123}, 9126, {s: 12}, [9116, 9119, 9122, 9125, 9130], {s: 8},\n    9986, 0, 0, 12349, 0, 12447, 0, 0, 8709, 8864, 8854, 8856, 8853, 8855,\n    {s: 4}, 9664, 9654, {s: 4}, 8656, 8596, {f: 2, c: 8600}, {f: 2, c: 8598},\n    8652, 8651, {s: 10}, 12336, 8967, {s: 8}, 10048, 10047, {s: 7}, 9643, 0,\n    9642, 0, 10010, {s: 12}, 9702, {s: 4}, 10070, {s: 379}, {f: 2, c: 65093},\n    {s: 679}, 64103, 64098, 32227, [12232, 40643], 28331, 64082, 64061, 64069,\n    64062, 27114, 28212, 64096, 64071, 64056, 64066, 64078, 34395, 64105,\n    64052, 64099, 25581, 25802, 30799, 64084, 63856, 64077, 64097, 64072,\n    64076, {f: 2, c: 64091}, 64081, 64067, 64090, 28041, 29376, 0, 194885,\n    64086, 64080, 64049, 64059, 24034, 64063, 64101, 21373, 64055, 64095,\n    24501, 64064, 0, 64083, 0, 64085, 64104, 64068, 64089, 26202, 64053, 64075,\n    64100, 64065, 64048, 0, 64057, 64051, 27493, 64058, 27599, 64050, 25150,\n    64079, 63773, 63964, 63798, 28122, 63952, 26310, 27511, 64087, 37706, 0,\n    37636, {s: 120}, 133390, {s: 120}, 35999, 11991, [11965, 158033], {s: 5},\n    37555, 38321, 0, 0, 194812, {s: 13}, 194965, {s: 8}, 194794, 0, 26478,\n    11974, 0, 194594, {s: 13}, 13314, 0, 0, 26083, {s: 4}, 134071, {s: 10},\n    171339, 0, 194611, 24378, {s: 8}, 11945, 0, 20465, {s: 7}, 63753, {s: 7},\n    11964, 0, 0, 194732, 26435, {s: 3}, 133732, 35329, 25142, 0, 0, 21555,\n    23067, {s: 3}, 25221, 0, 0, 194819, {s: 6}, 21567, {s: 9}, 27506, {s: 4},\n    29986, 19256, 0, 0, 24063, {s: 6}, 194827, 29626, 134047, {s: 3}, 194600,\n    0, 194849, {s: 5}, 194623, {s: 16}, 194675, {f: 2, c: 11916}, 23577,\n    {s: 3}, 131083, 23426, 194642, {s: 5}, 11997, [11999, 39136],\n    [11998, 169599], 14221, 0, [11927, 14586], 0, 194887, 0, [11909, 20155],\n    131490, {s: 7}, 13599, 0, 194738, 0, 0, [11971, 35200], {s: 4}, 31237,\n    {s: 4}, 35498, 0, 32085, 0, 28568, {s: 7}, 25591, 30246, {s: 4},\n    [11978, 163767], {s: 5}, 146686, {s: 5}, 13351, 0, 0, 33067, 0, 0, 194842,\n    {s: 5}, 11950, {s: 5}, 194714, {s: 3}, 194831, {s: 19}, 22305, 135741,\n    194586, 0, 64003, {s: 7}, 21534, 15240, 20839, {s: 4}, 63839, {s: 9},\n    20023, {s: 13}, [11946, 150804], 24421, 23020, 194658, 0, 24217, {s: 46},\n    13416, {s: 8}, 21200, {s: 9}, 26625, 0, 195024, 195039, {s: 5}, 153215, 0,\n    0, 11959, {s: 4}, 36534, 63775, {s: 3}, 63875, {s: 5}, 31867, 63906, 0,\n    63898, 0, [11961, 32770], 157360, {s: 4}, [11911, 132648], 0, 0, 131210,\n    194604, [11915, 13630], {s: 4}, 21589, 0, 22841, 0, 0, 23414, 194669,\n    23572, 14306, 23782, 0, 20040, 0, 0, 194742, {s: 4}, 158105, 25371, 0, 0,\n    26211, 0, 194779, 0, 0, 27126, 27014, {s: 3}, 27596, 0, 28183, 0, 0, 27818,\n    {s: 3}, [11942, 20012], 0, 0, 29935, 30069, 30188, 30286, 16305, 30570,\n    30633, {s: 6}, 31571, 0, 0, 16996, {s: 3}, 194924, 0, 0, 32328, {s: 5},\n    11955, {s: 4}, 33089, 17491, 0, [11966, 33401], [11967, 64094],\n    [11968, 64093], 0, 20857, 33626, {s: 3}, 17701, 0, 34292, 131248, {s: 4},\n    34429, 0, 13358, 35014, {s: 6}, 18406, {s: 8}, 36808, {s: 19}, 166279, 0,\n    0, 167447, 0, 0, 38969, {s: 6}, 39432, {s: 4}, 39903, {s: 10}, 148206,\n    {s: 5}, 21385, 0, 64017, 194785, 0, 146622, 132625, 0, {f: 2, c: 19972},\n    19999, 20011, {f: 2, c: 20015}, {f: 2, c: 20032}, 20036, [11907, 20058],\n    20095, 20109, 20118, 20153, 20176, 20192, 20221, 20223, 20235, 20245,\n    20320, 20283, 20297, 20308, 20346, {f: 2, c: 20349}, 20375, 20414, 20431,\n    20477, {f: 2, c: 20480}, 20496, 20507, 20519, 20526, 20567, 20582, 20586,\n    20539, 20623, 20630, 20636, 20684, 20710, 20713, 20719, 20744, 20747,\n    20752, 20763, 20766, 20831, 20897, 20924, 0, 20974, 20980, 20993,\n    [11913, 20994], 21011, 21065, 21089, 21094, 21139, 21192, 21232,\n    {f: 2, c: 21258}, 21310, 21324, 21323, 21345, 21356, 21419, 21466, 21478,\n    21493, 21543, 21581, 21606, 21611, 21620, 21645, 21654, 21665, 21677,\n    21689, 21695, 21702, 21709, 21774, 21803, 21813, 21834, 21856, 0, 21896,\n    21902, 22024, {f: 2, c: 22030}, 22071, 22079, 22089, 22091, 22095, 22118,\n    22121, 22127, {f: 2, c: 22129}, 22165, 22170, {f: 2, c: 22188}, 22193,\n    22217, 22237, 22244, 22282, 22293, 22307, 22319, {f: 2, c: 22323}, 22348,\n    22384, 22412, 22428, 22456, 22502, 22509, {f: 2, c: 22517}, 22527, 22537,\n    22560, 22578, 22652, 22656, 22697, 22734, 22736, 22740, 22746, 22761,\n    22796, 22820, 22831, 22881, 22893, 22986, 22994, 23005, {f: 2, c: 23011},\n    23044, 23052, 23075, 23111, 23125, 23139, 23149, 23166, 23198, 23207,\n    23212, 23219, 23264, 23296, 23321, 23333, 23341, 23361, 23420,\n    {f: 2, c: 23422}, 23434, [11919, 23587], 23595, 23600, 23651, 23657, 23676,\n    23755, 23762, 23796, 23844, 23846, 23875, 23878, 23882, 23954, 23956,\n    23961, 23968, 24024, 24032, 24056, 24064, 24082, {f: 2, c: 24084}, 24088,\n    24110, 24152, {f: 2, c: 24171}, 24232, 24234, {f: 2, c: 24254}, 0, 24274,\n    24327, 24334, {f: 2, c: 24348}, 24354, 24360, 24374, 24379, 24384,\n    [12089, 24400], 24408, 24420, 24457, 24476, 24487, 24484, 24495, 24504,\n    [11926, 24516], 24521, 24545, 24553, 24557, 24572, 24599, 24602, 24627,\n    24673, 24703, 24734, 24740, 24752, 24779, 24795, 24824, {f: 3, c: 24850},\n    24860, 24956, 24973, 24991, 25000, 25026, 25055, 25109, 25129, 25155,\n    25158, [11928, 25164], 25169, 25174, 25284, 25340, 25354, 25357, 25368,\n    25401, {f: 2, c: 25410}, 25445, 25460, 25469, 25476, 25479, 25488, 25502,\n    25553, 25564, 25609, 25616, 25634, 25684, 25691, 25709, 25723,\n    {f: 2, c: 25790}, 25829, 25847, 25851, 25860, 25878, 25881, 25927, 25959,\n    25985, 25989, 26050, 26096, 26098, 26156, 26188, {f: 2, c: 26203}, 26209,\n    26219, 0, 26276, 26312, 26348, 26373, 26387, 26419, 26440, 26444, 26486,\n    26491, 26544, 26546, 26617, 26583, 26585, 26608, 26668, {f: 2, c: 26672},\n    26715, 26738, 26741, 26746, 26756, 26789, 26802, 26832, 26838, 26856,\n    26861, {f: 2, c: 26864}, 26876, 26897, 26899, 26933, 26939, 26967, 26979,\n    26994, {f: 2, c: 27007}, 27046, 27053, 27063, {f: 2, c: 27094}, 27137,\n    27151, 27157, 27176, 27188, 27198, 27205, {f: 2, c: 27216}, 27222, 27227,\n    27267, 27273, 27281, {f: 3, c: 27293}, 27356, 27367, 27372, 27422, 27428,\n    27445, 27462, 27478, 27488, 27522, 27582, 27617, 27633, 27664, 27699,\n    [11937, 27701], 11938, 27737, 27766, 27771, 27781, 27797, 27804, 27856,\n    27860, 27862, 27872, {f: 2, c: 27883}, 27886, 27914, 27918, 27921, 27950,\n    27991, 27998, 28005, 28034, 28095, 28100, 28106, 28118, 28137, 28194,\n    28241, 28359, 28362, 28366, 28413, 28442, 28458, 28463, 28467, 28506,\n    28510, 28514, 28541, 28555, 28557, 28562, 28564, 28570, {f: 2, c: 28583},\n    28598, 28634, 28638, 0, 28729, 28732, 0, 28756, {f: 2, c: 28765}, 28772,\n    [11939, 28780], 28798, 28801, 28821, 28855, {f: 2, c: 28883}, 28888, 28892,\n    28935, 28960, 28977, 29002, 29010, 29024, 29049, 29074, 0, 29131, 29139,\n    29142, 29184, 29213, 29227, 29240, 29249, 29267, {f: 2, c: 29269}, 29276,\n    29325, [11944, 29357], 29364, 29383, 29435, {f: 2, c: 29444}, 29480, 29489,\n    29507, 29548, 29564, 29571, {f: 2, c: 29573}, 29589, {f: 3, c: 29598},\n    29606, 29611, 29621, 29623, 29628, 29647, 29657, 29673, 29684, 29693,\n    29700, 29706, {f: 2, c: 29722}, 29732, 29736, 29740, {f: 3, c: 29743},\n    29753, 29764, 29767, 29771, 29773, 29777, 29783, 29798, 29803, 29809,\n    29824, {f: 3, c: 29829}, 29840, 29848, 29852, 29856, 29859, 29864, 29867,\n    29877, 29887, 29896, 29914, 29918, 30030, 30073, 30081, 30096,\n    [12135, 30098], 30099, 30132, 30180, 30201, 30208, 30218, {f: 2, c: 30229},\n    30233, 30238, 30253, 30261, 30275, 30283, 30309, 30317, 30319, 30321,\n    30324, {f: 2, c: 30372}, 30405, 30412, 30444, 30460, 30516, 30518, 30556,\n    {f: 2, c: 30559}, 30578, 30589, 30613, 30634, 30694, 30704, 30708, 30726,\n    30754, {f: 2, c: 30765}, 30768, 30773, 30824, 30878, 30920, 30924, 30926,\n    30948, {f: 2, c: 30944}, 30962, 30967, 30971, 31025, 0, [11949, 31035],\n    31037, 31045, {f: 2, c: 31067}, 31115, 31126, 31128, [12145, 31160], 31163,\n    31178, 31194, 31235, 31241, 31249, 31262, 31277, 31289, 31301, 31308,\n    31325, 0, 31341, 31352, 31392, 31395, 31411, {f: 2, c: 31419}, 31430,\n    31495, 31508, 31527, 31537, 31559, 31566, 31584, 31593, 31597, 31602,\n    31633, 31663, 31703, 31705, 31755, 31759, 31776, 31782, 31793, 31798,\n    31825, 31833, 31847, 31854, 31856, 31932, 31935, {f: 2, c: 31944}, 31959,\n    31961, 31965, 31979, {f: 3, c: 32007}, 32019, 32029, 32035, 32065, 32083,\n    32089, 32093, 32122, 32134, {f: 2, c: 32139}, 32204, 32235, 32241, 32249,\n    32264, 32273, 32277, 32288, 32327, 32354, 32366, 32371, 32397, 32401,\n    32408, 32580, 32591, [11947, 11954, 32594], [11953, 32595], 32609, 32657,\n    32703, 32718, 32735, 32741, 32748, {f: 2, c: 32750}, 32762, 32782, 32785,\n    32788, 32804, 32806, 32826, 32828, 32864, 32881, 32885, 32926, 32934,\n    32939, {f: 2, c: 32983}, 33046, 33048, 33082, 33098, 33100, 33153, 33156,\n    33204, 33231, 33273, 33283, 33313, 33330, 33332, 33350, 33355, 33359,\n    33422, 33454, 33463, 33470, 33478, 33534, 33603, 33617, 33621, 33670,\n    33677, 33682, 33688, 33705, {f: 2, c: 33727}, 33770, 33807, 33809, 33866,\n    33910, 33960, 33967, 33984, 33986, 34032, 34045, 34060, 34100, 34142,\n    34191, 34231, 34254, 34221, 34322, 34345, 34386, 34403, 34412, 34415,\n    34426, 34445, 34449, 34456, {f: 2, c: 34471}, 34554, 34557, 34571, 34579,\n    34585, 34590, 34600, 34622, 34673, 34696, 34713, {f: 2, c: 34732}, 34741,\n    34774, 34795, 34797, 34817, 0, 34822, 34827, 34836, 34844, 34902, 34911,\n    [11970, 34916], 34968, 34986, {f: 2, c: 35005}, 35018, 35026, 35035,\n    {f: 2, c: 35056}, 35078, {f: 3, c: 35096}, 35111, 35120, 35134, 35195,\n    35284, 35286, 35301, 35313, 35335, 35343, 35349, 35362, 35406, 35455,\n    35572, 35615, 35639, {f: 2, c: 35651}, 35668, 35740, 35742, 35911, 35924,\n    35955, 36004, 36057, 36065, 36088, 36094, 36123, 36201, 36204, 36228,\n    36237, 36245, 36262, 36294, 36302, 36324, 36332, 36384, 36427, 36460,\n    36464, 36474, 36498, 36526, 36531, 36561, 36564, 36601, 36631, 36662,\n    36774, [12193, 36789], [11981, 36790], 0, 36832, 36836, 36854, 36866,\n    36908, 36932, 37000, 37013, 37017, 37019, 37026, 37044, 37079, 37085,\n    37108, 37143, 37148, 37169, 37178, 37181, 37192, 37211, 37217, 37220,\n    37262, 37278, 37288, {f: 2, c: 37293}, 37298, 37308, 37360, 37367, 37371,\n    37383, 37416, 37427, 37432, 37443, 37447, 37455, 37472, 37570,\n    {f: 2, c: 37579}, 37599, 37645, 37653, 37663, 37671, 37703, 37714, 0,\n    37738, 37741, 37787, 37818, 37801, 37825, 37834, 37858, 37882, 37885,\n    37903, 37940, 37951, 37973, 37995, 38002, [11986, 38264], 38310, 38313, 0,\n    38324, 38333, 38362, [11983, 11990, 38429], 38465, 38488, 38532, 38564,\n    38569, 38610, 195060, 38622, 38633, 38641, 38658, 38665, 38746, 38755,\n    38766, 38771, 38810, 38818, {f: 2, c: 38837}, 38873, 38878, 38900, 38922,\n    38926, 38942, 38947, 38955, 38974, {f: 2, c: 38994}, 39001, 39020, 39096,\n    39098, 39103, 39112, 39141, {f: 2, c: 39218}, 39232, 39245, 39260, 39263,\n    39345, {f: 2, c: 39353}, 39369, 39426, 39446, 39460, 39463,\n    {f: 2, c: 39469}, 39478, 39480, 39498, 39510, {f: 2, c: 39605}, 39673,\n    39683, 39712, {f: 2, c: 39731}, 39795, 39801, 39847, 39873, 39879, 39895,\n    39911, 39915, 39927, 39930, 39933, 39947, 39975, 39978, 39990, 40001,\n    40019, 40035, 40048, 40055, 40194, 40258, 40263, 40291, 40297, 40316,\n    40318, 40333, 40369, 40387, 40391, 40406, 40415, 40427, 40436, 40469,\n    40477, 40612, 40616, 40620, 40679, 40686, 40720, 40722, 40727, 40729,\n    40751, 40759, 40761, 40769, 40773, 40791, 40808, 40817, 40821, 40848,\n    40852, 40866, 0, 13317, 194564, 22048, 24267, 11925, 0, 144954, 0, 28665,\n    28390, 29107, [11940, 64073], {s: 4}, [11980, 64102], 0, 23986, 0, 20435,\n    20697, 20720, 20931, 22134, 27220, 27905, 28112, 28226, 28377, 29668,\n    29729, 30060, 30801, 34805, 144382, 29608, 15091, 13531, 17420, 16010, 0,\n    0, 19432, 0, 16090, 15138, 0, 17786, 16531, 0, 18021, 16643, 17043, 18094,\n    13448, 140809, {f: 3, c: 63584}, 63610, 63615, {s: 23}, {f: 2, c: 8836},\n    {f: 2, c: 8842}, 8713, 0, {f: 2, c: 8965}, {s: 9}, {f: 2, c: 8741},\n    {s: 14}, 8802, 0, 8773, 8776, {f: 2, c: 8822}, {s: 4}, 8487, {s: 209},\n    {f: 2, c: 8922}, 8533, 8984, {f: 2, c: 7742}, {f: 2, c: 504}, 470, 472,\n    474, 476, 260, 728, 317, 346, 350, 356, 377, 379, 261, 731, 318, 347, 711,\n    351, 357, 378, 733, 380, 340, 258, 313, 262, 268, 280, 270, 323, 327, 336,\n    344, 368, 354, 341, 259, 314, 263, 269, 281, 271, 273, 324, 328, 337, 345,\n    369, 355, 729, 264, 284, 292, 308, 348, 364, 265, 285, 293, 309, 349, 365,\n    625, 651, 638, 620, 622, 633, 648, 598, 627, 637, 642, 656, 635, 621, 607,\n    626, 669, 654, 609, 624, 641, 295, 661, 660, 614, 664, 450, 595, 599, 644,\n    608, 403, 616, 649, 600, 604, 606, 592, 623, 650, 612, 594, 653, 613, 674,\n    673, 597, 657, 634, 615, 865, 712, 716, 721, 8255, 783, {f: 5, c: 741}, 0,\n    0, 805, 812, 825, 796, {f: 2, c: 799}, 829, 809, 815, 734, 804, 816, 828,\n    820, {f: 2, c: 797}, {f: 2, c: 792}, 810, {f: 2, c: 826}, 794, {s: 3},\n    {f: 2, c: 610}, 618, 628, 630, 632, 640, 655, 665, 668, 671, 688, 690, 695,\n    704, {f: 2, c: 736}, {s: 6}, 8862, {s: 287}, 12348, 12543, 0,\n    {f: 2, c: 12310}, 9838, 9835, {f: 2, c: 10548}, 10687, 0, 12448, 0,\n    {f: 2, c: 10746}, {s: 13}, 962, {f: 10, c: 9461}, {f: 2, c: 9750}, 9649,\n    {f: 10, c: 12784}, 0, {f: 6, c: 12794}, {f: 15, c: 9150}, 0, 0, 10003, 0,\n    9251, 9166, {f: 4, c: 9680}, {f: 2, c: 8263}, 0, 8273, 8258,\n    {f: 16, c: 12688}, {s: 13}, {f: 2, c: 9136}, {f: 12, c: 9842},\n    {f: 2, c: 12441}, 8413, {s: 450}, 20296, 20319, 20330, 20332, 20494, 20504,\n    20545, 20722, 20688, 20742, 20739, 20789, 20821, 20823, 13493, 20938,\n    20962, 21079, 21196, 21206, 21243, 21276, 21347, 21405, 21522, 21631,\n    21640, 21840, 21889, 21933, 21966, 22075, 22174, 22185, 22195, 22391,\n    22396, 135963, 22479, 22500, 22628, 22665, 136302, 22738, 22752, 34369,\n    22923, 22930, 22979, 23059, 23143, 23159, 23172, 23236, 137405, 23421,\n    23443, 23570, 64060, 136884, 23674, 23695, 23711, 23715, 23722, 23760,\n    138804, 23821, 23879, 23937, 23972, 23975, 24011, 24158, 24313, 24320,\n    24322, 24355, 24381, 24404, 24445, 24589, 24596, 24600, 24629, 24647,\n    24733, 24788, 24797, 24875, 25020, 25017, 25122, 25178, 25199, 25302,\n    25468, 25573, 25721, 25796, 25808, 25897, 26013, 26170, 26146, 26155,\n    26160, 26163, 26184, 143812, {f: 2, c: 26231}, 26253, 26299, 26331, 26344,\n    26439, 26497, 26515, 26520, 26523, 26620, 26653, 26787, 26890, 26953,\n    144836, 26946, 26980, 27045, 27087, 15286, 15299, 27113, 27125, 145215,\n    27195, 145251, 27284, 27301, 15375, 27419, 27436, 27495, 27561, 27565,\n    27607, 27647, 27653, 27764, 27800, 27899, 27846, 27953, 27961, 27967,\n    27992, 28052, 28074, 28123, 28125, 28228, 28254, 28337, 28353, 28432,\n    28505, 28513, 28542, 28556, 28576, 28604, 28615, 28618, 28656, 28750,\n    28789, 28836, 28900, 28971, 28958, 28974, 29009, 29032, 29061, 29063,\n    29114, 29124, 29205, 15935, 29339, 149489, 29479, 29520, 29542, 29602,\n    29739, 29766, 29794, 29805, 29862, 29865, 29897, 29951, 29975, 16242,\n    30158, 30210, 30216, 30308, 30337, 30365, 30378, 30390, 30414, 30420,\n    30438, 30449, 30474, 30489, {f: 2, c: 30541}, 30586, 30592, 30612, 30688,\n    152718, 30787, 30830, 30896, 152846, 30893, 30976, 31004, 31022, 31028,\n    31046, 31097, 31176, 153457, 31188, 31198, 31211, 31213, 31365, 154052,\n    31438, 31485, 31506, 31533, 31547, 31599, 31745, 31795, 155041, 31853,\n    31865, 31887, 31892, 31904, 31957, 32049, 32092, 32131, 32166, 32194,\n    32296, 32663, 32731, 32821, 32823, 32970, 32992, 33011, 33120,\n    {f: 2, c: 33127}, 33133, 33211, 33226, 33239, 17499, 33376, 33396, 158463,\n    33441, {f: 2, c: 33443}, 33449, 33471, 33493, 33533, 33536, 33570, 33581,\n    33594, 33607, 33661, 33703, 33743, 33745, 33761, 33793, 33798, 33887,\n    33904, 33907, 33925, 33950, 33978, 159296, 34098, 34078, 34095, 34148,\n    34170, 34188, 34210, 34251, 34285, 34303, {f: 2, c: 34308}, 34320, 159988,\n    34328, 34360, 34391, 34402, 17821, 34421, 34488, 34556, 34695, 17898,\n    34826, 34832, 35022, 161412, 35122, 35129, 35136, 35220, 35318, 35399,\n    35421, 35425, 35445, 35536, 35654, 35673, 35689, 35741, 35913, 35944,\n    36271, 36305, 36311, 36387, 36413, 36475, 164471, 18500, 36602, 36638,\n    36653, 36692, 164813, 36840, 36846, 36872, 36909, 37015, 37043, 37054,\n    {f: 2, c: 37060}, 37063, 37103, 37140, 37142, {f: 2, c: 37154}, 37167,\n    37172, 37251, 37361, 37705, {f: 2, c: 37732}, 37795, 37855, 37892, 37939,\n    37962, 37987, 38001, 38286, 38303, 38316, 38326, 38347, 38352, 38355,\n    18864, 38366, 38565, 38639, 38734, 38805, 38830, 38842, 38849, 38857,\n    38875, 38998, 39143, 39256, 39427, 39617, 39619, 39630, 39638, 39682,\n    39688, 19479, 39725, 39774, 39782, 39812, 39818, 39838, 39886, 39909,\n    39928, 39971, {f: 2, c: 40015}, 40037, {f: 2, c: 40221}, 40259, 40274,\n    40330, 40342, 40384, 40364, 40380, 172432, 40423, 40455, 40606, 40623,\n    40855, 131209, 19970, 19983, 19986, 20009, 20014, 20039, 131234, 20049,\n    13318, 131236, 20073, 20125, 13356, 20156, 20163, 20168, 20203, 20186,\n    20209, 20213, 20246, 20324, 20279, 20286, 20312, 131603, {f: 2, c: 20343},\n    20354, 20357, 20454, 20402, 20421, 20427, 20434, 13418, 20466, 20499,\n    20508, 20558, 20563, 20579, 20643, 20616, {f: 2, c: 20626}, 20629, 20650,\n    131883, 20657, {f: 2, c: 20666}, 20676, 20679, 20723, 131969, 20686,\n    131953, 20692, 20705, 13458, 132089, 20759, 132170, 20832, 132361, 20851,\n    20867, 20875, 13500, 20888, 20899, 20909, 13511, 132566, 20979, 21010,\n    21014, 132943, 21077, 21084, 21100, 21111, 21124, 21122, 133127, 21144,\n    133178, 21156, {f: 2, c: 21178}, 21194, 21201, 133305, 21239, 21301, 21314,\n    133500, 133533, 21351, 21370, 21412, 21428, 133843, 21431, 21440, 133917,\n    {f: 2, c: 13661}, 21461, 13667, 21492, 21540, 21544, 13678, 21571, 21602,\n    21612, 21653, 21664, 21670, 21678, 21687, 21690, 21699, 134469, 21740,\n    21743, 21745, 21747, {f: 2, c: 21760}, 21769, 21820, 21825, 13734, 21831,\n    13736, 21860, 134625, 21885, 21890, 21905, 13765, 21970, 134805, 134765,\n    21951, 21961, 21964, 21969, 21981, 13786, 21986, 134756, 21993, 22056,\n    135007, 22023, 22032, 22064, 13812, 22077, 22080, 22087, 22110, 22112,\n    22125, 13829, 22152, 22156, 22173, 22184, 22194, 22213, 22221, 22239,\n    22248, {f: 2, c: 22262}, 135681, 135765, 22313, 135803, {f: 2, c: 22341},\n    22349, 135796, 22376, 22383, {f: 3, c: 22387}, 22395, 135908, 135895,\n    22426, {f: 2, c: 22429}, 22440, 22487, 135933, 22476, 135990, 136004,\n    22494, 22512, 13898, 22520, 22523, 22525, 22532, 22558, 22567, 22585,\n    136132, 22601, 22604, 22631, {f: 2, c: 22666}, 22669, {f: 2, c: 22671},\n    22676, 22685, 22698, 22705, 136301, 22723, 22733, 22754, {f: 2, c: 22771},\n    {f: 2, c: 22789}, 22797, 22804, 136663, 13969, 22845, 13977, 22854, 13974,\n    158761, 22879, 136775, {f: 2, c: 22901}, 22908, 22943, 22958, 22972, 22984,\n    22989, 23006, 23015, 23022, 136966, 137026, 14031, 23053, 23063, 23079,\n    23085, 23141, 23162, 23179, 23196, {f: 2, c: 23199}, 23202, 23217, 23221,\n    23226, 23231, 23258, 23260, 23269, 23280, 23278, 23285, 23304, 23319,\n    23348, 23372, 23378, 23400, 23407, 23425, 23428, 137667, 23446, 23468,\n    {f: 2, c: 14177}, 23502, 23510, 14188, 14187, 23537, 23549, 14197, 23555,\n    23593, 138326, 23647, {f: 2, c: 23655}, 23664, 138541, 138565, 138616,\n    138594, 23688, 23690, 14273, 138657, 138652, 23712, 23714, 23719, 138642,\n    23725, 23733, 138679, 23753, 138720, 138803, 23814, 23824, 23851, 23837,\n    23840, 23857, 23865, 14312, 23905, 23914, 14324, 23920, 139038, 14333,\n    23944, 14336, 23959, 23984, 23988, 139126, 24017, 24023, 139258, 24036,\n    24041, 14383, 14390, 14400, 24095, 24126, 24137, 14428, 24150, 14433,\n    {f: 2, c: 24173}, 139643, 24229, 24236, 24249, 24262, 24281, 140062, 24317,\n    24328, 140205, 24350, 24391, 24419, 24434, 24446, 24463, 24482, 24519,\n    24523, {f: 3, c: 24530}, 24546, {f: 2, c: 24558}, 24563, 14615, 24610,\n    24612, 14618, 24652, 24725, 24744, 141043, 24753, 24766, 24776, 24793,\n    24814, 24821, 24848, 24857, 24862, 24890, 14703, 24897, 24902, 24928,\n    141403, {f: 2, c: 24978}, 24983, 24997, 25005, 141483, 25045, 25053, 25077,\n    141711, 25123, 25170, 25185, 25188, 25211, 25197, 25203, 25241, 25301,\n    142008, 25341, 25347, 25360, {f: 2, c: 142159}, 25394, 25397,\n    {f: 2, c: 25403}, 25409, 25412, 25422, 142150, 25433, 142365, 142246,\n    25452, 25497, 142372, 25492, 25533, {f: 2, c: 25556}, 25568,\n    {f: 2, c: 25579}, 25586, 25630, 25637, 25641, 25647, 25690, 25693, 25715,\n    25725, 25735, 25745, 25759, {f: 2, c: 25803}, 25813, 25815, 142817, 25828,\n    25855, 14958, 25871, 25876, 14963, 25886, 25906, 25924, 25940, 25963,\n    25978, 25988, 25994, 26034, 26037, 26040, 26047, 26057, 26068, 15062,\n    26105, 26108, 26116, 26120, 26145, 26154, 26181, 26193, 26190, 15082,\n    143811, 143861, 143798, 26218, {f: 2, c: 26220}, 26235, 26240, 26256,\n    26258, 15118, 26285, 26289, 26293, 15130, 15132, 15063, 26369, 26386,\n    144242, 26393, 144339, 144338, 26445, 26452, 26461, 144336, 144356, 144341,\n    26484, 144346, 26514, 144351, 33635, 26640, 26563, 26568, 26578, 26587,\n    26615, 144458, 144465, 144459, 26648, 26655, 26669, 144485, 26675, 26683,\n    26686, 26693, 26697, 26700, 26709, 26711, 15223, 26731, 26734, 26748,\n    26754, 26768, 26774, 15213, {f: 3, c: 26776}, 26780, {f: 2, c: 26794},\n    26804, 26811, 26875, 144612, 144730, 26819, 26821, 26828, 26841,\n    {f: 2, c: 26852}, 26860, 26871, 26883, 26887, 15239, 144788, 15245, 26950,\n    26985, 26988, 27002, 27026, 15268, 27030, 27056, 27066, 27068, 27072,\n    27089, 144953, 144967, 144952, 27107, {f: 2, c: 27118}, 27123, 15309,\n    27124, 27134, 27153, 27162, 27165, 145180, {f: 2, c: 27186}, 27199, 27209,\n    27258, 27214, 27218, 27236, 145164, 27275, 15344, 27297, 145252, 27307,\n    27325, 27334, 27348, 27344, 27357, 145407, 145383, {f: 3, c: 27377}, 27389,\n    145444, 27403, {f: 3, c: 27407}, 145469, 27415, 15398, 27439, 27466, 27480,\n    27500, 27509, [11934, 27514], 27521, 27547, 27566, 146072, 27581,\n    {f: 3, c: 27591}, 27610, {f: 2, c: 27622}, 27630, 27650, 27658, 27662,\n    27702, 146559, 27725, 27739, 27757, 27780, 27785, 15555, 27796, 27799,\n    27821, 27842, 15570, 27868, 27881, 27885, 146688, 27904, 27940,\n    {f: 2, c: 27942}, 27751, 27951, 27964, 27995, 28000, 28016,\n    {f: 2, c: 28032}, 28042, 28045, 28049, 28056, 146752, 146938, 146937,\n    146899, 28075, 28078, 28084, 28098, 27956, 28104, 28110, 28127, 28150,\n    28214, 28190, 15633, 28210, {f: 2, c: 28232}, {f: 2, c: 28235}, 28239,\n    {f: 2, c: 28243}, 28247, 28259, 15646, 28307, 28327, 28340, 28355, 28469,\n    28395, 28409, 28411, 28426, 28428, 28440, 28453, 28470, 28476, 147326,\n    28498, 28503, 28512, 28520, 28560, 28566, 28606, 28575, 28581, 28591,\n    15716, {f: 2, c: 28616}, 28649, 147606, 28668, 28672, 28682, 28707, 147715,\n    28730, 28739, 28743, 28747, 15770, 28773, 28777, 28782, 28790, 28806,\n    28823, 147910, 28831, 28849, 147966, 28908, 28874, 28881, 28931, 28934,\n    28936, 28940, 15808, 28975, 29008, 29011, 29022, 15828, 29078, 29056,\n    29083, 29088, 29090, {f: 2, c: 29102}, 148412, 29145, 29148, 29191, 15877,\n    29236, 29241, 29250, 29271, 29283, 149033, {f: 2, c: 29294}, 29304, 29311,\n    29326, 149157, 29358, 29360, 29377, 15968, 29388, 15974, 15976, 29427,\n    29434, 29447, 29458, {f: 2, c: 29464}, 16003, 29497, 29484, 29491, 29501,\n    29522, 16020, 29547, 149654, {f: 2, c: 29550}, 29553, 29569, 29578, 29588,\n    29592, 29596, 29605, 29625, 29631, 29637, 29643, 29665, 29671, 29689,\n    29715, 29690, 29697, 29779, 29760, 29763, 29778, 29789, 29825, 29832,\n    150093, 29842, 29847, 29849, 29857, 29861, 29866, 29881, 29883, 29882,\n    29910, 29912, 29931, 150358, 29946, 150383, 29984, 29988, 29994, 16215,\n    150550, {f: 2, c: 30013}, 30016, 30024, 30032, 30034, 30066, 30065, 30074,\n    {f: 2, c: 30077}, 30092, 16245, 30114, 16247, 30128, 30135,\n    {f: 2, c: 30143}, 30150, 30159, 30163, 30173, {f: 2, c: 30175}, 30183,\n    30190, 30193, 30211, 30232, 30215, 30223, 16302, 151054, 30227,\n    {f: 2, c: 30235}, 151095, 30245, 30248, 30268, 30259, 151146, 16329, 30273,\n    151179, 30281, 30293, 16343, 30318, 30357, 30369, 30368, {f: 2, c: 30375},\n    30383, 151626, 30409, 151637, 30440, 151842, 30487, 30490, 30509, 30517,\n    151977, 16441, 152037, 152013, 30552, 152094, 30588, 152140, 16472, 30618,\n    30623, 30626, 30628, {f: 2, c: 30686}, 30692, 30698, 30700, 30715, 152622,\n    30725, 30729, 30733, 30745, 30764, 30791, 30826, 152793, 30858, 30868,\n    30884, 30877, 30879, 30907, 30933, 30950, {f: 2, c: 30969}, 30974, 152999,\n    30992, 31003, 31013, 31050, 31064, 16645, 31079, 31090, 31125, 31137,\n    31145, 31156, 31170, 31175, {f: 2, c: 31180}, 31190, 16712, 153513, 153524,\n    16719, 31242, 31253, 31259, 16739, 31288, 31303, 31318, 31321, 31324,\n    31327, 31335, 31338, 31349, 31362, 31370, 31376, 31404, 154068, 16820,\n    31417, 31422, 16831, 31436, 31464, 31476, 154340, 154339, 154353, 31549,\n    31530, {f: 2, c: 31534}, 16870, 16883, 31615, 31553, 16878, 31573, 31609,\n    31588, 31590, 31603, 154546, 16903, 31632, 31643, 16910, 31669, 31676,\n    31685, 31690, 154699, 154724, 31700, 31702, 31706, 31722, 31728, 31747,\n    31758, 31813, 31818, 31831, 31838, 31841, 31849, 31855, 155182, 155222,\n    155237, 31910, 155234, {f: 2, c: 31926}, 155352, 31940, 155330, 31949,\n    155368, 155427, 31974, 155484, 31989, 32003, 17094, 32018, 32030, 155616,\n    155604, {f: 2, c: 32061}, 32064, 32071, 155660, 155643, 17110, 32090,\n    32106, 32112, 17117, 32127, 155671, 32136, 32151, 155744, 32157, 32167,\n    32170, 32182, 32192, 32215, 32217, 32230, 17154, 155885, 64088, 32272,\n    32279, 32285, 32295, 32300, 32325, 32373, 32382, {f: 2, c: 32390}, 17195,\n    32410, 17219, 32572, 32571, 32574, 32579, 13505, 156272, 156294,\n    {f: 2, c: 32611}, 32621, {f: 2, c: 32637}, 32656, 20859, 146702, 32662,\n    32668, 32685, 156674, 32707, 32719, 32739, 32754, 32778, 32776, 32790,\n    32812, 32816, 32835, 32870, 32891, 32921, 32924, 32932, 32935, 32952,\n    157310, 32965, 32981, 32998, 33037, 33013, 33019, 17390, 33077, 33054,\n    17392, 33060, 33063, 33068, 157469, 33085, 17416, 33129, 17431, 17436,\n    33157, 17442, 33176, 33202, 33217, 33219, 33238, 33243, 157917, 33252,\n    157930, 33260, 33277, 33279, 158063, 33284, 158173, 33305, 33314, 158238,\n    33340, 33353, 33349, 158296, 17526, 17530, 33367, 158348, 33372, 33379,\n    158391, 17553, 33405, 33407, 33411, 33418, 33427, {f: 2, c: 33447}, 33458,\n    33460, 33466, 33468, 33506, 33512, 33527, {f: 2, c: 33543}, 33548, 33620,\n    33563, 33565, 33584, 33596, 33604, 33623, 17598, 17620, 17587,\n    {f: 2, c: 33684}, 33691, 33693, 33737, 33744, 33748, 33757, 33765, 33785,\n    33813, 158835, 33815, 33849, 33871, {f: 2, c: 33873}, {f: 2, c: 33881},\n    33884, 158941, 33893, 33912, 33916, 33921, 17677, 33943, 33958, 33982,\n    17672, {f: 2, c: 33998}, 34003, 159333, 34023, 34026, 34031, 34033, 34042,\n    34075, {f: 2, c: 34084}, 34091, 34127, 34159, 17731, 34129,\n    {f: 2, c: 34145}, 159636, 34171, 34173, 34175, 34177, 34182, 34195, 34205,\n    34207, 159736, {f: 2, c: 159734}, 34236, 34247, 34250, {f: 2, c: 34264},\n    34271, 34273, 34278, 34294, 34304, 34321, 34334, 34337, 34340, 34343,\n    160013, 34361, 34364, 160057, 34368, 34387, 34390, 34423, 34439, 34441,\n    {f: 2, c: 34460}, 34481, 34483, 34497, 34499, 34513, 34517, 34519, 34531,\n    34534, 17848, 34565, 34567, 34574, 34576, 34591, 34593, 34595, 34609,\n    34618, 34624, 34627, 34641, 34648, {f: 2, c: 34660}, 34674, 34684, 160731,\n    160730, 34727, 34697, 34699, 34707, 34720, 160766, 17893, 34750, 160784,\n    34753, 34766, 34783, 160841, 34787, {f: 2, c: 34789}, 34794, 34835, 34856,\n    34862, 34866, 34876, 17935, 34890, 34904, 161301, 161300, 34921, 161329,\n    34927, 34976, 35004, 35008, 161427, 35025, 35027, 17985, 35073, 161550,\n    35127, 161571, 35138, 35141, 35145, 161618, 35170, 35209, 35216, 35231,\n    35248, 35255, 35288, 35307, 18081, 35315, 35325, 35327, 18095, 35345,\n    35348, 162181, 35361, 35381, 35390, 35397, 35405, 35416, 35502, 35472,\n    35511, 35543, 35580, 162436, 35594, 35589, 35597, 35612, 35629, 18188,\n    35665, 35678, 35702, 35713, 35723, {f: 2, c: 35732}, 35897, 162739, 35901,\n    162750, 162759, 35909, 35919, 35927, 35945, 35949, 163000, 35987, 35986,\n    35993, 18276, 35995, 36054, 36053, 163232, 36081, 163344, 36105, 36110,\n    36296, 36313, 36364, 18429, 36349, 36358, 163978, 36372, 36374,\n    {f: 2, c: 36385}, 36391, 164027, 18454, 36406, 36409, 36436, 36450, 36461,\n    36463, 36504, 36510, 36533, 36539, 164482, 18510, 164595, 36608, 36616,\n    36651, 36672, 36682, 36696, 164876, 36772, 36788, 164949, 36801, 36806,\n    64036, 36810, 36813, 36819, 36821, 36849, 36853, 36859, 36876, 36919,\n    165227, 36931, 36957, {f: 2, c: 165320}, 36997, 37004, 37008, 37025, 18613,\n    37040, 37046, 37059, 37064, 165591, 37084, 37087, 165626, 37110, 37106,\n    37120, 37099, {f: 2, c: 37118}, 37124, 37126, 37144, 37150, 37175, 37177,\n    {f: 2, c: 37190}, 37207, 37209, 37236, 37241, 37253, 37299, 37302,\n    {f: 2, c: 37315}, 166217, 166214, 37356, 37377, {f: 2, c: 37398}, 166251,\n    37442, 37450, 37462, 37473, 37477, 37480, 166280, {f: 2, c: 37500}, 37503,\n    37513, 37517, 37527, 37529, 37535, 37547, {f: 2, c: 166330}, 37554,\n    {f: 2, c: 37567}, 37574, 37582, 37605, 37649, 166430, 166441, 37623, 37673,\n    166513, 166467, 37713, 37722, 37739, 37745, 37747, 37793, 166553, 166605,\n    37768, 37771, 37775, 37790, 37877, 166628, 166621, 37873, 37831, 37852,\n    37863, 37897, {f: 2, c: 37910}, 37883, 37938, 37947, 166849, 166895, 37997,\n    37999, 38265, 38278, {f: 2, c: 38284}, 167184, 167281, 38344, 167419,\n    167455, 38444, {f: 2, c: 38451}, 167478, 38460, 38497, 167561, 38530,\n    167659, 38554, 167730, 18919, 38579, 38586, 38589, 18938, 167928, 38616,\n    38618, 38621, 18948, 38676, 38691, 18985, 38710, 38721, 38727, 38743,\n    38747, 38762, 168608, 168625, 38806, 38814, {f: 2, c: 38833}, 38846, 38860,\n    38865, 38868, 38872, 38881, 38897, 38916, 38925, 38932, 38934, 19132,\n    169104, {f: 2, c: 38962}, 38949, 38983, 39014, 39083, 39085, 39088, 169423,\n    39095, {f: 2, c: 39099}, 39106, 39111, 39115, 39137, 39139, 39146,\n    {f: 2, c: 39152}, 39155, 39176, 19259, 169712, {f: 2, c: 39190}, 169753,\n    {f: 3, c: 39194}, 169808, 39217, {f: 3, c: 39226}, 39233, 39238, 39246,\n    39264, 39331, 39334, 39357, 39359, 39363, 39380, 39385, 39390, 170182,\n    39408, 39417, 39420, 39434, 39441, 39450, 39456, 39473, 39492, 39500,\n    39512, 19394, 39599, 19402, 39607, 19410, 39609, 170610, 39622, 39632,\n    39634, 39637, 39648, 39653, 39657, 39692, 39696, 39698, 39702, 39708,\n    39723, 39741, 19488, 39755, 39779, 39781, {f: 2, c: 39787},\n    {f: 2, c: 39798}, 39846, 39852, 171483, 39858, 39864, 39870, 39923, 39896,\n    39901, 39914, 39919, 39918, 171541, 171658, 171593, 39958,\n    {f: 3, c: 39960}, 39965, 39970, 39977, 171716, 39985, 39991, 40005, 40028,\n    171753, {f: 2, c: 40009}, 171739, 40020, 40024, 40027, 40029, 40031,\n    {f: 3, c: 40041}, {f: 2, c: 40045}, 40050, 40053, 40058, 40166, 40178,\n    40203, [171982, 171991], 40209, {f: 2, c: 40215}, 172079, 19652, 172058,\n    40242, 19665, 40266, 40287, 40290, 172281, 172162, 40307, {f: 2, c: 40310},\n    40324, 40345, 40353, 40383, 40373, 40377, 40381, 40393, 40410, 40416,\n    40419, 19719, 40458, 40450, 40461, 40476, 40571, 139800, 40576, 40581,\n    40603, 172940, 40637, 173111, 40671, 40703, 40706, 19831, 40707, 40762,\n    40765, 40774, 40787, 40789, 40792, 173553, 40797, 173570, 40809, 40813,\n    40816, 173746, 11948, 13844, 14509, 15820, 16348, 17854, 17936, 19326,\n    19512, 19681, 19980, {f: 2, c: 20003}, 20089, 20211, 20236, 20249, 20267,\n    20270, 20273, 20356, 20382, 20407, 20484, 20492, 20556, 20575, 20578,\n    20599, 20622, 20638, 20642, 20675, 20712, 20721, 20734, 20743,\n    {f: 3, c: 20748}, 20787, 20792, 20852, 20868, 20920, 20922, 20936, 20943,\n    20945, {f: 2, c: 20947}, 20952, 20959, 20997, 21030, 21032, 21035,\n    {f: 2, c: 21041}, 21045, 21052, 21082, 21088, 21102, {f: 2, c: 21112},\n    21130, 21132, 21217, 21225, 21233, 21251, 21265, 21279, 21293, 21298,\n    21309, 21349, 21357, 21369, 21374, 21396, 21401, 21418, 21423, 21434,\n    21441, {f: 2, c: 21444}, 21472, 21523, 21546, 21553, {f: 2, c: 21556},\n    21580, 21671, 21674, 21681, 21691, 21710, 21738, 21756, 21765, 21768,\n    21781, 21799, 21802, 21814, 21841, 21862, 21903, 21906, 21908, 21924,\n    21938, 21955, 21958, 21971, 21979, 21996, 21998, 22001, 22006, 22008,\n    22021, 22029, {f: 2, c: 22033}, 22060, 22069, 22073, 22093, 22100, 22149,\n    22175, 22182, 22199, 22220, 22223, 22233, 22241, 22251, 22253, 22257,\n    22279, 22284, {f: 2, c: 22298}, 22301, 22316, 22318, {f: 2, c: 22333},\n    22367, 22379, 22381, 22394, 22403, 22423, 22446, 22485, 22503, 22541,\n    22566, 22605, 22607, 22623, 22637, 22655, 22657, 22680, 22716, 22815,\n    22819, 22873, 22905, 22935, 22959, 22963, 23007, 23025, 23032, 23218,\n    23224, 23274, 23286, 23323, 23325, 23329, 23352, 23479, 23511, 23520,\n    23583, 23594, 23596, 23606, 23641, 23644, 23661, 23773, 23809, 23860,\n    23869, 23897, 23934, 23939, 24007, 24057, 24104, 24114, 24117, 24155,\n    24168, 24170, 24183, 24192, 24203, 24243, 24253, 24273, {f: 2, c: 24276},\n    24397, 24492, 24554, 24583, 24649, 24660, 24679, 24763, 24772, 24829,\n    24842, 24854, 24874, 24886, 24926, 24932, 24955, 24957, 24959, 24989,\n    25016, 25052, 25058, 25061, 25064, 25092, 25095, 25137, 25145, 25149,\n    25210, 25232, 25256, 25306, 25332, 25366, 25386, 25398, 25414, 25419,\n    25427, 25457, 25461, 25471, 25474, 25482, {f: 2, c: 25518}, 25578,\n    {f: 2, c: 25592}, 25618, 25624, 25632, 25636, 25642, 25653, 25661, 25663,\n    25682, 25695, 25716, 25744, {f: 2, c: 25752}, 25772, 25779, 25837, 25840,\n    25883, 25887, 25902, 25929, 25952, 26002, 26005, 26036, 26046, 26056,\n    26062, 26064, 26079, 26238, {f: 2, c: 26251}, 26291, 26304, 26319, 26405,\n    26421, 26453, 26496, 26511, 26513, 26532, 26545, 26549, 26558, 26664,\n    26758, 26859, 26869, 26903, 26931, 26936, 26971, 26981, 27048, 27051,\n    27055, 27109, 27121, 27210, 27221, 27239, 27249, 27311, {f: 2, c: 27336},\n    27395, 27451, 27455, {f: 2, c: 27517}, 27568, 27639, 27641, 27652, 27657,\n    27661, 27692, 27722, 27730, 27732, 27769, 27820, 27828, 27858, 28001,\n    28028, 28089, 28144, 28229, 28275, 28283, 28285, 28297, 28348,\n    {f: 2, c: 28378}, 28454, 28457, 28464, 28551, 28573, 28590, 28599, 28685,\n    28704, 28745, 28824, 28848, {f: 2, c: 28885}, 28997, 29106, 29172, 29207,\n    29215, 29251, {f: 2, c: 29263}, 29274, 29280, 29288, 29303, 29316, 29385,\n    29413, 29428, 29442, 29451, 29470, 29474, {f: 2, c: 29498}, 29517, 29528,\n    29543, 29810, 29871, 29919, 29924, 29940, 29947, 29974, 29985, 30015,\n    30046, 30105, 30116, 30145, 30148, 30156, 30167, 30172, 30177, 30191,\n    30212, 30220, 30237, 30258, 30264, 30277, 30282, 30303, 30381, 30397,\n    30425, 30443, 30448, 30457, 30464, 30478, 30498, 30504, 30511, 30521,\n    30526, 30533, 30538, 30543, 30558, 30564, 30567, 30572, 30596,\n    {f: 2, c: 30604}, 30614, 30631, 30639, 30647, 30654, 30665, 30673, 30681,\n    30705, 30775, 30812, 30846, 30872, 30881, 30897, 30899, 30921, 30931,\n    30988, 31007, {f: 2, c: 31015}, 31039, 31042, 31060, 31083, 31100, 31147,\n    31172, 31210, 31234, 31244, 31280, 31290, 31300, 31360, 31366, 31380,\n    31413, 31421, 31486, 31531, 31607, 31648, 31660, 31664, 31720, 31730,\n    31736, 31740, 31742, 31753, 31784, 31791, 31810, {f: 2, c: 31826},\n    {f: 3, c: 31835}, 31858, 31869, 31879, 31902, 31930, 31943, 31955, 31962,\n    32060, 32077, 32130, 32133, 32141, 32145, 32158, 32179, 32185, 32208,\n    32229, {f: 2, c: 32245}, 32303, 32310, 32324, 32367, 32376, 32385, 32573,\n    32603, 32605, 32613, 32625, {f: 2, c: 32639}, 32651, 32674,\n    {f: 3, c: 32765}, 32775, 32781, 32798, 32825, 32904, 32910, 32975, 32980,\n    33005, 33008, 33015, 33018, 33022, 33027, 33047, 33072, 33111, 33135,\n    33139, 33163, 33168, 33179, 33182, 33227, 33237, {f: 2, c: 33245}, 33249,\n    33263, 33270, 33280, 33291, {f: 2, c: 33299}, 33306, 33338, 33348, 33389,\n    33412, 33417, 33425, 33450, 33456, 33488, 33514, 33519, 33526, 33622,\n    33656, 33784, 33788, 33880, 33939, 33969, 33981, 34043, 34118, 34134,\n    34141, 34181, 34200, 34370, 34374, 34496, 34580, 34594, 34606, 34617,\n    34653, 34683, 34700, 34702, {f: 2, c: 34711}, 34718, 34723, 34734, 34751,\n    34761, 34778, 34840, 34843, 34861, 34874, 34885, 34891, 34894, 34901,\n    34906, 34926, {f: 3, c: 34970}, 35021, 35040, 35055, {f: 2, c: 35086},\n    35110, 35125, 35162, 35164, 35179, 35184, 35196, 35237, 35253, 35260,\n    35285, 35401, 35415, 35431, 35454, 35462, 35478, 35510, 35529, 35537,\n    35549, 35564, 35573, 35590, 35599, 35601, 35653, 35666, 35693, 35704,\n    35708, 35710, 35717, 35743, 35915, 35923, 35963, 36026, 36037, 36041,\n    36050, 36076, 36085, 36087, 36097, 36099, 36119, 36124, 36206, 36241,\n    36255, 36267, 36274, 36309, 36327, {f: 2, c: 36337}, 36340, 36353, 36363,\n    36390, 36401, {f: 2, c: 36416}, 36429, 36431, 36444, 36449, 36457, 36465,\n    36469, 36471, 36489, 36496, 36501, 36506, 36519, 36521, 36525, 36584,\n    36592, 36615, 36632, 36645, 36647, 36652, 36661, 36666, 36675, 36679,\n    36689, 36693, {f: 3, c: 36768}, 36773, 36868, 36891, 36911, 36940, 36955,\n    36976, 36980, 36985, 37003, 37016, 37024, 37042, 37053, 37065, 37104,\n    37125, 37157, 37210, 37223, 37242, 37258, 37265, 37269, 37296, 37307,\n    37309, 37314, 37317, 37376, 37385, 37411, 37494, 37518, 37551,\n    {f: 2, c: 37563}, 37569, 37571, 37573, 37576, 37652, 37683, 37686, 37720,\n    37759, 37762, 37770, 37819, 37836, 37862, 37881, 37890, {f: 2, c: 37901},\n    37934, 37964, 38280, 38305, 38335, 38342, 38345, {f: 2, c: 38353}, 38368,\n    38372, 38374, 38436, 38449, 38456, 38461, 38484, 38516, 38523, 38527,\n    38529, 38531, 38537, 38550, 38574, 38659, 38683, {f: 2, c: 38689}, 38696,\n    38705, 38759, 38774, 38781, 38783, 38809, 38815, 38828, 38841, 38861,\n    38880, 38895, 38919, 38950, 38958, {f: 2, c: 39010}, 39092, 39109, 39170,\n    39185, 39189, 39221, 39240, 39252, 39262, 39393, 39436, 39440, 39459,\n    39489, 39505, {f: 2, c: 39613}, 39681, 39689, 39691, {f: 2, c: 39693},\n    39705, 39733, 39752, 39765, 39784, 39808, 39814, 39824, 39837, 39856,\n    39871, 39880, 39935, 39938, 39964, 39989, 40004, 40022, 40033, 40040,\n    40240, 40253, 40298, 40315, 40421, 40425, 40435, 40570, {f: 3, c: 40578},\n    40624, 40676, 40688, 40690, 40713, 40719, 40724, 40731, 40738, 40742,\n    {f: 2, c: 40746}, 40756, 40794, 40815, 40862, 40869, 131317, 151044,\n    151538, 163187, 194581, 194630, 194713, 194726, 194789, 195038, 13790,\n    {s: 4}, 172722, 0, 0, 131416, {s: 4}, 132529, 0, 0, 132844, {s: 6}, 134488,\n    {s: 21}, 154060, {s: 9}, 14756, 14776, 142914, 0, 0, 14940, 0, 0, 143339,\n    0, 0, 162228, 0, 15044, 15051, {s: 5}, 14981, {s: 8}, 15347, 27384, {s: 5},\n    15665, {s: 9}, 147531, 0, 15936, 14497, {s: 34}, 158878, {s: 12}, 18207,\n    162876, {s: 4}, 18462, {s: 71}, 39709, 39724, 20482, 20958, 21255, 23532,\n    63784, 26142, 63785, 28746, 64021, 21857, 27706, 31328, 156492, 34819,\n    38315, 38741, 171581, 173594],\n  'Adobe-Korea1': [{f: 95, c: 32}, 8361, 8208, 169, 0, 0, [12288, 12644],\n    {f: 2, c: 12289}, 12539, 8229, [8230, 8943], 168, 12291, {f: 2, c: 8211},\n    8214, 65340, 65374, {f: 2, c: 8216}, {f: 2, c: 8220}, {f: 2, c: 12308},\n    {f: 10, c: 12296}, 177, 215, 247, 8800, {f: 2, c: 8804}, 8734, 8756, 176,\n    {f: 2, c: 8242}, 8451, 8491, {f: 2, c: 65504}, 65509, 9794, 9792, 8736,\n    8869, 8978, 8706, 8711, 8801, 8786, 167, 8251, 9734, 9733, 9675, 9679,\n    9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8594,\n    {f: 2, c: 8592}, {f: 2, c: 8595}, 12307, 171, 187, 8730, 8765, 8733, 8757,\n    {f: 2, c: 8747}, 8712, 8715, {f: 2, c: 8838}, {f: 2, c: 8834}, 8746, 8745,\n    {f: 2, c: 8743}, 65506, 8658, 8660, 8704, 8707, 180, 732, 711, 728, 733,\n    730, 729, 184, 731, 161, 191, 8758, 8750, 8721, 8719, 164, 8457, 8240,\n    9665, 9664, 9655, 9654, 9828, {f: 2, c: 9824}, 9829, 9831, 9827, 9673,\n    9672, 9635, {f: 2, c: 9680}, 9618, {f: 2, c: 9636}, 9640, 9639, 9638, 9641,\n    9832, 9743, 9742, 9756, 9758, 182, {f: 2, c: 8224}, 8597, 8599, 8601, 8598,\n    8600, 9837, {f: 2, c: 9833}, 9836, 12927, 12828, 8470, 13255, 8482, 13250,\n    13272, 8481, {f: 59, c: 65281}, 65510, {f: 33, c: 65341}, 65507,\n    {f: 51, c: 12593}, {f: 42, c: 12645}, {f: 10, c: 8560}, {f: 10, c: 8544},\n    {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945}, {f: 7, c: 963}, 9472,\n    9474, 9484, 9488, 9496, 9492, 9500, 9516, 9508, 9524, 9532, 9473, 9475,\n    9487, 9491, 9499, 9495, 9507, 9523, 9515, 9531, 9547, 9504, 9519, 9512,\n    9527, 9535, 9501, 9520, 9509, 9528, 9538, 9490, 9489, 9498, 9497, 9494,\n    9493, 9486, 9485, {f: 2, c: 9502}, {f: 2, c: 9505}, {f: 2, c: 9510},\n    {f: 2, c: 9513}, {f: 2, c: 9517}, {f: 2, c: 9521}, {f: 2, c: 9525},\n    {f: 2, c: 9529}, {f: 2, c: 9533}, {f: 2, c: 9536}, {f: 8, c: 9539},\n    {f: 3, c: 13205}, 8467, 13208, 13252, {f: 4, c: 13219}, {f: 10, c: 13209},\n    13258, {f: 3, c: 13197}, 13263, {f: 2, c: 13192}, 13256, {f: 2, c: 13223},\n    {f: 10, c: 13232}, {f: 5, c: 13184}, {f: 6, c: 13242}, {f: 5, c: 13200},\n    8486, {f: 2, c: 13248}, {f: 3, c: 13194}, 13270, 13253, {f: 3, c: 13229},\n    13275, {f: 4, c: 13225}, 13277, 13264, 13267, 13251, 13257, 13276, 13254,\n    198, 208, 170, 294, 306, 319, 321, 216, 338, 186, 222, 358, 330,\n    {f: 28, c: 12896}, {f: 26, c: 9424}, {f: 15, c: 9312}, 189,\n    {f: 2, c: 8531}, 188, 190, {f: 4, c: 8539}, 230, 273, 240, 295, 305, 307,\n    312, 320, 322, 248, 339, 223, 254, 359, 331, 329, {f: 28, c: 12800},\n    {f: 26, c: 9372}, {f: 15, c: 9332}, 185, {f: 2, c: 178}, 8308, 8319,\n    {f: 4, c: 8321}, {f: 83, c: 12353}, {f: 86, c: 12449}, {f: 6, c: 1040},\n    1025, {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, {f: 2, c: 44032}, 44036,\n    {f: 4, c: 44039}, {f: 8, c: 44048}, {f: 5, c: 44057}, 44064, 44068,\n    {f: 2, c: 44076}, {f: 3, c: 44079}, {f: 2, c: 44088}, 44092, 44096, 44107,\n    44109, 44116, 44120, 44124, {f: 2, c: 44144}, 44148, {f: 2, c: 44151},\n    44154, {f: 2, c: 44160}, {f: 4, c: 44163}, {f: 4, c: 44169}, 44176, 44180,\n    {f: 2, c: 44188}, {f: 3, c: 44191}, {f: 3, c: 44200}, 44204,\n    {f: 2, c: 44207}, {f: 2, c: 44216}, {f: 3, c: 44219}, 44225, 44228, 44232,\n    44236, 44245, 44247, {f: 2, c: 44256}, 44260, {f: 2, c: 44263}, 44266,\n    44268, {f: 3, c: 44271}, 44275, {f: 2, c: 44277}, {f: 2, c: 44284}, 44288,\n    44292, 44294, {f: 2, c: 44300}, 44303, 44305, 44312, 44316, 44320, 44329,\n    {f: 2, c: 44332}, {f: 2, c: 44340}, 44344, 44348, {f: 2, c: 44356}, 44359,\n    44361, 44368, 44372, 44376, 44385, 44387, {f: 2, c: 44396}, 44400,\n    {f: 4, c: 44403}, {f: 3, c: 44411}, 44415, {f: 2, c: 44417},\n    {f: 2, c: 44424}, 44428, 44432, {f: 2, c: 44444}, 44452, 44471,\n    {f: 2, c: 44480}, 44484, 44488, {f: 2, c: 44496}, 44499, 44508, 44512,\n    44516, {f: 2, c: 44536}, 44540, {f: 3, c: 44543}, {f: 2, c: 44552}, 44555,\n    44557, 44564, {f: 2, c: 44592}, 44596, {f: 2, c: 44599}, 44602,\n    {f: 2, c: 44608}, 44611, {f: 2, c: 44613}, 44618, {f: 3, c: 44620}, 44624,\n    44628, 44630, {f: 2, c: 44636}, {f: 3, c: 44639}, 44645, {f: 2, c: 44648},\n    44652, 44656, {f: 2, c: 44664}, {f: 3, c: 44667}, {f: 2, c: 44676}, 44684,\n    {f: 3, c: 44732}, 44736, 44740, {f: 2, c: 44748}, {f: 3, c: 44751},\n    {f: 2, c: 44760}, 44764, 44776, 44779, 44781, 44788, 44792, 44796,\n    {f: 2, c: 44807}, 44813, 44816, {f: 2, c: 44844}, 44848, 44850, 44852,\n    {f: 2, c: 44860}, 44863, {f: 3, c: 44865}, {f: 2, c: 44872}, 44880,\n    {f: 2, c: 44892}, {f: 2, c: 44900}, 44921, 44928, 44932, 44936,\n    {f: 2, c: 44944}, 44949, 44956, {f: 2, c: 44984}, 44988, 44992,\n    {f: 3, c: 44999}, 45003, {f: 2, c: 45005}, 45012, 45020, {f: 2, c: 45032},\n    {f: 2, c: 45040}, 45044, 45048, {f: 2, c: 45056}, 45060, 45068, 45072,\n    45076, {f: 2, c: 45084}, 45096, {f: 2, c: 45124}, 45128, 45130, 45132,\n    45134, {f: 3, c: 45139}, 45143, 45145, 45149, {f: 2, c: 45180}, 45184,\n    45188, {f: 2, c: 45196}, 45199, 45201, {f: 3, c: 45208}, 45212,\n    {f: 4, c: 45215}, {f: 2, c: 45224}, {f: 5, c: 45227}, 45233,\n    {f: 3, c: 45235}, 45240, 45244, {f: 2, c: 45252}, {f: 3, c: 45255},\n    {f: 2, c: 45264}, 45268, 45272, 45280, 45285, {f: 2, c: 45320},\n    {f: 2, c: 45323}, 45328, {f: 2, c: 45330}, {f: 2, c: 45336},\n    {f: 3, c: 45339}, {f: 3, c: 45347}, 45352, 45356, {f: 2, c: 45364},\n    {f: 3, c: 45367}, {f: 2, c: 45376}, 45380, 45384, {f: 2, c: 45392},\n    {f: 2, c: 45396}, 45400, 45404, 45408, {f: 2, c: 45432}, 45436, 45440,\n    45442, {f: 2, c: 45448}, 45451, 45453, {f: 3, c: 45458}, 45464, 45468,\n    45480, 45516, 45520, 45524, {f: 2, c: 45532}, 45535, {f: 2, c: 45544},\n    45548, 45552, 45561, 45563, 45565, {f: 2, c: 45572}, 45576,\n    {f: 2, c: 45579}, {f: 2, c: 45588}, 45591, 45593, 45600, 45620, 45628,\n    45656, 45660, 45664, {f: 2, c: 45672}, {f: 2, c: 45684}, 45692,\n    {f: 2, c: 45700}, 45705, {f: 2, c: 45712}, 45716, {f: 3, c: 45720},\n    {f: 2, c: 45728}, 45731, {f: 2, c: 45733}, 45738, 45740, 45744, 45748,\n    {f: 2, c: 45768}, 45772, 45776, 45778, {f: 2, c: 45784}, 45787, 45789,\n    45794, {f: 3, c: 45796}, 45800, {f: 5, c: 45803}, {f: 3, c: 45811},\n    {f: 5, c: 45815}, {f: 3, c: 45823}, 45828, 45832, {f: 2, c: 45840},\n    {f: 3, c: 45843}, 45852, {f: 3, c: 45908}, 45912, {f: 2, c: 45915},\n    {f: 2, c: 45918}, {f: 2, c: 45924}, 45927, 45929, 45931, 45934,\n    {f: 2, c: 45936}, 45940, 45944, {f: 2, c: 45952}, {f: 3, c: 45955}, 45964,\n    45968, 45972, {f: 2, c: 45984}, 45992, 45996, {f: 2, c: 46020}, 46024,\n    {f: 2, c: 46027}, 46030, 46032, {f: 2, c: 46036}, 46039, 46041, 46043,\n    46045, 46048, 46052, 46056, 46076, 46096, 46104, 46108, 46112,\n    {f: 2, c: 46120}, 46123, 46132, {f: 2, c: 46160}, 46164, 46168,\n    {f: 2, c: 46176}, 46179, 46181, 46188, 46208, 46216, 46237, 46244, 46248,\n    46252, 46261, 46263, 46265, 46272, 46276, 46280, 46288, 46293,\n    {f: 2, c: 46300}, 46304, {f: 2, c: 46307}, 46310, {f: 2, c: 46316}, 46319,\n    46321, 46328, {f: 2, c: 46356}, 46360, {f: 2, c: 46363}, {f: 2, c: 46372},\n    {f: 4, c: 46375}, {f: 2, c: 46384}, 46388, 46392, {f: 2, c: 46400},\n    {f: 3, c: 46403}, {f: 3, c: 46411}, 46416, 46420, {f: 2, c: 46428},\n    {f: 3, c: 46431}, {f: 2, c: 46496}, 46500, 46504, {f: 2, c: 46506},\n    {f: 2, c: 46512}, {f: 3, c: 46515}, {f: 3, c: 46523}, 46528, 46532,\n    {f: 2, c: 46540}, {f: 3, c: 46543}, 46552, 46572, {f: 2, c: 46608}, 46612,\n    46616, 46629, 46636, 46644, 46664, 46692, 46696, {f: 2, c: 46748}, 46752,\n    46756, {f: 2, c: 46763}, 46769, 46804, 46832, 46836, 46840,\n    {f: 2, c: 46848}, 46853, {f: 2, c: 46888}, 46892, {f: 2, c: 46895},\n    {f: 2, c: 46904}, 46907, 46916, 46920, 46924, {f: 2, c: 46932}, 46944,\n    46948, 46952, {f: 2, c: 46960}, 46963, 46965, {f: 2, c: 46972}, 46976,\n    46980, {f: 2, c: 46988}, {f: 4, c: 46991}, {f: 4, c: 46998}, 47004, 47008,\n    {f: 2, c: 47016}, {f: 3, c: 47019}, {f: 2, c: 47028}, 47032, 47047, 47049,\n    {f: 2, c: 47084}, 47088, 47092, {f: 2, c: 47100}, {f: 3, c: 47103},\n    {f: 3, c: 47111}, 47116, 47120, {f: 2, c: 47128}, 47131, 47133,\n    {f: 2, c: 47140}, 47144, 47148, {f: 2, c: 47156}, {f: 3, c: 47159}, 47168,\n    47172, 47185, 47187, {f: 2, c: 47196}, 47200, 47204, {f: 2, c: 47212},\n    47215, 47217, 47224, 47228, 47245, 47272, 47280, 47284, 47288,\n    {f: 2, c: 47296}, 47299, 47301, 47308, 47312, 47316, 47325, 47327, 47329,\n    {f: 2, c: 47336}, 47340, 47344, {f: 2, c: 47352}, 47355, 47357, 47364,\n    47384, 47392, {f: 2, c: 47420}, 47424, 47428, 47436, 47439, 47441,\n    {f: 2, c: 47448}, 47452, 47456, {f: 2, c: 47464}, 47467, 47469,\n    {f: 2, c: 47476}, 47480, 47484, {f: 2, c: 47492}, 47495, {f: 2, c: 47497},\n    {f: 2, c: 47501}, {f: 2, c: 47532}, 47536, 47540, {f: 2, c: 47548}, 47551,\n    47553, {f: 2, c: 47560}, 47564, {f: 5, c: 47566}, {f: 2, c: 47576}, 47579,\n    {f: 2, c: 47581}, 47585, {f: 3, c: 47587}, 47592, 47596, {f: 2, c: 47604},\n    {f: 4, c: 47607}, {f: 2, c: 47616}, 47624, 47637, {f: 2, c: 47672}, 47676,\n    47680, 47682, {f: 2, c: 47688}, 47691, {f: 2, c: 47693}, {f: 3, c: 47699},\n    47704, 47708, {f: 2, c: 47716}, {f: 3, c: 47719}, {f: 2, c: 47728}, 47732,\n    47736, {f: 3, c: 47747}, 47751, 47756, {f: 2, c: 47784}, {f: 2, c: 47787},\n    47792, 47794, {f: 2, c: 47800}, 47803, 47805, 47812, 47816,\n    {f: 2, c: 47832}, 47868, 47872, 47876, 47885, 47887, 47889, 47896, 47900,\n    47904, 47913, 47915, {f: 3, c: 47924}, 47928, {f: 4, c: 47931},\n    {f: 2, c: 47940}, 47943, 47945, 47949, {f: 2, c: 47951}, 47956, 47960,\n    47969, 47971, 47980, 48008, 48012, 48016, 48036, 48040, 48044, 48052,\n    48055, 48064, 48068, 48072, 48080, 48083, {f: 2, c: 48120}, 48124,\n    {f: 2, c: 48127}, 48130, {f: 2, c: 48136}, {f: 3, c: 48139}, 48143, 48145,\n    {f: 5, c: 48148}, {f: 5, c: 48155}, {f: 2, c: 48164}, 48167, 48169, 48173,\n    {f: 2, c: 48176}, 48180, 48184, {f: 2, c: 48192}, {f: 3, c: 48195}, 48201,\n    {f: 2, c: 48204}, 48208, 48221, {f: 2, c: 48260}, 48264, {f: 2, c: 48267},\n    48270, {f: 2, c: 48276}, 48279, {f: 2, c: 48281}, {f: 2, c: 48288}, 48292,\n    {f: 2, c: 48295}, {f: 2, c: 48304}, {f: 3, c: 48307}, {f: 2, c: 48316},\n    48320, 48324, 48333, {f: 3, c: 48335}, 48341, 48344, 48348,\n    {f: 3, c: 48372}, 48376, 48380, {f: 2, c: 48388}, 48391, 48393, 48400,\n    48404, 48420, 48428, 48448, {f: 2, c: 48456}, 48460, 48464,\n    {f: 2, c: 48472}, 48484, 48488, {f: 2, c: 48512}, 48516, {f: 4, c: 48519},\n    {f: 2, c: 48528}, 48531, 48533, {f: 2, c: 48537}, 48540, 48548, 48560,\n    48568, {f: 2, c: 48596}, 48600, 48604, 48617, 48624, 48628, 48632, 48640,\n    48643, 48645, {f: 2, c: 48652}, 48656, 48660, {f: 2, c: 48668}, 48671,\n    {f: 2, c: 48708}, 48712, 48716, 48718, {f: 2, c: 48724}, 48727,\n    {f: 3, c: 48729}, {f: 2, c: 48736}, 48740, 48744, 48746, {f: 2, c: 48752},\n    {f: 3, c: 48755}, {f: 3, c: 48763}, 48768, 48772, {f: 2, c: 48780},\n    {f: 3, c: 48783}, {f: 2, c: 48792}, 48808, {f: 2, c: 48848}, 48852,\n    {f: 2, c: 48855}, 48864, {f: 3, c: 48867}, 48876, 48897, {f: 2, c: 48904},\n    {f: 2, c: 48920}, {f: 3, c: 48923}, {f: 2, c: 48960}, 48964, 48968,\n    {f: 2, c: 48976}, 48981, 49044, 49072, 49093, {f: 2, c: 49100}, 49104,\n    49108, 49116, 49119, 49121, 49212, 49233, 49240, 49244, 49248,\n    {f: 2, c: 49256}, {f: 2, c: 49296}, 49300, 49304, {f: 2, c: 49312}, 49315,\n    49317, {f: 2, c: 49324}, {f: 2, c: 49327}, {f: 4, c: 49331},\n    {f: 2, c: 49340}, {f: 3, c: 49343}, 49349, {f: 2, c: 49352}, 49356, 49360,\n    {f: 2, c: 49368}, {f: 3, c: 49371}, {f: 2, c: 49380}, 49384, 49388,\n    {f: 2, c: 49396}, 49399, 49401, 49408, 49412, 49416, 49424, 49429,\n    {f: 5, c: 49436}, {f: 2, c: 49443}, {f: 2, c: 49446}, {f: 2, c: 49452},\n    {f: 3, c: 49455}, 49462, {f: 2, c: 49464}, 49468, 49472, {f: 2, c: 49480},\n    {f: 3, c: 49483}, {f: 2, c: 49492}, 49496, 49500, {f: 2, c: 49508},\n    {f: 3, c: 49511}, 49520, 49524, 49528, 49541, {f: 3, c: 49548}, 49552,\n    49556, 49558, {f: 2, c: 49564}, 49567, 49569, 49573, {f: 2, c: 49576},\n    49580, 49584, 49597, 49604, 49608, 49612, 49620, {f: 2, c: 49623}, 49632,\n    49636, 49640, {f: 2, c: 49648}, 49651, {f: 2, c: 49660}, 49664, 49668,\n    {f: 2, c: 49676}, 49679, 49681, {f: 2, c: 49688}, 49692, {f: 2, c: 49695},\n    {f: 2, c: 49704}, 49707, 49709, 49711, {f: 2, c: 49713}, 49716, 49736,\n    {f: 2, c: 49744}, 49748, 49752, 49760, 49765, {f: 2, c: 49772}, 49776,\n    49780, {f: 2, c: 49788}, 49791, 49793, {f: 2, c: 49800}, 49808, 49816,\n    49819, 49821, {f: 2, c: 49828}, 49832, {f: 2, c: 49836}, {f: 2, c: 49844},\n    49847, 49849, {f: 2, c: 49884}, 49888, {f: 2, c: 49891}, {f: 3, c: 49899},\n    49903, 49905, 49910, {f: 2, c: 49912}, {f: 2, c: 49915}, 49920,\n    {f: 2, c: 49928}, {f: 2, c: 49932}, {f: 3, c: 49939}, 49944, 49948,\n    {f: 2, c: 49956}, {f: 2, c: 49960}, 49989, {f: 2, c: 50024}, 50028, 50032,\n    50034, {f: 2, c: 50040}, {f: 2, c: 50044}, 50052, 50056, 50060, 50112,\n    {f: 2, c: 50136}, 50140, {f: 2, c: 50143}, 50146, {f: 2, c: 50152}, 50157,\n    {f: 2, c: 50164}, 50168, 50184, 50192, 50212, 50220, 50224, 50228,\n    {f: 2, c: 50236}, 50248, {f: 2, c: 50276}, 50280, 50284, {f: 2, c: 50292},\n    50297, 50304, 50324, 50332, 50360, 50364, 50409, {f: 2, c: 50416}, 50420,\n    50424, 50426, {f: 3, c: 50431}, 50444, 50448, 50452, 50460,\n    {f: 2, c: 50472}, 50476, 50480, {f: 2, c: 50488}, 50491, 50493,\n    {f: 2, c: 50500}, {f: 3, c: 50504}, {f: 3, c: 50508}, {f: 3, c: 50515},\n    {f: 3, c: 50519}, {f: 2, c: 50525}, {f: 2, c: 50528}, 50532, 50536,\n    {f: 2, c: 50544}, {f: 3, c: 50547}, {f: 2, c: 50556}, 50560, 50564, 50567,\n    {f: 2, c: 50572}, 50575, 50577, 50581, {f: 2, c: 50583}, 50588, 50592,\n    50601, {f: 2, c: 50612}, {f: 2, c: 50616}, {f: 4, c: 50619},\n    {f: 7, c: 50628}, 50636, 50638, {f: 2, c: 50640}, 50644, 50648,\n    {f: 2, c: 50656}, 50659, 50661, {f: 3, c: 50668}, 50672, 50676,\n    {f: 2, c: 50678}, {f: 6, c: 50684}, {f: 4, c: 50693}, 50700, 50704,\n    {f: 2, c: 50712}, {f: 2, c: 50715}, {f: 2, c: 50724}, 50728,\n    {f: 3, c: 50732}, 50736, {f: 3, c: 50739}, 50743, 50745, 50747,\n    {f: 2, c: 50752}, 50756, 50760, {f: 2, c: 50768}, {f: 3, c: 50771},\n    {f: 2, c: 50780}, 50784, 50796, 50799, 50801, {f: 2, c: 50808}, 50812,\n    50816, {f: 2, c: 50824}, 50827, 50829, {f: 2, c: 50836}, 50840, 50844,\n    {f: 2, c: 50852}, 50855, 50857, {f: 2, c: 50864}, 50868, {f: 3, c: 50872},\n    {f: 2, c: 50880}, 50883, 50885, {f: 2, c: 50892}, 50896, 50900,\n    {f: 2, c: 50908}, {f: 2, c: 50912}, {f: 2, c: 50920}, 50924, 50928,\n    {f: 2, c: 50936}, 50941, {f: 2, c: 50948}, 50952, 50956, {f: 2, c: 50964},\n    50967, 50969, {f: 2, c: 50976}, 50980, 50984, {f: 2, c: 50992}, 50995,\n    50997, 50999, {f: 2, c: 51004}, 51008, 51012, 51018, {f: 2, c: 51020},\n    51023, {f: 8, c: 51025}, 51036, 51040, 51048, 51051, {f: 2, c: 51060},\n    51064, {f: 3, c: 51068}, {f: 3, c: 51075}, {f: 4, c: 51079}, 51086,\n    {f: 2, c: 51088}, 51092, {f: 3, c: 51094}, 51098, {f: 2, c: 51104},\n    {f: 4, c: 51107}, {f: 2, c: 51116}, 51120, 51124, {f: 2, c: 51132},\n    {f: 3, c: 51135}, {f: 2, c: 51144}, 51148, 51150, 51152, 51160, 51165,\n    51172, 51176, 51180, {f: 2, c: 51200}, 51204, 51208, 51210,\n    {f: 2, c: 51216}, 51219, {f: 2, c: 51221}, {f: 2, c: 51228}, 51232, 51236,\n    {f: 2, c: 51244}, 51247, 51249, 51256, 51260, 51264, {f: 2, c: 51272},\n    {f: 2, c: 51276}, 51284, {f: 2, c: 51312}, 51316, 51320, 51322,\n    {f: 2, c: 51328}, 51331, {f: 3, c: 51333}, {f: 3, c: 51339}, 51348, 51357,\n    51359, 51361, 51368, {f: 2, c: 51388}, 51396, 51400, 51404,\n    {f: 2, c: 51412}, 51415, 51417, {f: 2, c: 51424}, 51428, 51445,\n    {f: 2, c: 51452}, 51456, {f: 3, c: 51460}, {f: 2, c: 51468}, 51471, 51473,\n    51480, 51500, 51508, {f: 2, c: 51536}, 51540, 51544, {f: 2, c: 51552},\n    51555, 51564, 51568, 51572, 51580, {f: 2, c: 51592}, 51596, 51600,\n    {f: 2, c: 51608}, 51611, 51613, {f: 2, c: 51648}, 51652, {f: 2, c: 51655},\n    51658, {f: 2, c: 51664}, 51667, {f: 2, c: 51669}, {f: 2, c: 51673},\n    {f: 2, c: 51676}, 51680, 51682, 51684, 51687, {f: 2, c: 51692},\n    {f: 3, c: 51695}, {f: 2, c: 51704}, 51708, 51712, {f: 2, c: 51720},\n    {f: 3, c: 51723}, 51732, 51736, 51753, {f: 2, c: 51788}, 51792, 51796,\n    {f: 2, c: 51804}, {f: 3, c: 51807}, 51816, 51837, 51844, 51864,\n    {f: 2, c: 51900}, 51904, 51908, {f: 2, c: 51916}, 51919, 51921, 51923,\n    {f: 2, c: 51928}, 51936, 51948, 51956, 51976, 51984, 51988, 51992,\n    {f: 2, c: 52000}, 52033, {f: 2, c: 52040}, 52044, 52048, {f: 2, c: 52056},\n    52061, 52068, {f: 2, c: 52088}, 52124, 52152, 52180, 52196, 52199, 52201,\n    {f: 2, c: 52236}, 52240, 52244, {f: 2, c: 52252}, {f: 2, c: 52257},\n    {f: 3, c: 52263}, 52268, 52270, 52272, {f: 2, c: 52280}, {f: 4, c: 52283},\n    {f: 2, c: 52292}, 52296, 52300, {f: 2, c: 52308}, {f: 3, c: 52311}, 52320,\n    52324, 52326, 52328, 52336, 52341, {f: 2, c: 52376}, 52380, 52384,\n    {f: 2, c: 52392}, {f: 3, c: 52395}, {f: 2, c: 52404}, 52408, 52412,\n    {f: 2, c: 52420}, 52423, 52425, 52432, 52436, 52452, 52460, 52464, 52481,\n    {f: 2, c: 52488}, 52492, 52496, {f: 2, c: 52504}, 52507, 52509, 52516,\n    52520, 52524, 52537, 52572, 52576, 52580, {f: 2, c: 52588}, 52591, 52593,\n    52600, 52616, {f: 2, c: 52628}, 52632, 52636, {f: 2, c: 52644}, 52647,\n    52649, 52656, 52676, 52684, 52688, 52712, 52716, 52720, {f: 2, c: 52728},\n    52731, 52733, 52740, 52744, 52748, 52756, 52761, {f: 2, c: 52768}, 52772,\n    52776, {f: 2, c: 52784}, 52787, 52789, {f: 2, c: 52824}, 52828,\n    {f: 3, c: 52831}, {f: 2, c: 52840}, 52843, 52845, {f: 2, c: 52852}, 52856,\n    52860, {f: 2, c: 52868}, 52871, 52873, {f: 2, c: 52880}, 52884, 52888,\n    {f: 2, c: 52896}, {f: 3, c: 52899}, {f: 2, c: 52908}, 52929,\n    {f: 2, c: 52964}, 52968, {f: 2, c: 52971}, {f: 2, c: 52980},\n    {f: 3, c: 52983}, {f: 2, c: 52992}, 52996, 53000, {f: 2, c: 53008}, 53011,\n    53013, 53020, 53024, 53028, {f: 2, c: 53036}, {f: 3, c: 53039}, 53048,\n    {f: 2, c: 53076}, 53080, 53084, {f: 2, c: 53092}, 53095, 53097,\n    {f: 2, c: 53104}, 53108, 53112, 53120, 53125, 53132, 53153, 53160, 53168,\n    53188, {f: 2, c: 53216}, 53220, 53224, {f: 2, c: 53232}, 53235, 53237,\n    53244, 53248, 53252, 53265, 53272, 53293, {f: 2, c: 53300}, 53304, 53308,\n    {f: 2, c: 53316}, 53319, 53321, 53328, 53332, 53336, 53344,\n    {f: 2, c: 53356}, 53360, 53364, {f: 2, c: 53372}, 53377, {f: 2, c: 53412},\n    53416, 53420, {f: 2, c: 53428}, 53431, 53433, {f: 2, c: 53440}, 53444,\n    {f: 2, c: 53448}, {f: 2, c: 53456}, {f: 3, c: 53459}, {f: 2, c: 53468},\n    53472, 53476, {f: 2, c: 53484}, {f: 3, c: 53487}, 53496, 53517,\n    {f: 2, c: 53552}, 53556, 53560, 53562, {f: 2, c: 53568}, {f: 3, c: 53571},\n    {f: 2, c: 53580}, 53584, 53588, {f: 2, c: 53596}, 53599, 53601, 53608,\n    53612, 53628, 53636, 53640, {f: 2, c: 53664}, 53668, 53672,\n    {f: 2, c: 53680}, 53683, 53685, 53690, 53692, 53696, 53720, 53748, 53752,\n    53767, 53769, 53776, {f: 2, c: 53804}, 53808, 53812, {f: 2, c: 53820},\n    53823, 53825, 53832, 53852, 53860, {f: 2, c: 53888}, 53892, 53896,\n    {f: 2, c: 53904}, 53909, 53916, 53920, 53924, 53932, 53937,\n    {f: 2, c: 53944}, 53948, {f: 2, c: 53951}, 53954, {f: 2, c: 53960}, 53963,\n    53972, 53976, 53980, {f: 2, c: 53988}, {f: 2, c: 54000}, 54004, 54008,\n    {f: 2, c: 54016}, 54019, 54021, {f: 3, c: 54028}, 54032, 54036, 54038,\n    {f: 2, c: 54044}, {f: 3, c: 54047}, 54053, {f: 2, c: 54056}, 54060, 54064,\n    {f: 2, c: 54072}, {f: 3, c: 54075}, {f: 2, c: 54084}, {f: 2, c: 54140},\n    54144, 54148, {f: 2, c: 54156}, {f: 3, c: 54159}, {f: 2, c: 54168}, 54172,\n    54176, {f: 2, c: 54184}, 54187, 54189, 54196, 54200, 54204,\n    {f: 2, c: 54212}, {f: 2, c: 54216}, 54224, 54232, 54241, 54243,\n    {f: 2, c: 54252}, 54256, 54260, {f: 2, c: 54268}, 54271, 54273, 54280,\n    54301, 54336, 54340, 54364, 54368, 54372, 54381, 54383, {f: 2, c: 54392},\n    54396, {f: 2, c: 54399}, 54402, {f: 2, c: 54408}, 54411, 54413, 54420,\n    54441, 54476, 54480, 54484, 54492, 54495, 54504, 54508, 54512, 54520,\n    54523, 54525, 54532, 54536, 54540, {f: 2, c: 54548}, 54551,\n    {f: 2, c: 54588}, 54592, 54596, {f: 2, c: 54604}, 54607, 54609,\n    {f: 2, c: 54616}, 54620, 54624, 54629, {f: 2, c: 54632}, 54635, 54637,\n    {f: 2, c: 54644}, 54648, 54652, {f: 2, c: 54660}, {f: 3, c: 54663}, 54672,\n    54693, {f: 2, c: 54728}, 54732, 54736, 54738, {f: 2, c: 54744}, 54747,\n    54749, {f: 2, c: 54756}, 54760, 54764, {f: 2, c: 54772}, 54775, 54777,\n    {f: 2, c: 54784}, 54788, 54792, {f: 2, c: 54800}, {f: 3, c: 54803}, 54812,\n    54816, 54820, 54829, {f: 2, c: 54840}, 54844, 54848, 54853,\n    {f: 2, c: 54856}, 54859, 54861, 54865, {f: 2, c: 54868}, 54872, 54876,\n    54887, 54889, {f: 2, c: 54896}, 54900, 54915, 54917, {f: 2, c: 54924},\n    54928, 54932, 54941, 54943, 54945, 54952, 54956, 54960, 54969, 54971,\n    {f: 2, c: 54980}, 54984, 54988, 54993, 54996, 54999, 55001, 55008, 55012,\n    55016, 55024, 55029, {f: 2, c: 55036}, 55040, 55044, 55057,\n    {f: 2, c: 55064}, 55068, 55072, {f: 2, c: 55080}, 55083, 55085,\n    {f: 2, c: 55092}, 55096, 55100, 55108, 55111, 55113, {f: 2, c: 55120},\n    55124, {f: 4, c: 55126}, {f: 2, c: 55136}, 55139, 55141, 55145, 55148,\n    55152, 55156, {f: 2, c: 55164}, 55169, {f: 2, c: 55176}, 55180, 55184,\n    {f: 2, c: 55192}, 55195, 55197, 20285, 20339, 20551, 20729, 21152, 21487,\n    21621, 21733, 22025, 23233, 23478, 26247, {f: 2, c: 26550}, 26607, 27468,\n    29634, 30146, 31292, 33499, 33540, 34903, 34952, 35382, [36040, 63747],\n    36303, 36603, 36838, 39381, 21051, 21364, 21508, 24682, 24932, 27580,\n    29647, 33050, 35258, [12179, 35282], 38307, 20355, 21002, 22718, 22904,\n    23014, [12082, 24178], 24185, 25031, 25536, 26438, 26604, 26751, 28567,\n    30286, 30475, 30965, 31240, 31487, 31777, 32925, [12169, 33390], 33393,\n    35563, 38291, 20075, 21917, 26359, 28212, 30883, 31469, 33883, 35088,\n    34638, 38824, 21208, 22350, 22570, 23884, 24863, 25022, 25121, 25954,\n    26577, 27204, 28187, [12130, 29976], 30131, 30435, 30640, 32058, 37039,\n    {f: 2, c: 37969}, 40853, 21283, 23724, 30002, 32987, 37440, 38296, 21083,\n    22536, 23004, 23713, 23831, 24247, 24378, 24394, 24951, 27743, 30074,\n    30086, 31968, 32115, 32177, 32652, 33108, 33313, 34193, 35137, 35611,\n    37628, [38477, 64009], 40007, 20171, 20215, 20491, 20977, 22607, 24887,\n    24894, 24936, 25913, 27114, 28433, 30117, 30342, 30422, 31623, 33445,\n    33995, 37799, 38283, 21888, 23458, 22353, 31923, 32697, 37301, 20520,\n    21435, 23621, 24040, 25298, 25454, 25818, 25831, 28192, 28844, 31067,\n    36317, 36382, 36989, 37445, 37624, 20094, 20214, 20581, [12081, 24062],\n    24314, 24838, 26967, 33137, 34388, 36423, 37749, 39467, 20062, 20625,\n    26480, 26688, 20745, 21133, 21138, 27298, 30652, 37392, 40660, 21163,\n    24623, 36850, 20552, 25001, 25581, 25802, 26684, 27268, 28608, 33160,\n    35233, 38548, 22533, 29309, [12125, 29356], 29956, 32121, 32365, 32937,\n    [12178, 35211, 64010], 35700, 36963, 40273, 25225, 27770, 28500, 32080,\n    32570, 35363, 20860, 24906, 31645, 35609, 37463, 37772, 20140, 20435,\n    20510, 20670, 20742, 21185, 21197, 21375, 22384, 22659, 24218, 24465,\n    24950, 25004, 25806, 25964, 26223, 26299, [26356, 63745], 26775, 28039,\n    28805, 28913, 29855, 29861, 29898, 30169, 30828, 30956, 31455, 31478,\n    32069, 32147, 32789, 32831, 33051, 33686, 35686, 36629, 36885, 37857,\n    38915, 38968, 39514, 39912, 20418, 21843, 22586, [22865, 63753], 23395,\n    23622, 24760, 25106, 26690, 26800, 26856, 28330, 30028, 30328, 30926,\n    31293, 31995, 32363, 32380, 35336, 35489, 35903, 38542, 40388, 21476,\n    21481, 21578, 21617, 22266, 22993, 23396, 23611, 24235, 25335, 25911,\n    25925, 25970, 26272, 26543, 27073, 27837, 30204, 30352, 30590, 31295,\n    32660, 32771, 32929, 33167, 33510, 33533, 33776, 34241, 34865, 34996,\n    35493, 36764, 37678, 38599, 39015, [12220, 39640], [12238, 40723], 21741,\n    26011, 26354, 26767, 31296, [12181, 35895], 40288, 22256, 22372, 23825,\n    26118, 26801, 26829, 28414, 29736, 34974, 39908, 27752, [12219, 39592],\n    20379, 20844, 20849, 21151, 23380, [12079, 24037], 24656, 24685, 25329,\n    25511, 25915, 29657, 31354, 34467, 36002, 38799, [20018, 63749], 23521,\n    [12093, 25096], 26524, [12128, 29916], 31185, 33747, 35463, 35506, 36328,\n    36942, 37707, 38982, [24275, 64011], 27112, 34303, 37101, 20896, 23448,\n    23532, 24931, 26874, 27454, 28748, 29743, 29912, 31649, 32592, 33733,\n    35264, 36011, 38364, 39208, 21038, 24669, 25324, 36866, 20362, 20809,\n    21281, 22745, 24291, 26336, 27960, 28826, 29378, 29654, 31568, 33009,\n    37979, 21350, 25499, 32619, 20054, 20608, 22602, 22750, 24618, 24871,\n    25296, 27088, 39745, 23439, 32024, 32945, 36703, 20132, 20689, 21676,\n    21932, 23308, 23968, 24039, 25898, 25934, 26657, 27211, 29409, 30350,\n    30703, 32094, 32761, 33184, 34126, 34527, 36611, 36686, 37066, 39171,\n    39509, 39851, 19992, 20037, 20061, 20167, 20465, 20855, 21246, 21312,\n    [12061, 21475], [21477, 63750], 21646, 22036, 22389, 22434, 23495, 23943,\n    24272, 25084, 25304, 25937, 26552, 26601, 27083, 27472, 27590, 27628,\n    27714, 28317, 28792, 29399, 29590, 29699, 30655, 30697, 31350, 32127,\n    32777, [12165, 33276], 33285, 33290, 33503, 34914, 35635, 36092, 36544,\n    36881, 37041, 37476, 37558, 39378, 39493, 40169, 40407,\n    [12244, 40860, 63751, 63752], 22283, 23616, 33738, 38816, 38827, 40628,\n    21531, 31384, 32676, 35033, 36557, 37089, 22528, 23624, 25496, 31391,\n    23470, [12088, 24339], 31353, 31406, 33422, 36524, 20518, 21048, 21240,\n    21367, 22280, 25331, 25458, 27402, 28099, 30519, 21413, 29527, 34152,\n    36470, 38357, 26426, 27331, 28528, 35437, 36556, 39243, 26231, 27512,\n    36020, [12225, 39740], 21483, 22317, 22862, 25542, 27131, 29674, 30789,\n    31418, 31429, 31998, 33909, 35215, 36211, 36917, 38312, 21243, 22343,\n    30023, 31584, 33740, 37406, 27224, 20811, 21067, 21127, 25119, 26840,\n    26997, 38553, 20677, 21156, 21220, 25027, [12100, 26020], 26681, 27135,\n    29822, 31563, 33465, 33771, 35250, 35641, 36817, 39241, 20170, 22935,\n    25810, 26129, 27278, 29748, 31105, 31165, 33449, {f: 2, c: 34942}, 35167,\n    37670, 20235, 21450, 24613, 25201, 27762, 32026, 32102, 20120, 20834,\n    30684, 32943, 20225, 20238, 20854, 20864, 21980, 22120, 22331, 22522,\n    22524, 22804, 22855, 22931, 23492, 23696, 23822, [12080, 24049], 24190,\n    24524, 25216, 26071, 26083, {f: 2, c: 26398}, 26462, 26827, 26820, 27231,\n    27450, 27683, 27773, 27778, 28103, 29592, 29734, 29738, 29826, 29859,\n    30072, 30079, 30849, 30959, 31041, {f: 2, c: 31047}, 31098, 31637, 32000,\n    32186, 32648, 32774, 32813, 32908, 35352, 35663, [35912, 63744], 36215,\n    37665, 37668, 39138, 39249, {f: 2, c: 39438}, 39525, 40594, 32202, 20342,\n    21513, 25326, 26708, [12198, 37329, 63754], 21931, 20794, 23068, 25062,\n    [25295, 63835], 25343, 37027, [35582, 63837], 26262, 29014, 38627, 25423,\n    25466, 21335, 26511, 26976, 28275, 30007, 32013, 34930, 22218, 23064,\n    20035, 20839, [22856, 63756], 26608, 32784, [12069, 22899, 63873],\n    [24180, 63886], [25754, 63889], [31178, 63893], [24565, 63907], 24684,\n    25288, [25467, 63908], [23527, 63839, 63914], 23511, 21162, 22900, 24361,\n    [24594, 63840], 29785, 39377, 28611, 33215, 36786, 24817, 33126,\n    [23615, 63933], 23273, 35365, [26491, 63944], [32016, 63951], 33021, 23612,\n    [27877, 63971], [21311, 63979], [28346, 63980], 22810, [33590, 63998],\n    [20025, 63838], 20150, 20294, 21934, 22296, 22727, 24406, 26039, 26086,\n    27264, 27573, 28237, 30701, 31471, 31774, 32222, 34507, 34962, 37170,\n    37723, 25787, 28606, 29562, 30136, 36948, 21846, 22349, 25018, 25812,\n    26311, 28129, 28251, 28525, 28601, 30192, 32835, 33213, 34113, 35203,\n    35527, 35674, 37663, 27795, 30035, 31572, 36367, 36957, 21776, 22530,\n    22616, 24162, 25095, 25758, 26848, 30070, [31958, 64003], 34739, 40680,\n    20195, 22408, 22382, [12068, 22823], 23565, 23729, 24118, 24453, 25140,\n    25825, 29619, 33274, 34955, 36024, 38538, 40667, [23429, 64004], 24503,\n    24755, 20498, [12049, 20992], 21040, 22294, 22581, 22615, 23566, 23648,\n    23798, 23947, [24230, 64001], 24466, 24764, 25361, 25481, 25623, 26691,\n    26873, 27330, 28120, 28193, 28372, 28644, 29182, 30428, 30585, 31153,\n    31291, 33796, 35241, 36077, 36339, 36424, 36867, 36884, 36947, 37117,\n    37709, 38518, 38876, 27602, 28678, 29272, 29346, 29544, 30563, 31167,\n    31716, 32411, [35712, 63834], 22697, 24775, 25958, 26109, 26302, 27788,\n    28958, 29129, 35930, 38931, 20077, 31361, 20189, 20908, 20941, 21205,\n    21516, 24999, 26481, 26704, 26847, [27934, 64005], 28540, 30140, 30643,\n    31461, 33012, 33891, 37509, 20828, [12099, 26007], 26460, 26515, 30168,\n    31431, 33651, [12182, 35910], 36887, 38957, 23663, 33216, 33434, 36929,\n    36975, 37389, 24471, 23965, 27225, 29128, 30331, 31561, 34276, 35588,\n    37159, 39472, [21895, 63755], [25078, 63757], [30313, 63758],\n    [32645, 63759], [34367, 63760], [34746, 63761], [35064, 63762],\n    [37007, 63763], [27931, 63765], [28889, 63766], [29662, 63767], 32097,\n    [33853, 63768], [37226, 63769], [39409, 63770], [20098, 63771],\n    [21365, 63772], [27396, 63773], 27410, 28734, [29211, 63774],\n    [34349, 63775], [40478, 63776], 21068, 36771, [23888, 63777], 25829, 25900,\n    27414, [28651, 63778], 31811, 32412, [34253, 63779], [35172, 63780], 35261,\n    [25289, 63781], [33240, 63782], [34847, 63783], [24266, 63784],\n    [26391, 63785], [28010, 63786], [29436, 63787], 29701, 29807, 34690,\n    [37086, 63788], [20358, 63789], 23821, 24480, 33802, [20919, 63790],\n    [25504, 63861], [30053, 63862], [20142, 63863], 20486, [20841, 63864],\n    [20937, 63865], [26753, 63866], 27153, 31918, 31921, [31975, 63867],\n    [33391, 63868], [35538, 63869], 36635, [37327, 63870], 20406, 20791,\n    [21237, 63871], [21570, 63872], [24300, 63874], 24942, 25150,\n    [26053, 63875], 27354, [28670, 63876], [31018, 63877], 34268, 34851,\n    [38317, 63878], 39522, [39530, 63879], [40599, 63880], [40654, 63881],\n    [12050, 21147, 63882], [26310, 63883], [27511, 63884], 28701, 31019,\n    [36706, 63885], 38722, [24976, 63887], [25088, 63888], 25891,\n    [28451, 63890], [29001, 63891], [29833, 63892], [32244, 63894],\n    [32879, 63895], [34030, 63897], [36646, 63896], [36899, 63898],\n    [37706, 63899], 20925, [21015, 63900], [21155, 63901], 27916,\n    [28872, 63903], [35010, 63904], [24265, 63906], 25986, [27566, 63909],\n    28610, [31806, 63910], [29557, 63911], [20196, 63912], 20278,\n    [22265, 63913], 23738, [23994, 63915], [24604, 63916], [29618, 63917],\n    31533, [32666, 63919], 32718, [32838, 63920], 36894, [37428, 63921],\n    [38646, 63922], [38728, 63923], [38936, 63924], 40801, [20363, 63925],\n    28583, [31150, 63926], [37300, 63927], [38583, 63928], [21214, 63791],\n    25736, [25796, 63792], [27347, 63793], 28510, 28696, [29200, 63794],\n    [30439, 63795], [12156, 32769, 63796], [34310, 63797], [34396, 63798],\n    [36335, 63799], 36613, [38706, 63800], [39791, 63801], [40442, 63802],\n    [12228, 40565], [30860, 63803], [31103, 63804], [32160, 63805],\n    [33737, 63806], [37636, 63807], [12229, 40575, 63808], 40595,\n    [35542, 63809], [22751, 63810], [24324, 63811], 26407, 28711, 29903,\n    [31840, 63812], [32894, 63813], 20769, 28712, [29282, 63814],\n    [30922, 63815], [36034, 63816], 36058, 36084, [38647, 63817],\n    [20102, 63930], [20698, 63931], [23534, 63932], 24278, [26009, 63934],\n    [29134, 63936], [30274, 63937], 30637, 32842, [34044, 63938],\n    [36988, 63939], 39719, [12243, 40845, 63940], [22744, 63818], 23105,\n    [23650, 63819], [27155, 63820], [28122, 63821], [28431, 63822], 30267,\n    [32047, 63823], [32311, 63824], 34078, 35128, 37860, [38475, 63825],\n    [21129, 63943], 26066, [26611, 63945], 27060, [27969, 63946],\n    [28316, 63947], 28687, [29705, 63948], 29792, [30041, 63949], 30244,\n    [30827, 63950], 35628, [39006, 63952], [20845, 63953], [25134, 63954],\n    [38520, 63955], 20374, [20523, 63956], [23833, 63957], [28138, 63958],\n    32184, [36650, 63959], [24459, 63960], [24900, 63961], [26647, 63962],\n    [38534, 63964], [21202, 63826], [32907, 63827], [20956, 63828],\n    [20940, 63829], 26974, [31260, 63830], [32190, 63831], [33777, 63832],\n    [38517, 63833], 20442, [21033, 63965], 21400, [21519, 63966], 21774,\n    [23653, 63967], 24743, [26446, 63969], [26792, 63970], 28012, 29313, 29432,\n    [29702, 63972], 29827, [30178, 63973], 31852, [32633, 63974], 32696, 33673,\n    [35023, 63975], [35041, 63976], [12197, 37324, 63977], 37328,\n    [38626, 63978], 39881, [21533, 63981], 28542, [29136, 63982],\n    [29848, 63983], [34298, 63984], 36522, [38563, 63985], [40023, 63986],\n    [40607, 63987], [26519, 63988], [28107, 63989], 29747, [33256, 63990],\n    38678, 30764, [12148, 31435, 63991], [31520, 63992], [31890, 63993], 25705,\n    29802, 30194, 30908, 30952, [12218, 39340], 39764, [12231, 40635], 23518,\n    24149, 28448, 33180, 33707, 37000, 19975, 21325, 23081, 24018, 24398,\n    24930, 25405, 26217, 26364, 28415, 28459, 28771, 30622, 33836, 34067,\n    34875, 36627, 39237, 39995, 21788, 25273, 26411, 27819, 33545, 35178,\n    38778, 20129, 22916, {f: 2, c: 24536}, 26395, 32178, 32596, 33426, 33579,\n    33725, 36638, 37017, 22475, 22969, 23186, 23504, 26151, 26522, 26757,\n    27599, 29028, 32629, 36023, 36067, 36993, 39749, 33032, 35978, 38476,\n    39488, [12230, 40613], 23391, 27667, 29467, 30450, 30431, 33804, 20906,\n    35219, 20813, 20885, 21193, 26825, 27796, 30468, 30496, 32191, 32236,\n    [12207, 38754], 40629, 28357, 34065, 20901, 21517, 21629, 26126, 26269,\n    26919, 28319, [12139, 30399], 30609, 33559, 33986, 34719, 37225, 37528,\n    40180, 34946, 20398, 20882, 21215, 22982, 24125, 24917, {f: 2, c: 25720},\n    26286, 26576, 27169, 27597, [12113, 27611], 29279, 29281, 29761, 30520,\n    [12141, 30683], 32791, 33468, 33541, 35584, 35624, 35980, [12106, 26408],\n    27792, 29287, [12140, 30446], 30566, 31302, 40361, 27519, 27794, 22818,\n    26406, 33945, 21359, 22675, 22937, 24287, 25551, 26164, 26483, 28218,\n    29483, 31447, 33495, 37672, 21209, 24043, 25006, 25035, 25098, 25287,\n    25771, [12102, 26080], 26969, 27494, [12111, 27595], 28961, 29687, 30045,\n    32326, 33310, 33538, 34154, 35491, 36031, 38695, 40289, 22696, 40664,\n    20497, 21006, 21563, 21839, [12098, 25991], 27766, {f: 2, c: 32010}, 32862,\n    34442, [12200, 38272], 38639, 21247, 27797, 29289, 21619, 23194, 23614,\n    23883, 24396, 24494, 26410, 26806, 26979, 28220, 28228, 30473,\n    [12150, 31859], 32654, 34183, 35598, 36855, 38753, 40692, 23735, 24758,\n    24845, 25003, 25935, {f: 2, c: 26107}, 27665, 27887, 29599, 29641, 32225,\n    38292, 23494, 34588, 35600, 21085, 21338, 25293, 25615, 25778, 26420,\n    27192, 27850, 29632, 29854, 31636, 31893, 32283, 33162, 33334, 34180,\n    36843, 38649, 39361, 20276, 21322, 21453, 21467, 25292, 25644, 25856,\n    26001, 27075, 27886, 28504, 29677, 30036, 30242, 30436, 30460, 30928,\n    [30971, 63844], 31020, 32070, 33324, 34784, 36820, 38930, 39151, 21187,\n    25300, 25765, 28196, 28497, 30332, 36299, 37297, 37474, 39662, 39747,\n    20515, 20621, 22346, 22952, 23592, 24135, 24439, 25151, 25918,\n    [12101, 26041], 26049, 26121, 26507, 27036, 28354, 30917, 32033, 32938,\n    33152, 33323, 33459, 33953, 34444, 35370, 35607, 37030, 38450, 40848,\n    20493, 20467, 22521, 24472, 25308, 25490, 26479, 28227, 28953, 30403,\n    32972, 32986, {f: 2, c: 35060}, 35097, 36064, 36649, 37197, 38506, 20271,\n    20336, 24091, 26575, 26658, [12137, 30333], 30334, 39748, 24161, 27146,\n    29033, 29140, 30058, 32321, 34115, 34281, 39132, 20240, 31567, 32624,\n    38309, 20961, 24070, 26805, 27710, 27726, 27867, 29359, 31684, 33539,\n    27861, 29754, 20731, 21128, 22721, 25816, 27287, 29863, 30294, 30887,\n    34327, 38370, 38713, 21342, 24321, 35722, 36776, 36783, 37002, 21029,\n    30629, 40009, 40712, 19993, 20482, 20853, 23643, 24183, 26142, 26170,\n    26564, 26821, 28851, 29953, 30149, 31177, 31453, 36647, 39200, 39432,\n    20445, 22561, 22577, 23542, 26222, 27493, 27921, 28282, 28541, 29668,\n    29995, 33769, 35036, 35091, 35676, 36628, 20239, 20693, 21264,\n    [12056, 21340], 23443, [24489, 63846], 26381, 31119, 33145, 33583, 34068,\n    35079, 35206, 36665, [36667, 64007], 39333, 39954, 26412, 20086, 20472,\n    22857, 23553, {f: 2, c: 23791}, 25447, 26834, 28925, 29090, 29739, 32299,\n    34028, 34562, 36898, 37586, 40179, [19981, 63847], 20184, 20463, 20613,\n    21078, 21103, 21542, 21648, 22496, 22827, 23142, 23386, 23413, 23500,\n    24220, 25206, 25975, 26023, 28014, 28325, [12119, 29238], 31526, 31807,\n    [12152, 32566], {f: 2, c: 33104}, 33178, 33344, 33433, 33705, 35331, 36000,\n    36070, 36091, 36212, 36282, 37096, 37340, [12201, 38428], 38468, 39385,\n    40167, [21271, 63843], 20998, 21545, 22132, 22707, 22868, 22894, 24575,\n    24996, 25198, 26128, 27774, 28954, 30406, 31881, 31966, 32027, 33452,\n    36033, 38640, 20315, 24343, 24447, 25282, 23849, 26379, 26842, 30844,\n    32323, 40300, 19989, 20633, [12052, 21269], 21290, 21329, 22915, 23138,\n    24199, 24754, 24970, 25161, 25209, 26000, 26503, 27047, [12112, 27604],\n    {f: 3, c: 27606}, 27832, 29749, 30202, 30738, 30865, 31189, 31192, 31875,\n    32203, 32737, 32933, 33086, 33218, 33778, 34586, 35048, 35513, 35692,\n    36027, 37145, [12206, 38750], [12214, 39131], [12240, 40763], 22188, 23338,\n    24428, 25996, 27315, 27567, 27996, 28657, 28693, 29277, 29613, 36007,\n    36051, 38971, 24977, 27703, 32856, 39425, 20045, 20107, 20123, 20181,\n    20282, 20284, 20351, 20447, 20735, 21490, 21496, 21766, 21987, 22235,\n    [12064, 22763], 22882, 23057, 23531, 23546, 23556, 24051, 24107, 24473,\n    24605, 25448, 26012, 26031, 26614, 26619, 26797, 27515, 27801, 27863,\n    28195, 28681, 29509, 30722, 31038, 31040, 31072, 31169, 31721, 32023,\n    32114, 32902, 33293, 33678, 34001, 34503, 35039, 35408, 35422, 35613,\n    36060, 36198, 36781, 37034, 39164, 39391, 40605, 21066, 26388, 20632,\n    21034, [12077, 23665], 25955, 27733, 29642, 29987, 30109, 31639, 33948,\n    37240, 38704, 20087, 25746, [27578, 63856], 29022, 34217, 19977, 26441,\n    26862, 28183, 33439, 34072, 34923, 25591, 28545, 37394, 39087, 19978,\n    20663, 20687, 20767, 21830, 21930, 22039, 23360, 23577, 23776, 24120,\n    24202, 24224, 24258, 24819, 26705, 27233, 28248, 29245, 29248,\n    [29376, 63994], 30456, 31077, 31665, 32724, 35059, 35316, 35443, 35937,\n    36062, 38684, [22622, 63852], 29885, 36093, 21959, 31329, [32034, 63850],\n    [12170, 33394], 29298, [12131, 29983], 29989, 31513, 22661, 22779, 23996,\n    24207, 24246, 24464, 24661, 25234, 25471, 25933, 26257, 26329, 26360,\n    26646, 26866, 29312, 29790, 31598, 32110, 32214, 32626, 32997, 33298,\n    34223, 35199, 35475, 36893, 37604, [12233, 40653], [12239, 40736],\n    [12067, 22805], 22893, 24109, 24796, 26132, 26227, 26512, 27728, 28101,\n    28511, [12143, 30707], 30889, 33990, 37323, 37675, 20185, 20682, 20808,\n    21892, 23307, 23459, 25159, 25982, 26059, 28210, 29053, 29697, 29764,\n    29831, 29887, 30316, 31146, 32218, 32341, 32680, 33146, 33203, 33337,\n    34330, 34796, 35445, 36323, 36984, 37521, 37925, 39245, 39854, 21352,\n    23633, 26964, 27844, 27945, 28203, [12166, 33292], 34203, 35131, 35373,\n    [35498, 63855, 63905], 38634, 40807, 21089, 26297, 27570, 32406, 34814,\n    36109, 38275, 38493, 25885, 28041, 29166, 22478, 22995, 23468, 24615,\n    24826, 25104, 26143, 26207, 29481, 29689, 30427, [30465, 63853], 31596,\n    32854, 32882, 33125, 35488, 37266, 19990, 21218, 27506, 27927, 31237,\n    31545, 32048, 36016, 21484, 22063, 22609, 23477, [12073, 23567], 23569,\n    24034, 25152, 25475, 25620, 26157, 26803, 27836, 28040, 28335, 28703,\n    28836, 29138, 29990, 30095, 30094, 30233, 31505, 31712, 31787, 32032,\n    32057, 34092, 34157, 34311, 35380, 36877, 36961, 37045, 37559, 38902,\n    39479, 20439, 23660, 26463, 28049, 31903, 32396, 35606, 36118, 36895,\n    23403, 24061, 25613, 33984, 36956, 39137, [29575, 63841, 63963], 23435,\n    24730, 26494, 28126, 35359, 35494, 36865, 38924, 21047, 28753, 30862,\n    37782, 34928, 37335, 20462, 21463, 22013, 22234, 22402, 22781, 23234,\n    23432, 23723, 23744, 24101, 24833, 25101, [12095, 25163], 25480, 25628,\n    25910, [25976, 63849], 27193, 27530, [12116, 27700], 27929, 28465, 29159,\n    29417, 29560, 29703, 29874, 30246, 30561, 31168, 31319, 31466, 31929,\n    32143, 32172, 32353, 32670, 33065, 33585, 33936, 34010, 34282, 34966,\n    35504, 35728, 36664, 36930, 36995, 37228, 37526, 37561, 38539,\n    {f: 2, c: 38567}, 38614, 38656, 38920, [12216, 39318], 39635, 39706, 21460,\n    22654, 22809, 23408, 23487, 28113, 28506, 29087, 29729, 29881, 32901,\n    33789, 24033, 24455, 24490, 24642, 26092, 26642, 26991, 27219, 27529,\n    27957, 28147, 29667, 30462, 30636, 31565, 32020, 33059, 33308, 33600,\n    34036, 34147, 35426, 35524, 37255, 37662, 38918, 39348, 25100, 34899,\n    36848, 37477, 23815, 23847, 23913, 29791, 33181, 34664, 28629,\n    [25342, 63859], 32722, 35126, 35186, 19998, 20056, 20711, 21213, 21319,\n    25215, 26119, 32361, 34821, 38494, 20365, 21273, 22070, 22987, 23204,\n    [12075, 23608], 23630, 23629, 24066, 24337, 24643, 26045, 26159, 26178,\n    26558, 26612, 29468, [12142, 30690], [12144, 31034], 32709, 33940, 33997,\n    35222, 35430, 35433, 35553, [12183, 35925], 35962, 22516, 23508, 24335,\n    24687, 25325, 26893, 27542, 28252, 29060, 31698, 34645, [35672, 63996],\n    36606, [12215, 39135], 39166, 20280, 20353, 20449, 21627, 23072, 23480,\n    24892, 26032, 26216, 29180, 30003, 31070, 32051, 33102, [12162, 33251],\n    33688, 34218, 34254, 34563, 35338, [12189, 36523], [12191, 36763], 36805,\n    22833, 23460, 23526, 24713, 23529, 23563, [12092, 24515], 27777, 28145,\n    28683, 29978, 33455, 35574, [20160, 63997], [12055, 21313], 38617,\n    [12114, 27663], 20126, 20420, 20818, 21854, 23077, 23784, 25105,\n    [12123, 29273], 33469, 33706, 34558, 34905, 35357, 38463, 38597, 39187,\n    40201, 40285, 22538, 23731, 23997, 24132, [24801, 63929], 24853, 25569,\n    [27138, 63764, 63836, 63935], 28197, 37122, 37716, 38990, 39952, 40823,\n    23433, 23736, 25353, 26191, 26696, 30524, 38593, 38797, 38996, 39839,\n    26017, 35585, 36555, 38332, 21813, 23721, 24022, 24245, 26263, 30284,\n    33780, 38343, 22739, 25276, 29390, 40232, 20208, 22830, 24591, 26171,\n    27523, 31207, 40230, 21395, 21696, 22467, 23830, 24859, 26326, 28079,\n    30861, 33406, 38552, 38724, 21380, 25212, 25494, 28082, 32266, 33099,\n    38989, 27387, 32588, 40367, 40474, 20063, 20539, 20918, 22812, 24825,\n    25590, 26928, 29242, 32822, 37326, 24369, 32004, [33509, 63860], 33903,\n    33979, 34277, 36493, 20335, 22756, 23363, 24665, 25562, 25880, 25965,\n    26264, 26954, 27171, 27915, 28673, 29036, 30162, 30221, 31155, 31344,\n    [12154, 32650], 35140, 35731, 37312, 38525, 39178, 22276, 24481, 26044,\n    28417, 30208, 31142, 35486, 39341, [12226, 39770], 40812, 20740, 25014,\n    25233, 27277, 33222, 20547, 22576, 24422, 28937, [12180, 35328], 35578,\n    23420, 34326, 20474, 20796, 22196, 22852, 25513, 28153, 23978, 26989,\n    20870, 20104, 20313, 22914, 27487, 27741, 29877, 30998, 33287, 33349,\n    33593, 36671, 36701, 39192, 20134, 22495, 24441, [26131, 63968], 30123,\n    32377, 35695, 36870, 39515, 22181, 22567, 23032, 23071, 23476, 24310,\n    25424, 25403, 26941, 27783, 27839, 28046, 28051, 28149, 28436, 28895,\n    28982, 29017, 29123, 29141, 30799, 30831, 31605, 32227, 32303, 34893,\n    36575, 37467, 40182, 24709, 28037, 29105, 38321, 21421, 26579, 28814,\n    28976, 29744, 33398, 33490, 38331, 39653, 40573, 26308, 29121,\n    [33865, 63854], 22603, 23992, 24433, 26144, 26254, 27001, 27054, 27704,\n    27891, 28214, 28481, 28634, 28699, 28719, 29008, 29151, 29552, 29787,\n    29908, 30408, 31310, 32403, 33521, 35424, 36814, 37704, 38681, 20034,\n    20522, 21000, 21473, 26355, 27757, 28618, 29450, 30591, 31330, 33454,\n    34269, 34306, 35028, 35427, 35709, 35947, 37555, 38675, 38928, 20116,\n    20237, 20425, 20658, 21320, 21566, 21555, 21978, 22626, 22714, 22887,\n    23067, 23524, 24735, 25034, 25942, 26111, 26212, 26791, 27738, 28595,\n    28879, 29100, 29522, 31613, 34568, 35492, 39986, 40711, 23627, 27779,\n    29508, [12127, 29577], 37434, 28331, 29797, 30239, 31337, 32277, 34314,\n    20800, 22725, 25793, 29934, 29973, 30320, 32705, 37013, 38605, 39252,\n    28198, [12129, 29926], {f: 2, c: 31401}, 33253, 34521, 34680, 35355, 23113,\n    23436, 23451, 26785, 26880, 28003, 29609, 29715, 29740, 30871, 32233,\n    32747, 33048, 33109, 33694, 35916, [38446, 63942], 38929, [12104, 26352],\n    24448, 26106, 26505, 27754, 29579, 20525, 23043, 27498, 30702, 22806,\n    23916, 24013, 29477, 30031, 20709, 20985, 22575, 22829, 22934, 23002,\n    23525, 23970, 25303, 25622, 25747, 25854, 26332, 27208, 29183, 29796,\n    31368, 31407, 32327, 32350, 32768, 33136, 34799, 35201, 35616, 36953,\n    36992, 39250, 24958, 27442, 28020, 32287, 35109, 36785, 20433, 20653,\n    20887, 21191, 22471, 22665, 23481, 24248, 24898, 27029, 28044, 28263,\n    28342, 29076, 29794, [12132, 29992], 29996, 32883, 33592, 33993, 36362,\n    37780, 37854, 20110, 20305, 20598, 20778, [12060, 21448], 21451, 21491,\n    23431, 23507, 23588, 24858, 24962, 26100, [12124, 29275], 29591, 29760,\n    30402, 31056, 31121, 31161, 32006, [12155, 32701], 33419, 34261, 34398,\n    36802, 36935, 37109, 37354, 38533, [12204, 38632], 38633, 21206, 24423,\n    26093, 26161, 26671, 29020, 31286, 37057, 38922, 20113, 27218, 27550,\n    28560, 29065, 32792, 33464, 34131, 36939, 38549, 38642, 38907, 34074,\n    39729, 20112, 29066, 38596, 20803, 21407, 21729, 22291, 22290, 22435,\n    23195, 23236, 23491, 24616, 24895, 25588, 27781, 27961, 28274, 28304,\n    29232, 29503, 29783, 33489, 34945, 36677, 36960, 38498, 39000, 40219,\n    [12105, 26376], 36234, 37470, 20301, 20553, 20702, 21361, 22285, 22996,\n    23041, 23561, 24944, 26256, 28205, 29234, 29771, 32239, 32963, 33806,\n    33894, 34111, 34655, 34907, 35096, 35586, 36949, [12209, 38859], 39759,\n    20083, 20369, 20754, 20842, 21807, 21929, 23418, 23461, {f: 2, c: 24188},\n    24254, 24736, 24799, {f: 2, c: 24840}, 25540, 25912, 26377, 26580, 26586,\n    {f: 2, c: 26977}, 27833, 27943, 28216, 28641, {f: 2, c: 29494}, 29788,\n    30001, 30290, 32173, 33278, 33848, 35029, 35480, 35547, 35565, 36400,\n    36418, 36938, 36926, 36986, [12195, 37193], 37321, 37742, 22537, 27603,\n    [12161, 32905], 32946, 20801, 22891, 23609, 28516, 29607, 32996, 36103,\n    37399, 38287, [12160, 32895], 25102, 28700, 32104, 34701, 22432, 24681,\n    24903, 27575, 35518, 37504, 38577, [12036, 20057], 21535, 28139, 34093,\n    38512, [12211, 38899], 39150, 25558, 27875, [12194, 37009], 20957, 25033,\n    33210, 40441, 20381, 20506, 20736, 23452, 24847, 25087, 25836, 26885,\n    27589, 30097, 30691, 32681, 33380, 34191, 34811, [12176, 34915], 35516,\n    35696, 37291, [12038, 20108], 20197, 20234, 22839, 23016, 24050, 24347,\n    24411, 24609, 29246, 29669, [30064, 63842], 30157, 31227, [12157, 32780],\n    [12159, 32819], 32900, 33505, 33617, 36029, 36019, 36999, 39156, 39180,\n    28727, 30410, 32714, 32716, 32764, 35610, [12040, 20154], 20161, 20995,\n    21360, [21693, 63902], 22240, 23035, 23493, 24341, 24525, 28270, 32106,\n    33589, 34451, 35469, 38765, 38775, [12032, 19968], 20314, 20350, 22777,\n    [12103, 26085], 28322, 36920, 37808, 39353, 20219, 22764, 22922, 23001,\n    24641, 31252, 33615, 36035, [12042, 20837], 21316, 20173, 21097, 23381,\n    33471, 20180, [21050, 63999], 21672, 22985, 23039, [12070, 23376], 23383,\n    23388, 24675, 24904, 28363, [28825, 63995], 29038, 29574, 29943, 30133,\n    30913, 32043, 32773, [12163, 33258], 33576, 34071, 34249, 35566, 36039,\n    38604, 20316, 21242, 22204, 26027, 26152, 28796, 28856, 29237, 32189,\n    33421, 37196, 38592, 40306, 23409, 26855, 27544, 28538, 30430, 23697,\n    26283, 28507, 31668, 31786, 34870, 38620, 19976, 20183, 21280, 22580,\n    22715, 22767, 22892, 23559, 24115, 24196, 24373, 25484, 26290, 26454,\n    27167, 27299, 27404, 28479, 29254, 29520, 29835, 31456, 31911, 33144,\n    33247, 33255, 33674, 33900, 34083, 34196, 34255, 35037, 36115, 37292,\n    [12199, 38263], 38556, 20877, 21705, 22312, 23472, 25165, 26448, 26685,\n    26771, 28221, 28371, 28797, 32289, 35009, 36001, 36617, 40779, 40782,\n    29229, 31631, 35533, 37658, 20295, 20302, 20786, 21632, 22992, 24213,\n    25269, 26485, 26990, 27159, 27822, 28186, 29401, 29482, 30141, 31672,\n    32053, 33511, 33785, 33879, 34295, 35419, 36015, 36487, 36889, 37048,\n    38606, 40799, 21219, 21514, 23265, 23490, 25688, 25973, 28404, 29380,\n    30340, 31309, 31515, 31821, 32318, 32735, 33659, 35627, 36042,\n    [12186, 36196], 36321, 36447, 36842, 36857, 36969, 37841, 20291, 20346,\n    20659, 20840, 20856, 21069, 21098, 22625, 22652, 22880, 23560, 23637,\n    24283, 24731, 25136, 26643, 27583, 27656, 28593, 29006, 29728,\n    [12133, 30000], 30008, 30033, 30322, 31564, 31627, 31661, 31686, 32399,\n    35438, 36670, 36681, 37439, 37523, 37666, 37931, 38651, 39002, 39019,\n    39198, [20999, 64000], 25130, 25240, 27993, 30308, 31434, 31680, 32118,\n    21344, 23742, 24215, 28472, 28857, 31896, 38673, 39822, 40670, 25509,\n    25722, 34678, 19969, 20117, 20141, 20572, 20597, 21576, 22979, 23450,\n    24128, 24237, 24311, 24449, 24773, 25402, 25919, 25972, 26060, 26230,\n    26232, 26622, 26984, 27273, 27491, 27712, 28096, 28136, 28191, 28254,\n    28702, 28833, 29582, 29693, 30010, 30555, 30855, 31118, 31243, 31357,\n    31934, 32142, 33351, 35330, 35562, 35998, 37165, 37194, 37336, 37478,\n    37580, 37664, 38662, 38742, 38748, 38914, [12237, 40718], 21046, 21137,\n    21884, 22564, 24093, 24351, 24716, 25552, 26799, 28639, 31085, 31532,\n    33229, 34234, 35069, 35576, 36420, 37261, 38500, 38555, 38717, 38988,\n    [12241, 40778], 20430, 20806, 20939, 21161, 22066, 24340, 24427, 25514,\n    25805, 26089, 26177, 26362, 26361, 26397, 26781, 26839, 27133, 28437,\n    28526, 29031, 29157, [12118, 29226], 29866, 30522, 31062, 31066, 31199,\n    31264, 31381, 31895, 31967, 32068, 32368, 32903, 34299, 34468, 35412,\n    35519, 36249, 36481, 36896, 36973, 37347, 38459, 38613, [12227, 40165],\n    26063, 31751, [12188, 36275], 37827, 23384, 23562, 21330, 25305, 29469,\n    20519, 23447, 24478, 24752, 24939, 26837, 28121, 29742, 31278, 32066,\n    32156, 32305, 33131, 36394, 36405, 37758, 37912, 20304, 22352, 24038,\n    24231, 25387, 32618, 20027, 20303, 20367, 20570, 23005, 32964, 21610,\n    21608, 22014, 22863, 23449, 24030, 24282, 26205, 26417, 26609, 26666,\n    27880, 27954, 28234, 28557, 28855, 29664, 30087, 31820, 32002, 32044,\n    32162, [12168, 33311], 34523, 35387, 35461, [12187, 36208], 36490, 36659,\n    36913, 37198, 37202, 37956, 39376, [12149, 31481], 31909, 20426, 20737,\n    20934, 22472, 23535, 23803, 26201, 27197, 27994, 28310, 28652, 28940,\n    30063, 31459, 34850, 36897, 36981, 38603, 39423, 33537, 20013, 20210,\n    34886, 37325, 21373, 27355, 26987, 27713, 33914, 22686, 24974, 26366,\n    25327, 28893, 29969, 30151, 32338, 33976, 35657, 36104, 20043, 21482,\n    21675, 22320, 22336, 24535, 25345, 25351, 25711, [12096, 25903], 26088,\n    26234, 26525, 26547, [12108, 27490], 27744, 27802, 28460, 30693, 30757,\n    31049, 31063, 32025, 32930, 33026, [12164, 33267], 33437, 33463, 34584,\n    35468, 36100, 36286, 36978, 30452, 31257, 31287, 32340, 32887, 21767,\n    21972, 22645, 25391, 25634, 26185, 26187, 26733, 27035, 27524, 27941,\n    28337, 29645, 29800, 29857, 30043, 30137, 30433, 30494, 30603, 31206,\n    32265, 32285, 33275, 34095, 34967, 35386, 36049, 36587,\n    [12192, 36784, 63857], 36914, 37805, 38499, 38515, 38663, 20356, 21489,\n    23018, 23241, 24089, 26702, 29894, 30142, 31209, 31378, 33187, 34541,\n    36074, 36300, 36845, 26015, 26389, 22519, 28503, 32221, 36655, 37878,\n    38598, 24501, 25074, 28548, 19988, 20376, 20511, 21449, 21983, 23919,\n    24046, 27425, 27492, 30923, 31642, 36425, [12190, 36554, 63746], 36974,\n    25417, 25662, 30528, 31364, 37679, 38015, 40810, 25776, 28591, 29158,\n    29864, 29914, 31428, 31762, 32386, 31922, 32408, 35738, 36106, 38013,\n    39184, 39244, 21049, 23519, 25830, 26413, 32046, 20717, [21443, 63851],\n    22649, {f: 2, c: 24920}, 25082, 26028, 31449, 35730, 35734, 20489, 20513,\n    21109, 21809, 23100, 24288, 24432, 24884, 25950, 26124, 26166, 26274,\n    27085, 28356, 28466, 29462, 30241, 31379, 33081, 33369, 33750, 33980,\n    20661, 22512, 23488, 23528, 24425, 25505, 30758, 32181, 33756, 34081,\n    37319, 37365, 20874, 26613, 31574, 36012, 20932, 22971, 24765, 34389,\n    20508, 21076, 23610, 24957, 25114, [25299, 64002], 25842, 26021, 28364,\n    30240, 33034, 36448, 38495, 38587, 20191, 21315, 21912, 22825, 24029,\n    25797, 27849, 28154, 29588, 31359, [12167, 33307], 34214, 36068, 36368,\n    36983, 37351, 38369, 38433, 38854, 20984, 21746, 21894, 24505, 25764,\n    28552, 32180, 36639, 36685, 37941, 20681, 23574, 27838, 28155, 29979,\n    30651, 31805, 31844, 35449, 35522, 22558, 22974, 24086, 25463, 29266,\n    30090, 30571, 35548, 36028, 36626, 24307, 26228, 28152, 32893, 33729,\n    35531, [12205, 38737], 39894, 21059, 26367, 28053, 28399, 32224, 35558,\n    36910, 36958, 39636, 21021, 21119, 21736, 24980, 25220, 25307, 26786,\n    26898, 26970, 27189, 28818, 28966, 30813, 30977, 30990, 31186, 31245,\n    32918, [12171, 33400], 33493, 33609, 34121, 35970, 36229, 37218, 37259,\n    37294, 20419, 22225, 29165, 30679, 34560, 35320, [12072, 23544], 24534,\n    26449, 37032, 21474, 22618, 23541, 24740, 24961, 25696, 32317, 32880,\n    34085, 37507, 25774, 20652, 23828, 26368, 22684, 25277, 25512, 26894,\n    27000, 27166, 28267, 30394, 31179, 33467, 33833, 35535, 36264, 36861,\n    37138, 37195, 37276, 37648, 37656, 37786, 38619, 39478, 39949, 19985,\n    30044, 31069, 31482, 31569, 31689, 32302, 33988, 36441, 36468, 36600,\n    36880, 26149, 26943, 29763, 20986, 26414, 40668, 20805, 24544, 27798,\n    34802, 34909, 34935, 24756, 33205, 33795, 36101, 21462, 21561, 22068,\n    23094, 23601, 28810, 32736, 32858, 33030, 33261, 36259, 37257, 39519,\n    40434, 20596, 20164, 21408, 24827, 28204, 23652, 20360, 20516, 21988,\n    23769, 24159, 24677, 26772, 27835, 28100, 29118, 30164, 30196, 30305,\n    31258, 31305, 32199, 32251, 32622, 33268, 34473, 36636, 38601, 39347,\n    [12242, 40786], 21063, 21189, 39149, 35242, 19971, 26578, 28422, 20405,\n    23522, 26517, [27784, 63858], 28024, 29723, 30759, 37341, 37756, 34756,\n    31204, 31281, 24555, 20182, 21668, 21822, 22702, 22949, 24816, 25171,\n    25302, 26422, 26965, 33333, 38464, 39345, 39389, 20524, 21331, 21828,\n    22396, 25176, 25826, 26219, 26589, 28609, 28655, 29730, 29752, 35351,\n    37944, 21585, 22022, 22374, 24392, 24986, 27470, 28760, 28845, 32187,\n    35477, 22890, 33067, 25506, 30472, 32829, 36010, 22612, 25645, 27067,\n    23445, 24081, 28271, 34153, 20812, 21488, 22826, 24608, 24907, 27526,\n    27760, 27888, 31518, 32974, 33492, 36294, 37040, 39089, 25799, 28580,\n    25745, 25860, 20814, 21520, [12063, 22303], 35342, 24927, 26742, 30171,\n    31570, 32113, 36890, 22534, 27084, 33151, 35114, 36864, 38969, 20600,\n    22871, 22956, 25237, 36879, 39722, 24925, 29305, 38358, 22369, 23110,\n    24052, 25226, 25773, 25850, 26487, 27874, 27966, 29228, 29750, 30772,\n    32631, 33453, 36315, 38935, 21028, 22338, 26495, 29256, 29923, 36009,\n    36774, 37393, 38442, [12043, 20843], 21485, 25420, 20329, 21764, 24726,\n    25943, 27803, 28031, 29260, 29437, 31255, 35207, [12185, 35997], 24429,\n    28558, 28921, 33192, 24846, [20415, 63845], 20559, 25153, [12122, 29255],\n    31687, 32232, 32745, 36941, 38829, 39449, 36022, 22378, 24179, 26544,\n    33805, 35413, 21536, 23318, 24163, 24290, 24330, 25987, 32954, 34109,\n    38281, 38491, 20296, 21253, 21261, 21263, 21638, 21754, 22275, 24067,\n    24598, 25243, 25265, 25429, 27873, 28006, 30129, 30770, 32990, 33071,\n    33502, 33889, 33970, 34957, 35090, 36875, 37610, 39165, 39825, 24133,\n    [26292, 64006], 26333, 28689, 29190, 20469, 21117, 24426, 24915, 26451,\n    27161, 28418, 29922, 31080, 34920, 35961, 39111, 39108, 39491, 21697,\n    31263, 26963, 35575, 35914, [12213, 39080], 39342, 24444, 25259, 30130,\n    [12138, 30382], 34987, 36991, 38466, 21305, 24380, 24517, [27852, 63848],\n    29644, 30050, [12134, 30091], 31558, 33534, 39325, 20047, 36924, 19979,\n    20309, 21414, 22799, 24264, 26160, 27827, 29781, 33655, 34662, 36032,\n    36944, 38686, 39957, 22737, 23416, 34384, 35604, 40372, 23506, 24680,\n    24717, 26097, 27735, 28450, 28579, 28698, 32597, 32752, {f: 2, c: 38289},\n    38480, 38867, 21106, 36676, 20989, 21547, 21688, 21859, 21898, 27323,\n    28085, 32216, 33382, 37532, 38519, 40569, 21512, 21704, 30418, 34532,\n    38308, 38356, 38492, 20130, 20233, 23022, 23270, 24055, 24658, 25239,\n    26477, 26689, 27782, 28207, 32568, 32923, 33322, 38917, 20133, 20565,\n    21683, 22419, 22874, 23401, 23475, 25032, 26999, 28023, 28707, 34809,\n    35299, 35442, 35559, 36994, 39405, 39608, 21182, 26680, 20502, 24184,\n    26447, 33607, [12175, 34892, 64008], 20139, 21521, 22190, 29670, 37141,\n    38911, 39177, 39255, [12217, 39321], 22099, 22687, 34395, 35377, 25010,\n    27382, 29563, 36562, 27463, 38570, 39511, 22869, 29184, 36203,\n    [12208, 38761], 20436, 23796, 24358, 25080, 26203, 27883, 28843,\n    [12126, 29572], 29625, 29694, 30505, 30541, 32067, 32098, 32291, 33335,\n    34898, 36066, 37449, 39023, 23377, [12147, 31348], [12174, 34880],\n    [12212, 38913], 23244, 20448, 21332, 22846, 23805, 25406, 28025, 29433,\n    33029, 33031, 33698, 37583, 38960, 20136, 20804, 21009, 22411, 24418,\n    27842, 28366, 28677, 28752, 28847, 29074, 29673, [29801, 63918], 33610,\n    34722, 34913, 36872, 37026, 37795, 39336, 20846, 24407, 24800, 24935,\n    26291, 34137, 36426, 37295, 38795, 20046, 20114, 21628, 22741, 22778,\n    22909, 23733, 24359, [12094, 25142], 25160, 26122, 26215, 27627, 28009,\n    28111, 28246, 28408, 28564, 28640, 28649, 28765, 29392, 29733, 29786,\n    29920, 30355, 31068, 31946, 32286, 32993, 33446, 33899, 33983, 34382,\n    34399, 34676, 35703, 35946, 37804, 38912, 39013, 24785, 25110, 37239,\n    23130, 26127, 28151, 28222, 29759, 39746, 24573, 24794, 31503, 21700,\n    24344, 27742, 27859, 27946, 28888, 32005, 34425, 35340, 40251, 21270,\n    21644, 23301, 27194, [12117, 28779], 30069, 31117, [12146, 31166], 33457,\n    33775, 35441, 35649, 36008, 38772, 25844, 25899, {f: 2, c: 30906}, 31339,\n    20024, 21914, 22864, 23462, 24187, 24739, 25563, 27489, 26213, 26707,\n    28185, 29029, 29872, 32008, 36996, 39529, 39973, 27963, [28369, 63748],\n    29502, 35905, 38346, 20976, 24140, 24488, 24653, 24822, 24880, 24908,\n    {f: 2, c: 26179}, 27045, 27841, 28255, 28361, 28514, 29004, 29852, 30343,\n    31681, 31783, 33618, 34647, 36945, 38541, [12232, 40643], 21295, 22238,\n    24315, 24458, 24674, 24724, 25079, 26214, 26371, 27292, 28142, 28590,\n    28784, 29546, 32362, 33214, 33588, 34516, 35496, 36036, 21123, 29554,\n    23446, 27243, 37892, 21742, 22150, 23389, 25928, 25989, 26313, 26783,\n    28045, 28102, [12120, 29243], 32948, 37237, 39501, 20399, 20505, 21402,\n    21518, 21564, 21897, 21957, 24127, 24460, 26429, 29030, 29661, 36869,\n    21211, 21235, 22628, 22734, 28932, 29071, 29179, 34224, 35347,\n    [26248, 63941], 34216, 21927, 26244, 29002, 33841, 21321, 21913, 27585,\n    24409, 24509, 25582, 26249, 28999, 35569, 36637, 40638, 20241, 25658,\n    28875, 30054, 34407, 24676, 35662, 40440, 20807, 20982, 21256, 27958,\n    33016, [12234, 40657], 26133, 27427, 28824, 30165, 21507, 23673, 32007,\n    35350, [12107, 27424], 27453, 27462, 21560, 24688, 27965, 32725, 33288,\n    20694, 20958, 21916, 22123, 22221, 23020, 23305, 24076, 24985, 24984,\n    25137, 26206, 26342, 29081, {f: 2, c: 29113}, 29351, 31143, 31232, 32690,\n    35440, {s: 163}, {f: 4, c: 12310}, {s: 14}, 8223, 8219, {f: 2, c: 8314},\n    {s: 7}, 8316, 0, {f: 2, c: 8317}, {s: 23}, 700, {s: 44}, 8942, 8759,\n    {s: 20}, {f: 10, c: 10122}, {s: 36}, {f: 26, c: 9398}, {s: 61},\n    {f: 2, c: 8826}, {f: 2, c: 8910}, {f: 2, c: 8832}, {f: 4, c: 8816}, 0,\n    8842, 0, 8843, {f: 2, c: 8822}, 8825, {f: 2, c: 8922}, {s: 5}, 8773, 8771,\n    8776, 0, 8868, {s: 78}, 8244, {s: 11}, 9839, {s: 4}, 8258, {s: 4}, 10045,\n    0, 0, 8226, {s: 4}, {f: 2, c: 8249}, {s: 16}, 10010, 10006, 0, 9711,\n    {s: 3}, 10070, 0, 9676, {s: 24}, 9775, {s: 6}, 12320, 0, {f: 10, c: 10102},\n    {s: 17}, 12306, 12342, {s: 13}, 8710, 0, 8735, 0, {f: 2, c: 8741}, 0, 8787,\n    8785, {f: 2, c: 8806}, 8723, {f: 3, c: 8853}, 0, 8980, 0, 0, 8802, 0, 9649,\n    0, 8738, 8784, 0, 0, 8867, 0, 0, {f: 2, c: 8814}, 8837, 8836, 8713, 8716,\n    {f: 2, c: 8891}, 8794, 8966, {s: 6}, 12958, 0, 8252, {s: 11}, 9702, {s: 3},\n    9663, 9653, 9657, 9667, {s: 4}, 9674, 12849, 12857, 13259, {f: 5, c: 9327},\n    {s: 18}, 8656, 8655, 8653, {s: 37}, 8657, 8659, {s: 8}, 8626, 8625, 0,\n    8628, 8624, 8627, {s: 14}, 8636, 8640, {s: 10}, {f: 2, c: 8644}, {s: 144},\n    {f: 5, c: 9347}, {s: 33}, 12948, {s: 15}, 12965, {s: 93}, 8672, 8674, 8673,\n    8675, {s: 4}, 8678, 8680, 8679, 8681, {s: 20}, 9757, 9759, {s: 76}, 12944,\n    {f: 6, c: 12938}, {s: 15}, {f: 2, c: 12318}, 8246, 0, 8245, {s: 3}, 12540,\n    0, 0, {f: 2, c: 44034}, {f: 2, c: 44037}, {f: 5, c: 44043}, 44056,\n    {f: 2, c: 44062}, {f: 3, c: 44065}, {f: 7, c: 44069}, 44078,\n    {f: 6, c: 44082}, {f: 2, c: 44090}, {f: 3, c: 44093}, {f: 10, c: 44097},\n    44108, {f: 6, c: 44110}, {f: 3, c: 44117}, {f: 3, c: 44121},\n    {f: 19, c: 44125}, {f: 2, c: 44146}, {f: 2, c: 44149}, 44153,\n    {f: 5, c: 44155}, 44162, {f: 2, c: 44167}, {f: 3, c: 44173},\n    {f: 3, c: 44177}, {f: 7, c: 44181}, 44190, {f: 6, c: 44194}, 44203,\n    {f: 2, c: 44205}, {f: 7, c: 44209}, 44218, {f: 3, c: 44222},\n    {f: 2, c: 44226}, {f: 3, c: 44229}, {f: 3, c: 44233}, {f: 8, c: 44237},\n    44246, {f: 8, c: 44248}, {f: 2, c: 44258}, {f: 2, c: 44261}, 44265, 44267,\n    {f: 2, c: 44269}, 44274, 44276, {f: 5, c: 44279}, {f: 2, c: 44286},\n    {f: 3, c: 44289}, 44293, {f: 5, c: 44295}, 44302, 44304, {f: 6, c: 44306},\n    {f: 3, c: 44313}, {f: 3, c: 44317}, {f: 8, c: 44321}, {f: 2, c: 44330},\n    {f: 6, c: 44334}, {f: 2, c: 44342}, {f: 3, c: 44345}, {f: 7, c: 44349},\n    44358, 44360, {f: 6, c: 44362}, {f: 3, c: 44369}, {f: 3, c: 44373},\n    {f: 8, c: 44377}, 44386, {f: 8, c: 44388}, {f: 2, c: 44398},\n    {f: 2, c: 44401}, {f: 4, c: 44407}, 44414, 44416, {f: 5, c: 44419},\n    {f: 2, c: 44426}, {f: 3, c: 44429}, {f: 11, c: 44433}, {f: 6, c: 44446},\n    {f: 18, c: 44453}, {f: 8, c: 44472}, {f: 2, c: 44482}, {f: 3, c: 44485},\n    {f: 7, c: 44489}, 44498, {f: 8, c: 44500}, {f: 3, c: 44509},\n    {f: 3, c: 44513}, {f: 19, c: 44517}, {f: 2, c: 44538}, {f: 2, c: 44541},\n    {f: 6, c: 44546}, 44554, 44556, {f: 6, c: 44558}, {f: 27, c: 44565},\n    {f: 2, c: 44594}, {f: 2, c: 44597}, 44601, {f: 5, c: 44603}, 44610, 44612,\n    {f: 3, c: 44615}, 44619, 44623, {f: 3, c: 44625}, 44629, {f: 5, c: 44631},\n    44638, {f: 3, c: 44642}, {f: 2, c: 44646}, {f: 2, c: 44650},\n    {f: 3, c: 44653}, {f: 7, c: 44657}, 44666, {f: 6, c: 44670},\n    {f: 6, c: 44678}, {f: 47, c: 44685}, 44735, {f: 3, c: 44737},\n    {f: 7, c: 44741}, 44750, {f: 6, c: 44754}, {f: 2, c: 44762},\n    {f: 11, c: 44765}, {f: 2, c: 44777}, 44780, {f: 6, c: 44782},\n    {f: 3, c: 44789}, {f: 3, c: 44793}, {f: 10, c: 44797}, {f: 4, c: 44809},\n    {f: 2, c: 44814}, {f: 27, c: 44817}, {f: 2, c: 44846}, 44849, 44851,\n    {f: 7, c: 44853}, 44862, 44864, {f: 4, c: 44868}, {f: 6, c: 44874},\n    {f: 11, c: 44881}, {f: 6, c: 44894}, {f: 19, c: 44902}, {f: 6, c: 44922},\n    {f: 3, c: 44929}, {f: 3, c: 44933}, {f: 7, c: 44937}, {f: 3, c: 44946},\n    {f: 6, c: 44950}, {f: 27, c: 44957}, {f: 2, c: 44986}, {f: 3, c: 44989},\n    {f: 6, c: 44993}, 45002, 45004, {f: 5, c: 45007}, {f: 7, c: 45013},\n    {f: 11, c: 45021}, {f: 6, c: 45034}, {f: 2, c: 45042}, {f: 3, c: 45045},\n    {f: 7, c: 45049}, {f: 2, c: 45058}, {f: 7, c: 45061}, {f: 3, c: 45069},\n    {f: 3, c: 45073}, {f: 7, c: 45077}, {f: 10, c: 45086}, {f: 27, c: 45097},\n    {f: 2, c: 45126}, 45129, 45131, 45133, {f: 4, c: 45135}, 45142, 45144,\n    {f: 3, c: 45146}, {f: 30, c: 45150}, {f: 2, c: 45182}, {f: 3, c: 45185},\n    {f: 7, c: 45189}, 45198, 45200, {f: 6, c: 45202}, 45211, {f: 2, c: 45213},\n    {f: 5, c: 45219}, 45226, 45232, 45234, {f: 2, c: 45238}, {f: 3, c: 45241},\n    {f: 7, c: 45245}, 45254, {f: 6, c: 45258}, {f: 2, c: 45266},\n    {f: 3, c: 45269}, {f: 7, c: 45273}, {f: 4, c: 45281}, {f: 34, c: 45286},\n    45322, {f: 3, c: 45325}, 45329, {f: 4, c: 45332}, 45338, {f: 5, c: 45342},\n    {f: 2, c: 45350}, {f: 3, c: 45353}, {f: 7, c: 45357}, 45366,\n    {f: 6, c: 45370}, {f: 2, c: 45378}, {f: 3, c: 45381}, {f: 7, c: 45385},\n    {f: 2, c: 45394}, {f: 2, c: 45398}, {f: 3, c: 45401}, {f: 3, c: 45405},\n    {f: 23, c: 45409}, {f: 2, c: 45434}, {f: 3, c: 45437}, 45441,\n    {f: 5, c: 45443}, 45450, 45452, {f: 4, c: 45454}, {f: 3, c: 45461},\n    {f: 3, c: 45465}, {f: 11, c: 45469}, {f: 35, c: 45481}, {f: 3, c: 45517},\n    {f: 3, c: 45521}, {f: 7, c: 45525}, 45534, {f: 8, c: 45536},\n    {f: 2, c: 45546}, {f: 3, c: 45549}, {f: 8, c: 45553}, 45562, 45564,\n    {f: 6, c: 45566}, {f: 2, c: 45574}, {f: 2, c: 45577}, {f: 7, c: 45581},\n    45590, 45592, {f: 6, c: 45594}, {f: 19, c: 45601}, {f: 7, c: 45621},\n    {f: 27, c: 45629}, {f: 3, c: 45657}, {f: 3, c: 45661}, {f: 7, c: 45665},\n    {f: 10, c: 45674}, {f: 6, c: 45686}, {f: 7, c: 45693}, {f: 3, c: 45702},\n    {f: 6, c: 45706}, {f: 2, c: 45714}, {f: 3, c: 45717}, {f: 5, c: 45723},\n    45730, 45732, {f: 3, c: 45735}, 45739, {f: 3, c: 45741}, {f: 3, c: 45745},\n    {f: 19, c: 45749}, {f: 2, c: 45770}, {f: 3, c: 45773}, 45777,\n    {f: 5, c: 45779}, 45786, 45788, {f: 4, c: 45790}, 45795, 45799,\n    {f: 2, c: 45801}, {f: 3, c: 45808}, 45814, {f: 3, c: 45820},\n    {f: 2, c: 45826}, {f: 3, c: 45829}, {f: 7, c: 45833}, 45842,\n    {f: 6, c: 45846}, {f: 55, c: 45853}, 45911, {f: 2, c: 45913}, 45917,\n    {f: 4, c: 45920}, 45926, 45928, 45930, {f: 2, c: 45932}, 45935,\n    {f: 2, c: 45938}, {f: 3, c: 45941}, {f: 7, c: 45945}, 45954,\n    {f: 6, c: 45958}, {f: 3, c: 45965}, {f: 3, c: 45969}, {f: 11, c: 45973},\n    {f: 6, c: 45986}, {f: 3, c: 45993}, {f: 23, c: 45997}, {f: 2, c: 46022},\n    {f: 2, c: 46025}, 46029, 46031, {f: 3, c: 46033}, 46038, 46040, 46042,\n    46044, {f: 2, c: 46046}, {f: 3, c: 46049}, {f: 3, c: 46053},\n    {f: 19, c: 46057}, {f: 19, c: 46077}, {f: 7, c: 46097}, {f: 3, c: 46105},\n    {f: 3, c: 46109}, {f: 7, c: 46113}, 46122, {f: 8, c: 46124},\n    {f: 27, c: 46133}, {f: 2, c: 46162}, {f: 3, c: 46165}, {f: 7, c: 46169},\n    46178, 46180, {f: 6, c: 46182}, {f: 19, c: 46189}, {f: 7, c: 46209},\n    {f: 20, c: 46217}, {f: 6, c: 46238}, {f: 3, c: 46245}, {f: 3, c: 46249},\n    {f: 8, c: 46253}, 46262, 46264, {f: 6, c: 46266}, {f: 3, c: 46273},\n    {f: 3, c: 46277}, {f: 7, c: 46281}, {f: 4, c: 46289}, {f: 6, c: 46294},\n    {f: 2, c: 46302}, {f: 2, c: 46305}, 46309, {f: 5, c: 46311}, 46318, 46320,\n    {f: 6, c: 46322}, {f: 27, c: 46329}, {f: 2, c: 46358}, {f: 2, c: 46361},\n    {f: 7, c: 46365}, 46374, {f: 5, c: 46379}, {f: 2, c: 46386},\n    {f: 3, c: 46389}, {f: 7, c: 46393}, 46402, {f: 5, c: 46406},\n    {f: 2, c: 46414}, {f: 3, c: 46417}, {f: 7, c: 46421}, 46430,\n    {f: 62, c: 46434}, {f: 2, c: 46498}, {f: 3, c: 46501}, 46505,\n    {f: 4, c: 46508}, 46514, {f: 5, c: 46518}, {f: 2, c: 46526},\n    {f: 3, c: 46529}, {f: 7, c: 46533}, 46542, {f: 6, c: 46546},\n    {f: 19, c: 46553}, {f: 35, c: 46573}, {f: 2, c: 46610}, {f: 3, c: 46613},\n    {f: 12, c: 46617}, {f: 6, c: 46630}, {f: 7, c: 46637}, {f: 19, c: 46645},\n    {f: 27, c: 46665}, {f: 3, c: 46693}, {f: 51, c: 46697}, {f: 2, c: 46750},\n    {f: 3, c: 46753}, {f: 6, c: 46757}, {f: 4, c: 46765}, {f: 34, c: 46770},\n    {f: 27, c: 46805}, {f: 3, c: 46833}, {f: 3, c: 46837}, {f: 7, c: 46841},\n    {f: 3, c: 46850}, {f: 34, c: 46854}, {f: 2, c: 46890}, {f: 2, c: 46893},\n    {f: 7, c: 46897}, 46906, {f: 8, c: 46908}, {f: 3, c: 46917},\n    {f: 3, c: 46921}, {f: 7, c: 46925}, {f: 10, c: 46934}, {f: 3, c: 46945},\n    {f: 3, c: 46949}, {f: 7, c: 46953}, 46962, 46964, {f: 6, c: 46966},\n    {f: 2, c: 46974}, {f: 3, c: 46977}, {f: 7, c: 46981}, 46990,\n    {f: 3, c: 46995}, {f: 2, c: 47002}, {f: 3, c: 47005}, {f: 7, c: 47009},\n    47018, {f: 6, c: 47022}, {f: 2, c: 47030}, {f: 14, c: 47033}, 47048,\n    {f: 34, c: 47050}, {f: 2, c: 47086}, {f: 3, c: 47089}, {f: 7, c: 47093},\n    47102, {f: 5, c: 47106}, {f: 2, c: 47114}, {f: 3, c: 47117},\n    {f: 7, c: 47121}, 47130, 47132, {f: 6, c: 47134}, {f: 2, c: 47142},\n    {f: 3, c: 47145}, {f: 7, c: 47149}, 47158, {f: 6, c: 47162},\n    {f: 3, c: 47169}, {f: 12, c: 47173}, 47186, {f: 8, c: 47188},\n    {f: 2, c: 47198}, {f: 3, c: 47201}, {f: 7, c: 47205}, 47214, 47216,\n    {f: 6, c: 47218}, {f: 3, c: 47225}, {f: 16, c: 47229}, {f: 26, c: 47246},\n    {f: 7, c: 47273}, {f: 3, c: 47281}, {f: 3, c: 47285}, {f: 7, c: 47289},\n    47298, 47300, {f: 6, c: 47302}, {f: 3, c: 47309}, {f: 3, c: 47313},\n    {f: 8, c: 47317}, 47326, 47328, {f: 6, c: 47330}, {f: 2, c: 47338},\n    {f: 3, c: 47341}, {f: 7, c: 47345}, 47354, 47356, {f: 6, c: 47358},\n    {f: 19, c: 47365}, {f: 7, c: 47385}, {f: 27, c: 47393}, {f: 2, c: 47422},\n    {f: 3, c: 47425}, {f: 7, c: 47429}, {f: 2, c: 47437}, 47440,\n    {f: 6, c: 47442}, {f: 2, c: 47450}, {f: 3, c: 47453}, {f: 7, c: 47457},\n    47466, 47468, {f: 6, c: 47470}, {f: 2, c: 47478}, {f: 3, c: 47481},\n    {f: 7, c: 47485}, 47494, 47496, {f: 2, c: 47499}, {f: 29, c: 47503},\n    {f: 2, c: 47534}, {f: 3, c: 47537}, {f: 7, c: 47541}, 47550, 47552,\n    {f: 6, c: 47554}, {f: 2, c: 47562}, 47565, {f: 5, c: 47571}, 47578, 47580,\n    {f: 2, c: 47583}, 47586, {f: 2, c: 47590}, {f: 3, c: 47593},\n    {f: 7, c: 47597}, 47606, {f: 5, c: 47611}, {f: 6, c: 47618},\n    {f: 12, c: 47625}, {f: 34, c: 47638}, {f: 2, c: 47674}, {f: 3, c: 47677},\n    47681, {f: 5, c: 47683}, 47690, 47692, {f: 4, c: 47695}, {f: 2, c: 47702},\n    {f: 3, c: 47705}, {f: 7, c: 47709}, 47718, {f: 6, c: 47722},\n    {f: 2, c: 47730}, {f: 3, c: 47733}, {f: 10, c: 47737}, 47750,\n    {f: 4, c: 47752}, {f: 27, c: 47757}, 47786, {f: 3, c: 47789}, 47793,\n    {f: 5, c: 47795}, 47802, 47804, {f: 6, c: 47806}, {f: 3, c: 47813},\n    {f: 15, c: 47817}, {f: 34, c: 47834}, {f: 3, c: 47869}, {f: 3, c: 47873},\n    {f: 8, c: 47877}, 47886, 47888, {f: 6, c: 47890}, {f: 3, c: 47897},\n    {f: 3, c: 47901}, {f: 8, c: 47905}, 47914, {f: 8, c: 47916}, 47927,\n    {f: 2, c: 47929}, {f: 5, c: 47935}, 47942, 47944, {f: 3, c: 47946}, 47950,\n    {f: 3, c: 47953}, {f: 3, c: 47957}, {f: 8, c: 47961}, 47970,\n    {f: 8, c: 47972}, {f: 27, c: 47981}, {f: 3, c: 48009}, {f: 3, c: 48013},\n    {f: 19, c: 48017}, {f: 3, c: 48037}, {f: 3, c: 48041}, {f: 7, c: 48045},\n    {f: 2, c: 48053}, {f: 8, c: 48056}, {f: 3, c: 48065}, {f: 3, c: 48069},\n    {f: 7, c: 48073}, {f: 2, c: 48081}, {f: 36, c: 48084}, {f: 2, c: 48122},\n    {f: 2, c: 48125}, 48129, {f: 5, c: 48131}, 48138, 48142, 48144,\n    {f: 2, c: 48146}, {f: 2, c: 48153}, {f: 4, c: 48160}, 48166, 48168,\n    {f: 3, c: 48170}, {f: 2, c: 48174}, {f: 2, c: 48178}, {f: 3, c: 48181},\n    {f: 7, c: 48185}, 48194, {f: 3, c: 48198}, {f: 2, c: 48202},\n    {f: 2, c: 48206}, {f: 12, c: 48209}, {f: 38, c: 48222}, {f: 2, c: 48262},\n    {f: 2, c: 48265}, 48269, {f: 5, c: 48271}, 48278, 48280, {f: 5, c: 48283},\n    {f: 2, c: 48290}, {f: 2, c: 48293}, {f: 7, c: 48297}, 48306,\n    {f: 6, c: 48310}, {f: 2, c: 48318}, {f: 3, c: 48321}, {f: 8, c: 48325},\n    48334, {f: 3, c: 48338}, {f: 2, c: 48342}, {f: 3, c: 48345},\n    {f: 23, c: 48349}, 48375, {f: 3, c: 48377}, {f: 7, c: 48381}, 48390, 48392,\n    {f: 6, c: 48394}, {f: 3, c: 48401}, {f: 15, c: 48405}, {f: 7, c: 48421},\n    {f: 19, c: 48429}, {f: 7, c: 48449}, {f: 2, c: 48458}, {f: 3, c: 48461},\n    {f: 7, c: 48465}, {f: 10, c: 48474}, {f: 3, c: 48485}, {f: 23, c: 48489},\n    {f: 2, c: 48514}, {f: 2, c: 48517}, {f: 5, c: 48523}, 48530, 48532,\n    {f: 3, c: 48534}, 48539, {f: 7, c: 48541}, {f: 11, c: 48549},\n    {f: 7, c: 48561}, {f: 27, c: 48569}, {f: 2, c: 48598}, {f: 3, c: 48601},\n    {f: 12, c: 48605}, {f: 6, c: 48618}, {f: 3, c: 48625}, {f: 3, c: 48629},\n    {f: 7, c: 48633}, {f: 2, c: 48641}, 48644, {f: 6, c: 48646},\n    {f: 2, c: 48654}, {f: 3, c: 48657}, {f: 7, c: 48661}, 48670,\n    {f: 36, c: 48672}, {f: 2, c: 48710}, {f: 3, c: 48713}, 48717,\n    {f: 5, c: 48719}, 48726, 48728, {f: 4, c: 48732}, {f: 2, c: 48738},\n    {f: 3, c: 48741}, 48745, {f: 5, c: 48747}, 48754, {f: 5, c: 48758},\n    {f: 2, c: 48766}, {f: 3, c: 48769}, {f: 7, c: 48773}, 48782,\n    {f: 6, c: 48786}, {f: 14, c: 48794}, {f: 39, c: 48809}, {f: 2, c: 48850},\n    {f: 2, c: 48853}, {f: 7, c: 48857}, {f: 2, c: 48865}, {f: 6, c: 48870},\n    {f: 20, c: 48877}, {f: 6, c: 48898}, {f: 14, c: 48906}, 48922,\n    {f: 34, c: 48926}, {f: 2, c: 48962}, {f: 3, c: 48965}, {f: 7, c: 48969},\n    {f: 3, c: 48978}, {f: 62, c: 48982}, {f: 27, c: 49045}, {f: 20, c: 49073},\n    {f: 6, c: 49094}, {f: 2, c: 49102}, {f: 3, c: 49105}, {f: 7, c: 49109},\n    {f: 2, c: 49117}, 49120, {f: 90, c: 49122}, {f: 20, c: 49213},\n    {f: 6, c: 49234}, {f: 3, c: 49241}, {f: 3, c: 49245}, {f: 7, c: 49249},\n    {f: 38, c: 49258}, {f: 2, c: 49298}, {f: 3, c: 49301}, {f: 7, c: 49305},\n    49314, 49316, {f: 6, c: 49318}, 49326, {f: 2, c: 49329}, {f: 5, c: 49335},\n    49342, {f: 3, c: 49346}, {f: 2, c: 49350}, {f: 2, c: 49354},\n    {f: 3, c: 49357}, {f: 7, c: 49361}, 49370, {f: 6, c: 49374},\n    {f: 2, c: 49382}, {f: 3, c: 49385}, {f: 7, c: 49389}, 49398, 49400,\n    {f: 6, c: 49402}, {f: 3, c: 49409}, {f: 3, c: 49413}, {f: 7, c: 49417},\n    {f: 4, c: 49425}, {f: 6, c: 49430}, {f: 2, c: 49441}, 49445,\n    {f: 4, c: 49448}, 49454, {f: 4, c: 49458}, 49463, {f: 2, c: 49466},\n    {f: 3, c: 49469}, {f: 7, c: 49473}, 49482, {f: 6, c: 49486},\n    {f: 2, c: 49494}, {f: 3, c: 49497}, {f: 7, c: 49501}, 49510,\n    {f: 6, c: 49514}, {f: 3, c: 49521}, {f: 3, c: 49525}, {f: 12, c: 49529},\n    {f: 6, c: 49542}, 49551, {f: 3, c: 49553}, 49557, {f: 5, c: 49559}, 49566,\n    49568, {f: 3, c: 49570}, {f: 2, c: 49574}, {f: 2, c: 49578},\n    {f: 3, c: 49581}, {f: 12, c: 49585}, {f: 6, c: 49598}, {f: 3, c: 49605},\n    {f: 3, c: 49609}, {f: 7, c: 49613}, {f: 2, c: 49621}, {f: 7, c: 49625},\n    {f: 3, c: 49633}, {f: 3, c: 49637}, {f: 7, c: 49641}, 49650,\n    {f: 8, c: 49652}, {f: 2, c: 49662}, {f: 3, c: 49665}, {f: 7, c: 49669},\n    49678, 49680, {f: 6, c: 49682}, {f: 2, c: 49690}, {f: 2, c: 49693},\n    {f: 7, c: 49697}, 49706, 49708, 49710, 49712, 49715, {f: 19, c: 49717},\n    {f: 7, c: 49737}, {f: 2, c: 49746}, {f: 3, c: 49749}, {f: 7, c: 49753},\n    {f: 4, c: 49761}, {f: 6, c: 49766}, {f: 2, c: 49774}, {f: 3, c: 49777},\n    {f: 7, c: 49781}, 49790, 49792, {f: 6, c: 49794}, {f: 6, c: 49802},\n    {f: 7, c: 49809}, {f: 2, c: 49817}, 49820, {f: 6, c: 49822},\n    {f: 2, c: 49830}, {f: 3, c: 49833}, {f: 6, c: 49838}, 49846, 49848,\n    {f: 34, c: 49850}, {f: 2, c: 49886}, {f: 2, c: 49889}, {f: 6, c: 49893},\n    49902, 49904, {f: 4, c: 49906}, 49911, 49914, {f: 3, c: 49917},\n    {f: 7, c: 49921}, {f: 2, c: 49930}, {f: 5, c: 49934}, {f: 2, c: 49942},\n    {f: 3, c: 49945}, {f: 7, c: 49949}, {f: 2, c: 49958}, {f: 27, c: 49962},\n    {f: 34, c: 49990}, {f: 2, c: 50026}, {f: 3, c: 50029}, 50033,\n    {f: 5, c: 50035}, {f: 2, c: 50042}, {f: 6, c: 50046}, {f: 3, c: 50053},\n    {f: 3, c: 50057}, {f: 51, c: 50061}, {f: 23, c: 50113}, {f: 2, c: 50138},\n    {f: 2, c: 50141}, 50145, {f: 5, c: 50147}, {f: 3, c: 50154},\n    {f: 6, c: 50158}, {f: 2, c: 50166}, {f: 15, c: 50169}, {f: 7, c: 50185},\n    {f: 19, c: 50193}, {f: 7, c: 50213}, {f: 3, c: 50221}, {f: 3, c: 50225},\n    {f: 7, c: 50229}, {f: 10, c: 50238}, {f: 27, c: 50249}, {f: 2, c: 50278},\n    {f: 3, c: 50281}, {f: 7, c: 50285}, {f: 3, c: 50294}, {f: 6, c: 50298},\n    {f: 19, c: 50305}, {f: 7, c: 50325}, {f: 27, c: 50333}, {f: 3, c: 50361},\n    {f: 44, c: 50365}, {f: 6, c: 50410}, {f: 2, c: 50418}, {f: 3, c: 50421},\n    50425, {f: 4, c: 50427}, {f: 10, c: 50434}, {f: 3, c: 50445},\n    {f: 3, c: 50449}, {f: 7, c: 50453}, {f: 11, c: 50461}, {f: 2, c: 50474},\n    {f: 3, c: 50477}, {f: 7, c: 50481}, 50490, 50492, {f: 6, c: 50494},\n    {f: 2, c: 50502}, 50507, {f: 4, c: 50511}, 50518, {f: 3, c: 50522}, 50527,\n    {f: 2, c: 50530}, {f: 3, c: 50533}, {f: 7, c: 50537}, 50546,\n    {f: 6, c: 50550}, {f: 2, c: 50558}, {f: 3, c: 50561}, {f: 2, c: 50565},\n    {f: 4, c: 50568}, 50574, 50576, {f: 3, c: 50578}, 50582, {f: 3, c: 50585},\n    {f: 3, c: 50589}, {f: 8, c: 50593}, {f: 10, c: 50602}, {f: 2, c: 50614},\n    50618, {f: 5, c: 50623}, 50635, 50637, 50639, {f: 2, c: 50642},\n    {f: 3, c: 50645}, {f: 7, c: 50649}, 50658, 50660, {f: 6, c: 50662}, 50671,\n    {f: 3, c: 50673}, 50677, {f: 4, c: 50680}, {f: 3, c: 50690},\n    {f: 3, c: 50697}, {f: 3, c: 50701}, {f: 7, c: 50705}, 50714,\n    {f: 7, c: 50717}, {f: 2, c: 50726}, {f: 3, c: 50729}, 50735,\n    {f: 2, c: 50737}, 50742, 50744, 50746, {f: 4, c: 50748}, {f: 2, c: 50754},\n    {f: 3, c: 50757}, {f: 7, c: 50761}, 50770, {f: 6, c: 50774},\n    {f: 2, c: 50782}, {f: 11, c: 50785}, {f: 2, c: 50797}, 50800,\n    {f: 6, c: 50802}, {f: 2, c: 50810}, {f: 3, c: 50813}, {f: 7, c: 50817},\n    50826, 50828, {f: 6, c: 50830}, {f: 2, c: 50838}, {f: 3, c: 50841},\n    {f: 7, c: 50845}, 50854, 50856, {f: 6, c: 50858}, {f: 2, c: 50866},\n    {f: 3, c: 50869}, {f: 5, c: 50875}, 50882, 50884, {f: 6, c: 50886},\n    {f: 2, c: 50894}, {f: 3, c: 50897}, {f: 7, c: 50901}, {f: 2, c: 50910},\n    {f: 6, c: 50914}, {f: 2, c: 50922}, {f: 3, c: 50925}, {f: 7, c: 50929},\n    {f: 3, c: 50938}, {f: 6, c: 50942}, {f: 2, c: 50950}, {f: 3, c: 50953},\n    {f: 7, c: 50957}, 50966, 50968, {f: 6, c: 50970}, {f: 2, c: 50978},\n    {f: 3, c: 50981}, {f: 7, c: 50985}, 50994, 50996, 50998, {f: 4, c: 51000},\n    {f: 2, c: 51006}, {f: 3, c: 51009}, {f: 5, c: 51013}, 51019, 51022, 51024,\n    {f: 3, c: 51033}, {f: 3, c: 51037}, {f: 7, c: 51041}, {f: 2, c: 51049},\n    {f: 8, c: 51052}, {f: 2, c: 51062}, {f: 3, c: 51065}, {f: 4, c: 51071},\n    51078, {f: 3, c: 51083}, 51087, {f: 2, c: 51090}, 51093, 51097,\n    {f: 5, c: 51099}, 51106, {f: 5, c: 51111}, {f: 2, c: 51118},\n    {f: 3, c: 51121}, {f: 7, c: 51125}, 51134, {f: 6, c: 51138},\n    {f: 2, c: 51146}, 51149, 51151, {f: 7, c: 51153}, {f: 4, c: 51161},\n    {f: 6, c: 51166}, {f: 3, c: 51173}, {f: 3, c: 51177}, {f: 19, c: 51181},\n    {f: 2, c: 51202}, {f: 3, c: 51205}, 51209, {f: 5, c: 51211}, 51218, 51220,\n    {f: 5, c: 51223}, {f: 2, c: 51230}, {f: 3, c: 51233}, {f: 7, c: 51237},\n    51246, 51248, {f: 6, c: 51250}, {f: 3, c: 51257}, {f: 3, c: 51261},\n    {f: 7, c: 51265}, {f: 2, c: 51274}, {f: 6, c: 51278}, {f: 27, c: 51285},\n    {f: 2, c: 51314}, {f: 3, c: 51317}, 51321, {f: 5, c: 51323}, 51330, 51332,\n    {f: 3, c: 51336}, {f: 6, c: 51342}, {f: 8, c: 51349}, 51358, 51360,\n    {f: 6, c: 51362}, {f: 19, c: 51369}, {f: 6, c: 51390}, {f: 3, c: 51397},\n    {f: 3, c: 51401}, {f: 7, c: 51405}, 51414, 51416, {f: 6, c: 51418},\n    {f: 2, c: 51426}, {f: 16, c: 51429}, {f: 6, c: 51446}, {f: 2, c: 51454},\n    {f: 3, c: 51457}, {f: 5, c: 51463}, 51470, 51472, {f: 6, c: 51474},\n    {f: 19, c: 51481}, {f: 7, c: 51501}, {f: 27, c: 51509}, {f: 2, c: 51538},\n    {f: 3, c: 51541}, {f: 7, c: 51545}, 51554, {f: 8, c: 51556},\n    {f: 3, c: 51565}, {f: 3, c: 51569}, {f: 7, c: 51573}, {f: 11, c: 51581},\n    {f: 2, c: 51594}, {f: 3, c: 51597}, {f: 7, c: 51601}, 51610, 51612,\n    {f: 34, c: 51614}, {f: 2, c: 51650}, {f: 2, c: 51653}, 51657,\n    {f: 5, c: 51659}, 51666, 51668, {f: 2, c: 51671}, 51675, {f: 2, c: 51678},\n    51681, 51683, {f: 2, c: 51685}, {f: 4, c: 51688}, 51694, {f: 6, c: 51698},\n    {f: 2, c: 51706}, {f: 3, c: 51709}, {f: 7, c: 51713}, 51722,\n    {f: 6, c: 51726}, {f: 3, c: 51733}, {f: 16, c: 51737}, {f: 34, c: 51754},\n    {f: 2, c: 51790}, {f: 3, c: 51793}, {f: 7, c: 51797}, 51806,\n    {f: 6, c: 51810}, {f: 20, c: 51817}, {f: 6, c: 51838}, {f: 19, c: 51845},\n    {f: 35, c: 51865}, {f: 2, c: 51902}, {f: 3, c: 51905}, {f: 7, c: 51909},\n    51918, 51920, 51922, {f: 4, c: 51924}, {f: 6, c: 51930}, {f: 11, c: 51937},\n    {f: 7, c: 51949}, {f: 19, c: 51957}, {f: 7, c: 51977}, {f: 3, c: 51985},\n    {f: 3, c: 51989}, {f: 7, c: 51993}, {f: 31, c: 52002}, {f: 6, c: 52034},\n    {f: 2, c: 52042}, {f: 3, c: 52045}, {f: 7, c: 52049}, {f: 3, c: 52058},\n    {f: 6, c: 52062}, {f: 19, c: 52069}, {f: 34, c: 52090}, {f: 27, c: 52125},\n    {f: 27, c: 52153}, {f: 15, c: 52181}, {f: 2, c: 52197}, 52200,\n    {f: 34, c: 52202}, {f: 2, c: 52238}, {f: 3, c: 52241}, {f: 7, c: 52245},\n    {f: 3, c: 52254}, {f: 4, c: 52259}, {f: 2, c: 52266}, 52269, 52271,\n    {f: 7, c: 52273}, 52282, {f: 5, c: 52287}, {f: 2, c: 52294},\n    {f: 3, c: 52297}, {f: 7, c: 52301}, 52310, {f: 6, c: 52314},\n    {f: 3, c: 52321}, 52325, 52327, {f: 7, c: 52329}, {f: 4, c: 52337},\n    {f: 34, c: 52342}, {f: 2, c: 52378}, {f: 3, c: 52381}, {f: 7, c: 52385},\n    52394, {f: 6, c: 52398}, {f: 2, c: 52406}, {f: 3, c: 52409},\n    {f: 7, c: 52413}, 52422, 52424, {f: 6, c: 52426}, {f: 3, c: 52433},\n    {f: 15, c: 52437}, {f: 7, c: 52453}, {f: 3, c: 52461}, {f: 16, c: 52465},\n    {f: 6, c: 52482}, {f: 2, c: 52490}, {f: 3, c: 52493}, {f: 7, c: 52497},\n    52506, 52508, {f: 6, c: 52510}, {f: 3, c: 52517}, {f: 3, c: 52521},\n    {f: 12, c: 52525}, {f: 34, c: 52538}, {f: 3, c: 52573}, {f: 3, c: 52577},\n    {f: 7, c: 52581}, 52590, 52592, {f: 6, c: 52594}, {f: 15, c: 52601},\n    {f: 11, c: 52617}, {f: 2, c: 52630}, {f: 3, c: 52633}, {f: 7, c: 52637},\n    52646, 52648, {f: 6, c: 52650}, {f: 19, c: 52657}, {f: 7, c: 52677},\n    {f: 3, c: 52685}, {f: 23, c: 52689}, {f: 3, c: 52713}, {f: 3, c: 52717},\n    {f: 7, c: 52721}, 52730, 52732, {f: 6, c: 52734}, {f: 3, c: 52741},\n    {f: 3, c: 52745}, {f: 7, c: 52749}, {f: 4, c: 52757}, {f: 6, c: 52762},\n    {f: 2, c: 52770}, {f: 3, c: 52773}, {f: 7, c: 52777}, 52786, 52788,\n    {f: 34, c: 52790}, {f: 2, c: 52826}, {f: 2, c: 52829}, {f: 6, c: 52834},\n    52842, 52844, {f: 6, c: 52846}, {f: 2, c: 52854}, {f: 3, c: 52857},\n    {f: 7, c: 52861}, 52870, 52872, {f: 6, c: 52874}, {f: 2, c: 52882},\n    {f: 3, c: 52885}, {f: 7, c: 52889}, 52898, {f: 6, c: 52902},\n    {f: 19, c: 52910}, {f: 34, c: 52930}, {f: 2, c: 52966}, {f: 2, c: 52969},\n    {f: 7, c: 52973}, 52982, {f: 6, c: 52986}, {f: 2, c: 52994},\n    {f: 3, c: 52997}, {f: 7, c: 53001}, 53010, 53012, {f: 6, c: 53014},\n    {f: 3, c: 53021}, {f: 3, c: 53025}, {f: 7, c: 53029}, 53038,\n    {f: 6, c: 53042}, {f: 27, c: 53049}, {f: 2, c: 53078}, {f: 3, c: 53081},\n    {f: 7, c: 53085}, 53094, 53096, {f: 6, c: 53098}, {f: 2, c: 53106},\n    {f: 3, c: 53109}, {f: 7, c: 53113}, {f: 4, c: 53121}, {f: 6, c: 53126},\n    {f: 20, c: 53133}, {f: 6, c: 53154}, {f: 7, c: 53161}, {f: 19, c: 53169},\n    {f: 27, c: 53189}, {f: 2, c: 53218}, {f: 3, c: 53221}, {f: 7, c: 53225},\n    53234, 53236, {f: 6, c: 53238}, {f: 3, c: 53245}, {f: 3, c: 53249},\n    {f: 12, c: 53253}, {f: 6, c: 53266}, {f: 20, c: 53273}, {f: 6, c: 53294},\n    {f: 2, c: 53302}, {f: 3, c: 53305}, {f: 7, c: 53309}, 53318, 53320,\n    {f: 6, c: 53322}, {f: 3, c: 53329}, {f: 3, c: 53333}, {f: 7, c: 53337},\n    {f: 11, c: 53345}, {f: 2, c: 53358}, {f: 3, c: 53361}, {f: 7, c: 53365},\n    {f: 3, c: 53374}, {f: 34, c: 53378}, {f: 2, c: 53414}, {f: 3, c: 53417},\n    {f: 7, c: 53421}, 53430, 53432, {f: 6, c: 53434}, {f: 2, c: 53442},\n    {f: 3, c: 53445}, {f: 6, c: 53450}, 53458, {f: 6, c: 53462},\n    {f: 2, c: 53470}, {f: 3, c: 53473}, {f: 7, c: 53477}, 53486,\n    {f: 6, c: 53490}, {f: 20, c: 53497}, {f: 34, c: 53518}, {f: 2, c: 53554},\n    {f: 3, c: 53557}, 53561, {f: 5, c: 53563}, 53570, {f: 6, c: 53574},\n    {f: 2, c: 53582}, {f: 3, c: 53585}, {f: 7, c: 53589}, 53598, 53600,\n    {f: 6, c: 53602}, {f: 3, c: 53609}, {f: 15, c: 53613}, {f: 7, c: 53629},\n    {f: 3, c: 53637}, {f: 23, c: 53641}, {f: 2, c: 53666}, {f: 3, c: 53669},\n    {f: 7, c: 53673}, 53682, 53684, {f: 4, c: 53686}, 53691, {f: 3, c: 53693},\n    {f: 23, c: 53697}, {f: 27, c: 53721}, {f: 3, c: 53749}, {f: 14, c: 53753},\n    53768, {f: 6, c: 53770}, {f: 27, c: 53777}, {f: 2, c: 53806},\n    {f: 3, c: 53809}, {f: 7, c: 53813}, 53822, 53824, {f: 6, c: 53826},\n    {f: 19, c: 53833}, {f: 7, c: 53853}, {f: 27, c: 53861}, {f: 2, c: 53890},\n    {f: 3, c: 53893}, {f: 7, c: 53897}, {f: 3, c: 53906}, {f: 6, c: 53910},\n    {f: 3, c: 53917}, {f: 3, c: 53921}, {f: 7, c: 53925}, {f: 4, c: 53933},\n    {f: 6, c: 53938}, {f: 2, c: 53946}, {f: 2, c: 53949}, 53953,\n    {f: 5, c: 53955}, 53962, {f: 8, c: 53964}, {f: 3, c: 53973},\n    {f: 3, c: 53977}, {f: 7, c: 53981}, {f: 10, c: 53990}, {f: 2, c: 54002},\n    {f: 3, c: 54005}, {f: 7, c: 54009}, 54018, 54020, {f: 6, c: 54022}, 54031,\n    {f: 3, c: 54033}, 54037, {f: 5, c: 54039}, 54046, {f: 3, c: 54050},\n    {f: 2, c: 54054}, {f: 2, c: 54058}, {f: 3, c: 54061}, {f: 7, c: 54065},\n    54074, {f: 6, c: 54078}, {f: 54, c: 54086}, {f: 2, c: 54142},\n    {f: 3, c: 54145}, {f: 7, c: 54149}, 54158, {f: 6, c: 54162},\n    {f: 2, c: 54170}, {f: 3, c: 54173}, {f: 7, c: 54177}, 54186, 54188,\n    {f: 6, c: 54190}, {f: 3, c: 54197}, {f: 3, c: 54201}, {f: 7, c: 54205},\n    {f: 2, c: 54214}, {f: 6, c: 54218}, {f: 7, c: 54225}, {f: 8, c: 54233},\n    54242, {f: 8, c: 54244}, {f: 2, c: 54254}, {f: 3, c: 54257},\n    {f: 7, c: 54261}, 54270, 54272, {f: 6, c: 54274}, {f: 20, c: 54281},\n    {f: 34, c: 54302}, {f: 3, c: 54337}, {f: 23, c: 54341}, {f: 3, c: 54365},\n    {f: 3, c: 54369}, {f: 8, c: 54373}, 54382, {f: 8, c: 54384},\n    {f: 2, c: 54394}, {f: 2, c: 54397}, 54401, {f: 5, c: 54403}, 54410, 54412,\n    {f: 6, c: 54414}, {f: 20, c: 54421}, {f: 34, c: 54442}, {f: 3, c: 54477},\n    {f: 3, c: 54481}, {f: 7, c: 54485}, {f: 2, c: 54493}, {f: 8, c: 54496},\n    {f: 3, c: 54505}, {f: 3, c: 54509}, {f: 7, c: 54513}, {f: 2, c: 54521},\n    54524, {f: 6, c: 54526}, {f: 3, c: 54533}, {f: 3, c: 54537},\n    {f: 7, c: 54541}, 54550, {f: 36, c: 54552}, {f: 2, c: 54590},\n    {f: 3, c: 54593}, {f: 7, c: 54597}, 54606, 54608, {f: 6, c: 54610},\n    {f: 2, c: 54618}, {f: 3, c: 54621}, {f: 4, c: 54625}, {f: 2, c: 54630},\n    54634, 54636, {f: 6, c: 54638}, {f: 2, c: 54646}, {f: 3, c: 54649},\n    {f: 7, c: 54653}, 54662, {f: 6, c: 54666}, {f: 20, c: 54673},\n    {f: 34, c: 54694}, {f: 2, c: 54730}, {f: 3, c: 54733}, 54737,\n    {f: 5, c: 54739}, 54746, 54748, {f: 6, c: 54750}, {f: 2, c: 54758},\n    {f: 3, c: 54761}, {f: 7, c: 54765}, 54774, 54776, {f: 6, c: 54778},\n    {f: 2, c: 54786}, {f: 3, c: 54789}, {f: 7, c: 54793}, 54802,\n    {f: 6, c: 54806}, {f: 3, c: 54813}, {f: 3, c: 54817}, {f: 8, c: 54821},\n    {f: 10, c: 54830}, {f: 2, c: 54842}, {f: 3, c: 54845}, {f: 4, c: 54849},\n    {f: 2, c: 54854}, 54858, 54860, {f: 3, c: 54862}, {f: 2, c: 54866},\n    {f: 2, c: 54870}, {f: 3, c: 54873}, {f: 10, c: 54877}, 54888,\n    {f: 6, c: 54890}, {f: 2, c: 54898}, {f: 14, c: 54901}, 54916,\n    {f: 6, c: 54918}, {f: 2, c: 54926}, {f: 3, c: 54929}, {f: 8, c: 54933},\n    54942, 54944, {f: 6, c: 54946}, {f: 3, c: 54953}, {f: 3, c: 54957},\n    {f: 8, c: 54961}, 54970, {f: 8, c: 54972}, {f: 2, c: 54982},\n    {f: 3, c: 54985}, {f: 4, c: 54989}, {f: 2, c: 54994}, {f: 2, c: 54997},\n    55000, {f: 6, c: 55002}, {f: 3, c: 55009}, {f: 3, c: 55013},\n    {f: 7, c: 55017}, {f: 4, c: 55025}, {f: 6, c: 55030}, {f: 2, c: 55038},\n    {f: 3, c: 55041}, {f: 12, c: 55045}, {f: 6, c: 55058}, {f: 2, c: 55066},\n    {f: 3, c: 55069}, {f: 7, c: 55073}, 55082, 55084, {f: 6, c: 55086},\n    {f: 2, c: 55094}, {f: 3, c: 55097}, {f: 7, c: 55101}, {f: 2, c: 55109},\n    55112, {f: 6, c: 55114}, {f: 2, c: 55122}, 55125, {f: 6, c: 55130}, 55138,\n    55140, {f: 3, c: 55142}, {f: 2, c: 55146}, {f: 3, c: 55149},\n    {f: 3, c: 55153}, {f: 7, c: 55157}, {f: 3, c: 55166}, {f: 6, c: 55170},\n    {f: 2, c: 55178}, {f: 3, c: 55181}, {f: 7, c: 55185}, 55194, 55196,\n    {f: 6, c: 55198}],\n  'Adobe-CNS1': [{f: 95, c: 32}, {s: 3}, 12288, 65292, {f: 2, c: 12289}, 65294,\n    8226, 65307, 65306, 65311, 65281, 65072, 8230, 8229, 65104, 65380, 65106,\n    183, {f: 4, c: 65108}, 65372, 8211, 65073, 8212, {s: 4}, {f: 2, c: 65288},\n    {f: 2, c: 65077}, 65371, 65373, {f: 2, c: 65079}, {f: 2, c: 12308},\n    {f: 2, c: 65081}, {f: 2, c: 12304}, {f: 2, c: 65083}, {f: 2, c: 12298},\n    {f: 2, c: 65085}, {f: 2, c: 12296}, {f: 2, c: 65087}, {f: 2, c: 12300},\n    {f: 2, c: 65089}, {f: 2, c: 12302}, {f: 2, c: 65091}, {f: 6, c: 65113},\n    {f: 2, c: 8216}, {f: 2, c: 8220}, {f: 2, c: 12317}, 8245, 8242, 65283,\n    65286, 65290, 8251, 167, 12291, 9675, 9679, 9651, 9650, 9678, 9734, 9733,\n    9671, 9670, 9633, 9632, 9661, 9660, 12963, 8453, 8254, 0, 65343, 0,\n    {f: 2, c: 65097}, {f: 2, c: 65101}, {f: 2, c: 65099}, {f: 3, c: 65119},\n    65291, 65293, 215, 247, 177, 8730, 65308, 65310, 65309, {f: 2, c: 8806},\n    8800, 8734, 8786, 8801, {f: 5, c: 65122}, 8764, {f: 2, c: 8745}, 8869,\n    8736, 8735, 8895, 13266, 13265, 8747, 8750, 8757, 8756, 9792, 9794, 9793,\n    9737, 8593, 8595, 8594, 8592, {f: 2, c: 8598}, 8601, 8600, 8741, 8739, 0,\n    0, 65295, 65340, 65284, 165, 12306, {f: 2, c: 162}, 65285, 65312, 8451,\n    8457, {f: 3, c: 65129}, 13269, {f: 3, c: 13212}, 13262, 13217,\n    {f: 2, c: 13198}, 13252, 176, [20825, 58834], [20827, 58835],\n    [20830, 58837], [20829, 58836], 20833, 20835, 21991, [29929, 58044],\n    [31950, 58191], {f: 8, c: 9601}, 9615, 9614, 9613, 9612, 9611, 9610, 9609,\n    9532, 9524, 9516, 9508, 9500, 9620, 9472, 9474, 9621, 9484, 9488, 9492,\n    9496, {f: 2, c: 9581}, 9584, 9583, 9552, 9566, 9578, 9569, {f: 2, c: 9698},\n    9701, 9700, {f: 3, c: 9585}, {f: 10, c: 65296}, {f: 10, c: 8544},\n    {f: 9, c: 12321}, 0, [21316, 57443], 0, {f: 26, c: 65313},\n    {f: 26, c: 65345}, {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945},\n    {f: 7, c: 963}, {f: 37, c: 12549}, 729, 714, 711, 715, [9312, 63153],\n    [9313, 63154], [9314, 63155], [9315, 63156], [9316, 63157], [9317, 63158],\n    [9318, 63159], [9319, 63160], [9320, 63161], [9321, 63162], [9332, 63163],\n    [9333, 63164], [9334, 63165], [9335, 63166], [9336, 63167], [9337, 63168],\n    [9338, 63169], [9339, 63170], [9340, 63171], [9341, 63172], [8560, 63173],\n    [8561, 63174], [8562, 63175], [8563, 63176], [8564, 63177], [8565, 63178],\n    [8566, 63179], [8567, 63180], [8568, 63181], [8569, 63182], [12033, 20008],\n    [12034, 20022, 63183], [12035, 20031, 63184], [12037, 20101, 63185],\n    [12039, 20128, 63186], [12044, 20866, 63187], [12045, 20886, 63188],\n    [12046, 20907, 63189], [12051, 21241, 63190], [12054, 21304, 63191],\n    [12057, 21353, 63192], [12059, 21430, 63193],\n    [12065, 12066, 22786, 22794, 63194], [12071, 23424, 63195],\n    [12078, 24027, 63196], [12083, 24186, 63197], [12084, 24191, 63198],\n    [12085, 24308], [12089, 24400, 63200], [12090, 24417, 63201],\n    [12097, 25908, 63202], [12102, 26080], [12135, 30098, 63204],\n    [12136, 30326], [12193, 36789, 63206], [12202, 38582], {f: 32, c: 9216},\n    9249, [12032, 19968], [12036, 20057], 19969, 19971, 20035, 20061, 20102,\n    [12038, 20108], [12040, 20154], [12041, 20799], [12042, 20837],\n    [12043, 20843], [12047, 20960], [12049, 20992], 20993, [12050, 21147],\n    [12052, 21269], [12055, 21313], [12056, 21340], [12060, 21448], 19977,\n    19979, 19976, 19978, 20011, 20024, 20961, 20037, 20040, 20063, 20062,\n    20110, 20129, [20800, 64012], 20995, 21242, 21315, 21449, [12061, 21475],\n    [12063, 22303], [12064, 22763], [12067, 22805], [12068, 22823],\n    [12069, 22899], [12070, 23376], 23377, 23379, [12072, 23544],\n    [12073, 23567], [12074, 23586], [12075, 23608], [12077, 23665], 24029,\n    [12079, 24037], [12080, 24049], {f: 2, c: 24050}, [12081, 24062],\n    [12082, 24178], [12086, 24318], [12087, 24331], [12088, 24339], 25165,\n    19985, 19984, 19981, 20013, 20016, 20025, 20043, 23609, 20104, 20113,\n    20117, 20114, 20116, 20130, 20161, 20160, 20163, {f: 2, c: 20166}, 20173,\n    {f: 2, c: 20170}, 20164, 20803, 20801, 20839, {f: 2, c: 20845}, 20844,\n    20887, 20982, {f: 3, c: 20998}, 21243, {f: 2, c: 21246}, 21270, 21305,\n    21320, 21319, 21317, 21342, 21380, 21451, 21450, 21453, 22764, 22825,\n    22827, 22826, 22829, 23380, 23569, 23588, 23610, 23663, 24052, 24187,\n    24319, {f: 2, c: 24340}, [12092, 24515], [12093, 25096], [12094, 25142],\n    [12095, 25163], 25166, [12096, 25903], [12098, 25991], [12099, 26007],\n    [12100, 26020], [12101, 26041], [12103, 26085], [12104, 26352],\n    [12105, 26376], [12106, 26408], [12107, 27424], [12108, 27490],\n    [12109, 27513], [12111, 27595], [12112, 27604], [12113, 27611],\n    [12114, 27663], [12116, 27700], [12117, 28779], [12118, 29226],\n    [12119, 29238], [12120, 29243], [12122, 29255], [12123, 29273],\n    [12124, 29275], [12125, 29356], 29579, 19993, 19990, 19989, 19988, 19992,\n    20027, 20045, 20047, 20046, 20197, 20184, {f: 4, c: 20180},\n    {f: 2, c: 20195}, 20185, 20190, 20805, 20804, {f: 2, c: 20873}, 20908,\n    {f: 2, c: 20985}, 20984, 21002, 21152, 21151, [21253, 57435], 21254, 21271,\n    21277, 20191, 21322, 21321, 21345, 21344, 21359, 21358, 21435, 21487,\n    21476, 21491, 21484, 21486, 21481, 21480, 21500, 21496, 21493, 21483,\n    21478, 21482, 21490, 21489, 21488, 21477, 21485, 21499, 22235, 22234,\n    22806, 22830, 22833, 22900, 22902, 23381, 23427, 23612, 24040, 24039,\n    24038, {f: 2, c: 24066}, 24179, 24188, 24321, 24344, 24343, 24517, 25098,\n    {f: 2, c: 25171}, 25170, 25169, 26021, 26086, 26414, 26412,\n    {f: 2, c: 26410}, 26413, 27491, 27597, 27665, 27664, 27704, 27713, 27712,\n    27710, 29359, [12126, 29572], [12127, 29577], [12128, 29916],\n    [12129, 29926], [12130, 29976], [12131, 29983], [12132, 29992], 29993,\n    [12133, 30000], {f: 3, c: 30001}, [12134, 30091], [12137, 30333],\n    [12138, 30382], [12139, 30399], [12140, 30446], [12141, 30683],\n    [12142, 30690], [12143, 30707], [12144, 31034], [12146, 31166],\n    [12147, 31348], [12148, 31435], {f: 2, c: 19998}, {f: 2, c: 20050}, 20073,\n    20121, 20132, 20134, 20133, 20223, 20233, 20249, 20234, 20245, 20237,\n    {f: 2, c: 20240}, 20239, 20210, 20214, 20219, 20208, 20211, 20221, 20225,\n    20235, 20809, 20807, 20806, 20808, 20840, 20849, 20877, 20912, 21015,\n    {f: 2, c: 21009}, 21006, 21014, 21155, 21256, 21281, 21280,\n    {f: 2, c: 21360}, 21513, 21519, 21516, 21514, 21520, 21505, 21515, 21508,\n    21521, 21517, 21512, 21507, 21518, 21510, 21522, 22240, 22238, 22237,\n    22323, 22320, 22312, 22317, 22316, 22319, 22313, {f: 2, c: 22809},\n    {f: 2, c: 22839}, 22916, 22904, 22915, 22909, 22905, 22914, 22913,\n    {f: 2, c: 23383}, {f: 2, c: 23431}, 23429, 23433, 23546, 23574, 23673,\n    24030, 24070, 24182, 24180, 24335, 24347, 24537, 24534, 25102,\n    {f: 2, c: 25100}, 25104, 25187, 25179, 25176, 25910, 26089, 26088,\n    {f: 2, c: 26092}, {f: 2, c: 26354}, 26377, 26429, 26420, 26417, 26421,\n    27425, 27492, 27515, 27670, 27741, 27735, 27737, {f: 2, c: 27743}, 27728,\n    27733, 27745, 27739, {f: 2, c: 27725}, 28784, 29279, 29277, 30334,\n    [12149, 31481], [12150, 31859], [12151, 31992], [12152, 32566],\n    [12154, 32650], [12155, 32701], [12156, 32769], 32771, [12157, 32780],\n    [12158, 32786], [12159, 32819], [12160, 32895], [12161, 32905],\n    {f: 2, c: 32907}, [12162, 33251], [12163, 33258], [12164, 33267],\n    [12165, 33276], [12166, 33292], [12167, 33307], [12168, 33311],\n    [12169, 33390], [12170, 33394], 33406, [12173, 34411], [12174, 34880],\n    [12175, 34892], [12176, 34915], 35199, 38433, 20018, 20136, 20301, 20303,\n    20295, 20311, 20318, 20276, 20315, 20309, 20272, {f: 2, c: 20304}, 20285,\n    20282, 20280, 20291, 20308, 20284, 20294, 20323, 20316, 20320, 20271,\n    20302, 20278, 20313, 20317, 20296, 20314, 20812, 20811, 20813, 20853,\n    {f: 2, c: 20918}, 21029, 21028, {f: 2, c: 21033}, 21032, 21163,\n    {f: 2, c: 21161}, 21164, 21283, 21363, 21365, 21533, 21549, 21534, 21566,\n    21542, 21582, 21543, 21574, 21571, 21555, 21576, 21570, 21531, 21545,\n    21578, 21561, 21563, 21560, 21550, {f: 2, c: 21557}, 21536, 21564, 21568,\n    21553, 21547, 21535, 21548, 22250, 22256, 22244, 22251, 22346, 22353,\n    22336, 22349, 22343, 22350, 22334, 22352, 22351, 22331, 22767, 22846,\n    22941, 22930, 22952, 22942, 22947, 22937, 22934, 22925, 22948, 22931,\n    22922, 22949, 23389, 23388, {f: 2, c: 23386}, 23436, 23435, 23439, 23596,\n    {f: 2, c: 23616}, 23615, 23614, {f: 2, c: 23696}, 23700, 23692, 24043,\n    24076, 24207, 24199, 24202, 24311, 24324, 24351, 24420, 24418, 24439,\n    24441, 24536, 24524, 24535, 24525, 24561, 24555, 24568, 24554, 25106,\n    25105, 25220, 25239, 25238, 25216, 25206, 25225, 25197, 25226, 25212,\n    25214, 25209, 25203, 25234, 25199, 25240, 25198, 25237, 25235, 25233,\n    25222, 25913, 25915, 25912, 26097, 26356, 26463, {f: 4, c: 26446}, 26460,\n    26454, [26462, 57801], 26441, 26438, 26464, 26451, 26455, 27493, 27599,\n    27714, 27742, 27801, 27777, {f: 2, c: 27784}, 27781, 27803, 27754, 27770,\n    27792, 27760, 27788, 27752, 27798, 27794, 27773, 27779, 27762, 27774,\n    27764, 27782, 27766, 27789, 27796, 27800, 27778, 28790, {f: 2, c: 28796},\n    28792, 29282, 29281, 29280, 29380, 29378, 29590, 29996, 29995,\n    {f: 2, c: 30007}, 30338, 30447, 30691, 31169, 31168, 31167, 31350, 31995,\n    32597, 32918, 32915, 32925, 32920, 32923, 32922, 32946, 33391, 33426,\n    33419, 33421, [12178, 35211], [12179, 35282], [12180, 35328],\n    [12181, 35895], [12182, 35910], [12183, 35925], [12185, 35997],\n    [12186, 36196], [12187, 36208], [12188, 36275], [12189, 36523],\n    [12190, 36554], [12191, 36763], [12192, 36784], 36802, 36806, 36805, 36804,\n    24033, [12194, 37009], 37026, 37034, 37030, 37027, [12195, 37193],\n    [12196, 37318], [12197, 37324], 38450, 38446, 38449, 38442, 38444, 20006,\n    20054, 20083, 20107, 20123, 20126, {f: 2, c: 20139}, 20335, 20381, 20365,\n    20339, 20351, 20332, 20379, 20363, 20358, 20355, 20336, 20341, 20360,\n    20329, 20347, 20374, 20350, 20367, 20369, 20346, 20820, 20818, 20821,\n    20841, 20855, 20854, 20856, 20925, 20989, 21051, 21048, 21047, 21050,\n    21040, 21038, 21046, 21057, 21182, 21179, 21330, 21332, 21331, 21329,\n    21350, {f: 3, c: 21367}, 21462, 21460, 21463, 21619, 21621, 21654, 21624,\n    21653, 21632, 21627, 21623, 21636, 21650, 21638, 21628, 21648, 21617,\n    21622, 21644, 21658, 21602, 21608, 21643, 21629, 21646, 22266, 22403,\n    22391, 22378, 22377, 22369, 22374, 22372, 22396, 22812, 22857,\n    {f: 2, c: 22855}, 22852, 22868, 22974, 22971, 22996, 22969, 22958, 22993,\n    22982, 22992, 22989, 22987, 22995, 22986, 22959, 22963, 22994, 22981,\n    23391, 23396, 23395, 23447, 23450, 23448, 23452, 23449, 23451, 23578,\n    23624, {f: 2, c: 23621}, 23735, 23713, 23736, 23721, 23723, 23729, 23731,\n    24088, 24090, 24086, 24085, 24091, 24081, 24184, 24218, 24215, 24220,\n    {f: 2, c: 24213}, 24310, {f: 2, c: 24358}, 24361, {f: 2, c: 24448}, 24447,\n    24444, 24541, 24544, 24573, 24565, 24575, 24591, 24596, 24623, 24629,\n    24598, 24618, 24597, 24609, 24615, 24617, 24619, 24603, 25110, 25109,\n    25151, 25150, 25152, 25215, 25289, 25292, 25284, 25279, 25282, 25273,\n    25298, 25307, 25259, {f: 2, c: 25299}, 25291, 25288, 25256, 25277, 25276,\n    [25296, 60582], 25305, 25287, 25293, 25269, 25306, 25265, 25304,\n    {f: 2, c: 25302}, 25286, 25260, [25294, 61010], 25918, 26023, 26044, 26106,\n    26132, 26131, 26124, 26118, 26114, 26126, 26112, 26127, 26133, 26122,\n    26119, 26381, 26379, 26477, 26507, 26517, 26481, 26524, 26483, 26487,\n    26503, 26525, 26519, {f: 2, c: 26479}, 26495, 26505, 26494, 26512, 26485,\n    26522, 26515, 26492, 26474, 26482, 27427, {f: 2, c: 27494}, 27519, 27667,\n    27675, 27875, 27880, 27891, 27825, 27852, 27877, 27827, {f: 2, c: 27837},\n    27836, 27874, 27819, 27861, 27859, 27832, 27844, 27833, 27841, 27822,\n    27863, 27845, 27889, 27839, 27835, 27873, 27867, 27850, 27820, 27887,\n    27868, 27862, 27872, 28821, 28814, 28818, 28810, 28825, {f: 2, c: 29228},\n    29240, 29256, 29287, 29289, 29376, 29390, 29401, 29399, 29392, 29609,\n    29608, 29599, 29611, 29605, 30013, 30109, {f: 2, c: 30105}, 30340, 30402,\n    30450, 30452, 30693, 30717, 31038, {f: 2, c: 31040}, 31177, 31176, 31354,\n    31353, 31482, 31998, 32596, 32652, 32651, [32773, 58236], 32954, 32933,\n    32930, 32945, 32929, 32939, 32937, 32948, 32938, 32943, 33253, 33278,\n    33293, 33459, 33437, 33433, 33453, 33469, 33439, 33465, 33457, 33452,\n    33445, 33455, 33464, 33443, 33456, 33470, 33463, 34382, 34417, 21021,\n    34920, 36555, 36814, 36820, 36817, 37045, 37048, 37041, 37046, 37319,\n    [12198, 37329], [12199, 38263], [12200, 38272], [12201, 38428], 38464,\n    38463, 38459, 38468, 38466, [12203, 38585], [12204, 38632], 38738,\n    [12206, 38750], 20127, {f: 2, c: 20141}, 20449, 20405, 20399, 20415, 20448,\n    20433, 20431, 20445, 20419, 20406, 20440, 20447, 20426, 20439, 20398,\n    20432, 20420, 20418, 20442, 20430, 20446, 20407, 20823, 20882, 20881,\n    20896, 21070, 21059, 21066, 21069, 21068, 21067, 21063, 21191, 21193,\n    21187, 21185, 21261, 21335, 21371, 21402, 21467, 21676, 21696, 21672,\n    21710, 21705, 21688, 21670, 21683, 21703, 21698, 21693, 21674, 21697,\n    21700, 21704, 21679, 21675, 21681, 21691, 21673, 21671, 21695, 22271,\n    22402, 22411, 22432, 22435, 22434, 22478, 22446, 22419, 22869, 22865,\n    22863, 22862, 22864, 23004, 23000, 23039, 23011, 23016, 23043, 23013,\n    23018, 23002, 23014, 23041, 23035, 23401, 23459, 23462, 23460, 23458,\n    23461, 23553, {f: 2, c: 23630}, 23629, 23627, 23769, 23762, 24055, 24093,\n    24101, 24095, 24189, 24224, 24230, 24314, 24328, 24365, 24421, 24456,\n    24453, {f: 2, c: 24458}, 24455, 24460, 24457, 24594, 24605, 24608, 24613,\n    24590, 24616, 24653, 24688, 24680, [24674, 60712], 24646, 24643, 24684,\n    24683, 24682, 24676, 25153, 25308, 25366, 25353, 25340, 25325, 25345,\n    25326, 25341, 25351, 25329, 25335, 25327, 25324, 25342, 25332, 25361,\n    25346, 25919, 25925, 26027, 26045, 26082, 26149, 26157, 26144, 26151,\n    26159, 26143, 26152, 26161, 26148, 26359, 26623, 26579, 26609, 26580,\n    26576, 26604, 26550, 26543, 26613, 26601, 26607, 26564, 26577, 26548,\n    26586, 26597, 26552, 26575, 26590, 26611, 26544, 26585, 26594, 26589,\n    26578, 27498, 27523, 27526, 27573, 27602, 27607, 27679, 27849, 27915,\n    27954, 27946, 27969, 27941, 27916, 27953, 27934, 27927, 27963,\n    {f: 2, c: 27965}, 27958, 27931, 27893, 27961, 27943, 27960, 27945, 27950,\n    27957, 27918, 27947, 28843, 28858, 28851, 28844, 28847, 28845, 28856,\n    28846, 28836, 29232, 29298, 29295, 29300, 29417, {f: 2, c: 29408}, 29623,\n    29642, 29627, 29618, 29645, 29632, 29619, 29978, 29997, 30031, 30028,\n    30030, 30027, 30123, {f: 2, c: 30116}, {f: 2, c: 30114}, 30328,\n    {f: 3, c: 30342}, 30408, 30406, 30403, 30405, 30465, 30457, 30456, 30473,\n    30475, 30462, 30460, 30471, 30684, 30722, 30740, {f: 2, c: 30732}, 31046,\n    31049, 31048, 31047, {f: 2, c: 31161}, {f: 2, c: 31185}, 31179, 31359,\n    31361, 31487, 31485, 31869, 32002, 32005, 32000, 32009, 32007, 32004,\n    32006, 32568, 32654, 32703, 32784, 32781, 32785, 32822, 32982, 32997,\n    32986, {f: 2, c: 32963}, 32972, 32993, 32987, 32974, 32990, 32996, 32989,\n    33268, 33314, 33511, 33539, 33541, 33507, 33499, 33510, 33540, 33509,\n    33538, 33545, 33490, 33495, 33521, 33537, 33500, 33492, 33489, 33502,\n    33491, 33503, 33519, 33542, 34384, 34425, 34427, 34426, 34893, 34923,\n    35201, 35284, 35336, {f: 2, c: 35330}, 35998, 36000, 36212, 36211, 36276,\n    36557, 36556, 36848, 36838, 36834, 36842, 36837, 36845, 36843, 36836,\n    36840, 37066, 37070, 37057, 37059, 37195, 37194, 37325, 38274, 38480,\n    {f: 3, c: 38475}, [12207, 38754], [12208, 38761], [12209, 38859],\n    [12210, 38893], [12211, 38899], [12212, 38913], [12213, 39080],\n    [12214, 39131], [12215, 39135], [12216, 39318], [12217, 39321], 20056,\n    20147, {f: 2, c: 20492}, 20515, 20463, 20518, 20517, 20472, [20521, 57375],\n    20502, 20486, 20540, 20511, 20506, 20498, 20497, 20474, 20480, 20500,\n    20520, 20465, 20513, 20491, 20505, 20504, 20467, 20462, 20525, 20522,\n    20478, 20523, 20489, 20860, {f: 2, c: 20900}, 20898, 20941, 20940, 20934,\n    20939, 21078, 21084, 21076, 21083, 21085, 21290, [21375, 57459], 21407,\n    21405, 21471, 21736, 21776, 21761, 21815, 21756, 21733, 21746, 21766,\n    21754, 21780, 21737, 21741, 21729, 21769, 21742, 21738, 21734, 21799,\n    21767, 21757, 21775, {f: 2, c: 22275}, 22466, 22484, 22475, 22467, 22537,\n    22799, {f: 2, c: 22871}, 22874, 23057, 23064, 23068, 23071, 23067, 23059,\n    23020, 23072, 23075, 23081, 23077, 23052, 23049, 23403, 23640, 23472,\n    23475, 23478, 23476, 23470, 23477, 23481, 23480, 23556, 23633, 23637,\n    23632, 23789, 23805, 23803, 23786, 23784, 23792, 23798, 23809, 23796,\n    24046, 24109, 24107, 24235, 24237, 24231, 24369, 24466, 24465, 24464,\n    24665, 24675, 24677, 24656, 24661, 24685, 24681, 24687, 24708, 24735,\n    24730, 24717, 24724, 24716, 24709, 24726, 25159, 25331, 25352, 25343,\n    25422, 25406, 25391, 25429, 25410, 25414, 25423, 25417, 25402, 25424,\n    25405, {f: 2, c: 25386}, 25384, 25421, 25420, {f: 2, c: 25928}, 26009,\n    26049, 26053, 26178, 26185, 26191, 26179, 26194, 26188, 26181, 26177,\n    26360, {f: 2, c: 26388}, 26391, 26657, 26680, 26696, 26694, 26707, 26681,\n    26690, 26708, 26665, 26803, 26647, 26700, 26705, 26685, 26612, 26704,\n    26688, 26684, 26691, 26666, 26693, 26643, 26648, 26689, 27530, 27529,\n    27575, 27683, {f: 2, c: 27687}, 27686, 27684, 27888, 28010, 28053, 28040,\n    28039, 28006, 28024, 28023, 27993, 28051, 28012, 28041, 28014, 27994,\n    28020, 28009, 28044, 28042, 28025, 28037, 28005, 28052, 28874, 28888,\n    28900, 28889, 28872, 28879, 29241, 29305, 29436, 29433, 29437, 29432,\n    29431, 29574, 29677, 29705, 29678, 29664, 29674, 29662, 30036, 30045,\n    30044, 30042, 30041, 30142, 30149, 30151, {f: 2, c: 30130}, 30141, 30140,\n    30137, 30146, 30136, 30347, 30384, 30410, {f: 2, c: 30413}, 30505,\n    {f: 2, c: 30495}, 30504, 30697, 30768, 30759, 30776, 30749, 30772, 30775,\n    30757, 30765, 30752, 30751, 30770, 31061, 31056, 31072, 31071, 31062,\n    31070, 31069, 31063, 31066, 31204, [31203, 60418], 31207, 31199, 31206,\n    31209, 31192, 31364, 31368, 31449, 31494, 31505, 31881, 32033, 32023,\n    32011, 32010, 32032, 32034, 32020, 32016, 32021, 32026, 32028, 32013,\n    32025, 32027, 32570, 32607, 32660, 32709, 32705, 32774, 32772, 32792,\n    32789, 32793, 32791, 32829, 32831, 33009, 33026, 33008, 33029, 33005,\n    33012, 33030, 33016, 33011, 33032, 33021, 33034, 33020, 33007, 33261,\n    33260, 33280, 33296, {f: 2, c: 33322}, 33320, 33324, 33467, 33579, 33618,\n    33620, 33610, 33592, 33616, 33609, 33589, 33588, 33615, 33586, 33593,\n    33590, 33559, 33600, 33585, 33576, 33603, 34388, 34442, 34474, 34451,\n    34468, 34473, 34444, 34467, 34460, 34928, 34935, {f: 2, c: 34945}, 34941,\n    34937, 35352, 35344, 35342, 35340, 35349, 35338, 35351, 35347, 35350,\n    35343, 35345, 35912, 35962, 35961, {f: 2, c: 36001}, [36215, 58442], 36524,\n    36562, 36564, 36559, 36785, 36865, 36870, 36855, 36864, 36858, 36852,\n    36867, 36861, 36869, 36856, 37013, 37089, 37085, 37090, 37202, 37197,\n    37196, 37336, 37341, 37335, 37340, 37337, 38275, {f: 2, c: 38498}, 38497,\n    38491, 38493, 38500, 38488, 38494, 38587, 39138, [12218, 39340],\n    [12219, 39592], [12220, 39640], [12222, 39717], [12224, 39730],\n    [12225, 39740], 20094, 20602, [20605, 57382], 20572, 20551, 20547, 20556,\n    20570, 20553, 20581, 20598, 20558, 20565, 20597, 20596, 20599, 20559,\n    20495, 20591, 20589, 20828, 20885, 20976, 21098, 21103, 21202, 21209,\n    21208, 21205, 21264, 21263, 21273, {f: 2, c: 21311}, 21310, 21443, 26364,\n    21830, 21866, 21862, 21828, 21854, 21857, 21827, 21834, 21809, 21846,\n    21839, 21845, 21807, 21860, 21816, 21806, 21852, 21804, 21859, 21811,\n    21825, 21847, 22280, 22283, 22281, 22495, 22533, 22538, 22534, 22496,\n    22500, 22522, 22530, 22581, 22519, 22521, 22816, 22882, 23094, 23105,\n    23113, 23142, 23146, 23104, 23100, 23138, 23130, 23110, 23114, 23408,\n    23495, 23493, 23492, 23490, 23487, 23494, 23561, 23560, 23559, 23648,\n    {f: 2, c: 23644}, 23815, 23814, 23822, 23835, 23830, 23842, 23825, 23849,\n    23828, 23833, 23844, 23847, 23831, 24034, 24120, 24118, 24115, 24119,\n    {f: 2, c: 24247}, 24246, 24245, 24254, 24373, 24375, 24407, 24428, 24425,\n    24427, 24471, 24473, 24478, 24472, 24481, 24480, 24476, 24703, 24739,\n    24713, 24736, 24744, 24779, 24756, 24806, 24765, 24773, 24763, 24757,\n    24796, 24764, 24792, 24789, 24774, 24799, 24760, 24794, 24775,\n    {f: 2, c: 25114}, 25160, 25504, 25511, 25458, 25494, 25506, 25509, 25463,\n    25447, 25496, 25514, 25457, 25513, 25481, 25475, 25499, 25451, 25512,\n    25476, 25480, 25497, 25505, 25516, 25490, 25487, 25472, 25467, 25449,\n    25448, 25466, 25949, 25942, 25937, 25945, 25943, 21855, 25935, 25944,\n    25941, 25940, 26012, 26011, 26028, 26063, {f: 2, c: 26059}, 26062, 26205,\n    26202, 26212, 26216, 26214, 26206, 26361, 21207, 26395, 26753, 26799,\n    26786, 26771, 26805, 26751, 26742, 26801, 26791, 26775, 26800, 26755,\n    26820, 26797, 26758, 26757, 26772, 26781, 26792, 26783, 26785, 26754,\n    27442, 27578, {f: 2, c: 27627}, 27691, 28046, 28092, 28147, 28121, 28082,\n    28129, 28108, 28132, 28155, 28154, 28165, 28103, 28107, 28079, 28113,\n    28078, 28126, 28153, 28088, 28151, 28149, 28101, 28114, 28186, 28085,\n    28122, 28139, 28120, 28138, 28145, 28142, 28136, 28102, 28100, 28074,\n    28140, 28095, 28134, 28921, {f: 2, c: 28937}, 28925, 28911, 29245, 29309,\n    29313, 29468, 29467, 29462, 29459, 29465, 29575, 29701, 29706, 29699,\n    29702, 29694, 29709, 29920, {f: 2, c: 29942}, 29980, 29986,\n    {f: 2, c: 30053}, 30050, 30064, 30095, {f: 2, c: 30164}, 30133, 30154,\n    30157, 30350, 30420, 30418, 30427, 30519, 30526, 30524, 30518, 30520,\n    30522, 30827, 30787, 30798, 31077, 31080, 31085, 31227, 31378, 31381,\n    31520, 31528, 31515, 31532, 31526, 31513, 31518, 31534, 31890, 31895,\n    31893, 32070, 32067, 32113, 32046, 32057, 32060, 32064, 32048, 32051,\n    32068, 32047, 32066, 32050, 32049, 32573, 32670, 32666, 32716, 32718,\n    32722, 32796, 32842, 32838, 33071, 33046, 33059, 33067, 33065, 33072,\n    33060, 33282, 33333, 33335, 33334, 33337, 33678, 33694, 33688, 33656,\n    33698, 33686, 33725, 33707, 33682, 33674, 33683, 33673, 33696, 33655,\n    {f: 2, c: 33659}, 33670, 33703, 34389, 24426, 34503, 34496, 34486, 34500,\n    34485, 34502, 34507, 34481, 34479, 34505, 34899, 34974, 34952, 34987,\n    34962, 34966, 34957, 34955, 35219, 35215, 35370, 35357, 35363, 35365,\n    35377, 35373, 35359, 35355, 35362, 35913, 35930, 36009, 36012, 36011,\n    36008, 36010, 36007, 36199, 36198, 36286, 36282, 36571, 36575, 36889,\n    36877, 36890, 36887, 36899, 36895, 36893, 36880, 36885, 36894, 36896,\n    36879, 36898, 36886, 36891, 36884, 37096, 37101, [37117, 58488], 37207,\n    37326, 37365, 37350, 37347, 37351, 37357, 37353, 38281, 38506, 38517,\n    38515, 38520, 38512, 38516, {f: 2, c: 38518}, 38508, 38592, 38634, 38633,\n    31456, 31455, {f: 2, c: 38914}, [12226, 39770], [12227, 40165],\n    [12228, 40565], [12229, 40575], [12230, 40613], [12231, 40635], 20642,\n    20621, 20613, 20633, 20625, 20608, 20630, 20632, 20634, 26368, 20977,\n    21106, {f: 2, c: 21108}, 21097, 21214, 21213, 21211, 21338, 21413, 21883,\n    21888, 21927, 21884, 21898, 21917, 21912, 21890, 21916, 21930, 21908,\n    21895, 21899, 21891, 21939, 21934, 21919, 21822, 21938, 21914, 21947,\n    21932, 21937, 21886, 21897, 21931, 21913, 22285, 22575, 22570, 22580,\n    22564, {f: 2, c: 22576}, 22561, 22557, 22560, {f: 2, c: 22777}, 22880,\n    [23159, 57587], 23194, 23167, 23186, 23195, 23207, 23411, 23409, 23506,\n    23500, 23507, 23504, {f: 2, c: 23562}, 23601, 23884, 23888, 23860, 23879,\n    24061, 24133, 24125, 24128, 24131, 24190, 24266, {f: 2, c: 24257}, 24260,\n    24380, 24429, {f: 2, c: 24489}, 24488, 24785, 24801, 24754, 24758, 24800,\n    24860, 24867, 24826, 24853, 24816, 24827, 24820, 24936, 24817, 24846,\n    24822, 24841, 24832, 24850, 25119, 25161, 25507, 25484, 25551, 25536,\n    25577, 25545, 25542, 25549, 25554, 25571, 25552, 25569, 25558,\n    {f: 2, c: 25581}, 25462, 25588, 25578, 25563, 25682, 25562, 25593, 25950,\n    25958, {f: 2, c: 25954}, 26001, 26000, 26031, 26222, 26224, [26228, 57786],\n    26230, 26223, 26257, 26234, 26238, 26231, {f: 2, c: 26366}, 26399, 26397,\n    26874, 26837, 26848, 26840, 26839, 26885, 26847, 26869, 26862, 26855,\n    26873, 26834, 26866, 26851, 26827, 26829, 26893, 26898, 26894, 26825,\n    26842, 26990, 26875, 27454, 27450, 27453, 27544, 27542, 27580, 27631,\n    {f: 2, c: 27694}, 27692, [28207, 57904], 28216, 28244, 28193, 28210, 28263,\n    28234, 28192, 28197, 28195, 28187, 28251, 28248, 28196, 28246, 28270,\n    28205, 28198, 28271, 28212, 28237, 28218, 28204, 28227, [28189, 57901],\n    28222, 28363, 28297, 28185, 28238, 28259, 28228, 28274, 28265, 28255,\n    {f: 2, c: 28953}, 28966, 28976, 28961, 28982, [29038, 57958], 28956, 29260,\n    29316, 29312, 29494, 29477, 29492, 29481, 29754, 29738, 29747, 29730,\n    29733, {f: 2, c: 29749}, 29748, 29743, 29723, 29734, 29736,\n    {f: 2, c: 29989}, 30059, 30058, 30178, 30171, 30179, 30169, 30168, 30174,\n    30176, {f: 2, c: 30331}, 30358, 30355, 30388, 30428, 30543, 30701, 30813,\n    30828, 30831, 31245, 31240, 31243, 31237, 31232, 31384, 31383, 31382,\n    31461, 31459, 31561, 31574, 31558, 31568, 31570, 31572, 31565, 31563,\n    31567, [31569, 60510], 31903, 31909, 32094, 32080, 32104, 32085, 32043,\n    32110, 32114, 32097, 32102, 32098, 32112, 32115, 21892, {f: 2, c: 32724},\n    32779, 32850, 32901, 33109, 33108, 33099, 33105, 33102, 33081, 33094,\n    33086, 33100, 33107, 33140, 33298, 33308, 33769, 33795, 33784, 33805,\n    33760, 33733, 33803, [33729, 58309], 33775, 33777, 33780, 33879, 33802,\n    33776, 33804, 33740, 33789, 33778, 33738, 33848, 33806, 33796, 33756,\n    33799, 33748, 33759, 34395, 34527, 34521, 34541, 34516, 34523, 34532,\n    34512, 34526, 34903, {f: 2, c: 35009}, 34993, 35203, 35222, 35387, 35424,\n    35413, 35422, 35388, 35393, 35412, 35419, 35408, 35398, 35380, 35386,\n    35382, 35414, 35937, 35970, 36015, 36028, 36019, 36029, 36033, 36027,\n    36032, 36020, 36023, 36022, 36031, 36024, 36234, 36229, 36225, 36302,\n    36317, 36299, 36314, 36305, 36300, 36315, 36294, 36603, 36600, 36604,\n    36764, 36910, 36917, 36913, 36920, 36914, 36918, 37122, 37109, 37129,\n    37118, 37219, 37221, 37327, {f: 2, c: 37396}, 37411, 37385, 37406, 37389,\n    37392, 37383, 37393, 38292, 38287, 38283, 38289, 38291, 38290, 38286,\n    38538, 38542, 38539, 38525, {f: 2, c: 38533}, 38541, 38514, 38532, 38593,\n    38597, 38596, {f: 2, c: 38598}, 38639, 38642, 38860, {f: 2, c: 38917},\n    38920, 39143, 39146, 39151, 39145, 39154, 39149, 39342, 39341,\n    [12232, 40643], [12233, 40653], [12234, 40657], 20098, 20653, 20661,\n    {f: 2, c: 20658}, 20677, 20670, 20652, 20663, 20667, 20655, 20679, 21119,\n    21111, 21117, 21215, 21222, 21220, {f: 2, c: 21218}, 21295, 21983, 21992,\n    21971, 21990, 21966, 21980, 21959, 21969, {f: 2, c: 21987}, 21999, 21978,\n    21985, {f: 2, c: 21957}, 21989, 21961, {f: 2, c: 22290}, 22622, 22609,\n    22616, 22615, 22618, 22612, 22635, 22604, 22637, 22602, 22626, 22610,\n    22603, 22887, 23233, 23241, 23244, 23230, 23229, 23228, 23219, 23234,\n    23218, 23913, 23919, 24140, 24185, 24265, 24264, 24338, 24409, 24492,\n    24494, 24858, 24847, 24904, 24863, 24819, 24859, 24825, 24833, 24840,\n    24910, 24908, 24900, 24909, 24894, 24884, 24871, 24845, 24838, 24887,\n    {f: 2, c: 25121}, 25619, 25662, 25630, 25642, 25645, 25661, 25644, 25615,\n    25628, 25620, 25613, 25654, {f: 2, c: 25622}, 25606, 25964, 26015, 26032,\n    26263, 26249, {f: 2, c: 26247}, 26262, 26244, 26264, 26253, 26371, 27028,\n    26989, 26970, 26999, 26976, 26964, 26997, 26928, 27010, 26954, 26984,\n    26987, 26974, 26963, 27001, 27014, 26973, 26979, 26971, 27463, 27506,\n    27584, 27583, 27603, 27645, 28322, 28335, 28371, 28342, 28354, 28304,\n    28317, 28359, 28357, 28325, 28312, 28348, 28346, 28331, 28369, 28310,\n    28316, 28356, 28372, 28330, 28327, 28340, 29006, 29017, 29033, 29028,\n    29001, 29031, 29020, 29036, 29030, 29004, 29029, 29022, 28998, 29032,\n    29014, 29242, 29266, 29495, 29509, 29503, 29502, 29807, 29786, 29781,\n    29791, 29790, 29761, 29759, 29785, 29787, [29788, 58019], 30070, 30072,\n    30208, 30192, 30209, 30194, 30193, 30202, 30207, 30196, 30195,\n    {f: 2, c: 30430}, 30555, 30571, 30566, 30558, 30563, 30585, 30570, 30572,\n    30556, 30565, 30568, 30562, 30702, 30862, 30896, {f: 2, c: 30871}, 30860,\n    30857, 30844, 30865, 30867, 30847, 31098, 31103, 31105, 33836, 31165,\n    31260, 31258, 31264, 31252, 31263, 31262, {f: 2, c: 31391}, 31607, 31680,\n    31584, 31598, 31591, 31921, 31923, 31925, 32147, 32121, 32145, 32129,\n    32143, 32091, 32622, {f: 2, c: 32617}, 32626, 32681, 32680, 32676, 32854,\n    32856, 32902, 32900, 33137, 33136, 33144, 33125, 33134, 33139, 33131,\n    {f: 2, c: 33145}, 33126, 33285, 33351, 33922, 33911, 33853, 33841, 33909,\n    33894, 33899, 33865, 33900, 33883, 33852, 33845, 33889, 33891, 33897,\n    33901, 33862, 34398, 34396, 34399, 34553, 34579, 34568, 34567, 34560,\n    34558, 34555, {f: 2, c: 34562}, 34566, 34570, 34905, 35039, 35028, 35033,\n    35036, 35032, 35037, 35041, 35018, 35029, 35026, 35228, 35299, 35435,\n    {f: 2, c: 35442}, 35430, 35433, 35440, 35463, 35452, 35427, 35488, 35441,\n    35461, 35437, 35426, 35438, 35436, 35449, 35451, 35390, 35432, 35938,\n    35978, 35977, 36042, {f: 2, c: 36039}, 36036, 36018, 36035, 36034, 36037,\n    36321, 36319, 36328, 36335, 36339, 36346, 36330, 36324, 36326, 36530,\n    36611, 36617, 36606, 36618, 36767, 36786, 36939, 36938, 36947, 36930,\n    36948, 36924, 36949, 36944, 36935, 36943, 36942, 36941, 36945, 36926,\n    36929, 37138, 37143, 37228, 37226, 37225, 37321, 37431, 37463, 37432,\n    37437, 37440, 37438, 37467, 37451, 37476, 37457, 37428, 37449, 37453,\n    37445, 37433, 37439, 37466, 38296, 38552, {f: 2, c: 38548}, 38605, 38603,\n    {f: 2, c: 38601}, 38647, 38651, 38649, 38646, 38742, 38772, 38774,\n    {f: 2, c: 38928}, 38931, 38922, 38930, 38924, 39164, 39156,\n    {f: 2, c: 39165}, 39347, 39345, 39348, 39649, 40169, 40578, [12237, 40718],\n    [12238, 40723], [12239, 40736], 20711, 20718, 20709, 20694, [20717, 60903],\n    20698, 20693, 20687, 20689, 20721, 20686, 20713, 20834, 20979, 21123,\n    21122, 21297, 21421, 22014, 22016, 22043, 22039, 22013, 22036, 22022,\n    22025, {f: 2, c: 22029}, 22007, 22038, 22047, 22024, 22032, 22006, 22296,\n    22294, 22645, 22654, 22659, 22675, 22666, 22649, 22661, 22653, 22781,\n    22821, 22818, 22820, 22890, 22889, 23265, 23270, 23273, 23255, 23254,\n    23256, 23267, 23413, 23518, 23527, 23521, {f: 2, c: 23525}, 23528, 23522,\n    23524, 23519, 23565, 23650, 23940, 23943, 24155, 24163, 24149, 24151,\n    24148, 24275, 24278, 24330, 24390, 24432, 24505, 24903, 24895, 24907,\n    24951, {f: 2, c: 24930}, 24927, 24922, 24920, 24949, 25130, 25735, 25688,\n    25684, 25764, 25720, 25695, 25722, 25681, 25703, 25652, 25709, 25723,\n    25970, 26017, 26071, 26070, 26274, 26280, 26269, 27036, 27048, 27029,\n    27073, 27054, 27091, 27083, 27035, 27063, 27067, 27051, 27060, 27088,\n    27085, 27053, 27084, 27046, 27075, 27043, 27465, 27468, 27699, 28467,\n    28436, 28414, 28435, 28404, 28457, 28478, 28448, 28460, 28431, 28418,\n    28450, 28415, 28399, 28422, 28465, 28472, 28466, 28451, 28437, 28459,\n    28463, 28552, 28458, 28396, 28417, 28402, 28364, 28407, 29076, 29081,\n    29053, 29066, 29060, 29074, 29246, 29330, 29334, 29508, 29520, 29796,\n    29795, 29802, 29808, 29805, 29956, 30097, 30247, 30221, 30219, 30217,\n    30227, 30433, 30435, 30596, 30589, 30591, 30561, 30913, 30879, 30887,\n    30899, 30889, 30883, {f: 2, c: 31118}, 31117, 31278, 31281, 31402, 31401,\n    31469, 31471, 31649, 31637, 31627, 31605, 31639, 31645, 31636, 31631,\n    [31672, 58170], 31623, 31620, 31929, {f: 2, c: 31933}, 32187, 32176, 32156,\n    {f: 2, c: 32189}, 32160, 32202, 32180, 32178, 32177, 32186, 32162, 32191,\n    32181, 32184, 32173, [32210, 58202], 32199, 32172, 32624, {f: 2, c: 32736},\n    32735, 32862, 32858, 32903, 33104, 33152, 33167, 33160, 33162, 33151,\n    33154, 33255, 33274, 33287, 33300, 33310, 33355, 33993, 33983, 33990,\n    33988, 33945, 33950, 33970, 33948, 33995, 33976, 33984, 34003, 33936,\n    33980, 34001, 33994, 34623, 34588, 34619, 34594, 34597, 34612, 34584,\n    34645, 34615, 34601, 35059, 35074, 35060, 35065, 35064, 35069, 35048,\n    35098, 35055, 35494, 35468, 35486, 35491, 35469, 35489, 35475, 35492,\n    35498, 35493, 35496, 35480, 35473, 35482, 35495, 35946, 35981, 35980,\n    36051, {f: 2, c: 36049}, 36203, 36249, 36245, 36348, 36628, 36626, 36629,\n    36627, 36771, 36960, 36952, 36956, 36963, 36953, 36958, 36962, 36957,\n    36955, 37145, 37144, 37150, 37237, 37240, 37239, 37236, 37496, 37548,\n    37504, 37509, 37528, 37526, 37499, 37523, 37532, 37544, 37500, 37521,\n    38305, {f: 2, c: 38312}, 38307, 38309, 38308, 38553, 38556, 38555, 38604,\n    38610, 38656, 38780, 38789, 38902, {f: 2, c: 38935}, 39087, 39089, 39171,\n    39173, 39180, 39177, 39361, {f: 2, c: 39599}, 39654, {f: 2, c: 39745},\n    40180, 40182, 40179, 40636, [12240, 40763], [12241, 40778], 20740, 20736,\n    20731, 20725, 20729, 20738, {f: 2, c: 20744}, 20741, 20956,\n    {f: 3, c: 21127}, 21133, 21130, 21232, 21426, 22062, 22075, 22073, 22066,\n    22079, 22068, 22057, 22099, 22094, 22103, 22132, 22070, {f: 2, c: 22063},\n    22656, 22687, 22686, 22707, 22684, 22702, 22697, 22694, 22893, 23305,\n    23291, 23307, 23285, 23308, 23304, 23534, 23532, 23529, 23531,\n    {f: 2, c: 23652}, 23965, 23956, 24162, 24159, 24161, 24290, 24282, 24287,\n    24285, 24291, 24288, 24392, 24433, 24503, 24501, 24950, 24935, 24942,\n    24925, 24917, 24962, 24956, 24944, 24939, 24958, 24999, 24976, 25003,\n    24974, 25004, 24986, 24996, 24980, 25006, 25134, 25705, 25711, 25721,\n    25758, 25778, 25736, [25744, 57745], 25776, 25765, 25747, 25749, 25769,\n    25746, 25774, 25773, 25771, 25754, 25772, 25753, 25762, 25779, 25973,\n    {f: 2, c: 25975}, 26286, 26283, 26292, 26289, 27171, 27167, 27112, 27137,\n    27166, 27161, 27133, 27169, 27155, 27146, 27123, 27138, 27141, 27117,\n    27153, 27472, 27470, 27556, {f: 2, c: 27589}, 28479, 28540, 28548, 28497,\n    28518, 28500, 28550, 28525, 28507, 28536, 28526, 28558, 28538, 28528,\n    28516, 28567, 28504, 28373, 28527, 28512, 28511, 29087, 29100, 29105,\n    29096, 29270, 29339, 29518, 29527, 29801, 29835, 29827, 29822, 29824,\n    30079, 30240, 30249, 30239, 30244, 30246, {f: 2, c: 30241}, 30362, 30394,\n    30436, 30606, 30599, 30604, 30609, 30603, 30923, 30917, 30906, 30922,\n    30910, 30933, 30908, 30928, 31295, 31292, 31296, 31293, 31287, 31291,\n    31407, 31406, 31661, 31665, 31684, 31668, {f: 2, c: 31686}, 31681, 31648,\n    31692, 31946, 32224, 32244, 32239, 32251, 32216, 32236, 32221, 32232,\n    32227, 32218, 32222, 32233, 32158, 32217, 32242, 32249, 32629, 32631,\n    32687, 32745, 32806, {f: 3, c: 33179}, 33184, 33178, 33176, 34071, 34109,\n    34074, 34030, {f: 2, c: 34092}, 34067, 34065, 34083, 34081, 34068, 34028,\n    34085, 34047, 34054, 34690, 34676, 34678, 34656, 34662, 34680, 34664,\n    34649, 34647, 34636, 34643, 34907, 34909, 35088, 35079, {f: 2, c: 35090},\n    35093, 35082, 35516, 35538, 35527, 35524, 35477, 35531, 35576, 35506,\n    35529, 35522, 35519, 35504, 35542, 35533, 35510, 35513, 35547, 35916,\n    35918, 35948, 36064, 36062, 36070, 36068, {f: 2, c: 36076},\n    {f: 2, c: 36066}, 36060, 36074, 36065, 36205, 36255, 36259, 36395, 36368,\n    36381, 36386, 36367, 36393, 36383, 36385, 36382, 36538, 36637, 36635,\n    36639, 36649, 36646, 36650, 36636, 36638, 36645, 36969, 36974, 36968,\n    36973, 36983, 37168, 37165, 37159, 37169, 37255, 37257, 37259, 37251,\n    37573, 37563, 37559, 37610, 37604, 37569, 37555, 37564, 37586, 37575,\n    37616, 37554, 38317, 38321, 38660, {f: 2, c: 38662}, 38665, 38752, 38797,\n    38795, 38799, 38945, 38955, 38940, 39091, 39178, 39187, 39186, 39192,\n    39389, 39376, 39391, 39387, 39377, 39381, 39378, 39385, 39607,\n    {f: 2, c: 39662}, 39719, 39749, 39748, 39799, 39791, 40198, 40201, 40195,\n    40617, 40638, 40654, 22696, [12242, 40786], 20754, 20760, 20756, 20752,\n    20757, 20864, 20906, 20957, 21137, 21139, 21235, 22105, 22123, 22137,\n    22121, 22116, 22136, 22122, 22120, 22117, 22129, 22127, 22124, 22114,\n    22134, 22721, 22718, 22727, 22725, 22894, 23325, 23348, 23416, 23536,\n    23566, 24394, 25010, 24977, 25001, 24970, 25037, 25014, 25022, 25034,\n    25032, 25136, 25797, 25793, 25803, {f: 2, c: 25787}, 25818, 25796, 25799,\n    25794, 25805, 25791, 25810, 25812, 25790, 25972, 26310, 26313, 26297,\n    26308, 26311, 26296, 27197, 27192, 27194, 27225, 27243, 27224, 27193,\n    27204, 27234, 27233, 27211, 27207, 27189, 27231, 27208, 27481, 27511,\n    27653, 28610, 28593, 28577, 28611, 28580, 28609, 28583, 28595, 28608,\n    28601, [28598, 60318], 28582, 28576, 28596, 29118, 29129, 29136, 29138,\n    29128, 29141, 29113, 29134, 29145, 29148, {f: 2, c: 29123}, 29544, 29852,\n    29859, 29848, 29855, 29854, 29922, {f: 2, c: 29964}, 30260, 30264, 30266,\n    30439, 30437, 30624, {f: 2, c: 30622}, 30629, 30952, 30938, 30956, 30951,\n    31142, {f: 2, c: 31309}, 31302, 31308, 31307, 31418, 31705, 31761, 31689,\n    31716, 31707, 31713, 31721, 31718, {f: 2, c: 31957}, 32266, 32273, 32264,\n    32283, 32291, 32286, [32285, 58211], 32265, 32272, 32633, 32690,\n    {f: 2, c: 32752}, 32750, [32808, 58239], 33203, 33193, 33192, 33275, 33288,\n    {f: 2, c: 33368}, 34122, 34137, 34120, {f: 2, c: 34152}, 34115, 34121,\n    34157, 34154, 34142, 34691, 34719, 34718, 34722, 34701, 34913, 35114,\n    35122, 35109, 35115, 35105, 35242, [35238, 58391], 35558, 35578, 35563,\n    35569, 35584, 35548, 35559, 35566, 35582, {f: 2, c: 35585}, 35575, 35565,\n    35571, 35574, 35580, 35947, 35949, 35987, 36084, 36420, 36401, 36404,\n    36418, 36409, 36405, 36667, 36655, 36664, 36659, 36776, 36774, 36981,\n    36980, 36984, 36978, 36988, 36986, 37172, 37266, 37664, 37686, 37624,\n    37683, 37679, 37666, 37628, 37675, 37636, 37658, 37648, 37670, 37665,\n    37653, 37678, 37657, 38331, {f: 2, c: 38567}, 38570, 38613, 38670, 38673,\n    38678, 38669, 38675, 38671, 38747, [38748, 58565], 38758, 38808, 38960,\n    38968, 38971, 38967, 38957, 38969, 38948, 39184, 39208, 39198, 39195,\n    39201, 39194, 39405, 39394, 39409, 39608, 39612, 39675, 39661, 39720,\n    39825, 40213, 40227, 40230, 40232, 40210, 40219, 40664, 40660,\n    [12243, 40845], [12244, 40860], 20778, 20767, 20769, 20786, 21237, 22158,\n    22144, 22160, 22149, 22151, 22159, 22741, 22739, 22737, 22734, 23344,\n    23338, 23332, 23418, 23607, 23656, 23996, 23994, 23997, 23992, 24171,\n    24396, 24509, 25033, 25026, 25031, 25062, 25035, 25138, 25140, 25806,\n    25802, 25816, 25824, 25840, 25830, 25836, 25841, 25826, 25837,\n    {f: 2, c: 25986}, 26329, 26326, 27264, 27284, 27268, 27298, 27292, 27355,\n    27299, 27262, 27287, 27280, 27296, 27484, 27566, 27610, 27656, 28632,\n    28657, {f: 2, c: 28639}, 28635, 28644, 28651, 28655, 28544, 28652, 28641,\n    28649, 28629, 28654, 28656, 29159, [29151, 60361], 29166, 29158, 29157,\n    29165, 29164, 29172, 29152, 29237, 29254, 29552, 29554, 29865, 29872,\n    29862, 29864, 30278, 30274, 30284, 30442, 30643, 30634, 30640, 30636,\n    30631, 30637, 30703, 30967, 30970, 30964, 30959, 30977, 31143, 31146,\n    31319, 31423, 31751, 31757, 31742, 31735, 31756, 31712, 31968, 31964,\n    31966, 31970, 31967, 31961, 31965, 32302, 32318, 32326, 32311, 32306,\n    32323, 32299, 32317, 32305, 32325, 32321, 32308, 32313, 32328, 32309,\n    32319, 32303, 32580, 32755, 32764, {f: 2, c: 32881}, 32880, 32879, 32883,\n    33222, 33219, 33210, 33218, 33216, 33215, 33213, 33225, 33214, 33256,\n    33289, 33393, 34218, 34180, 34174, 34204, 34193, 34196, 34223, 34203,\n    34183, 34216, 34186, 34214, 34407, 34752, 34769, 34739, 34770, 34758,\n    34731, 34747, 34746, 34760, 34763, 35131, 35126, 35140, 35128, 35133,\n    35244, 35598, 35607, 35609, 35611, 35594, 35616, 35613, 35588, 35600,\n    35905, 35903, 35955, 36090, 36093, 36092, 36088, 36091, 36264, 36425,\n    36427, 36424, 36426, 36676, 36670, 36674, 36677, 36671, 36991, 36989,\n    36996, {f: 2, c: 36993}, 36992, 37177, 37283, 37278, 37276, 37709, 37762,\n    37672, 37749, 37706, 37733, 37707, 37656, 37758, 37740, 37723, 37744,\n    37722, 37716, {f: 3, c: 38346}, 38344, 38342, 38577, 38584, 38614, 38684,\n    38686, 38816, 38867, 38982, 39094, 39221, 39425, 39423, 39854, 39851,\n    39850, 39853, 40251, 40255, 40587, 40655, 40670, {f: 2, c: 40668}, 40667,\n    40766, 40779, 21474, 22165, 22190, 22745, 22744, 23352, 24413, 25059,\n    25139, 25844, 25842, 25854, 25862, {f: 2, c: 25850}, 25847, 26039, 26332,\n    26406, 27315, 27308, 27331, 27323, 27320, 27330, {f: 2, c: 27310}, 27487,\n    27512, 27567, 28681, 28683, 28670, 28678, 28666, 28689, 28687,\n    {f: 2, c: 29179}, 29182, 29176, 29559, 29557, 29863, 29887, 29973, 30294,\n    30296, 30290, 30653, 30655, {f: 2, c: 30651}, 30990, 31150,\n    {f: 2, c: 31329}, 31328, {f: 2, c: 31428}, 31787, 31783, 31786, 31774,\n    31779, 31777, 31975, {f: 2, c: 32340}, 32350, 32346, 32353, 32338, 32345,\n    32584, 32761, 32763, 32887, 32886, 33229, 33231, 33290, 34255, 34217,\n    34253, 34256, 34249, 34224, 34234, 34233, 34799, 34796, 34802, 34784,\n    35206, 35250, 35316, 35624, 35641, 35628, 35627, 35920, 36101, 36441,\n    36451, 36454, 36452, 36447, 36437, 36544, 36681, 36685, 36999, 36995,\n    37000, {f: 2, c: 37291}, 37328, 37780, 37770, 37782, 37794, 37811, 37806,\n    37804, 37808, 37784, 37786, 37783, 38356, 38358, 38352, 38357, 38626,\n    38620, 38617, 38619, 38622, 38692, 38819, 38822, 38829, 38905, 38989,\n    38991, 38988, 38990, 38995, 39098, {f: 2, c: 39230}, 39229, 39214, 39333,\n    39438, 39617, 39683, 39686, 39759, 39758, 39757, 39882, 39881, 39933,\n    39880, 39872, 40273, 40285, 40288, 40672, 40725, 40748, 20787, 22181,\n    22184, {f: 2, c: 22750}, 22754, 23541, 40848, 24300, 25074, 25079, 25078,\n    25077, 25856, 25871, 26336, 26333, 27365, 27357, 27354, 27347, 28699,\n    28703, 28712, 28698, 28701, 28693, 28696, 29190, 29197, 29272, 29346,\n    29560, 29562, 29885, 29898, 29923, 30087, 30086, 30303, 30305, 30663,\n    31001, 31153, 31339, 31337, {f: 2, c: 31806}, 31800, 31805, 31799, 31808,\n    32363, 32365, 32377, {f: 2, c: 32361}, 32371, 32645, 32694, 32697, 32696,\n    33240, 34281, 34269, 34282, 34261, {f: 2, c: 34276}, 34295, 34811, 34821,\n    34829, 34809, 34814, 35168, 35167, 35158, 35166, 35649, 35676, 35672,\n    35657, 35674, {f: 2, c: 35662}, 35654, 35673, 36104, 36106, 36476, 36466,\n    36487, 36470, 36460, 36474, 36468, 36692, 36686, 36781, {f: 2, c: 37002},\n    37297, 37294, 37857, 37841, 37855, 37827, 37832, {f: 2, c: 37852}, 37846,\n    37858, 37837, 37848, 37860, 37847, 37864, 38364, 38580, 38627, 38698,\n    38695, 38753, 38876, 38907, 39006, 39000, 39003, 39100, 39237, 39241,\n    39446, 39449, 39693, 39912, 39911, 39894, 39899, 40329, 40289, 40306,\n    40298, 40300, 40594, 40599, 40595, 40628, 21240, 22199, 22198, 22196,\n    22204, 22756, 23360, 23363, 23421, 23542, 24009, 25080, 25082, 25880,\n    25876, 25881, 26342, 26407, 27372, 28734, 28720, 28722, 29200, 29563,\n    29903, 30306, 30309, 31014, 31018, 31020, 31019, 31431, 31478, 31820,\n    31811, 31821, {f: 2, c: 31983}, 36782, 32381, 32380, 32386, 32588, 32768,\n    33242, 33382, 34299, 34297, 34321, 34298, 34310, 34315, 34311, 34314,\n    {f: 2, c: 34836}, 35172, 35258, 35320, 35696, 35692, 35686, 35695, 35679,\n    35691, 36111, 36109, 36489, 36481, 36485, 36482, 37300, 37323, 37912,\n    37891, 37885, 38369, 38704, 39108, 39250, 39249, 39336, 39467, 39472,\n    39479, 39477, 39955, 39949, 40569, 40629, 40680, 40751, 40799, 40803,\n    40801, {f: 2, c: 20791}, 22209, 22208, 22210, 22804, 23660, 24013, 25084,\n    25086, 25885, 25884, 26005, 26345, 27387, 27396, 27386, 27570, 28748,\n    29211, 29351, 29910, 29908, 30313, 30675, 31824, 32399, 32396, 32700,\n    34327, 34349, 34330, 34851, 34850, 34849, 34847, 35178, 35180, 35261,\n    35700, 35703, 35709, 36115, 36490, 36493, 36491, 36703, 36783, 37306,\n    37934, 37939, 37941, 37946, 37944, 37938, 37931, 38370, {f: 2, c: 38712},\n    38706, [38911, 58586], 39015, 39013, 39255, 39493, 39491, 39488, 39486,\n    39631, 39764, 39761, 39981, 39973, 40367, 40372, 40386, 40376, 40605,\n    40687, 40729, 40796, {f: 2, c: 40806}, 20796, 20795, 22216, 22218, 22217,\n    23423, 24020, 24018, 24398, 25087, 25892, 27402, 27489, 28753, 28760,\n    29568, 29924, 30090, 30318, 30316, 31155, 31840, 31839, 32894, 32893,\n    33247, 35186, 35183, 35324, 35712, {f: 2, c: 36118}, 36497, 36499, 36705,\n    37192, 37956, {f: 2, c: 37969}, {f: 2, c: 38717}, 38851, 38849, 39019,\n    39253, 39509, 39501, 39634, 39706, 40009, 39985, 39998, 39995, 40403,\n    40407, 40756, 40812, 40810, 40852, 22220, 24022, 25088, 25891, 25899,\n    25898, 26348, 27408, 29914, 31434, 31844, 31843, 31845, 32403, 32406,\n    32404, 33250, 34360, 34367, 34865, 35722, 37008, 37007, 37987, 37984,\n    37988, 38760, 39023, 39260, {f: 2, c: 39514}, 39511, {f: 2, c: 39635},\n    39633, 40020, 40023, 40022, 40421, 40607, 40692, 22225, 22761, 25900,\n    28766, {f: 2, c: 30321}, [30679, 60226], 32592, 32648, 34870, 34873, 34914,\n    35731, 35730, 35734, 33399, 36123, 37312, 37994, 38722, 38728, 38724,\n    38854, 39024, 39519, 39714, 39768, 40031, {f: 2, c: 40441},\n    {f: 2, c: 40572}, 40711, 40823, 40818, 24307, 27414, 28771, 31852, 31854,\n    34875, 35264, 36513, 37313, 38002, 38000, 39025, 39262, 39638, 39715,\n    40652, 28772, 30682, 35738, 38007, 38857, 39522, 39525, 32412, 35740,\n    36522, 37317, {f: 2, c: 38013}, 38012, {f: 2, c: 40055}, 40695, 35924,\n    38015, 40474, 29224, 39530, 39729, 40475, 40478, 31858, 20034, 20060,\n    [12048, 20981], [12053, 21274], [12058, 21378], 19975, 19980, 20039, 20109,\n    [12062, 22231], [12076, 23662], [12091, 24435], 19983, 20871, 19982, 20014,\n    20115, 20162, 20169, 20168, 20888, 21244, 21356, 21433, 22304, 22787,\n    22828, [23568, 60417], 24063, 26081, [12110, 27571], 27596, [12115, 27668],\n    [12121, 29247], 20017, 20028, 20200, 20188, 20201, 20193, 20189, 20186,\n    21004, 21001, 21276, 21324, {f: 2, c: 22306}, 22807, 22831, 23425, 23428,\n    23570, 23611, 23668, 23667, 24068, 24192, 24194, 24521, 25097, 25168,\n    27669, 27702, 27715, 27711, 27707, 29358, 29360, 29578, [12145, 31160],\n    32906, 38430, 20238, 20248, 20268, 20213, 20244, 20209, 20224, 20215,\n    20232, 20253, 20226, 20229, 20258, 20243, 20228, 20212, 20242, 20913,\n    21011, 21008, 21158, 21282, 21279, 21325, 21386, 21511, 22241, 22239,\n    22318, 22314, 22324, 22844, 22912, 22908, 22917, 22907, 22910, 22903,\n    22911, 23382, 23573, 23589, 23676, {f: 2, c: 23674}, 23678, 24031,\n    [24181, 57646], 24196, 24322, 24346, 24436, 24533, 24532, 24527, 25180,\n    25182, 25188, 25185, 25190, 25186, 25177, 25184, 25178, 25189, 25911,\n    26095, 26094, 26430, 26425, 26424, 26427, 26426, 26431, 26428, 26419,\n    27672, 27718, 27730, 27740, 27727, [27722, 60796], 27732, {f: 2, c: 27723},\n    28785, 29278, {f: 2, c: 29364}, 29582, 29994, 30335, 31349, [12153, 32593],\n    [12171, 33400], 33404, 33408, 33405, 33407, [12172, 34381], [12177, 35198],\n    37017, [37015, 59347], 37016, 37019, 37012, 38434, 38436, 38432, 38435,\n    20310, 20283, 20322, 20297, 20307, 20324, 20286, 20327, 20306, 20319,\n    20289, 20312, 20269, 20275, 20287, 20321, 20879, 20921, 21020, 21022,\n    21025, {f: 2, c: 21165}, 21257, 21347, 21362, {f: 2, c: 21390}, 21552,\n    21559, 21546, 21588, 21573, 21529, 21532, 21541, 21528, 21565, 21583,\n    21569, 21544, 21540, 21575, 22254, 22247, 22245, 22337, 22341, 22348,\n    22345, 22347, 22354, 22790, 22848, 22950, 22936, 22944, 22935, 22926,\n    22946, 22928, 22927, 22951, 22945, 23438, 23442, 23592, 23594, 23693,\n    23695, 23688, 23691, 23689, 23698, 23690, 23686, 23699, 23701, 24032,\n    24074, 24078, 24203, 24201, 24204, 24200, 24205, 24325, 24349, 24440,\n    24438, 24530, 24529, 24528, 24557, 24552, 24558, 24563, 24545, 24548,\n    24547, 24570, 24559, 24567, 24571, 24576, 24564, 25146, 25219, 25228,\n    {f: 2, c: 25230}, 25236, 25223, 25201, 25211, 25210, 25200, 25217, 25224,\n    25207, 25213, 25202, 25204, 26096, 26100, 26099, 26098, 26101, 26437,\n    26439, 26457, 26453, 26444, 26440, 26461, 26445, 26458, 26443, 27600,\n    {f: 2, c: 27673}, 27768, 27751, 27755, 27780, 27787, 27791, 27761, 27759,\n    27753, 27802, 27757, 27783, 27797, [27804, 57900], 27750, 27763, 27749,\n    27771, 27790, 28788, 28794, 29283, 29375, 29373, 29379, 29382, 29377,\n    29370, 29381, 29589, 29591, {f: 2, c: 29587}, 29586, 30010, 30009,\n    {f: 2, c: 30100}, 30337, 31037, 32820, 32917, 32921, 32912, 32914, 32924,\n    33424, 33423, 33413, 33422, 33425, 33427, 33418, {f: 2, c: 33411},\n    [12184, 35960], 36809, 36799, 37023, 37025, 37029, 37022, 37031, 37024,\n    38448, 38440, 38447, 38445, 20019, 20376, 20348, 20357, 20349, 20352,\n    20359, 20342, 20340, 20361, 20356, 20343, 20300, 20375, 20330, 20378,\n    20345, 20353, 20344, 20368, 20380, 20372, 20382, 20370, 20354, 20373,\n    20331, 20334, 20894, 20924, 20926, 21045, {f: 2, c: 21042}, 21062, 21041,\n    21180, {f: 2, c: 21258}, 21308, 21394, 21396, 21639, 21631, 21633, 21649,\n    21634, 21640, 21611, 21626, 21630, 21605, 21612, 21620, 21606, 21645,\n    21615, 21601, 21600, 21656, 21603, 21607, 21604, 22263, 22265, 22383,\n    22386, 22381, 22379, 22385, 22384, 22390, 22400, 22389, 22395,\n    {f: 2, c: 22387}, 22370, 22376, 22397, 22796, 22853, 22965, 22970, 22991,\n    22990, 22962, 22988, 22977, 22966, 22972, 22979, 22998, 22961, 22973,\n    22976, 22984, 22964, 22983, 23394, 23397, 23443, 23445, 23620, 23623,\n    23726, 23716, 23712, 23733, 23727, 23720, 23724, 23711, 23715, 23725,\n    23714, 23722, 23719, 23709, 23717, 23734, 23728, 23718, 24087, 24084,\n    24089, 24360, {f: 3, c: 24354}, 24404, 24450, 24446, 24445, 24542, 24549,\n    24621, 24614, 24601, 24626, 24587, 24628, 24586, 24599, 24627, 24602,\n    24606, 24620, 24610, 24589, 24592, 24622, 24595, 24593, 24588, 24585,\n    24604, 25108, 25149, 25261, 25268, 25297, 25278, 25258, 25270, 25290,\n    25262, 25267, 25263, 25275, 25257, 25264, 25272, 25917, 26024, 26043,\n    26121, 26108, 26116, 26130, 26120, 26107, 26115, 26123, 26125, 26117,\n    26109, 26129, 26128, 26358, 26378, 26501, 26476, 26510, 26514, 26486,\n    26491, 26520, 26502, 26500, 26484, 26509, 26508, 26490, 26527, 26513,\n    26521, 26499, 26493, 26497, {f: 2, c: 26488}, 26516, 27429, 27520, 27518,\n    27614, 27677, 27795, 27884, 27883, 27886, 27865, 27830, 27860, 27821,\n    27879, 27831, 27856, 27842, 27834, 27843, 27846, 27885, 27890, 27858,\n    27869, 27828, 27786, 27805, 27776, 27870, 27840, 27952, 27853, 27847,\n    27824, 27897, 27855, 27881, 27857, 28820, 28824, 28805, 28819, 28806,\n    28804, 28817, 28822, 28802, 28826, 28803, 29290, 29398, 29387, 29400,\n    29385, 29404, 29394, 29396, 29402, 29388, 29393, 29604, 29601, 29613,\n    29606, 29602, 29600, 29612, 29597, 29917, 29928, {f: 2, c: 30015}, 30014,\n    30092, 30104, 30383, 30451, 30449, 30448, 30453, 30712, 30716, 30713,\n    30715, 30714, 30711, 31042, 31039, 31173, 31352, 31355, 31483, 31861,\n    31997, 32821, 32911, 32942, 32931, 32952, 32949, 32941, 33312, 33440,\n    33472, 33451, 33434, 33432, 33435, 33461, 33447, 33454, 33468, 33438,\n    33466, 33460, 33448, 33441, 33449, 33474, 33444, 33475, 33462, 33442,\n    34416, 34415, {f: 2, c: 34413}, 35926, 36818, 36811, 36819, 36813, 36822,\n    36821, 36823, 37042, 37044, 37039, 37043, 37040, 38457, 38461, 38460,\n    38458, 38467, 20429, 20421, 20435, 20402, 20425, 20427, 20417, 20436,\n    20444, 20441, [20411, 60346], 20403, 20443, 20423, 20438, 20410, 20416,\n    20409, 20460, 21060, 21065, 21184, 21186, 21309, 21372, 21399, 21398,\n    21401, 21400, 21690, 21665, 21677, 21669, 21711, 21699, 33549, 21687,\n    21678, 21718, 21686, {f: 2, c: 21701}, 21664, 21616, 21692, 21666, 21694,\n    21618, 21726, 21680, 22453, {f: 2, c: 22430}, 22436, 22412, 22423, 22429,\n    22427, 22420, 22424, 22415, 22425, 22437, 22426, 22421, 22772, 22797,\n    22867, 23009, 23006, 23022, 23040, 23025, 23005, 23034, 23037, 23036,\n    23030, 23012, 23026, 23031, 23003, 23017, 23027, 23029, 23008, 23038,\n    23028, 23021, 23464, 23628, 23760, 23768, 23756, 23767, 23755, 23771,\n    23774, 23770, 23753, 23751, 23754, 23766, {f: 2, c: 23763}, 23759, 23752,\n    23750, 23758, 23775, 23800, 24057, {f: 3, c: 24097}, 24096, 24100, 24240,\n    24228, 24226, 24219, 24227, 24229, 24327, 24366, 24406, 24454, 24631,\n    24633, 24660, 24690, 24670, 24645, 24659, 24647, 24649, 24667, 24652,\n    24640, 24642, 24671, 24612, 24644, 24664, 24678, 24686, {f: 2, c: 25154},\n    25295, 25357, 25355, 25333, 25358, 25347, 25323, 25337, 25359, 25356,\n    25336, 25334, 25344, {f: 2, c: 25363}, 25338, 25365, 25339, 25328, 25921,\n    25923, 26026, 26047, 26166, 26145, 26162, 26165, 26140, 26150, 26146,\n    26163, 26155, 26170, 26141, 26164, 26169, 26158, {f: 2, c: 26383}, 26561,\n    26610, 26568, 26554, 26588, 26555, 26616, 26584, 26560, 26551, 26565,\n    26603, 26596, 26591, 26549, 26573, 26547, 26615, 26614, 26606, 26595,\n    26562, 26553, 26574, 26599, 26608, 26546, 26620, 26566, 26605, 26572,\n    26542, 26598, 26587, 26618, {f: 2, c: 26569}, 26563, 26602, 26571, 27432,\n    27522, 27524, 27574, 27606, 27608, 27616, {f: 2, c: 27680}, 27944, 27956,\n    27949, 27935, 27964, 27967, 27922, 27914, 27866, 27955, 27908, 27929,\n    27962, 27930, 27921, 27904, 27933, 27970, 27905, 27928, 27959, 27907,\n    27919, 27968, 27911, 27936, 27948, 27912, 27938, 27913, 27920, 28855,\n    28831, 28862, 28849, 28848, 28833, {f: 2, c: 28852}, 28841, 29249,\n    {f: 2, c: 29257}, 29292, 29296, 29299, 29294, 29386, 29412, 29416, 29419,\n    29407, 29418, 29414, 29411, 29573, 29644, 29634, 29640, 29637, 29625,\n    29622, 29621, 29620, 29675, 29631, 29639, 29630, 29635, 29638, 29624,\n    29643, 29932, 29934, 29998, {f: 2, c: 30023}, 30119, 30122, 30329, 30404,\n    30472, {f: 3, c: 30467}, 30474, 30455, 30459, 30458, {f: 2, c: 30695},\n    30726, {f: 2, c: 30737}, 30725, 30736, 30735, 30734, [30729, 58095], 30723,\n    30739, 31050, 31052, 31051, 31045, 31044, 31189, 31181, 31183, 31190,\n    31182, 31360, 31358, 31441, {f: 2, c: 31488}, 31866, {f: 2, c: 31864},\n    {f: 3, c: 31871}, 32003, 32008, 32001, 32600, 32657, 32653, 32702, 32775,\n    {f: 2, c: 32782}, 32788, 32823, 32984, 32967, 32992, 32977, 32968, 32962,\n    32976, 32965, 32995, 32985, 32988, 32970, 32981, 32969, 32975, 32983,\n    32998, 32973, 33279, 33313, 33428, 33497, 33534, 33529, 33543, 33512,\n    33536, 33493, 33594, 33515, 33494, 33524, 33516, 33505, 33522, 33525,\n    33548, 33531, 33526, 33520, 33514, 33508, 33504, 33530, 33523, 33517,\n    34423, 34420, 34428, 34419, 34881, 34894, 34919, 34922, 34921, 35283,\n    35332, 35335, 36210, 36835, 36833, 36846, 36832, 37105, 37053, 37055,\n    37077, 37061, 37054, 37063, 37067, 37064, [37332, 60294], 37331, 38484,\n    38479, 38481, 38483, 38474, 38478, 20510, 20485, 20487, 20499, 20514,\n    20528, 20507, 20469, 20468, 20531, 20535, 20524, {f: 2, c: 20470}, 20503,\n    20508, 20512, 20519, 20533, 20527, 20529, 20494, 20826, 20884, 20883,\n    20938, {f: 2, c: 20932}, 20936, 20942, 21089, 21082, 21074,\n    {f: 2, c: 21086}, 21077, 21090, 21197, 21262, 21406, 21798, 21730, 21783,\n    21778, 21735, 21747, 21732, 21786, 21759, 21764, 21768, 21739, 21777,\n    21765, 21745, 21770, 21755, {f: 2, c: 21751}, 21728, 21774, 21763, 21771,\n    {f: 2, c: 22273}, 22476, 22578, 22485, 22482, 22458, 22470, 22461, 22460,\n    22456, 22454, 22463, 22471, 22480, 22457, 22465, 22798, 22858, 23065,\n    23062, {f: 2, c: 23085}, 23061, 23055, 23063, 23050, 23070, 23091, 23404,\n    23463, 23469, 23468, 23555, 23638, 23636, 23788, 23807, 23790, 23793,\n    23799, 23808, 23801, 24105, 24104, 24232, 24238, 24234, 24236, 24371,\n    24368, 24423, 24669, 24666, 24679, 24641, 24738, 24712, 24704, 24722,\n    24705, 24733, 24707, 24725, 24731, 24727, 24711, 24732, 24718, 25113,\n    25158, 25330, 25360, 25430, 25388, {f: 2, c: 25412}, 25398, 25411, 25572,\n    25401, 25419, 25418, 25404, 25385, 25409, 25396, 25432, 25428, 25433,\n    25389, 25415, 25395, 25434, 25425, 25400, 25431, 25408, 25416, 25930,\n    25926, 26054, {f: 2, c: 26051}, 26050, 26186, 26207, 26183, 26193,\n    {f: 2, c: 26386}, 26655, 26650, 26697, {f: 2, c: 26674}, 26683, 26699,\n    26703, 26646, 26673, 26652, 26677, 26667, 26669, 26671, 26702, 26692,\n    26676, 26653, 26642, 26644, 26662, 26664, 26670, 26701, 26682, 26661,\n    26656, 27436, 27439, 27437, 27441, 27444, 27501, 32898, 27528, 27622,\n    27620, 27624, 27619, 27618, 27623, 27685, 28026, {f: 2, c: 28003}, 28022,\n    27917, 28001, 28050, 27992, 28002, 28013, 28015, 28049, 28045, 28143,\n    28031, 28038, 27998, [28007, 59078], 28000, 28055, 28016, 28028, 27999,\n    28034, 28056, 27951, 28008, 28043, 28030, 28032, 28036, 27926, 28035,\n    28027, 28029, 28021, 28048, 28892, 28883, 28881, 28893, 28875, 32569,\n    28898, 28887, 28882, 28894, 28896, 28884, 28877, {f: 3, c: 28869}, 28890,\n    28878, 28897, 29250, 29304, 29303, 29302, 29440, 29434, 29428, 29438,\n    29430, 29427, 29435, 29441, 29651, 29657, 29669, 29654, 29628, 29671,\n    29667, 29673, 29660, 29650, 29659, 29652, 29661, 29658, {f: 2, c: 29655},\n    29672, {f: 2, c: 29918}, {f: 2, c: 29940}, 29985, 30043, 30047, 30128,\n    30145, 30139, 30148, 30144, 30143, 30134, 30138, 30346, 30409, 30493,\n    30491, 30480, 30483, 30482, 30499, 30481, 30485, {f: 2, c: 30489}, 30498,\n    30503, 30755, 30764, 30754, 30773, 30767, 30760, 30766, 30763, 30753,\n    30761, 30771, 30762, 30769, 31060, 31067, 31055, 31068, 31059, 31058,\n    31057, {f: 2, c: 31211}, 31200, 31214, 31213, 31210, 31196, 31198, 31197,\n    31366, 31369, 31365, {f: 2, c: 31371}, 31370, 31367, 31448, 31504, 31492,\n    31507, 31493, 31503, 31496, 31498, 31502, 31497, 31506, 31876, 31889,\n    31882, 31884, 31880, 31885, 31877, 32030, 32029, 32017, 32014, 32024,\n    32022, 32019, 32031, 32018, 32015, 32012, 32604, 32609, 32606, 32608,\n    32605, 32603, 32662, 32658, 32707, 32706, 32704, 32790, 32830, 32825,\n    33018, 33010, 33017, 33013, 33025, 33019, 33024, 33281, 33327, 33317,\n    33587, 33581, 33604, 33561, 33617, 33573, 33622, 33599, 33601, 33574,\n    33564, 33570, 33602, 33614, 33563, 33578, 33544, 33596, 33613, 33558,\n    33572, 33568, 33591, 33583, 33577, 33607, 33605, 33612, 33619, 33566,\n    33580, 33611, 33575, 33608, 34387, 34386, 34466, 34472, 34454, 34445,\n    34449, 34462, 34439, 34455, 34438, 34443, 34458, 34437, 34469, 34457,\n    34465, 34471, 34453, 34456, 34446, 34461, 34448, 34452, {f: 2, c: 34883},\n    34925, {f: 2, c: 34933}, 34930, 34944, 34929, 34943, 34927, 34947, 34942,\n    34932, 34940, 35346, 35911, 35927, 35963, 36004, 36003, 36214, 36216,\n    36277, 36279, 36278, 36561, 36563, 36862, 36853, 36866, 36863, 36859,\n    36868, 36860, 36854, 37078, 37088, {f: 2, c: 37081}, 37091, 37087, 37093,\n    37080, 37083, 37079, 37084, 37092, 37200, {f: 2, c: 37198}, 37333, 37346,\n    37338, 38492, 38495, 38588, 39139, [12221, 39647], [12223, 39727], 20095,\n    20592, 20586, 20577, 20574, 20576, 20563, 20555, 20573, 20594, 20552,\n    20557, 20545, 20571, 20554, 20578, 20501, 20549, 20575, 20585, 20587,\n    {f: 2, c: 20579}, 20550, 20544, 20590, 20595, 20567, 20561, 20944, 21099,\n    21101, 21100, 21102, 21206, 21203, 21293, 21404, {f: 2, c: 21877}, 21820,\n    21837, 21840, 21812, 21802, 21841, 21858, 21814, 21813, 21808, 21842,\n    21829, 21772, 21810, 21861, 21838, 21817, 21832, 21805, 21819, 21824,\n    21835, 22282, 22279, 22523, 22548, 22498, 22518, 22492, 22516, 22528,\n    22509, 22525, 22536, 22520, 22539, 22515, 22479, 22535, 22510, 22499,\n    22514, 22501, 22508, 22497, 22542, 22524, 22544, 22503, 22529, 22540,\n    22513, 22505, 22512, 22541, 22532, 22876, 23136, 23128, 23125,\n    [23143, 60437], 23134, 23096, 23093, 23149, 23120, 23135, 23141, 23148,\n    23123, 23140, 23127, 23107, 23133, 23122, 23108, 23131, 23112, 23182,\n    23102, 23117, 23097, 23116, 23152, 23145, 23111, 23121, 23126, 23106,\n    23132, 23410, 23406, 23489, 23488, 23641, 23838, 23819, 23837, 23834,\n    23840, 23820, 23848, 23821, 23846, 23845, 23823, 23856, 23826, 23843,\n    23839, 23854, 24126, 24116, 24241, 24244, 24249, {f: 2, c: 24242}, 24374,\n    24376, 24475, 24470, 24479, 24714, 24720, 24710, 24766, 24752, 24762,\n    {f: 2, c: 24787}, 24783, 24804, 24793, 24797, 24776, 24753, 24795, 24759,\n    24778, 24767, 24771, 24781, 24768, 25394, 25445, 25482, 25474, 25469,\n    25533, 25502, 25517, 25501, 25495, 25515, 25486, 25455, 25479, 25488,\n    25454, 25519, 25461, 25500, 25453, 25518, 25468, 25508, 25403, 25503,\n    25464, 25477, 25473, 25489, 25485, 25456, 25939, 26061, 26213, 26209,\n    26203, 26201, 26204, 26210, 26392, 26745, 26759, 26768, 26780,\n    {f: 2, c: 26733}, 26798, 26795, 26966, 26735, 26787, 26796, 26793, 26741,\n    26740, 26802, 26767, 26743, 26770, 26748, 26731, 26738, 26794, 26752,\n    26737, 26750, 26779, 26774, 26763, 26784, 26761, 26788, 26744, 26747,\n    26769, 26764, 26762, 26749, 27446, 27443, {f: 2, c: 27447}, 27537, 27535,\n    {f: 2, c: 27533}, 27532, 27690, 28096, 28075, 28084, 28083, 28276, 28076,\n    28137, 28130, 28087, 28150, 28116, 28160, 28104, 28128, 28127, 28118,\n    28094, 28133, {f: 2, c: 28124}, 28123, 28148, 28106, 28093, 28141, 28144,\n    28090, 28117, 28098, 28111, 28105, 28112, 28146, 28115, 28157, 28119,\n    28109, 28131, 28091, 28922, 28941, 28919, 28951, 28916, 28940, 28912,\n    28932, 28915, 28944, 28924, 28927, 28934, 28947, 28928, 28920, 28918,\n    28939, 28930, 28942, 29310, {f: 2, c: 29307}, 29311, 29469, 29463, 29447,\n    29457, 29464, 29450, 29448, 29439, 29455, 29470, 29576, 29686, 29688,\n    29685, 29700, 29697, 29693, 29703, 29696, 29690, 29692, 29695, 29708,\n    29707, 29684, 29704, 30052, 30051, 30158, 30162, 30159, {f: 2, c: 30155},\n    30161, 30160, 30351, 30345, 30419, 30521, 30511, 30509, {f: 2, c: 30513},\n    30516, 30515, 30525, 30501, 30523, 30517, 30792, 30802, 30793, 30797,\n    30794, 30796, 30758, 30789, 30800, 31076, 31079, {f: 2, c: 31081}, 31075,\n    31083, 31073, 31163, 31226, 31224, {f: 2, c: 31222}, 31375, 31380, 31376,\n    31541, 31547, 31540, 31525, 31536, 31522, 31524, 31539, 31512, 31530,\n    31517, 31537, 31531, 31533, 31535, 31538, 31544, 31514, 31523, 31892,\n    31896, 31894, 31907, 32053, 32061, 32056, 32054, 32058, 32069, 32044,\n    32041, 32065, 32071, {f: 2, c: 32062}, 32074, 32059, 32040, 32611, 32661,\n    {f: 2, c: 32668}, 32667, {f: 2, c: 32714}, 32717, {f: 2, c: 32720}, 32711,\n    32719, 32713, 32799, 32798, 32795, 32839, 32835, 32840, 33048, 33061,\n    33049, 33051, 33069, 33055, 33068, 33054, 33057, 33045, 33063, 33053,\n    33058, 33297, 33336, 33331, 33338, 33332, 33330, 33396, 33680, 33699,\n    33704, 33677, 33658, 33651, 33700, 33652, 33679, 33665, 33685, 33689,\n    33653, 33684, 33705, 33661, 33667, 33676, 33693, 33691, 33706, 33675,\n    33662, 33701, 33711, 33672, 33687, 33712, 33663, 33702, 33671, 33710,\n    33654, 34393, 34390, 34495, 34487, 34498, 34497, 34501, 34490, 34480,\n    34504, 34489, 34483, 34488, 34508, 34484, {f: 2, c: 34491}, 34499,\n    {f: 2, c: 34493}, 34898, 34953, 34965, 34984, 34978, 34986, 34970, 34961,\n    34977, 34975, 34968, 34983, 34969, 34971, 34967, 34980, 34988, 34956,\n    34963, 34958, 35202, 35286, 35289, 35285, 35376, 35367, 35372, 35358,\n    35897, 35899, {f: 2, c: 35932}, 35965, 36005, 36221, 36219, 36217, 36284,\n    36290, 36281, 36287, 36289, 36568, 36574, 36573, 36572, 36567,\n    {f: 2, c: 36576}, 36900, 36875, 36881, 36892, 36876, 36897, 37103, 37098,\n    37104, 37108, {f: 2, c: 37106}, 37076, {f: 2, c: 37099}, 37097, 37206,\n    37208, 37210, 37203, 37205, 37356, 37364, 37361, 37363, 37368, 37348,\n    37369, {f: 2, c: 37354}, 37367, 37352, 37358, 38266, 38278, 38280, 38524,\n    38509, 38507, 38513, 38511, 38591, 38762, 38916, 39141, 39319, 20635,\n    20629, 20628, 20638, 20619, 20643, 20611, 20620, 20622, 20637, 20584,\n    20636, 20626, 20610, 20615, 20831, 20948, 21266, 21265, 21412, 21415,\n    21905, 21928, 21925, 21933, 21879, 22085, 21922, 21907, 21896, 21903,\n    21941, 21889, 21923, 21906, 21924, 21885, 21900, 21926, 21887, 21909,\n    21921, 21902, 22284, 22569, 22583, 22553, 22558, 22567, 22563, 22568,\n    22517, 22600, 22565, 22556, 22555, 22579, 22591, 22582, 22574, 22585,\n    22584, 22573, 22572, 22587, 22881, 23215, 23188, 23199, 23162, 23202,\n    23198, 23160, 23206, 23164, 23205, 23212, 23189, 23214, 23095, 23172,\n    23178, 23191, 23171, 23179, 23209, 23163, 23165, 23180, 23196, 23183,\n    23187, 23197, 23530, 23501, 23499, 23508, 23505, 23498, 23502, 23564,\n    23600, 23863, 23875, 23915, 23873, 23883, 23871, 23861, 23889, 23886,\n    23893, 23859, 23866, 23890, 23869, 23857, 23897, 23874, 23865, 23881,\n    23864, 23868, 23858, 23862, 23872, 23877, 24132, 24129, [24408, 57673],\n    24486, 24485, 24491, 24777, 24761, 24780, 24802, 24782, 24772, 24852,\n    24818, 24842, 24854, 24837, 24821, 24851, 24824, 24828, 24830, 24769,\n    24835, 24856, 24861, 24848, 24831, 24836, 24843, 25162, 25492, 25521,\n    25520, 25550, 25573, 25576, 25583, 25539, 25757, 25587, 25546, 25568,\n    25590, 25557, 25586, 25589, 25697, 25567, 25534, 25565, 25564, 25540,\n    25560, 25555, 25538, 25543, 25548, 25547, 25544, 25584, 25559, 25561,\n    25906, 25959, 25962, 25956, 25948, 25960, 25957, 25996, {f: 2, c: 26013},\n    26030, 26064, 26066, 26236, 26220, 26235, 26240, 26225, 26233, 26218,\n    26226, 26369, 26892, 26835, 26884, 26844, 26922, 26860, 26858, 26865,\n    26895, 26838, 26871, 26859, 26852, 26870, 26899, 26896, 26867, 26849,\n    26887, 26828, 26888, 26992, 26804, 26897, 26863, 26822, 26900, 26872,\n    26832, 26877, 26876, 26856, 26891, 26890, 26903, 26830, 26824,\n    {f: 2, c: 26845}, 26854, 26868, 26833, 26886, 26836, 26857, 26901, 26917,\n    26823, 27449, 27451, 27455, 27452, 27540, 27543, 27545, 27541, 27581,\n    27632, {f: 2, c: 27634}, 27696, 28156, {f: 2, c: 28230}, 28191, 28233,\n    28296, {f: 2, c: 28220}, 28229, 28258, 28203, 28223, 28225, 28253, 28275,\n    28188, 28211, 28235, 28224, 28241, 28219, 28163, 28206, 28254, 28264,\n    28252, 28257, 28209, 28200, 28256, 28273, 28267, 28217, 28194, 28208,\n    28243, 28261, 28199, 28280, 28260, 28279, 28245, 28281, 28242, 28262,\n    {f: 2, c: 28213}, 28250, 28960, 28958, 28975, 28923, 28974, 28977, 28963,\n    28965, 28962, 28978, 28959, 28968, 28986, 28955, 29259, 29274,\n    {f: 2, c: 29320}, 29318, 29317, 29323, 29458, 29451, 29488, 29474, 29489,\n    29491, 29479, 29490, 29485, 29478, 29475, 29493, 29452, 29742, 29740,\n    29744, 29739, 29718, 29722, 29729, 29741, 29745, 29732, 29731, 29725,\n    29737, 29728, 29746, 29947, 29999, 30063, 30060, 30183, 30170, 30177,\n    30182, 30173, 30175, 30180, 30167, 30357, 30354, 30426, {f: 2, c: 30534},\n    30532, 30541, 30533, 30538, 30542, {f: 2, c: 30539}, 30686, 30700, 30816,\n    {f: 2, c: 30820}, 30812, 30829, 30833, 30826, 30830, 30832, 30825, 30824,\n    30814, 30818, 31092, 31091, 31090, 31088, 31234, 31242, 31235, 31244,\n    31236, 31385, 31462, 31460, 31562, 31559, 31556, 31560, 31564, 31566,\n    31552, 31576, 31557, 31906, 31902, 31912, 31905, 32088, 32111, 32099,\n    32083, 32086, 32103, 32106, 32079, 32109, 32092, 32107, 32082, 32084,\n    32105, 32081, 32095, 32078, {f: 2, c: 32574}, {f: 2, c: 32613}, 32674,\n    {f: 2, c: 32672}, 32727, 32849, {f: 2, c: 32847}, 33022, 32980, 33091,\n    33098, 33106, 33103, 33095, 33085, 33101, 33082, 33254, 33262,\n    {f: 3, c: 33271}, 33284, {f: 2, c: 33340}, 33343, 33397, 33595,\n    [33743, 60382], 33785, 33827, 33728, 33768, 33810, 33767, 33764, 33788,\n    33782, 33808, 33734, 33736, 33771, 33763, 33727, 33793, 33757, 33765,\n    33752, 33791, 33761, 33739, 33742, 33750, 33781, 33737, 33801,\n    [33807, 58332], 33758, 33809, 33798, 33730, 33779, 33749, 33786, 33735,\n    33745, 33770, 33811, 33690, 33731, 33772, 33774, 33732, 33787, 33751,\n    33762, 33819, 33755, 33790, 34520, 34530, 34534, 34515, 34531, 34522,\n    34538, 34525, 34539, 34524, 34540, 34537, 34519, 34536, 34513, 34888,\n    34902, 34901, 35002, 35031, 35001, 35000, 35008, 35006, 34998, 35004,\n    34999, 35005, 34994, 35073, 35017, 35221, 35224, 35223, 35293,\n    {f: 2, c: 35290}, 35406, 35405, 35385, 35417, 35392, {f: 2, c: 35415},\n    {f: 2, c: 35396}, 35410, 35400, 35409, 35402, 35404, 35407, 35935, 35969,\n    35968, 36026, 36030, 36016, 36025, 36021, 36228, 36224, 36233, 36312,\n    36307, 36301, 36295, 36310, 36316, 36303, 36309, 36313, 36296, 36311,\n    36293, 36591, 36599, 36602, 36601, 36582, 36590, 36581, 36597,\n    {f: 2, c: 36583}, 36598, 36587, 36593, 36588, 36596, 36585, 36909, 36916,\n    36911, 37126, 37164, [37124, 60367], 37119, 37116, 37128, 37113, 37115,\n    37121, 37120, 37127, 37125, 37123, 37217, 37220, 37215, 37218, 37216,\n    37377, 37386, 37413, 37379, 37402, 37414, 37391, 37388, 37376, 37394,\n    37375, 37373, 37382, 37380, 37415, 37378, 37404, 37412, 37401, 37399,\n    37381, 37398, 38267, 38285, 38284, 38288, 38535, 38526, {f: 2, c: 38536},\n    38531, 38528, 38594, 38600, 38595, 38641, 38640, 38764, 38768, 38766,\n    38919, 39081, 39147, 40166, [12235, 40697], {f: 2, c: 20099}, 20150, 20669,\n    20671, 20678, 20654, 20676, 20682, 20660, 20680, 20674, 20656, 20673,\n    20666, 20657, 20683, 20681, 20662, 20664, 20951, 21114, 21112,\n    {f: 2, c: 21115}, 21955, 21979, 21964, 21968, 21963, 21962, 21981,\n    [21952, 64013], 21972, 21956, 21993, 21951, 21970, 21901, 21967, 21973,\n    21986, 21974, 21960, 22002, 21965, 21977, 21954, 22292, 22611, 22632,\n    22628, 22607, 22605, 22601, 22639, 22613, 22606, 22621, 22617, 22629,\n    22619, 22589, 22627, 22641, 22780, 23239, 23236, 23243, 23226, 23224,\n    23217, 23221, 23216, 23231, 23240, 23227, 23238, 23223, 23232, 23242,\n    23220, 23222, 23245, 23225, 23184, 23510, {f: 2, c: 23512}, 23583, 23603,\n    23921, 23907, 23882, 23909, 23922, 23916, 23902, 23912, 23911, 23906,\n    24048, 24143, 24142, 24138, 24141, 24139, 24261, 24268, 24262, 24267,\n    24263, 24384, 24495, 24493, 24823, {f: 2, c: 24905}, 24875, 24901, 24886,\n    24882, 24878, 24902, 24879, 24911, 24873, 24896, 25120, 37224, 25123,\n    25125, 25124, 25541, 25585, 25579, 25616, 25618, 25609, 25632, 25636,\n    25651, 25667, 25631, 25621, 25624, 25657, 25655, {f: 2, c: 25634}, 25612,\n    25638, 25648, 25640, 25665, 25653, 25647, 25610, 25626, 25664, 25637,\n    25639, 25611, 25575, 25627, 25646, 25633, 25614, 25967, 26002, 26067,\n    26246, 26252, 26261, 26256, 26251, 26250, 26265, 26260, 26232, 26400,\n    26982, 26975, 26936, 26958, 26978, 26993, 26943, 26949, 26986, 26937,\n    26946, 26967, 26969, 27002, {f: 2, c: 26952}, 26933, 26988, 26931, 26941,\n    26981, 26864, 27000, 26932, 26985, 26944, 26991, 26948, 26998, 26968,\n    26945, 26996, 26956, 26939, 26955, 26935, 26972, 26959, 26961, 26930,\n    26962, 26927, 27003, 26940, 27462, 27461, 27459, 27458, 27464, 27457,\n    27547, {f: 2, c: 27643}, 27641, {f: 2, c: 27639}, 28315, 28374, 28360,\n    28303, 28352, 28319, {f: 2, c: 28307}, 28320, 28337, 28345, 28358, 28370,\n    28349, 28353, 28318, 28361, 28343, 28336, 28365, 28326, 28367, 28338,\n    28350, 28355, 28380, 28376, 28313, 28306, 28302, 28301, 28324, 28321,\n    28351, 28339, 28368, 28362, 28311, 28334, 28323, 28999, 29012, 29010,\n    29027, 29024, 28993, 29021, [29026, 61080], 29042, 29048, 29034, 29025,\n    28994, 29016, 28995, 29003, 29040, 29023, 29008, 29011, 28996, 29005,\n    29018, 29263, 29325, 29324, 29329, 29328, 29326, 29500, 29506, 29499,\n    29498, 29504, 29514, 29513, 29764, {f: 2, c: 29770}, 29778, 29777, 29783,\n    29760, {f: 2, c: 29775}, 29774, 29762, 29766, 29773, 29780, 29921, 29951,\n    29950, 29949, 29981, 30073, 30071, 27011, 30191, 30223, 30211, 30199,\n    30206, 30204, [30201, 60782], 30200, 30224, 30203, 30198, 30189, 30197,\n    30205, 30361, 30389, 30429, 30549, {f: 2, c: 30559}, 30546, 30550, 30554,\n    30569, 30567, 30548, 30553, 30573, 30688, 30855, 30874, 30868, 30863,\n    30852, 30869, {f: 2, c: 30853}, 30881, 30851, 30841, 30873, 30848, 30870,\n    30843, 31100, 31106, 31101, 31097, 31249, {f: 2, c: 31256}, 31250, 31255,\n    31253, 31266, 31251, 31259, 31248, 31395, 31394, 31390, 31467, 31590,\n    31588, 31597, 31604, 31593, 31602, 31589, 31603, 31601, 31600, 31585,\n    31608, 31606, 31587, 31922, 31924, 31919, 32136, 32134, 32128, 32141,\n    32127, 32133, 32122, 32142, 32123, 32131, 32124, 32140, 32148, 32132,\n    32125, 32146, 32621, 32619, {f: 2, c: 32615}, 32620, 32678, 32677, 32679,\n    {f: 2, c: 32731}, 32801, 33124, 33120, 33143, 33116, 33129, 33115, 33122,\n    33138, 26401, 33118, 33142, 33127, 33135, 33092, 33121, 33309, 33353,\n    33348, 33344, 33346, 33349, 34033, 33855, 33878, 33910, 33913, 33935,\n    33933, 33893, 33873, 33856, 33926, 33895, 33840, 33869, 33917, 33882,\n    33881, 33908, 33907, 33885, 34055, 33886, 33847, 33850, 33844, 33914,\n    33859, 33912, 33842, 33861, 33833, 33753, 33867, 33839, 33858, 33837,\n    33887, 33904, 33849, 33870, 33868, 33874, 33903, 33989, 33934, 33851,\n    33863, 33846, 33843, 33896, 33918, 33860, 33835, 33888, 33876, 33902,\n    33872, 34571, 34564, 34551, 34572, 34554, 34518, 34549, 34637, 34552,\n    34574, 34569, 34561, 34550, 34573, 34565, 35030, 35019, {f: 2, c: 35021},\n    35038, 35035, 35034, 35020, 35024, 35205, 35227, 35295, 35301, 35300,\n    35297, 35296, 35298, 35292, 35302, 35446, 35462, 35455, 35425, 35391,\n    35447, 35458, 35460, 35445, 35459, 35457, 35444, 35450, 35900, 35915,\n    35914, 35941, 35940, 35942, 35974, {f: 2, c: 35972}, 36044,\n    {f: 2, c: 36200}, 36241, 36236, {f: 2, c: 36238}, 36237, {f: 2, c: 36243},\n    36240, 36242, 36336, 36320, 36332, 36337, 36334, 36304, 36329, 36323,\n    36322, 36327, 36338, 36331, 36340, 36614, 36607, 36609, 36608, 36613,\n    {f: 2, c: 36615}, 36610, [36619, 60507], 36946, 36927, 36932, 36937, 36925,\n    37136, 37133, 37135, 37137, 37142, 37140, 37131, 37134, {f: 2, c: 37230},\n    37448, 37458, 37424, 37434, 37478, 37427, 37477, 37470, 37507, 37422,\n    37450, 37446, 37485, 37484, 37455, 37472, 37479, 37487, 37430, 37473,\n    37488, 37425, 37460, 37475, 37456, 37490, 37454, 37459, 37452, 37462,\n    37426, 38303, 38300, 38302, 38299, {f: 2, c: 38546}, 38545, 38551, 38606,\n    38650, 38653, 38648, 38645, 38771, {f: 2, c: 38775}, 38770, 38927,\n    {f: 2, c: 38925}, 39084, 39158, 39161, 39343, 39346, 39344, 39349, 39597,\n    39595, 39771, 40170, 40173, 40167, 40576, [12236, 40701], 20710, 20692,\n    20695, 20712, 20723, 20699, 20714, 20701, 20708, 20691, 20716, 20720,\n    20719, 20707, 20704, 20952, {f: 2, c: 21120}, 21225, 21227, 21296, 21420,\n    22055, 22037, 22028, 22034, 22012, 22031, 22044, 22017, 22035, 22018,\n    22010, 22045, 22020, 22015, 22009, 22665, 22652, 22672, 22680, 22662,\n    22657, 22655, 22644, 22667, 22650, 22663, 22673, 22670, 22646, 22658,\n    22664, 22651, 22676, 22671, 22782, 22891, 23260, 23278, 23269, 23253,\n    23274, 23258, 23277, 23275, 23283, 23266, 23264, 23259, 23276, 23262,\n    23261, 23257, 23272, 23263, 23415, 23520, 23523, 23651, 23938, 23936,\n    23933, 23942, 23930, 23937, 23927, 23946, 23945, 23944, 23934, 23932,\n    23949, 23929, 23935, {f: 2, c: 24152}, 24147, 24280, 24273, 24279, 24270,\n    24284, 24277, 24281, 24274, 24276, 24388, 24387, 24431, 24502, 24876,\n    24872, 24897, 24926, 24945, 24947, {f: 2, c: 24914}, 24946, 24940, 24960,\n    24948, 24916, 24954, 24923, 24933, 24891, 24938, 24929, 24918, 25129,\n    25127, 25131, 25643, 25677, 25691, 25693, 25716, 25718, {f: 2, c: 25714},\n    25725, 25717, 25702, 25766, 25678, 25730, 25694, 25692, 25675, 25683,\n    25696, 25680, 25727, 25663, 25708, 25707, 25689, 25701, 25719, 25971,\n    26016, 26273, 26272, 26271, 26373, 26372, 26402, 27057, 27062, 27081,\n    27040, 27086, 27030, 27056, 27052, 27068, 27025, 27033, 27022, 27047,\n    27021, 27049, 27070, 27055, 27071, 27076, 27069, 27044, 27092, 27065,\n    27082, 27034, 27087, 27059, 27027, 27050, 27041, 27038, 27097, 27031,\n    27024, 27074, 27061, 27045, 27078, 27466, 27469, 27467, {f: 3, c: 27550},\n    {f: 2, c: 27587}, 27646, 28366, 28405, 28401, 28419, 28453, 28408, 28471,\n    28411, 28462, 28425, 28494, {f: 2, c: 28441}, 28455, 28440, 28475, 28434,\n    28397, 28426, 28470, 28531, 28409, 28398, 28461, 28480, 28464, 28476,\n    28469, 28395, 28423, 28430, 28483, 28421, 28413, 28406, 28473, 28444,\n    28412, 28474, 28447, 28429, 28446, 28424, 28449, 29063, 29072, 29065,\n    29056, 29061, 29058, 29071, 29051, 29062, 29057, 29079, 29252, 29267,\n    29335, 29333, 29331, 29507, 29517, 29521, 29516, 29794, 29811, 29809,\n    29813, 29810, 29799, 29806, 29952, {f: 2, c: 29954}, 30077, 30096, 30230,\n    30216, 30220, 30229, 30225, 30218, 30228, 30392, 30593, 30588, 30597,\n    30594, 30574, 30592, 30575, 30590, 30595, 30898, 30890, 30900, 30893,\n    30888, 30846, 30891, 30878, 30885, 30880, 30892, 30882, 30884, 31128,\n    {f: 2, c: 31114}, 31126, 31125, 31124, 31123, 31127, 31112, 31122, 31120,\n    31275, 31306, 31280, 31279, 31272, 31270, 31400, {f: 2, c: 31403}, 31470,\n    31624, 31644, 31626, 31633, 31632, 31638, 31629, 31628, 31643, 31630,\n    31621, 31640, 21124, 31641, 31652, 31618, 31931, 31935, 31932, 31930,\n    32167, 32183, 32194, 32163, 32170, 32193, 32192, 32197, 32157, 32206,\n    32196, 32198, {f: 2, c: 32203}, 32175, 32185, 32150, 32188, 32159, 32166,\n    32174, 32169, 32161, 32201, 32627, {f: 2, c: 32738}, 32741, 32734, 32804,\n    32861, 32860, 33161, 33158, 33155, 33159, 33165, 33164, 33163, 33301,\n    33943, 33956, 33953, 33951, 33978, 33998, 33986, 33964, 33966, 33963,\n    33977, 33972, 33985, 33997, 33962, 33946, 33969, 34000, 33949, 33959,\n    33979, 33954, 33940, 33991, 33996, 33947, 33961, 33967, [33960, 58327],\n    34006, 33944, 33974, 33999, 33952, 34007, 34004, 34002, 34011, 33968,\n    33937, 34401, 34611, 34595, 34600, 34667, 34624, 34606, 34590, 34593,\n    34585, 34587, 34627, 34604, 34625, 34622, 34630, 34592, 34610, 34602,\n    34605, 34620, 34578, 34618, 34609, 34613, 34626, {f: 2, c: 34598}, 34616,\n    34596, 34586, 34608, 34577, 35063, 35047, {f: 2, c: 35057}, 35066, 35070,\n    35054, 35068, 35062, 35067, 35056, 35052, 35051, 35229, 35233, 35231,\n    35230, 35305, 35307, 35304, 35499, 35481, 35467, 35474, 35471, 35478,\n    35901, {f: 2, c: 35944}, 36053, 36047, 36055, 36246, 36361, 36354, 36351,\n    36365, 36349, 36362, 36355, 36359, 36358, 36357, 36350, 36352, 36356,\n    {f: 2, c: 36624}, 36622, 36621, 37155, 37148, 37152, 37154, 37151, 37149,\n    37146, 37156, 37153, 37147, 37242, 37234, 37241, 37235, 37541, 37540,\n    37494, 37531, 37498, 37536, 37524, 37546, 37517, 37542, 37530, 37547,\n    37497, 37527, 37503, 37539, 37614, 37518, 37506, 37525, 37538, 37501,\n    37512, 37537, 37514, 37510, 37516, 37529, 37543, 37502, 37511, 37545,\n    37533, 37515, 37421, 38558, 38561, 38655, 38744, 38781, 38778, 38782,\n    38787, 38784, 38786, 38779, 38788, 38785, 38783, 38862, 38861, 38934,\n    {f: 2, c: 39085}, 39170, 39168, 39175, 39325, 39324, 39363, 39353, 39355,\n    39354, 39362, 39357, 39367, 39601, 39651, 39655, {f: 2, c: 39742},\n    {f: 2, c: 39776}, 39775, {f: 2, c: 40177}, 40181, 40615, 20735, 20739,\n    20784, 20728, {f: 2, c: 20742}, 20726, 20734, {f: 2, c: 20747}, 20733,\n    20746, {f: 2, c: 21131}, 21233, 21231, 22088, 22082, 22092, 22069, 22081,\n    22090, 22089, 22086, 22104, 22106, 22080, 22067, 22077, 22060, 22078,\n    22072, 22058, 22074, 22298, 22699, 22685, 22705, 22688, 22691, 22703,\n    22700, 22693, 22689, 22783, 23295, 23284, 23293, 23287, 23286, 23299,\n    23288, 23298, 23289, 23297, 23303, 23301, 23311, 23655, 23961, 23959,\n    23967, 23954, 23970, 23955, 23957, 23968, 23964, 23969, 23962, 23966,\n    24169, 24157, 24160, 24156, 32243, 24283, 24286, 24289, 24393, 24498,\n    24971, 24963, 24953, 25009, 25008, 24994, 24969, 24987, 24979, 25007,\n    25005, 24991, 24978, 25002, 24993, 24973, 24934, 25011, 25133, 25710,\n    25712, 25750, 25760, 25733, 25751, 25756, 25743, 25739, 25738, 25740,\n    25763, 25759, 25704, 25777, 25752, 25974, 25978, 25977, 25979,\n    {f: 2, c: 26034}, 26293, 26288, 26281, 26290, 26295, 26282, 26287, 27136,\n    27142, 27159, 27109, 27128, 27157, 27121, 27108, 27168, 27135, 27116,\n    27106, 27163, 27165, 27134, 27175, 27122, 27118, 27156, 27127, 27111,\n    27200, 27144, 27110, 27131, 27149, 27132, 27115, 27145, 27140, 27160,\n    27173, 27151, 27126, 27174, 27143, 27124, 27158, 27473, 27557, 27555,\n    27554, 27558, 27649, 27648, 27647, 27650, 28481, 28454, 28542, 28551,\n    28614, 28562, 28557, 28553, 28556, 28514, 28495, 28549, 28506, 28566,\n    28534, 28524, 28546, 28501, 28530, 28498, 28496, 28503, 28564, 28563,\n    28509, 28416, 28513, 28523, 28541, 28519, 28560, 28499, 28555, 28521,\n    28543, 28565, 28515, 28535, 28522, 28539, 29106, 29103, 29083, 29104,\n    29088, 29082, 29097, 29109, 29085, 29093, 29086, 29092, 29089, 29098,\n    29084, 29095, 29107, 29336, 29338, 29528, 29522, {f: 3, c: 29534}, 29533,\n    29531, 29537, 29530, 29529, 29538, 29831, {f: 2, c: 29833}, 29830, 29825,\n    29821, 29829, 29832, 29820, [29817, 58868], 29960, 29959, 30078, 30245,\n    30238, 30233, 30237, 30236, 30243, 30234, 30248, 30235, {f: 3, c: 30364},\n    30363, 30605, 30607, 30601, 30600, 30925, 30907, 30927, 30924, 30929,\n    30926, 30932, 30920, {f: 2, c: 30915}, 30921, 31130, 31137, 31136, 31132,\n    31138, [31131, 59175], 27510, 31289, 31410, 31412, 31411, 31671, 31691,\n    31678, 31660, 31694, 31663, 31673, 31690, 31669, 31941, 31944, 31948,\n    31947, 32247, 32219, 32234, 32231, 32215, 32225, 32259, 32250, 32230,\n    32246, 32241, 32240, 32238, 32223, 32630, 32684, 32688, 32685, 32749,\n    32747, 32746, 32748, 32742, 32744, 32868, 32871, 33187, 33183, 33182,\n    33173, 33186, 33177, 33175, 33302, 33359, 33363, 33362, 33360, 33358,\n    33361, 34084, 34107, 34063, 34048, 34089, 34062, 34057, 34061, 34079,\n    34058, 34087, 34076, 34043, 34091, 34042, 34056, 34060, 34036, 34090,\n    34034, 34069, 34039, 34027, 34035, 34044, 34066, 34026, 34025, 34070,\n    34046, 34088, 34077, 34094, 34050, 34045, 34078, 34038, 34097, 34086,\n    {f: 2, c: 34023}, 34032, 34031, 34041, 34072, 34080, 34096, 34059, 34073,\n    34095, 34402, 34646, {f: 2, c: 34659}, 34679, 34785, 34675, 34648, 34644,\n    34651, 34642, 34657, 34650, 34641, 34654, 34669, 34666, 34640, 34638,\n    34655, 34653, 34671, 34668, 34682, 34670, 34652, 34661, 34639, 34683,\n    34677, 34658, 34663, 34665, 34906, 35077, 35084, 35092, 35083,\n    {f: 3, c: 35095}, 35078, 35094, 35089, 35086, 35081, 35234, 35236, 35235,\n    35309, 35312, 35308, 35535, 35526, 35512, 35539, 35537, {f: 2, c: 35540},\n    35515, 35543, 35518, 35520, 35525, 35544, 35523, 35514, 35517, 35545,\n    35902, 35917, 35983, 36069, 36063, 36057, 36072, 36058, 36061, 36071,\n    36256, 36252, 36257, 36251, 36384, 36387, 36389, 36388, 36398, 36373,\n    36379, 36374, 36369, 36377, {f: 2, c: 36390}, 36372, 36370, 36376, 36371,\n    36380, 36375, 36378, 36652, 36644, 36632, 36634, 36640, 36643,\n    {f: 2, c: 36630}, 36979, 36976, 36975, 36967, 36971, 37167, 37163,\n    {f: 2, c: 37161}, 37170, 37158, 37166, {f: 2, c: 37253}, 37258,\n    {f: 2, c: 37249}, 37252, 37248, 37584, {f: 2, c: 37571}, 37568, 37593,\n    37558, 37583, 37617, 37599, 37592, 37609, 37591, 37597, 37580, 37615,\n    37570, 37608, 37578, 37576, 37582, 37606, 37581, 37589, 37577, 37600,\n    37598, 37607, 37585, 37587, 37557, 37601, 37669, 37574, 37556, 38268,\n    38316, 38315, 38318, 38320, 38564, 38562, 38611, 38661, 38664, 38658,\n    38746, 38794, 38798, 38792, 38864, 38863, 38942, 38941, 38950, 38953,\n    38952, 38944, 38939, 38951, 39090, 39176, 39162, 39185, 39188,\n    {f: 2, c: 39190}, 39189, 39388, 39373, 39375, {f: 2, c: 39379}, 39374,\n    39369, [39382, 60270], 39384, 39371, 39383, 39372, 39603, 39660, 39659,\n    39667, 39666, 39665, 39750, 39747, 39783, 39796, 39793, 39782, 39798,\n    39797, 39792, 39784, 39780, 39788, 40188, 40186, 40189, 40191, 40183,\n    40199, 40192, 40185, 40187, 40200, 40197, 40196, 40579, 40659,\n    {f: 2, c: 40719}, 20764, 20755, 20759, 20762, 20753, 20958, 21300, 21473,\n    22128, 22112, 22126, 22131, 22118, 22115, 22125, 22130, 22110, 22135,\n    22300, 22299, 22728, 22717, 22729, 22719, 22714, 22722, 22716, 22726,\n    23319, 23321, 23323, 23329, 23316, 23315, 23312, 23318, [23336, 59539],\n    23322, 23328, 23326, 23535, 23980, 23985, 23977, 23975, 23989, 23984,\n    23982, 23978, 23976, 23986, 23981, 23983, 23988, {f: 2, c: 24167}, 24166,\n    24175, 24297, 24295, 24294, 24296, 24293, 24395, 24508, 24507, 24989,\n    25000, 24982, 25029, 25012, 25030, 25025, 25036, 25018, 25023, 25016,\n    24972, 25815, 25814, 25808, 25807, 25801, 25789, 25737, 25795, 25819,\n    25843, 25817, 25907, 25983, 25980, 26018, 26312, 26302, 26304,\n    {f: 2, c: 26314}, 26319, 26301, 26299, 26298, 26316, 26403, 27188, 27238,\n    27209, 27239, 27186, 27240, 27198, 27229, 27245, 27254, 27227, 27217,\n    27176, 27226, 27195, 27199, 27201, 27242, 27236, 27216, 27215, 27220,\n    27247, 27241, 27232, 27196, 27230, 27222, 27221, {f: 2, c: 27213}, 27206,\n    27477, 27476, 27478, 27559, {f: 2, c: 27562}, 27592, 27591, 27652, 27651,\n    27654, 28589, 28619, 28579, 28615, 28604, 28622, 28616, 28510, 28612,\n    28605, 28574, 28618, 28584, 28676, 28581, 28590, 28602, 28588, 28586,\n    28623, 28607, 28600, 28578, 28617, 28587, 28621, 28591, 28594, 28592,\n    29125, 29122, 29119, 29112, 29142, {f: 2, c: 29120}, 29131, 29140, 29130,\n    29127, 29135, 29117, 29144, 29116, 29126, {f: 2, c: 29146},\n    {f: 2, c: 29341}, 29545, {f: 2, c: 29542}, 29548, 29541, 29547, 29546,\n    29823, 29850, 29856, 29844, 29842, 29845, 29857, 29963, 30080, 30255,\n    30253, 30257, 30269, 30259, 30268, 30261, 30258, 30256, 30395, 30438,\n    30618, 30621, 30625, 30620, 30619, {f: 2, c: 30626}, 30613, 30617, 30615,\n    30941, 30953, 30949, 30954, 30942, 30947, 30939, {f: 2, c: 30945}, 30957,\n    {f: 2, c: 30943}, 31140, 31300, 31304, 31303, 31414, 31416, 31413, 31409,\n    31415, 31710, 31715, 31719, 31709, 31701, 31717, 31706, 31720, 31737,\n    31700, 31722, 31714, 31708, 31723, 31704, 31711, 31954, 31956, 31959,\n    {f: 2, c: 31952}, 32274, 32289, 32279, 32268, {f: 2, c: 32287}, 32275,\n    32270, 32284, 32277, 32282, 32290, 32267, 32271, 32278, 32269, 32276,\n    32293, 32292, 32579, {f: 2, c: 32635}, 32634, 32689, 32751, 32810, 32809,\n    32876, 33201, 33190, 33198, 33209, 33205, 33195, 33200, 33196, 33204,\n    33202, 33207, 33191, 33266, {f: 3, c: 33365}, 34134, 34117, 34155, 34125,\n    34131, 34145, 34136, 34112, 34118, 34148, 34113, 34146, 34116, 34129,\n    34119, 34147, 34110, 34139, 34161, 34126, 34158, 34165, 34133, 34151,\n    34144, 34188, 34150, 34141, 34132, 34149, 34156, 34403, 34405, 34404,\n    34724, 34715, 34703, 34711, 34707, 34706, 34696, 34689, 34710, 34712,\n    34681, 34695, 34723, 34693, {f: 2, c: 34704}, 34717, 34692, 34708, 34716,\n    34714, 34697, 35102, 35110, 35120, {f: 2, c: 35117}, 35111, 35121, 35106,\n    35113, 35107, 35119, 35116, 35103, 35313, 35552, 35554, 35570,\n    {f: 2, c: 35572}, 35549, 35604, 35556, 35551, 35568, 35528, 35550, 35553,\n    35560, 35583, 35567, 35579, {f: 2, c: 35985}, 35984, 36085, 36078, 36081,\n    36080, 36083, 36204, 36206, 36261, 36263, 36403, 36414, 36408, 36416,\n    36421, 36406, {f: 2, c: 36412}, 36417, 36400, 36415, 36541, [36662, 60329],\n    36654, 36661, 36658, 36665, 36663, 36660, 36982, 36985, 36987, 36998,\n    37114, 37171, {f: 2, c: 37173}, 37267, {f: 2, c: 37264}, 37261, 37263,\n    37671, 37662, 37640, 37663, 37638, 37647, 37754, 37688, 37692, 37659,\n    37667, 37650, 37633, 37702, 37677, 37646, 37645, 37579, 37661, 37626,\n    37651, 37625, 37623, 37684, 37634, 37668, 37631, 37673, 37689, 37685,\n    37674, 37652, 37644, 37643, 37630, 37641, 37632, 37627, 37654, 38332,\n    38349, 38334, {f: 2, c: 38329}, 38326, 38335, 38325, 38333, 38569, 38612,\n    38667, 38674, 38672, 38809, 38807, 38804, 38896, 38904, 38965, 38959,\n    38962, 39204, 39199, 39207, 39209, 39326, 39406, 39404, 39397, 39396,\n    39408, 39395, 39402, 39401, 39399, 39609, 39615, 39604, 39611, 39670,\n    39674, 39673, 39671, 39731, 39808, 39813, 39815, 39804, 39806, 39803,\n    39810, 39827, 39826, 39824, 39802, 39829, 39805, 39816, 40229, 40215,\n    40224, 40222, 40212, 40233, 40221, 40216, 40226, 40208, 40217, 40223,\n    40584, {f: 2, c: 40582}, 40622, 40621, {f: 2, c: 40661}, 40698, 40722,\n    40765, 20774, 20773, 20770, 20772, 20768, 20777, 21236, 22163,\n    {f: 2, c: 22156}, 22150, 22148, 22147, 22142, 22146, 22143, 22145, 22742,\n    22740, 22735, 22738, 23341, 23333, 23346, 23331, 23340, 23335, 23334,\n    23343, 23342, 23419, {f: 2, c: 23537}, 23991, 24172, 24170, 24510, 25027,\n    25013, 25020, 25063, 25056, 25061, 25060, 25064, 25054, 25839, 25833,\n    25827, 25835, 25828, 25832, 25985, 25984, 26038, 26074, 26322, 27277,\n    27286, 27265, 27301, 27273, 27295, 27291, 27297, 27294, 27271, 27283,\n    27278, 27285, 27267, 27304, 27300, 27281, 27263, 27302, 27290, 27269,\n    27276, 27282, 27483, 27565, 27657, 28620, 28585, 28660, 28628, 28643,\n    28636, 28653, 28647, 28646, 28638, 28658, 28637, 28642, 28648, 29153,\n    29169, 29160, 29170, 29156, 29168, 29154, 29555, {f: 2, c: 29550}, 29847,\n    29874, 29867, 29840, 29866, 29869, 29873, 29861, 29871, {f: 3, c: 29968},\n    29967, 30084, 30275, {f: 2, c: 30280}, 30279, 30372, 30441, 30645, 30635,\n    30642, 30647, 30646, 30644, 30641, 30632, 30704, 30963, 30973, 30978,\n    {f: 2, c: 30971}, 30975, 30962, 30981, 30969, 30974, 30980, 31147, 31144,\n    31324, 31323, 31318, 31320, 31316, 31322, 31422, {f: 2, c: 31424}, 31749,\n    31759, 31730, 31744, 31743, 31739, 31758, 31732, 31755, 31731, 31746,\n    31753, 31747, 31745, 31736, 31741, [31750, 58176], {f: 2, c: 31728}, 31760,\n    31754, 31976, 32301, 32316, 32322, 32307, 38984, 32312, 32298, 32329,\n    32320, 32327, 32297, 32332, 32304, 32315, 32310, 32324, 32314, 32581,\n    32639, 32638, 32637, 32756, 32754, 32812, 33211, 33220, 33228, 33226,\n    33221, 33223, 33212, 33257, 33371, 33370, 33372, 34179, 34176, 34191,\n    34215, 34197, 34208, 34187, 34211, 34171, 34212, 34202, 34206, 34167,\n    34172, 34185, 34209, 34170, 34168, 34135, 34190, 34198, 34182, 34189,\n    34201, 34205, 34177, 34210, 34178, 34184, 34181, 34169, 34166, 34200,\n    34192, 34207, 34408, 34750, 34730, 34733, 34757, 34736, 34732, 34745,\n    34741, 34748, 34734, 34761, 34755, 34754, 34764, 34743, 34735, 34756,\n    34762, 34740, 34742, 34751, 34744, 34749, 34782, 34738, 35125, 35123,\n    35132, 35134, 35137, 35154, 35127, 35138, 35245, 35247, 35246,\n    {f: 2, c: 35314}, 35614, 35608, 35606, 35601, 35589, 35595, 35618, 35599,\n    35602, 35605, 35591, 35597, 35592, 35590, 35612, 35603, 35610, 35919,\n    35952, 35954, 35953, 35951, 35989, 35988, 36089, 36207, 36430, 36429,\n    36435, 36432, 36428, 36423, 36675, 36672, 36997, 36990, 37176, 37274,\n    37282, 37275, 37273, 37279, 37281, 37277, 37280, 37793, 37763, 37807,\n    37732, 37718, 37703, 37756, 37720, 37724, 37750, 37705, {f: 2, c: 37712},\n    37728, 37741, 37775, 37708, 37738, 37753, 37719, 37717, 37714, 37711,\n    37745, 37751, 37755, 37729, 37726, 37731, 37735, 37710, 37721, 38343,\n    38336, 38345, 38339, 38341, 38327, 38574, 38576, 38572, 38688, 38687,\n    38680, 38685, 38681, 38810, 38817, 38812, 38814, 38813, 38869, 38868,\n    38897, 38977, 38980, 38986, 38985, 38981, 38979, 39205, {f: 2, c: 39211},\n    39210, 39219, 39218, 39215, 39213, 39217, 39216, 39320, 39331, 39329,\n    39426, 39418, 39412, 39415, 39417, 39416, 39414, 39419, {f: 2, c: 39421},\n    39420, 39427, 39614, 39678, 39677, 39681, 39676, 39752, 39834, 39848,\n    39838, 39835, 39846, 39841, 39845, 39844, 39814, 39842, 39840, 39855,\n    40243, 40257, 40295, 40246, {f: 2, c: 40238}, 40241, 40248, 40240, 40261,\n    {f: 2, c: 40258}, 40254, 40247, 40256, 40253, 32757, 40237, 40586, 40585,\n    40589, 40624, 40648, 40666, 40699, 40703, 40740, 40739, 40738, 40788,\n    [12245, 40864], 20785, {f: 2, c: 20781}, 22168, 22172, 22167, 22170, 22173,\n    22169, 22896, 23356, {f: 2, c: 23657}, 24000, {f: 2, c: 24173}, 25048,\n    25055, {f: 2, c: 25069}, 25073, 25066, 25072, 25067, 25046, 25065, 25855,\n    25860, 25853, 25848, 25857, 25859, 25852, 26004, 26075, {f: 2, c: 26330},\n    26328, 27333, 27321, 27325, 27361, 27334, 27322, {f: 2, c: 27318}, 27335,\n    27316, 27309, 27486, 27593, 27659, 28679, {f: 2, c: 28684}, 28673, 28677,\n    28692, 28686, {f: 2, c: 28671}, 28667, 28710, 28668, 28663, 28682,\n    [29185, 60224], 29183, 29177, 29187, 29181, 29558, 29880, 29888, 29877,\n    29889, 29886, 29878, 29883, 29890, 29972, 29971, 30300, 30308, 30297,\n    30288, 30291, 30295, 30298, 30374, 30397, 30444, 30658, 30650, 30988,\n    {f: 2, c: 30995}, 30985, 30992, 30994, 30993, 31149, 31148, 31327, 31772,\n    31785, 31769, 31776, 31775, 31789, 31773, 31782, 31784, 31778, 31781,\n    31792, 32348, 32336, 32342, 32355, 32344, 32354, 32351, 32337, 32352,\n    32343, 32339, 32693, 32691, {f: 2, c: 32759}, 32885, {f: 2, c: 33233},\n    33232, 33375, 33374, 34228, 34246, 34240, 34243, 34242, 34227, 34229,\n    34237, 34247, 34244, 34239, 34251, 34254, 34248, 34245, 34225, 34230,\n    34258, 34340, 34232, 34231, 34238, 34409, 34791, 34790, 34786, 34779,\n    34795, 34794, 34789, 34783, 34803, 34788, 34772, 34780, 34771, 34797,\n    34776, 34787, 34775, 34777, 34817, 34804, 34792, 34781, 35155, 35147,\n    35151, 35148, 35142, {f: 2, c: 35152}, 35145, 35626, 35623, 35619, 35635,\n    35632, 35637, 35655, 35631, 35644, 35646, 35633, 35621, 35639, 35622,\n    35638, 35630, 35620, 35643, 35645, 35642, 35906, 35957, 35993, 35992,\n    35991, 36094, 36100, 36098, 36096, 36444, 36450, 36448, 36439, 36438,\n    36446, 36453, 36455, 36443, 36442, 36449, 36445, 36457, 36436,\n    {f: 3, c: 36678}, 36683, 37160, {f: 2, c: 37178}, 37182, 37288, 37285,\n    37287, 37295, 37290, 37813, 37772, 37778, 37815, 37787, 37789, 37769,\n    37799, 37774, 37802, 37790, 37798, 37781, 37768, 37785, 37791, 37760,\n    37773, 37809, 37777, 37810, 37796, 37800, 37812, 37795, {f: 2, c: 38354},\n    38353, 38579, 38615, 38618, 24002, 38623, 38616, 38621, 38691, 38690,\n    38693, 38828, 38830, 38824, 38827, 38820, 38826, 38818, 38821, 38871,\n    38873, 38870, 38872, 38906, {f: 3, c: 38992}, 39096, 39233, 39228, 39226,\n    39439, 39435, 39433, 39437, 39428, 39441, 39434, 39429, 39431, 39430,\n    39616, 39644, 39688, {f: 2, c: 39684}, 39721, 39733, 39754, 39756, 39755,\n    39879, 39878, 39875, 39871, 39873, 39861, 39864, 39891, 39862, 39876,\n    39865, 39869, 40284, 40275, 40271, 40266, 40283, 40267, 40281, 40278,\n    40268, 40279, 40274, 40276, 40287, 40280, 40282, 40590, 40588, 40671,\n    40705, 40704, [40726, 58693], 40741, 40747, 40746, 40745, 40744, 40780,\n    40789, {f: 2, c: 20788}, 21142, 21239, 21428, 22187, 22189,\n    {f: 2, c: 22182}, 22186, 22188, 22746, 22749, 22747, 22802,\n    {f: 3, c: 23357}, 24003, 24176, 24511, 25083, 25863, 25872, 25869, 25865,\n    25868, 25870, 25988, 26078, 26077, 26334, 27367, 27360, 27340, 27345,\n    27353, 27339, 27359, 27356, 27344, 27371, 27343, 27341, 27358, 27488,\n    27568, 27660, 28697, 28711, 28704, 28694, 28715, {f: 3, c: 28705}, 28713,\n    28695, 28708, 28700, 29196, 29194, 29191, 29186, 29189, {f: 2, c: 29349},\n    29348, 29347, 29345, 29899, 29893, 29879, 29891, 29974, 30304,\n    {f: 2, c: 30665}, 30660, 30705, 31005, 31003, 31009, 31004, 30999, 31006,\n    31152, {f: 2, c: 31335}, 31795, 31804, 31801, 31788, 31803, 31980, 31978,\n    32374, 32373, 32376, 32368, 32375, 32367, 32378, 32370, 32372, 32360,\n    32587, 32586, 32643, 32646, 32695, {f: 2, c: 32765}, 32888, 33239, 33237,\n    33291, 33380, 33377, 33379, 34283, 34289, 34285, 34265, 34273, 34280,\n    34266, 34263, 34284, 34290, 34296, 34264, 34271, 34275, 34268, 34257,\n    34288, 34278, 34287, 34270, 34274, 34816, 34810, 34819, {f: 2, c: 34806},\n    34825, 34828, 34827, 34822, 34812, 34824, 34815, 34826, 34818, 35170,\n    {f: 2, c: 35162}, 35159, 35169, 35164, 35160, 35165, 35161, 35208, 35255,\n    35254, 35318, 35664, 35656, 35658, 35648, 35667, 35670, 35668, 35659,\n    35669, 35665, 35650, 35666, 35671, 35907, 35959, 35958, 35994,\n    {f: 2, c: 36102}, 36105, 36268, 36266, 36269, 36267, 36461, 36472, 36467,\n    36458, 36463, 36475, 36546, 36690, 36689, {f: 2, c: 36687}, 36691, 36788,\n    37184, 37183, 37296, 37293, 37854, 37831, 37839, 37826, 37850, 37840,\n    37881, 37868, 37836, 37849, 37801, 37862, 37834, 37844, 37870, 37859,\n    37845, 37828, 37838, 37824, 37842, 37797, 37863, 38269, {f: 2, c: 38362},\n    38625, 38697, {f: 2, c: 38699}, 38696, 38694, 38835, 38839, 38838,\n    {f: 3, c: 38877}, 39004, 39001, 39005, 38999, 39103, 39101, 39099, 39102,\n    39240, 39239, 39235, {f: 2, c: 39334}, 39450, 39445, 39461, 39453, 39460,\n    39451, 39458, 39456, 39463, 39459, 39454, 39452, 39444, 39618, 39691,\n    39690, 39694, 39692, 39735, {f: 2, c: 39914}, 39904, 39902, 39908, 39910,\n    39906, 39920, 39892, 39895, 39916, 39900, 39897, 39909, 39893, 39905,\n    39898, 40311, 40321, 40330, 40324, 40328, 40305, 40320, 40312, 40326,\n    {f: 2, c: 40331}, 40317, 40299, {f: 2, c: 40308}, 40304, 40297, 40325,\n    40307, 40315, 40322, 40303, 40313, 40319, 40327, 40296, 40596, 40593,\n    40640, 40700, 40749, {f: 2, c: 40768}, 40781, {f: 3, c: 40790}, 21303,\n    22194, 22197, 22195, 22755, 23365, {f: 2, c: 24006}, {f: 2, c: 24302},\n    {f: 2, c: 24512}, 25081, 25879, 25878, 25877, 25875, 26079, 26344,\n    {f: 2, c: 26339}, 27379, 27376, 27370, 27368, 27385, 27377,\n    {f: 2, c: 27374}, 28732, 28725, 28719, 28727, 28724, 28721, 28738, 28728,\n    28735, 28730, 28729, 28714, 28736, 28731, 28723, 28737, {f: 2, c: 29203},\n    29352, 29565, 29564, 29882, 30379, 30378, 30398, 30445, 30668,\n    {f: 2, c: 30670}, 30669, 30706, 31013, 31011, {f: 2, c: 31015}, 31012,\n    31017, 31154, 31342, {f: 2, c: 31340}, 31479, 31817, 31816, 31818, 31815,\n    31813, 31982, 32379, 32382, 32385, 32384, 32698, 32767, 32889, 33243,\n    33241, {f: 2, c: 33384}, 34338, 34303, 34305, 34302, 34331, 34304, 34294,\n    34308, 34313, 34309, 34316, 34301, 34841, {f: 2, c: 34832}, 34839, 34835,\n    34838, 35171, 35174, 35257, 35319, 35680, 35690, 35677, 35688, 35683,\n    35685, 35687, 35693, 36270, 36486, 36488, 36484, 36697, {f: 2, c: 36694},\n    36693, 36696, 36698, 37005, 37187, 37185, 37303, 37301, {f: 2, c: 37298},\n    37899, 37907, 37883, 37920, 37903, 37908, 37886, 37909, 37904, 37928,\n    37913, 37901, 37877, 37888, 37879, 37895, 37902, 37910, 37906, 37882,\n    37897, 37880, 37948, 37898, 37887, 37884, 37900, 37878, 37905, 37894,\n    38366, 38368, 38367, {f: 2, c: 38702}, 38841, 38843, {f: 2, c: 38909},\n    39008, {f: 2, c: 39010}, 39007, {f: 2, c: 39105}, 39248, 39246, 39257,\n    39244, 39243, 39251, 39474, 39476, 39473, 39468, 39466, 39478, 39465,\n    39470, 39480, 39469, 39623, 39626, 39622, 39696, 39698, 39697, 39947,\n    39944, 39927, 39941, 39954, 39928, 40000, 39943, 39950, 39942, 39959,\n    39956, 39945, 40351, 40345, 40356, 40349, 40338, 40344, 40336, 40347,\n    40352, 40340, 40348, 40362, 40343, 40353, 40346, 40354, 40360, 40350,\n    40355, 40383, 40361, 40342, {f: 2, c: 40358}, 40601, 40603, 40602, 40677,\n    40676, 40679, 40678, 40752, 40750, 40795, 40800, 40798, 40797, 40793,\n    40849, 20794, 20793, 21144, 21143, 22211, {f: 2, c: 22205}, 23368, 23367,\n    24011, 24015, 24305, 25085, 25883, 27394, 27388, 27395, 27384, 27392,\n    {f: 2, c: 28739}, 28746, {f: 2, c: 28744}, {f: 2, c: 28741}, 29213, 29210,\n    29209, 29566, 29975, 30314, 30672, 31021, 31025, 31023, 31828, 31827,\n    31986, 32394, [32391, 60229], 32392, 32395, 32390, 32397, 32589, 32699,\n    32816, 33245, 34328, 34346, 34342, 34335, 34339, 34332, 34329, 34343,\n    34350, 34337, 34336, 34345, 34334, 34341, 34857, 34845, 34843, 34848,\n    34852, 34844, 34859, 34890, 35181, 35177, 35182, 35179, 35322, 35705,\n    35704, 35653, {f: 2, c: 35706}, 36112, 36116, 36271, 36494, 36492, 36702,\n    36699, 36701, 37190, {f: 2, c: 37188}, 37305, 37951, 37947, 37942, 37929,\n    37949, 37936, 37945, 37930, 37943, 37932, 37952, 37937, 38373, 38372,\n    38371, 38709, 38714, 38847, 38881, 39012, 39113, 39110, 39104, 39256,\n    39254, 39481, 39485, 39494, 39492, 39490, 39489, 39482, 39487, 39629,\n    39701, {f: 2, c: 39703}, 39702, 39738, 39762, 39979, 39965, 39964, 39980,\n    39971, {f: 2, c: 39976}, 39972, 39969, 40375, 40374, 40380, 40385, 40391,\n    40394, 40399, 40382, 40389, 40387, 40379, 40373, 40398, {f: 2, c: 40377},\n    40364, 40392, 40369, 40365, 40396, 40371, 40397, 40370, 40570, 40604,\n    40683, 40686, 40685, 40731, 40728, 40730, 40753, 40782, 40805, 40804,\n    40850, 20153, 22214, 22213, 22219, 22897, {f: 2, c: 23371}, 24021, 24017,\n    24306, 25889, 25888, 25894, 25890, 27403, {f: 2, c: 27400}, 27661,\n    {f: 3, c: 28757}, 28754, {f: 2, c: 29214}, 29353, 29567, 29912, 29909,\n    29913, 29911, 30317, 30381, 31029, 31156, {f: 2, c: 31344}, 31831, 31836,\n    31833, 31835, 31834, 31988, 31985, 32401, 32591, 32647, 33246, 33387,\n    {f: 2, c: 34356}, 34355, 34348, 34354, 34358, 34860, 34856, 34854, 34858,\n    34853, 35185, 35263, 35262, 35323, 35710, 35716, 35714, 35718, 35717,\n    35711, 36117, 36501, 36500, 36506, 36498, 36496, {f: 2, c: 36502}, 36704,\n    36706, 37191, 37964, 37968, {f: 2, c: 37962}, 37967, 37959, 37957,\n    {f: 2, c: 37960}, 37958, 38719, 38883, 39018, 39017, 39115, 39252, 39259,\n    39502, {f: 2, c: 39507}, 39500, 39503, 39496, 39498, 39497, 39506, 39504,\n    39632, 39705, 39723, 39739, 39766, 39765, 40006, 40008, 39999, 40004,\n    39993, 39987, 40001, 39996, 39991, 39988, 39986, 39997, 39990, 40411,\n    40402, 40414, 40410, 40395, 40400, 40412, 40401, 40415, 40425, 40409,\n    40408, 40406, 40437, 40405, 40413, 40630, 40688, 40757, 40755, 40754,\n    40770, 40811, 40853, 40866, 20797, 21145, 22760, 22759, 22898, 23373,\n    24024, 34863, 24399, 25089, {f: 2, c: 25091}, 25897, 25893, 26006, 26347,\n    {f: 2, c: 27409}, 27407, 27594, 28763, 28762, 29218, 29570, 29569, 29571,\n    30320, 30676, 31847, 31846, 32405, 33388, 34362, 34368, 34361, 34364,\n    34353, 34363, 34366, 34864, 34866, 34862, 34867, 35190, 35188, 35187,\n    35326, 35724, 35726, 35723, 35720, 35909, 36121, 36504, 36708, 36707,\n    37308, 37986, 37973, 37981, 37975, 37982, {f: 2, c: 38852}, 38912, 39510,\n    39513, {f: 3, c: 39710}, 40018, 40024, 40016, 40010, 40013, 40011, 40021,\n    40025, 40012, 40014, 40443, 40439, 40431, 40419, 40427, 40440, 40420,\n    40438, 40417, 40430, 40422, 40434, [40432, 60370], 40418, 40428, 40436,\n    40435, 40424, 40429, 40642, 40656, {f: 2, c: 40690}, 40710, 40732, 40760,\n    40759, 40758, 40771, 40783, 40817, 40816, {f: 2, c: 40814}, 22227, 22221,\n    23374, 23661, 25901, {f: 2, c: 26349}, 27411, 28767, 28769, 28765, 28768,\n    29219, 29915, 29925, 30677, 31032, 31159, 31158, 31850, 32407, 32649,\n    33389, 34371, 34872, 34871, 34869, 34891, {f: 2, c: 35732},\n    {f: 3, c: 36510}, 36509, 37310, 37309, 37314, 37995, {f: 2, c: 37992},\n    38629, 38726, 38723, 38727, 38855, 38885, 39518, 39637, 39769, 40035,\n    40039, 40038, 40034, 40030, 40032, 40450, 40446, 40455, 40451, 40454,\n    40453, {f: 2, c: 40448}, 40457, 40447, 40445, 40452, 40608, 40734, 40774,\n    {f: 3, c: 40820}, 22228, 25902, 26040, {f: 2, c: 27416}, 27415, 27418,\n    28770, 29222, 29354, {f: 2, c: 30680}, 31033, 31849, 31851, 31990, 32410,\n    32408, 32411, 32409, {f: 2, c: 33248}, {f: 3, c: 34374}, {f: 2, c: 35193},\n    35196, 35195, 35327, {f: 2, c: 35736}, 36517, 36516, 36515, 37998, 37997,\n    37999, 38001, 38003, 38729, 39026, 39263, 40040, 40046, 40045, 40459,\n    40461, 40464, 40463, 40466, 40465, 40609, 40693, 40713, 40775, 40824,\n    40827, 40826, 40825, 22302, 28774, 31855, 34876, 36274, 36518, 37315,\n    38004, 38008, 38006, 38005, 39520, [39726, 60830], 40052, 40051, 40049,\n    40053, 40468, 40467, 40694, 40714, 40868, 28776, 28773, 31991, 34410,\n    34878, 34877, 34879, 35742, 35996, 36521, 36553, 38731, {f: 2, c: 39027},\n    39116, 39265, 39339, 39524, {f: 2, c: 39526}, 39716, 40469, 40471, 40776,\n    25095, 27422, 29223, 34380, 36520, 38018, {f: 2, c: 38016}, 39529, 39528,\n    40473, 34379, 35743, 38019, 40057, 40631, 30325, 39531, 40058, 40477,\n    {f: 2, c: 28777}, 29225, 40612, 40830, 40777, 40856, {s: 97}, 65075, 0,\n    65076, 65103, [168, 776, 63208], [710, 63209, 65342], [12541, 63210],\n    [12542, 63211], [12445, 63212], [12446, 63213], 0, [12293, 63216],\n    [12294, 63217], [12295, 63218], [12540, 63219], [63220, 65339],\n    [63221, 65341], [10045, 63222], [12353, 63223], [12354, 63224],\n    [12355, 63225], [12356, 63226], [12357, 63227], [12358, 63228],\n    [12359, 63229], [12360, 63230], [12361, 63231], [12362, 63232],\n    [12363, 63233], [12364, 63234], [12365, 63235], [12366, 63236],\n    [12367, 63237], [12368, 63238], [12369, 63239], [12370, 63240],\n    [12371, 63241], [12372, 63242], [12373, 63243], [12374, 63244],\n    [12375, 63245], [12376, 63246], [12377, 63247], [12378, 63248],\n    [12379, 63249], [12380, 63250], [12381, 63251], [12382, 63252],\n    [12383, 63253], [12384, 63254], [12385, 63255], [12386, 63256],\n    [12387, 63257], [12388, 63258], [12389, 63259], [12390, 63260],\n    [12391, 63261], [12392, 63262], [12393, 63263], [12394, 63264],\n    [12395, 63265], [12396, 63266], [12397, 63267], [12398, 63268],\n    [12399, 63269], [12400, 63270], [12401, 63271], [12402, 63272],\n    [12403, 63273], [12404, 63274], [12405, 63275], [12406, 63276],\n    [12407, 63277], [12408, 63278], [12409, 63279], [12410, 63280],\n    [12411, 63281], [12412, 63282], [12413, 63283], [12414, 63284],\n    [12415, 63285], [12416, 63286], [12417, 63287], [12418, 63288],\n    [12419, 63289], [12420, 63290], [12421, 63291], [12422, 63292],\n    [12423, 63293], [12424, 63294], [12425, 63295], [12426, 63296],\n    [12427, 63297], [12428, 63298], [12429, 63299], [12430, 63300],\n    [12431, 63301], [12432, 63302], [12433, 63303], [12434, 63304],\n    [12435, 63305], [12449, 63306], [12450, 63307], [12451, 63308],\n    [12452, 63309], [12453, 63310], [12454, 63311], [12455, 63312],\n    [12456, 63313], [12457, 63314], [12458, 63315], [12459, 63316],\n    [12460, 63317], [12461, 63318], [12462, 63319], [12463, 63320],\n    [12464, 63321], [12465, 63322], [12466, 63323], [12467, 63324],\n    [12468, 63325], [12469, 63326], [12470, 63327], [12471, 63328],\n    [12472, 63329], [12473, 63330], [12474, 63331], [12475, 63332],\n    [12476, 63333], [12477, 63334], [12478, 63335], [12479, 63336],\n    [12480, 63337], [12481, 63338], [12482, 63339], [12483, 63340],\n    [12484, 63341], [12485, 63342], [12486, 63343], [12487, 63344],\n    [12488, 63345], [12489, 63346], [12490, 63347], [12491, 63348],\n    [12492, 63349], [12493, 63350], [12494, 63351], [12495, 63352],\n    [12496, 63353], [12497, 63354], [12498, 63355], [12499, 63356],\n    [12500, 63357], [12501, 63358], [12502, 63359], [12503, 63360],\n    [12504, 63361], [12505, 63362], [12506, 63363], [12507, 63364],\n    [12508, 63365], [12509, 63366], [12510, 63367], [12511, 63368],\n    [12512, 63369], [12513, 63370], [12514, 63371], [12515, 63372],\n    [12516, 63373], [12517, 63374], [12518, 63375], [12519, 63376],\n    [12520, 63377], [12521, 63378], [12522, 63379], [12523, 63380],\n    [12524, 63381], [12525, 63382], [12526, 63383], [12527, 63384],\n    [12528, 63385], [12529, 63386], [12530, 63387], [12531, 63388],\n    [12532, 63389], [12533, 63390], [12534, 63391], [1040, 63392],\n    [1041, 63393], [1042, 63394], [1043, 63395], [1044, 63396], [1045, 63397],\n    [1025, 63398], [1046, 63399], [1047, 63400], [1048, 63401], [1049, 63402],\n    [1050, 63403], [1051, 63404], [1052, 63405], [1053, 63406], [1054, 63407],\n    [1055, 63408], [1056, 63409], [1057, 63410], [1058, 63411], [1059, 63412],\n    [1060, 63413], [1061, 63414], [1062, 63415], [1063, 63416], [1064, 63417],\n    [1065, 63418], [1066, 63419], [1067, 63420], [1068, 63421], [1069, 63422],\n    [1070, 63423], [1071, 63424], [1072, 63425], [1073, 63426], [1074, 63427],\n    [1075, 63428], [1076, 63429], [1077, 63430], [1105, 63431], [1078, 63432],\n    [1079, 63433], [1080, 63434], [1081, 63435], [1082, 63436], [1083, 63437],\n    [1084, 63438], [1085, 63439], [1086, 63440], [1087, 63441], [1088, 63442],\n    [1089, 63443], [1090, 63444], [1091, 63445], [1092, 63446], [1093, 63447],\n    [1094, 63448], [1095, 63449], [1096, 63450], [1097, 63451], [1098, 63452],\n    [1099, 63453], [1100, 63454], [1101, 63455], [1102, 63456], [1103, 63457],\n    [8679, 63458], [8632, 63459], [8633, 63460], [20033, 63461],\n    [63462, 131276], [20058, 63463], [63464, 131210], [20994, 63465],\n    [17553, 63466], 63467, [20872, 63468], [13853, 63469], [63470, 161287],\n    {s: 40}, [172, 63511, 65506], [63512, 65508], [63513, 65287],\n    [63514, 65282], [12849, 63515], [8470, 63516], [8481, 63517], 30849,\n    [37561, 58501], 35023, 22715, 24658, 31911, 23290, 9556, 9574, 9559, 9568,\n    9580, 9571, 9562, 9577, 9565, 9554, 9572, 9557, {s: 3}, 9560, 9575, 9563,\n    9555, 9573, 9558, 9567, 9579, 9570, 9561, 9576, 9564, 9553, {s: 5}, 9619,\n    {s: 26}, [58129, 147159], [22462, 58130], [58131, 159443], [28990, 58132],\n    [58133, 153568], [27042, 58135], [58136, 166889], [23412, 58137],\n    [31305, 58138], [58139, 153825], [58140, 169177], [31333, 58141],\n    [31357, 58142], [58143, 154028], [31419, 58144], [31408, 58145],\n    [31426, 58146], [31427, 58147], [29137, 58148], [58149, 156813],\n    [16842, 58150], [31450, 58151], [31453, 58152], [31466, 58153],\n    [16879, 58154], [21682, 58155], [58156, 154625], [31499, 58157],\n    [31573, 58158], [31529, 58159], [58160, 152334], [58161, 154878],\n    [31650, 58162], [31599, 58163], [33692, 58164], [58165, 154548],\n    [58166, 158847], [31696, 58167], [33825, 58168], [31634, 58169], 0,\n    [58171, 154912], 0, [33938, 58174], [31738, 58175], 0, [31797, 58177],\n    [58178, 154817], [31812, 58179], [31875, 58180], [58181, 149634],\n    [31910, 58182], [58184, 148856], [31945, 58185], [31943, 58186],\n    [31974, 58187], 0, [31987, 58189], [31989, 58190], [32359, 58192],\n    [17693, 58193], [58194, 159300], [32093, 58195], [58196, 159446],\n    [32137, 58198], [32171, 58199], [28981, 58200], [32179, 58201], 32214,\n    [58203, 147543], [58204, 155689], [32228, 58205], [15635, 58206],\n    [32245, 58207], [58208, 137209], [32229, 58209], [58210, 164717], 0,\n    [58212, 155937], [58213, 155994], [32366, 58214], 0, [17195, 58216],\n    [37996, 58217], [32295, 58218], [32576, 58219], [32577, 58220],\n    [32583, 58221], [31030, 58222], [58223, 156368], [39393, 58224],\n    [32663, 58225], [58226, 156497], [32675, 58227], [58228, 136801],\n    [58229, 131176], [17756, 58230], [58231, 145254], [58233, 164666],\n    [32762, 58234], [58235, 156809], 0, [32776, 58237], [32797, 58238], 0,\n    [32815, 58240], [58241, 172167], [58242, 158915], [32827, 58243],\n    [32828, 58244], [32865, 58245], [58246, 141076], [18825, 58247],\n    [58248, 157222], [58249, 146915], [58250, 157416], [26405, 58251],\n    [32935, 58252], [58253, 166472], [33031, 58254], [33050, 58255],\n    [22704, 58256], [58257, 141046], [27775, 58258], [58259, 156824],\n    [25831, 58261], [58262, 136330], [33304, 58263], [58264, 137310],\n    [27219, 58265], [58266, 150117], [58267, 150165], [17530, 58268],\n    [33321, 58269], [58271, 158290], [58272, 146814], [20473, 58273],\n    [58274, 136445], [34018, 58275], [33634, 58276], 0, [58278, 149927],\n    [58279, 144688], [58280, 137075], [58281, 146936], [33450, 58282],\n    [26907, 58283], [58284, 194964], [16859, 58285], [34123, 58286],\n    [33488, 58287], [33562, 58288], [58289, 134678], [58290, 137140],\n    [14017, 58291], [58292, 143741], [58293, 144730], [33403, 58294],\n    [33506, 58295], [33560, 58296], [58297, 147083], [58298, 159139],\n    [58299, 158469], [58300, 158615], [58301, 144846], [15807, 58302],\n    [33565, 58303], [21996, 58304], [33669, 58305], [17675, 58306],\n    [58307, 159141], [33708, 58308], 0, [33747, 58310], [58312, 159444],\n    [27223, 58313], [34138, 58314], [13462, 58315], [58316, 159298],\n    [33880, 58318], [58319, 154596], [33905, 58320], [15827, 58321],\n    [17636, 58322], [27303, 58323], [33866, 58324], [31064, 58326], 0,\n    [58328, 158614], [58329, 159351], [58330, 159299], [34014, 58331], 0,\n    [33681, 58333], [17568, 58334], [33939, 58335], [34020, 58336],\n    [58337, 154769], [16960, 58338], [58339, 154816], [17731, 58340],\n    [34100, 58341], [23282, 58342], 0, [17703, 58344], [34163, 58345],\n    [17686, 58346], [26559, 58347], [34326, 58348], [58349, 165413],\n    [58350, 165435], [34241, 58351], [58352, 159880], [34306, 58353],\n    [58354, 136578], [58355, 159949], [58356, 194994], [17770, 58357],\n    [34344, 58358], [13896, 58359], [58360, 137378], [21495, 58361],\n    [58362, 160666], [34430, 58363], 0, [58365, 172280], [34798, 58366],\n    [58367, 142375], [34737, 58368], [34778, 58369], [34831, 58370, 60990],\n    [22113, 58371], [34412, 58372], [26710, 58373], [17935, 58374],\n    [34885, 58375], [34886, 58376], [58377, 161248], [58378, 146873],\n    [58379, 161252], [34910, 58380], [34972, 58381], [18011, 58382],\n    [34996, 58383], [34997, 58384], [35013, 58386], [58388, 161551],\n    [35207, 58389], {s: 3}, [35239, 58393], [35260, 58394], [58395, 166437],\n    [35303, 58396], [58397, 162084], [58398, 162493], [35484, 58399],\n    [30611, 58400], [37374, 58401], [35472, 58402], [58403, 162393],\n    [31465, 58404], [58405, 162618], [18195, 58407], [58408, 162616],\n    [29052, 58409], [35596, 58410], [35615, 58411], [58412, 152624],\n    [58413, 152933], [35647, 58414], 0, [35661, 58416], [35497, 58417],\n    [58418, 150138], [35728, 58419], [35739, 58420], [35503, 58421],\n    [58422, 136927], [17941, 58423], [34895, 58424], [35995, 58425],\n    [58426, 163156], [58427, 163215], [58428, 195028], [14117, 58429],\n    [58430, 163155], [36054, 58431], [58432, 163224], [58433, 163261],\n    [36114, 58434], [36099, 58435], [58436, 137488], [36059, 58437],\n    [28764, 58438], [36113, 58439], [16080, 58441], 0, [36265, 58443],\n    [58444, 163842], [58445, 135188], [58446, 149898], [15228, 58447],\n    [58448, 164284], [58449, 160012], [31463, 58450], [36525, 58451],\n    [36534, 58452], [36547, 58453], [37588, 58454], [36633, 58455],\n    [36653, 58456], [58457, 164709], [58458, 164882], [36773, 58459],\n    [37635, 58460], [58461, 172703], [58462, 133712], [36787, 58463], 0,\n    [58465, 166366], [58466, 165181], [58467, 146875], [24312, 58468],\n    [58469, 143970], [36857, 58470], 0, [58474, 140069], [14720, 58475],\n    [58476, 159447], [36919, 58477], [58478, 165180], [58479, 162494],\n    [36961, 58480], [58481, 165228], [58482, 165387], [37032, 58483],\n    [58484, 165651], [37060, 58485], [58486, 165606], [37038, 58487], 0,\n    [37223, 58489], [37289, 58491], [37316, 58492], [31916, 58493],\n    [58494, 166195], [58495, 138889], [37390, 58496], [27807, 58497],\n    [37441, 58498], [37474, 58499], [58500, 153017], [58502, 166598],\n    [58503, 146587], [58504, 166668], [58505, 153051], [58506, 134449],\n    [37676, 58507], [37739, 58508], [58509, 166625], [58510, 166891],\n    [23235, 58512], [58513, 166626], [58514, 166629], [18789, 58515],\n    [37444, 58516], [58517, 166892], [58518, 166969], [58519, 166911],\n    [37747, 58520], [37979, 58521], [36540, 58522], [38277, 58523],\n    [38310, 58524], [37926, 58525], [38304, 58526], [28662, 58527],\n    [17081, 58528], [58530, 165592], [58531, 135804], [58532, 146990],\n    [18911, 58533], [27676, 58534], [38523, 58535], [38550, 58536],\n    [16748, 58537], [38563, 58538], [58539, 159445], [25050, 58540], 58541,\n    [30965, 58542], [58543, 166624], [38589, 58544], [21452, 58545],\n    [18849, 58546], [58547, 158904], [58548, 131700], [58549, 156688],\n    [58550, 168111], [58551, 168165], [58552, 150225], [58553, 137493],\n    [58554, 144138], [38705, 58555], [34370, 58556], [38710, 58557],\n    [18959, 58558], [17725, 58559], [17797, 58560], [58561, 150249],\n    [28789, 58562], [23361, 58563], [38683, 58564], 0, [58566, 168405],\n    [38743, 58567], [23370, 58568], [58569, 168427], [38751, 58570],\n    [37925, 58571], [20688, 58572], [58573, 143543], [58574, 143548],\n    [38793, 58575], [38815, 58576], [38833, 58577], [38846, 58578],\n    [38848, 58579], [38866, 58580], [38880, 58581], [58582, 152684],\n    [38894, 58583], [29724, 58584], [58585, 169011], 0, [38901, 58587],\n    [58588, 168989], [58589, 162170], [19153, 58590], [38964, 58591],\n    [38963, 58592], [38987, 58593], [39014, 58594], [15118, 58595],\n    [58596, 160117], [15697, 58597], [58598, 132656], [58599, 147804],\n    [58600, 153350], [39114, 58601], [39095, 58602], [39112, 58603],\n    [39111, 58604], [19199, 58605], [58606, 159015], [58607, 136915],\n    [21936, 58608], [39137, 58609], [39142, 58610], [39148, 58611],\n    [37752, 58612], [39225, 58613], [58614, 150057], [19314, 58615],\n    [58616, 170071], [58617, 170245], [39413, 58618], [39436, 58619],\n    [39483, 58620], [39440, 58621], [39512, 58622], [58623, 153381],\n    [14020, 58624], [58625, 168113], [58626, 170965], [39648, 58627],\n    [39650, 58628], [58629, 170757], [39668, 58630], [19470, 58631],\n    [39700, 58632], [39725, 58633], [58634, 165376], [20532, 58635],\n    [39732, 58636], [14531, 58638], [58639, 143485], [39760, 58640],\n    [39744, 58641], [58642, 171326], [23109, 58643], [58644, 137315],\n    [39822, 58645], [39938, 58647], [39935, 58648], [39948, 58649],\n    [58650, 171624], [40404, 58651], [58652, 171959], [58653, 172434],\n    [58654, 172459], [58655, 172257], [58656, 172323], [58657, 172511],\n    [40318, 58658], [40323, 58659], [58660, 172340], [40462, 58661],\n    [40388, 58663], [58665, 172435], [58666, 172576], [58667, 137531],\n    [58668, 172595], [40249, 58669], [58670, 172217], [58671, 172724],\n    [40592, 58672], [40597, 58673], [40606, 58674], [40610, 58675],\n    [19764, 58676], [40618, 58677], [40623, 58678], [58679, 148324],\n    [40641, 58680], [15200, 58681], [14821, 58682], [15645, 58683],\n    [20274, 58684], [14270, 58685], [58686, 166955], [40706, 58687],\n    [40712, 58688], [19350, 58689], [37924, 58690], [58691, 159138],\n    [40727, 58692, 60836], 0, [40761, 58694], [22175, 58695], [22154, 58696],\n    [40773, 58697], [39352, 58698], [58699, 168075], [38898, 58700],\n    [33919, 58701], 0, [40809, 58703], [31452, 58704], [40846, 58705],\n    [29206, 58706], [19390, 58707], [58708, 149877], [58709, 149947],\n    [29047, 58710], [58711, 150008], [58712, 148296], [58713, 150097],\n    [29598, 58714], [58715, 166874], [58716, 137466], [31135, 58717],\n    [58718, 166270], [58719, 167478], [37737, 58720], [37875, 58721],\n    [58722, 166468], [37612, 58723], [37761, 58724], [37835, 58725],\n    [58726, 166252], [58727, 148665], [29207, 58728], [16107, 58729],\n    [30578, 58730], [31299, 58731], [28880, 58732], [58733, 148595],\n    [58734, 148472], [29054, 58735], [58736, 137199], [28835, 58737],\n    [58738, 137406], [58739, 144793], [16071, 58740], [58741, 137349],\n    [58742, 152623], [58743, 137208], [14114, 58744], [58745, 136955],\n    [58746, 137273], [14049, 58747], [58748, 137076], [58749, 137425],\n    [58750, 155467], [14115, 58751], [58752, 136896], [22363, 58753],\n    [58754, 150053], [58755, 136190], [58756, 135848], [58757, 136134],\n    [58758, 136374], [34051, 58759, 58761], [58760, 145062], 0, [33877, 58762],\n    [58763, 149908], [58764, 160101], [58765, 146993], [58766, 152924],\n    [58767, 147195], [58768, 159826], [17652, 58769], [58770, 145134],\n    [58771, 170397], [58772, 159526], [26617, 58773], [14131, 58774],\n    [15381, 58775], [15847, 58776], [22636, 58777], [58778, 137506],\n    [26640, 58779], [16471, 58780], [58781, 145215], [58782, 147681],\n    [58783, 147595], [58784, 147727], [58785, 158753], [21707, 58786],\n    [22174, 58787], [58788, 157361], [22162, 58789], [58790, 135135],\n    [58791, 134056], [58792, 134669], 0, [58794, 166675], [37788, 58795],\n    [20216, 58796], [20779, 58797], [14361, 58798], [58799, 148534],\n    [20156, 58800], [58801, 132197], 0, [20299, 58803], [20362, 58804],\n    [58805, 153169], [23144, 58806], [58807, 131499], [58808, 132043],\n    [14745, 58809], [58810, 131850], [58811, 132116], [13365, 58812],\n    [20265, 58813], [58814, 131776], [58815, 167603], [58816, 131701],\n    [35546, 58817], [58818, 131596], [20120, 58819], [20685, 58820],\n    [20749, 58821], [20386, 58822], [20227, 58823], [58824, 150030],\n    [58825, 147082], [20290, 58826], [20526, 58827], [20588, 58828],\n    [20609, 58829], [20428, 58830], [20453, 58831], [20568, 58832],\n    [20732, 58833], [28278, 58838], [58839, 144789], [58840, 147001],\n    [58841, 147135], [28018, 58842], [58843, 137348], [58844, 147081],\n    [20904, 58845], [20931, 58846], [58847, 132576], [17629, 58848],\n    [58849, 132259], [58850, 132242], [58851, 132241], [36218, 58852],\n    [58853, 166556], [58854, 132878], [21081, 58855], [21156, 58856],\n    [58857, 133235], [21217, 58858], 0, [18042, 58860], [29068, 58861],\n    [58862, 148364], [58863, 134176], [58864, 149932], [58865, 135396],\n    [27089, 58866], [58867, 134685], 0, [16094, 58869], [29849, 58870],\n    [29716, 58871], [29782, 58872], [29592, 58873], [19342, 58874],\n    [58875, 150204], [58876, 147597], [21456, 58877], [13700, 58878],\n    [29199, 58879], [58880, 147657], [21940, 58881], [58882, 131909],\n    [21709, 58883], [58884, 134086], [22301, 58885], [37469, 58886],\n    [38644, 58887], [22493, 58889], [22413, 58890], [22399, 58891],\n    [13886, 58892], [22731, 58893], [23193, 58894], [58895, 166470],\n    [58896, 136954], [58897, 137071], [58898, 136976], [23084, 58899],\n    [22968, 58900], [23166, 58902], [23247, 58903], [23058, 58904],\n    [58905, 153926], [58906, 137715], [58907, 137313], [58908, 148117],\n    [14069, 58909], [27909, 58910], [29763, 58911], [23073, 58912],\n    [58913, 155267], [23169, 58914], [58915, 166871], [58916, 132115],\n    [37856, 58917], [29836, 58918], [58919, 135939], [28933, 58920],\n    [18802, 58921], [37896, 58922], [58923, 166395], [37821, 58924],\n    [14240, 58925], [23582, 58926], [23710, 58927], [24158, 58928],\n    [24136, 58929], [58930, 137622], [58931, 137596], [58932, 146158],\n    [24269, 58933], [23375, 58934], [58935, 137475], [58936, 137476],\n    [14081, 58937], [58938, 137376], [14045, 58939], [58940, 136958],\n    [14035, 58941], [33066, 58942], [58943, 166471], [58944, 138682],\n    [58945, 144498], [58946, 166312], [24332, 58947, 60916], [24334, 58948],\n    [58949, 137511], [58950, 137131], [23147, 58951], [58952, 137019],\n    [23364, 58953], [58955, 161277], [34912, 58956], [24702, 58957],\n    [58958, 141408], [58959, 140843], [24539, 58960], [16056, 58961],\n    [58962, 140719], [58963, 140734], [58964, 168072], [58965, 159603],\n    [25024, 58966], [58967, 131134], [58968, 131142], [58969, 140827],\n    [24985, 58970], [24984, 58971], [24693, 58972], [58973, 142491],\n    [58974, 142599], [58975, 149204], [58976, 168269], [25713, 58977],\n    [58978, 149093], [58979, 142186], [14889, 58980], [58981, 142114],\n    [58982, 144464], [58983, 170218], [58984, 142968], [25399, 58985],\n    [25782, 58987], [25393, 58988], [25553, 58989], [58990, 149987],\n    [58991, 142695], [25252, 58992], [58993, 142497], [25659, 58994],\n    [25963, 58995], [26994, 58996], [15348, 58997], [58998, 143502],\n    [58999, 144045], [59000, 149897], [59001, 144043], [21773, 59002],\n    [59003, 144096], [59004, 137433], [59005, 169023], [26318, 59006],\n    [59007, 144009], [59008, 143795], [15072, 59009], [59011, 152964],\n    [59012, 166690], [59013, 152975], [59014, 136956], [59015, 152923],\n    [59016, 152613], [30958, 59017], [59018, 143619], [59019, 137258],\n    [59020, 143924], [13412, 59021], [59022, 143887], [59023, 143746],\n    [59024, 148169], [26254, 59025], [59026, 159012], [26219, 59027],\n    [19347, 59028], [26160, 59029], [59030, 161904], [59031, 138731],\n    [26211, 59032], [59033, 144082], [59034, 144097], [26142, 59035],\n    [59036, 153714], [14545, 59037], [59038, 145466], [59039, 145340],\n    [15257, 59040], [59041, 145314], [59042, 144382], [29904, 59043],\n    [15254, 59044], [59046, 149034], [26806, 59047], 0, [15300, 59049],\n    [27326, 59050], [59052, 145365], [59053, 148615], [27187, 59054],\n    [27218, 59055], [27337, 59056], [27397, 59057], [59058, 137490],\n    [25873, 59059], [26776, 59060], [27212, 59061], [15319, 59062],\n    [27258, 59063], [27479, 59064], [59065, 147392], [59066, 146586],\n    [37792, 59067], [37618, 59068], [59069, 166890], [59070, 166603],\n    [37513, 59071], [59072, 163870], [59073, 166364], [37991, 59074],\n    [28069, 59075], [28427, 59076], 0, [59079, 147327], [15759, 59080],\n    [28164, 59081], [59082, 147516], [23101, 59083], [28170, 59084],\n    [22599, 59085], [27940, 59086], [30786, 59087], [28987, 59088],\n    [59089, 148250], [59090, 148086], [28913, 59091], [29264, 59092, 61085],\n    [29319, 59093], [29332, 59094], [59095, 149391], [59096, 149285],\n    [20857, 59097], [59098, 150180], [59099, 132587], [29818, 59100],\n    [59101, 147192], [59102, 144991], [59103, 150090], [59104, 149783],\n    [59105, 155617], [16134, 59106], [16049, 59107], [59108, 150239],\n    [59109, 166947], [59110, 147253], [24743, 59111], [16115, 59112],\n    [29900, 59113], [29756, 59114], [37767, 59115], [29751, 59116],\n    [17567, 59117], [59118, 159210], [17745, 59119], [30083, 59120],\n    [16227, 59121], [59122, 150745], [59123, 150790], [16216, 59124],\n    [30037, 59125], [30323, 59126], [59127, 173510], 0, [29800, 59129, 61070],\n    [59130, 166604], [59131, 149931], [59132, 149902], [15099, 59133],\n    [15821, 59134], [59135, 150094], [16127, 59136], [59137, 149957],\n    [59138, 149747], [37370, 59139], [22322, 59140], [37698, 59141],\n    [59142, 166627], [59143, 137316], [20703, 59144], [59145, 152097],\n    [59146, 152039], [30584, 59147], [59148, 143922], [30478, 59149],\n    [30479, 59150], [30587, 59151], [59152, 149143], [59153, 145281],\n    [14942, 59154], [59155, 149744], [29752, 59156], [29851, 59157],\n    [16063, 59158], [59159, 150202], [59160, 150215], [16584, 59161],\n    [59162, 150166], [59163, 156078], [37639, 59164], [59165, 152961],\n    [30750, 59166], [30861, 59167], [30856, 59168], [30930, 59169],\n    [29648, 59170], [31065, 59171], [59172, 161601], [59173, 153315],\n    [16654, 59174], 0, 0, [31141, 59177], [27181, 59178], [59179, 147194],\n    [31290, 59180], [31220, 59181], [16750, 59182], [59183, 136934],\n    [16690, 59184], [37429, 59185], [31217, 59186], [59187, 134476],\n    [59188, 149900], [59189, 131737], [59190, 146874], [59191, 137070],\n    [13719, 59192], [21867, 59193], [13680, 59194], [13994, 59195],\n    [59196, 131540], [59197, 134157], [31458, 59198], [23129, 59199],\n    [59200, 141045], [59201, 154287], [59202, 154268], [23053, 59203],\n    [59204, 131675], [30960, 59205], [23082, 59206], [59207, 154566],\n    [31486, 59208], [16889, 59209], [31837, 59210], [31853, 59211],\n    [16913, 59212], [59213, 154547], [59214, 155324], [59215, 155302],\n    [31949, 59216], [59217, 150009], [59218, 137136], [31886, 59219],\n    [31868, 59220], [31918, 59221], [27314, 59222], [32220, 59223],\n    [32263, 59224], [32211, 59225], [32590, 59226], [59227, 156257],\n    [59228, 155996], [59229, 162632], [32151, 59230], [59231, 155266],\n    [17002, 59232], [59233, 158581], [59234, 133398], [26582, 59235],\n    [59236, 131150], [59237, 144847], [22468, 59238], [59239, 156690],\n    [59240, 156664], [32733, 59242], [31527, 59243], [59244, 133164],\n    [59245, 154345], [59246, 154947], [31500, 59247], [59248, 155150],\n    [39398, 59249], [34373, 59250], [39523, 59251], [27164, 59252],\n    [59253, 144447], [59255, 150007], [59256, 157101], [39455, 59257],\n    [59258, 157088], 0, [59260, 160039], [59261, 158929], [17642, 59262],\n    [33079, 59263], [17410, 59264], [32966, 59265], [33033, 59266],\n    [33090, 59267], [59268, 157620], [39107, 59269], [59270, 158274],\n    [33378, 59271], [33381, 59272], [59273, 158289], [33875, 59274],\n    [59275, 159143], [34320, 59276], [59277, 160283], [23174, 59278],\n    [16767, 59279], [59280, 137280], [23339, 59281], [59282, 137377],\n    [23268, 59283], [59284, 137432], [34464, 59285], [59286, 195004],\n    [59287, 146831], [34861, 59288], [59289, 160802], [23042, 59290],\n    [34926, 59291], [20293, 59292], [34951, 59293], [35007, 59294],\n    [35046, 59295], [35173, 59296], [35149, 59297], [59298, 153219],\n    [35156, 59299], [59300, 161669], [59301, 161668], [59302, 166901],\n    [59303, 166873], [59304, 166812], [59305, 166393], [16045, 59306],\n    [33955, 59307], [18165, 59308], [18127, 59309], [14322, 59310],\n    [35389, 59311], [35356, 59312], [59313, 169032], [24397, 59314],\n    [37419, 59315], [59316, 148100], [26068, 59317], [28969, 59318],\n    [28868, 59319], [59320, 137285], [40301, 59321], [35999, 59322],\n    [36073, 59323], [59324, 163292], [22938, 59325], [30659, 59326],\n    [23024, 59327], [14036, 59329], [36394, 59330], [36519, 59331],\n    [59332, 150537], [36656, 59333], [36682, 59334], [17140, 59335],\n    [27736, 59336], [28603, 59337], [59338, 140065], [18587, 59339],\n    [28537, 59340], [28299, 59341], [59342, 137178], [39913, 59343],\n    [14005, 59344], [59345, 149807], [37051, 59346], 0, [21873, 59348],\n    [18694, 59349], [37307, 59350], [37892, 59351], [59352, 166475],\n    [16482, 59353], [59354, 166652], [37927, 59355], [59356, 166941],\n    [59357, 166971], [34021, 59358], [35371, 59359], [38297, 59360],\n    [38311, 59361], [38295, 59362], [38294, 59363], [59364, 167220],\n    [29765, 59365], [16066, 59366], [59367, 149759], [59368, 150082],\n    [59369, 148458], [16103, 59370], [59371, 143909], [38543, 59372],\n    [59373, 167655], [59374, 167526], [59375, 167525], [16076, 59376],\n    [59377, 149997], [59378, 150136], [59379, 147438], [29714, 59380],\n    [29803, 59381], [16124, 59382], [38721, 59383], [59384, 168112],\n    [26695, 59385], [18973, 59386], [59387, 168083], [59388, 153567], 0,\n    [37736, 59390], [59391, 166281], [59392, 166950], [59393, 166703],\n    [59394, 156606], [37562, 59395], [23313, 59396], [35689, 59397],\n    [18748, 59398], [29689, 59399], [59400, 147995], [38811, 59401], 0,\n    [39224, 59403], [59404, 134950], [24001, 59405], [59406, 166853],\n    [59407, 150194], [38943, 59408], [59409, 169178], [37622, 59410],\n    [59411, 169431], [37349, 59412], [17600, 59413], [59414, 166736],\n    [59415, 150119], [59416, 166756], [39132, 59417], [59418, 166469],\n    [16128, 59419], [37418, 59420], [18725, 59421], [33812, 59422],\n    [39227, 59423], [39245, 59424], [59425, 162566], [15869, 59426], 0,\n    [19311, 59428], [39338, 59429], [39516, 59430], [59431, 166757],\n    [59432, 153800], [27279, 59433], [39457, 59434], [23294, 59435],\n    [39471, 59436], [59437, 170225], [19344, 59438], [59439, 170312],\n    [39356, 59440], [19389, 59441], [19351, 59442], [37757, 59443],\n    [22642, 59444], [59445, 135938], [22562, 59446], [59447, 149944],\n    [59448, 136424], [30788, 59449], [59450, 141087], [59451, 146872],\n    [26821, 59452], [15741, 59453], [37976, 59454], [14631, 59455],\n    [24912, 59456], [59457, 141185], [59458, 141675], [24839, 59459],\n    [40015, 59460], [40019, 59461], [40059, 59462], [39989, 59463],\n    [39952, 59464], [39807, 59465], [39887, 59466], [59467, 171565],\n    [39839, 59468], [59469, 172533], [59470, 172286], [40225, 59471],\n    [19630, 59472], [59473, 147716], [40472, 59474], [19632, 59475],\n    [40204, 59476], [59477, 172468], [59478, 172269], [59479, 172275],\n    [59480, 170287], [40357, 59481], [33981, 59482], [59483, 159250],\n    [59484, 159711], [59485, 158594], [34300, 59486], [17715, 59487],\n    [59488, 159140], [59489, 159364], [59490, 159216], [33824, 59491],\n    [34286, 59492], [59493, 159232], [59494, 145367], [59495, 155748],\n    [31202, 59496], [59497, 144796], [59498, 144960], [59500, 149982],\n    [15714, 59501], [37851, 59502], [37566, 59503], [37704, 59504],\n    [59505, 131775], [30905, 59506], [37495, 59507], [37965, 59508],\n    [20452, 59509], [13376, 59510], [36964, 59511], [59512, 152925],\n    [30781, 59513], [30804, 59514], [30902, 59515], [30795, 59516],\n    [59517, 137047], [59518, 143817], [59519, 149825], [13978, 59520],\n    [20338, 59521], [28634, 59522], [28633, 59523], 0, [28702, 59524, 59525],\n    [21524, 59526], [59527, 147893], [22459, 59528], [22771, 59529],\n    [22410, 59530], [40214, 59531], [22487, 59532], [28980, 59533],\n    [13487, 59534], [59535, 147884], [29163, 59536], [59537, 158784],\n    [59538, 151447], 0, [59540, 137141], [59541, 166473], [24844, 59542],\n    [23246, 59543], [23051, 59544], [17084, 59545], [59546, 148616],\n    [14124, 59547], [19323, 59548], [59549, 166396], [37819, 59550],\n    [37816, 59551], [59552, 137430], [59553, 134941], [33906, 59554],\n    [59555, 158912], [59556, 136211], [59557, 148218], [59558, 142374],\n    [59559, 148417], [22932, 59560], [59561, 146871], [59562, 157505],\n    [32168, 59563], [59564, 155995], [59565, 155812], [59566, 149945],\n    [59567, 149899], [59568, 166394], [37605, 59569], [29666, 59570],\n    [16105, 59571], [29876, 59572], [59573, 166755], [59574, 137375],\n    [16097, 59575], [59576, 150195], [27352, 59577], [29683, 59578],\n    [29691, 59579], [16086, 59580], [59581, 150078], [59582, 150164],\n    [59583, 137177], [59584, 150118], [59585, 132007], [59586, 136228],\n    [59587, 149989], [29768, 59588], [59589, 149782], [28837, 59590],\n    [59591, 149878], [37508, 59592], [29670, 59593], [37727, 59594],\n    [59595, 132350], [37681, 59596], [59597, 166606], [59598, 166422],\n    [37766, 59599], [59600, 166887], [59601, 153045], [18741, 59602],\n    [59603, 166530], [29035, 59604], [59605, 149827], [59606, 134399],\n    [22180, 59607], [59608, 132634], [59609, 134123], [59610, 134328],\n    [21762, 59611], [31172, 59612], [59613, 137210], [32254, 59614],\n    [59615, 136898], [59616, 150096], [59617, 137298], [17710, 59618],\n    [37889, 59619], [14090, 59620], [59621, 166592], [59622, 149933],\n    [22960, 59623], [59624, 137407], [59625, 137347], [59626, 160900],\n    [23201, 59627], [14050, 59628], [59629, 146779], [14000, 59630],\n    [37471, 59631], [23161, 59632], [59633, 166529], [59634, 137314],\n    [37748, 59635], [15565, 59636], [59637, 133812], [19094, 59638],\n    [14730, 59639], [20724, 59640], [15721, 59641], [15692, 59642],\n    [59643, 136092], [29045, 59644], [17147, 59645], [59646, 164376],\n    [28175, 59647], [59648, 168164], [17643, 59649], [27991, 59650],\n    [59651, 163407], [28775, 59652], [27823, 59653], [15574, 59654],\n    [59655, 147437], [59656, 146989], [28162, 59657], [28428, 59658],\n    [15727, 59659], [59660, 132085], [30033, 59661], [14012, 59662],\n    [13512, 59663], [18048, 59664], [16090, 59665], [18545, 59666],\n    [22980, 59667], [37486, 59668], [18750, 59669], [36673, 59670],\n    [59671, 166940], [59672, 158656], [22546, 59673], [22472, 59674],\n    [14038, 59675], [59676, 136274], [28926, 59677], [59678, 148322],\n    [59679, 150129], [59680, 143331], [59681, 135856], [59682, 140221],\n    [26809, 59683], [26983, 59684], [59685, 136088], [59686, 144613],\n    [59687, 162804], [59688, 145119], [59689, 166531], [59690, 145366],\n    [59691, 144378], [59692, 150687], [27162, 59693], [59694, 145069],\n    [59695, 158903], [33854, 59696], [17631, 59697], [17614, 59698],\n    [59699, 159014], [59700, 159057], [59701, 158850], [59702, 159710], 0, 0,\n    [33597, 59705], [59706, 137018], [33773, 59707], [59708, 158848],\n    [59709, 159827], [59710, 137179], [22921, 59711], [23170, 59712],\n    [59713, 137139], [23137, 59714], [23153, 59715], [59716, 137477],\n    [59717, 147964], [14125, 59718], [23023, 59719], [59720, 137020],\n    [14023, 59721], [29070, 59722], [37776, 59723], [26266, 59724],\n    [59725, 148133], [23150, 59726], [23083, 59727], [59728, 148115],\n    [27179, 59729], [59730, 147193], [59731, 161590], [59732, 148571],\n    [59733, 148170], [28957, 59734], [59735, 148057], [59736, 166369],\n    [20400, 59737], [59738, 159016], [23746, 59739], [59740, 148686],\n    [59741, 163405], [59742, 148413], [27148, 59743], [59744, 148054],\n    [59745, 135940], 0, [28979, 59747], [59748, 148457], [15781, 59749],\n    [27871, 59750], [59751, 194597], [23019, 59754], [24412, 59757],\n    [59764, 144128], [31955, 59776], [59783, 162548], [59786, 153334],\n    [59790, 162584], [36972, 59791], [33270, 59795], [30476, 59797],\n    [27810, 59799], [22269, 59800], [22633, 59828], [26465, 59832],\n    [23646, 59838], [22770, 59841], [28857, 59843], [26627, 59853],\n    [36795, 59859], [36796, 59861], [20001, 59871], [31545, 59898],\n    [15820, 59902], [29482, 57990, 59909], [30048, 59912], [22586, 59920],\n    [33446, 59932], [27018, 59940], [24803, 59944], [20206, 59984],\n    [39364, 60002], [40639, 60023], [21249, 60025], [26528, 60038],\n    [24808, 60046], [20916, 60053], [31363, 60064], [39994, 60075],\n    [31432, 60093], [26906, 60098], [22956, 60100], [22592, 60102],\n    [21610, 60114], [24807, 60123], [22138, 60125], [26965, 60132],\n    [39983, 60133], [34725, 60134], [23584, 60141], [24075, 60143],\n    [26398, 60147], [33965, 60157], [35713, 60161], [20088, 60166],\n    [25283, 60176], [26709, 60180], 0, [33533, 60190], [35237, 60194],\n    [36768, 60196], [38840, 60198], [38983, 60200], [39613, 60201],\n    [24497, 60218], [26184, 60219], [26303, 60220], [60221, 162425], 0,\n    [60225, 149946], 0, 0, [60230, 131910], [26382, 60232], [26904, 60233],\n    [60235, 161367], [60236, 155618], [60239, 161278], [60240, 139418],\n    [18640, 60241], [19128, 60242], [60244, 166554], [60247, 147515],\n    [60250, 150085], [60251, 132554], [20946, 60252], [60253, 132625],\n    [22943, 60254], [60255, 138920], [15294, 60256], [60257, 146687],\n    [14747, 60262], [60264, 165352], [60265, 170441], [14178, 60266],\n    [60267, 139715], [35678, 60268], [60269, 166734], 0, [29193, 60274],\n    [60276, 134264], [60280, 132985], [36570, 60281], [21135, 60283],\n    [29041, 60285], [60288, 147274], [60289, 150183], [21948, 60290],\n    [60293, 158546], [13427, 60295], [60297, 161330], [18200, 60299],\n    [60303, 149823], [20582, 60305], [13563, 60306], [60307, 144332], 0,\n    [18300, 60310], [60311, 166216], [60315, 138640], 0, [60320, 162834],\n    [36950, 60321], [60323, 151450], [35682, 60324], [23899, 60327],\n    [60328, 158711], 0, [60331, 137500], [35562, 60332], [60333, 150006],\n    [60335, 147439], [19392, 60337], [60340, 141083], [37989, 60341],\n    [60342, 153569], [24981, 60343], [23079, 60344], [60345, 194765], 0,\n    [60348, 148769], [20074, 60350], [60351, 149812], [38486, 60352],\n    [28047, 60353], [60354, 158909], [35191, 60356], [60359, 156689], 0,\n    [31554, 60363], [60364, 168128], [60365, 133649], 0, [31301, 60369],\n    [39462, 60372], [13919, 60374], [60375, 156777], [60376, 131105],\n    [31107, 60377], [23852, 60380], [60381, 144665], 0, [18128, 60384],\n    [30011, 60386], [34917, 60387], [22710, 60389], [14108, 60390],\n    [60391, 140685], [15444, 60394], [37505, 60397], [60398, 139642],\n    [37680, 60400], [60402, 149968], [27705, 60403], [60406, 134904],\n    [34855, 60407], [35061, 60408], [60409, 141606], [60410, 164979],\n    [60411, 137137], [28344, 60412], [60413, 150058], [60414, 137248],\n    [14756, 60415], 0, 0, [17727, 60419], [26294, 60420], [60421, 171181],\n    [60422, 170148], [35139, 60423], [16607, 60427], [60428, 136714],\n    [14753, 60429], [60430, 145199], [60431, 164072], [60432, 136133],\n    [29101, 60433], [33638, 60434], [60436, 168360], 0, [19639, 60438],\n    [60439, 159919], [60440, 166315], [60445, 147834], [31555, 60446],\n    [31102, 60447], [28597, 60449], [60450, 172767], [27139, 60451],\n    [60452, 164632], [21410, 60453], [60454, 159239], [37823, 60455],\n    [26678, 60456], [38749, 59389, 60457], [60458, 164207], [60460, 158133],\n    [60461, 136173], [60462, 143919], [23941, 60464], [60465, 166960],\n    [22293, 60467], [38947, 60468], [60469, 166217], [23979, 60470],\n    [60471, 149896], [26046, 60472], [27093, 60473], [21458, 60474],\n    [60475, 150181], [60476, 147329], [15377, 60477], [26422, 60478],\n    [60482, 139169], [13770, 60490], [18682, 60493], 0, [30728, 60496],\n    [37461, 60497], [17394, 60499], [17375, 60501], [23032, 60505], 0,\n    [22155, 60518], [60520, 169449], [36882, 60541], [21953, 60546],\n    [17673, 60551], [32383, 60552], [28502, 60553], [27313, 60554],\n    [13540, 60556], [60558, 161949], [14138, 60559], 0, [60562, 163876],\n    [60565, 162366], [15851, 60567], [60569, 146615], [60574, 156248],\n    [22207, 60575], [36366, 60577], [23405, 60578], [25566, 60581], 0,\n    [25904, 60585], [22061, 60586], [21530, 60588], [60591, 171416],\n    [19581, 60592], [22050, 60593], [22046, 60594], [32585, 60595],\n    [22901, 60597], [60598, 146752], [34672, 60599], [33047, 60604],\n    [40286, 60605], [36120, 60606], [30267, 60607], [40005, 60608],\n    [30286, 60609], [30649, 60610], [37701, 60611], [21554, 60612],\n    [33096, 60613], [33527, 60614], [22053, 60615], [33074, 60616],\n    [33816, 60617], [32957, 60618], [21994, 60619], [31074, 60620],\n    [22083, 60621], [21526, 60622], [60623, 134813], [13774, 60624],\n    [22021, 57509, 60625], [22001, 60626], [26353, 60627], [60628, 164578],\n    [13869, 60629], [30004, 60630], [22000, 60631], [21946, 60632],\n    [21655, 60633], [21874, 60634], [60635, 134209], [60636, 134294],\n    [24272, 57652, 60637], [60639, 134774], [60640, 142434], [60641, 134818],\n    [40619, 60642], [32090, 60643], 0, [60645, 135285], [25245, 60646],\n    [38765, 60647], [21652, 60648], [36045, 60649], [29174, 60650],\n    [37238, 60651], [25596, 60652], [25529, 60653], [25598, 60654],\n    [21865, 60655], [60656, 142147], [40050, 60657], [60658, 143027],\n    [20890, 60659], [13535, 60660], [60661, 134567], [20903, 60662],\n    [21581, 60663], [21790, 60664], [21779, 60665], [30310, 60666],\n    [36397, 60667], [60668, 157834], [30129, 60669], [32950, 60670],\n    [34820, 60671], 0, [35015, 60673], [33206, 60674], [33820, 60675],\n    [17644, 60677], [29444, 60678], [33547, 60681], [22139, 60683],\n    [37232, 60690], [37384, 60692], [60696, 134905], [29286, 60697],\n    [18254, 60699], [60701, 163833], [16634, 60703], [40029, 60704],\n    [25887, 60705], [18675, 60707], [60708, 149472], [60709, 171388], 0,\n    [60713, 161187], 60715, [60716, 155720], [29091, 60718], [32398, 60719],\n    [40272, 60720], [13687, 60723], [27826, 60725], [21351, 60726],\n    [14812, 60728], [60731, 149016], [33325, 60734], [21579, 60735], 60739,\n    [14930, 60740], [29556, 60742], [60743, 171692], [19721, 60744],\n    [39917, 60745], 0, [19547, 60748], [60751, 171998], [33884, 60752],\n    [60754, 160434], [25390, 60757], [32037, 60758], [14890, 60761],\n    [36872, 60762], [21196, 60763], [15988, 60764], [13946, 60765],\n    [17897, 60766], [60767, 132238], [30272, 60768], [23280, 60769],\n    [60770, 134838], [30842, 60771], [18358, 60772], [22695, 60773],\n    [16575, 60774], [22140, 60775], [39819, 60776], [23924, 60777],\n    [30292, 60778], [60779, 173108], [40581, 60780], [19681, 60781], 0,\n    [14331, 60783], [24857, 60784], [60786, 148466], 60787, [22109, 60788],\n    [60792, 171526], [21044, 60793], [13741, 60795], 0, [40316, 60797],\n    [31830, 60798], [39737, 60799], [22494, 60800], [23635, 60802],\n    [25811, 60803], [60804, 169168], [60805, 156469], [34477, 60807],\n    [60808, 134440], [60811, 134513], 60812, [20990, 60813], [60814, 139023],\n    [23950, 60815], [38659, 60816], [60817, 138705], [40577, 60818],\n    [36940, 60819], [31519, 60820], [39682, 60821], [23761, 60822],\n    [31651, 60823], [25192, 60824], [25397, 60825], [39679, 60826],\n    [31695, 60827], [39722, 60828], [31870, 60829], 0, [31810, 60831],\n    [31878, 60832], [39957, 60833], [31740, 60834], [39689, 60835], 0, 39982,\n    [40794, 60839], [21875, 60840], [23491, 60841], [20477, 60842],\n    [40600, 60843], [20466, 60844], [21088, 60845], [21201, 60847],\n    [22375, 60848], [20566, 60849], [22967, 60850], [24082, 60851],\n    [38856, 60852], [40363, 60853], [36700, 60854], [21609, 60855],\n    [38836, 60856], [39232, 60857], [38842, 60858], [21292, 60859],\n    [24880, 60860], [26924, 60861], [21466, 60862], [39946, 60863],\n    [40194, 60864], [19515, 60865], [38465, 60866], [27008, 60867],\n    [20646, 60868], [30022, 60869], [60870, 137069], [39386, 60871],\n    [21107, 60872], 60873, [37209, 60874], [38529, 60875], [37212, 60876],\n    60877, [37201, 60878], [60879, 167575], [25471, 60880], [27338, 60882],\n    [22033, 60883], [37262, 60884], [30074, 60885], [25221, 60886],\n    [29519, 60888], [31856, 60889], [60890, 154657], 60892, [30422, 60894],\n    [39837, 60895], [20010, 60896], [60897, 134356], [33726, 60898],\n    [34882, 60899], 60900, [23626, 60901], [27072, 60902], 0, 0,\n    [21023, 60905], [24053, 60906], [20174, 60907], [27697, 60908],\n    [60909, 131570], [20281, 60910], [21660, 60911], 0, [21146, 60913],\n    [36226, 60914], [13822, 60915], 0, [13811, 60917], 60918, [27474, 60919],\n    [37244, 60920], [40869, 60921], [39831, 60922], [38958, 60923],\n    [39092, 60924], [39610, 60925], [40616, 60926], [40580, 60927],\n    [31508, 60929], 60930, [27642, 60931], [34840, 60932], [32632, 60933],\n    60934, [22048, 60935], [60936, 173642], [36471, 60937], [40787, 60938],\n    60939, [36308, 60940], [36431, 60941], [40476, 60942], [36353, 60943],\n    [25218, 60944], [60945, 164733], [36392, 60946], [36469, 60947],\n    [31443, 60948], [31294, 60950], [30936, 60951], [27882, 60952],\n    [35431, 60953], [30215, 60954], [40742, 60956], [27854, 60957],\n    [34774, 60958], [30147, 60959], [60960, 172722], [30803, 60961],\n    [36108, 60963], [29410, 60964], [29553, 60965], [35629, 60966],\n    [29442, 60967], [29937, 60968], [36075, 60969], [60970, 150203],\n    [34351, 60971], [24506, 60972], [34976, 60973], [17591, 60974], 60975,\n    [60977, 159237], 60978, [35454, 60979], [60980, 140571], 60981,\n    [24829, 60982], [30311, 60983], [39639, 60984], [40260, 60985],\n    [37742, 58859, 60986], [39823, 60987], [34805, 60988], 60989, 0,\n    [36087, 60991], [29484, 60992], [38689, 60993], [39856, 60994],\n    [13782, 60995], [29362, 60996], [19463, 60997], [31825, 60998],\n    [39242, 60999], [24921, 61001], [19460, 61002], [40598, 61003],\n    [24957, 61004], 61005, [22367, 61006], [24943, 61007], [25254, 61008],\n    [25145, 61009], 0, [14940, 61011], [25058, 61012], [21418, 61013],\n    [25444, 61015], [26626, 61016], [13778, 61017], [23895, 61018],\n    [36826, 61020], [61021, 167481], 61022, [20697, 61023], [30982, 61025],\n    [21298, 61026], [38456, 61027], [61028, 134971], [16485, 61029], 61030,\n    [30718, 61031], 61032, [31938, 61033], [61034, 155418], [31962, 61035],\n    [31277, 61036], [32870, 61037], [32867, 61038], [32077, 61039],\n    [29957, 61040], [29938, 61041], [35220, 61042], [33306, 61043],\n    [26380, 61044], [32866, 61045], [61046, 160902], [32859, 61047],\n    [29936, 61048], [33027, 61049], [30500, 61050], [35209, 61051],\n    [61052, 157644], [30035, 61053], [34729, 61055], [34766, 61056],\n    [33224, 61057], [34700, 61058], [35401, 61059], [36013, 61060],\n    [35651, 61061], [30507, 61062], [29944, 61063], [34010, 61064],\n    [27058, 61066], [36262, 61067], 61068, [35241, 58392, 61069], 0,\n    [28089, 61071], [34753, 61072], [61073, 147473], [29927, 61074],\n    [15835, 61075], [29046, 61076], [24740, 57702, 61077], [24988, 61078],\n    [15569, 61079], 0, [24695, 61081], 61082, [32625, 61083], 0,\n    [24809, 61086], [19326, 61087], [57344, 132423], [37595, 57345],\n    [57346, 132575], [57347, 147397], [34124, 57348], [17077, 57349],\n    [29679, 57350], [20917, 57351], [13897, 57352], [57353, 149826],\n    [57354, 166372], [37700, 57355], [57356, 137691], [33518, 57357],\n    [57358, 146632], [30780, 57359], [26436, 57360], [25311, 57361],\n    [57362, 149811], [57363, 166314], [57364, 131744], [57365, 158643],\n    [57366, 135941], [20395, 57367], [57368, 140525], [20488, 57369],\n    [57370, 159017], [57371, 162436], [57372, 144896], [57373, 150193],\n    [57374, 140563], 0, [57376, 131966], [24484, 57377], [57378, 131968],\n    [57379, 131911], [28379, 57380], [57381, 132127], 20702, [20737, 57383],\n    [13434, 57384], [20750, 57385], [39020, 57386], [14147, 57387],\n    [33814, 57388], [57389, 149924], [57390, 132231], [20832, 57391],\n    [57392, 144308], [20842, 57393], [57394, 134143], [57395, 139516],\n    [57396, 131813], [57397, 140592], [57398, 132494], [57399, 143923],\n    [57400, 137603], [23426, 57401], [34685, 57402], [57403, 132531],\n    [57404, 146585], [20914, 57405], [20920, 57406], [40244, 57407],\n    [20937, 57408], [20943, 57409], [20945, 57410], [15580, 57411],\n    [20947, 57412], [57413, 150182], [20915, 57414], 0, 0, [20973, 57417],\n    [33741, 57418], [26942, 57419], [57420, 145197], [24443, 57421],\n    [21003, 57422], [21030, 57423], [21052, 57424], [21173, 57425],\n    [21079, 57426], [21140, 57427], [21177, 57428], [21189, 57429],\n    [31765, 57430], [34114, 57431], [21216, 57432], [34317, 57433],\n    [57434, 158483], 0, [57436, 166622], [21833, 57437], [28377, 57438],\n    [57439, 147328], [57440, 133460], [57441, 147436], [21299, 57442], 0,\n    [57444, 134114], [27851, 57445], [57446, 136998], [26651, 57447],\n    [29653, 57448], [24650, 57449], [16042, 57450], [14540, 57451],\n    [57452, 136936], [29149, 57453], [17570, 57454], [21357, 57455],\n    [21364, 57456], [57457, 165547], [21374, 57458], 0, [57460, 136598],\n    [57461, 136723], [30694, 57462], [21395, 57463], [57464, 166555],\n    [21408, 57465], [21419, 57466], [21422, 57467], [29607, 57468],\n    [57469, 153458], [16217, 57470], [29596, 57471], [21441, 57472],\n    [21445, 57473], [27721, 57474], [20041, 57475], [22526, 57476],\n    [21465, 57477], [15019, 57478], [57479, 134031], [21472, 57480],\n    [57481, 147435], [57482, 142755], [21494, 57483], [57484, 134263],\n    [21523, 57485], [28793, 57486], [21803, 57487], [26199, 57488],\n    [27995, 57489], [21613, 57490], [57491, 158547], [57492, 134516],\n    [21853, 57493], [21647, 57494], [21668, 57495], [18342, 57496],\n    [57497, 136973], [57498, 134877], [15796, 57499], [57500, 134477],\n    [57501, 166332], [57502, 140952], [21831, 57503], [19693, 57504],\n    [21551, 57505], [29719, 57506], [21894, 57507], [21929, 57508], 0,\n    [57510, 137431], [57511, 147514], [17746, 57512], [57513, 148533],\n    [26291, 57514], [57515, 135348], [22071, 57516], [26317, 57517],\n    [57518, 144010], [26276, 57519], 0, [22093, 57521], [22095, 57522],\n    [30961, 57523], [22257, 57524], [38791, 57525], [21502, 57526],\n    [22272, 57527], [22255, 57528], [22253, 57529], [57530, 166758],\n    [13859, 57531], [57532, 135759], [22342, 57533], [57534, 147877],\n    [27758, 57535], [28811, 57536], [22338, 57537], [14001, 57538],\n    [57539, 158846], [22502, 57540], [57541, 136214], [22531, 57542],\n    [57543, 136276], [57544, 148323], [22566, 57545], [57546, 150517], 0,\n    [22698, 57548], [13665, 57549], [22752, 57550], [22748, 57551],\n    [57552, 135740], [22779, 57553], [23551, 57554], [22339, 57555],\n    [57556, 172368], [57557, 148088], [37843, 57558], [13729, 57559],\n    [22815, 57560], [26790, 57561], [14019, 57562], [28249, 57563],\n    [57564, 136766], [23076, 57565], 0, [57567, 136850], [34053, 57568],\n    [22985, 57569], [57570, 134478], [57571, 158849], [57572, 159018],\n    [57573, 137180], [23001, 57574], [57575, 137211], [57576, 137138],\n    [57577, 159142], [28017, 57578], [57579, 137256], [57580, 136917],\n    [23033, 57581], [57582, 159301], [23211, 57583], [23139, 57584],\n    [14054, 57585], [57586, 149929], 0, [14088, 57588], [23190, 57589],\n    [29797, 57590], [23251, 57591], [57592, 159649], [57593, 140628],\n    [57595, 137489], [14130, 57596], [57597, 136888], [24195, 57598],\n    [21200, 57599], [23414, 57600], [25992, 57601], [23420, 57602],\n    [57603, 162318], [16388, 57604], [18525, 57605], [57606, 131588],\n    [23509, 57607], [57609, 137780], [57610, 154060], [57611, 132517],\n    [23539, 57612], [23453, 57613], [19728, 57614], [23557, 57615],\n    [57616, 138052], [23571, 57617], [29646, 57618], [23572, 57619],\n    [57620, 138405], [57621, 158504], [23625, 57622], [18653, 57623],\n    [23685, 57624], [23785, 57625], [23791, 57626], [23947, 57627],\n    [57628, 138745], [57629, 138807], [23824, 57630], [23832, 57631],\n    [23878, 57632], [57633, 138916], [23738, 57634], [24023, 57635],\n    [33532, 57636], [14381, 57637], [57638, 149761], [57639, 139337],\n    [57640, 139635], [33415, 57641], [14390, 57642], [15298, 57643],\n    [24110, 57644], [27274, 57645], 0, 57647, [57648, 148668], [57649, 134355],\n    [21414, 57650], [20151, 57651], 0, [21416, 57653], [57654, 137073],\n    [24073, 57655], 57656, [57657, 164994], [24313, 57658], [24315, 57659],\n    [14496, 57660], [24316, 57661], [26686, 57662], [37915, 57663],\n    [24333, 57664], [57665, 131521], [57666, 194708], [15070, 57667],\n    [57669, 135994], [24378, 57670], [57671, 157832], [57672, 140240],\n    [57674, 140401], [24419, 57675], [57677, 159342], [24434, 57678],\n    [37696, 57679], [57680, 166454], [24487, 57681], [23990, 57682],\n    [15711, 57683], [57684, 152144], [57685, 139114], [57686, 159992],\n    [57687, 140904], [37334, 57688], [57689, 131742], [57690, 166441],\n    [24625, 57691], [26245, 57692], [14691, 57694], [15815, 57695],\n    [13881, 57696], [22416, 57697], [57698, 141236], [31089, 57699],\n    [15936, 57700], [24734, 57701], 0, 0, [57704, 149890], [57705, 149903],\n    [57706, 162387], [29860, 57707], [20705, 57708], [23200, 57709],\n    [24932, 57710], [24898, 57712], [57713, 194726], [57714, 159442],\n    [24961, 57715], [20980, 57716], [57717, 132694], [24967, 57718],\n    [23466, 57719], [57720, 147383], [57721, 141407], [25043, 57722],\n    [57723, 166813], [57724, 170333], [25040, 57725], [14642, 57726],\n    [57727, 141696], [57728, 141505], [24611, 57729], [24924, 57730],\n    [25886, 57731], [25483, 57732], [57733, 131352], [25285, 57734],\n    [57735, 137072], [25301, 57736], [57737, 142861], [25452, 57738],\n    [57739, 149983], [14871, 57740], [25656, 57741], [25592, 57742],\n    [57743, 136078], [57744, 137212], [28554, 57746], [57747, 142902], 0,\n    [57750, 153373], [25825, 57751], [25829, 57752], [38011, 57753],\n    [14950, 57754], [25658, 57755], [14935, 57756], [25933, 57757],\n    [28438, 57758], [57759, 150056], [57760, 150051], [25989, 57761],\n    [25965, 57762], [25951, 57763], 0, [26037, 57765], [57766, 149824],\n    [19255, 57767], [26065, 57768], [16600, 57769], [57770, 137257], 57771,\n    [26083, 57772], [24543, 57773], [57774, 144384], [26136, 57775],\n    [57776, 143863], [57777, 143864], [26180, 57778], [57779, 143780],\n    [57780, 143781], [26187, 57781], [57782, 134773], [26215, 57783],\n    [57784, 152038], [26227, 57785], 0, [57788, 143921], [57789, 165364],\n    [57790, 143816], [57791, 152339], [30661, 57792], [57793, 141559],\n    [39332, 57794], [26370, 57795], [57796, 148380], [57797, 150049],\n    [27130, 57799], [57800, 145346], 0, [26471, 57802], [26466, 57803],\n    [57804, 147917], [57805, 168173], [26583, 57806], [17641, 57807],\n    [26658, 57808], [28240, 57809], [37436, 57810], [26625, 57811],\n    [57812, 144358], [57813, 159136], [26717, 57814], [57815, 144495],\n    [27105, 57816], [27147, 57817], [57818, 166623], [26995, 57819],\n    [26819, 57820], [57821, 144845], [26881, 57822], [26880, 57823],\n    [14849, 57825], [57826, 144956], [15232, 57827], [26540, 57828],\n    [26977, 57829], [57830, 166474], [17148, 57831], [26934, 57832],\n    [27032, 57833], [15265, 57834], [57835, 132041], [33635, 57836],\n    [20624, 57837], [27129, 57838], [57839, 144985], [57840, 139562],\n    [27205, 57841], [57842, 145155], [27293, 57843], [15347, 57844],\n    [26545, 57845], [27336, 57846], [57847, 168348], [15373, 57848],\n    [27421, 57849], [57850, 133411], [24798, 57851, 60308], [27445, 57852],\n    [27508, 57853], [57854, 141261], [28341, 57855], [57856, 146139], 0,\n    [57858, 137560], [14144, 57859], [21537, 57860], [57861, 146266],\n    [27617, 57862], [57863, 147196], [27612, 57864], [27703, 57865],\n    [57866, 140427], [57867, 149745], [57868, 158545], [27738, 57869],\n    [33318, 57870], [27769, 57871], [57872, 146876], [17605, 57873],\n    [57874, 146877], [57875, 147876], [57876, 149772], [57877, 149760],\n    [57878, 146633], [14053, 57879], [15595, 57880], [57881, 134450],\n    [39811, 57882], [57883, 143865], [57884, 140433], [32655, 57885],\n    [26679, 57886], [57887, 159013], [57888, 159137], [57889, 159211],\n    [28054, 57890], [27996, 57891], [28284, 57892], [28420, 57893],\n    [57894, 149887], [57895, 147589], [57896, 159346], [34099, 57897],\n    [57898, 159604], [20935, 57899], 0, 0, [33838, 57902], [57903, 166689], 0,\n    [57905, 146991], [29779, 57906], [57907, 147330], [31180, 57908],\n    [28239, 57909], [23185, 57910], [57911, 143435], [28664, 57912],\n    [14093, 57913], [28573, 57914], [57915, 146992], [28410, 57916],\n    [57917, 136343], [57918, 147517], [17749, 57919], [37872, 57920],\n    [28484, 57921], [28508, 57922], [15694, 57923], [28532, 57924],\n    [57925, 168304], [15675, 57926], [28575, 57927], [57928, 147780],\n    [28627, 57929], [57930, 147601], [57931, 147797], [57932, 147513],\n    [57933, 147440], [57934, 147380], [57935, 147775], [20959, 57936],\n    [57937, 147798], [57938, 147799], [57939, 147776], [57940, 156125],\n    [28747, 57941], [28798, 57942], [28839, 57943], 0, [28876, 57945],\n    [28885, 57946], [28886, 57947], [28895, 57948], [16644, 57949],\n    [15848, 57950], [29108, 57951], [29078, 57952], [57953, 148087],\n    [28971, 57954], [28997, 57955], [23176, 57956], [29002, 57957], 0,\n    [57960, 148325], [29007, 57961], [37730, 57962], [57963, 148161],\n    [28972, 57964], [57965, 148570], [57966, 150055], [57967, 150050],\n    [29114, 57968], [57969, 166888], [28861, 57970], [29198, 57971],\n    [37954, 57972], [29205, 57973], [22801, 57974], [37955, 57975],\n    [29220, 57976], [37697, 57977], [57978, 153093], [29230, 57979],\n    [29248, 57980], [57981, 149876], [26813, 57982], [29269, 57983],\n    [29271, 57984], [15957, 57985], [57986, 143428], [26637, 57987],\n    [28477, 57988], [29314, 57989], 0, [29483, 57991], [57992, 149539],\n    [57993, 165931], [18669, 57994], [57995, 165892], [29480, 57996],\n    [29486, 57997], [29647, 57998], [29610, 57999], [58000, 134202],\n    [58001, 158254], [29641, 58002], [29769, 58003], [58004, 147938],\n    [58005, 136935], [58006, 150052], [26147, 58007], [14021, 58008],\n    [58009, 149943], [58010, 149901], [58011, 150011], [29687, 58012],\n    [29717, 58013], [26883, 58014], [58015, 150054], [29753, 58016],\n    [16087, 58018], 0, [58020, 141485], [29792, 58021], [58022, 167602],\n    [29767, 58023], [29668, 58024], [29814, 58025], [33721, 58026],\n    [29804, 58027], [29812, 58029], [37873, 58030], [27180, 58031],\n    [29826, 58032], [18771, 58033], [58034, 150156], [58035, 147807],\n    [58036, 150137], [58037, 166799], [23366, 58038], [58039, 166915],\n    [58040, 137374], [29896, 58041], [58042, 137608], [29966, 58043],\n    [29982, 58045], [58046, 167641], [58047, 137803], [23511, 58048],\n    [58049, 167596], [37765, 58050], [30029, 58051], [30026, 58052],\n    [30055, 58053], [30062, 58054], [58055, 151426], [16132, 58056],\n    [58057, 150803], [30094, 58058], [29789, 58059], [30110, 58060],\n    [30132, 58061], [30210, 58062], [30252, 58063], [30289, 58064],\n    [30287, 58065], [30319, 58066], 58067, [58068, 156661], [30352, 58069],\n    [33263, 58070], [14328, 58071], [58072, 157969], [58073, 157966],\n    [30369, 58074], [30373, 58075], [30391, 58076], [30412, 58077],\n    [58078, 159647], [33890, 58079], [58080, 151709], [58081, 151933],\n    [58082, 138780], [30494, 58083], [30502, 58084], [30528, 58085],\n    [25775, 58086], [58087, 152096], [30552, 58088], [58089, 144044],\n    [30639, 58090], [58091, 166244], [58092, 166248], [58093, 136897],\n    [30708, 58094], 0, [26826, 58098], [30895, 58099], [30919, 58100],\n    [30931, 58101], [38565, 58102], [31022, 58103], [58104, 153056],\n    [30935, 58105], [31028, 58106], [30897, 58107], [58108, 161292],\n    [36792, 58109], [34948, 58110], [58113, 140828], [31110, 58114],\n    [35072, 58115], [26882, 58116], [31104, 58117], [58118, 153687],\n    [31133, 58119], [58120, 162617], [31036, 58121], [31145, 58122],\n    [28202, 58123], [58124, 160038], [16040, 58125], [31174, 58126],\n    [58127, 168205], [31188, 58128], 0, [21797, 62526], 0, [62528, 134210],\n    [62529, 134421], [62530, 151851], [21904, 62531], [62532, 142534],\n    [14828, 62533], [62534, 131905], [36422, 62535], [62536, 150968],\n    [62537, 169189], 0, [62539, 164030], [30586, 62540], [62541, 142392],\n    [14900, 62542], [18389, 62543], [62544, 164189], [62545, 158194],\n    [62546, 151018], [25821, 62547], [62548, 134524], [62549, 135092],\n    [62550, 134357], 0, [25741, 62552], [36478, 62553], [62554, 134806], 0,\n    [62556, 135012], [62557, 142505], [62558, 164438], [62559, 148691], 0,\n    [62561, 134470], [62562, 170573], [62563, 164073], [18420, 62564],\n    [62565, 151207], [62566, 142530], [39602, 62567], [14951, 62568],\n    [62569, 169460], [16365, 62570], [13574, 62571], [62572, 152263],\n    [62573, 169940], 0, [62575, 142660], [40302, 62576], [38933, 62577], 0,\n    [17369, 62579], 0, [25780, 62581], [21731, 62582], 0, [62584, 142282], 0,\n    [14843, 62586], 0, [62588, 157402], [62589, 157462], [62590, 162208],\n    [25834, 62591], [62592, 151634], [62593, 134211], [36456, 62594], 0,\n    [62596, 166732], [62597, 132913], 0, [18443, 62599], [62600, 131497],\n    [16378, 62601], [22643, 62602], [62603, 142733], 0, [62605, 148936],\n    [62606, 132348], [62607, 155799], [62608, 134988], 0, [21881, 62610], 0,\n    [17338, 62612], 0, [19124, 62614], [62615, 141926], [62616, 135325],\n    [33194, 62617], [39157, 62618], [62619, 134556], [25465, 62620],\n    [14846, 62621], [62622, 141173], [36288, 62623], [22177, 62624],\n    [25724, 62625], [15939, 62626], 0, [62628, 173569], [62629, 134665],\n    [62630, 142031], 0, 0, [62633, 135368], [62634, 145858], [14738, 62635],\n    [14854, 62636], [62637, 164507], [13688, 62638], [62639, 155209],\n    [62640, 139463], 0, 0, [62643, 142514], [62644, 169760], [13500, 62645],\n    [27709, 62646], [62647, 151099], 0, 0, [62650, 161140], [62651, 142987],\n    [62652, 139784], [62653, 173659], [62654, 167117], [62655, 134778],\n    [62656, 134196], [62683, 161337], [62684, 142286], [62687, 142417],\n    [14872, 62689], [62691, 135367], [62693, 173618], [62695, 167122],\n    [62696, 167321], [62697, 167114], [38314, 62698], 0, [62706, 161630],\n    [28992, 62708], 0, [20822, 62385], 0, [20616, 62487], 0, [13459, 62489],\n    [20870, 62491], [24130, 63037], [20997, 62495], [21031, 62436],\n    [21113, 62497], 0, [13651, 62504], [21442, 62505], [21343, 62715], 0,\n    [21823, 62520], 0, [21976, 59986], [13789, 62722], [22049, 63067], 0,\n    [22100, 60044], [60148, 135291], 0, [60153, 135379], 0, [61095, 135934], 0,\n    0, [14265, 60104], [23745, 61099], [23829, 63066], [23894, 63030],\n    [14392, 63036], [20097, 62477], [24253, 63038], [14612, 63042],\n    [25017, 63050], [25232, 63054], [25368, 63056], [25690, 63063],\n    [25745, 62381], [33133, 62709], [33156, 59922], [33171, 59924],\n    [26624, 63080], [15292, 63093], [29327, 60517], [29389, 59781], 0,\n    [29497, 59785], [30018, 59811], [30172, 59817], [16320, 59818],\n    [60278, 151205], [16343, 59820], 0, 30336, [30348, 59824, 151388],\n    [16552, 59845], [30777, 59846], [16643, 59855], [31377, 59863],\n    [31771, 59876], [31981, 59884], [32659, 62658], [32686, 59892], 0,\n    [33535, 59936], [22623, 59981], [34482, 59960], 0, [34699, 59963],\n    [35143, 59969], 0, [35369, 59972], 0, [36465, 59988], [60484, 164233],\n    [36528, 59990], 0, [37214, 62443], [37260, 62441], [39182, 60051],\n    [39196, 60054], 0, 0, [39809, 60066], [40384, 60080], [40339, 60078],\n    [40620, 60085], [19857, 60540], 0, 37818, [40571, 60084], [28809, 63148],\n    [29512, 59788], 0, [31129, 59858], [36791, 59997], 0, [39234, 60056],\n    {s: 193}, 8364, {s: 4}, [12443, 63518], [12444, 63519], [11904, 63520],\n    {f: 5, c: 62211}, [62216, 131340], 62217, [62218, 131281], [62219, 131277],\n    {f: 2, c: 62220}, [62222, 131275], [62223, 139240], 62224, [62225, 131274],\n    {f: 4, c: 62226}, [62230, 131342], {f: 2, c: 62231}, {f: 2, c: 62776},\n    [62778, 138177], [62779, 194680], [12205, 38737, 62780], [62781, 131206],\n    [20059, 62782], [20155, 62783], [13630, 62784], [23587, 62785],\n    [24401, 62786], [24516, 62787], [14586, 62788], [25164, 62789],\n    [25909, 62790], [27514, 62791], [27701, 62792], [27706, 62793],\n    [28780, 62794], [29227, 62795], [20012, 62796], [29357, 62797],\n    [62798, 149737], [32594, 62799], [31035, 62800], [31993, 62801],\n    [32595, 62802], [62803, 156266], [13505, 62804], [62806, 156491],\n    [32770, 62807], [32896, 62808], [62809, 157202], [62810, 158033],\n    [21341, 62811], [34916, 62812], [35265, 62813], [62814, 161970],\n    [35744, 62815], [36125, 62816], [38021, 62817], [38264, 62818],\n    [38271, 62819], [38376, 62820], [62821, 167439], [38886, 62822],\n    [39029, 62823], [39118, 62824], [39134, 62825], [39267, 62826],\n    [62827, 170000], [40060, 62828], [40479, 62829], [40644, 62830],\n    [27503, 62831], [62832, 63751], [20023, 62833], [62834, 131207],\n    [38429, 62835], [25143, 62836], [38050, 62837], [11908, 63521],\n    [11910, 63522], [11911, 63523], [11912, 63524], [11914, 63525],\n    [11916, 63526], [11917, 63527], [11925, 63528], [11932, 63529],\n    [11941, 63531], [11943, 63532], [11946, 63533], [11948, 63534],\n    [11950, 63535], [11958, 63536], [11964, 63537], [11966, 63538],\n    [11978, 63540], [11980, 63541], [11981, 63542], [11983, 63543],\n    [11990, 63544], [11991, 63545], [11998, 63546], [62368, 172969],\n    [62369, 135493], [25866, 62371], [20029, 62374], [28381, 62375],\n    [40270, 62376], [37343, 62377], [62380, 161589], [20250, 62382],\n    [20264, 62383], [20392, 62384], [20852, 62386], [20892, 62387],\n    [20964, 62388], [21153, 62389], [21160, 62390], [21307, 62391],\n    [21326, 62392], [21457, 62393], [21464, 62394], [22242, 62395],\n    [22768, 62396], [22788, 62397], [22791, 62398], [22834, 62399],\n    [22836, 62400], [23398, 62401], [23454, 62402], [23455, 62403],\n    [23706, 62404], [24198, 62405], [24635, 62406], [25993, 62407],\n    [26622, 62408], [26628, 62409], [26725, 62410], [27982, 62411],\n    [28860, 62412], [30005, 62413], [32420, 62414], [32428, 62415],\n    [32442, 62416], [32455, 62417], [32463, 62418], [32479, 62419],\n    [32518, 62420], [32567, 62421], [33402, 62422], [33487, 62423],\n    [33647, 62424], [35270, 62425], [35774, 62426], [35810, 62427],\n    [36710, 62428], [36711, 62429], [36718, 62430], [29713, 62431],\n    [31996, 62432], [32205, 62433], [26950, 62434], [31433, 62435],\n    [30904, 62442], [32956, 62444], [36107, 62446], [33014, 62447],\n    [62448, 133607], [32927, 62451], [40647, 62452], [19661, 62453],\n    [40393, 62454], [40460, 62455], [19518, 62456], [62457, 171510],\n    [62458, 159758], [40458, 62459], [62460, 172339], [13761, 62461],\n    [28314, 62463], [33342, 62464], [29977, 62465], [18705, 62467],\n    [39532, 62468], [39567, 62469], [40857, 62470], [31111, 62471],\n    [62472, 164972], [62473, 138698], [62474, 132560], [62475, 142054],\n    [20004, 62476], [20096, 62478], [20103, 62479], [20159, 62480],\n    [20203, 62481], [20279, 62482], [13388, 62483], [20413, 62484],\n    [15944, 62485], [20483, 62486], [13437, 62488], [13477, 62490],\n    [22789, 62492], [20955, 62493], [20988, 62494], [20105, 62496],\n    [21136, 62498], [21287, 62499], [13767, 62500], [21417, 62501],\n    [13649, 62502], [21424, 62503], [21539, 62506], [13677, 62507],\n    [13682, 62508], [13953, 62509], [21651, 62510], [21667, 62511],\n    [21684, 62512], [21689, 62513], [21712, 62514], [21743, 62515],\n    [21784, 62516], [21795, 62517], [21800, 62518], [13720, 62519],\n    [13733, 62521], [13759, 62522], [21975, 62523], [13765, 62524],\n    [62525, 163204], [16467, 62538], [62551, 135412], [62555, 134155],\n    [62574, 161992], [62580, 155813], [62583, 142668], [62585, 135287],\n    [62587, 135279], [62595, 139681], [62609, 134550], [16571, 62611],\n    [62631, 142537], [22098, 62641], [62642, 134961], [62657, 157724],\n    [62659, 135375], [62660, 141315], [62661, 141625], [13819, 62662],\n    [62663, 152035], [62664, 134796], [62665, 135053], [62666, 134826],\n    [16275, 62667], [62668, 134960], [62669, 134471], [62670, 135503],\n    [62671, 134732], [62673, 134827], [62674, 134057], [62675, 134472],\n    [62676, 135360], [62677, 135485], [16377, 62678], [62679, 140950],\n    [25650, 62680], [62681, 135085], [62682, 144372], [62685, 134526],\n    [62686, 134527], [62688, 142421], [62690, 134808], [62692, 134958],\n    [62694, 158544], [21708, 62699], [33476, 62700], [21945, 62701],\n    [62703, 171715], [39974, 62704], [39606, 62705], [62707, 142830],\n    [33004, 62710], [23580, 62711], [62712, 157042], [33076, 62713],\n    [14231, 62714], [62716, 164029], [37302, 62717], [62718, 134906],\n    [62719, 134671], [62720, 134775], [62721, 134907], [62723, 151019],\n    [13833, 62724], [62725, 134358], [22191, 62726], [62727, 141237],\n    [62728, 135369], [62729, 134672], [62730, 134776], [62731, 135288],\n    [62732, 135496], [62733, 164359], [62734, 136277], [62735, 134777],\n    [62736, 151120], [62737, 142756], [23124, 62738], [62739, 135197],\n    [62740, 135198], [62741, 135413], [62742, 135414], [22428, 62743],\n    [62744, 134673], [62745, 161428], [62746, 164557], [62747, 135093],\n    [62748, 134779], [62749, 151934], [14083, 62750], [62751, 135094],\n    [62752, 135552], [62753, 152280], [62754, 172733], [62755, 149978],\n    [62756, 137274], [62757, 147831], [62758, 164476], [22681, 62759],\n    [21096, 62760], [13850, 62761], [62762, 153405], [31666, 62763],\n    [23400, 62764], [18432, 62765], [19244, 62766], [40743, 62767],\n    [18919, 62768], [39967, 62769], [39821, 62770], [62771, 154484],\n    [62772, 143677], [22011, 62773], [13810, 62774], [22153, 62775],\n    [23870, 63028], [23880, 63029], [15868, 63031], [14351, 63032],\n    [23972, 63033], [23993, 63034], [14368, 63035], [24357, 63039],\n    [24451, 63040], [14600, 63041], [14655, 63043], [14669, 63044],\n    [24791, 63045], [24893, 63046], [23781, 63047], [14729, 63048],\n    [25015, 63049], [25039, 63051], [14776, 63052], [25132, 63053],\n    [25317, 63055], [14840, 63057], [22193, 63058], [14851, 63059],\n    [25570, 63060], [25595, 63061], [25607, 63062], [14923, 63064],\n    [25792, 63065], [40863, 63068], [14999, 63069], [25990, 63070],\n    [15037, 63071], [26111, 63072], [26195, 63073], [15090, 63074],\n    [26258, 63075], [15138, 63076], [26390, 63077], [15170, 63078],\n    [26532, 63079], [15192, 63081], [26698, 63082], [26756, 63083],\n    [15218, 63084], [15217, 63085], [15227, 63086], [26889, 63087],\n    [26947, 63088], [29276, 63089], [26980, 63090], [27039, 63091],\n    [27013, 63092], [27094, 63094], [15325, 63095], [27237, 63096],\n    [27252, 63097], [27249, 63098], [27266, 63099], [15340, 63100],\n    [27289, 63101], [15346, 63102], [27307, 63103], [27317, 63104],\n    [27348, 63105], [27382, 63106], [27521, 63107], [27585, 63108],\n    [27626, 63109], [27765, 63110], [27818, 63111], [15563, 63112],\n    [27906, 63113], [27910, 63114], [27942, 63115], [28033, 63116],\n    [15599, 63117], [28068, 63118], [28081, 63119], [28181, 63120],\n    [28184, 63121], [28201, 63122], [28294, 63123], [63124, 166336],\n    [28347, 63125], [28386, 63126], [28378, 63127], [40831, 63128],\n    [28392, 63129], [28393, 63130], [28452, 63131], [28468, 63132],\n    [15686, 63133], [63134, 147265], [28545, 63135], [28606, 63136],\n    [15722, 63137], [15733, 63138], [29111, 63139], [23705, 63140],\n    [15754, 63141], [28716, 63142], [15761, 63143], [28752, 63144],\n    [28756, 63145], [28783, 63146], [28799, 63147], [63149, 131877],\n    [17345, 63150], [13809, 63151], [63152, 134872], [13902, 58134],\n    [15789, 58172], [58173, 154725], [26237, 58183], [31860, 58188],\n    [29837, 58197], [32402, 58215], [17667, 58232], [58260, 151480],\n    [58270, 133901], [58277, 158474], [13438, 58311], [58317, 143087],\n    [58325, 146613], [58343, 159385], [34673, 58364], [25537, 58385],\n    [30583, 58387], [35210, 58390], [58406, 147343], [35660, 58415],\n    [58440, 150729], [18730, 58464], [58471, 172052], [58472, 165564],\n    [58473, 165121], [15088, 58490], [28815, 58511], [58529, 140922],\n    [58637, 158120], [58646, 148043], [26760, 58662], [58664, 139611],\n    [40802, 58702], [37830, 58793], [58802, 131967], [37734, 58888],\n    [37519, 58901], [34324, 58954], [58986, 173147], [16784, 59010],\n    [26511, 59045], [26654, 59048], [14435, 59051], [59077, 149996],\n    [15129, 59128], [33942, 59176], [59241, 149858], [14818, 59254],\n    [33920, 59259], [17262, 59328], [38769, 59402], [39323, 59427],\n    [18733, 59499], [28439, 59703], [59704, 160009], [28838, 59746],\n    [59752, 150095], [32357, 59753], [23855, 59755], [15859, 59756],\n    [59758, 150109], [59759, 137183], [32164, 59760], [33830, 59761],\n    [21637, 59762], [59763, 146170], [59765, 131604], [22398, 59766],\n    [59767, 133333], [59768, 132633], [16357, 59769], [59770, 139166],\n    [59771, 172726], [28675, 59772], [59773, 168283], [23920, 59774],\n    [29583, 59775], [59777, 166489], [59778, 168992], [20424, 59779],\n    [32743, 59780], [29456, 59782], [29496, 59784], [29505, 59787],\n    [16041, 59789], [29173, 59792], [59793, 149746], [29665, 59794],\n    [16074, 59796], [16081, 59798], [29721, 59801], [29726, 59802],\n    [29727, 59803], [16098, 59804], [16112, 59805], [16116, 59806],\n    [16122, 59807], [29907, 59808], [16142, 59809], [16211, 59810],\n    [30061, 59812], [30066, 59813], [30093, 59814], [16252, 59815],\n    [30152, 59816], [30285, 59819], [30324, 59821], [16348, 59822],\n    [30330, 59823], [29064, 59825], [22051, 59826], [35200, 59827],\n    [16413, 59829], [30531, 59830], [16441, 59831], [16453, 59833],\n    [13787, 59834], [30616, 59835], [16490, 59836], [16495, 59837],\n    [30654, 59839], [30667, 59840], [30744, 59842], [30748, 59844],\n    [30791, 59847], [30801, 59848], [30822, 59849], [33864, 59850],\n    [59851, 152885], [31027, 59852], [31026, 59854], [16649, 59856],\n    [31121, 59857], [31238, 59860], [16743, 59862], [16818, 59864],\n    [31420, 59865], [33401, 59866], [16836, 59867], [31439, 59868],\n    [31451, 59869], [16847, 59870], [31586, 59872], [31596, 59873],\n    [31611, 59874], [31762, 59875], [16992, 59877], [17018, 59878],\n    [31867, 59879], [31900, 59880], [17036, 59881], [31928, 59882],\n    [17044, 59883], [36755, 59885], [28864, 59886], [59887, 134351],\n    [32207, 59888], [32212, 59889], [32208, 59890], [32253, 59891],\n    [32692, 59893], [29343, 59894], [17303, 59895], [32800, 59896],\n    [32805, 59897], [32814, 59899], [32817, 59900], [32852, 59901],\n    [22452, 59903], [28832, 59904], [32951, 59905], [33001, 59906],\n    [17389, 59907], [33036, 59908], [33038, 59910], [33042, 59911],\n    [33044, 59913], [17409, 59914], [15161, 59915], [33110, 59916],\n    [33113, 59917], [33114, 59918], [17427, 59919], [33148, 59921],\n    [17445, 59923], [17453, 59925], [33189, 59926], [22511, 59927],\n    [33217, 59928], [33252, 59929], [33364, 59930], [17551, 59931],\n    [33398, 59933], [33482, 59934], [33496, 59935], [17584, 59937],\n    [33623, 59938], [38505, 59939], [33797, 59941], [28917, 59942],\n    [33892, 59943], [33928, 59945], [17668, 59946], [33982, 59947],\n    [34017, 59948], [34040, 59949], [34064, 59950], [34104, 59951],\n    [34130, 59952], [17723, 59953], [34159, 59954], [34160, 59955],\n    [34272, 59956], [17783, 59957], [34418, 59958], [34450, 59959],\n    [34543, 59961], [38469, 59962], [17926, 59964], [17943, 59965],\n    [34990, 59966], [35071, 59967], [35108, 59968], [35217, 59970],\n    [59971, 162151], [35384, 59973], [35476, 59974], [35508, 59975],\n    [35921, 59976], [36052, 59977], [36082, 59978], [36124, 59979],\n    [18328, 59980], [36291, 59982], [18413, 59983], [36410, 59985],\n    [22356, 59987], [22005, 59989], [18487, 59991], [36558, 59992],\n    [36578, 59993], [36580, 59994], [36589, 59995], [36594, 59996],\n    [36801, 59998], [36810, 59999], [36812, 60000], [36915, 60001],\n    [18605, 60003], [39136, 60004], [37395, 60005], [18718, 60006],\n    [37416, 60007], [37464, 60008], [37483, 60009], [37553, 60010],\n    [37550, 60011], [37567, 60012], [37603, 60013], [37611, 60014],\n    [37619, 60015], [37620, 60016], [37629, 60017], [37699, 60018],\n    [37764, 60019], [37805, 60020], [18757, 60021], [18769, 60022],\n    [37911, 60024], [37917, 60026], [37933, 60027], [37950, 60028],\n    [18794, 60029], [37972, 60030], [38009, 60031], [38189, 60032],\n    [38306, 60033], [18855, 60034], [38388, 60035], [38451, 60036],\n    [18917, 60037], [18980, 60039], [38720, 60040], [18997, 60041],\n    [38834, 60042], [38850, 60043], [19172, 60045], [39097, 60047],\n    [19225, 60048], [39153, 60049], [22596, 60050], [39193, 60052],\n    [39223, 60055], [39261, 60057], [39266, 60058], [19312, 60059],\n    [39365, 60060], [19357, 60061], [39484, 60062], [39695, 60063],\n    [39785, 60065], [39901, 60067], [39921, 60068], [39924, 60069],\n    [19565, 60070], [39968, 60071], [14191, 60072], [60073, 138178],\n    [40265, 60074], [40702, 60076], [22096, 60077], [40381, 60079],\n    [40444, 60081], [38134, 60082], [36790, 60083], [40625, 60086],\n    [40637, 60087], [40646, 60088], [38108, 60089], [40674, 60090],\n    [40689, 60091], [40696, 60092], [40772, 60094], [60095, 131220],\n    [60096, 131767], [60097, 132000], [38083, 60099], [60101, 132311],\n    [38081, 60103], [60105, 132565], [60106, 132629], [60107, 132726],\n    [60108, 136890], [22359, 60109], [29043, 60110], [60111, 133826],\n    [60112, 133837], [60113, 134079], [60115, 194619], [60116, 134091],\n    [21662, 60117], [60118, 134139], [60119, 134203], [60120, 134227],\n    [60121, 134245], [60122, 134268], [60124, 134285], [60126, 134325],\n    [60127, 134365], [60128, 134381], [60129, 134511], [60130, 134578],\n    [60131, 134600], [60135, 134660], [60136, 134670], [60137, 134871],\n    [60138, 135056], [60139, 134957], [60140, 134771], [60142, 135100],\n    [60144, 135260], [60145, 135247], [60146, 135286], [60149, 135304],\n    [60150, 135318], [13895, 60151], [60152, 135359], [60154, 135471],\n    [60155, 135483], [21348, 60156], [60158, 135907], [60159, 136053],\n    [60160, 135990], [60162, 136567], [60163, 136729], [60164, 137155],\n    [60165, 137159], [28859, 60167], [60168, 137261], [60169, 137578],\n    [60170, 137773], [60171, 137797], [60172, 138282], [60173, 138352],\n    [60174, 138412], [60175, 138952], [60177, 138965], [60178, 139029],\n    [29080, 60179], [60181, 139333], [27113, 60182], [14024, 60183],\n    [60184, 139900], [60185, 140247], [60186, 140282], [60187, 141098],\n    [60188, 141425], [60189, 141647], [60191, 141671], [60192, 141715],\n    [60193, 142037], [60195, 142056], [60197, 142094], [60199, 142143],\n    [60202, 142412], [60204, 142472], [60205, 142519], [60206, 154600],\n    [60207, 142600], [60208, 142610], [60209, 142775], [60210, 142741],\n    [60211, 142914], [60212, 143220], [60213, 143308], [60214, 143411],\n    [60215, 143462], [60216, 144159], [60217, 144350], [60222, 144743],\n    [60223, 144883], [60227, 144922], [60228, 145174], [22709, 60231],\n    [60234, 146087], [60237, 146961], [60238, 147129], [60243, 147737],\n    [60245, 148206], [60246, 148237], [60248, 148276], [60249, 148374],\n    [60258, 148484], [60259, 148694], [22408, 60260], [60261, 149108],\n    [60263, 149295], [60271, 149522], [60272, 149755], [60273, 150037],\n    [60275, 150208], [22885, 60277], [60279, 151430], [60282, 151596],\n    [22335, 60284], [60286, 152217], [60287, 152601], [60291, 152646],\n    [60292, 152686], [60296, 152895], [60298, 152926], [60300, 152930],\n    [60301, 152934], [60302, 153543], [60304, 153693], [60309, 153859],\n    [60312, 154286], [60313, 154505], [60314, 154630], [22433, 60316],\n    [29009, 60317], [60319, 155906], [60322, 156082], [60325, 156674],\n    [60326, 156746], [60330, 156804], [60334, 156808], [60336, 156946],\n    [60338, 157119], [60339, 157365], [22201, 60347], [60349, 157436],\n    [13848, 60355], [60357, 157593], [60358, 157806], [60360, 157790],\n    [60362, 157895], [60366, 157990], [60368, 158009], [60371, 158202],\n    [60373, 158253], [60378, 158260], [60379, 158555], [60383, 158621],\n    [60385, 158884], [60388, 159150], [60392, 159819], [60393, 160205],\n    [60395, 160384], [60396, 160389], [60399, 160395], [60401, 160486],\n    [38047, 60404], [60405, 160848], [14009, 60416], [60424, 161740],\n    [60425, 161880], [22230, 60426], [60435, 162269], [60441, 162301],\n    [60442, 162314], [60443, 162571], [60444, 163174], [60448, 163849],\n    [60459, 163875], [60463, 163912], [60466, 163971], [60479, 163984],\n    [60480, 164084], [60481, 164142], [60483, 164175], [60485, 164271],\n    [60486, 164378], [60487, 164614], [60488, 164655], [60489, 164746],\n    [60491, 164968], [60492, 165546], [25574, 60494], [60495, 166230],\n    [60498, 166328], [60500, 166375], [60502, 166376], [60503, 166726],\n    [60504, 166868], [60506, 166921], [60508, 167877], [60509, 168172],\n    [60511, 168208], [60512, 168252], [15863, 60513], [60514, 168286],\n    [60515, 150218], [36816, 60516], [60519, 169191], [60521, 169392],\n    [60522, 169400], [60523, 169778], [60524, 170193], [60525, 170313],\n    [60526, 170346], [60527, 170435], [60528, 170536], [60529, 170766],\n    [60530, 171354], [60531, 171419], [32415, 60532], [60533, 171768],\n    [60534, 171811], [19620, 60535], [38215, 60536], [60537, 172691],\n    [29090, 60538], [60539, 172799], [60542, 173515], [19868, 60543],\n    [60544, 134300], [36798, 60545], [36794, 60547], [60548, 140464],\n    [36793, 60549], [60550, 150163], [20202, 60555], [60557, 166700],\n    [36480, 60560], [60561, 137205], [60563, 166764], [60564, 166809],\n    [60566, 157359], [60568, 161365], [60570, 153141], [60571, 153942],\n    [20122, 60572], [60573, 155265], [60576, 134765], [60579, 147080],\n    [60580, 150686], [60583, 137206], [60584, 137339], [60587, 154698],\n    [60589, 152337], [15814, 60590], [60596, 155352], [19996, 60600],\n    [60601, 135146], [60602, 134473], [60603, 145082], [60638, 151880],\n    [21982, 60644], [34694, 60672], [60676, 135361], [60679, 149254],\n    [23440, 60680], [60682, 157843], [60684, 141044], [60685, 163119],\n    [60686, 147875], [60687, 163187], [60688, 159440], [60689, 160438],\n    [60691, 135641], [60693, 146684], [60694, 173737], [60695, 134828],\n    [60698, 138402], [60700, 151490], [60702, 135147], [60706, 142752],\n    [60710, 135148], [60711, 134666], [60714, 135149], [60717, 135559],\n    [19994, 60721], [19972, 60722], [23309, 60724], [13996, 60727],\n    [21373, 60729], [13989, 60730], [22682, 60732], [60733, 150382],\n    [22442, 60736], [60737, 154261], [60738, 133497], [60741, 140389],\n    [60746, 146686], [60747, 171824], [60749, 151465], [60750, 169374],\n    [60753, 146870], [60755, 157619], [60756, 145184], [60759, 147191],\n    [60760, 146988], [60785, 143578], [60789, 135849], [22439, 60790],\n    [60791, 149859], [60794, 159918], [60801, 137068], [60806, 160100],\n    [60809, 159010], [60810, 150242], [39963, 60837], [60838, 149822],\n    [15878, 60846], [60881, 159011], [60887, 132092], [60891, 146685],\n    [60893, 149785], [22394, 60904], [21722, 60912], [29050, 60928],\n    [60949, 150135], [60955, 166490], [60962, 194624], [60976, 137275],\n    [61000, 155993], [61014, 144373], [61019, 166850], [61024, 138566],\n    [61054, 159441], [13877, 61065], [61084, 166701], [21024, 61088],\n    [15384, 61089], [61090, 146631], [61091, 155351], [61092, 161366],\n    [61093, 152881], [61094, 137540], [61096, 170243], [61097, 159196],\n    [61098, 159917], [61100, 156077], [61101, 166415], [61102, 145015],\n    [61103, 131310], [61104, 157766], [61105, 151310], [17762, 61106],\n    [23327, 61107], [61108, 156492], [40784, 61109], [40614, 61110],\n    [61111, 156267], [20962, 57415], [21314, 57416], [26285, 57520],\n    [22620, 57547], [21843, 57566], [15749, 57594], [24928, 57608],\n    [18606, 57668], [38845, 57676], [57693, 137335], [24755, 57703],\n    [33828, 57711], [38932, 57748], [57749, 147596], [57764, 143486],\n    [57787, 138813], [15147, 57798], [15666, 57824], [57857, 132021],\n    [28801, 57944], [23708, 57959], [58017, 132547], [14128, 58028],\n    [58096, 136054], [58097, 150034], [58111, 166699], [58112, 155779],\n    [256, 62233], [193, 62234], [461, 62235], [192, 62236], [274, 62237],\n    [201, 62238], [282, 62239], [200, 62240], [332, 62241], [211, 62242],\n    [465, 62243], [210, 62244], 62245, [7870, 62246], 62247, [7872, 62248],\n    [202, 62249], [257, 62250], [225, 62251], [462, 62252], [224, 62253],\n    [593, 62254], [275, 62255], [233, 62256], [283, 62257], [232, 62258],\n    [299, 62259], [237, 62260], [464, 62261], [236, 62262], [333, 62263],\n    [243, 62264], [466, 62265], [242, 62266], [363, 62267], [250, 62268],\n    [468, 62269], [249, 62270], [470, 62271], [472, 62272], [474, 62273],\n    [476, 62274], [252, 62275], 62276, [7871, 62277], 62278, [7873, 62279],\n    [234, 62280], [609, 62281], [643, 63551], [592, 63552], [603, 63553],\n    [596, 63554], [629, 63555], [339, 63556], [248, 63557], [331, 63558],\n    [650, 63559], [618, 63560], {f: 2, c: 62282}, [11933, 63530],\n    [11974, 63539], [12003, 63547], 20539, 28158, [62841, 171123], 62842,\n    [15817, 62843], 34959, [62845, 147790], 28791, 23797, [19232, 62848],\n    [62849, 152013], [13657, 62850], [62851, 154928], 24866, [62853, 166450],\n    36775, 37366, 29073, 26393, 29626, [62859, 144001], [62860, 172295],\n    [15499, 62861], [62862, 137600], [19216, 62863], 30948, 29698, 20910,\n    [62867, 165647], [16393, 62868], 27235, [62870, 172730], [16931, 62871],\n    34319, 31274, [62875, 170311], [62876, 166634], 38741, 28749, 21284,\n    [62880, 139390], 37876, 30425, [62883, 166371], 62884, 30685, 20131, 20464,\n    20668, 20015, 20247, 62891, 21556, 32139, 22674, 22736, [62896, 138678],\n    24210, 24217, 24514, [62900, 141074], 25995, [62902, 144377], 26905, 27203,\n    [62905, 146531], 27903, 29184, [62909, 148741], 29580, [16091, 62911],\n    [62912, 150035], 23317, 29881, 35715, [62916, 154788], [62917, 153237],\n    31379, 31724, 31939, 32364, 33528, 34199, 62924, 34960, 62926, 36537,\n    62928, 36815, 34143, 39392, 37409, 62933, [62934, 167353], [62935, 136255],\n    [16497, 62936], [17058, 62937], 23066, 39016, 26475, [17014, 62944], 22333,\n    34262, [62948, 149883], 33471, [62950, 160013], [19585, 62951],\n    [62952, 159092], 23931, [62954, 158485], [62955, 159678], {f: 2, c: 62956},\n    23446, 62959, 32347],\n  'Adobe-GB1': [{f: 95, c: 32}, {f: 3, c: 12288}, [183, 12539], 713, 711, 168,\n    12291, 12293, 8212, 65374, 8214, [8230, 8943], {f: 2, c: 8216},\n    {f: 2, c: 8220}, {f: 2, c: 12308}, {f: 8, c: 12296}, {f: 2, c: 12310},\n    {f: 2, c: 12304}, 177, 215, 247, 8758, {f: 2, c: 8743}, 8721, 8719, 8746,\n    8745, 8712, 8759, 8730, 8869, 8741, 8736, 8978, 8857, 8747, 8750, 8801,\n    8780, 8776, 8765, 8733, 8800, {f: 2, c: 8814}, {f: 2, c: 8804}, 8734, 8757,\n    8756, 9794, 9792, 176, {f: 2, c: 8242}, 8451, 65284, 164, {f: 2, c: 65504},\n    8240, 167, 8470, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632,\n    9651, 9650, 8251, 8594, {f: 2, c: 8592}, 8595, 12307, {f: 20, c: 9352},\n    {f: 20, c: 9332}, {f: 10, c: 9312}, {f: 10, c: 12832}, {f: 12, c: 8544},\n    {f: 3, c: 65281}, 65509, {f: 89, c: 65285}, 65507, {f: 83, c: 12353},\n    {f: 86, c: 12449}, {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945},\n    {f: 7, c: 963}, {f: 7, c: 59277}, {f: 2, c: 65077}, {f: 2, c: 65081},\n    {f: 2, c: 65087}, {f: 2, c: 65085}, {f: 4, c: 65089}, {f: 2, c: 59284},\n    {f: 2, c: 65083}, {f: 2, c: 65079}, 65073, 59286, {f: 2, c: 65075},\n    {f: 6, c: 1040}, 1025, {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, 257, 225,\n    462, 224, 275, 233, 283, 232, 299, 237, 464, 236, 333, 243, 466, 242, 363,\n    250, 468, 249, 470, 472, 474, 476, 252, 234, 593, 7743, 324, 328, 505, 609,\n    {f: 37, c: 12549}, 0, {f: 76, c: 9472}, {s: 126}, 21834, 38463, 22467,\n    25384, 21710, 21769, 21696, 30353, 30284, 34108, 30702, 33406, 30861,\n    29233, 38552, 38797, 27688, 23433, 20474, 25353, 26263, 23736, 33018,\n    26696, 32942, 26114, 30414, 20985, 25942, 29100, 32753, 34948, 20658,\n    22885, 25034, 28595, 33453, 25420, 25170, 21485, 21543, 31494,\n    [12043, 20843], 30116, 24052, 25300, 36299, 38774, 25226, 32793, 22365,\n    38712, 32610, 29240, [12137, 30333], 26575, 30334, 25670, 20336, 36133,\n    25308, 31255, 26001, 29677, 25644, 25203, 33324, 39041, 26495, 29256,\n    25198, 25292, 20276, 29923, 21322, 21150, 32458, 37030, 24110, 26758,\n    27036, 33152, 32465, 26834, 30917, 34444, 38225, 20621, 35876, 33502,\n    32990, 21253, 35090, 21093, 34180, 38649, 20445, 22561, 39281, 23453,\n    25265, 25253, 26292, 35961, 40077, 29190, 26479, 30865, 24754, 21329,\n    21271, 36744, 32972, 36125, 38049, 20493, 29384, 22791, 24811, 28953,\n    34987, 22868, 33519, 26412, 31528, 23849, 32503, 29997, 27893, 36454,\n    36856, 36924, [12240, 40763], [12112, 27604], 37145, 31508, 24444, 30887,\n    34006, 34109, 27605, 27609, 27606, 24065, 24199, 30201, 38381, 25949,\n    24330, 24517, 36767, 22721, 33218, 36991, 38491, 38829, 36793, 32534,\n    36140, 25153, 20415, 21464, 21342, {f: 2, c: 36776}, 36779, 36941, 26631,\n    24426, 33176, 34920, 40150, 24971, 21035, 30250, 24428, 25996, 28626,\n    28392, 23486, 25672, 20853, 20912, 26564, 19993, 31177, 39292, 28851,\n    30149, 24182, 29627, 33760, 25773, 25320, 38069, 27874, 21338, 21187,\n    25615, 38082, 31636, 20271, 24091, 33334, 33046, 33162, 28196, 27850,\n    39539, 25429, [12056, 21340], 21754, 34917, 22496, 19981, 24067, 27493,\n    31807, 37096, 24598, 25830, 29468, 35009, 26448, 25165, 36130, 30572,\n    36393, 37319, 24425, 33756, 34081, 39184, 21442, 34453, 27531, 24813,\n    24808, 28799, 33485, 33329, 20179, 27815, 34255, 25805, 31961, 27133,\n    26361, 33609, 21397, 31574, 20391, 20876, 27979, 23618, 36461, 25554,\n    21449, 33580, 33590, 26597, 30900, 25661, 23519, 23700, 24046, 35815,\n    25286, 26612, 35962, 25600, 25530, 34633, 39307, 35863, 32544, 38130,\n    20135, 38416, 39076, 26124, 29462, 22330, 23581, 24120, 38271, 20607,\n    32928, [12058, 21378], 25950, 30021, 21809, 20513, 36229, 25220, 38046,\n    26397, 22066, 28526, 24034, 21557, 28818, 36710, 25199, 25764, 25507,\n    24443, 28552, 37108, [12162, 33251], [12192, 36784], 23576, 26216, 24561,\n    27785, 38472, 36225, 34924, 25745, 31216, 22478, 27225, 25104, 21576,\n    20056, 31243, 24809, 28548, 35802, 25215, 36894, 39563, 31204, 21507,\n    30196, 25345, 21273, 27744, 36831, 24347, 39536, 32827, 40831, 20360,\n    23610, [12186, 36196], 32709, 26021, 28861, 20805, 20914, [12173, 34411],\n    23815, 23456, 25277, 37228, 30068, 36364, 31264, 24833, 31609, 20167,\n    32504, 30597, 19985, 33261, 21021, 20986, 27249, 21416, 36487, 38148,\n    38607, 28353, 38500, 26970, 30784, 20648, 30679, 25616, 35302, 22788,\n    25571, 24029, 31359, 26941, 20256, 33337, 21912, 20018, 30126, 31383,\n    24162, 24202, 38383, 21019, 21561, 28810, 25462, 38180, 22402, 26149,\n    26943, 37255, 21767, 28147, 32431, 34850, 25139, 32496, 30133, 33576,\n    30913, 38604, 36766, 24904, 29943, 35789, 27492, 21050, 36176, 27425,\n    32874, 33905, 22257, 21254, 20174, 19995, 20945, 31895, 37259, 31751,\n    20419, 36479, 31713, 31388, 25703, 23828, 20652, 33030, 30209, 31929,\n    28140, 32736, 26449, 23384, [12072, 23544], 30923, 25774, 25619, 25514,\n    25387, 38169, 25645, 36798, 31572, 30249, 25171, [12068, 22823], 21574,\n    [12109, 27513], 20643, 25140, 24102, 27526, 20195, 36151, 34955, 24453,\n    36910, 24608, 32829, 25285, 20025, 21333, 37112, 25528, 32966, 26086,\n    27694, 20294, 24814, 28129, 35806, 24377, 34507, 24403, 25377, 20826,\n    33633, 26723, [12049, 20992], 25443, 36424, 20498, 23707, 31095, 23548,\n    21040, 31291, 24764, 36947, 30423, 24503, 24471, 30340, 36460, 28783,\n    30331, 31561, 30634, 20979, 37011, 22564, 20302, 28404, 36842, 25932,\n    31515, 29380, 28068, 32735, 23265, 25269, 24213, 22320, 33922, 31532,\n    24093, 24351, 36882, 32532, 39072, 25474, 28359, 30872, 28857, 20856,\n    38747, 22443, 30005, 20291, 30008, 24215, 24806, 22880, 28096, 27583,\n    30857, 21500, 38613, 20939, 20993, 25481, 21514, 38035, 35843, 36300,\n    29241, 30879, 34678, 36845, 35853, 21472, 19969, 30447, 21486, 38025,\n    39030, [12237, 40718], 38189, 23450, 35746, 20002, 19996, 20908, 33891,\n    25026, 21160, 26635, 20375, 24683, 20923, 27934, 20828, 25238,\n    [12099, 26007], 38497, [12182, 35910], 36887, 30168, 37117, 30563, 27602,\n    29322, 29420, 35835, 22581, 30585, 36172, 26460, 38208, 32922, 24230,\n    28193, 22930, 31471, 30701, 38203, 27573, 26029, 32526, 22534, 20817,\n    38431, 23545, 22697, 21544, 36466, 25958, 39039, 22244, 38045, 30462,\n    36929, 25479, 21702, 22810, 22842, 22427, 36530, 26421, 36346, 33333,\n    21057, 24816, 22549, 34558, 23784, 40517, 20420, 39069, 35769, 23077,\n    24694, 21380, 25212, 36943, 37122, 39295, 24681, [12157, 32780],\n    [12041, 20799], [12159, 32819], 23572, 39285, 27953, [12038, 20108], 36144,\n    21457, 32602, 31567, 20240, 20047, 38400, 27861, 29648, 34281, 24070,\n    30058, 32763, 27146, 30718, 38034, 32321, 20961, 28902, 21453, 36820,\n    33539, 36137, 29359, 39277, 27867, 22346, 33459, [12101, 26041], 32938,\n    25151, 38450, 22952, 20223, 35775, 32442, 25918, 33778, [12206, 38750],\n    21857, 39134, 32933, 21290, 35837, 21536, 32954, 24223, 27832, 36153,\n    33452, 37210, 21545, 27675, 20998, 32439, 22367, 28954, 27774, 31881,\n    22859, 20221, 24575, 24868, 31914, 20016, 23553, 26539, 34562, 23792,\n    38155, 39118, 30127, 28925, 36898, 20911, 32541, 35773, 22857, 20964,\n    20315, 21542, 22827, 25975, 32932, 23413, 25206, 25282, 36752, 24133,\n    27679, 31526, 20239, 20440, 26381, 28014, 28074, 31119, 34993, 24343,\n    29995, 25242, 36741, 20463, 37340, 26023, 33071, 33105, 24220, 33104,\n    36212, 21103, 35206, 36171, 22797, 20613, 20184, [12201, 38428],\n    [12119, 29238], 33145, 36127, 23500, 35747, 38468, 22919, 32538, 21648,\n    22134, 22030, 35813, 25913, 27010, 38041, 30422, 28297, [12082, 24178],\n    [12130, 29976], 26438, 26577, 31487, 32925, 36214, 24863, 31174, 25954,\n    36195, 20872, 21018, 38050, 32568, 32923, 32434, 23703, 28207, 26464,\n    31705, 30347, [12220, 39640], 33167, 32660, 31957, 25630, 38224, 31295,\n    21578, 21733, 27468, 25601, [12093, 25096], 40509, 33011, 30105, 21106,\n    [12208, 38761], 33883, 26684, 34532, 38401, 38548, 38124, 20010, 21508,\n    32473, 26681, 36319, 32789, 26356, 24218, 32697, 22466, 32831, 26775,\n    [12079, 24037], 25915, 21151, 24685, 40858, 20379, 36524, 20844, 23467,\n    [12088, 24339], 24041, 27742, 25329, 36129, 20849, 38057, 21246, 27807,\n    33503, 29399, 22434, 26500, 36141, 22815, 36764, 33735, 21653, 31629,\n    20272, 27837, 23396, 22993, [12238, 40723], 21476, 34506, [12219, 39592],\n    [12181, 35895], 32929, 25925, 39038, 22266, 38599, 21038, [12128, 29916],\n    21072, 23521, 25346, 35074, 20054, 25296, 24618, 26874, 20851, 23448,\n    20896, 35266, 31649, 39302, 32592, 24815, 28748, 36143, 20809,\n    [12084, 24191], 36891, 29808, 35268, 22317, 30789, 24402, 40863, 38394,\n    36712, [12225, 39740], 35809, 30328, 26690, 26588, 36330, 36149, 21053,\n    36746, 28378, 26829, 38149, 37101, 22269, 26524, 35065, 36807, 21704,\n    39608, 23401, 28023, 27686, 20133, 23475, 39559, 37219, 25000, 37039,\n    38889, 21547, 28085, 23506, 20989, 21898, 32597, 32752, 25788, 25421,\n    26097, 25022, 24717, 28938, 27735, 27721, 22831, 26477, 33322, 22741,\n    22158, 35946, 27627, 37085, 22909, 32791, 21495, 28009, 21621, 21917,\n    33655, 33743, 26680, [12146, 31166], 21644, 20309, 21512, 30418, 35977,\n    38402, 27827, 28088, 36203, 35088, 40548, 36154, 22079, [12234, 40657],\n    30165, 24456, 29408, 24680, 21756, 20136, 27178, 34913, 24658, 36720,\n    21700, 28888, 34425, 40511, 27946, 23439, 24344, 32418, 21897, 20399,\n    29492, 21564, 21402, 20505, 21518, 21628, 20046, 24573, 29786, 22774,\n    33899, 32993, 34676, 29392, 31946, 28246, 24359, 34382, 21804, 25252,\n    20114, 27818, 25143, 33457, 21719, 21326, 29502, 28369, 30011, 21010,\n    21270, 35805, 27088, 24458, 24576, 28142, 22351, 27426, 29615, 26707,\n    36824, 32531, 25442, 24739, 21796, 30186, 35938, 28949, 28067, 23462,\n    24187, 33618, 24908, 40644, 30970, 34647, 31783, 30343, 20976, 24822,\n    29004, 26179, 24140, 24653, 35854, 28784, 25381, 36745, 24509, 24674,\n    34516, 22238, 27585, 24724, 24935, 21321, 24800, 26214, 36159, 31229,\n    20250, 28905, 27719, 35763, 35826, 32472, 33636, 26127, 23130, 39746,\n    27985, 28151, 35905, 27963, 20249, [12117, 28779], 33719, 25110, 24785,\n    38669, 36135, 31096, 20987, 22334, 22522, 26426, 30072, 31293, 31215,\n    31637, 32908, 39269, 36857, 28608, 35749, 40481, 23020, 32489, 32521,\n    21513, 26497, 26840, 36753, 31821, 38598, 21450, 24613, 30142, 27762,\n    21363, 23241, 32423, 25380, [12047, 20960], 33034, [12080, 24049], 34015,\n    25216, 20864, 23395, 20238, 31085, 21058, 24760, 27982, 23492, 23490,\n    35745, 35760, 26082, 24524, 38469, 22931, 32487, 32426, 22025, 26551,\n    22841, 20339, 23478, 21152, 33626, 39050, 36158, 30002, 38078, 20551,\n    31292, 20215, 26550, 39550, 23233, 27516, 30417, 22362, 23574, 31546,\n    38388, 29006, 20860, 32937, 33392, 22904, 32516, 33575, 26816, 26604,\n    30897, 30839, 25315, 25441, 31616, 20461, 21098, 20943, 33616, 27099,\n    37492, 36341, 36145, 35265, 38190, 31661, 20214, 20581, 33328, 21073,\n    39279, 28176, 28293, 28071, 24314, 20725, 23004, 23558, 27974, 27743,\n    30086, 33931, 26728, 22870, 35762, 21280, 37233, 38477, 34121, 26898,\n    30977, 28966, 33014, 20132, 37066, 27975, 39556, 23047, 22204, 25605,\n    38128, 30699, 20389, 33050, 29409, [12179, 35282], 39290, 32564, 32478,\n    21119, 25945, 37237, 36735, 36739, 21483, 31382, 25581, 25509, 30342,\n    31224, 34903, 38454, 25130, 21163, 33410, 26708, 26480, 25463, 30571,\n    31469, 27905, 32467, 35299, 22992, 25106, 34249, 33445, 30028, 20511,\n    20171, 30117, 35819, 23626, [12081, 24062], 31563, [12100, 26020],\n    [12198, 37329], 20170, 27941, 35167, 32039, 38182, 20165, 35880, 36827,\n    38771, 26187, 31105, 36817, 28908, 28024, 23613, 21170, 33606, 20834,\n    33550, 30555, 26230, 40120, 20140, 24778, 31934, 31923, 32463, 20117,\n    35686, 26223, 39048, 38745, 22659, 25964, 38236, 24452, 30153, 38742,\n    31455, 31454, 20928, 28847, 31384, 25578, 31350, 32416, 29590,\n    [12210, 38893], 20037, 28792, 20061, 37202, 21417, 25937, 26087,\n    [12165, 33276], 33285, 21646, 23601, 30106, 38816, 25304, 29401, 30141,\n    23621, 39545, 33738, 23616, 21632, 30697, 20030, 27822, 32858, 25298,\n    25454, 24040, 20855, 36317, 36382, 38191, 20465, 21477, 24807, 28844,\n    21095, 25424, 40515, 23071, 20518, 30519, 21367, 32482, 25733, 25899,\n    25225, 25496, 20500, 29237, 35273, 20915, 35776, 32477, 22343, 33740,\n    38055, 20891, 21531, 23803, 20426, 31459, 27994, 37089, 39567, 21888,\n    21654, 21345, 21679, 24320, 25577, 26999, 20975, 24936, 21002, 22570,\n    21208, 22350, 30733, 30475, 24247, 24951, 31968, 25179, 25239, 20130,\n    28821, 32771, 25335, 28900, 38752, 22391, 33499, 26607, 26869, 30933,\n    39063, 31185, 22771, 21683, 21487, 28212, 20811, 21051, 23458, 35838,\n    32943, 21827, 22438, 24691, 22353, 21549, 31354, 24656, 23380, 25511,\n    25248, [12061, 21475], 25187, 23495, 26543, 21741, 31391, 33510, 37239,\n    24211, 35044, 22840, 22446, 25358, 36328, 33007, 22359, 31607, 20393,\n    24555, 23485, 27454, 21281, 31568, 29378, 26694, 30719, 30518, 26103,\n    20917, 20111, 30420, 23743, 31397, 33909, 22862, 39745, 20608, 39304,\n    24871, 28291, 22372, 26118, 25414, 22256, 25324, 25193, 24275, 38420,\n    22403, 25289, 21895, 34593, 33098, 36771, 21862, 33713, 26469, 36182,\n    34013, 23146, 26639, 25318, 31726, 38417, 20848, 28572, 35888, 25597,\n    35272, 25042, 32518, 28866, 28389, 29701, 27028, 29436, 24266, 37070,\n    26391, 28010, 25438, 21171, 29282, [12156, 32769], 20332, 23013, 37226,\n    28889, 28061, 21202, 20048, 38647, 38253, 34174, 30922, 32047, 20769,\n    22418, 25794, 32907, 31867, 27882, 26865, 26974, 20919, 21400, 26792,\n    29313, 40654, 31729, 29432, 31163, 28435, 29702, 26446, [12197, 37324],\n    40100, 31036, 33673, 33620, 21519, 26647, 20029, 21385, 21169, 30782,\n    21382, 21033, 20616, 20363, 20432, 30178, [12148, 31435], 31890, 27813,\n    [12202, 38582], [12050, 21147], 29827, 21737, 20457, 32852, 33714, 36830,\n    38256, 24265, 24604, 28063, 24088, 25947, 33080, 38142, 24651, 28860,\n    32451, 31918, 20937, 26753, 31921, 33391, 20004, 36742, 37327, 26238,\n    20142, 35845, 25769, 32842, 20698, 30103, 29134, 23525, 36797, 28518,\n    20102, 25730, 38243, 24278, 26009, 21015, 35010, 28872, 21155, 29454,\n    29747, 26519, 30967, 38678, 20020, 37051, 40158, 28107, 20955, 36161,\n    21533, 25294, 29618, 33777, 38646, 40836, 38083, 20278, 32666, 20940,\n    28789, 38517, 23725, 39046, 21478, 20196, 28316, 29705, 27060, 30827,\n    39311, 30041, 21016, 30244, 27969, 26611, 20845, 40857, 32843, 21657,\n    31548, 31423, 38534, 22404, 25314, 38471, 27004, 23044, 25602, 31699,\n    28431, 38475, 33446, 21346, 39045, 24208, 28809, 25523, 21348, 34383,\n    40065, 40595, 30860, 38706, 36335, 36162, [12229, 40575], 28510, 31108,\n    24405, 38470, 25134, 39540, 21525, 38109, 20387, 26053, 23653, 23649,\n    32533, 34385, 27695, 24459, 29575, 28388, 32511, 23782, 25371, 23402,\n    28390, 21365, 20081, 25504, 30053, 25249, 36718, 20262, 20177, 27814,\n    32438, 35770, 33821, 34746, 32599, 36923, 38179, 31657, 39585, 35064,\n    33853, 27931, 39558, 32476, 22920, [12231, 40635], 29595, 30721, 34434,\n    39532, 39554, 22043, 21527, 22475, 20080, 40614, 21334, 36808, 33033,\n    30610, 39314, 34542, 28385, 34067, 26364, 24930, 28459, 35881, 33426,\n    33579, 30450, 27667, 24537, 33725, 29483, 33541, 38170, [12113, 27611],\n    [12141, 30683], 38086, 21359, 33538, 20882, 24125, 35980, 36152, 20040,\n    29611, 26522, 26757, 37238, 38665, 29028, 27809, 30473, 23186, 38209,\n    27599, 32654, 26151, 23504, 22969, 23194, 38376, 38391, 20204, 33804,\n    33945, 27308, 30431, 38192, 29467, 26790, 23391, 30511, 37274, 38753,\n    31964, 36855, 35868, 24357, [12150, 31859], 31192, 35269, 27852, 34588,\n    23494, 24130, 26825, 30496, 32501, 20885, 20813, 21193, 23081, 32517,\n    [12207, 38754], 33495, 25551, 30596, 34256, 31186, 28218, 24217, 22937,\n    34065, 28781, 27665, 25279, [12139, 30399], 25935, 24751, 38397, 26126,\n    34719, 40483, 38125, 21517, 21629, 35884, {f: 2, c: 25720}, 34321, 27169,\n    33180, 30952, 25705, 39764, 25273, 26411, 33707, 22696, 40664, 27819,\n    28448, 23518, 38476, 35851, 29279, 26576, 25287, 29281, 20137, 22982,\n    27597, 22675, 26286, 24149, 21215, 24917, [12106, 26408], [12140, 30446],\n    30566, 29287, 31302, 25343, 21738, 21584, 38048, 37027, 23068, 32435,\n    27670, 20035, 22902, 32784, 22856, 21335, 30007, 38590, 22218, 25376,\n    33041, 24700, 38393, 28118, 21602, 39297, 20869, 23273, 33021, 22958,\n    38675, 20522, 27877, 23612, 25311, 20320, 21311, 33147, 36870, 28346,\n    34091, 25288, 24180, 30910, 25781, 25467, 24565, 23064, 37247, 40479,\n    23615, 25423, 32834, 23421, 21870, 38218, 38221, 28037, 24744, 26592,\n    29406, 20957, 23425, 25319, 27870, [12124, 29275], 25197, 38062, 32445,\n    33043, 27987, 20892, 24324, 22900, 21162, 24594, [12069, 22899], 26262,\n    34384, 30111, 25386, 25062, 31983, 35834, 21734, 27431, 40485, 27572,\n    34261, 21589, 20598, 27812, 21866, 36276, 29228, 24085, 24597, 29750,\n    25293, 25490, 29260, 24472, 28227, 27966, 25856, 28504, 30424, 30928,\n    30460, 30036, 21028, 21467, 20051, 24222, 26049, 32810, 32982, 25243,\n    21638, 21032, 28846, 34957, 36305, 27873, 21624, 32986, 22521, 35060,\n    36180, 38506, 37197, 20329, 27803, 21943, 30406, 30768, 25256, 28921,\n    28558, 24429, 34028, 26842, 30844, 31735, 33192, 26379, 40527, 25447,\n    30896, 22383, 30738, 38713, 25209, 25259, 21128, 29749, 27607, 21860,\n    33086, 30130, [12138, 30382], 21305, 30174, 20731, 23617, 35692, 31687,\n    20559, [12122, 29255], 39575, 39128, 28418, 29922, 31080, 25735, 30629,\n    25340, 39057, 36139, 21697, 32856, 20050, 22378, 33529, 33805, 24179,\n    20973, 29942, 35780, 23631, 22369, 27900, 39047, 23110, 30772, 39748,\n    36843, 31893, 21078, 25169, 38138, 20166, 33670, 33889, 33769, 33970,\n    22484, 26420, 22275, 26222, 28006, 35889, 26333, 28689, 26399, 27450,\n    26646, 25114, 22971, 19971, 20932, 28422, 26578, 27791, 20854, 26827,\n    22855, 27495, 30054, 23822, 33040, 40784, 26071, 31048, 31041, 39569,\n    36215, 23682, 20062, 20225, 21551, 22865, 30732, 22120, [12115, 27668],\n    36804, 24323, 27773, 27875, 35755, 25488, 24688, 27965, 29301, 25190,\n    38030, 38085, 21315, 36801, 31614, 20191, 35878, 20094, 40660, 38065,\n    38067, 21069, 28508, 36963, 27973, 35892, 22545, 23884, [12107, 27424],\n    27465, 26538, 21595, 33108, 32652, 22681, 34103, 24378, 25250, 27207,\n    38201, 25970, 24708, 26725, 30631, 20052, 20392, 24039, 38808, 25772,\n    32728, 23789, 20431, 31373, 20999, 33540, 19988, 24623, 31363, 38054,\n    20405, 20146, 31206, 29748, 21220, 33465, 25810, 31165, 23517, 27777,\n    38738, 36731, 27682, 20542, 21375, 28165, 25806, 26228, 27696, 24773,\n    39031, 35831, 24198, 29756, 31351, 31179, 19992, 37041, 29699, 27714,\n    22234, 37195, 27845, 36235, 21306, 34502, 26354, 36527, 23624, 39537,\n    28192, 21462, 23094, 40843, 36259, 21435, 22280, 39079, 26435, 37275,\n    27849, 20840, 30154, 25331, [12125, 29356], 21048, 21149, 32570, 28820,\n    30264, 21364, 40522, 27063, 30830, 38592, 35033, 32676, 28982, 29123,\n    20873, 26579, 29924, 22756, 25880, 22199, 35753, 39286, 25200, 32469,\n    24825, 28909, 22764, 20161, [12040, 20154], 24525, 38887, 20219, 35748,\n    20995, 22922, 32427, 25172, 20173, [12103, 26085], 25102, 33592, 33993,\n    33635, 34701, 29076, 28342, 23481, 32466, 20887, 25545, 26580,\n    [12161, 32905], 33593, 34837, 20754, 23418, 22914, 36785, 20083, 27741,\n    [12042, 20837], 35109, 36719, 38446, 34122, 29790, 38160, 38384, 28070,\n    33509, 24369, 25746, 27922, 33832, 33134, 40131, 22622, 36187, 19977,\n    21441, 20254, 25955, 26705, 21971, 20007, 25620, 39578, 25195, 23234,\n    29791, [12170, 33394], 28073, 26862, 20711, 33678, 30722, 26432, 21049,\n    27801, 32433, 20667, 21861, 29022, 31579, 26194, 29642, 33515, 26441,\n    [12077, 23665], 21024, 29053, 34923, 38378, 38485, 25797, 36193, 33203,\n    21892, 27733, 25159, 32558, 22674, 20260, 21830, 36175, 26188, 19978,\n    23578, 35059, 26786, 25422, 31245, 28903, 33421, 21242, 38902, 23569,\n    21736, 37045, 32461, 22882, 36170, 34503, [12166, 33292], 33293, 36198,\n    25668, 23556, 24913, 28041, 31038, 35774, 30775, 30003, 21627, 20280,\n    [12189, 36523], 28145, 23072, 32453, 31070, 27784, 23457, 23158, 29978,\n    32958, 24910, 28183, 22768, [12131, 29983], 29989, 29298, 21319, 32499,\n    30465, 30427, 21097, 32988, 22307, 24072, 22833, 29422, 26045, 28287,\n    35799, [12075, 23608], 34417, [12055, 21313], [12143, 30707], 25342, 26102,\n    20160, [12215, 39135], 34432, 23454, 35782, 21490, [12142, 30690], 20351,\n    23630, 39542, 22987, 24335, [12144, 31034], [12064, 22763], 19990, 26623,\n    20107, 25325, 35475, 36893, 21183, 26159, 21980, 22124, 36866, 20181,\n    20365, 37322, 39280, [12114, 27663], 24066, 24643, 23460, 35270, 35797,\n    25910, [12095, 25163], [12216, 39318], 23432, 23551, 25480, 21806, 21463,\n    30246, 20861, 34092, 26530, 26803, 27530, 25234, 36755, 21460, 33298,\n    28113, 30095, 20070, 36174, 23408, 29087, 34223, 26257, 26329, 32626,\n    34560, [12233, 40653], [12239, 40736], 23646, 26415, 36848, 26641, 26463,\n    25101, 31446, 22661, 24246, 25968, 28465, 24661, 21047, 32781, 25684,\n    34928, 29993, 24069, 26643, 25332, 38684, 21452, 29245, 35841,\n    [12116, 27700], 30561, 31246, 21550, 30636, 39034, 33308, 35828, 30805,\n    26388, 28865, 26031, 25749, 22070, 24605, 31169, 21496, 19997, 27515,\n    32902, 23546, 21987, 22235, 20282, 20284, 39282, 24051, 26494, 32824,\n    24578, 39042, 36865, 23435, 35772, 35829, 25628, 33368, 25822, 22013,\n    33487, 37221, 20439, 32032, 36895, 31903, 20723, 22609, 28335, 23487,\n    35785, 32899, 37240, 33948, 31639, 34429, 38539, 38543, 32485, 39635,\n    30862, 23681, 31319, 36930, 38567, 31071, 23385, 25439, 31499, 34001,\n    26797, 21766, 32553, 29712, 32034, 38145, 25152, 22604, 20182, 23427,\n    22905, 22612, 29549, 25374, 36427, 36367, 32974, 33492, 25260, 21488,\n    27888, 37214, 22826, 24577, 27760, 22349, 25674, 36138, 30251, 28393,\n    22363, 27264, 30192, 28525, 35885, 35848, 22374, 27631, 34962, 30899,\n    25506, 21497, 28845, 27748, 22616, 25642, 22530, 26848, 33179, 21776,\n    31958, 20504, 36538, 28108, 36255, 28907, 25487, 28059, 28372, 32486,\n    33796, 26691, 36867, 28120, 38518, 35752, 22871, 29305, 34276, 33150,\n    30140, 35466, 26799, 21076, 36386, 38161, 25552, 39064, 36420, 21884,\n    20307, 26367, 22159, 24789, 28053, 21059, 23625, 22825, 28155, 22635,\n    [12133, 30000], 29980, 24684, 33300, 33094, 25361, 26465, 36834, 30522,\n    36339, 36148, 38081, 24086, 21381, 21548, 28867, 27712, 24311, 20572,\n    20141, 24237, 25402, 33351, 36890, 26704, 37230, 30643, 21516, 38108,\n    24420, 31461, 26742, 25413, 31570, 32479, 30171, 20599, 25237, 22836,\n    36879, 20984, 31171, 31361, 22270, 24466, 36884, 28034, 23648,\n    [12063, 22303], 21520, 20820, 28237, 22242, 25512, 39059, 33151, 34581,\n    35114, 36864, 21534, 23663, 33216, 25302, 25176, 33073, 40501, 38464,\n    39534, 39548, 26925, 22949, 25299, 21822, 25366, 21703, 34521, 27964,\n    23043, [12129, 29926], 34972, 27498, 22806, 35916, 24367, 28286, 29609,\n    39037, 20024, 28919, 23436, 30871, 25405, 26202, 30358, 24779, 23451,\n    23113, 19975, 33109, 27754, 29579, 20129, 26505, [12153, 32593], 24448,\n    26106, 26395, 24536, 22916, 23041, 24013, 24494, 21361, 38886, 36829,\n    26693, 22260, 21807, 24799, 20026, 28493, 32500, 33479, 33806, 22996,\n    20255, 20266, 23614, 32428, 26410, 34074, 21619, 30031, 32963, 21890,\n    39759, 20301, 28205, 35859, 23561, 24944, 21355, 30239, 28201, 34442,\n    [12098, 25991], 38395, 32441, 21563, 31283, 32010, 38382, 21985, 32705,\n    29934, 25373, 34583, 28065, 31389, 25105, 26017, 21351, 25569, 27779,\n    24043, 21596, 38056, 20044, 27745, 35820, 23627, [12102, 26080], 33436,\n    26791, 21566, 21556, [12111, 27595], 27494, 20116, 25410, 21320, 33310,\n    20237, 20398, 22366, 25098, 38654, 26212, 29289, 21247, 21153, 24735,\n    35823, 26132, 29081, 26512, 35199, 30802, 30717, 26224, 22075, 21560,\n    38177, 29306, 31232, 24687, 24076, 24713, 33181, [12067, 22805], 24796,\n    29060, 28911, 28330, 27728, 29312, 27268, 34989, 24109, 20064, 23219,\n    21916, 38115, 27927, 31995, 38553, 25103, 32454, 30606, 34430, 21283,\n    38686, 36758, 26247, 23777, 20384, 29421, 19979, 21414, 22799, 21523,\n    25472, 38184, 20808, 20185, 40092, 32420, 21688, 36132, 34900, 33335,\n    38386, 28046, 24358, 23244, 26174, 38505, 29616, 29486, 21439, 33146,\n    39301, 32673, 23466, 38519, 38480, 32447, 30456, 21410, 38262,\n    [12217, 39321], 31665, 35140, 28248, 20065, 32724, 31077, 35814, 24819,\n    21709, 20139, 39033, 24055, 27233, 20687, 21521, 35937, 33831, 30813,\n    38660, 21066, 21742, 22179, 38144, 28040, 23477, 28102, 26195,\n    [12073, 23567], 23389, 26657, 32918, 21880, 31505, 25928, 26964, 20123,\n    27463, 34638, 38795, 21327, 25375, 25658, 37034, 26012, 32961, 35856,\n    20889, 26800, 21368, 34809, 25032, 27844, 27899, 35874, 23633, 34218,\n    33455, 38156, 27427, [12191, 36763], 26032, 24571, [12092, 24515], 20449,\n    34885, 26143, 33125, 29481, 24826, 20852, 21009, 22411, 24418, 37026,\n    [12175, 34892], 37266, 24184, 26447, 24615, 22995, 20804, 20982, 33016,\n    21256, 27769, 38596, 29066, 20241, 20462, 32670, 26429, 21957, 38152,\n    31168, 34966, 32483, 22687, 25100, 38656, 34394, 22040, 39035, 24464,\n    35768, 33988, 37207, 21465, 26093, 24207, 30044, 24676, 32110, 23167,\n    32490, 32493, 36713, 21927, 23459, 24748, 26059, [12126, 29572], 36873,\n    30307, 30505, 32474, 38772, 34203, 23398, [12147, 31348], 38634,\n    [12174, 34880], 21195, 29071, 24490, 26092, 35810, 23547, 39535, 24033,\n    27529, 27739, 35757, 35759, 36874, 36805, 21387, 25276, 40486, 40493,\n    21568, 20011, 33469, [12123, 29273], 34460, 23830, 34905, 28079, 38597,\n    21713, 20122, 35766, 28937, 21693, 38409, 28895, 28153, 30416, 20005,\n    30740, 34578, 23721, 24310, [12180, 35328], 39068, 38414, 28814, 27839,\n    22852, 25513, 30524, 34893, 28436, 33395, 22576, 29141, 21388, 30746,\n    38593, 21761, 24422, 28976, 23476, 35866, 39564, 27523, 22830, 40495,\n    31207, 26472, 25196, 20335, 30113, [12154, 32650], 27915, 38451, 27687,\n    20208, 30162, 20859, 26679, 28478, 36992, 33136, 22934, 29814, 25671,\n    23591, 36965, 31377, 35875, 23002, 21676, 33280, 33647, 35201, 32768,\n    26928, 22094, 32822, 29239, 37326, 20918, 20063, 39029, 25494, 19994,\n    21494, 26355, 33099, 22812, 28082, [12032, 19968], 22777, 21307, 25558,\n    38129, 20381, 20234, [12176, 34915], 39056, 22839, 36951, 31227, 20202,\n    33008, 30097, 27778, 23452, 23016, 24413, 26885, 34433, 20506, 24050,\n    [12036, 20057], 30691, 20197, 33402, 25233, 26131, [12194, 37009], 23673,\n    20159, 24441, 33222, 36920, 32900, 30123, 20134, 35028, 24847, 27589,\n    24518, 20041, 30410, 28322, 35811, 35758, 35850, 35793, 24322, 32764,\n    32716, 32462, 33589, 33643, 22240, 27575, [12211, 38899], 38452, 23035,\n    21535, 38134, 28139, 23493, 39278, 23609, 24341, 38544, 21360, 33521,\n    27185, 23156, 40560, 24212, 32552, 33721, {f: 2, c: 33828}, 33639, 34631,\n    36814, 36194, 30408, 24433, 39062, 30828, 26144, 21727, 25317, 20323,\n    33219, 30152, 24248, 38605, 36362, 34553, 21647, 27891, 28044, 27704,\n    24703, 21191, [12132, 29992], 24189, 20248, 24736, 24551, 23588, 30001,\n    37038, 38080, 29369, 27833, 28216, [12195, 37193], 26377, 21451, 21491,\n    20305, 37321, 35825, [12060, 21448], 24188, 36802, 28132, 20110, 30402,\n    27014, 34398, 24858, 33286, 20313, 20446, 36926, 40060, 24841, 28189,\n    28180, 38533, 20104, 23089, [12204, 38632], 19982, 23679, 31161, 23431,\n    35821, [12155, 32701], [12127, 29577], 22495, 33419, 37057, 21505, 36935,\n    21947, 23786, 24481, 24840, 27442, 29425, 32946, 35465, 28020, 23507,\n    35029, 39044, 35947, 39533, 40499, 28170, 20900, 20803, 22435, 34945,\n    21407, 25588, 36757, 22253, 21592, 22278, 29503, 28304, 32536, 36828,\n    33489, 24895, 24616, 38498, [12104, 26352], 32422, 36234, 36291, 38053,\n    23731, 31908, [12105, 26376], 24742, 38405, 32792, 20113, 37095, 21248,\n    38504, 20801, 36816, 34164, 37213, 26197, 38901, 23381, 21277, 30776,\n    26434, 26685, 21705, 28798, 23472, 36733, 20877, 22312, 21681, 25874,\n    26242, 36190, 36163, 33039, 33900, 36973, 31967, 20991, 34299, 26531,\n    26089, 28577, 34468, 36481, 22122, 36896, 30338, 28790, 29157, 36131,\n    25321, 21017, 27901, 36156, 24590, 22686, 24974, 26366, 36192, 25166,\n    21939, 28195, 26413, 36711, 38113, 38392, 30504, 26629, 27048, 21643,\n    20045, 28856, 35784, 25688, 25995, 23429, 31364, 20538, 23528, 30651,\n    27617, 35449, 31896, 27838, 30415, 26025, 36759, 23853, 23637, 34360,\n    26632, 21344, 25112, 31449, 28251, 32509, 27167, 31456, 24432, 28467,\n    24352, 25484, 28072, 26454, 19976, 24080, 36134, 20183, 32960, 30260,\n    38556, 25307, 26157, 25214, 27836, 36213, 29031, 32617, 20806, 32903,\n    21484, 36974, 25240, 21746, 34544, 36761, 32773, 38167, 34071, 36825,\n    27993, 29645, 26015, 30495, 29956, 30759, 33275, 36126, 38024, 20390,\n    26517, 30137, 35786, 38663, 25391, 38215, 38453, 33976, 25379, 30529,\n    24449, 29424, 20105, 24596, 25972, 25327, 27491, 25919, 24103, 30151,\n    37073, 35777, 33437, 26525, [12096, 25903], 21553, 34584, 30693, 32930,\n    33026, 27713, 20043, 32455, 32844, 30452, 26893, 27542, 25191, 20540,\n    20356, 22336, 25351, [12108, 27490], 36286, 21482, 26088, 32440, 24535,\n    25370, 25527, [12164, 33267], 33268, 32622, 24092, 23769, 21046, 26234,\n    31209, 31258, 36136, 28825, 30164, 28382, 27835, 31378, 20013, 30405,\n    24544, 38047, 34935, 32456, 31181, 32959, 37325, 20210, 20247,\n    [12168, 33311], 21608, 24030, 27954, 35788, 31909, 36724, 32920, 24090,\n    21650, 30385, 23449, 26172, 39588, 29664, 26666, 34523, 26417, 29482,\n    35832, 35803, 36880, [12149, 31481], 28891, 29038, 25284, 30633, 22065,\n    20027, 33879, 26609, 21161, 34496, 36142, 38136, 31569, 20303, 27880,\n    31069, 39547, 25235, [12118, 29226], 25341, 19987, 30742, 36716, 25776,\n    36186, 31686, 26729, 24196, 35013, 22918, 25758, 22766, 29366, 26894,\n    38181, 36861, 36184, 22368, 32512, 35846, 20934, 25417, 25305, 21331,\n    26700, 29730, 33537, 37196, 21828, 30528, 28796, 27978, 20857, 21672,\n    36164, 23039, 28363, 28100, 23388, 32043, 20180, 31869, 28371,\n    [12070, 23376], [12163, 33258], 28173, 23383, 39683, 26837, 36394, 23447,\n    32508, 24635, 32437, 37049, [12187, 36208], 22863, 25549, 31199,\n    [12188, 36275], 21330, 26063, 31062, 35781, 38459, 32452, 38075, 32386,\n    22068, 37257, 26368, 32618, 23562, 36981, 26152, 24038, 20304, 26590,\n    20570, 20316, 22352, 24231, 20109, 19980, 20800, 19984, 24319, 21317,\n    19989, 20120, 19998, [12224, 39730], 23404, 22121, [12033, 20008], 31162,\n    [12035, 20031], [12052, 21269], 20039, 22829, [12120, 29243], 21358, 27664,\n    22239, 32996, 39319, 27603, 30590, 40727, [12034, 20022], 20127, 40720,\n    20060, 20073, 20115, 33416, 23387, 21868, 22031, 20164, 21389, 21405,\n    21411, 21413, 21422, 38757, 36189, [12053, 21274], 21493, 21286, 21294,\n    21310, 36188, 21350, 21347, 20994, 21000, 21006, 21037, 21043,\n    {f: 2, c: 21055}, 21068, 21086, 21089, 21084, 33967, 21117, 21122, 21121,\n    21136, 21139, [12044, 20866], 32596, 20155, 20163, 20169, 20162, 20200,\n    20193, 20203, 20190, 20251, 20211, 20258, 20324, 20213, 20261, 20263,\n    20233, 20267, 20318, 20327, 25912, 20314, 20317, 20319, 20311, 20274,\n    20285, 20342, 20340, 20369, 20361, 20355, 20367, 20350, 20347, 20394,\n    20348, 20396, 20372, 20454, 20456, 20458, 20421, 20442, 20451, 20444,\n    20433, 20447, 20472, 20521, 20556, 20467, 20524, 20495, 20526, 20525,\n    20478, 20508, 20492, 20517, 20520, 20606, 20547, 20565, 20552, 20558,\n    20588, 20603, 20645, 20647, 20649, 20666, 20694, 20742, 20717, 20716,\n    20710, 20718, 20743, 20747, 20189, 27709, 20312, 20325, 20430,\n    [12245, 40864], 27718, 31860, 20846, 24061, 40649, 39320, 20865, 22804,\n    [12051, 21241], 21261, 35335, 21264, 20971, 22809, 20821, [12039, 20128],\n    20822, 20147, 34926, 34980, 20149, 33044, 35026, 31104, 23348, 34819,\n    32696, [12046, 20907], 20913, 20925, 20924, 20935, [12045, 20886], 20898,\n    20901, 35744, {f: 2, c: 35750}, 35754, {f: 2, c: 35764}, 35767,\n    {f: 2, c: 35778}, 35787, 35791, 35790, {f: 3, c: 35794}, 35798,\n    {f: 2, c: 35800}, 35804, {f: 2, c: 35807}, 35812, {f: 2, c: 35816}, 35822,\n    35824, 35827, 35830, 35833, 35836, {f: 2, c: 35839}, 35842, 35844, 35847,\n    35852, 35855, {f: 2, c: 35857}, {f: 3, c: 35860}, 35865, 35867, 35864,\n    35869, {f: 3, c: 35871}, 35877, 35879, {f: 2, c: 35882}, {f: 2, c: 35886},\n    {f: 2, c: 35890}, {f: 2, c: 35893}, [12057, 21353], 21370, 38429, 38434,\n    38433, 38449, 38442, 38461, 38460, 38466, 38473, 38484, 38495, 38503,\n    38508, 38514, 38516, 38536, 38541, 38551, 38576, 37015, 37019, 37021,\n    37017, 37036, 37025, 37044, 37043, 37046, 37050, 37048, 37040, 37071,\n    37061, 37054, 37072, 37060, 37063, 37075, 37094, 37090, 37084, 37079,\n    37083, 37099, 37103, 37118, 37124, 37154, 37150, 37155, 37169, 37167,\n    37177, 37187, 37190, 21005, 22850, 21154, {f: 2, c: 21164}, 21182, 21759,\n    21200, 21206, 21232, 21471, 29166, 30669, [12085, 24308], [12048, 20981],\n    20988, [12223, 39727], [12059, 21430], 24321, 30042, 24047, 22348, 22441,\n    22433, 22654, 22716, 22725, 22737, 22313, 22316, 22314, 22323, 22329,\n    {f: 2, c: 22318}, 22364, 22331, 22338, 22377, 22405, 22379, 22406, 22396,\n    22395, 22376, 22381, 22390, 22387, 22445, 22436, 22412, 22450, 22479,\n    22439, 22452, 22419, 22432, 22485, 22488, 22490, 22489, 22482, 22456,\n    22516, 22511, 22520, 22500, 22493, 22539, 22541, 22525, 22509, 22528,\n    22558, 22553, 22596, 22560, 22629, 22636, 22657, 22665, 22682, 22656,\n    39336, 40729, 25087, 33401, 33405, 33407, 33423, 33418, 33448, 33412,\n    33422, 33425, 33431, 33433, 33451, 33464, 33470, 33456, 33480, 33482,\n    33507, 33432, 33463, 33454, {f: 2, c: 33483}, 33473, 33449, 33460, 33441,\n    33450, 33439, 33476, 33486, 33444, 33505, 33545, 33527, 33508, 33551,\n    33543, 33500, 33524, 33490, 33496, 33548, 33531, 33491, 33553, 33562,\n    33542, {f: 2, c: 33556}, 33504, 33493, 33564, 33617, {f: 2, c: 33627},\n    33544, 33682, 33596, 33588, 33585, 33691, 33630, 33583, 33615, 33607,\n    33603, 33631, 33600, 33559, 33632, 33581, 33594, 33587, 33638, 33637,\n    33640, 33563, 33641, 33644, 33642, {f: 2, c: 33645}, 33712, 33656,\n    {f: 2, c: 33715}, 33696, 33706, 33683, 33692, 33669, 33660, 33718, 33705,\n    33661, 33720, 33659, 33688, 33694, 33704, 33722, 33724, 33729, 33793,\n    33765, 33752, 22535, 33816, 33803, 33757, 33789, 33750, 33820, 33848,\n    33809, 33798, 33748, 33759, 33807, 33795, {f: 2, c: 33784}, 33770, 33733,\n    33728, 33830, 33776, 33761, 33884, 33873, 33882, 33881, 33907,\n    {f: 2, c: 33927}, 33914, 33929, 33912, 33852, 33862, 33897, 33910, 33932,\n    33934, 33841, 33901, 33985, 33997, 34000, 34022, 33981, 34003, 33994,\n    33983, 33978, 34016, 33953, 33977, 33972, 33943, 34021, 34019, 34060,\n    29965, 34104, 34032, 34105, 34079, 34106, 34134, 34107, 34047, 34044,\n    34137, 34120, 34152, 34148, 34142, 34170, 30626, 34115, 34162, 34171,\n    34212, 34216, 34183, 34191, 34169, 34222, 34204, 34181, 34233, 34231,\n    34224, 34259, 34241, 34268, 34303, 34343, 34309, 34345, 34326, 34364,\n    [12086, 24318], 24328, 22844, 22849, 32823, 22869, 22874, 22872, 21263,\n    [12074, 23586], 23589, 23596, 23604, 25164, 25194, 25247, 25275, 25290,\n    25306, 25303, 25326, 25378, 25334, 25401, 25419, 25411, 25517, 25590,\n    25457, 25466, 25486, 25524, 25453, 25516, 25482, 25449, 25518, 25532,\n    25586, 25592, 25568, 25599, 25540, 25566, 25550, 25682, 25542, 25534,\n    25669, 25665, 25611, 25627, 25632, 25612, 25638, 25633, 25694, 25732,\n    25709, 25750, 25722, {f: 2, c: 25783}, 25753, 25786, 25792, 25808, 25815,\n    25828, 25826, 25865, 25893, 25902, [12087, 24331], 24530, 29977, 24337,\n    21343, 21489, 21501, 21481, 21480, 21499, 21522, 21526, 21510, 21579,\n    {f: 3, c: 21586}, 21590, 21571, 21537, 21591, 21593, 21539, 21554, 21634,\n    21652, 21623, 21617, 21604, {f: 2, c: 21658}, 21636, 21622, 21606, 21661,\n    21712, 21677, 21698, 21684, 21714, 21671, 21670, {f: 2, c: 21715}, 21618,\n    21667, 21717, 21691, 21695, 21708, {f: 2, c: 21721}, 21724,\n    {f: 2, c: 21673}, 21668, 21725, 21711, 21726, 21787, 21735, 21792, 21757,\n    21780, 21747, {f: 2, c: 21794}, 21775, 21777, 21799, 21802, 21863, 21903,\n    21941, 21833, 21869, 21825, 21845, 21823, 21840, 21820, 21815, 21846,\n    {f: 3, c: 21877}, 21811, 21808, 21852, 21899, 21970, 21891, 21937, 21945,\n    21896, 21889, 21919, 21886, 21974, 21905, 21883, 21983, {f: 2, c: 21949},\n    21908, 21913, 21994, 22007, 21961, 22047, 21969, {f: 2, c: 21995}, 21972,\n    21990, 21981, 21956, 21999, 21989, {f: 2, c: 22002}, {f: 2, c: 21964},\n    21992, 22005, 21988, 36756, 22046, 22024, 22028, 22017, 22052, 22051,\n    22014, 22016, 22055, 22061, 22104, 22073, 22103, 22060, 22093, 22114,\n    22105, 22108, 22092, 22100, 22150, 22116, 22129, 22123, {f: 2, c: 22139},\n    22149, 22163, 22191, 22228, [12062, 22231], 22237, 22241, 22261, 22251,\n    22265, 22271, 22276, 22282, 22281, 22300, 24079, 24089, 24084, 24081,\n    24113, {f: 2, c: 24123}, 24119, 24132, 24148, 24155, 24158, 24161, 23692,\n    23674, 23693, 23696, 23702, 23688, {f: 2, c: 23704}, 23697, 23706, 23708,\n    23733, 23714, 23741, 23724, 23723, 23729, 23715, 23745, 23735, 23748,\n    23762, 23780, 23755, 23781, {f: 2, c: 23810}, 23847, 23846, 23854, 23844,\n    23838, 23814, 23835, 23896, 23870, 23860, 23869, 23916, 23899, 23919,\n    23901, 23915, 23883, 23882, 23913, 23924, 23938, 23961, 23965, 35955,\n    23991, 24005, [12091, 24435], 24439, 24450, 24455, 24457, 24460, 24469,\n    24473, 24476, 24488, 24493, 24501, 24508, 34914, [12090, 24417], 29357,\n    29360, 29364, {f: 2, c: 29367}, 29379, 29377, 29390, 29389, 29394, 29416,\n    29423, 29417, 29426, 29428, 29431, 29441, 29427, 29443, {f: 2, c: 29434},\n    29463, 29459, 29473, 29450, 29470, 29469, 29461, 29474, 29497, 29477,\n    29484, 29496, 29489, 29520, 29517, 29527, 29536, 29548, 29551, 29566,\n    [12167, 33307], 22821, 39143, 22820, [12065, 22786], 39267,\n    {f: 6, c: 39271}, 39284, 39287, 39293, 39296, 39300, 39303, 39306, 39309,\n    {f: 2, c: 39312}, {f: 3, c: 39315}, 24192, 24209, 24203, 24214, 24229,\n    24224, 24249, 24245, 24254, 24243, 36179, 24274, 24273, 24283, 24296,\n    24298, 33210, 24516, 24521, 24534, 24527, 24579, 24558, 24580, 24545,\n    24548, 24574, {f: 2, c: 24581}, 24554, 24557, 24568, 24601, 24629, 24614,\n    24603, 24591, 24589, 24617, 24619, 24586, 24639, 24609, {f: 2, c: 24696},\n    24699, 24698, 24642, 24682, 24701, 24726, 24730, 24749, 24733, 24707,\n    24722, 24716, 24731, 24812, 24763, 24753, 24797, 24792, 24774, 24794,\n    24756, 24864, 24870, 24853, 24867, 24820, 24832, 24846, 24875, 24906,\n    24949, 25004, 24980, 24999, 25015, 25044, 25077, 24541, 38579, 38377,\n    38379, 38385, 38387, {f: 2, c: 38389}, 38396, 38398, {f: 2, c: 38403},\n    38406, 38408, {f: 4, c: 38410}, 38415, 38418, {f: 3, c: 38421},\n    {f: 2, c: 38425}, 20012, [12121, 29247], 25109, 27701, 27732, 27740, 27722,\n    27811, 27781, 27792, 27796, 27788, {f: 2, c: 27752}, 27764, 27766, 27782,\n    27817, 27856, 27860, 27821, {f: 2, c: 27895}, 27889, 27863, 27826, 27872,\n    27862, 27898, 27883, 27886, 27825, 27859, 27887, 27902, 27961, 27943,\n    27916, 27971, 27976, 27911, 27908, 27929, 27918, 27947, 27981, 27950,\n    27957, 27930, 27983, 27986, 27988, 27955, 28049, 28015, 28062, 28064,\n    27998, {f: 2, c: 28051}, 27996, 28000, 28028, 28003, 28186, 28103, 28101,\n    28126, 28174, 28095, 28128, 28177, 28134, 28125, 28121, 28182, 28075,\n    28172, 28078, 28203, 28270, 28238, 28267, 28338, 28255, 28294,\n    {f: 2, c: 28243}, 28210, 28197, 28228, 28383, 28337, 28312, 28384, 28461,\n    28386, 28325, 28327, 28349, 28347, 28343, 28375, 28340, 28367, 28303,\n    28354, 28319, 28514, {f: 2, c: 28486}, 28452, 28437, 28409, 28463, 28470,\n    28491, 28532, 28458, 28425, 28457, 28553, 28557, 28556, 28536, 28530,\n    28540, 28538, 28625, 28617, 28583, 28601, 28598, 28610, 28641, 28654,\n    28638, 28640, 28655, 28698, 28707, 28699, 28729, 28725, 28751, 28766,\n    [12071, 23424], 23428, 23445, 23443, 23461, 23480, 29999, 39582, 25652,\n    23524, 23534, 35120, 23536, 36423, 35591, 36790, 36819, 36821, 36837,\n    36846, 36836, 36841, 36838, 36851, 36840, 36869, 36868, 36875, 36902,\n    36881, 36877, 36886, 36897, {f: 2, c: 36917}, 36909, 36911, 36932,\n    {f: 2, c: 36945}, 36944, 36968, 36952, 36962, 36955, 26297, 36980, 36989,\n    36994, 37000, 36995, 37003, [12089, 24400], 24407, 24406, 24408, 23611,\n    21675, 23632, 23641, 23409, 23651, 23654, 32700, 24362, 24361, 24365,\n    33396, 24380, 39739, [12076, 23662], 22913, 22915, 22925, {f: 2, c: 22953},\n    22947, 22935, 22986, 22955, 22942, 22948, 22994, 22962, 22959, 22999,\n    22974, {f: 2, c: 23045}, 23005, 23048, 23011, 23000, 23033, 23052, 23049,\n    23090, 23092, 23057, 23075, 23059, 23104, 23143, 23114, 23125, 23100,\n    23138, 23157, 33004, 23210, 23195, 23159, 23162, 23230, 23275, 23218,\n    23250, 23252, 23224, 23264, 23267, 23281, 23254, 23270, 23256, 23260,\n    23305, 23319, 23318, 23346, 23351, 23360, 23573, 23580, 23386, 23397,\n    23411, 23377, 23379, 23394, 39541, {f: 2, c: 39543}, 39546, 39551, 39549,\n    {f: 2, c: 39552}, 39557, 39560, 39562, 39568, {f: 2, c: 39570}, 39574,\n    39576, {f: 3, c: 39579}, {f: 2, c: 39583}, {f: 2, c: 39586}, 39589, 39591,\n    32415, 32417, 32419, 32421, {f: 2, c: 32424}, 32429, 32432, 32446,\n    {f: 3, c: 32448}, 32457, {f: 2, c: 32459}, 32464, 32468, 32471, 32475,\n    {f: 2, c: 32480}, 32488, 32491, {f: 2, c: 32494}, {f: 2, c: 32497}, 32525,\n    32502, {f: 2, c: 32506}, 32510, {f: 3, c: 32513}, {f: 2, c: 32519},\n    {f: 2, c: 32523}, 32527, {f: 2, c: 32529}, 32535, 32537, 32540, 32539,\n    32543, {f: 7, c: 32545}, {f: 4, c: 32554}, {f: 5, c: 32559}, 32565,\n    [12083, 24186], 30079, [12078, 24027], 30014, 37013, 29582, 29585, 29614,\n    29602, 29599, 29647, 29634, 29649, 29623, 29619, 29632, 29641, 29640,\n    29669, 29657, 39036, 29706, 29673, 29671, 29662, 29626, 29682, 29711,\n    29738, 29787, 29734, 29733, 29736, 29744, 29742, 29740, 29723, 29722,\n    29761, 29788, 29783, 29781, 29785, 29815, 29805, 29822, 29852, 29838,\n    {f: 2, c: 29824}, 29831, 29835, 29854, {f: 2, c: 29864}, 29840, 29863,\n    29906, 29882, {f: 3, c: 38890}, 26444, 26451, 26462, 26440, 26473, 26533,\n    26503, 26474, 26483, 26520, 26535, 26485, 26536, 26526, 26541, 26507,\n    26487, 26492, 26608, 26633, 26584, 26634, 26601, 26544, 26636, 26585,\n    26549, 26586, 26547, 26589, 26624, 26563, 26552, 26594, 26638, 26561,\n    26621, {f: 2, c: 26674}, {f: 2, c: 26720}, 26702, 26722, 26692, 26724,\n    26755, 26653, 26709, 26726, 26689, 26727, 26688, 26686, 26698, 26697,\n    26665, 26805, 26767, 26740, 26743, 26771, 26731, 26818, 26990, 26876,\n    {f: 2, c: 26911}, 26873, 26916, 26864, 26891, 26881, 26967, 26851, 26896,\n    26993, 26937, 26976, 26946, 26973, 27012, 26987, 27008, 27032, 27000,\n    26932, 27084, {f: 2, c: 27015}, 27086, 27017, 26982, 26979, 27001, 27035,\n    27047, 27067, 27051, 27053, 27092, 27057, 27073, 27082, 27103, 27029,\n    27104, 27021, 27135, 27183, 27117, {f: 2, c: 27159}, 27237, 27122, 27204,\n    27198, 27296, 27216, 27227, 27189, 27278, 27257, 27197, 27176, 27224,\n    27260, 27281, 27280, 27305, 27287, 27307, 29495, 29522, {f: 2, c: 27521},\n    27527, 27524, {f: 2, c: 27538}, 27533, {f: 2, c: 27546}, 27553, 27562,\n    36715, 36717, {f: 3, c: 36721}, {f: 2, c: 36725}, 36728, 36727,\n    {f: 2, c: 36729}, 36732, 36734, {f: 2, c: 36737}, 36740, 36743, 36747,\n    {f: 3, c: 36749}, 36760, 36762, 36558, 25099, 25111, 25115, 25119, 25122,\n    25121, 25125, 25124, 25132, 33255, 29935, 29940, 29951, 29967, 29969,\n    29971, [12097, 25908], {f: 3, c: 26094}, 26122, 26137, 26482, 26115, 26133,\n    26112, 28805, 26359, 26141, 26164, 26161, 26166, 26165, 32774, 26207,\n    26196, 26177, 26191, 26198, 26209, 26199, 26231, 26244, 26252, 26279,\n    26269, 26302, {f: 2, c: 26331}, 26342, 26345, {f: 2, c: 36146}, 36150,\n    36155, 36157, 36160, {f: 2, c: 36165}, {f: 2, c: 36168}, 36167, 36173,\n    36181, 36185, 35271, {f: 3, c: 35274}, {f: 4, c: 35278}, 29294, 29343,\n    29277, 29286, 29295, {f: 2, c: 29310}, 29316, 29323, 29325, 29327, 29330,\n    25352, 25394, 25520, 25663, 25816, 32772, 27626, 27635, 27645, 27637,\n    27641, 27653, 27655, 27654, 27661, 27669, {f: 3, c: 27672}, 27681, 27689,\n    27684, 27690, 27698, 25909, 25941, 25963, 29261, 29266, 29270, 29232,\n    34402, 21014, 32927, 32924, 32915, 32956, 26378, 32957, 32945, 32939,\n    32941, 32948, 32951, {f: 4, c: 32999}, 32987, 32962, 32964, 32985, 32973,\n    32983, 26384, 32989, 33003, 33009, 33012, 33005, {f: 2, c: 33037}, 33010,\n    33020, 26389, 33042, 35930, 33078, 33054, 33068, 33048, 33074, 33096,\n    33100, 33107, 33140, {f: 2, c: 33113}, 33137, 33120, 33129,\n    {f: 2, c: 33148}, 33133, 33127, 22605, 23221, 33160, 33154, 33169, 28373,\n    33187, 33194, 33228, 26406, 33226, 33211, 33217, 33190, 27428, 27447,\n    27449, 27459, 27462, 27481, {f: 3, c: 39121}, 39125, {f: 2, c: 39129},\n    [12110, 27571], 24384, 27586, 35315, 26000, 40785, 26003, 26044, 26054,\n    26052, 26051, 26060, 26062, 26066, 26070, 28800, 28828, 28822, 28829,\n    28859, 28864, 28855, 28843, 28849, 28904, 28874, 28944, 28947, 28950,\n    28975, 28977, 29043, 29020, 29032, 28997, 29042, 29002, 29048, 29050,\n    29080, 29107, 29109, 29096, 29088, 29152, 29140, 29159, 29177, 29213,\n    29224, 28780, 28952, 29030, 29113, 25150, 25149, 25155, {f: 2, c: 25160},\n    31035, 31040, 31046, 31049, {f: 2, c: 31067}, 31059, 31066, 31074, 31063,\n    31072, 31087, 31079, 31098, 31109, 31114, 31130, 31143, 31155, 24529,\n    24528, 24636, 24669, 24666, 24679, 24641, 24665, 24675, 24747, 24838,\n    24845, 24925, 25001, 24989, 25035, 25041, 25094, 32896, [12160, 32895],\n    27795, 27894, 28156, 30710, 30712, 30720, 30729, {f: 2, c: 30743}, 30737,\n    26027, 30765, {f: 2, c: 30748}, {f: 3, c: 30777}, 30751, 30780, 30757,\n    30764, 30755, 30761, 30798, 30829, {f: 2, c: 30806}, 30758, 30800, 30791,\n    30796, 30826, 30875, 30867, 30874, 30855, 30876, 30881, 30883, 30898,\n    30905, 30885, 30932, 30937, 30921, 30956, 30962, 30981, 30964, 30995,\n    31012, 31006, 31028, 40859, [12235, 40697], {f: 2, c: 40699}, 30449, 30468,\n    30477, 30457, {f: 2, c: 30471}, 30490, 30498, 30489, 30509, 30502, 30517,\n    30520, {f: 2, c: 30544}, 30535, 30531, 30554, 30568, 30562, 30565, 30591,\n    30605, 30589, 30592, 30604, 30609, {f: 2, c: 30623}, 30640, 30645, 30653,\n    30010, 30016, 30030, 30027, 30024, 30043, 30066, 30073, 30083, 32600,\n    32609, 32607, 35400, 32616, 32628, 32625, 32633, 32641, 32638, 30413,\n    30437, 34866, {f: 3, c: 38021}, 38027, 38026, {f: 2, c: 38028},\n    {f: 2, c: 38031}, 38036, 38039, 38037, {f: 3, c: 38042}, {f: 2, c: 38051},\n    38059, 38058, 38061, 38060, {f: 2, c: 38063}, 38066, 38068,\n    {f: 5, c: 38070}, {f: 2, c: 38076}, 38079, 38084, {f: 7, c: 38088},\n    {f: 3, c: 38096}, {f: 3, c: 38101}, 38105, 38104, 38107, {f: 3, c: 38110},\n    38114, {f: 2, c: 38116}, {f: 2, c: 38119}, 38122, 38121, 38123,\n    {f: 2, c: 38126}, {f: 3, c: 38131}, 38135, 38137, {f: 2, c: 38140}, 38143,\n    38147, 38146, {f: 2, c: 38150}, {f: 2, c: 38153}, {f: 3, c: 38157},\n    {f: 5, c: 38162}, 38168, 38171, {f: 3, c: 38173}, 38178, {f: 2, c: 38186},\n    38185, 38188, {f: 2, c: 38193}, 38196, {f: 3, c: 38198}, 38204,\n    {f: 2, c: 38206}, 38210, 38197, {f: 3, c: 38212}, 38217, 38220,\n    {f: 2, c: 38222}, {f: 3, c: 38226}, {f: 4, c: 38230}, 38235,\n    {f: 2, c: 38238}, 38237, {f: 2, c: 38241}, {f: 9, c: 38244}, 38255,\n    {f: 3, c: 38257}, 38202, 30695, 30700, 38601, 31189, 31213, 31203, 31211,\n    31238, 23879, 31235, 31234, 31262, 31252, 31289, 31287, 31313, 40655,\n    39333, 31344, 30344, 30350, 30355, 30361, 30372, 29918, 29920, 29996,\n    40480, 40482, {f: 5, c: 40488}, 40498, 40497, 40502, 40504, 40503,\n    {f: 2, c: 40505}, 40510, {f: 2, c: 40513}, 40516, {f: 4, c: 40518},\n    {f: 2, c: 40523}, 40526, 40529, 40533, 40535, {f: 3, c: 40538}, 40542,\n    40547, {f: 7, c: 40550}, 40561, 40557, 40563, [12135, 30098], 30100, 30102,\n    30112, 30109, 30124, 30115, {f: 2, c: 30131}, 30136, 30148, 30129, 30128,\n    30147, 30146, 30166, 30157, 30179, 30184, 30182, 30180, 30187, 30183,\n    30211, 30193, 30204, 30207, 30224, 30208, 30213, 30220, 30231, 30218,\n    30245, 30232, 30229, 30233, 30235, 30268, 30242, 30240, 30272, 30253,\n    30256, 30271, 30261, 30275, 30270, 30259, 30285, 30302, 30292, 30300,\n    30294, 30315, 30319, 32714, 31462, {f: 2, c: 31352}, 31360, 31366, 31368,\n    31381, 31398, 31392, 31404, 31400, 31405, 31411, 34916, 34921, 34930,\n    34941, 34943, 34946, 34978, 35014, 34999, 35004, 35017, 35042, 35022,\n    35043, 35045, 35057, 35098, 35068, 35048, 35070, 35056, 35105, 35097,\n    35091, 35099, 35082, 35124, 35115, 35126, 35137, 35174, 35195,\n    [12134, 30091], 32997, 30386, 30388, 30684, [12158, 32786], 32788, 32790,\n    32796, 32800, 32802, {f: 3, c: 32805}, 32809, 32808, 32817, 32779, 32821,\n    32835, 32838, 32845, 32850, 32873, 32881, 35203, 39032, 39040, 39043,\n    39049, {f: 2, c: 39052}, 39055, 39060, {f: 2, c: 39066}, {f: 2, c: 39070},\n    {f: 2, c: 39073}, {f: 2, c: 39077}, [12172, 34381], 34388, 34412, 34414,\n    34431, 34426, 34428, 34427, 34472, 34445, 34443, 34476, 34461, 34471,\n    34467, 34474, 34451, 34473, 34486, 34500, 34485, 34510, 34480, 34490,\n    34481, 34479, 34505, 34511, 34484, 34537, {f: 2, c: 34545}, 34541, 34547,\n    34512, 34579, 34526, 34548, 34527, 34520, 34513, 34563, 34567, 34552,\n    34568, 34570, 34573, 34569, 34595, 34619, 34590, 34597, 34606, 34586,\n    34622, 34632, 34612, 34609, 34601, 34615, 34623, 34690, 34594,\n    {f: 2, c: 34685}, 34683, 34656, 34672, 34636, 34670, 34699, 34643, 34659,\n    34684, 34660, 34649, 34661, 34707, 34735, 34728, 34770, 34758, 34696,\n    34693, 34733, 34711, 34691, 34731, 34789, 34732, 34741, 34739, 34763,\n    34771, 34749, 34769, 34752, 34762, 34779, 34794, 34784, 34798, 34838,\n    34835, 34814, 34826, 34843, 34849, 34873, 34876, [12152, 32566], 32578,\n    {f: 2, c: 32580}, 33296, 31482, 31485, 31496, {f: 2, c: 31491}, 31509,\n    31498, 31531, 31503, 31559, 31544, 31530, 31513, 31534, 31537, 31520,\n    31525, 31524, 31539, 31550, 31518, 31576, 31578, 31557, 31605, 31564,\n    31581, 31584, 31598, 31611, 31586, 31602, 31601, 31632, {f: 2, c: 31654},\n    31672, 31660, 31645, 31656, 31621, 31658, 31644, 31650, 31659, 31668,\n    31697, 31681, 31692, 31709, 31706, {f: 2, c: 31717}, 31722, 31756, 31742,\n    31740, 31759, 31766, 31755, 31775, 31786, 31782, 31800, 31809, 31808,\n    33278, {f: 2, c: 33281}, 33284, 33260, 34884, {f: 3, c: 33313}, 33325,\n    33327, 33320, 33323, 33336, 33339, {f: 2, c: 33331}, 33342, 33348, 33353,\n    33355, 33359, 33370, 33375, 33384, 34942, 34949, 34952, 35032, 35039,\n    35166, 32669, 32671, 32679, {f: 2, c: 32687}, 32690, 31868, 25929, 31889,\n    31901, 31900, 31902, 31906, 31922, {f: 2, c: 31932}, 31937, 31943,\n    {f: 2, c: 31948}, 31944, 31941, 31959, 31976, [12169, 33390], 26280, 32703,\n    32718, 32725, 32741, 32737, 32742, 32745, 32750, 32755, [12151, 31992],\n    32119, 32166, 32174, 32327, 32411, 40632, 40628, 36211, 36228, 36244,\n    36241, 36273, 36199, 36205, 35911, 35913, 37194, 37200, {f: 2, c: 37198},\n    37220, 37218, 37217, 37232, 37225, 37231, {f: 2, c: 37245}, 37234, 37236,\n    37241, 37260, 37253, 37264, 37261, 37265, {f: 2, c: 37282}, 37290,\n    {f: 3, c: 37293}, 37301, 37300, 37306, [12183, 35925], 40574, 36280, 36331,\n    36357, 36441, 36457, 36277, 36287, 36284, 36282, 36292, {f: 2, c: 36310},\n    36314, 36318, {f: 2, c: 36302}, 36315, 36294, 36332, {f: 2, c: 36343},\n    36323, 36345, 36347, 36324, 36361, 36349, 36372, 36381, 36383, 36396,\n    36398, 36387, 36399, 36410, 36416, 36409, 36405, 36413, 36401, 36425,\n    {f: 2, c: 36417}, {f: 2, c: 36433}, 36426, 36464, 36470, 36476, 36463,\n    36468, 36485, 36495, 36500, 36496, 36508, 36510, [12184, 35960], 35970,\n    35978, 35973, 35992, 35988, 26011, 35286, 35294, 35290, 35292, 35301,\n    35307, 35311, 35390, 35622, 38739, 38633, 38643, 38639, 38662, 38657,\n    38664, 38671, 38670, 38698, 38701, 38704, 38718, 40832, 40835,\n    {f: 6, c: 40837}, 40844, 40702, 40715, 40717, [12203, 38585],\n    {f: 2, c: 38588}, 38606, 38610, 30655, 38624, 37518, 37550, 37576, 37694,\n    37738, 37834, 37775, 37950, 37995, 40063, 40066, {f: 4, c: 40069}, 31267,\n    40075, 40078, {f: 3, c: 40080}, {f: 2, c: 40084}, {f: 2, c: 40090},\n    {f: 6, c: 40094}, {f: 5, c: 40101}, 40107, {f: 2, c: 40109},\n    {f: 8, c: 40112}, {f: 4, c: 40122}, {f: 4, c: 40132}, {f: 7, c: 40138},\n    {f: 3, c: 40147}, {f: 3, c: 40151}, {f: 2, c: 40156}, 40159, 40162, 38780,\n    38789, {f: 2, c: 38801}, 38804, 38831, 38827, 38819, 38834, 38836, 39601,\n    39600, 39607, 40536, 39606, 39610, 39612, 39617, 39616, 39621, 39618,\n    {f: 2, c: 39627}, 39633, 39749, 39747, 39751, 39753, 39752, 39757, 39761,\n    39144, 39181, 39214, 39253, 39252, [12221, 39647], 39649, 39654, 39663,\n    39659, 39675, 39661, 39673, 39688, 39695, 39699, 39711, 39715,\n    {f: 2, c: 40637}, 32315, 40578, {f: 2, c: 40583}, 40587, 40594, 37846,\n    40605, 40607, {f: 3, c: 40667}, 40672, 40671, 40674, 40681, 40679, 40677,\n    40682, 40687, 40738, 40748, 40751, 40761, 40759, {f: 2, c: 40765}, 40772,\n    12295, {s: 13}, 30362, 34297, 31001, 24859, 39599, 35158, 22761, 32631,\n    25850, 25943, 38930, 36774, 32070, 24171, 32129, 37770, 35607, 39165,\n    23542, 22577, 39825, 36649, [12185, 35997], 37575, 29437, 20633, 24970,\n    32179, 31558, 30050, 25987, 24163, 38281, 37002, 32232, 36022, 35722,\n    36783, 36782, 27161, 40009, 30303, 28693, 28657, 36051, 25839, 39173,\n    25765, 37474, 37457, 39361, 35036, 36001, 21443, 34870, 27544, 24922,\n    24920, 29158, 33980, 33369, 20489, 28356, 21408, 20596, 28204, 23652,\n    35435, 25881, 25723, 34796, 39262, 35730, 32399, 37855, 29987, 38369,\n    39019, 22580, 22039, [12199, 38263], 20767, 33144, 24288, 26274, 37396,\n    [12190, 36554], 24505, 22645, 38515, 35183, 31281, 25074, 35488, 39425,\n    36978, 39347, [12242, 40786], 29118, 34909, 34802, 23541, 30087, 36490,\n    31820, 32162, 37276, 37604, 38619, 30990, 20786, 35320, 34389, 20659,\n    30241, 38358, 21109, 37656, 32020, 32189, 36781, 35422, 36060, 32880,\n    24478, 21474, 36517, 31428, 37679, 36948, 24118, 36024, 25812, 21934,\n    37170, 25763, 33213, 24986, 35477, 24392, 30070, 25803, 40680, 34153,\n    27284, 25623, 23798, 31153, 23566, 29128, 37159, 25973, 28364, 36958,\n    32224, 39003, 40670, 22666, 38651, 28593, 37347, 35519, 35548, 37336,\n    38914, 37664, 35330, 26481, 21205, 26847, 20941, [12222, 39717], 29346,\n    29544, 35712, 36077, 37709, 37723, 26039, 32222, 38538, 23565, 22136,\n    38931, 37389, 22890, 22702, 40285, 38989, 35355, 24801, 39187, 20818,\n    29246, 39180, 36019, 30332, 32624, 38309, 31020, 37353, 29033, 31684,\n    36009, 39151, 35370, 32033, [12214, 39131], 35513, 24290, 36027, 32027,\n    22707, 22894, 24996, 31966, 35920, 26963, 37586, [12213, 39080], 30219,\n    39342, 32299, 35575, 40179, 33178, 36667, 25771, 36628, 36070, 24489,\n    36000, 35331, 23142, 32283, 35442, 37411, 33995, 24185, 36245, 36123,\n    23713, 21083, 37628, 32177, 23831, 37804, 25841, 40255, 38307, 37499,\n    20491, 32102, 40852, 38799, 36002, 37390, 28317, 27083, 36092, 34865,\n    39015, 21102, 38364, 35264, 39208, 24931, 36011, 24291, 35215, 27512,\n    [12244, 40860], 38312, 36556, 35437, 27331, 36020, 21130, 36645, 37707,\n    22283, 36942, 39405, 38867, 28450, 34399, 38305, 40372, 36032, 36703,\n    40251, 32005, 22778, 35703, 28396, 22057, 33775, 30059, 21123, 35441,\n    25079, 22750, 27489, 29872, 36996, 32233, 35594, 25582, 36637, 36036,\n    31330, 26371, 29172, 21295, 35569, 35496, 32362, 33911, 28222, 29554,\n    36008, 31117, 25802, 27231, 31309, 39249, 35663, 40388, 32318, 32221,\n    26997, 36655, 32026, 25824, 24190, 34186, 21137, 28639, 35336, 35352,\n    38555, 32380, 32000, 22846, 33698, 38960, 36040, 37440, 20729, 39381,\n    27570, 30435, 22533, 31627, 38291, 33393, 32216, 32365, 27298, 40572,\n    25536, 25791, 31777, 20745, 34214, 27323, 37970, 36368, 36068,\n    [12178, 35211], 37749, 33382, 21133, 39198, 28472, 28666, 28567, 23559,\n    28479, 34083, 27123, 22892, 35611, 37292, 33184, 28550, 39509, 23308,\n    25898, 37496, 30703, 20709, 39171, 32371, 32094, 36686, 36611, 38542,\n    31680, 28500, 32080, 35489, 32202, 37670, 20677, 35641, 36914, 29180,\n    30433, 21185, 33686, 39912, 39514, 32147, 38968, 37857, 24465, 30169,\n    31478, 31998, 33290, 39378, 33289, 25818, 37624, 25084, 21127, 40273,\n    32121, 35258, 35363, 32118, 37406, 36557, 39423, 38283, 20977, 38982,\n    27579, 35506, 22718, 25031, 25715, 24235, 35122, 35463, 22602, 20744,\n    23532, 31014, 26336, 34407, 24011, 31418, 39243, 28528, 25844, 38346,\n    34847, 33240, 33802, 20358, 36084, 34253, 27396, 25876, 31811, 38348,\n    34349, 28734, 35733, 25900, 35261, 25078, 32412, 29211, 28651, 25736,\n    21214, 28551, 27138, 37939, 22744, 39006, 31852, 38626, 28757, 35023,\n    39881, 31150, 40599, 21426, 21237, 31019, 27511, 28701, 38584, 20486,\n    32879, 34030, 36899, 37934, 24976, 28451, 31806, 25986, 33225, 37832,\n    25088, 29001, 32244, 31975, 20841, 36635, 35538, 30274, 36988, 37904,\n    29557, 33256, 37168, 40023, 36035, 40801, 37428, 38728, 23994, 38936,\n    39230, 21129, [12243, 40845], 32894, 22184, 31840, 22751, 25871, 38580,\n    27155, 23105, 25695, 31757, 34310, 30439, 39025, 24300, 29200, 25796,\n    28407, 34396, 39791, 36034, 37682, 38520, 39522, 37569, 23650, 32311,\n    24942, 28670, 32209, 24018, 25891, 23423, 28772, 20098, 25476, 36650,\n    20523, 20374, 28138, 32184, 35542, 34367, 32645, 37007, 38012, 31854,\n    39486, 39409, 32097, 23229, 29802, 30908, 34718, [12218, 39340], 39393,\n    21966, 36023, [12230, 40613], 36067, 36993, 30622, 39237, 34875, 28415,\n    35646, 37672, 37466, 36031, 37762, [12200, 38272], 24758, 20497, 37683,\n    22818, 35598, 24396, 35219, 32191, 32236, 24287, 28357, 25003, 38313,\n    40180, 37528, 35628, 35584, 30045, 37385, 32013, 38627, 25747, 33126,\n    24817, 39719, 39186, 25836, 33193, 25862, 37312, [12227, 40165], 32886,\n    22169, 38007, 37811, 27320, 29552, 23527, 25840, 28632, 37397, 32016,\n    33215, 28611, 36786, 30247, 35582, 27472, 40407, 27590, 22036, 28442,\n    30436, 40848, 36064, 22132, 40300, 39449, 39108, 38971, 36007, 34315,\n    24977, 35413, 28497, 38935, 25778, 37610, 20693, 27192, 35676, 33229,\n    [12241, 40778], 39438, 35912, 21843, 27683, 35350, 29309, 37370, 37467,\n    36983, 31805, 35609, 37666, 37463, 28154, 35700, 22649, 27085, 21958,\n    22715, 34196, 25654, 37740, 27211, 21932, 20689, 32761, 31429, 31434,\n    27453, 35242, 23522, 36629, 27691, 20670, 38915, 35531, 24950, 29898,\n    31406, 36264, 21312, 36544, 39493, 40818, 39028, 27402, 21240, 40306,\n    30906, 35731, 39250, 25854, 32350, 29105, 38860, 35469, 32009, 27054,\n    32104, 36575, 37613, 38287, 28516, 28753, 34217, 39955, 36093, 20632,\n    21930, 39479, 25475, 28544, 27578, 32023, 31721, 26348, 38275, 38493,\n    36109, 32341, 20663, 36062, 29138, 32057, 36050, 25448, 25885, 25086,\n    35373, 32051, 23529, 23352, 33102, 28402, 32882, 32361, 21213, 32854,\n    24107, 29509, 28629, 35433, 26178, 34645, 23526, 35672, 39387, 21218,\n    36969, 37323, 39166, 35222, 35430, 22781, 29560, 27166, 36664, 26360,\n    36118, 23660, 34899, 27193, 31466, 25976, 24101, 38617, 35504, 38918,\n    35500, 30889, 29197, 32114, 39164, 39686, 32883, 24939, 38924, 35359,\n    35494, 25851, 34311, 35380, 32901, 38614, 38568, 32143, 27506, 23403,\n    25613, 32302, 29795, 37782, 29562, 25787, 33274, 24907, 25892, 36010,\n    30321, 28760, 22727, 35674, 35527, 22022, 28271, 29145, 28644, 32295,\n    35342, 39472, 35588, 37563, 38988, 39636, 26781, 36028, 37941, 24307,\n    32893, 28916, 37509, 32113, 38957, 22294, 22615, 22296, 38973, 40213,\n    39345, 39389, 27234, 31402, 35178, 24398, 28771, 38929, 33836, 32178,\n    [12209, 38859], 36949, 22285, 29234, 28656, 32173, 33894, 20553, 20702,\n    32239, 35586, 34907, 32862, 32011, 31337, 21839, 25790, 34680, 28198,\n    31401, 21978, 37794, 28879, 35491, 28961, 34154, 22626, 38695, 21209,\n    35492, 37675, 29351, 35186, 32722, 37521, 25138, 32048, 34662, 36676,\n    23805, 20448, 29433, 22151, 37697, 39854, 32406, 36066, 37532, 38289,\n    39023, 38570, 29694, 29563, 32291, 39201, 25010, 32171, 38002, 37129,\n    35443, 38911, 38917, 34157, 22210, 37559, 26313, 22063, 21332, 25406,\n    33029, 35559, 23531, 28681, 35613, 37573, 37313, 33288, 37561, 32137,\n    38920, 35377, 32210, 32396, 36562, 25080, 36984, 30316, 32098, 23416,\n    21211, 35426, 23563, 39348, 35347, 35338, 36956, 22739, 40201, 40232,\n    21854, 20126, 35357, 38329, 40573, 22196, 38996, 38331, 33399, 21421,\n    30831, 35578, 39511, 40230, 26954, 25562, 30221, 38525, 30306, 39178,\n    27171, 22575, 35617, 34277, 29242, [12212, 38913], 26989, 33865, 37291,\n    37541, 38948, 36986, 20736, 34811, 34269, 20740, 25014, 32681, 35427,\n    35696, 35516, 35695, 32377, 34093, 38512, 37504, 39154, 38577, 27387,\n    23344, 40441, 25033, 32403, 29801, 34722, 29151, 29074, 34821, 36111,\n    31310, 21938, 25793, 20653, 30320, 36404, 20778, 24962, 37109, 37438,\n    29494, 35480, 36671, 39192, [12226, 39770], 28417, 33287, 23996, 35486,\n    39729, 29508, 35709, 38928, 39341, 40219, 28149, 36677, 22290, 21729,\n    22291, 32227, 36960, 39000, 32004, 36493, 38000, 38322, 38642, 37142,\n    38549, 36939, 34292, 37270, 26248, 38620, 36617, 25890, 26283, 36106,\n    36124, 33247, 38015, 26839, 31432, 36012, 25799, 21063, 28580, 36042,\n    36104, 36555, 37720, 38296, 35408, 40779, 20661, 27656, 30430, 26028,\n    36670, 23940, 26855, 25136, 32187, 24373, 28466, 24115, 36076, 33081,\n    36249, 34756, 36685, 37754, 36889, 35998, 37341, 20597, 35386, 37806,\n    38499, 24128, 30309, 37165, 35657, 32340, 32887, 22519, 34937, 32025,\n    25711, 25842, 24159, 36074, 28399, 37912, 32066, 31278, 33131, 34886,\n    35589, 36600, 30394, 26205, 39519, 35576, 35461, 29165, 30682, 22225,\n    36015, 37956, 31689, 39376, 23560, 30938, 36681, 36090, 27137, 33674,\n    35037, 22941, 22767, 29376, 37648, 36101, 22684, 32180, 35524, 28310,\n    28609, 36039, 28460, 32156, 32317, 32305, 37138, 35419, 32068, 38013,\n    21959, 21401, 21428, 38760, 36107, 21293, 21297, 36094, 21060, 21132,\n    21108, 20660, 20480, 20630, 20757, 20738, 20756, 20796, 20791, 20712,\n    20674, 20795, 20752, 20794, 20681, 31988, 40652, 22213, 40172, 35131,\n    33248, 35329, 35344, 35340, 35349, 35635, 35406, 35365, 35393, 35382,\n    35398, 35412, 35416, 35410, 35462, 35460, 35455, 35440, 35452, 35445,\n    35436, 35438, 35533, 35554, 35425, 35482, 35493, {f: 2, c: 35473}, 35535,\n    35537, 35529, 35547, 35543, 35522, 35510, 35574, 35563, 35604, 35585,\n    35556, 35565, 35580, 35571, 35558, 35566, 35550, 35624, 35740, 35606,\n    35610, 35600, 35627, 35629, 35670, 35673, 35662, 35742, 35691, 35734,\n    38488, 37178, 37140, 37172, 37087, 37174, 37126, 37192, 33467, 21233,\n    24048, 22538, 22745, 22754, 22752, 22746, 22497, 22607, 22550, 22610,\n    22557, 22628, 34188, 34131, 34294, 33703, 33799, 34031, 33511, 34338,\n    34086, 22603, 29026, 34136, 34045, 34126, 34184, 34234, 29334, 28366,\n    34113, 34254, 34130, 33984, 33874, 33892, 33940, 33845, 34207, 34133,\n    40367, 33939, 32264, 34118, 34146, 34078, 39488, 34362, 37795, 34167,\n    34334, 34298, 34308, 34282, 34330, 22889, 23607, 25451, 25718, 25759,\n    25681, 25692, 25779, 25860, 25878, 25847, 25852, 25883, 22064, 22072,\n    22216, 22182, 21764, 21692, 22144, 22109, 22112, 22069, 22006, 22118,\n    22130, 22156, 22117, 22044, 22062, 21993, 22038, 22208, 22029, 22195,\n    22209, 22127, 36705, 22198, 22165, 22279, 24131, 24172, 24152, 24151,\n    23943, 23796, 23888, 23852, 23975, 23968, 23959, 23821, 23992, 23937,\n    24020, 24480, 29559, 29505, 29546, 29499, 29547, 29568, 29564, 39136,\n    39219, 39145, 39228, {f: 2, c: 39146}, 39149, 39156, 39177, 39185, 39195,\n    39223, 39231, 39235, {f: 3, c: 39240}, 39244, 39266, 24289, 36065, 25082,\n    25006, 24938, 24894, 24757, 24884, 25036, 24927, 25064, 24827, 24887,\n    24818, 24947, 24860, 24978, 38274, 38278, 38344, 38286, 38292, 38284,\n    38373, 38317, 38315, 39726, 38316, 38334, 38326, 39721, 38335, 38333,\n    38332, 38339, 38347, 38356, 38352, 38357, 38366, 28739, 28505, 28711,\n    28696, 28668, 28039, 28025, 28254, 28590, 28687, 28408, 28527, 28150,\n    28543, 28678, 28576, 28683, 28775, 28740, 28677, 28535, 28704, 28703,\n    28722, 28712, 28765, 39467, 36999, 36885, 37008, 23656, 24371, 23285,\n    23255, 23296, 23149, 23304, 23372, 23207, 23291, 23307, 23329, 23338,\n    23321, 39380, 39391, 39385, 39478, 39515, 39377, 39384, 39501, 39498,\n    39394, 39530, 39439, 39437, 39429, 39490, 39469, 39446, 39489, 39470,\n    39480, {f: 2, c: 39491}, 39503, 39525, 39524, 31993, 32006, 32002,\n    {f: 2, c: 32007}, 32394, 32028, 32021, 32019, 32058, 32050, 32049, 32272,\n    32060, 32064, 32063, 32093, 32078, 32115, 32134, 32131, 32136, 32190,\n    32186, 32203, 32212, 32196, 32158, 32172, 32185, 32163, 32176, 32199,\n    32217, 32215, 32249, 32242, 32354, 32230, 32246, 32241, 32267, 32225,\n    32265, 32285, 32287, 32286, 32301, 32266, 32273, 32381, 32313, 32309,\n    32306, 32326, 32325, 32392, 32346, 32338, 32366, 32382, 32368, 32367,\n    32408, 29859, 29771, 29903, 38922, 29885, 29759, 29833, 29862, 29908,\n    29914, 38873, 38878, 38876, 27050, 27370, 26776, 26838, 27141, 26783,\n    27355, 27379, 27368, 27359, 27273, 26895, 27208, 26984, 27071, 27194,\n    27292, 27410, 27422, 27357, 27111, 27407, 27414, 27372, 27354, 27384,\n    27315, 27367, 27299, 27347, 27358, 27556, 27550, 27566, 27563, 27567,\n    36564, 36571, 36594, 36603, 36708, 36601, 36604, 36587, 36580, 36706,\n    36602, 36606, 36618, 36615, 36613, 36626, 36646, {f: 2, c: 36638}, 36636,\n    36659, 36678, 36692, 25108, 25127, 29964, 26311, 26308, 26249, 26326,\n    36033, 36016, 36026, 36029, 36100, 36018, 36037, 36112, 36049, 36058,\n    36053, 36075, 36071, 36091, 35224, 35244, 35233, 35263, 35238, 35247,\n    35250, 35255, 27647, 27660, 27692, 29272, 26407, 33110, 33242, 33051,\n    33214, 33121, 33231, 27487, {f: 2, c: 39086}, 39094, 39100, 39110, 39112,\n    36674, 40783, 26005, 29036, 29010, 29079, 29121, 29148, 29182, 31152,\n    31118, 31146, 25055, 24932, 25059, 25095, 28585, 30959, 30893, 30824,\n    30904, 31018, 31025, 30820, 30973, 30951, 30947, 40853, 30616, 30558,\n    30652, 32646, 32648, {f: 3, c: 37330}, 37337, 37335, 37333, 37367, 37351,\n    37348, 37702, 37365, 37369, 37384, 37414, 37445, 37393, 37392, 37377,\n    37415, 37380, 37413, 37376, 37434, 37478, 37431, 37427, 37461, 37437,\n    37432, 37470, {f: 2, c: 37484}, 37439, 37984, 37424, 37449, 37448, 37453,\n    37422, 37433, 37944, 37548, 37536, 37498, 37546, 37614, 37583, 37891,\n    37603, 37946, 37553, 37542, 37799, 37526, 37580, 37545, 37877, 37523,\n    37503, 37801, 37530, 37658, 37547, 37507, 37899, 37544, 37539, 37906,\n    37688, 37617, 37847, 37605, 37616, 37615, 37608, 37564, 37597, 37622,\n    {f: 2, c: 37926}, 37571, 37599, 37606, 37650, 37638, 37737, 37659, 37696,\n    37633, 37653, 37678, 37699, {f: 2, c: 37639}, 37663, 37657, 37733, 37703,\n    37750, 37716, 37732, 37802, 37744, 37764, 37860, 37848, 37928, 37767,\n    37836, 37784, 37816, 37823, 37798, 37808, 37813, 37964, 37858,\n    {f: 2, c: 37852}, 37837, 37854, 37827, 37831, 37841, 37908, 37917, 37879,\n    37989, 37907, 37997, 37920, 38009, 37881, 37913, 37962, 37938, 37951,\n    37972, 37987, 37758, 31329, 40169, 40182, 40199, 40198, 40227, 40327,\n    40469, 40221, 40223, 40421, 40239, 40409, 40240, 40258, 40478, 40275,\n    40477, 40288, 40274, 40435, 40284, 40289, 40339, 40298, 40303, 40329,\n    40344, 40346, 40384, 40357, 40361, 40386, 40380, 40474, 40403, 40410,\n    40431, 40422, 40434, 40440, 40460, 40442, 40475, 30308, 30296, 30311,\n    30210, {f: 2, c: 30278}, 30281, 30238, 30267, {f: 2, c: 30317}, 30313,\n    30322, 31431, 31414, 35168, 35123, 35165, 35143, 35128, 35172, 30392,\n    32814, 32812, 32889, 32885, 38919, {f: 2, c: 38926}, 38945, 38940, 28481,\n    38950, 38967, 38990, 38995, 39027, 39010, 39001, 39013, 39020, 39024,\n    34787, 34822, 34566, 34851, 34806, 34554, 34799, 34692, 34832, 34760,\n    34833, 34747, 34766, 32588, 31716, 31591, 31849, 31731, 31744, 31691,\n    31836, 31774, 31787, 31779, 31850, 31839, 33380, 33387, 35018, 32677,\n    31986, 31990, 31965, 32310, 40617, 36274, 37317, 37315, 40570, 36489,\n    36428, 36498, 36474, 36437, 36506, 36491, 36499, 36497, 36513, 36451,\n    36522, 36518, 35316, 35318, 38746, 38722, 38717, 38724, 40788, 40799,\n    40793, 40800, 40796, 40806, 40812, 40810, 40823, [12236, 40701], 40703,\n    40713, 35726, 38014, 37864, 39799, 39796, 39809, 39811, 39822, 40056,\n    31308, 39826, 40031, 39824, 39853, 39834, 39850, 39838, 40045, 39851,\n    39837, 40024, 39873, 40058, 39985, 39993, 39971, 39991, 39872, 39882,\n    39879, 39933, 39894, {f: 2, c: 39914}, 39905, 39908, 39911, 39901, 39906,\n    39920, 39899, 39924, 39892, 40029, 39944, 39952, 39949, 39954, 39945,\n    39935, 39968, 39986, 39981, 39976, 39973, 39977, 39987, 39998, 40008,\n    39995, 39989, 40005, 40022, 40020, 40018, 40039, 38851, 38845, 38857,\n    40379, 39631, 39638, 39637, 39768, 39758, 39255, 39260, 39714, 40695,\n    40690, 35180, 38342, 37686, 24390, 34068, 32404, 40803, 22137, 40725,\n    22081, 39662, 35079, 31296, 39091, 38308, 39693, 36852, 24409, 31339,\n    39138, 20642, 34193, 20760, 25458, 21067, 30543, 32397, 26310, 30637,\n    [12228, 40565], 22217, 40692, 28635, 25054, 30663, 28720, 40629, 34890,\n    38370, 38854, 31844, 32308, 38822, 40623, 22220, 39089, 27311, 32590,\n    31984, 20418, 32363, 40569, 22190, 39706, 33903, 31142, 31858, 39634,\n    38587, 32251, 35069, 30787, {f: 10, c: 8560}, {f: 2, c: 714}, 729, 8211,\n    8213, 8229, 8245, 8453, 8457, {f: 4, c: 8598}, 8725, 8735, 8739, 8786,\n    {f: 2, c: 8806}, 8895, {f: 36, c: 9552}, {f: 15, c: 9601}, {f: 3, c: 9619},\n    {f: 2, c: 9660}, {f: 4, c: 9698}, 9737, 8853, 12306, {f: 2, c: 12317},\n    {f: 9, c: 12321}, 12963, {f: 2, c: 13198}, {f: 3, c: 13212}, 13217, 13252,\n    13262, {f: 2, c: 13265}, 13269, 65072, 65506, 65508, 8481, 12849, 8208,\n    12540, {f: 2, c: 12443}, {f: 2, c: 12541}, 12294, {f: 2, c: 12445},\n    {f: 10, c: 65097}, {f: 4, c: 65108}, {f: 14, c: 65113}, {f: 4, c: 65128},\n    12350, {f: 12, c: 12272}, 19970, {f: 3, c: 19972}, 19983, 19986, 19991,\n    {f: 3, c: 19999}, 20003, 20006, 20009, {f: 2, c: 20014}, 20017, 20019,\n    20021, 20023, 20028, {f: 3, c: 20032}, 20036, 20038, 20042, 20049, 20053,\n    20055, {f: 2, c: 20058}, {f: 4, c: 20066}, {f: 2, c: 20071},\n    {f: 6, c: 20074}, 20082, {f: 10, c: 20084}, {f: 3, c: 20095},\n    {f: 2, c: 20099}, [12037, 20101], 20103, 20106, 20112, {f: 2, c: 20118},\n    20121, {f: 2, c: 20124}, 20131, 20138, {f: 3, c: 20143}, 20148,\n    {f: 4, c: 20150}, {f: 3, c: 20156}, 20168, 20172, {f: 2, c: 20175}, 20178,\n    {f: 3, c: 20186}, 20192, 20194, {f: 2, c: 20198}, 20201, {f: 3, c: 20205},\n    20209, 20212, {f: 3, c: 20216}, 20220, 20222, 20224, {f: 7, c: 20226},\n    {f: 2, c: 20235}, {f: 5, c: 20242}, {f: 2, c: 20252}, 20257, 20259,\n    {f: 2, c: 20264}, {f: 3, c: 20268}, 20273, 20275, 20277, 20279, 20281,\n    20283, {f: 5, c: 20286}, {f: 2, c: 20292}, {f: 6, c: 20295}, 20306, 20308,\n    20310, {f: 2, c: 20321}, 20326, 20328, {f: 2, c: 20330}, {f: 2, c: 20333},\n    {f: 2, c: 20337}, 20341, {f: 4, c: 20343}, 20349, {f: 3, c: 20352}, 20357,\n    20359, 20362, 20364, 20366, 20368, {f: 2, c: 20370}, 20373,\n    {f: 3, c: 20376}, 20380, {f: 2, c: 20382}, {f: 2, c: 20385}, 20388, 20395,\n    20397, {f: 5, c: 20400}, {f: 9, c: 20406}, {f: 2, c: 20416},\n    {f: 4, c: 20422}, {f: 3, c: 20427}, {f: 5, c: 20434}, 20441, 20443, 20450,\n    {f: 2, c: 20452}, 20455, {f: 2, c: 20459}, 20464, 20466, {f: 4, c: 20468},\n    20473, {f: 3, c: 20475}, 20479, {f: 5, c: 20481}, {f: 2, c: 20487}, 20490,\n    20494, 20496, 20499, {f: 3, c: 20501}, 20507, {f: 2, c: 20509}, 20512,\n    {f: 3, c: 20514}, 20519, {f: 11, c: 20527}, 20539, 20541, {f: 4, c: 20543},\n    {f: 3, c: 20548}, {f: 2, c: 20554}, 20557, {f: 5, c: 20560},\n    {f: 4, c: 20566}, 20571, {f: 8, c: 20573}, {f: 6, c: 20582},\n    {f: 7, c: 20589}, {f: 3, c: 20600}, {f: 2, c: 20604}, {f: 4, c: 20609},\n    {f: 2, c: 20614}, {f: 4, c: 20617}, {f: 8, c: 20622}, 20631,\n    {f: 8, c: 20634}, 20644, 20646, {f: 2, c: 20650}, {f: 4, c: 20654}, 20662,\n    {f: 2, c: 20664}, {f: 2, c: 20668}, {f: 3, c: 20671}, {f: 2, c: 20675},\n    {f: 3, c: 20678}, {f: 5, c: 20682}, 20688, {f: 3, c: 20690},\n    {f: 3, c: 20695}, {f: 3, c: 20699}, {f: 6, c: 20703}, {f: 3, c: 20713},\n    {f: 4, c: 20719}, 20724, {f: 3, c: 20726}, 20730, {f: 4, c: 20732}, 20737,\n    20739, 20741, 20746, {f: 4, c: 20748}, 20753, 20755, {f: 2, c: 20758},\n    {f: 6, c: 20761}, 20768, {f: 8, c: 20770}, {f: 7, c: 20779},\n    {f: 4, c: 20787}, {f: 2, c: 20792}, {f: 2, c: 20797}, 20802, 20807, 20810,\n    20812, {f: 3, c: 20814}, 20819, {f: 3, c: 20823}, 20827, {f: 5, c: 20829},\n    {f: 2, c: 20835}, {f: 2, c: 20838}, 20842, 20847, 20850, 20858,\n    {f: 2, c: 20862}, {f: 2, c: 20867}, {f: 2, c: 20870}, {f: 2, c: 20874},\n    {f: 4, c: 20878}, {f: 2, c: 20883}, 20888, 20890, {f: 3, c: 20893}, 20897,\n    20899, {f: 5, c: 20902}, {f: 2, c: 20909}, 20916, {f: 3, c: 20920},\n    {f: 2, c: 20926}, {f: 3, c: 20929}, 20933, 20936, 20938, 20942, 20944,\n    {f: 9, c: 20946}, 20956, {f: 2, c: 20958}, {f: 2, c: 20962},\n    {f: 6, c: 20965}, 20972, 20974, 20978, 20980, 20983, 20990,\n    {f: 2, c: 20996}, 21001, {f: 2, c: 21003}, {f: 2, c: 21007},\n    {f: 3, c: 21011}, 21020, {f: 2, c: 21022}, {f: 3, c: 21025},\n    {f: 3, c: 21029}, 21034, 21036, 21039, {f: 2, c: 21041}, {f: 2, c: 21044},\n    21052, 21054, {f: 2, c: 21061}, {f: 2, c: 21064}, {f: 2, c: 21070},\n    {f: 2, c: 21074}, 21077, {f: 4, c: 21079}, 21085, {f: 2, c: 21087},\n    {f: 3, c: 21090}, 21094, 21096, {f: 3, c: 21099}, {f: 2, c: 21104}, 21107,\n    {f: 7, c: 21110}, 21118, 21120, {f: 3, c: 21124}, 21131, {f: 2, c: 21134},\n    21138, {f: 7, c: 21140}, 21148, {f: 4, c: 21156}, {f: 3, c: 21166},\n    {f: 10, c: 21172}, 21184, 21186, {f: 3, c: 21188}, 21192, 21194,\n    {f: 4, c: 21196}, 21201, {f: 2, c: 21203}, 21207, 21210, 21212,\n    {f: 2, c: 21216}, 21219, {f: 11, c: 21221}, {f: 3, c: 21234},\n    {f: 2, c: 21238}, {f: 3, c: 21243}, {f: 4, c: 21249}, 21255,\n    {f: 4, c: 21257}, 21262, {f: 4, c: 21265}, 21272, {f: 2, c: 21275},\n    {f: 2, c: 21278}, 21282, {f: 2, c: 21284}, {f: 3, c: 21287},\n    {f: 2, c: 21291}, 21296, {f: 6, c: 21298}, [12054, 21304],\n    {f: 2, c: 21308}, 21314, 21316, 21318, {f: 3, c: 21323}, 21328,\n    {f: 2, c: 21336}, 21339, 21341, 21349, 21352, 21354, {f: 2, c: 21356},\n    21362, 21366, 21369, {f: 4, c: 21371}, {f: 2, c: 21376}, 21379,\n    {f: 2, c: 21383}, 21386, {f: 7, c: 21390}, {f: 2, c: 21398},\n    {f: 2, c: 21403}, 21406, 21409, 21412, 21415, {f: 3, c: 21418},\n    {f: 3, c: 21423}, 21427, 21429, {f: 4, c: 21431}, {f: 3, c: 21436}, 21440,\n    {f: 4, c: 21444}, {f: 3, c: 21454}, {f: 2, c: 21458}, 21461, 21466,\n    {f: 3, c: 21468}, 21473, 21479, 21492, 21498, {f: 3, c: 21502}, 21506,\n    21509, 21511, 21515, 21524, {f: 3, c: 21528}, 21532, 21538,\n    {f: 2, c: 21540}, 21546, 21552, 21555, {f: 2, c: 21558}, 21562, 21565,\n    21567, {f: 2, c: 21569}, {f: 2, c: 21572}, 21575, 21577, {f: 4, c: 21580},\n    21585, 21594, {f: 5, c: 21597}, 21603, 21605, 21607, {f: 8, c: 21609},\n    21620, {f: 2, c: 21625}, {f: 2, c: 21630}, 21633, 21635, 21637,\n    {f: 4, c: 21639}, 21645, 21649, 21651, {f: 2, c: 21655}, 21660,\n    {f: 5, c: 21662}, 21669, 21678, 21680, 21682, {f: 3, c: 21685},\n    {f: 2, c: 21689}, 21694, 21699, 21701, {f: 2, c: 21706}, 21718, 21720,\n    21723, 21728, {f: 3, c: 21730}, {f: 2, c: 21739}, {f: 3, c: 21743},\n    {f: 6, c: 21748}, 21755, 21758, 21760, {f: 2, c: 21762}, 21765, 21768,\n    {f: 5, c: 21770}, {f: 2, c: 21778}, {f: 6, c: 21781}, {f: 4, c: 21788},\n    21793, {f: 2, c: 21797}, {f: 2, c: 21800}, 21803, 21805, 21810,\n    {f: 3, c: 21812}, {f: 4, c: 21816}, 21821, 21824, 21826, 21829,\n    {f: 2, c: 21831}, {f: 4, c: 21835}, {f: 2, c: 21841}, 21844,\n    {f: 5, c: 21847}, 21853, {f: 2, c: 21855}, {f: 2, c: 21858},\n    {f: 2, c: 21864}, 21867, {f: 6, c: 21871}, {f: 2, c: 21881}, 21885, 21887,\n    {f: 2, c: 21893}, {f: 3, c: 21900}, 21904, {f: 2, c: 21906},\n    {f: 3, c: 21909}, {f: 2, c: 21914}, 21918, {f: 7, c: 21920},\n    {f: 2, c: 21928}, 21931, 21933, {f: 2, c: 21935}, 21940, 21942, 21944,\n    21946, 21948, {f: 5, c: 21951}, 21960, {f: 2, c: 21962}, {f: 2, c: 21967},\n    21973, {f: 3, c: 21975}, 21979, 21982, 21984, 21986, 21991,\n    {f: 2, c: 21997}, {f: 2, c: 22000}, 22004, {f: 5, c: 22008}, 22015,\n    {f: 4, c: 22018}, 22023, {f: 2, c: 22026}, {f: 4, c: 22032}, 22037,\n    {f: 2, c: 22041}, 22045, {f: 3, c: 22048}, {f: 2, c: 22053}, 22056,\n    {f: 2, c: 22058}, 22067, 22071, 22074, {f: 3, c: 22076}, 22080,\n    {f: 10, c: 22082}, {f: 5, c: 22095}, {f: 2, c: 22101}, {f: 2, c: 22106},\n    {f: 2, c: 22110}, 22113, 22115, 22119, {f: 2, c: 22125}, 22128, 22131,\n    22133, 22135, 22138, {f: 3, c: 22141}, {f: 4, c: 22145}, {f: 4, c: 22152},\n    22157, {f: 3, c: 22160}, 22164, {f: 3, c: 22166}, {f: 9, c: 22170},\n    {f: 2, c: 22180}, 22183, {f: 5, c: 22185}, {f: 3, c: 22192}, 22197,\n    {f: 4, c: 22200}, {f: 3, c: 22205}, {f: 2, c: 22211}, {f: 2, c: 22214},\n    22219, {f: 4, c: 22221}, {f: 2, c: 22226}, {f: 2, c: 22229},\n    {f: 2, c: 22232}, 22236, 22243, {f: 6, c: 22245}, 22252, {f: 2, c: 22254},\n    {f: 2, c: 22258}, {f: 3, c: 22262}, {f: 2, c: 22267}, {f: 3, c: 22272},\n    22277, 22284, {f: 4, c: 22286}, {f: 2, c: 22292}, 22295, {f: 3, c: 22297},\n    {f: 2, c: 22301}, {f: 3, c: 22304}, {f: 4, c: 22308}, 22315,\n    {f: 2, c: 22321}, {f: 5, c: 22324}, {f: 2, c: 22332}, 22335, 22337,\n    {f: 4, c: 22339}, {f: 2, c: 22344}, 22347, {f: 5, c: 22354},\n    {f: 2, c: 22360}, {f: 2, c: 22370}, 22373, 22375, 22380, 22382,\n    {f: 3, c: 22384}, {f: 2, c: 22388}, {f: 3, c: 22392}, {f: 5, c: 22397},\n    {f: 4, c: 22407}, {f: 5, c: 22413}, {f: 7, c: 22420}, {f: 4, c: 22428},\n    22437, 22440, 22442, 22444, {f: 3, c: 22447}, 22451, {f: 3, c: 22453},\n    {f: 9, c: 22457}, {f: 7, c: 22468}, {f: 2, c: 22476}, {f: 2, c: 22480},\n    22483, {f: 2, c: 22486}, {f: 2, c: 22491}, 22494, {f: 2, c: 22498},\n    {f: 8, c: 22501}, 22510, {f: 4, c: 22512}, {f: 2, c: 22517},\n    {f: 2, c: 22523}, {f: 2, c: 22526}, 22529, {f: 2, c: 22531},\n    {f: 2, c: 22536}, 22540, {f: 3, c: 22542}, {f: 3, c: 22546},\n    {f: 2, c: 22551}, {f: 3, c: 22554}, 22559, {f: 2, c: 22562},\n    {f: 5, c: 22565}, {f: 4, c: 22571}, {f: 2, c: 22578}, {f: 14, c: 22582},\n    {f: 5, c: 22597}, 22606, 22608, 22611, {f: 2, c: 22613}, {f: 5, c: 22617},\n    {f: 3, c: 22623}, 22627, {f: 5, c: 22630}, {f: 8, c: 22637},\n    {f: 3, c: 22646}, {f: 4, c: 22650}, 22655, 22658, 22660, {f: 3, c: 22662},\n    {f: 7, c: 22667}, {f: 5, c: 22676}, 22683, 22685, {f: 8, c: 22688},\n    {f: 4, c: 22698}, {f: 4, c: 22703}, {f: 7, c: 22708}, 22717,\n    {f: 2, c: 22719}, {f: 3, c: 22722}, 22726, {f: 9, c: 22728}, 22738, 22740,\n    {f: 2, c: 22742}, {f: 3, c: 22747}, 22753, 22755, {f: 4, c: 22757}, 22762,\n    22765, {f: 2, c: 22769}, {f: 2, c: 22772}, {f: 2, c: 22775},\n    {f: 2, c: 22779}, {f: 4, c: 22782}, 22787, {f: 2, c: 22789},\n    {f: 2, c: 22792}, [12066, 22794], {f: 2, c: 22795}, 22798,\n    {f: 4, c: 22800}, {f: 2, c: 22807}, 22811, {f: 2, c: 22813},\n    {f: 2, c: 22816}, 22819, 22822, 22824, 22828, 22832, {f: 2, c: 22834},\n    {f: 2, c: 22837}, 22843, 22845, {f: 2, c: 22847}, 22851, {f: 2, c: 22853},\n    22858, {f: 2, c: 22860}, 22864, {f: 2, c: 22866}, 22873, {f: 5, c: 22875},\n    22881, {f: 2, c: 22883}, {f: 3, c: 22886}, 22891, 22893, {f: 4, c: 22895},\n    22901, 22903, {f: 3, c: 22906}, {f: 3, c: 22910}, 22917, 22921,\n    {f: 2, c: 22923}, {f: 4, c: 22926}, {f: 2, c: 22932}, 22936,\n    {f: 3, c: 22938}, {f: 4, c: 22943}, {f: 2, c: 22950}, {f: 2, c: 22956},\n    {f: 2, c: 22960}, {f: 6, c: 22963}, 22970, {f: 2, c: 22972},\n    {f: 7, c: 22975}, {f: 3, c: 22983}, {f: 4, c: 22988}, {f: 2, c: 22997},\n    23001, 23003, {f: 5, c: 23006}, 23012, {f: 2, c: 23014}, {f: 3, c: 23017},\n    {f: 12, c: 23021}, 23034, {f: 3, c: 23036}, 23040, 23042, {f: 2, c: 23050},\n    {f: 4, c: 23053}, 23058, {f: 4, c: 23060}, {f: 3, c: 23065},\n    {f: 2, c: 23069}, {f: 2, c: 23073}, 23076, {f: 3, c: 23078},\n    {f: 7, c: 23082}, 23091, 23093, {f: 5, c: 23095}, {f: 3, c: 23101},\n    {f: 4, c: 23106}, {f: 2, c: 23111}, {f: 10, c: 23115}, {f: 4, c: 23126},\n    {f: 7, c: 23131}, {f: 3, c: 23139}, {f: 2, c: 23144}, {f: 2, c: 23147},\n    {f: 6, c: 23150}, {f: 2, c: 23160}, {f: 4, c: 23163}, {f: 18, c: 23168},\n    {f: 7, c: 23187}, {f: 11, c: 23196}, {f: 2, c: 23208}, {f: 7, c: 23211},\n    23220, {f: 2, c: 23222}, {f: 4, c: 23225}, {f: 2, c: 23231},\n    {f: 6, c: 23235}, {f: 2, c: 23242}, {f: 5, c: 23245}, 23251, 23253,\n    {f: 3, c: 23257}, {f: 3, c: 23261}, 23266, {f: 2, c: 23268},\n    {f: 2, c: 23271}, 23274, {f: 5, c: 23276}, {f: 3, c: 23282},\n    {f: 5, c: 23286}, {f: 4, c: 23292}, {f: 7, c: 23297}, 23306,\n    {f: 9, c: 23309}, 23320, {f: 7, c: 23322}, {f: 8, c: 23330},\n    {f: 5, c: 23339}, 23345, 23347, {f: 2, c: 23349}, {f: 7, c: 23353},\n    {f: 11, c: 23361}, {f: 3, c: 23373}, 23378, 23382, 23390, {f: 2, c: 23392},\n    {f: 2, c: 23399}, {f: 3, c: 23405}, 23410, 23412, {f: 2, c: 23414}, 23417,\n    {f: 2, c: 23419}, 23422, 23426, 23430, 23434, {f: 2, c: 23437},\n    {f: 3, c: 23440}, 23444, 23446, 23455, {f: 3, c: 23463}, {f: 4, c: 23468},\n    {f: 2, c: 23473}, 23479, {f: 3, c: 23482}, {f: 2, c: 23488}, 23491,\n    {f: 4, c: 23496}, {f: 3, c: 23501}, 23505, {f: 9, c: 23508}, 23520, 23523,\n    23530, 23533, 23535, {f: 4, c: 23537}, 23543, {f: 2, c: 23549}, 23552,\n    {f: 2, c: 23554}, 23557, 23564, 23568, {f: 2, c: 23570}, 23575, 23577,\n    23579, {f: 4, c: 23582}, 23587, 23590, {f: 4, c: 23592}, {f: 4, c: 23597},\n    {f: 2, c: 23602}, {f: 2, c: 23605}, {f: 2, c: 23619}, {f: 2, c: 23622},\n    {f: 2, c: 23628}, {f: 3, c: 23634}, {f: 3, c: 23638}, {f: 4, c: 23642},\n    23647, 23655, {f: 3, c: 23657}, 23661, 23664, {f: 7, c: 23666},\n    {f: 4, c: 23675}, 23680, {f: 5, c: 23683}, {f: 3, c: 23689},\n    {f: 2, c: 23694}, {f: 2, c: 23698}, 23701, {f: 4, c: 23709},\n    {f: 5, c: 23716}, 23722, {f: 3, c: 23726}, 23730, 23732, 23734,\n    {f: 4, c: 23737}, 23742, 23744, {f: 2, c: 23746}, {f: 6, c: 23749},\n    {f: 6, c: 23756}, {f: 6, c: 23763}, {f: 7, c: 23770}, {f: 2, c: 23778},\n    23783, 23785, {f: 2, c: 23787}, {f: 2, c: 23790}, {f: 3, c: 23793}, 23797,\n    {f: 4, c: 23799}, 23804, {f: 4, c: 23806}, {f: 2, c: 23812},\n    {f: 5, c: 23816}, {f: 5, c: 23823}, 23829, {f: 3, c: 23832},\n    {f: 2, c: 23836}, {f: 5, c: 23839}, 23845, 23848, {f: 2, c: 23850},\n    {f: 5, c: 23855}, {f: 8, c: 23861}, {f: 8, c: 23871}, {f: 2, c: 23880},\n    {f: 3, c: 23885}, {f: 7, c: 23889}, {f: 2, c: 23897}, 23900,\n    {f: 11, c: 23902}, 23914, {f: 2, c: 23917}, {f: 4, c: 23920},\n    {f: 12, c: 23925}, 23939, {f: 2, c: 23941}, {f: 15, c: 23944}, 23960,\n    {f: 3, c: 23962}, {f: 2, c: 23966}, {f: 6, c: 23969}, {f: 15, c: 23976},\n    23993, 23995, {f: 8, c: 23997}, {f: 5, c: 24006}, 24012, {f: 4, c: 24014},\n    24019, {f: 6, c: 24021}, 24028, {f: 2, c: 24031}, {f: 2, c: 24035}, 24042,\n    {f: 2, c: 24044}, {f: 2, c: 24053}, {f: 5, c: 24056}, {f: 2, c: 24063},\n    24068, 24071, {f: 3, c: 24073}, {f: 2, c: 24077}, {f: 2, c: 24082}, 24087,\n    {f: 7, c: 24094}, {f: 3, c: 24104}, 24108, {f: 2, c: 24111}, 24114,\n    {f: 2, c: 24116}, {f: 2, c: 24121}, {f: 2, c: 24126}, 24129,\n    {f: 6, c: 24134}, {f: 7, c: 24141}, 24150, {f: 2, c: 24153},\n    {f: 2, c: 24156}, 24160, {f: 7, c: 24164}, {f: 5, c: 24173}, 24181, 24183,\n    {f: 3, c: 24193}, 24197, {f: 2, c: 24200}, {f: 3, c: 24204}, 24210, 24216,\n    24219, 24221, {f: 4, c: 24225}, {f: 3, c: 24232}, 24236, {f: 5, c: 24238},\n    24244, {f: 4, c: 24250}, {f: 10, c: 24255}, {f: 6, c: 24267},\n    {f: 2, c: 24276}, {f: 4, c: 24279}, {f: 3, c: 24284}, {f: 4, c: 24292},\n    24297, 24299, {f: 6, c: 24301}, 24309, {f: 2, c: 24312}, {f: 3, c: 24315},\n    {f: 3, c: 24325}, 24329, {f: 3, c: 24332}, 24336, 24338, 24340, 24342,\n    {f: 2, c: 24345}, {f: 3, c: 24348}, {f: 4, c: 24353}, 24360,\n    {f: 2, c: 24363}, 24366, 24368, 24370, 24372, {f: 3, c: 24374}, 24379,\n    {f: 3, c: 24381}, {f: 5, c: 24385}, 24391, {f: 3, c: 24393}, 24397, 24399,\n    24401, 24404, {f: 3, c: 24410}, {f: 3, c: 24414}, 24419, 24421,\n    {f: 2, c: 24423}, 24427, {f: 2, c: 24430}, 24434, {f: 3, c: 24436}, 24440,\n    24442, {f: 3, c: 24445}, 24451, 24454, {f: 3, c: 24461}, {f: 2, c: 24467},\n    24470, {f: 2, c: 24474}, 24477, 24479, {f: 6, c: 24482}, {f: 2, c: 24491},\n    {f: 6, c: 24495}, 24502, 24504, {f: 2, c: 24506}, {f: 5, c: 24510},\n    {f: 2, c: 24519}, {f: 2, c: 24522}, 24526, {f: 3, c: 24531},\n    {f: 3, c: 24538}, {f: 2, c: 24542}, {f: 2, c: 24546}, {f: 2, c: 24549},\n    {f: 2, c: 24552}, 24556, {f: 2, c: 24559}, {f: 3, c: 24562},\n    {f: 2, c: 24566}, {f: 2, c: 24569}, 24572, {f: 3, c: 24583},\n    {f: 2, c: 24587}, {f: 2, c: 24592}, 24595, {f: 2, c: 24599}, 24602,\n    {f: 2, c: 24606}, {f: 3, c: 24610}, {f: 3, c: 24620}, {f: 5, c: 24624},\n    {f: 5, c: 24630}, {f: 2, c: 24637}, 24640, {f: 7, c: 24644}, 24652,\n    {f: 2, c: 24654}, 24657, {f: 2, c: 24659}, {f: 3, c: 24662},\n    {f: 2, c: 24667}, {f: 4, c: 24670}, {f: 2, c: 24677}, 24686,\n    {f: 2, c: 24689}, {f: 2, c: 24692}, 24695, 24702, {f: 3, c: 24704},\n    {f: 4, c: 24709}, {f: 2, c: 24714}, {f: 4, c: 24718}, 24723, 24725,\n    {f: 3, c: 24727}, 24732, 24734, {f: 2, c: 24737}, {f: 2, c: 24740}, 24743,\n    {f: 2, c: 24745}, 24750, 24752, 24755, 24759, {f: 2, c: 24761},\n    {f: 8, c: 24765}, {f: 3, c: 24775}, {f: 5, c: 24780}, {f: 3, c: 24786},\n    {f: 2, c: 24790}, 24793, 24795, 24798, {f: 4, c: 24802}, 24810, 24821,\n    {f: 2, c: 24823}, {f: 4, c: 24828}, {f: 4, c: 24834}, 24839,\n    {f: 3, c: 24842}, {f: 5, c: 24848}, {f: 4, c: 24854}, {f: 2, c: 24861},\n    {f: 2, c: 24865}, 24869, {f: 3, c: 24872}, {f: 8, c: 24876},\n    {f: 2, c: 24885}, {f: 6, c: 24888}, {f: 8, c: 24896}, 24905, 24909,\n    {f: 2, c: 24911}, {f: 3, c: 24914}, {f: 2, c: 24918}, 24921,\n    {f: 2, c: 24923}, 24926, {f: 2, c: 24928}, {f: 2, c: 24933}, 24937,\n    {f: 2, c: 24940}, 24943, {f: 2, c: 24945}, 24948, {f: 10, c: 24952},\n    {f: 7, c: 24963}, {f: 2, c: 24972}, 24975, 24979, {f: 5, c: 24981},\n    {f: 2, c: 24987}, {f: 6, c: 24990}, {f: 2, c: 24997}, 25002, 25005,\n    {f: 3, c: 25007}, {f: 3, c: 25011}, {f: 6, c: 25016}, {f: 3, c: 25023},\n    {f: 4, c: 25027}, {f: 4, c: 25037}, 25043, {f: 9, c: 25045},\n    {f: 3, c: 25056}, {f: 2, c: 25060}, 25063, {f: 9, c: 25065},\n    {f: 2, c: 25075}, 25081, 25083, 25085, {f: 5, c: 25089}, 25097, 25107,\n    25113, {f: 3, c: 25116}, 25120, 25123, 25126, {f: 2, c: 25128}, 25131,\n    25133, 25135, 25137, 25141, [12094, 25142], {f: 5, c: 25144}, 25154,\n    {f: 3, c: 25156}, 25162, {f: 2, c: 25167}, {f: 3, c: 25173},\n    {f: 2, c: 25177}, {f: 7, c: 25180}, {f: 2, c: 25188}, 25192,\n    {f: 2, c: 25201}, {f: 2, c: 25204}, {f: 2, c: 25207}, {f: 2, c: 25210},\n    25213, {f: 3, c: 25217}, {f: 4, c: 25221}, {f: 6, c: 25227}, 25236, 25241,\n    {f: 3, c: 25244}, 25251, {f: 2, c: 25254}, {f: 2, c: 25257},\n    {f: 4, c: 25261}, {f: 3, c: 25266}, {f: 3, c: 25270}, 25274, 25278,\n    {f: 2, c: 25280}, 25283, 25291, 25295, 25297, 25301, {f: 2, c: 25309},\n    {f: 2, c: 25312}, 25316, {f: 2, c: 25322}, 25328, 25330, 25333,\n    {f: 4, c: 25336}, 25344, {f: 4, c: 25347}, {f: 4, c: 25354},\n    {f: 2, c: 25359}, {f: 4, c: 25362}, {f: 3, c: 25367}, 25372,\n    {f: 2, c: 25382}, 25385, {f: 3, c: 25388}, {f: 2, c: 25392},\n    {f: 6, c: 25395}, {f: 2, c: 25403}, {f: 3, c: 25407}, 25412,\n    {f: 2, c: 25415}, 25418, {f: 4, c: 25425}, {f: 8, c: 25430}, 25440,\n    {f: 3, c: 25444}, 25450, 25452, {f: 2, c: 25455}, {f: 3, c: 25459},\n    {f: 2, c: 25464}, {f: 4, c: 25468}, 25473, {f: 2, c: 25477}, 25483, 25485,\n    25489, {f: 3, c: 25491}, 25495, {f: 7, c: 25497}, 25505, 25508, 25510,\n    25515, 25519, {f: 2, c: 25521}, {f: 2, c: 25525}, 25529, 25531, 25533,\n    25535, {f: 3, c: 25537}, 25541, {f: 2, c: 25543}, {f: 3, c: 25546}, 25553,\n    {f: 3, c: 25555}, {f: 3, c: 25559}, {f: 3, c: 25563}, 25567, 25570,\n    {f: 5, c: 25572}, {f: 2, c: 25579}, {f: 3, c: 25583}, 25587, 25589, 25591,\n    {f: 4, c: 25593}, 25598, {f: 2, c: 25603}, {f: 5, c: 25606}, 25614,\n    {f: 2, c: 25617}, {f: 2, c: 25621}, {f: 3, c: 25624}, 25629, 25631,\n    {f: 4, c: 25634}, {f: 3, c: 25639}, 25643, {f: 6, c: 25646}, 25653,\n    {f: 3, c: 25655}, {f: 2, c: 25659}, 25662, 25664, {f: 2, c: 25666}, 25673,\n    {f: 6, c: 25675}, 25683, {f: 3, c: 25685}, {f: 3, c: 25689}, 25693,\n    {f: 7, c: 25696}, 25704, {f: 3, c: 25706}, 25710, {f: 3, c: 25712},\n    {f: 2, c: 25716}, 25719, {f: 6, c: 25724}, 25731, 25734, {f: 8, c: 25737},\n    25748, {f: 2, c: 25751}, {f: 4, c: 25754}, {f: 3, c: 25760},\n    {f: 3, c: 25766}, 25770, 25775, 25777, 25780, 25782, 25785, 25789, 25795,\n    25798, {f: 2, c: 25800}, 25804, 25807, 25809, 25811, {f: 2, c: 25813},\n    25817, {f: 3, c: 25819}, 25823, 25825, 25827, 25829, {f: 5, c: 25831},\n    {f: 2, c: 25837}, 25843, {f: 2, c: 25845}, {f: 2, c: 25848}, 25853, 25855,\n    {f: 3, c: 25857}, 25861, {f: 2, c: 25863}, {f: 5, c: 25866},\n    {f: 2, c: 25872}, 25875, 25877, 25879, 25882, 25884, {f: 4, c: 25886},\n    {f: 4, c: 25894}, 25901, {f: 4, c: 25904}, 25911, 25914, {f: 2, c: 25916},\n    {f: 5, c: 25920}, {f: 2, c: 25926}, {f: 2, c: 25930}, {f: 2, c: 25933},\n    25936, {f: 3, c: 25938}, 25944, 25946, 25948, {f: 3, c: 25951},\n    {f: 2, c: 25956}, {f: 4, c: 25959}, {f: 3, c: 25965}, 25969, 25971, 25974,\n    {f: 9, c: 25977}, {f: 3, c: 25988}, {f: 3, c: 25992}, {f: 3, c: 25997},\n    26002, 26004, 26006, 26008, 26010, {f: 2, c: 26013}, 26016,\n    {f: 2, c: 26018}, 26022, 26024, 26026, 26030, {f: 6, c: 26033}, 26040,\n    {f: 2, c: 26042}, {f: 3, c: 26046}, 26050, {f: 4, c: 26055}, 26061,\n    {f: 2, c: 26064}, {f: 3, c: 26067}, {f: 8, c: 26072}, 26081,\n    {f: 2, c: 26083}, {f: 2, c: 26090}, {f: 4, c: 26098}, {f: 2, c: 26104},\n    {f: 5, c: 26107}, 26113, {f: 2, c: 26116}, {f: 3, c: 26119}, 26123, 26125,\n    {f: 3, c: 26128}, {f: 3, c: 26134}, {f: 3, c: 26138}, 26142,\n    {f: 4, c: 26145}, 26150, {f: 4, c: 26153}, 26158, 26160, {f: 2, c: 26162},\n    {f: 5, c: 26167}, 26173, {f: 2, c: 26175}, {f: 7, c: 26180},\n    {f: 2, c: 26189}, {f: 2, c: 26192}, {f: 2, c: 26200}, {f: 2, c: 26203},\n    26206, 26208, {f: 2, c: 26210}, 26213, 26215, {f: 5, c: 26217},\n    {f: 3, c: 26225}, 26229, {f: 2, c: 26232}, {f: 3, c: 26235},\n    {f: 3, c: 26239}, 26243, {f: 2, c: 26245}, {f: 2, c: 26250},\n    {f: 4, c: 26253}, {f: 4, c: 26258}, {f: 5, c: 26264}, {f: 4, c: 26270},\n    {f: 4, c: 26275}, {f: 2, c: 26281}, {f: 2, c: 26284}, {f: 5, c: 26287},\n    {f: 4, c: 26293}, {f: 4, c: 26298}, {f: 5, c: 26303}, 26309, 26312,\n    {f: 12, c: 26314}, {f: 2, c: 26327}, 26330, {f: 2, c: 26334},\n    {f: 5, c: 26337}, {f: 2, c: 26343}, {f: 2, c: 26346}, {f: 3, c: 26349},\n    26353, {f: 2, c: 26357}, {f: 2, c: 26362}, 26365, {f: 2, c: 26369},\n    {f: 4, c: 26372}, 26380, {f: 2, c: 26382}, {f: 3, c: 26385}, 26390,\n    {f: 3, c: 26392}, 26396, 26398, {f: 6, c: 26400}, 26409, 26414, 26416,\n    {f: 2, c: 26418}, {f: 4, c: 26422}, {f: 2, c: 26427}, {f: 2, c: 26430},\n    26433, {f: 2, c: 26436}, 26439, {f: 2, c: 26442}, 26445, 26450,\n    {f: 2, c: 26452}, {f: 5, c: 26455}, 26461, {f: 3, c: 26466},\n    {f: 2, c: 26470}, {f: 2, c: 26475}, 26478, 26484, 26486, {f: 4, c: 26488},\n    26493, 26496, {f: 2, c: 26498}, {f: 2, c: 26501}, 26504, 26506,\n    {f: 4, c: 26508}, {f: 4, c: 26513}, 26518, 26521, 26523, {f: 3, c: 26527},\n    26532, 26534, 26537, 26540, 26542, {f: 2, c: 26545}, 26548,\n    {f: 8, c: 26553}, 26562, {f: 10, c: 26565}, {f: 3, c: 26581}, 26587, 26591,\n    26593, {f: 2, c: 26595}, {f: 3, c: 26598}, {f: 2, c: 26602},\n    {f: 2, c: 26605}, 26610, {f: 8, c: 26613}, 26622, {f: 4, c: 26625}, 26630,\n    26637, 26640, 26642, {f: 2, c: 26644}, {f: 5, c: 26648}, {f: 3, c: 26654},\n    {f: 7, c: 26658}, {f: 7, c: 26667}, {f: 3, c: 26676}, {f: 2, c: 26682},\n    26687, 26695, 26699, 26701, 26703, 26706, {f: 10, c: 26710}, 26730,\n    {f: 8, c: 26732}, 26741, {f: 9, c: 26744}, 26754, 26756, {f: 8, c: 26759},\n    {f: 3, c: 26768}, {f: 3, c: 26772}, {f: 4, c: 26777}, 26782,\n    {f: 2, c: 26784}, {f: 3, c: 26787}, {f: 4, c: 26793}, 26798,\n    {f: 2, c: 26801}, 26804, {f: 10, c: 26806}, 26817, {f: 6, c: 26819}, 26826,\n    26828, {f: 4, c: 26830}, {f: 2, c: 26835}, 26841, {f: 4, c: 26843},\n    {f: 2, c: 26849}, {f: 3, c: 26852}, {f: 6, c: 26856}, 26863,\n    {f: 3, c: 26866}, {f: 3, c: 26870}, 26875, {f: 4, c: 26877},\n    {f: 3, c: 26882}, {f: 5, c: 26886}, 26892, 26897, {f: 12, c: 26899},\n    {f: 3, c: 26913}, {f: 8, c: 26917}, {f: 2, c: 26926}, {f: 3, c: 26929},\n    {f: 4, c: 26933}, {f: 3, c: 26938}, 26942, {f: 2, c: 26944},\n    {f: 7, c: 26947}, {f: 8, c: 26955}, {f: 2, c: 26965}, {f: 2, c: 26968},\n    {f: 2, c: 26971}, 26975, {f: 2, c: 26977}, {f: 2, c: 26980}, 26983,\n    {f: 2, c: 26985}, 26988, {f: 2, c: 26991}, {f: 3, c: 26994}, 26998,\n    {f: 2, c: 27002}, {f: 3, c: 27005}, 27009, 27011, 27013, {f: 3, c: 27018},\n    {f: 6, c: 27022}, {f: 2, c: 27030}, {f: 2, c: 27033}, {f: 10, c: 27037},\n    27049, 27052, {f: 2, c: 27055}, {f: 2, c: 27058}, {f: 2, c: 27061},\n    {f: 3, c: 27064}, {f: 3, c: 27068}, 27072, {f: 8, c: 27074}, 27087,\n    {f: 3, c: 27089}, {f: 6, c: 27093}, {f: 3, c: 27100}, {f: 6, c: 27105},\n    {f: 5, c: 27112}, {f: 4, c: 27118}, {f: 9, c: 27124}, 27134, 27136,\n    {f: 2, c: 27139}, {f: 4, c: 27142}, {f: 8, c: 27147}, {f: 3, c: 27156},\n    {f: 4, c: 27162}, 27168, 27170, {f: 4, c: 27172}, 27177, {f: 4, c: 27179},\n    27184, {f: 3, c: 27186}, {f: 2, c: 27190}, {f: 2, c: 27195},\n    {f: 5, c: 27199}, {f: 2, c: 27205}, {f: 2, c: 27209}, {f: 4, c: 27212},\n    {f: 7, c: 27217}, 27226, {f: 3, c: 27228}, 27232, {f: 2, c: 27235},\n    {f: 11, c: 27238}, {f: 7, c: 27250}, {f: 2, c: 27258}, {f: 3, c: 27261},\n    {f: 3, c: 27265}, {f: 4, c: 27269}, {f: 4, c: 27274}, 27279,\n    {f: 2, c: 27282}, {f: 2, c: 27285}, {f: 4, c: 27288}, {f: 3, c: 27293},\n    27297, {f: 5, c: 27300}, 27306, {f: 2, c: 27309}, {f: 3, c: 27312},\n    {f: 4, c: 27316}, {f: 2, c: 27321}, {f: 7, c: 27324}, {f: 15, c: 27332},\n    {f: 6, c: 27348}, 27356, {f: 7, c: 27360}, 27369, 27371, {f: 6, c: 27373},\n    {f: 4, c: 27380}, {f: 2, c: 27385}, {f: 8, c: 27388}, {f: 5, c: 27397},\n    {f: 4, c: 27403}, {f: 2, c: 27408}, {f: 3, c: 27411}, {f: 7, c: 27415},\n    27423, {f: 2, c: 27429}, {f: 10, c: 27432}, {f: 4, c: 27443}, 27448,\n    {f: 2, c: 27451}, {f: 4, c: 27455}, {f: 2, c: 27460}, 27464,\n    {f: 2, c: 27466}, {f: 3, c: 27469}, {f: 8, c: 27473}, {f: 5, c: 27482},\n    27488, {f: 2, c: 27496}, {f: 7, c: 27499}, {f: 4, c: 27507}, 27514,\n    {f: 4, c: 27517}, 27525, 27528, 27532, {f: 4, c: 27534}, {f: 2, c: 27540},\n    27543, 27545, {f: 2, c: 27548}, {f: 2, c: 27551}, {f: 2, c: 27554},\n    {f: 5, c: 27557}, {f: 2, c: 27564}, {f: 2, c: 27568}, 27574,\n    {f: 2, c: 27576}, {f: 3, c: 27580}, 27584, {f: 2, c: 27587},\n    {f: 4, c: 27591}, 27596, 27598, {f: 2, c: 27600}, 27608, 27610,\n    {f: 5, c: 27612}, {f: 8, c: 27618}, {f: 3, c: 27628}, {f: 3, c: 27632},\n    27636, {f: 3, c: 27638}, {f: 3, c: 27642}, 27646, {f: 5, c: 27648},\n    {f: 3, c: 27657}, 27662, 27666, 27671, {f: 3, c: 27676}, 27680, 27685,\n    27693, 27697, 27699, {f: 2, c: 27702}, {f: 4, c: 27705}, {f: 2, c: 27710},\n    {f: 3, c: 27715}, 27720, {f: 5, c: 27723}, {f: 3, c: 27729}, 27734,\n    {f: 3, c: 27736}, {f: 2, c: 27746}, {f: 3, c: 27749}, {f: 5, c: 27755},\n    27761, 27763, 27765, {f: 2, c: 27767}, {f: 3, c: 27770}, {f: 2, c: 27775},\n    27780, 27783, {f: 2, c: 27786}, {f: 2, c: 27789}, {f: 2, c: 27793},\n    {f: 4, c: 27797}, 27802, {f: 3, c: 27804}, 27808, 27810, 27816, 27820,\n    {f: 2, c: 27823}, {f: 4, c: 27828}, 27834, {f: 4, c: 27840},\n    {f: 3, c: 27846}, 27851, {f: 3, c: 27853}, {f: 2, c: 27857},\n    {f: 3, c: 27864}, {f: 2, c: 27868}, 27871, 27876, {f: 2, c: 27878}, 27881,\n    {f: 2, c: 27884}, 27890, 27892, 27897, {f: 2, c: 27903}, {f: 2, c: 27906},\n    {f: 2, c: 27909}, {f: 3, c: 27912}, 27917, {f: 3, c: 27919},\n    {f: 4, c: 27923}, 27928, {f: 2, c: 27932}, {f: 6, c: 27935}, 27942,\n    {f: 2, c: 27944}, {f: 2, c: 27948}, {f: 2, c: 27951}, 27956,\n    {f: 3, c: 27958}, 27962, {f: 2, c: 27967}, 27970, 27972, 27977, 27980,\n    27984, {f: 4, c: 27989}, 27995, 27997, 27999, {f: 2, c: 28001},\n    {f: 2, c: 28004}, {f: 2, c: 28007}, {f: 3, c: 28011}, {f: 4, c: 28016},\n    {f: 2, c: 28021}, {f: 2, c: 28026}, {f: 5, c: 28029}, {f: 2, c: 28035},\n    28038, {f: 2, c: 28042}, 28045, {f: 2, c: 28047}, 28050, {f: 5, c: 28054},\n    28060, 28066, 28069, {f: 2, c: 28076}, {f: 2, c: 28080}, {f: 2, c: 28083},\n    {f: 2, c: 28086}, {f: 6, c: 28089}, {f: 3, c: 28097}, {f: 3, c: 28104},\n    {f: 4, c: 28109}, {f: 4, c: 28114}, 28119, {f: 3, c: 28122}, 28127,\n    {f: 2, c: 28130}, 28133, {f: 3, c: 28135}, 28141, {f: 2, c: 28143}, 28146,\n    28148, 28152, {f: 8, c: 28157}, {f: 4, c: 28166}, 28171, 28175,\n    {f: 2, c: 28178}, 28181, {f: 2, c: 28184}, {f: 2, c: 28187},\n    {f: 2, c: 28190}, 28194, {f: 2, c: 28199}, 28202, 28206, {f: 2, c: 28208},\n    28211, {f: 3, c: 28213}, 28217, {f: 3, c: 28219}, {f: 4, c: 28223},\n    {f: 8, c: 28229}, {f: 4, c: 28239}, 28245, 28247, {f: 2, c: 28249},\n    {f: 2, c: 28252}, {f: 11, c: 28256}, {f: 2, c: 28268}, {f: 14, c: 28272},\n    {f: 3, c: 28288}, 28292, {f: 2, c: 28295}, {f: 5, c: 28298},\n    {f: 5, c: 28305}, 28311, {f: 3, c: 28313}, 28318, {f: 2, c: 28320},\n    {f: 2, c: 28323}, 28326, {f: 2, c: 28328}, {f: 4, c: 28331}, 28336, 28339,\n    28341, {f: 2, c: 28344}, 28348, {f: 3, c: 28350}, 28355, 28358,\n    {f: 3, c: 28360}, 28365, 28368, 28370, 28374, {f: 2, c: 28376},\n    {f: 3, c: 28379}, 28387, 28391, {f: 2, c: 28394}, {f: 2, c: 28397},\n    {f: 2, c: 28400}, 28403, {f: 2, c: 28405}, {f: 5, c: 28410}, 28416,\n    {f: 3, c: 28419}, {f: 2, c: 28423}, {f: 5, c: 28426}, {f: 3, c: 28432},\n    {f: 4, c: 28438}, {f: 5, c: 28443}, 28449, {f: 4, c: 28453}, 28462, 28464,\n    {f: 2, c: 28468}, 28471, {f: 5, c: 28473}, 28480, {f: 4, c: 28482},\n    {f: 3, c: 28488}, 28492, {f: 3, c: 28494}, {f: 2, c: 28498},\n    {f: 3, c: 28501}, {f: 2, c: 28506}, 28509, {f: 3, c: 28511}, 28515, 28517,\n    {f: 6, c: 28519}, 28529, 28531, {f: 2, c: 28533}, 28537, 28539,\n    {f: 2, c: 28541}, {f: 3, c: 28545}, 28549, {f: 2, c: 28554},\n    {f: 8, c: 28559}, {f: 4, c: 28568}, {f: 3, c: 28573}, {f: 2, c: 28578},\n    {f: 2, c: 28581}, 28584, {f: 4, c: 28586}, {f: 2, c: 28591}, 28594,\n    {f: 2, c: 28596}, {f: 2, c: 28599}, {f: 6, c: 28602}, {f: 5, c: 28612},\n    {f: 7, c: 28618}, {f: 2, c: 28627}, {f: 2, c: 28630}, {f: 2, c: 28633},\n    {f: 2, c: 28636}, {f: 2, c: 28642}, {f: 6, c: 28645}, {f: 2, c: 28652},\n    {f: 8, c: 28658}, 28667, 28669, {f: 6, c: 28671}, {f: 2, c: 28679}, 28682,\n    {f: 3, c: 28684}, 28688, {f: 3, c: 28690}, {f: 2, c: 28694}, 28697, 28700,\n    28702, {f: 2, c: 28705}, {f: 3, c: 28708}, {f: 7, c: 28713}, 28721,\n    {f: 2, c: 28723}, {f: 3, c: 28726}, {f: 4, c: 28730}, {f: 4, c: 28735},\n    {f: 7, c: 28741}, {f: 2, c: 28749}, 28752, {f: 3, c: 28754},\n    {f: 2, c: 28758}, {f: 4, c: 28761}, {f: 4, c: 28767}, {f: 2, c: 28773},\n    {f: 3, c: 28776}, 28782, {f: 4, c: 28785}, 28791, {f: 3, c: 28793}, 28797,\n    {f: 4, c: 28801}, {f: 3, c: 28806}, {f: 3, c: 28811}, {f: 3, c: 28815},\n    28819, {f: 2, c: 28823}, {f: 2, c: 28826}, {f: 13, c: 28830}, 28848, 28850,\n    {f: 3, c: 28852}, 28858, {f: 2, c: 28862}, {f: 4, c: 28868}, 28873,\n    {f: 4, c: 28875}, {f: 8, c: 28880}, 28890, {f: 3, c: 28892},\n    {f: 4, c: 28896}, 28901, 28906, 28910, {f: 4, c: 28912}, {f: 2, c: 28917},\n    28920, {f: 3, c: 28922}, {f: 11, c: 28926}, {f: 5, c: 28939},\n    {f: 2, c: 28945}, 28948, 28951, {f: 6, c: 28955}, {f: 4, c: 28962},\n    {f: 8, c: 28967}, {f: 4, c: 28978}, {f: 14, c: 28983}, {f: 3, c: 28998},\n    29003, 29005, {f: 3, c: 29007}, {f: 9, c: 29011}, 29021, {f: 3, c: 29023},\n    29027, 29029, {f: 2, c: 29034}, 29037, {f: 3, c: 29039}, {f: 4, c: 29044},\n    29049, {f: 2, c: 29051}, {f: 6, c: 29054}, {f: 5, c: 29061},\n    {f: 4, c: 29067}, {f: 2, c: 29072}, 29075, {f: 2, c: 29077},\n    {f: 5, c: 29082}, {f: 7, c: 29089}, {f: 3, c: 29097}, {f: 4, c: 29101},\n    29106, 29108, {f: 3, c: 29110}, {f: 4, c: 29114}, {f: 2, c: 29119}, 29122,\n    {f: 4, c: 29124}, {f: 5, c: 29129}, {f: 3, c: 29135}, 29139,\n    {f: 3, c: 29142}, {f: 2, c: 29146}, {f: 2, c: 29149}, {f: 4, c: 29153},\n    {f: 5, c: 29160}, {f: 5, c: 29167}, {f: 4, c: 29173}, {f: 2, c: 29178},\n    29181, {f: 7, c: 29183}, {f: 6, c: 29191}, {f: 2, c: 29198},\n    {f: 10, c: 29201}, 29212, {f: 10, c: 29214}, 29225, 29227,\n    {f: 3, c: 29229}, {f: 2, c: 29235}, 29244, {f: 7, c: 29248},\n    {f: 3, c: 29257}, {f: 4, c: 29262}, {f: 3, c: 29267}, 29271, 29274, 29276,\n    29278, 29280, {f: 3, c: 29283}, 29288, {f: 4, c: 29290}, {f: 2, c: 29296},\n    {f: 2, c: 29299}, {f: 3, c: 29302}, {f: 2, c: 29307}, {f: 2, c: 29314},\n    {f: 5, c: 29317}, 29324, 29326, {f: 2, c: 29328}, {f: 3, c: 29331},\n    {f: 8, c: 29335}, {f: 2, c: 29344}, {f: 4, c: 29347}, {f: 4, c: 29352},\n    29358, {f: 3, c: 29361}, 29365, {f: 6, c: 29370}, {f: 3, c: 29381},\n    {f: 4, c: 29385}, 29391, 29393, {f: 4, c: 29395}, 29400, {f: 4, c: 29402},\n    29407, {f: 6, c: 29410}, {f: 2, c: 29418}, {f: 2, c: 29429},\n    {f: 3, c: 29438}, 29442, {f: 6, c: 29444}, {f: 3, c: 29451},\n    {f: 4, c: 29455}, 29460, {f: 3, c: 29464}, {f: 2, c: 29471},\n    {f: 2, c: 29475}, {f: 3, c: 29478}, 29485, {f: 2, c: 29487},\n    {f: 2, c: 29490}, 29493, 29498, {f: 2, c: 29500}, 29504, {f: 2, c: 29506},\n    {f: 7, c: 29510}, {f: 2, c: 29518}, 29521, {f: 4, c: 29523},\n    {f: 8, c: 29528}, {f: 7, c: 29537}, 29545, 29550, 29553, {f: 2, c: 29555},\n    29558, 29561, 29565, 29567, {f: 3, c: 29569}, {f: 2, c: 29573}, 29576,\n    29578, {f: 2, c: 29580}, {f: 2, c: 29583}, {f: 4, c: 29586},\n    {f: 4, c: 29591}, {f: 3, c: 29596}, {f: 2, c: 29600}, {f: 6, c: 29603},\n    29610, {f: 2, c: 29612}, 29617, {f: 3, c: 29620}, {f: 2, c: 29624},\n    {f: 4, c: 29628}, 29633, {f: 5, c: 29635}, {f: 2, c: 29643}, 29646,\n    {f: 7, c: 29650}, {f: 4, c: 29658}, 29663, {f: 4, c: 29665}, 29670, 29672,\n    {f: 3, c: 29674}, {f: 4, c: 29678}, {f: 11, c: 29683}, {f: 4, c: 29695},\n    29700, {f: 2, c: 29703}, {f: 4, c: 29707}, {f: 9, c: 29713},\n    {f: 6, c: 29724}, {f: 2, c: 29731}, 29735, 29737, 29739, 29741, 29743,\n    {f: 2, c: 29745}, {f: 5, c: 29751}, {f: 2, c: 29757}, 29760,\n    {f: 9, c: 29762}, {f: 9, c: 29772}, 29782, 29784, 29789, {f: 3, c: 29792},\n    {f: 5, c: 29796}, {f: 2, c: 29803}, {f: 2, c: 29806}, {f: 5, c: 29809},\n    {f: 6, c: 29816}, 29823, 29826, {f: 3, c: 29828}, 29832, 29834,\n    {f: 2, c: 29836}, 29839, {f: 11, c: 29841}, 29853, {f: 4, c: 29855},\n    {f: 2, c: 29860}, {f: 6, c: 29866}, {f: 9, c: 29873}, {f: 2, c: 29883},\n    {f: 12, c: 29886}, {f: 4, c: 29899}, {f: 2, c: 29904}, 29907,\n    {f: 5, c: 29909}, 29915, 29917, 29919, 29921, 29925, {f: 7, c: 29927},\n    {f: 4, c: 29936}, 29941, {f: 7, c: 29944}, {f: 4, c: 29952},\n    {f: 7, c: 29957}, 29966, 29968, 29970, {f: 4, c: 29972}, 29979,\n    {f: 2, c: 29981}, {f: 3, c: 29984}, 29988, {f: 2, c: 29990}, 29994, 29998,\n    30004, 30006, 30009, {f: 2, c: 30012}, 30015, {f: 4, c: 30017},\n    {f: 2, c: 30022}, {f: 2, c: 30025}, 30029, {f: 4, c: 30032},\n    {f: 4, c: 30037}, {f: 4, c: 30046}, {f: 2, c: 30051}, {f: 3, c: 30055},\n    {f: 6, c: 30060}, 30067, 30069, 30071, {f: 5, c: 30074}, {f: 3, c: 30080},\n    {f: 2, c: 30084}, {f: 3, c: 30088}, {f: 3, c: 30092}, 30096, 30099, 30101,\n    30104, {f: 2, c: 30107}, 30110, 30114, {f: 5, c: 30118}, 30125,\n    {f: 2, c: 30134}, {f: 2, c: 30138}, {f: 3, c: 30143}, 30150,\n    {f: 2, c: 30155}, {f: 4, c: 30158}, 30163, 30167, 30170, {f: 2, c: 30172},\n    {f: 3, c: 30175}, 30181, 30185, {f: 4, c: 30188}, {f: 2, c: 30194},\n    {f: 4, c: 30197}, {f: 2, c: 30202}, {f: 2, c: 30205}, 30212,\n    {f: 4, c: 30214}, {f: 2, c: 30222}, {f: 4, c: 30225}, 30230, 30234,\n    {f: 2, c: 30236}, 30243, 30248, 30252, {f: 2, c: 30254}, {f: 2, c: 30257},\n    {f: 2, c: 30262}, {f: 2, c: 30265}, 30269, 30273, {f: 2, c: 30276}, 30280,\n    {f: 2, c: 30282}, {f: 6, c: 30286}, 30293, 30295, {f: 3, c: 30297}, 30301,\n    {f: 2, c: 30304}, 30310, 30312, 30314, {f: 3, c: 30323}, [12136, 30326],\n    30327, {f: 2, c: 30329}, {f: 3, c: 30335}, 30339, 30341, {f: 2, c: 30345},\n    {f: 2, c: 30348}, {f: 2, c: 30351}, 30354, {f: 2, c: 30356},\n    {f: 2, c: 30359}, {f: 9, c: 30363}, {f: 9, c: 30373}, {f: 2, c: 30383},\n    30387, {f: 3, c: 30389}, 30393, {f: 4, c: 30395}, {f: 2, c: 30400},\n    {f: 2, c: 30403}, 30407, 30409, {f: 2, c: 30411}, 30419, 30421,\n    {f: 2, c: 30425}, {f: 2, c: 30428}, 30432, 30434, 30438, {f: 6, c: 30440},\n    30448, 30451, {f: 3, c: 30453}, {f: 2, c: 30458}, 30461, {f: 2, c: 30463},\n    {f: 2, c: 30466}, {f: 2, c: 30469}, 30474, 30476, {f: 11, c: 30478},\n    {f: 4, c: 30491}, 30497, {f: 3, c: 30499}, 30503, {f: 3, c: 30506}, 30510,\n    {f: 5, c: 30512}, 30521, 30523, {f: 3, c: 30525}, 30530, {f: 3, c: 30532},\n    {f: 7, c: 30536}, {f: 8, c: 30546}, {f: 2, c: 30556}, {f: 2, c: 30559},\n    30564, 30567, {f: 2, c: 30569}, {f: 12, c: 30573}, {f: 3, c: 30586},\n    {f: 3, c: 30593}, {f: 6, c: 30598}, {f: 2, c: 30607}, {f: 5, c: 30611},\n    {f: 5, c: 30617}, 30625, {f: 2, c: 30627}, 30630, 30632, 30635,\n    {f: 2, c: 30638}, {f: 2, c: 30641}, 30644, {f: 5, c: 30646}, 30654,\n    {f: 7, c: 30656}, {f: 5, c: 30664}, {f: 9, c: 30670}, {f: 2, c: 30680},\n    {f: 5, c: 30685}, 30692, 30694, 30696, 30698, {f: 3, c: 30704},\n    {f: 2, c: 30708}, 30711, {f: 4, c: 30713}, {f: 6, c: 30723},\n    {f: 2, c: 30730}, {f: 3, c: 30734}, 30739, 30741, 30745, 30747, 30750,\n    {f: 3, c: 30752}, 30756, 30760, {f: 2, c: 30762}, {f: 2, c: 30766},\n    {f: 3, c: 30769}, {f: 2, c: 30773}, 30781, 30783, {f: 2, c: 30785}, 30788,\n    30790, {f: 4, c: 30792}, 30797, 30799, 30801, {f: 2, c: 30803},\n    {f: 5, c: 30808}, {f: 6, c: 30814}, {f: 3, c: 30821}, 30825,\n    {f: 7, c: 30832}, {f: 4, c: 30840}, {f: 10, c: 30845}, 30856,\n    {f: 2, c: 30858}, {f: 2, c: 30863}, 30866, {f: 3, c: 30868}, 30873,\n    {f: 2, c: 30877}, 30880, 30882, 30884, 30886, 30888, {f: 3, c: 30890},\n    {f: 2, c: 30894}, {f: 3, c: 30901}, 30907, 30909, {f: 2, c: 30911},\n    {f: 3, c: 30914}, {f: 3, c: 30918}, {f: 4, c: 30924}, {f: 3, c: 30929},\n    {f: 3, c: 30934}, {f: 8, c: 30939}, {f: 3, c: 30948}, {f: 3, c: 30953},\n    {f: 2, c: 30957}, {f: 2, c: 30960}, 30963, {f: 2, c: 30965},\n    {f: 2, c: 30968}, {f: 2, c: 30971}, {f: 3, c: 30974}, {f: 3, c: 30978},\n    {f: 8, c: 30982}, {f: 4, c: 30991}, {f: 5, c: 30996}, {f: 4, c: 31002},\n    {f: 5, c: 31007}, 31013, {f: 3, c: 31015}, {f: 4, c: 31021},\n    {f: 2, c: 31026}, {f: 5, c: 31029}, 31037, 31039, {f: 4, c: 31042}, 31047,\n    {f: 9, c: 31050}, {f: 2, c: 31060}, {f: 2, c: 31064}, 31073,\n    {f: 2, c: 31075}, 31078, {f: 4, c: 31081}, 31086, {f: 7, c: 31088}, 31097,\n    {f: 5, c: 31099}, {f: 2, c: 31106}, {f: 4, c: 31110}, {f: 2, c: 31115},\n    {f: 10, c: 31120}, {f: 11, c: 31131}, {f: 2, c: 31144}, {f: 3, c: 31147},\n    31151, 31154, {f: 4, c: 31156}, [12145, 31160], 31164, 31167, 31170,\n    {f: 2, c: 31172}, {f: 2, c: 31175}, 31178, 31180, {f: 3, c: 31182},\n    {f: 2, c: 31187}, {f: 2, c: 31190}, {f: 6, c: 31193}, {f: 3, c: 31200},\n    31205, 31208, 31210, 31212, 31214, {f: 7, c: 31217}, {f: 2, c: 31225},\n    31228, {f: 2, c: 31230}, 31233, {f: 2, c: 31236}, {f: 4, c: 31239}, 31244,\n    {f: 5, c: 31247}, {f: 2, c: 31253}, {f: 2, c: 31256}, {f: 3, c: 31259},\n    31263, {f: 2, c: 31265}, {f: 10, c: 31268}, {f: 2, c: 31279}, 31282,\n    {f: 3, c: 31284}, 31288, 31290, 31294, {f: 5, c: 31297}, {f: 5, c: 31303},\n    {f: 2, c: 31311}, {f: 5, c: 31314}, {f: 9, c: 31320}, {f: 6, c: 31331},\n    31338, {f: 4, c: 31340}, {f: 3, c: 31345}, 31349, {f: 4, c: 31355}, 31362,\n    31365, 31367, {f: 4, c: 31369}, {f: 3, c: 31374}, {f: 2, c: 31379},\n    {f: 3, c: 31385}, 31390, {f: 4, c: 31393}, 31399, 31403, {f: 4, c: 31407},\n    {f: 2, c: 31412}, {f: 3, c: 31415}, {f: 4, c: 31419}, {f: 4, c: 31424},\n    31430, 31433, {f: 10, c: 31436}, {f: 2, c: 31447}, {f: 4, c: 31450},\n    {f: 2, c: 31457}, 31460, {f: 3, c: 31463}, {f: 2, c: 31467}, 31470,\n    {f: 6, c: 31472}, {f: 2, c: 31479}, {f: 2, c: 31483}, 31486,\n    {f: 3, c: 31488}, 31493, 31495, 31497, {f: 3, c: 31500}, 31504,\n    {f: 2, c: 31506}, {f: 3, c: 31510}, 31514, {f: 2, c: 31516}, 31519,\n    {f: 3, c: 31521}, 31527, 31529, 31533, {f: 2, c: 31535}, 31538,\n    {f: 4, c: 31540}, 31545, 31547, 31549, {f: 6, c: 31551}, 31560, 31562,\n    {f: 2, c: 31565}, 31571, 31573, 31575, 31577, 31580, {f: 2, c: 31582},\n    31585, {f: 4, c: 31587}, {f: 6, c: 31592}, {f: 2, c: 31599},\n    {f: 2, c: 31603}, 31606, 31608, 31610, {f: 2, c: 31612}, 31615,\n    {f: 4, c: 31617}, {f: 5, c: 31622}, 31628, {f: 2, c: 31630},\n    {f: 3, c: 31633}, 31638, {f: 4, c: 31640}, {f: 3, c: 31646},\n    {f: 3, c: 31651}, {f: 3, c: 31662}, {f: 2, c: 31666}, {f: 3, c: 31669},\n    {f: 7, c: 31673}, {f: 2, c: 31682}, 31685, 31688, 31690, {f: 4, c: 31693},\n    31698, {f: 5, c: 31700}, {f: 2, c: 31707}, {f: 3, c: 31710},\n    {f: 2, c: 31714}, {f: 2, c: 31719}, {f: 3, c: 31723}, {f: 2, c: 31727},\n    31730, {f: 3, c: 31732}, {f: 4, c: 31736}, 31741, 31743, {f: 6, c: 31745},\n    {f: 3, c: 31752}, 31758, {f: 6, c: 31760}, {f: 7, c: 31767}, 31776, 31778,\n    {f: 2, c: 31780}, {f: 2, c: 31784}, {f: 12, c: 31788}, {f: 4, c: 31801},\n    31810, {f: 8, c: 31812}, {f: 14, c: 31822}, {f: 2, c: 31837},\n    {f: 3, c: 31841}, {f: 4, c: 31845}, 31851, 31853, {f: 3, c: 31855},\n    {f: 6, c: 31861}, {f: 11, c: 31870}, {f: 7, c: 31882}, {f: 2, c: 31891},\n    31894, {f: 3, c: 31897}, {f: 2, c: 31904}, 31907, {f: 4, c: 31910},\n    {f: 3, c: 31915}, {f: 2, c: 31919}, {f: 5, c: 31924}, {f: 2, c: 31930},\n    {f: 2, c: 31935}, {f: 3, c: 31938}, 31942, 31945, 31947, {f: 7, c: 31950},\n    31960, {f: 2, c: 31962}, {f: 6, c: 31969}, {f: 6, c: 31977}, 31985, 31987,\n    31989, 31991, 31994, {f: 2, c: 31996}, 31999, 32001, 32003, 32012,\n    {f: 2, c: 32014}, {f: 2, c: 32017}, 32022, 32024, {f: 3, c: 32029},\n    {f: 4, c: 32035}, {f: 3, c: 32040}, {f: 3, c: 32044}, {f: 5, c: 32052},\n    32059, {f: 2, c: 32061}, 32065, 32067, 32069, {f: 7, c: 32071}, 32079,\n    {f: 12, c: 32081}, {f: 2, c: 32095}, {f: 3, c: 32099}, 32103,\n    {f: 5, c: 32105}, {f: 2, c: 32111}, {f: 2, c: 32116}, 32120,\n    {f: 7, c: 32122}, 32130, {f: 2, c: 32132}, 32135, {f: 5, c: 32138},\n    {f: 3, c: 32144}, {f: 8, c: 32148}, 32157, {f: 3, c: 32159},\n    {f: 2, c: 32164}, {f: 4, c: 32167}, 32175, {f: 3, c: 32181}, 32188,\n    {f: 4, c: 32192}, {f: 2, c: 32197}, {f: 2, c: 32200}, {f: 5, c: 32204},\n    32211, {f: 2, c: 32213}, {f: 3, c: 32218}, 32223, 32226, {f: 2, c: 32228},\n    32231, {f: 2, c: 32234}, {f: 2, c: 32237}, 32240, 32243, 32245,\n    {f: 2, c: 32247}, 32250, {f: 12, c: 32252}, {f: 4, c: 32268},\n    {f: 9, c: 32274}, 32284, {f: 3, c: 32288}, {f: 3, c: 32292},\n    {f: 3, c: 32296}, 32300, {f: 2, c: 32303}, 32307, 32312, 32314, 32316,\n    {f: 2, c: 32319}, {f: 3, c: 32322}, {f: 10, c: 32328}, 32339,\n    {f: 4, c: 32342}, {f: 3, c: 32347}, {f: 3, c: 32351}, {f: 6, c: 32355},\n    32364, {f: 2, c: 32369}, {f: 5, c: 32372}, {f: 2, c: 32378},\n    {f: 3, c: 32383}, {f: 5, c: 32387}, 32393, 32395, 32398, {f: 3, c: 32400},\n    32405, 32407, {f: 2, c: 32409}, {f: 2, c: 32413}, 32430, 32436,\n    {f: 2, c: 32443}, 32470, 32484, 32492, 32505, 32522, 32528, 32542, 32567,\n    32569, {f: 7, c: 32571}, 32579, {f: 6, c: 32582}, 32589, 32591,\n    {f: 2, c: 32594}, 32598, 32601, {f: 4, c: 32603}, 32608, {f: 5, c: 32611},\n    {f: 3, c: 32619}, 32623, 32627, {f: 2, c: 32629}, 32632, {f: 4, c: 32634},\n    {f: 2, c: 32639}, {f: 3, c: 32642}, 32647, 32649, 32651, 32653,\n    {f: 5, c: 32655}, {f: 5, c: 32661}, {f: 2, c: 32667}, 32672,\n    {f: 2, c: 32674}, 32678, 32680, {f: 5, c: 32682}, 32689, {f: 5, c: 32691},\n    {f: 2, c: 32698}, 32702, 32704, {f: 3, c: 32706}, {f: 4, c: 32710}, 32715,\n    32717, {f: 3, c: 32719}, 32723, {f: 2, c: 32726}, {f: 6, c: 32729},\n    {f: 3, c: 32738}, {f: 2, c: 32743}, {f: 4, c: 32746}, 32751, 32754,\n    {f: 5, c: 32756}, 32762, {f: 3, c: 32765}, 32770, {f: 4, c: 32775},\n    {f: 2, c: 32782}, 32785, 32787, {f: 2, c: 32794}, {f: 3, c: 32797}, 32801,\n    {f: 2, c: 32803}, 32811, 32813, {f: 2, c: 32815}, 32818, 32820,\n    {f: 2, c: 32825}, 32828, 32830, {f: 2, c: 32832}, {f: 2, c: 32836},\n    {f: 3, c: 32839}, {f: 4, c: 32846}, 32851, 32853, 32855, 32857,\n    {f: 3, c: 32859}, {f: 10, c: 32863}, {f: 4, c: 32875}, 32884, 32888,\n    {f: 3, c: 32890}, {f: 2, c: 32897}, 32904, 32906, {f: 6, c: 32909},\n    {f: 2, c: 32916}, 32919, 32921, 32926, 32931, {f: 3, c: 32934}, 32940,\n    32944, 32947, {f: 2, c: 32949}, {f: 2, c: 32952}, 32955, 32965,\n    {f: 5, c: 32967}, {f: 7, c: 32975}, 32984, {f: 2, c: 32991},\n    {f: 2, c: 32994}, 32998, 33006, 33013, 33015, 33017, 33019,\n    {f: 4, c: 33022}, {f: 2, c: 33027}, {f: 2, c: 33031}, {f: 2, c: 33035},\n    33045, 33047, 33049, {f: 2, c: 33052}, {f: 13, c: 33055}, {f: 2, c: 33069},\n    33072, {f: 3, c: 33075}, 33079, {f: 4, c: 33082}, {f: 7, c: 33087}, 33095,\n    33097, 33101, 33103, 33106, {f: 2, c: 33111}, {f: 5, c: 33115},\n    {f: 3, c: 33122}, 33128, 33130, 33132, 33135, {f: 2, c: 33138},\n    {f: 3, c: 33141}, 33153, {f: 5, c: 33155}, 33161, {f: 4, c: 33163}, 33168,\n    {f: 6, c: 33170}, 33177, {f: 2, c: 33182}, {f: 2, c: 33185},\n    {f: 2, c: 33188}, 33191, {f: 8, c: 33195}, {f: 6, c: 33204}, 33212,\n    {f: 2, c: 33220}, {f: 2, c: 33223}, 33227, 33230, {f: 8, c: 33232}, 33241,\n    {f: 4, c: 33243}, {f: 2, c: 33249}, {f: 3, c: 33252}, 33257, 33259,\n    {f: 5, c: 33262}, {f: 5, c: 33269}, 33277, 33279, 33283, 33291,\n    {f: 2, c: 33294}, 33297, 33299, {f: 6, c: 33301}, 33309, 33312,\n    {f: 4, c: 33316}, 33321, 33326, 33330, 33338, {f: 2, c: 33340},\n    {f: 5, c: 33343}, {f: 2, c: 33349}, 33352, 33354, {f: 3, c: 33356},\n    {f: 8, c: 33360}, {f: 4, c: 33371}, {f: 4, c: 33376}, 33381, 33383,\n    {f: 2, c: 33385}, {f: 2, c: 33388}, {f: 2, c: 33397}, [12171, 33400],\n    {f: 2, c: 33403}, {f: 2, c: 33408}, 33411, {f: 3, c: 33413}, 33417, 33420,\n    33424, {f: 4, c: 33427}, {f: 2, c: 33434}, 33438, 33440, {f: 2, c: 33442},\n    33447, 33458, {f: 2, c: 33461}, 33466, 33468, {f: 2, c: 33471},\n    {f: 2, c: 33474}, {f: 2, c: 33477}, 33481, 33488, 33494, {f: 2, c: 33497},\n    33501, 33506, {f: 3, c: 33512}, {f: 3, c: 33516}, 33520, {f: 2, c: 33522},\n    {f: 2, c: 33525}, 33528, 33530, {f: 5, c: 33532}, {f: 2, c: 33546}, 33549,\n    33552, {f: 2, c: 33554}, 33558, {f: 2, c: 33560}, {f: 10, c: 33565},\n    {f: 2, c: 33577}, 33582, 33584, 33586, 33591, 33595, {f: 3, c: 33597},\n    {f: 2, c: 33601}, {f: 2, c: 33604}, 33608, {f: 5, c: 33610}, 33619,\n    {f: 5, c: 33621}, 33629, 33634, {f: 7, c: 33648}, {f: 2, c: 33657},\n    {f: 7, c: 33662}, {f: 2, c: 33671}, {f: 3, c: 33675}, {f: 3, c: 33679},\n    {f: 2, c: 33684}, 33687, {f: 2, c: 33689}, 33693, 33695, 33697,\n    {f: 4, c: 33699}, {f: 4, c: 33708}, 33717, 33723, {f: 2, c: 33726},\n    {f: 3, c: 33730}, 33734, {f: 2, c: 33736}, 33739, {f: 2, c: 33741},\n    {f: 4, c: 33744}, 33749, 33751, {f: 3, c: 33753}, 33758, {f: 3, c: 33762},\n    {f: 3, c: 33766}, {f: 4, c: 33771}, {f: 5, c: 33779}, {f: 3, c: 33786},\n    {f: 3, c: 33790}, 33794, 33797, {f: 2, c: 33800}, 33808, {f: 6, c: 33810},\n    {f: 3, c: 33817}, {f: 6, c: 33822}, {f: 3, c: 33833}, {f: 4, c: 33837},\n    {f: 3, c: 33842}, {f: 2, c: 33846}, {f: 3, c: 33849}, {f: 8, c: 33854},\n    {f: 2, c: 33863}, {f: 7, c: 33866}, {f: 4, c: 33875}, 33880,\n    {f: 4, c: 33885}, 33890, 33893, {f: 2, c: 33895}, 33898, 33902, 33904,\n    33906, 33908, 33913, {f: 7, c: 33915}, {f: 4, c: 33923}, 33930, 33933,\n    {f: 4, c: 33935}, {f: 2, c: 33941}, 33944, {f: 2, c: 33946},\n    {f: 4, c: 33949}, {f: 13, c: 33954}, {f: 2, c: 33968}, 33971,\n    {f: 3, c: 33973}, 33979, 33982, {f: 2, c: 33986}, {f: 4, c: 33989}, 33996,\n    {f: 2, c: 33998}, 34002, {f: 2, c: 34004}, {f: 6, c: 34007}, 34014,\n    {f: 2, c: 34017}, 34020, {f: 5, c: 34023}, 34029, {f: 11, c: 34033}, 34046,\n    {f: 12, c: 34048}, {f: 4, c: 34061}, 34066, {f: 2, c: 34069},\n    {f: 2, c: 34072}, {f: 3, c: 34075}, 34080, 34082, {f: 2, c: 34084},\n    {f: 4, c: 34087}, {f: 9, c: 34094}, {f: 3, c: 34110}, 34114,\n    {f: 2, c: 34116}, 34119, {f: 3, c: 34123}, {f: 3, c: 34127}, 34132, 34135,\n    {f: 4, c: 34138}, {f: 3, c: 34143}, 34147, {f: 3, c: 34149},\n    {f: 2, c: 34155}, {f: 4, c: 34158}, 34163, {f: 2, c: 34165}, 34168,\n    {f: 2, c: 34172}, {f: 5, c: 34175}, 34182, 34185, 34187, {f: 2, c: 34189},\n    34192, {f: 2, c: 34194}, {f: 6, c: 34197}, {f: 2, c: 34205},\n    {f: 4, c: 34208}, 34213, 34215, {f: 3, c: 34219}, {f: 6, c: 34225}, 34232,\n    {f: 6, c: 34235}, {f: 7, c: 34242}, {f: 3, c: 34250}, {f: 2, c: 34257},\n    34260, {f: 6, c: 34262}, {f: 6, c: 34270}, {f: 3, c: 34278},\n    {f: 9, c: 34283}, 34293, {f: 2, c: 34295}, {f: 3, c: 34300},\n    {f: 4, c: 34304}, {f: 3, c: 34312}, {f: 5, c: 34316}, {f: 4, c: 34322},\n    {f: 3, c: 34327}, {f: 3, c: 34331}, {f: 3, c: 34335}, {f: 4, c: 34339},\n    34344, {f: 3, c: 34346}, {f: 10, c: 34350}, 34361, 34363, {f: 2, c: 34365},\n    {f: 13, c: 34368}, {f: 2, c: 34386}, {f: 4, c: 34390}, 34395, 34397,\n    {f: 2, c: 34400}, {f: 4, c: 34403}, {f: 3, c: 34408}, 34413,\n    {f: 2, c: 34415}, {f: 7, c: 34418}, {f: 7, c: 34435}, {f: 5, c: 34446},\n    34452, {f: 6, c: 34454}, {f: 5, c: 34462}, {f: 2, c: 34469}, 34475,\n    {f: 2, c: 34477}, {f: 2, c: 34482}, {f: 3, c: 34487}, {f: 5, c: 34491},\n    {f: 3, c: 34497}, 34501, 34504, {f: 2, c: 34508}, {f: 2, c: 34514},\n    {f: 3, c: 34517}, 34522, {f: 2, c: 34524}, {f: 4, c: 34528},\n    {f: 4, c: 34533}, {f: 3, c: 34538}, 34543, {f: 3, c: 34549},\n    {f: 3, c: 34555}, 34559, 34561, {f: 2, c: 34564}, {f: 2, c: 34571},\n    {f: 4, c: 34574}, 34580, 34582, 34585, 34587, 34589, {f: 2, c: 34591},\n    34596, {f: 3, c: 34598}, {f: 4, c: 34602}, {f: 2, c: 34607},\n    {f: 2, c: 34610}, {f: 2, c: 34613}, {f: 3, c: 34616}, {f: 2, c: 34620},\n    {f: 7, c: 34624}, {f: 2, c: 34634}, 34637, {f: 4, c: 34639}, 34644, 34646,\n    34648, {f: 6, c: 34650}, {f: 2, c: 34657}, {f: 7, c: 34663}, 34671,\n    {f: 3, c: 34673}, 34677, 34679, {f: 2, c: 34681}, {f: 3, c: 34687},\n    {f: 2, c: 34694}, {f: 2, c: 34697}, 34700, {f: 5, c: 34702},\n    {f: 3, c: 34708}, {f: 6, c: 34712}, {f: 2, c: 34720}, {f: 5, c: 34723},\n    {f: 2, c: 34729}, 34734, {f: 3, c: 34736}, 34740, {f: 4, c: 34742}, 34748,\n    {f: 2, c: 34750}, {f: 3, c: 34753}, 34757, 34759, 34761, {f: 2, c: 34764},\n    {f: 2, c: 34767}, {f: 7, c: 34772}, {f: 4, c: 34780}, {f: 2, c: 34785},\n    34788, {f: 4, c: 34790}, 34795, 34797, {f: 2, c: 34800}, {f: 3, c: 34803},\n    {f: 2, c: 34807}, 34810, {f: 2, c: 34812}, {f: 4, c: 34815}, 34820,\n    {f: 3, c: 34823}, {f: 5, c: 34827}, 34834, 34836, {f: 4, c: 34839},\n    {f: 3, c: 34844}, 34848, {f: 13, c: 34852}, {f: 3, c: 34867},\n    {f: 2, c: 34871}, 34874, {f: 3, c: 34877}, {f: 3, c: 34881},\n    {f: 3, c: 34887}, 34891, {f: 5, c: 34894}, {f: 2, c: 34901}, 34904, 34906,\n    34908, {f: 3, c: 34910}, {f: 2, c: 34918}, 34922, 34925, 34927, 34929,\n    {f: 4, c: 34931}, 34936, {f: 3, c: 34938}, 34944, 34947, {f: 2, c: 34950},\n    {f: 2, c: 34953}, 34956, {f: 4, c: 34958}, {f: 3, c: 34963},\n    {f: 5, c: 34967}, {f: 5, c: 34973}, 34979, {f: 6, c: 34981}, 34988,\n    {f: 3, c: 34990}, {f: 5, c: 34994}, {f: 4, c: 35000}, {f: 4, c: 35005},\n    {f: 2, c: 35011}, {f: 2, c: 35015}, {f: 3, c: 35019}, {f: 2, c: 35024},\n    35027, {f: 2, c: 35030}, {f: 2, c: 35034}, 35038, {f: 2, c: 35040},\n    {f: 2, c: 35046}, {f: 7, c: 35049}, 35058, {f: 3, c: 35061},\n    {f: 2, c: 35066}, {f: 3, c: 35071}, {f: 4, c: 35075}, {f: 2, c: 35080},\n    {f: 5, c: 35083}, 35089, {f: 5, c: 35092}, {f: 5, c: 35100},\n    {f: 3, c: 35106}, {f: 4, c: 35110}, {f: 4, c: 35116}, 35121, 35125, 35127,\n    {f: 2, c: 35129}, {f: 5, c: 35132}, {f: 2, c: 35138}, {f: 2, c: 35141},\n    {f: 14, c: 35144}, {f: 6, c: 35159}, {f: 3, c: 35169}, 35173,\n    {f: 3, c: 35175}, 35179, {f: 2, c: 35181}, {f: 2, c: 35184},\n    {f: 8, c: 35187}, {f: 2, c: 35196}, [12177, 35198], 35200, 35202,\n    {f: 2, c: 35204}, {f: 4, c: 35207}, {f: 3, c: 35212}, {f: 3, c: 35216},\n    {f: 2, c: 35220}, 35223, {f: 8, c: 35225}, {f: 4, c: 35234},\n    {f: 3, c: 35239}, 35243, {f: 2, c: 35245}, {f: 2, c: 35248},\n    {f: 4, c: 35251}, {f: 2, c: 35256}, {f: 2, c: 35259}, 35262, 35267, 35277,\n    {f: 3, c: 35283}, {f: 3, c: 35287}, 35291, 35293, {f: 4, c: 35295}, 35300,\n    {f: 4, c: 35303}, {f: 3, c: 35308}, {f: 3, c: 35312}, 35317, 35319,\n    {f: 7, c: 35321}, {f: 3, c: 35332}, 35337, 35339, 35341, 35343,\n    {f: 2, c: 35345}, 35348, 35351, {f: 2, c: 35353}, 35356, 35358,\n    {f: 3, c: 35360}, 35364, {f: 4, c: 35366}, {f: 2, c: 35371},\n    {f: 3, c: 35374}, {f: 2, c: 35378}, 35381, {f: 3, c: 35383},\n    {f: 3, c: 35387}, {f: 2, c: 35391}, {f: 4, c: 35394}, 35399,\n    {f: 5, c: 35401}, 35407, 35409, 35411, {f: 2, c: 35414}, {f: 2, c: 35417},\n    {f: 2, c: 35420}, {f: 2, c: 35423}, {f: 2, c: 35428}, {f: 2, c: 35431},\n    35434, 35439, 35444, {f: 3, c: 35446}, {f: 2, c: 35450}, {f: 2, c: 35453},\n    {f: 4, c: 35456}, 35464, {f: 2, c: 35467}, {f: 3, c: 35470}, 35476,\n    {f: 2, c: 35478}, 35481, {f: 3, c: 35483}, 35487, 35490, 35495,\n    {f: 3, c: 35497}, {f: 3, c: 35501}, 35505, {f: 3, c: 35507},\n    {f: 2, c: 35511}, {f: 2, c: 35514}, {f: 2, c: 35517}, {f: 2, c: 35520},\n    35523, {f: 2, c: 35525}, 35528, 35530, 35532, 35534, 35536,\n    {f: 3, c: 35539}, {f: 3, c: 35544}, 35549, {f: 3, c: 35551}, 35555, 35557,\n    {f: 3, c: 35560}, 35564, {f: 2, c: 35567}, 35570, {f: 2, c: 35572}, 35577,\n    35579, 35581, 35583, 35587, 35590, {f: 2, c: 35592}, {f: 3, c: 35595},\n    35599, {f: 3, c: 35601}, 35605, 35608, 35612, {f: 3, c: 35614},\n    {f: 4, c: 35618}, 35623, {f: 2, c: 35625}, {f: 5, c: 35630},\n    {f: 5, c: 35636}, {f: 4, c: 35642}, {f: 10, c: 35647}, {f: 4, c: 35658},\n    {f: 6, c: 35664}, 35671, 35675, {f: 9, c: 35677}, {f: 4, c: 35687},\n    {f: 2, c: 35693}, {f: 3, c: 35697}, {f: 2, c: 35701}, {f: 5, c: 35704},\n    {f: 2, c: 35710}, {f: 9, c: 35713}, {f: 3, c: 35723}, {f: 3, c: 35727},\n    35732, {f: 5, c: 35735}, 35741, 35743, 35756, 35761, 35771, 35783, 35792,\n    35818, 35849, 35870, {f: 9, c: 35896}, {f: 4, c: 35906}, {f: 2, c: 35914},\n    {f: 3, c: 35917}, {f: 4, c: 35921}, {f: 4, c: 35926}, {f: 6, c: 35931},\n    {f: 7, c: 35939}, {f: 7, c: 35948}, {f: 4, c: 35956}, {f: 7, c: 35963},\n    {f: 2, c: 35971}, {f: 3, c: 35974}, 35979, {f: 7, c: 35981},\n    {f: 3, c: 35989}, {f: 4, c: 35993}, 35999, {f: 4, c: 36003},\n    {f: 2, c: 36013}, 36017, 36021, 36025, 36030, 36038, 36041,\n    {f: 6, c: 36043}, 36052, {f: 4, c: 36054}, 36059, 36061, 36063, 36069,\n    {f: 2, c: 36072}, {f: 6, c: 36078}, {f: 5, c: 36085}, {f: 5, c: 36095},\n    {f: 2, c: 36102}, 36105, 36108, 36110, {f: 5, c: 36113}, {f: 4, c: 36119},\n    36128, {f: 2, c: 36177}, 36183, 36191, 36197, {f: 3, c: 36200}, 36204,\n    {f: 2, c: 36206}, {f: 2, c: 36209}, {f: 9, c: 36216}, {f: 2, c: 36226},\n    {f: 4, c: 36230}, {f: 5, c: 36236}, {f: 2, c: 36242}, {f: 3, c: 36246},\n    {f: 5, c: 36250}, {f: 3, c: 36256}, {f: 4, c: 36260}, {f: 8, c: 36265},\n    {f: 2, c: 36278}, 36281, 36283, 36285, {f: 3, c: 36288}, 36293,\n    {f: 4, c: 36295}, 36301, 36304, {f: 4, c: 36306}, {f: 2, c: 36312}, 36316,\n    {f: 3, c: 36320}, {f: 3, c: 36325}, 36329, {f: 2, c: 36333},\n    {f: 3, c: 36336}, 36340, 36342, 36348, {f: 7, c: 36350}, {f: 3, c: 36358},\n    36363, {f: 2, c: 36365}, {f: 3, c: 36369}, {f: 8, c: 36373},\n    {f: 2, c: 36384}, {f: 5, c: 36388}, 36395, 36397, 36400, {f: 2, c: 36402},\n    {f: 3, c: 36406}, {f: 2, c: 36411}, {f: 2, c: 36414}, 36419,\n    {f: 2, c: 36421}, {f: 4, c: 36429}, {f: 2, c: 36435}, {f: 3, c: 36438},\n    {f: 9, c: 36442}, {f: 2, c: 36452}, {f: 2, c: 36455}, {f: 2, c: 36458},\n    36462, 36465, 36467, 36469, {f: 3, c: 36471}, 36475, {f: 2, c: 36477},\n    36480, {f: 3, c: 36482}, 36486, 36488, 36492, 36494, {f: 5, c: 36501},\n    36507, 36509, {f: 2, c: 36511}, {f: 3, c: 36514}, {f: 3, c: 36519},\n    {f: 2, c: 36525}, {f: 2, c: 36528}, {f: 7, c: 36531}, {f: 5, c: 36539},\n    {f: 9, c: 36545}, {f: 3, c: 36559}, 36563, {f: 6, c: 36565},\n    {f: 3, c: 36572}, {f: 4, c: 36576}, {f: 6, c: 36581}, {f: 6, c: 36588},\n    {f: 5, c: 36595}, 36605, {f: 4, c: 36607}, 36612, 36614, 36616,\n    {f: 7, c: 36619}, 36627, {f: 5, c: 36630}, {f: 5, c: 36640},\n    {f: 2, c: 36647}, {f: 4, c: 36651}, {f: 3, c: 36656}, {f: 4, c: 36660},\n    {f: 2, c: 36665}, {f: 2, c: 36668}, {f: 2, c: 36672}, 36675,\n    {f: 2, c: 36679}, {f: 3, c: 36682}, {f: 5, c: 36687}, {f: 10, c: 36693},\n    36704, 36707, 36709, 36714, 36736, 36748, 36754, 36765, {f: 3, c: 36768},\n    {f: 2, c: 36772}, 36775, 36778, 36780, {f: 2, c: 36787}, [12193, 36789],\n    {f: 2, c: 36791}, {f: 3, c: 36794}, {f: 2, c: 36799}, 36803, 36806,\n    {f: 5, c: 36809}, 36815, 36818, {f: 2, c: 36822}, 36826, {f: 2, c: 36832},\n    36835, 36839, 36844, 36847, {f: 2, c: 36849}, {f: 2, c: 36853},\n    {f: 3, c: 36858}, {f: 2, c: 36862}, {f: 2, c: 36871}, 36876, 36878, 36883,\n    36888, 36892, {f: 2, c: 36900}, {f: 6, c: 36903}, {f: 2, c: 36912},\n    {f: 2, c: 36915}, 36919, {f: 2, c: 36921}, 36925, {f: 2, c: 36927}, 36931,\n    {f: 2, c: 36933}, {f: 3, c: 36936}, 36940, 36950, {f: 2, c: 36953}, 36957,\n    36959, 36961, 36964, {f: 2, c: 36966}, {f: 3, c: 36970}, {f: 3, c: 36975},\n    36979, 36982, 36985, 36987, 36990, {f: 2, c: 36997}, 37001,\n    {f: 3, c: 37004}, 37010, 37012, 37014, 37016, 37018, 37020,\n    {f: 3, c: 37022}, {f: 2, c: 37028}, {f: 3, c: 37031}, 37035, 37037, 37042,\n    37047, {f: 2, c: 37052}, {f: 2, c: 37055}, {f: 2, c: 37058}, 37062,\n    {f: 2, c: 37064}, {f: 3, c: 37067}, 37074, {f: 3, c: 37076},\n    {f: 3, c: 37080}, 37086, 37088, {f: 3, c: 37091}, {f: 2, c: 37097}, 37100,\n    37102, {f: 4, c: 37104}, {f: 2, c: 37110}, {f: 4, c: 37113},\n    {f: 3, c: 37119}, 37123, 37125, {f: 2, c: 37127}, {f: 8, c: 37130}, 37139,\n    37141, {f: 2, c: 37143}, {f: 4, c: 37146}, {f: 3, c: 37151},\n    {f: 3, c: 37156}, {f: 5, c: 37160}, 37166, 37171, 37173, {f: 2, c: 37175},\n    {f: 8, c: 37179}, {f: 2, c: 37188}, 37191, 37201, {f: 4, c: 37203},\n    {f: 2, c: 37208}, {f: 2, c: 37211}, {f: 2, c: 37215}, {f: 3, c: 37222},\n    37227, 37229, 37235, {f: 3, c: 37242}, {f: 5, c: 37248}, 37254, 37256,\n    37258, {f: 2, c: 37262}, {f: 3, c: 37267}, {f: 3, c: 37271},\n    {f: 5, c: 37277}, {f: 6, c: 37284}, {f: 4, c: 37296}, {f: 4, c: 37302},\n    {f: 5, c: 37307}, 37314, 37316, [12196, 37318], 37320, 37328, 37334,\n    {f: 2, c: 37338}, {f: 5, c: 37342}, {f: 2, c: 37349}, 37352,\n    {f: 11, c: 37354}, 37366, 37368, {f: 5, c: 37371}, {f: 2, c: 37378},\n    {f: 3, c: 37381}, {f: 3, c: 37386}, 37391, {f: 2, c: 37394},\n    {f: 8, c: 37398}, {f: 4, c: 37407}, 37412, {f: 6, c: 37416}, 37423,\n    {f: 2, c: 37425}, {f: 2, c: 37429}, {f: 2, c: 37435}, {f: 4, c: 37441},\n    {f: 2, c: 37446}, {f: 3, c: 37450}, {f: 3, c: 37454}, {f: 3, c: 37458},\n    37462, {f: 2, c: 37464}, {f: 2, c: 37468}, {f: 3, c: 37471},\n    {f: 3, c: 37475}, {f: 5, c: 37479}, {f: 6, c: 37486}, {f: 3, c: 37493},\n    37497, {f: 3, c: 37500}, {f: 2, c: 37505}, 37508, {f: 8, c: 37510},\n    {f: 2, c: 37519}, 37522, {f: 2, c: 37524}, 37527, 37529, 37531,\n    {f: 3, c: 37533}, {f: 2, c: 37537}, 37540, 37543, 37549, {f: 2, c: 37551},\n    {f: 5, c: 37554}, 37560, 37562, {f: 4, c: 37565}, 37570, 37572, 37574,\n    {f: 3, c: 37577}, {f: 2, c: 37581}, {f: 2, c: 37584}, {f: 10, c: 37587},\n    37598, {f: 3, c: 37600}, 37607, 37609, {f: 2, c: 37611}, {f: 4, c: 37618},\n    37623, {f: 3, c: 37625}, {f: 4, c: 37629}, {f: 4, c: 37634},\n    {f: 7, c: 37641}, 37649, {f: 2, c: 37651}, {f: 2, c: 37654},\n    {f: 3, c: 37660}, 37665, {f: 3, c: 37667}, 37671, {f: 2, c: 37673},\n    {f: 2, c: 37676}, {f: 2, c: 37680}, {f: 2, c: 37684}, 37687,\n    {f: 5, c: 37689}, 37695, 37698, {f: 2, c: 37700}, {f: 3, c: 37704}, 37708,\n    {f: 6, c: 37710}, {f: 3, c: 37717}, {f: 2, c: 37721}, {f: 8, c: 37724},\n    {f: 3, c: 37734}, 37739, {f: 3, c: 37741}, {f: 4, c: 37745},\n    {f: 3, c: 37751}, {f: 3, c: 37755}, {f: 3, c: 37759}, 37763,\n    {f: 2, c: 37765}, {f: 2, c: 37768}, {f: 4, c: 37771}, {f: 6, c: 37776},\n    37783, {f: 9, c: 37785}, {f: 2, c: 37796}, 37800, 37803, 37805, 37807,\n    {f: 2, c: 37809}, 37812, {f: 2, c: 37814}, {f: 6, c: 37817},\n    {f: 3, c: 37824}, {f: 3, c: 37828}, 37833, 37835, {f: 3, c: 37838},\n    {f: 4, c: 37842}, {f: 3, c: 37849}, 37856, 37859, {f: 3, c: 37861},\n    {f: 12, c: 37865}, 37878, 37880, {f: 9, c: 37882}, {f: 7, c: 37892},\n    {f: 4, c: 37900}, 37905, {f: 3, c: 37909}, {f: 3, c: 37914},\n    {f: 2, c: 37918}, {f: 5, c: 37921}, {f: 5, c: 37929}, {f: 3, c: 37935},\n    37940, {f: 2, c: 37942}, 37945, {f: 3, c: 37947}, {f: 4, c: 37952},\n    {f: 5, c: 37957}, 37963, {f: 5, c: 37965}, 37971, {f: 11, c: 37973},\n    {f: 2, c: 37985}, 37988, {f: 5, c: 37990}, 37996, {f: 2, c: 37998}, 38001,\n    {f: 4, c: 38003}, 38008, {f: 2, c: 38010}, {f: 5, c: 38016}, 38033, 38038,\n    38040, 38087, 38095, {f: 2, c: 38099}, 38106, 38118, 38139, 38172, 38176,\n    38183, 38195, 38205, 38211, 38216, 38219, 38229, 38234, 38240, 38254,\n    {f: 2, c: 38260}, {f: 7, c: 38264}, 38273, {f: 2, c: 38276},\n    {f: 2, c: 38279}, 38282, 38285, 38288, 38290, {f: 3, c: 38293},\n    {f: 8, c: 38297}, 38306, {f: 2, c: 38310}, 38314, {f: 4, c: 38318},\n    {f: 3, c: 38323}, {f: 2, c: 38327}, 38330, {f: 3, c: 38336},\n    {f: 2, c: 38340}, 38343, 38345, {f: 3, c: 38349}, {f: 3, c: 38353},\n    {f: 5, c: 38359}, 38365, {f: 2, c: 38367}, {f: 2, c: 38371},\n    {f: 2, c: 38374}, 38380, 38399, 38407, 38419, 38424, 38427, 38430, 38432,\n    {f: 7, c: 38435}, {f: 3, c: 38443}, {f: 2, c: 38447}, {f: 4, c: 38455},\n    38462, 38465, 38467, 38474, {f: 2, c: 38478}, {f: 3, c: 38481},\n    {f: 2, c: 38486}, {f: 2, c: 38489}, 38492, 38494, 38496, {f: 2, c: 38501},\n    38507, {f: 3, c: 38509}, 38513, {f: 4, c: 38521}, {f: 7, c: 38526}, 38535,\n    38537, 38540, {f: 3, c: 38545}, 38550, 38554, {f: 10, c: 38557}, 38569,\n    {f: 5, c: 38571}, 38578, 38581, 38583, 38586, 38591, {f: 2, c: 38594},\n    38600, {f: 2, c: 38602}, {f: 2, c: 38608}, {f: 2, c: 38611},\n    {f: 2, c: 38615}, 38618, {f: 3, c: 38621}, 38625, {f: 4, c: 38628},\n    {f: 4, c: 38635}, {f: 2, c: 38640}, {f: 2, c: 38644}, 38648, 38650,\n    {f: 2, c: 38652}, 38655, {f: 2, c: 38658}, 38661, {f: 3, c: 38666},\n    {f: 3, c: 38672}, {f: 2, c: 38676}, {f: 5, c: 38679}, 38685,\n    {f: 8, c: 38687}, {f: 2, c: 38696}, {f: 2, c: 38699}, {f: 2, c: 38702},\n    38705, {f: 5, c: 38707}, {f: 3, c: 38714}, {f: 3, c: 38719}, 38723,\n    {f: 3, c: 38725}, {f: 8, c: 38729}, [12205, 38737], {f: 2, c: 38740},\n    {f: 2, c: 38743}, {f: 2, c: 38748}, 38751, {f: 2, c: 38755},\n    {f: 2, c: 38758}, {f: 9, c: 38762}, 38773, {f: 5, c: 38775},\n    {f: 8, c: 38781}, {f: 5, c: 38790}, 38796, 38798, 38800, 38803,\n    {f: 3, c: 38805}, {f: 7, c: 38809}, {f: 2, c: 38817}, {f: 2, c: 38820},\n    {f: 4, c: 38823}, 38828, 38830, {f: 2, c: 38832}, 38835, {f: 8, c: 38837},\n    {f: 5, c: 38846}, {f: 2, c: 38852}, {f: 2, c: 38855}, 38858,\n    {f: 6, c: 38861}, {f: 5, c: 38868}, {f: 2, c: 38874}, 38877,\n    {f: 7, c: 38879}, 38888, {f: 5, c: 38894}, 38900, {f: 8, c: 38903}, 38912,\n    38916, 38921, 38923, 38925, {f: 3, c: 38932}, {f: 3, c: 38937},\n    {f: 4, c: 38941}, {f: 2, c: 38946}, 38949, {f: 6, c: 38951},\n    {f: 2, c: 38958}, {f: 6, c: 38961}, {f: 2, c: 38969}, 38972,\n    {f: 8, c: 38974}, {f: 5, c: 38983}, {f: 4, c: 38991}, {f: 3, c: 38997},\n    39002, {f: 2, c: 39004}, {f: 3, c: 39007}, {f: 2, c: 39011}, 39014,\n    {f: 3, c: 39016}, {f: 2, c: 39021}, 39026, 39051, 39054, 39058, 39061,\n    39065, 39075, {f: 5, c: 39081}, 39088, 39090, {f: 2, c: 39092},\n    {f: 5, c: 39095}, {f: 7, c: 39101}, 39109, 39111, {f: 5, c: 39113},\n    {f: 2, c: 39119}, 39124, {f: 2, c: 39126}, {f: 2, c: 39132}, 39137,\n    {f: 4, c: 39139}, 39148, 39150, {f: 2, c: 39152}, 39155, {f: 7, c: 39157},\n    {f: 4, c: 39167}, 39172, {f: 3, c: 39174}, 39179, {f: 2, c: 39182},\n    {f: 4, c: 39188}, {f: 2, c: 39193}, {f: 2, c: 39196}, {f: 2, c: 39199},\n    {f: 6, c: 39202}, {f: 5, c: 39209}, {f: 4, c: 39215}, {f: 3, c: 39220},\n    {f: 4, c: 39224}, 39229, {f: 3, c: 39232}, 39236, {f: 2, c: 39238},\n    {f: 4, c: 39245}, 39251, 39254, {f: 4, c: 39256}, 39261, {f: 3, c: 39263},\n    39268, 39270, 39283, {f: 2, c: 39288}, 39291, 39294, {f: 2, c: 39298},\n    39305, 39308, 39310, {f: 11, c: 39322}, {f: 2, c: 39334}, {f: 3, c: 39337},\n    {f: 2, c: 39343}, 39346, {f: 12, c: 39349}, {f: 14, c: 39362}, 39379,\n    {f: 2, c: 39382}, 39386, 39388, 39390, 39392, {f: 10, c: 39395},\n    {f: 3, c: 39406}, {f: 13, c: 39410}, 39424, {f: 3, c: 39426},\n    {f: 7, c: 39430}, {f: 6, c: 39440}, {f: 2, c: 39447}, {f: 17, c: 39450},\n    39468, 39471, {f: 5, c: 39473}, {f: 5, c: 39481}, 39487, {f: 4, c: 39494},\n    {f: 2, c: 39499}, 39502, {f: 5, c: 39504}, 39510, {f: 2, c: 39512},\n    {f: 3, c: 39516}, {f: 2, c: 39520}, 39523, {f: 4, c: 39526}, 39531, 39538,\n    39555, 39561, {f: 2, c: 39565}, {f: 2, c: 39572}, 39577, 39590,\n    {f: 6, c: 39593}, {f: 4, c: 39602}, 39609, 39611, {f: 3, c: 39613},\n    {f: 2, c: 39619}, {f: 5, c: 39622}, {f: 2, c: 39629}, 39632, 39639,\n    {f: 6, c: 39641}, 39648, {f: 4, c: 39650}, {f: 4, c: 39655}, 39660,\n    {f: 9, c: 39664}, 39674, {f: 7, c: 39676}, {f: 2, c: 39684}, 39687,\n    {f: 4, c: 39689}, 39694, {f: 3, c: 39696}, {f: 6, c: 39700},\n    {f: 4, c: 39707}, {f: 2, c: 39712}, 39716, 39718, 39720, {f: 4, c: 39722},\n    39728, {f: 8, c: 39731}, {f: 4, c: 39741}, 39750, {f: 3, c: 39754}, 39760,\n    {f: 2, c: 39762}, {f: 3, c: 39765}, 39769, {f: 20, c: 39771},\n    {f: 4, c: 39792}, {f: 2, c: 39797}, {f: 9, c: 39800}, 39810,\n    {f: 10, c: 39812}, 39823, {f: 7, c: 39827}, {f: 2, c: 39835},\n    {f: 11, c: 39839}, 39852, {f: 17, c: 39855}, {f: 5, c: 39874}, 39880,\n    {f: 9, c: 39883}, 39893, {f: 4, c: 39895}, 39900, {f: 3, c: 39902}, 39907,\n    {f: 2, c: 39909}, 39913, {f: 4, c: 39916}, {f: 3, c: 39921},\n    {f: 8, c: 39925}, 39934, {f: 8, c: 39936}, {f: 3, c: 39946},\n    {f: 2, c: 39950}, 39953, {f: 12, c: 39956}, {f: 2, c: 39969}, 39972,\n    {f: 2, c: 39974}, {f: 3, c: 39978}, {f: 3, c: 39982}, 39988, 39990, 39992,\n    39994, {f: 2, c: 39996}, {f: 6, c: 39999}, {f: 2, c: 40006},\n    {f: 8, c: 40010}, 40019, 40021, {f: 4, c: 40025}, 40030, {f: 7, c: 40032},\n    {f: 5, c: 40040}, {f: 10, c: 40046}, 40057, 40059, {f: 2, c: 40061}, 40064,\n    {f: 2, c: 40067}, {f: 2, c: 40073}, 40076, 40079, 40083, {f: 4, c: 40086},\n    40093, 40106, 40108, 40111, 40121, {f: 5, c: 40126}, {f: 2, c: 40136},\n    {f: 2, c: 40145}, {f: 2, c: 40154}, {f: 2, c: 40160}, {f: 2, c: 40163},\n    {f: 3, c: 40166}, {f: 2, c: 40170}, {f: 6, c: 40173}, 40181,\n    {f: 15, c: 40183}, 40200, {f: 11, c: 40202}, {f: 5, c: 40214}, 40220,\n    40222, {f: 3, c: 40224}, {f: 2, c: 40228}, 40231, {f: 6, c: 40233},\n    {f: 10, c: 40241}, {f: 3, c: 40252}, {f: 2, c: 40256}, {f: 14, c: 40259},\n    {f: 8, c: 40276}, {f: 2, c: 40286}, {f: 8, c: 40290}, 40299,\n    {f: 2, c: 40301}, {f: 2, c: 40304}, {f: 20, c: 40307}, 40328,\n    {f: 9, c: 40330}, {f: 4, c: 40340}, 40345, {f: 10, c: 40347},\n    {f: 3, c: 40358}, {f: 5, c: 40362}, {f: 4, c: 40368}, {f: 6, c: 40373},\n    {f: 3, c: 40381}, 40385, 40387, {f: 14, c: 40389}, {f: 3, c: 40404}, 40408,\n    {f: 10, c: 40411}, {f: 8, c: 40423}, {f: 2, c: 40432}, {f: 4, c: 40436},\n    {f: 17, c: 40443}, {f: 8, c: 40461}, {f: 4, c: 40470}, 40476, 40484, 40487,\n    40494, 40496, 40500, {f: 2, c: 40507}, 40512, 40525, 40528,\n    {f: 3, c: 40530}, 40534, 40537, 40541, {f: 4, c: 40543}, 40549,\n    {f: 2, c: 40558}, 40562, 40564, {f: 3, c: 40566}, 40571, {f: 2, c: 40576},\n    {f: 4, c: 40579}, {f: 2, c: 40585}, {f: 6, c: 40588}, {f: 3, c: 40596},\n    {f: 5, c: 40600}, 40606, {f: 5, c: 40608}, {f: 2, c: 40615},\n    {f: 5, c: 40618}, {f: 4, c: 40624}, {f: 2, c: 40630}, {f: 2, c: 40633},\n    40636, {f: 4, c: 40639}, [12232, 40643], {f: 4, c: 40645},\n    {f: 2, c: 40650}, 40656, {f: 2, c: 40658}, {f: 3, c: 40661},\n    {f: 2, c: 40665}, 40673, {f: 2, c: 40675}, 40678, {f: 4, c: 40683},\n    {f: 2, c: 40688}, 40691, {f: 2, c: 40693}, 40696, 40698, {f: 9, c: 40704},\n    40714, 40716, 40719, {f: 2, c: 40721}, 40724, 40726, 40728,\n    {f: 6, c: 40730}, 40737, {f: 9, c: 40739}, {f: 2, c: 40749},\n    {f: 7, c: 40752}, 40760, 40762, 40764, {f: 5, c: 40767}, {f: 5, c: 40773},\n    {f: 3, c: 40780}, 40787, {f: 4, c: 40789}, {f: 2, c: 40794},\n    {f: 2, c: 40797}, 40802, {f: 2, c: 40804}, {f: 3, c: 40807}, 40811,\n    {f: 5, c: 40813}, {f: 4, c: 40819}, {f: 7, c: 40824}, {f: 2, c: 40833},\n    {f: 2, c: 40846}, {f: 3, c: 40849}, {f: 3, c: 40854}, {f: 2, c: 40861},\n    {f: 5, c: 40865}, 63788, {f: 3, c: 64013}, 64017, {f: 2, c: 64019}, 64024,\n    {f: 3, c: 64031}, {f: 2, c: 64035}, {f: 3, c: 64039}, 11905,\n    [59414, 131207], [59415, 131209], [59416, 131276], 11908, 13427, 13383,\n    11912, 11915, 59422, 13726, 13850, 13838, 11916, 11927, 14702, 14616,\n    59430, 14799, 14815, 14963, 14800, {f: 2, c: 59435}, 15182, 15470, 15584,\n    11943, [59441, 136663], 59442, 11946, 16470, 16735, 11950, 17207, 11955,\n    {f: 2, c: 11958}, [59451, 141711], 17329, 17324, 11963, 17373, 17622,\n    18017, 17996, [59459, 132361], 18211, 18217, 18300, 18317, 11978, 18759,\n    18810, 18813, {f: 2, c: 18818}, {f: 2, c: 18821}, 18847, 18843, 18871,\n    18870, [59476, 133533], [59477, 147966], 19619, {f: 3, c: 19615}, 19575,\n    19618, {f: 7, c: 19731}, 19886, 59492, {s: 226}, 8364, 165, 0, 0, 12351,\n    {s: 17}, 12436, {s: 14}, 12535, 12537, 12536, 12538, 0, {f: 3, c: 12339},\n    {f: 3, c: 12344}, {f: 3, c: 12586}, {f: 24, c: 12704}, 11904,\n    {f: 2, c: 11906}, {f: 3, c: 11909}, {f: 2, c: 11913}, {f: 10, c: 11917},\n    {f: 2, c: 11928}, {f: 12, c: 11931}, {f: 2, c: 11944}, {f: 3, c: 11947},\n    {f: 4, c: 11951}, {f: 2, c: 11956}, {f: 3, c: 11960}, {f: 14, c: 11964},\n    {f: 41, c: 11979}, {f: 71, c: 13312}, {f: 43, c: 13384},\n    {f: 298, c: 13428}, {f: 111, c: 13727}, {f: 11, c: 13839},\n    {f: 765, c: 13851}, {f: 85, c: 14617}, {f: 96, c: 14703},\n    {f: 14, c: 14801}, {f: 147, c: 14816}, {f: 218, c: 14964},\n    {f: 287, c: 15183}, {f: 113, c: 15471}, {f: 885, c: 15585},\n    {f: 264, c: 16471}, {f: 471, c: 16736}, {f: 116, c: 17208},\n    {f: 4, c: 17325}, {f: 43, c: 17330}, {f: 248, c: 17374},\n    {f: 373, c: 17623}, {f: 20, c: 17997}, {f: 193, c: 18018},\n    {f: 5, c: 18212}, {f: 82, c: 18218}, {f: 16, c: 18301}, {f: 441, c: 18318},\n    {f: 50, c: 18760}, {f: 2, c: 18811}, {f: 4, c: 18814}, 18820,\n    {f: 20, c: 18823}, {f: 3, c: 18844}, {f: 22, c: 18848}, {f: 703, c: 18872},\n    {f: 39, c: 19576}, {f: 111, c: 19620}, {f: 148, c: 19738},\n    {f: 7, c: 19887}]\n};\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals ColorSpace, DeviceCmykCS, DeviceGrayCS, DeviceRgbCS, error,\n           FONT_IDENTITY_MATRIX, IDENTITY_MATRIX, ImageData, isArray, isNum,\n           Pattern, TilingPattern, TODO, Util, warn, assert, info,\n           TextRenderingMode, OPS */\n\n'use strict';\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n\n// Minimal font size that would be used during canvas fillText operations.\nvar MIN_FONT_SIZE = 16;\n\nvar COMPILE_TYPE3_GLYPHS = true;\n\n//MQZ. Oct.17.2012 - moved createScratchCanvas to pdf.js to use PDFCanvas\n//function createScratchCanvas(width, height) {\n//  var canvas = document.createElement('canvas');\n//  canvas.width = width;\n//  canvas.height = height;\n//  return canvas;\n//}\n\nfunction addContextCurrentTransform(ctx) {\n  // If the context doesn't expose a `mozCurrentTransform`, add a JS based on.\n  if (!ctx.mozCurrentTransform) {\n    // Store the original context\n    ctx._scaleX = ctx._scaleX || 1.0;\n    ctx._scaleY = ctx._scaleY || 1.0;\n    ctx._originalSave = ctx.save;\n    ctx._originalRestore = ctx.restore;\n    ctx._originalRotate = ctx.rotate;\n    ctx._originalScale = ctx.scale;\n    ctx._originalTranslate = ctx.translate;\n    ctx._originalTransform = ctx.transform;\n    ctx._originalSetTransform = ctx.setTransform;\n\n    ctx._transformMatrix = [ctx._scaleX, 0, 0, ctx._scaleY, 0, 0];\n    ctx._transformStack = [];\n\n    Object.defineProperty(ctx, 'mozCurrentTransform', {\n      get: function getCurrentTransform() {\n        return this._transformMatrix;\n      }\n    });\n\n    Object.defineProperty(ctx, 'mozCurrentTransformInverse', {\n      get: function getCurrentTransformInverse() {\n        // Calculation done using WolframAlpha:\n        // http://www.wolframalpha.com/input/?\n        //   i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}\n\n        var m = this._transformMatrix;\n        var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5];\n\n        var ad_bc = a * d - b * c;\n        var bc_ad = b * c - a * d;\n\n        return [\n          d / ad_bc,\n          b / bc_ad,\n          c / bc_ad,\n          a / ad_bc,\n          (d * e - c * f) / bc_ad,\n          (b * e - a * f) / ad_bc\n        ];\n      }\n    });\n\n    ctx.save = function ctxSave() {\n      var old = this._transformMatrix;\n      this._transformStack.push(old);\n      this._transformMatrix = old.slice(0, 6);\n\n      this._originalSave();\n    };\n\n    ctx.restore = function ctxRestore() {\n      var prev = this._transformStack.pop();\n      if (prev) {\n        this._transformMatrix = prev;\n        this._originalRestore();\n      }\n    };\n\n    ctx.translate = function ctxTranslate(x, y) {\n      var m = this._transformMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n\n      this._originalTranslate(x, y);\n    };\n\n    ctx.scale = function ctxScale(x, y) {\n      var m = this._transformMatrix;\n      m[0] = m[0] * x;\n      m[1] = m[1] * x;\n      m[2] = m[2] * y;\n      m[3] = m[3] * y;\n\n      this._originalScale(x, y);\n    };\n\n    ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n      var m = this._transformMatrix;\n      this._transformMatrix = [\n        m[0] * a + m[2] * b,\n        m[1] * a + m[3] * b,\n        m[0] * c + m[2] * d,\n        m[1] * c + m[3] * d,\n        m[0] * e + m[2] * f + m[4],\n        m[1] * e + m[3] * f + m[5]\n      ];\n\n      ctx._originalTransform(a, b, c, d, e, f);\n    };\n\n    ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n      this._transformMatrix = [a, b, c, d, e, f];\n\n      ctx._originalSetTransform(a, b, c, d, e, f);\n    };\n\n    ctx.rotate = function ctxRotate(angle) {\n      var cosValue = Math.cos(angle);\n      var sinValue = Math.sin(angle);\n\n      var m = this._transformMatrix;\n      this._transformMatrix = [\n        m[0] * cosValue + m[2] * sinValue,\n        m[1] * cosValue + m[3] * sinValue,\n        m[0] * (-sinValue) + m[2] * cosValue,\n        m[1] * (-sinValue) + m[3] * cosValue,\n        m[4],\n        m[5]\n      ];\n\n      this._originalRotate(angle);\n    };\n  }\n}\n\nvar CachedCanvases = (function CachedCanvasesClosure() {\n  var cache = {};\n  return {\n    getCanvas: function CachedCanvases_getCanvas(id, width, height,\n                                                 trackTransform) {\n      var canvasEntry;\n      if (id in cache) {\n        canvasEntry = cache[id];\n        canvasEntry.canvas.width = width;\n        canvasEntry.canvas.height = height;\n        // reset canvas transform for emulated mozCurrentTransform, if needed\n        canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n      } else {\n        var canvas = createScratchCanvas(width, height);\n        var ctx = canvas.getContext('2d');\n        if (trackTransform) {\n          addContextCurrentTransform(ctx);\n        }\n        cache[id] = canvasEntry = {canvas: canvas, context: ctx};\n      }\n      return canvasEntry;\n    },\n    clear: function () {\n      cache = {};\n    }\n  };\n})();\n\nfunction compileType3Glyph(imgData) {\n  var POINT_TO_PROCESS_LIMIT = 1000;\n\n  var width = imgData.width, height = imgData.height;\n  var i, j, j0, width1 = width + 1;\n  var points = new Uint8Array(width1 * (height + 1));\n  var POINT_TYPES =\n      new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n  // finding iteresting points: every point is located between mask pixels,\n  // so there will be points of the (width + 1)x(height + 1) grid. Every point\n  // will have flags assigned based on neighboring mask pixels:\n  //   4 | 8\n  //   --P--\n  //   2 | 1\n  // We are interested only in points with the flags:\n  //   - outside corners: 1, 2, 4, 8;\n  //   - inside corners: 7, 11, 13, 14;\n  //   - and, intersections: 5, 10.\n  var pos = 3, data = imgData.data, lineSize = width * 4, count = 0;\n  if (data[3] !== 0) {\n    points[0] = 1;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 4]) {\n      points[j] = data[pos] ? 2 : 1;\n      ++count;\n    }\n    pos += 4;\n  }\n  if (data[pos] !== 0) {\n    points[j] = 2;\n    ++count;\n  }\n  pos += 4;\n  for (i = 1; i < height; i++) {\n    j0 = i * width1;\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0] = data[pos] ? 1 : 8;\n      ++count;\n    }\n    // 'sum' is the position of the current pixel configuration in the 'TYPES'\n    // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n    var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n    for (j = 1; j < width; j++) {\n      sum = (sum >> 2) + (data[pos + 4] ? 4 : 0) +\n            (data[pos - lineSize + 4] ? 8 : 0);\n      if (POINT_TYPES[sum]) {\n        points[j0 + j] = POINT_TYPES[sum];\n        ++count;\n      }\n      pos += 4;\n    }\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0 + j] = data[pos] ? 2 : 4;\n      ++count;\n    }\n    pos += 4;\n\n    if (count > POINT_TO_PROCESS_LIMIT) {\n      return null;\n    }\n  }\n\n  pos -= lineSize;\n  j0 = i * width1;\n  if (data[pos] !== 0) {\n    points[j0] = 8;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 4]) {\n      points[j0 + j] = data[pos] ? 4 : 8;\n      ++count;\n    }\n    pos += 4;\n  }\n  if (data[pos] !== 0) {\n    points[j0 + j] = 4;\n    ++count;\n  }\n  if (count > POINT_TO_PROCESS_LIMIT) {\n    return null;\n  }\n\n  // building outlines\n  var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n  var outlines = [];\n  for (i = 0; count && i <= height; i++) {\n    var p = i * width1;\n    var end = p + width;\n    while (p < end && !points[p]) {\n      p++;\n    }\n    if (p === end) {\n      continue;\n    }\n    var coords = [p % width1, i];\n\n    var type = points[p], p0 = p, pp;\n    do {\n      var step = steps[type];\n      do { p += step; } while (!points[p]);\n\n      pp = points[p];\n      if (pp !== 5 && pp !== 10) {\n        // set new direction\n        type = pp;\n        // delete mark\n        points[p] = 0;\n      } else { // type is 5 or 10, ie, a crossing\n        // set new direction\n        type = pp & ((0x33 * type) >> 4);\n        // set new type for \"future hit\"\n        points[p] &= (type >> 2 | type << 2);\n      }\n\n      coords.push(p % width1);\n      coords.push((p / width1) | 0);\n      --count;\n    } while (p0 !== p);\n    outlines.push(coords);\n    --i;\n  }\n\n  var drawOutline = function(c) {\n    c.save();\n    // the path shall be painted in [0..1]x[0..1] space\n    c.scale(1 / width, -1 / height);\n    c.translate(0, -height);\n    c.beginPath();\n    for (var i = 0, ii = outlines.length; i < ii; i++) {\n      var o = outlines[i];\n      c.moveTo(o[0], o[1]);\n      for (var j = 2, jj = o.length; j < jj; j += 2) {\n        c.lineTo(o[j], o[j+1]);\n      }\n    }\n    c.fill();\n    c.beginPath();\n    c.restore();\n  };\n\n  return drawOutline;\n}\n\nvar CanvasExtraState = (function CanvasExtraStateClosure() {\n  function CanvasExtraState(old) {\n    // Are soft masks and alpha values shapes or opacities?\n    this.alphaIsShape = false;\n    this.fontSize = 0;\n    this.fontSizeScale = 1;\n    this.textMatrix = IDENTITY_MATRIX;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.leading = 0;\n    // Current point (in user coordinates)\n    this.x = 0;\n    this.y = 0;\n    // Start of text line (in text coordinates)\n    this.lineX = 0;\n    this.lineY = 0;\n    // Character and word spacing\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.textHScale = 1;\n    this.textRenderingMode = TextRenderingMode.FILL;\n    this.textRise = 0;\n    // Color spaces\n    this.fillColorSpace = ColorSpace.singletons.gray;\n    this.fillColorSpaceObj = null;\n    this.strokeColorSpace = ColorSpace.singletons.gray;\n    this.strokeColorSpaceObj = null;\n    this.fillColorObj = null;\n    this.strokeColorObj = null;\n    // Default fore and background colors\n    this.fillColor = '#000000';\n    this.strokeColor = '#000000';\n    // Note: fill alpha applies to all non-stroking operations\n    this.fillAlpha = 1;\n    this.strokeAlpha = 1;\n    this.lineWidth = 1;\n    this.paintFormXObjectDepth = 0;\n\n    this.old = old;\n  }\n\n  CanvasExtraState.prototype = {\n    clone: function CanvasExtraState_clone() {\n      return Object.create(this);\n    },\n    setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n      this.x = x;\n      this.y = y;\n    }\n  };\n  return CanvasExtraState;\n})();\n\nvar CanvasGraphics = (function CanvasGraphicsClosure() {\n  // Defines the time the executeOperatorList is going to be executing\n  // before it stops and shedules a continue of execution.\n  var EXECUTION_TIME = 15;\n\n  function CanvasGraphics(canvasCtx, commonObjs, objs, textLayer, imageLayer) {\n    this.ctx = canvasCtx;\n    this.current = new CanvasExtraState();\n    this.stateStack = [];\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n    this.res = null;\n    this.xobjs = null;\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.textLayer = textLayer;\n    this.imageLayer = imageLayer;\n    this.groupStack = [];\n    this.processingType3 = null;\n    // Patterns are painted relative to the initial page/form transform, see pdf\n    // spec 8.7.2 NOTE 1.\n    this.baseTransform = null;\n    this.baseTransformStack = [];\n    this.groupLevel = 0;\n\n    //MQZ.Mar.22 Disabled Operators\n    this.opMode = true;\n    this.noOpStartIdx = -1;\n\n    if (canvasCtx) {\n      addContextCurrentTransform(canvasCtx);\n    }\n  }\n\n  function putBinaryImageData(ctx, imgData) {\n    if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {\n      ctx.putImageData(imgData, 0, 0);\n      return;\n    }\n\n    var tmpImgData = ctx.createImageData(imgData.width, imgData.height);\n\n    var data = imgData.data;\n    var tmpImgDataPixels = tmpImgData.data;\n    if ('set' in tmpImgDataPixels)\n      tmpImgDataPixels.set(data);\n    else {\n      // Copy over the imageData pixel by pixel.\n      for (var i = 0, ii = tmpImgDataPixels.length; i < ii; i++)\n        tmpImgDataPixels[i] = data[i];\n    }\n\n    ctx.putImageData(tmpImgData, 0, 0);\n  }\n\n  function copyCtxState(sourceCtx, destCtx) {\n    var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha',\n                      'lineWidth', 'lineCap', 'lineJoin', 'miterLimit',\n                      'globalCompositeOperation', 'font'];\n    for (var i = 0, ii = properties.length; i < ii; i++) {\n      var property = properties[i];\n      if (property in sourceCtx) {\n        destCtx[property] = sourceCtx[property];\n      }\n    }\n    if ('setLineDash' in sourceCtx) {\n      destCtx.setLineDash(sourceCtx.getLineDash());\n      destCtx.lineDashOffset =  sourceCtx.lineDashOffset;\n    } else if ('mozDash' in sourceCtx) {\n      destCtx.mozDash = sourceCtx.mozDash;\n      destCtx.mozDashOffset = sourceCtx.mozDashOffset;\n    }\n  }\n\n  var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n  var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n  var NORMAL_CLIP = {};\n  var EO_CLIP = {};\n\n  CanvasGraphics.prototype = {\n\n    beginDrawing: function CanvasGraphics_beginDrawing(viewport, transparency) {\n      // For pdfs that use blend modes we have to clear the canvas else certain\n      // blend modes can look wrong since we'd be blending with a white\n      // backdrop. The problem with a transparent backdrop though is we then\n      // don't get sub pixel anti aliasing on text, so we fill with white if\n      // we can.\n      var width = this.ctx.canvas.width;\n      var height = this.ctx.canvas.height;\n      if (transparency) {\n        this.ctx.clearRect(0, 0, width, height);\n      } else {\n        this.ctx.mozOpaque = true;\n        this.ctx.save();\n        this.ctx.fillStyle = 'rgb(255, 255, 255)';\n        this.ctx.fillRect(0, 0, width, height);\n        this.ctx.restore();\n      }\n\n      var transform = viewport.transform;\n      this.baseTransform = transform.slice();\n      this.ctx.save();\n      this.ctx.transform.apply(this.ctx, transform);\n\n      if (this.textLayer) {\n        this.textLayer.beginLayout();\n      }\n      if (this.imageLayer) {\n        this.imageLayer.beginLayout();\n      }\n    },\n\n    executeOperatorList: function CanvasGraphics_executeOperatorList(\n                                    operatorList,\n                                    executionStartIdx, continueCallback,\n                                    stepper) {\n      var argsArray = operatorList.argsArray;\n      var fnArray = operatorList.fnArray;\n      var i = executionStartIdx || 0;\n      var argsArrayLen = argsArray.length;\n\n      // Sometimes the OperatorList to execute is empty.\n      if (argsArrayLen == i) {\n        return i;\n      }\n\n      var executionEndIdx;\n      var endTime = Date.now() + EXECUTION_TIME;\n\n      var commonObjs = this.commonObjs;\n      var objs = this.objs;\n      var fnId;\n\n//MQZ.Mar.22 Disabled Operators\n      var noOpIdx = -1;\n\n      while (true) {\n        if (stepper && i === stepper.nextBreakPoint) {\n          stepper.breakIt(i, continueCallback);\n          return i;\n        }\n\n        fnId = fnArray[i];\n\n        if (fnId !== OPS.dependency) {\n//MQZ.Mar.22 Disabled Operators within specified ranages\n          noOpIdx = NO_OPS_RANGE.indexOf(fnId);\n          if (this.opMode) {\n             if (noOpIdx >= 0) {\n               this.opMode = false;\n               this.noOpStartIdx = noOpIdx;\n               info(\"NO_OP Begin: \" + this[fnId].name + \" - \" + i);\n             }\n             else if (NO_OPS.indexOf(fnId) < 0) {\n               this[fnId].apply(this, argsArray[i]);\n             }\n          }\n          else {\n             if (noOpIdx >= 0 && noOpIdx === (this.noOpStartIdx+1)) {\n               this.opMode = true;\n               this.noOpStartIdx = -1;\n               info(\"NO_OP End: \" + this[fnId].name + \" - \" + i);\n             }\n          }\n        } else {\n          var deps = argsArray[i];\n          for (var n = 0, nn = deps.length; n < nn; n++) {\n            var depObjId = deps[n];\n            var common = depObjId.substring(0, 2) == 'g_';\n\n            // If the promise isn't resolved yet, add the continueCallback\n            // to the promise and bail out.\n            if (!common && !objs.isResolved(depObjId)) {\n              objs.get(depObjId, continueCallback);\n              return i;\n            }\n            if (common && !commonObjs.isResolved(depObjId)) {\n              commonObjs.get(depObjId, continueCallback);\n              return i;\n            }\n          }\n        }\n\n        i++;\n\n        // If the entire operatorList was executed, stop as were done.\n        if (i == argsArrayLen) {\n          return i;\n        }\n\n        // If the execution took longer then a certain amount of time, schedule\n        // to continue exeution after a short delay.\n        // However, this is only possible if a 'continueCallback' is passed in.\n        if (continueCallback && Date.now() > endTime) {\n          setTimeout(continueCallback, 0);\n          return i;\n        }\n\n        // If the operatorList isn't executed completely yet OR the execution\n        // time was short enough, do another execution round.\n      }\n    },\n\n    endDrawing: function CanvasGraphics_endDrawing() {\n      this.ctx.restore();\n      CachedCanvases.clear();\n\n      if (this.textLayer) {\n        this.textLayer.endLayout();\n      }\n      if (this.imageLayer) {\n        this.imageLayer.endLayout();\n      }\n    },\n\n    // Graphics state\n    setLineWidth: function CanvasGraphics_setLineWidth(width) {\n      this.current.lineWidth = width;\n      this.ctx.lineWidth = width;\n    },\n    setLineCap: function CanvasGraphics_setLineCap(style) {\n      this.ctx.lineCap = LINE_CAP_STYLES[style];\n    },\n    setLineJoin: function CanvasGraphics_setLineJoin(style) {\n      this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n    },\n    setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n      this.ctx.miterLimit = limit;\n    },\n    setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n      var ctx = this.ctx;\n      if ('setLineDash' in ctx) {\n        ctx.setLineDash(dashArray);\n        ctx.lineDashOffset = dashPhase;\n      } else {\n        ctx.mozDash = dashArray;\n        ctx.mozDashOffset = dashPhase;\n      }\n    },\n    setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {\n      // Maybe if we one day fully support color spaces this will be important\n      // for now we can ignore.\n      // TODO set rendering intent?\n    },\n    setFlatness: function CanvasGraphics_setFlatness(flatness) {\n      // There's no way to control this with canvas, but we can safely ignore.\n      // TODO set flatness?\n    },\n    setGState: function CanvasGraphics_setGState(states) {\n      for (var i = 0, ii = states.length; i < ii; i++) {\n        var state = states[i];\n        var key = state[0];\n        var value = state[1];\n\n        switch (key) {\n          case 'LW':\n            this.setLineWidth(value);\n            break;\n          case 'LC':\n            this.setLineCap(value);\n            break;\n          case 'LJ':\n            this.setLineJoin(value);\n            break;\n          case 'ML':\n            this.setMiterLimit(value);\n            break;\n          case 'D':\n            this.setDash(value[0], value[1]);\n            break;\n          case 'RI':\n            this.setRenderingIntent(value);\n            break;\n          case 'FL':\n            this.setFlatness(value);\n            break;\n          case 'Font':\n            this.setFont(value[0], value[1]);\n            break;\n          case 'CA':\n            this.current.strokeAlpha = state[1];\n            break;\n          case 'ca':\n            this.current.fillAlpha = state[1];\n            this.ctx.globalAlpha = state[1];\n            break;\n          case 'BM':\n            if (value && value.name && (value.name !== 'Normal')) {\n              var mode = value.name.replace(/([A-Z])/g,\n                function(c) {\n                  return '-' + c.toLowerCase();\n                }\n              ).substring(1);\n              this.ctx.globalCompositeOperation = mode;\n              if (this.ctx.globalCompositeOperation !== mode) {\n                warn('globalCompositeOperation \"' + mode +\n                     '\" is not supported');\n              }\n            } else {\n              this.ctx.globalCompositeOperation = 'source-over';\n            }\n            break;\n        }\n      }\n    },\n    save: function CanvasGraphics_save() {\n      this.ctx.save();\n      var old = this.current;\n      this.stateStack.push(old);\n      this.current = old.clone();\n    },\n    restore: function CanvasGraphics_restore() {\n      var prev = this.stateStack.pop();\n      if (prev) {\n        this.current = prev;\n        this.ctx.restore();\n      }\n    },\n    transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n      this.ctx.transform(a, b, c, d, e, f);\n    },\n\n    // Path\n    moveTo: function CanvasGraphics_moveTo(x, y) {\n      this.ctx.moveTo(x, y);\n      this.current.setCurrentPoint(x, y);\n    },\n    lineTo: function CanvasGraphics_lineTo(x, y) {\n      this.ctx.lineTo(x, y);\n      this.current.setCurrentPoint(x, y);\n    },\n    curveTo: function CanvasGraphics_curveTo(x1, y1, x2, y2, x3, y3) {\n      this.ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n      this.current.setCurrentPoint(x3, y3);\n    },\n    curveTo2: function CanvasGraphics_curveTo2(x2, y2, x3, y3) {\n      var current = this.current;\n      this.ctx.bezierCurveTo(current.x, current.y, x2, y2, x3, y3);\n      current.setCurrentPoint(x3, y3);\n    },\n    curveTo3: function CanvasGraphics_curveTo3(x1, y1, x3, y3) {\n      this.curveTo(x1, y1, x3, y3, x3, y3);\n      this.current.setCurrentPoint(x3, y3);\n    },\n    closePath: function CanvasGraphics_closePath() {\n      this.ctx.closePath();\n    },\n    rectangle: function CanvasGraphics_rectangle(x, y, width, height) {\n      this.ctx.rect(x, y, width, height);\n    },\n    stroke: function CanvasGraphics_stroke(consumePath) {\n      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n      var ctx = this.ctx;\n      var strokeColor = this.current.strokeColor;\n      if (this.current.lineWidth === 0)\n        ctx.lineWidth = this.getSinglePixelWidth();\n      // For stroke we want to temporarily change the global alpha to the\n      // stroking alpha.\n      ctx.globalAlpha = this.current.strokeAlpha;\n      if (strokeColor && strokeColor.hasOwnProperty('type') &&\n          strokeColor.type === 'Pattern') {\n        // for patterns, we transform to pattern space, calculate\n        // the pattern, call stroke, and restore to user space\n        ctx.save();\n        ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n        ctx.stroke();\n        ctx.restore();\n      } else {\n        ctx.stroke();\n      }\n      if (consumePath)\n        this.consumePath();\n      // Restore the global alpha to the fill alpha\n      ctx.globalAlpha = this.current.fillAlpha;\n    },\n    closeStroke: function CanvasGraphics_closeStroke() {\n      this.closePath();\n      this.stroke();\n    },\n    fill: function CanvasGraphics_fill(consumePath) {\n      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n      var ctx = this.ctx;\n      var fillColor = this.current.fillColor;\n      var needRestore = false;\n\n      if (fillColor && fillColor.hasOwnProperty('type') &&\n          fillColor.type === 'Pattern') {\n        ctx.save();\n        ctx.fillStyle = fillColor.getPattern(ctx, this);\n        needRestore = true;\n      }\n\n      if (this.pendingEOFill) {\n        if ('mozFillRule' in this.ctx) {\n          this.ctx.mozFillRule = 'evenodd';\n          this.ctx.fill();\n          this.ctx.mozFillRule = 'nonzero';\n        } else {\n          try {\n            this.ctx.fill('evenodd');\n          } catch (ex) {\n            // shouldn't really happen, but browsers might think differently\n            this.ctx.fill();\n          }\n        }\n        this.pendingEOFill = false;\n      } else {\n        this.ctx.fill();\n      }\n\n      if (needRestore) {\n        ctx.restore();\n      }\n      if (consumePath) {\n        this.consumePath();\n      }\n    },\n    eoFill: function CanvasGraphics_eoFill() {\n      this.pendingEOFill = true;\n      this.fill();\n    },\n    fillStroke: function CanvasGraphics_fillStroke() {\n      this.fill(false);\n      this.stroke(false);\n\n      this.consumePath();\n    },\n    eoFillStroke: function CanvasGraphics_eoFillStroke() {\n      this.pendingEOFill = true;\n      this.fillStroke();\n    },\n    closeFillStroke: function CanvasGraphics_closeFillStroke() {\n      this.closePath();\n      this.fillStroke();\n    },\n    closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n      this.pendingEOFill = true;\n      this.closePath();\n      this.fillStroke();\n    },\n    endPath: function CanvasGraphics_endPath() {\n      this.consumePath();\n    },\n\n    // Clipping\n    clip: function CanvasGraphics_clip() {\n      this.pendingClip = NORMAL_CLIP;\n    },\n    eoClip: function CanvasGraphics_eoClip() {\n      this.pendingClip = EO_CLIP;\n    },\n\n    // Text\n    beginText: function CanvasGraphics_beginText() {\n      this.current.textMatrix = IDENTITY_MATRIX;\n      this.current.x = this.current.lineX = 0;\n      this.current.y = this.current.lineY = 0;\n    },\n    endText: function CanvasGraphics_endText() {\n      if (!('pendingTextPaths' in this)) {\n        this.ctx.beginPath();\n        return;\n      }\n      var paths = this.pendingTextPaths;\n      var ctx = this.ctx;\n\n      ctx.save();\n      ctx.beginPath();\n      for (var i = 0; i < paths.length; i++) {\n        var path = paths[i];\n        ctx.setTransform.apply(ctx, path.transform);\n        ctx.translate(path.x, path.y);\n        path.addToPath(ctx, path.fontSize);\n      }\n      ctx.restore();\n      ctx.clip();\n      ctx.beginPath();\n      delete this.pendingTextPaths;\n    },\n    setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n      this.current.charSpacing = spacing;\n    },\n    setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n      this.current.wordSpacing = spacing;\n    },\n    setHScale: function CanvasGraphics_setHScale(scale) {\n      this.current.textHScale = scale / 100;\n    },\n    setLeading: function CanvasGraphics_setLeading(leading) {\n      this.current.leading = -leading;\n    },\n    setFont: function CanvasGraphics_setFont(fontRefName, size) {\n      var fontObj = this.commonObjs.get(fontRefName);\n      var current = this.current;\n\n      if (!fontObj)\n        error('Can\\'t find font for ' + fontRefName);\n\n      current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix :\n                                                FONT_IDENTITY_MATRIX;\n\n      // A valid matrix needs all main diagonal elements to be non-zero\n      // This also ensures we bypass FF bugzilla bug #719844.\n      if (current.fontMatrix[0] === 0 ||\n          current.fontMatrix[3] === 0) {\n        warn('Invalid font matrix for font ' + fontRefName);\n      }\n\n      // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n      // and in some docs this can be negative (inverted x-y axes).\n      if (size < 0) {\n        size = -size;\n        current.fontDirection = -1;\n      } else {\n        current.fontDirection = 1;\n      }\n\n      this.current.font = fontObj;\n      this.current.fontSize = size;\n\n      if (fontObj.coded)\n        return; // we don't need ctx.font for Type3 fonts\n\n      var name = fontObj.loadedName || 'sans-serif';\n      var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') :\n                                 (fontObj.bold ? 'bold' : 'normal');\n\n      var italic = fontObj.italic ? 'italic' : 'normal';\n      var typeface = '\"' + name + '\", ' + fontObj.fallbackName;\n\n      // Some font backends cannot handle fonts below certain size.\n      // Keeping the font at minimal size and using the fontSizeScale to change\n      // the current transformation matrix before the fillText/strokeText.\n      // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n      var browserFontSize = size >= MIN_FONT_SIZE ? size : MIN_FONT_SIZE;\n      this.current.fontSizeScale = browserFontSize != MIN_FONT_SIZE ? 1.0 :\n                                   size / MIN_FONT_SIZE;\n\n      var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface;\n      this.ctx.font = rule;\n\n      this.ctx.setFont(fontObj);\n    },\n    setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n      this.current.textRenderingMode = mode;\n    },\n    setTextRise: function CanvasGraphics_setTextRise(rise) {\n      this.current.textRise = rise;\n    },\n    moveText: function CanvasGraphics_moveText(x, y) {\n      this.current.x = this.current.lineX += x;\n      this.current.y = this.current.lineY += y;\n    },\n    setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n      this.setLeading(-y);\n      this.moveText(x, y);\n    },\n    setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n      this.current.textMatrix = [a, b, c, d, e, f];\n\n      this.current.x = this.current.lineX = 0;\n      this.current.y = this.current.lineY = 0;\n    },\n    nextLine: function CanvasGraphics_nextLine() {\n      this.moveText(0, this.current.leading);\n    },\n    applyTextTransforms: function CanvasGraphics_applyTextTransforms() {\n      var ctx = this.ctx;\n      var current = this.current;\n      ctx.transform.apply(ctx, current.textMatrix);\n      ctx.translate(current.x, current.y + current.textRise);\n      if (current.fontDirection > 0) {\n        ctx.scale(current.textHScale, -1);\n      } else {\n        ctx.scale(-current.textHScale, 1);\n      }\n    },\n    createTextGeometry: function CanvasGraphics_createTextGeometry() {\n      var geometry = {};\n      var ctx = this.ctx;\n      var font = this.current.font;\n      var ctxMatrix = ctx.mozCurrentTransform;\n      var a = ctxMatrix[0], b = ctxMatrix[1], c = ctxMatrix[2];\n      var d = ctxMatrix[3], e = ctxMatrix[4], f = ctxMatrix[5];\n      var sx = (a >= 0) ?\n          Math.sqrt((a * a) + (b * b)) : -Math.sqrt((a * a) + (b * b));\n      var sy = (d >= 0) ?\n          Math.sqrt((c * c) + (d * d)) : -Math.sqrt((c * c) + (d * d));\n      var angle = Math.atan2(b, a);\n      var x = e;\n      var y = f;\n      geometry.x = x;\n      geometry.y = y;\n      geometry.hScale = sx;\n      geometry.vScale = sy;\n      geometry.angle = angle;\n      geometry.spaceWidth = font.spaceWidth;\n      geometry.fontName = font.loadedName;\n      geometry.fontFamily = font.fallbackName;\n      geometry.fontSize = this.current.fontSize;\n      return geometry;\n    },\n\n    paintChar: function (character, x, y) {\n      var ctx = this.ctx;\n      var current = this.current;\n      var font = current.font;\n      var fontSize = current.fontSize / current.fontSizeScale;\n      var textRenderingMode = current.textRenderingMode;\n      var fillStrokeMode = textRenderingMode &\n        TextRenderingMode.FILL_STROKE_MASK;\n      var isAddToPathSet = !!(textRenderingMode &\n        TextRenderingMode.ADD_TO_PATH_FLAG);\n\n      var addToPath;\n      if (font.disableFontFace || isAddToPathSet) {\n        addToPath = font.getPathGenerator(this.commonObjs, character);\n      }\n\n      if (font.disableFontFace) {\n        ctx.save();\n        ctx.translate(x, y);\n        ctx.beginPath();\n        addToPath(ctx, fontSize);\n        if (fillStrokeMode === TextRenderingMode.FILL ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          ctx.fill();\n        }\n        if (fillStrokeMode === TextRenderingMode.STROKE ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          ctx.stroke();\n        }\n        ctx.restore();\n      } else {\n        if (fillStrokeMode === TextRenderingMode.FILL ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          ctx.fillText(character, x, y);\n        }\n        if (fillStrokeMode === TextRenderingMode.STROKE ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          ctx.strokeText(character, x, y);\n        }\n      }\n\n      if (isAddToPathSet) {\n        var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n        paths.push({\n          transform: ctx.mozCurrentTransform,\n          x: x,\n          y: y,\n          fontSize: fontSize,\n          addToPath: addToPath\n        });\n      }\n    },\n\n    showText: function CanvasGraphics_showText(glyphs, skipTextSelection) {\n      var ctx = this.ctx;\n      var current = this.current;\n      var font = current.font || {};\n      var fontSize = current.fontSize;\n      var fontSizeScale = current.fontSizeScale;\n      var charSpacing = current.charSpacing;\n      var wordSpacing = current.wordSpacing;\n      var textHScale = current.textHScale * current.fontDirection;\n      var fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n      var glyphsLength = glyphs.length;\n      var textLayer = this.textLayer;\n      var geom;\n      var textSelection = textLayer && !skipTextSelection ? true : false;\n      var canvasWidth = 0.0;\n      var vertical = font.vertical;\n      var defaultVMetrics = font.defaultVMetrics;\n\n      // Type3 fonts - each glyph is a \"mini-PDF\"\n      if (font.coded) {\n        ctx.save();\n        ctx.transform.apply(ctx, current.textMatrix);\n        ctx.translate(current.x, current.y);\n\n        ctx.scale(textHScale, 1);\n\n        if (textSelection) {\n          this.save();\n          ctx.scale(1, -1);\n          geom = this.createTextGeometry();\n          this.restore();\n        }\n        for (var i = 0; i < glyphsLength; ++i) {\n\n          var glyph = glyphs[i];\n          if (glyph === null) {\n            // word break\n            this.ctx.translate(wordSpacing, 0);\n            current.x += wordSpacing * textHScale;\n            continue;\n          }\n\n          this.processingType3 = glyph;\n          this.save();\n          ctx.scale(fontSize, fontSize);\n          ctx.transform.apply(ctx, fontMatrix);\n          this.executeOperatorList(glyph.operatorList);\n          this.restore();\n\n          var transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n          var width = (transformed[0] * fontSize + charSpacing) *\n                      current.fontDirection;\n\n          ctx.translate(width, 0);\n          current.x += width * textHScale;\n\n          canvasWidth += width;\n        }\n        ctx.restore();\n        this.processingType3 = null;\n      } else {\n        ctx.save();\n\n//MQZ Dec.04.2013 handles leading word spacing\n          var tx = 0;\n          if (wordSpacing !== 0) {\n              var firstGlyph = glyphs.filter(g => g && ('fontChar' in g || 'unicode' in g))[0];\n              if (firstGlyph && (firstGlyph.fontChar === ' ' || firstGlyph.unicode === ' ')) {\n                tx = wordSpacing * fontSize * textHScale;\n              }\n          }\n\n        current.x += tx\n        this.applyTextTransforms();\n        current.x -= tx\n        // MQZ-GYJ Apr.20.2017 handles leading word spacing over\n\n        var lineWidth = current.lineWidth;\n        var a1 = current.textMatrix[0], b1 = current.textMatrix[1];\n        var scale = Math.sqrt(a1 * a1 + b1 * b1);\n        if (scale === 0 || lineWidth === 0)\n          lineWidth = this.getSinglePixelWidth();\n        else\n          lineWidth /= scale;\n\n        if (textSelection)\n          geom = this.createTextGeometry();\n\n        if (fontSizeScale != 1.0) {\n          ctx.scale(fontSizeScale, fontSizeScale);\n          lineWidth /= fontSizeScale;\n        }\n\n        ctx.lineWidth = lineWidth;\n\n//MQZ. Feb.20.2013. Disable character based painting, make it a string\n          var str = \"\";\n\n        var x = 0;\n        for (var i = 0; i < glyphsLength; ++i) {\n          var glyph = glyphs[i];\n          if (glyph === null) {\n            // word break\n            x += current.fontDirection * wordSpacing;\n            continue;\n          }\n\n          var restoreNeeded = false;\n          var character = glyph.fontChar;\n          var vmetric = glyph.vmetric || defaultVMetrics;\n          if (vertical) {\n            var vx = glyph.vmetric ? vmetric[1] : glyph.width * 0.5;\n            vx = -vx * fontSize * current.fontMatrix[0];\n            var vy = vmetric[2] * fontSize * current.fontMatrix[0];\n          }\n          var width = vmetric ? -vmetric[0] : glyph.width;\n          var charWidth = width * fontSize * current.fontMatrix[0] +\n                          charSpacing * current.fontDirection;\n          var accent = glyph.accent;\n\n          var scaledX, scaledY, scaledAccentX, scaledAccentY;\n          if (!glyph.disabled) {\n            if (vertical) {\n              scaledX = vx / fontSizeScale;\n              scaledY = (x + vy) / fontSizeScale;\n            } else {\n              scaledX = x / fontSizeScale;\n              scaledY = 0;\n            }\n\n            if (font.remeasure && width > 0) {\n              // some standard fonts may not have the exact width, trying to\n              // rescale per character\n              var measuredWidth = ctx.measureText(character).width * 1000 /\n                current.fontSize * current.fontSizeScale;\n\n              var characterScaleX = width / measuredWidth;\n              restoreNeeded = true;\n              ctx.save();\n              ctx.scale(characterScaleX, 1);\n              scaledX /= characterScaleX;\n              if (accent) {\n                scaledAccentX /= characterScaleX;\n              }\n            }\n\n            //MQZ. Feb.20.2013. Disable character based painting, make it a string\n//            this.paintChar(character, scaledX, scaledY);\n              str += glyph.unicode || character;\n            if (accent) {\n              scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n              scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n                //MQZ. Feb.20.2013. Disable character based painting, make it a string\n//              this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY);\n//                str += accent.fontChar;\n            }\n          }\n\n          x += charWidth;\n\n          canvasWidth += charWidth;\n\n          if (restoreNeeded) {\n            ctx.restore();\n          }\n        }\n        if (vertical) {\n          current.y -= x * textHScale;\n        } else {\n          current.x += x * textHScale;\n        }\n\n//MQZ Dec.04.2013 paint string\n//          if (str.indexOf(\"If single, enter -0-.\") >= 0) {\n//              info(\"fontChar = \" + glyphs[0].fontChar);\n//              info(nodeUtil.inspect(glyphs));\n//          }\n\n          if (str && !font.disableFontFace) {\n              var curFontSize = fontSize * scale * textHScale + 3;\n              switch (current.textRenderingMode) {\n                case TextRenderingMode.FILL:\n                    ctx.fillText(str, 0, 0, canvasWidth, curFontSize);\n                    break;\n                case TextRenderingMode.STROKE:\n                    ctx.strokeText(str, 0, 0, canvasWidth, curFontSize);\n                    break;\n                case TextRenderingMode.FILL_STROKE:\n                    ctx.fillText(str, 0, 0, canvasWidth, curFontSize);\n                    break;\n                case TextRenderingMode.INVISIBLE:\n                case TextRenderingMode.ADD_TO_PATH:\n                    break;\n                default: // other unsupported rendering modes\n            }\n          }\n\n        ctx.restore();\n      }\n\n      if (textSelection) {\n        geom.canvasWidth = canvasWidth;\n        if (vertical) {\n          var VERTICAL_TEXT_ROTATION = Math.PI / 2;\n          geom.angle += VERTICAL_TEXT_ROTATION;\n        }\n        this.textLayer.appendText(geom);\n      }\n\n      return canvasWidth;\n    },\n    showSpacedText: function CanvasGraphics_showSpacedText(arr) {\n      var ctx = this.ctx;\n      var current = this.current;\n      var font = current.font;\n      var fontSize = current.fontSize;\n      // TJ array's number is independent from fontMatrix\n      var textHScale = current.textHScale * 0.001 * current.fontDirection;\n      var arrLength = arr.length;\n      var textLayer = this.textLayer;\n      var geom;\n      var canvasWidth = 0.0;\n      var textSelection = textLayer ? true : false;\n      var vertical = font.vertical;\n      var spacingAccumulator = 0;\n\n      if (textSelection) {\n        ctx.save();\n        this.applyTextTransforms();\n        geom = this.createTextGeometry();\n        ctx.restore();\n      }\n\n//MQZ Nov.28.2012 Adjust Text Positions, and also make it a string\n      var stGlyphs = [];\n      var spaceWidth = font.spaceWidth;\n      if (!font.spaceWidth) {\n          var spaceId = isArray(font.toFontChar) ? font.toFontChar.indexOf(32) : -1;\n          spaceWidth = (spaceId >= 0 && isArray(font.widths)) ? font.widths[spaceId] : 250;\n      }\n\n      for (var i = 0; i < arrLength; ++i) {\n        var e = arr[i];\n        if (isNum(e)) {\n          var spacingLength = -e * fontSize * textHScale;\n//MQZ. Dec.04.2013 Disable character based rendering - remove kerning\n          if (stGlyphs.length === 0) {\n              if (vertical) {\n                current.y += spacingLength;\n              } else {\n                current.x += spacingLength;\n              }\n          }\n          else {\n            //MQZ-GYJ. Apr.20.2017 split word when spacing is a positive number but very big\n              if (Math.abs(e) >= spaceWidth) {\n                  if (vertical) {\n                      current.y += spacingLength;\n                  } else {\n                      this.showText(stGlyphs, true);\n                      stGlyphs = [];\n                      current.x += spacingLength;\n                  }\n              }\n          }\n\n          if (textSelection)\n            spacingAccumulator += spacingLength;\n        } else {\n//MQZ. Dec.04.2013 Disable character based rendering - make it a string\n//          var shownCanvasWidth = this.showText(e, true);\n//\n//          if (textSelection) {\n//            canvasWidth += spacingAccumulator + shownCanvasWidth;\n//            spacingAccumulator = 0;\n//          }\n\n            stGlyphs = stGlyphs.concat(e);\n        }\n      }\n\n//MQZ. Nov.28.2012 Disable character based rendering, make it a string\n        if (stGlyphs.length) {\n            var shownCanvasWidth = this.showText(stGlyphs, true);\n            if (textSelection)\n              canvasWidth += shownCanvasWidth;\n        }\n\n      if (textSelection) {\n        geom.canvasWidth = canvasWidth;\n        if (vertical) {\n          var VERTICAL_TEXT_ROTATION = Math.PI / 2;\n          geom.angle += VERTICAL_TEXT_ROTATION;\n        }\n        this.textLayer.appendText(geom);\n      }\n    },\n    nextLineShowText: function CanvasGraphics_nextLineShowText(text) {\n      this.nextLine();\n      this.showText(text);\n    },\n    nextLineSetSpacingShowText:\n      function CanvasGraphics_nextLineSetSpacingShowText(wordSpacing,\n                                                         charSpacing,\n                                                         text) {\n      this.setWordSpacing(wordSpacing);\n      this.setCharSpacing(charSpacing);\n      this.nextLineShowText(text);\n    },\n\n    // Type3 fonts\n    setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {\n      // We can safely ignore this since the width should be the same\n      // as the width in the Widths array.\n    },\n    setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth,\n                                                                        yWidth,\n                                                                        llx,\n                                                                        lly,\n                                                                        urx,\n                                                                        ury) {\n      // TODO According to the spec we're also suppose to ignore any operators\n      // that set color or include images while processing this type3 font.\n      this.rectangle(llx, lly, urx - llx, ury - lly);\n      this.clip();\n      this.endPath();\n    },\n\n    // Color\n    setStrokeColorSpace: function CanvasGraphics_setStrokeColorSpace(raw) {\n      this.current.strokeColorSpace = ColorSpace.fromIR(raw);\n    },\n    setFillColorSpace: function CanvasGraphics_setFillColorSpace(raw) {\n      this.current.fillColorSpace = ColorSpace.fromIR(raw);\n    },\n    setStrokeColor: function CanvasGraphics_setStrokeColor(/*...*/) {\n      var cs = this.current.strokeColorSpace;\n      var rgbColor = cs.getRgb(arguments, 0);\n      var color = Util.makeCssRgb(rgbColor);\n      this.ctx.strokeStyle = color;\n      this.current.strokeColor = color;\n    },\n    getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR, cs) {\n      if (IR[0] == 'TilingPattern') {\n        var args = IR[1];\n        var base = cs.base;\n        var color;\n        if (base) {\n          var baseComps = base.numComps;\n\n          color = base.getRgb(args, 0);\n        }\n        var pattern = new TilingPattern(IR, color, this.ctx, this.objs,\n                                        this.commonObjs, this.baseTransform);\n      } else if (IR[0] == 'RadialAxial' || IR[0] == 'Dummy') {\n        var pattern = Pattern.shadingFromIR(IR);\n      } else {\n        error('Unkown IR type ' + IR[0]);\n      }\n      return pattern;\n    },\n    setStrokeColorN: function CanvasGraphics_setStrokeColorN(/*...*/) {\n      var cs = this.current.strokeColorSpace;\n\n      if (cs.name == 'Pattern') {\n        this.current.strokeColor = this.getColorN_Pattern(arguments, cs);\n      } else {\n        this.setStrokeColor.apply(this, arguments);\n      }\n    },\n    setFillColor: function CanvasGraphics_setFillColor(/*...*/) {\n      var cs = this.current.fillColorSpace;\n      var rgbColor = cs.getRgb(arguments, 0);\n      var color = Util.makeCssRgb(rgbColor);\n      this.ctx.fillStyle = color;\n      this.current.fillColor = color;\n    },\n    setFillColorN: function CanvasGraphics_setFillColorN(/*...*/) {\n      var cs = this.current.fillColorSpace;\n\n      if (cs.name == 'Pattern') {\n        this.current.fillColor = this.getColorN_Pattern(arguments, cs);\n      } else {\n        this.setFillColor.apply(this, arguments);\n      }\n    },\n    setStrokeGray: function CanvasGraphics_setStrokeGray(gray) {\n      this.current.strokeColorSpace = ColorSpace.singletons.gray;\n\n      var rgbColor = this.current.strokeColorSpace.getRgb(arguments, 0);\n      var color = Util.makeCssRgb(rgbColor);\n      this.ctx.strokeStyle = color;\n      this.current.strokeColor = color;\n    },\n    setFillGray: function CanvasGraphics_setFillGray(gray) {\n      this.current.fillColorSpace = ColorSpace.singletons.gray;\n\n      var rgbColor = this.current.fillColorSpace.getRgb(arguments, 0);\n      var color = Util.makeCssRgb(rgbColor);\n      this.ctx.fillStyle = color;\n      this.current.fillColor = color;\n    },\n    setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n      this.current.strokeColorSpace = ColorSpace.singletons.rgb;\n\n      var rgbColor = this.current.strokeColorSpace.getRgb(arguments, 0);\n      var color = Util.makeCssRgb(rgbColor);\n      this.ctx.strokeStyle = color;\n      this.current.strokeColor = color;\n    },\n    setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n      this.current.fillColorSpace = ColorSpace.singletons.rgb;\n\n      var rgbColor = this.current.fillColorSpace.getRgb(arguments, 0);\n      var color = Util.makeCssRgb(rgbColor);\n      this.ctx.fillStyle = color;\n      this.current.fillColor = color;\n    },\n    setStrokeCMYKColor: function CanvasGraphics_setStrokeCMYKColor(c, m, y, k) {\n      this.current.strokeColorSpace = ColorSpace.singletons.cmyk;\n\n      var color = Util.makeCssCmyk(arguments);\n      this.ctx.strokeStyle = color;\n      this.current.strokeColor = color;\n    },\n    setFillCMYKColor: function CanvasGraphics_setFillCMYKColor(c, m, y, k) {\n      this.current.fillColorSpace = ColorSpace.singletons.cmyk;\n\n      var color = Util.makeCssCmyk(arguments);\n      this.ctx.fillStyle = color;\n      this.current.fillColor = color;\n    },\n\n    shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n      var ctx = this.ctx;\n\n      this.save();\n      var pattern = Pattern.shadingFromIR(patternIR);\n      ctx.fillStyle = pattern.getPattern(ctx, this);\n\n      var inv = ctx.mozCurrentTransformInverse;\n      if (inv) {\n        var canvas = ctx.canvas;\n        var width = canvas.width;\n        var height = canvas.height;\n\n        var bl = Util.applyTransform([0, 0], inv);\n        var br = Util.applyTransform([0, height], inv);\n        var ul = Util.applyTransform([width, 0], inv);\n        var ur = Util.applyTransform([width, height], inv);\n\n        var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n        var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n        var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n        var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n        this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n      } else {\n        // HACK to draw the gradient onto an infinite rectangle.\n        // PDF gradients are drawn across the entire image while\n        // Canvas only allows gradients to be drawn in a rectangle\n        // The following bug should allow us to remove this.\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n        this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n      }\n\n      this.restore();\n    },\n\n    // Images\n    beginInlineImage: function CanvasGraphics_beginInlineImage() {\n      error('Should not call beginInlineImage');\n    },\n    beginImageData: function CanvasGraphics_beginImageData() {\n      error('Should not call beginImageData');\n    },\n\n    paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix,\n                                                                        bbox) {\n      this.save();\n      this.current.paintFormXObjectDepth++;\n      this.baseTransformStack.push(this.baseTransform);\n\n      if (matrix && isArray(matrix) && 6 == matrix.length)\n        this.transform.apply(this, matrix);\n\n      this.baseTransform = this.ctx.mozCurrentTransform;\n\n      if (bbox && isArray(bbox) && 4 == bbox.length) {\n        var width = bbox[2] - bbox[0];\n        var height = bbox[3] - bbox[1];\n        this.rectangle(bbox[0], bbox[1], width, height);\n        this.clip();\n        this.endPath();\n      }\n    },\n\n    paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n      var depth = this.current.paintFormXObjectDepth;\n      do {\n        this.restore();\n        this.current.paintFormXObjectDepth--;\n        // some pdf don't close all restores inside object\n        // closing those for them\n      } while (this.current.paintFormXObjectDepth >= depth);\n      this.baseTransform = this.baseTransformStack.pop();\n    },\n\n    beginGroup: function CanvasGraphics_beginGroup(group) {\n      this.save();\n      var currentCtx = this.ctx;\n      // TODO non-isolated groups - according to Rik at adobe non-isolated\n      // group results aren't usually that different and they even have tools\n      // that ignore this setting. Notes from Rik on implmenting:\n      // - When you encounter an transparency group, create a new canvas with\n      // the dimensions of the bbox\n      // - copy the content from the previous canvas to the new canvas\n      // - draw as usual\n      // - remove the backdrop alpha:\n      // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n      // value of your transparency group and 'alphaBackdrop' the alpha of the\n      // backdrop\n      // - remove background color:\n      // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n      if (!group.isolated) {\n        info('TODO: Support non-isolated groups.');\n      }\n\n      // TODO knockout - supposedly possible with the clever use of compositing\n      // modes.\n      if (group.knockout) {\n        TODO('Support knockout groups.');\n      }\n\n      var currentTransform = currentCtx.mozCurrentTransform;\n      if (group.matrix) {\n        currentCtx.transform.apply(currentCtx, group.matrix);\n      }\n      assert(group.bbox, 'Bounding box is required.');\n\n      // Based on the current transform figure out how big the bounding box\n      // will actually be.\n      var bounds = Util.getAxialAlignedBoundingBox(\n                    group.bbox,\n                    currentCtx.mozCurrentTransform);\n      // Clip the bounding box to the current canvas.\n      var canvasBounds = [0,\n                          0,\n                          currentCtx.canvas.width,\n                          currentCtx.canvas.height];\n      bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n      // Use ceil in case we're between sizes so we don't create canvas that is\n      // too small and make the canvas at least 1x1 pixels.\n      var drawnWidth = Math.max(Math.ceil(bounds[2] - bounds[0]), 1);\n      var drawnHeight = Math.max(Math.ceil(bounds[3] - bounds[1]), 1);\n\n      var scratchCanvas = CachedCanvases.getCanvas(\n        'groupAt' + this.groupLevel, drawnWidth, drawnHeight, true);\n      var groupCtx = scratchCanvas.context;\n      // Since we created a new canvas that is just the size of the bounding box\n      // we have to translate the group ctx.\n      var offsetX = bounds[0];\n      var offsetY = bounds[1];\n      groupCtx.translate(-offsetX, -offsetY);\n      groupCtx.transform.apply(groupCtx, currentTransform);\n\n      // Setup the current ctx so when the group is popped we draw it the right\n      // location.\n      currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n      currentCtx.translate(offsetX, offsetY);\n      // The transparency group inherits all off the current graphics state\n      // except the blend mode, soft mask, and alpha constants.\n      copyCtxState(currentCtx, groupCtx);\n      this.ctx = groupCtx;\n      this.setGState([\n        ['SMask', 'None'],\n        ['BM', 'Normal'],\n        ['ca', 1],\n        ['CA', 1]\n      ]);\n      this.groupStack.push(currentCtx);\n      this.groupLevel++;\n    },\n\n    endGroup: function CanvasGraphics_endGroup(group) {\n        //MQZ. make sure endGroup is always invoked after beginGroup\n        if (this.groupLevel == 0)\n            this.beginGroup(group);\n            \n      this.groupLevel--;\n      var groupCtx = this.ctx;\n      this.ctx = this.groupStack.pop();\n      // Turn off image smoothing to avoid sub pixel interpolation which can\n      // look kind of blurry for some pdfs.\n      if ('imageSmoothingEnabled' in this.ctx) {\n        this.ctx.imageSmoothingEnabled = false;\n      } else {\n        this.ctx.mozImageSmoothingEnabled = false;\n      }\n      this.ctx.drawImage(groupCtx.canvas, 0, 0);\n      this.restore();\n    },\n\n    beginAnnotations: function CanvasGraphics_beginAnnotations() {\n      this.save();\n      this.current = new CanvasExtraState();\n    },\n\n    endAnnotations: function CanvasGraphics_endAnnotations() {\n      this.restore();\n    },\n\n    beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform,\n                                                             matrix) {\n      this.save();\n\n      if (rect && isArray(rect) && 4 == rect.length) {\n        var width = rect[2] - rect[0];\n        var height = rect[3] - rect[1];\n        this.rectangle(rect[0], rect[1], width, height);\n        this.clip();\n        this.endPath();\n      }\n\n      this.transform.apply(this, transform);\n      this.transform.apply(this, matrix);\n    },\n\n    endAnnotation: function CanvasGraphics_endAnnotation() {\n      this.restore();\n    },\n\n    paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {\n      var domImage = this.objs.get(objId);\n      if (!domImage) {\n        error('Dependent image isn\\'t ready yet');\n      }\n\n      this.save();\n\n      var ctx = this.ctx;\n      // scale the image to the unit square\n      ctx.scale(1 / w, -1 / h);\n\n      ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height,\n                    0, -h, w, h);\n      if (this.imageLayer) {\n        var currentTransform = ctx.mozCurrentTransformInverse;\n        var position = this.getCanvasPosition(0, 0);\n        this.imageLayer.appendImage({\n          objId: objId,\n          left: position[0],\n          top: position[1],\n          width: w / currentTransform[0],\n          height: h / currentTransform[3]\n        });\n      }\n      this.restore();\n    },\n\n    paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n      var ctx = this.ctx;\n      var width = img.width, height = img.height;\n\n      var glyph = this.processingType3;\n\n      if (COMPILE_TYPE3_GLYPHS && glyph && !('compiled' in glyph)) {\n        var MAX_SIZE_TO_COMPILE = 1000;\n        if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n          glyph.compiled =\n            compileType3Glyph({data: img.data, width: width, height: height});\n        } else {\n          glyph.compiled = null;\n        }\n      }\n\n      if (glyph && glyph.compiled) {\n        glyph.compiled(ctx);\n        return;\n      }\n\n      var maskCanvas = CachedCanvases.getCanvas('maskCanvas', width, height);\n      var maskCtx = maskCanvas.context;\n      maskCtx.save();\n\n      putBinaryImageData(maskCtx, img);\n\n      maskCtx.globalCompositeOperation = 'source-in';\n\n      var fillColor = this.current.fillColor;\n      maskCtx.fillStyle = (fillColor && fillColor.hasOwnProperty('type') &&\n                          fillColor.type === 'Pattern') ?\n                          fillColor.getPattern(maskCtx, this) : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n\n      maskCtx.restore();\n\n      this.paintInlineImageXObject(maskCanvas.canvas);\n    },\n\n    paintImageMaskXObjectGroup:\n      function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n      var ctx = this.ctx;\n\n      for (var i = 0, ii = images.length; i < ii; i++) {\n        var image = images[i];\n        var width = image.width, height = image.height;\n\n        var maskCanvas = CachedCanvases.getCanvas('maskCanvas', width, height);\n        var maskCtx = maskCanvas.context;\n        maskCtx.save();\n\n        putBinaryImageData(maskCtx, image);\n\n        maskCtx.globalCompositeOperation = 'source-in';\n\n        var fillColor = this.current.fillColor;\n        maskCtx.fillStyle = (fillColor && fillColor.hasOwnProperty('type') &&\n                            fillColor.type === 'Pattern') ?\n                            fillColor.getPattern(maskCtx, this) : fillColor;\n        maskCtx.fillRect(0, 0, width, height);\n\n        maskCtx.restore();\n\n        ctx.save();\n        ctx.transform.apply(ctx, image.transform);\n        ctx.scale(1, -1);\n        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height,\n                      0, -1, 1, 1);\n        ctx.restore();\n      }\n    },\n\n    paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n      var imgData = this.objs.get(objId);\n      if (!imgData)\n        error('Dependent image isn\\'t ready yet');\n\n      this.paintInlineImageXObject(imgData);\n    },\n\n    paintInlineImageXObject:\n      function CanvasGraphics_paintInlineImageXObject(imgData) {\n      var width = imgData.width;\n      var height = imgData.height;\n      var ctx = this.ctx;\n\n      this.save();\n      // scale the image to the unit square\n      ctx.scale(1 / width, -1 / height);\n\n      var currentTransform = ctx.mozCurrentTransformInverse;\n      var a = currentTransform[0], b = currentTransform[1];\n      var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n      var c = currentTransform[2], d = currentTransform[3];\n      var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n\n      var imgToPaint;\n      // instanceof HTMLElement does not work in jsdom node.js module\n      if (imgData instanceof HTMLElement || !imgData.data) {\n        imgToPaint = imgData;\n      } else {\n        var tmpCanvas = CachedCanvases.getCanvas('inlineImage', width, height);\n        var tmpCtx = tmpCanvas.context;\n        putBinaryImageData(tmpCtx, imgData);\n        imgToPaint = tmpCanvas.canvas;\n      }\n\n      var paintWidth = width, paintHeight = height;\n      var tmpCanvasId = 'prescale1';\n      // Vertial or horizontal scaling shall not be more than 2 to not loose the\n      // pixels during drawImage operation, painting on the temporary canvas(es)\n      // that are twice smaller in size\n      while ((widthScale > 2 && paintWidth > 1) ||\n             (heightScale > 2 && paintHeight > 1)) {\n        var newWidth = paintWidth, newHeight = paintHeight;\n        if (widthScale > 2 && paintWidth > 1) {\n          newWidth = Math.ceil(paintWidth / 2);\n          widthScale /= paintWidth / newWidth;\n        }\n        if (heightScale > 2 && paintHeight > 1) {\n          newHeight = Math.ceil(paintHeight / 2);\n          heightScale /= paintHeight / newHeight;\n        }\n        var tmpCanvas = CachedCanvases.getCanvas(tmpCanvasId,\n                                                 newWidth, newHeight);\n        tmpCtx = tmpCanvas.context;\n        tmpCtx.clearRect(0, 0, newWidth, newHeight);\n        tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,\n                                     0, 0, newWidth, newHeight);\n        imgToPaint = tmpCanvas.canvas;\n        paintWidth = newWidth;\n        paintHeight = newHeight;\n        tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';\n      }\n      ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,\n                                0, -height, width, height);\n\n      if (this.imageLayer) {\n        var position = this.getCanvasPosition(0, -height);\n        this.imageLayer.appendImage({\n          imgData: imgData,\n          left: position[0],\n          top: position[1],\n          width: width / currentTransform[0],\n          height: height / currentTransform[3]\n        });\n      }\n      this.restore();\n    },\n\n    paintInlineImageXObjectGroup:\n      function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n      var ctx = this.ctx;\n      var w = imgData.width;\n      var h = imgData.height;\n\n      var tmpCanvas = CachedCanvases.getCanvas('inlineImage', w, h);\n      var tmpCtx = tmpCanvas.context;\n      putBinaryImageData(tmpCtx, imgData);\n\n      for (var i = 0, ii = map.length; i < ii; i++) {\n        var entry = map[i];\n        ctx.save();\n        ctx.transform.apply(ctx, entry.transform);\n        ctx.scale(1, -1);\n        ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h,\n                      0, -1, 1, 1);\n        if (this.imageLayer) {\n          var position = this.getCanvasPosition(entry.x, entry.y);\n          this.imageLayer.appendImage({\n            imgData: imgData,\n            left: position[0],\n            top: position[1],\n            width: w,\n            height: h\n          });\n        }\n        ctx.restore();\n      }\n    },\n\n    // Marked content\n\n    markPoint: function CanvasGraphics_markPoint(tag) {\n      // TODO Marked content.\n    },\n    markPointProps: function CanvasGraphics_markPointProps(tag, properties) {\n      // TODO Marked content.\n    },\n    beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n      // TODO Marked content.\n    },\n    beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(\n                                        tag, properties) {\n      // TODO Marked content.\n    },\n    endMarkedContent: function CanvasGraphics_endMarkedContent() {\n      // TODO Marked content.\n    },\n\n    // Compatibility\n\n    beginCompat: function CanvasGraphics_beginCompat() {\n      // TODO ignore undefined operators (should we do that anyway?)\n    },\n    endCompat: function CanvasGraphics_endCompat() {\n      // TODO stop ignoring undefined operators\n    },\n\n    // Helper functions\n\n    consumePath: function CanvasGraphics_consumePath() {\n      if (this.pendingClip) {\n        if (this.pendingClip == EO_CLIP) {\n          if ('mozFillRule' in this.ctx) {\n            this.ctx.mozFillRule = 'evenodd';\n            this.ctx.clip();\n            this.ctx.mozFillRule = 'nonzero';\n          } else {\n            try {\n              this.ctx.clip('evenodd');\n            } catch (ex) {\n              // shouldn't really happen, but browsers might think differently\n              this.ctx.clip();\n            }\n          }\n        } else {\n          this.ctx.clip();\n        }\n        this.pendingClip = null;\n      }\n      this.ctx.beginPath();\n    },\n    getSinglePixelWidth: function CanvasGraphics_getSinglePixelWidth(scale) {\n      var inverse = this.ctx.mozCurrentTransformInverse;\n      // max of the current horizontal and vertical scale\n      return Math.sqrt(Math.max(\n        (inverse[0] * inverse[0] + inverse[1] * inverse[1]),\n        (inverse[2] * inverse[2] + inverse[3] * inverse[3])));\n    },\n    getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n        var transform = this.ctx.mozCurrentTransform;\n        return [\n          transform[0] * x + transform[2] * y + transform[4],\n          transform[1] * x + transform[3] * y + transform[5]\n        ];\n    }\n  };\n\n  for (var op in OPS) {\n    CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n  }\n\n  return CanvasGraphics;\n})();\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals PDFJS, shadow, isWorker, assert, warn, bytesToString, globalScope */\n\n'use strict';\n\nPDFJS.disableFontFace = false;\n\nvar FontLoader = {\n  insertRule: function fontLoaderInsertRule(rule) {\n    var styleElement = document.getElementById('PDFJS_FONT_STYLE_TAG');\n    if (!styleElement) {\n        styleElement = document.createElement('style');\n        styleElement.id = 'PDFJS_FONT_STYLE_TAG';\n        document.documentElement.getElementsByTagName('head')[0].appendChild(\n          styleElement);\n    }\n\n    var styleSheet = styleElement.sheet;\n    styleSheet.insertRule(rule, styleSheet.cssRules.length);\n  },\n  clear: function fontLoaderClear() {\n    var styleElement = document.getElementById('PDFJS_FONT_STYLE_TAG');\n    if (styleElement) {\n      styleElement.parentNode.removeChild(styleElement);\n    }\n  },\n//#if !(MOZCENTRAL)\n  get loadTestFont() {\n    // This is a CFF font with 1 glyph for '.' that fills its entire width and\n    // height.\n    return shadow(this, 'loadTestFont', atob(\n      'T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQ' +\n      'AABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwA' +\n      'AAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbm' +\n      'FtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAA' +\n      'AADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6A' +\n      'ABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAA' +\n      'MQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAA' +\n      'AAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAA' +\n      'AAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQ' +\n      'AAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMA' +\n      'AQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAA' +\n      'EAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAA' +\n      'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAA' +\n      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA' +\n      'AAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgc' +\n      'A/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF' +\n      'hYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQA' +\n      'AAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAg' +\n      'ABAAAAAAAAAAAD6AAAAAAAAA=='\n    ));\n  },\n\n  loadTestFontId: 0,\n\n  loadingContext: {\n    requests: [],\n    nextRequestId: 0\n  },\n\n  isSyncFontLoadingSupported: (function detectSyncFontLoadingSupport() {\n    if (isWorker)\n      return false;\n\n    // User agent string sniffing is bad, but there is no reliable way to tell\n    // if font is fully loaded and ready to be used with canvas.\n    var userAgent = window.navigator.userAgent;\n    var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(userAgent);\n    if (m && m[1] >= 14)\n      return true;\n    // TODO other browsers\n    return false;\n  })(),\n\n  bind: function fontLoaderBind(fonts, callback) {\n    assert(!isWorker, 'bind() shall be called from main thread');\n\n    var rules = [], fontsToLoad = [];\n    for (var i = 0, ii = fonts.length; i < ii; i++) {\n      var font = fonts[i];\n\n      // Add the font to the DOM only once or skip if the font\n      // is already loaded.\n      if (font.attached || font.loading === false) {\n        continue;\n      }\n      font.attached = true;\n\n      var rule = font.bindDOM();\n      if (rule) {\n        rules.push(rule);\n        fontsToLoad.push(font);\n      }\n    }\n\n    var request = FontLoader.queueLoadingCallback(callback);\n    if (rules.length > 0 && !this.isSyncFontLoadingSupported) {\n      FontLoader.prepareFontLoadEvent(rules, fontsToLoad, request);\n    } else {\n      request.complete();\n    }\n  },\n\n  queueLoadingCallback: function FontLoader_queueLoadingCallback(callback) {\n    function LoadLoader_completeRequest() {\n      assert(!request.end, 'completeRequest() cannot be called twice');\n      request.end = Date.now();\n\n      // sending all completed requests in order how they were queued\n      while (context.requests.length > 0 && context.requests[0].end) {\n        var otherRequest = context.requests.shift();\n        setTimeout(otherRequest.callback, 0);\n      }\n    }\n\n    var context = FontLoader.loadingContext;\n    var requestId = 'pdfjs-font-loading-' + (context.nextRequestId++);\n    var request = {\n      id: requestId,\n      complete: LoadLoader_completeRequest,\n      callback: callback,\n      started: Date.now()\n    };\n    context.requests.push(request);\n    return request;\n  },\n\n  prepareFontLoadEvent: function fontLoaderPrepareFontLoadEvent(rules,\n                                                                fonts,\n                                                                request) {\n      /** Hack begin */\n      // There's currently no event when a font has finished downloading so the\n      // following code is a dirty hack to 'guess' when a font is\n      // ready. It's assumed fonts are loaded in order, so add a known test\n      // font after the desired fonts and then test for the loading of that\n      // test font.\n\n      function int32(data, offset) {\n        return (data.charCodeAt(offset) << 24) |\n               (data.charCodeAt(offset + 1) << 16) |\n               (data.charCodeAt(offset + 2) << 8) |\n               (data.charCodeAt(offset + 3) & 0xff);\n      }\n\n      function string32(value) {\n        return String.fromCharCode((value >> 24) & 0xff) +\n               String.fromCharCode((value >> 16) & 0xff) +\n               String.fromCharCode((value >> 8) & 0xff) +\n               String.fromCharCode(value & 0xff);\n      }\n\n      function spliceString(s, offset, remove, insert) {\n        var chunk1 = data.substring(0, offset);\n        var chunk2 = data.substring(offset + remove);\n        return chunk1 + insert + chunk2;\n      }\n\n      var i, ii;\n\n      var canvas = document.createElement('canvas');\n      canvas.width = 1;\n      canvas.height = 1;\n      var ctx = canvas.getContext('2d');\n\n      var called = 0;\n      function isFontReady(name, callback) {\n        called++;\n        // With setTimeout clamping this gives the font ~100ms to load.\n        if(called > 30) {\n          warn('Load test font never loaded.');\n          callback();\n          return;\n        }\n        ctx.font = '30px ' + name;\n        ctx.fillText('.', 0, 20);\n        var imageData = ctx.getImageData(0, 0, 1, 1);\n        if (imageData.data[3] > 0) {\n          callback();\n          return;\n        }\n        setTimeout(isFontReady.bind(null, name, callback));\n      }\n\n      var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++;\n      // Chromium seems to cache fonts based on a hash of the actual font data,\n      // so the font must be modified for each load test else it will appear to\n      // be loaded already.\n      // TODO: This could maybe be made faster by avoiding the btoa of the full\n      // font by splitting it in chunks before hand and padding the font id.\n      var data = this.loadTestFont;\n      var COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n      data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length,\n                          loadTestFontId);\n      // CFF checksum is important for IE, adjusting it\n      var CFF_CHECKSUM_OFFSET = 16;\n      var XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n      var checksum = int32(data, CFF_CHECKSUM_OFFSET);\n      for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n        checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n      }\n      if (i < loadTestFontId.length) { // align to 4 bytes boundary\n        checksum = (checksum - XXXX_VALUE +\n                    int32(loadTestFontId + 'XXX', i)) | 0;\n      }\n      data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\n      var url = 'url(data:font/opentype;base64,' + btoa(data) + ');';\n      var rule = '@font-face { font-family:\"' + loadTestFontId + '\";src:' +\n                 url + '}';\n      FontLoader.insertRule(rule);\n\n      var names = [];\n      for (i = 0, ii = fonts.length; i < ii; i++) {\n        names.push(fonts[i].loadedName);\n      }\n      names.push(loadTestFontId);\n\n      var div = document.createElement('div');\n      div.setAttribute('style',\n                       'visibility: hidden;' +\n                       'width: 10px; height: 10px;' +\n                       'position: absolute; top: 0px; left: 0px;');\n      for (i = 0, ii = names.length; i < ii; ++i) {\n        var span = document.createElement('span');\n        span.textContent = 'Hi';\n        span.style.fontFamily = names[i];\n        div.appendChild(span);\n      }\n      document.body.appendChild(div);\n\n      isFontReady(loadTestFontId, function() {\n        document.body.removeChild(div);\n        request.complete();\n      });\n      /** Hack end */\n  }\n//#else\n//bind: function fontLoaderBind(fonts, callback) {\n//  assert(!isWorker, 'bind() shall be called from main thread');\n//\n//  for (var i = 0, ii = fonts.length; i < ii; i++) {\n//    var font = fonts[i];\n//    if (font.attached)\n//      continue;\n//\n//    font.attached = true;\n//    font.bindDOM()\n//  }\n//\n//  setTimeout(callback);\n//}\n//#endif\n};\n\nvar FontFace = (function FontFaceClosure() {\n  function FontFace(name, file, properties) {\n    this.compiledGlyphs = {};\n    if (arguments.length === 1) {\n      // importing translated data\n      var data = arguments[0];\n      for (var i in data) {\n        this[i] = data[i];\n      }\n      return;\n    }\n  }\n  FontFace.prototype = {\n    bindDOM: function FontFace_bindDOM() {\n      if (!this.data)\n        return null;\n\n      if (PDFJS.disableFontFace) {\n        this.disableFontFace = true;\n        return null;\n      }\n\n      var data = bytesToString(this.data);\n      var fontName = this.loadedName;\n\n      // Add the font-face rule to the document\n      var url = ('url(data:' + this.mimetype + ';base64,' +\n                 window.btoa(data) + ');');\n      var rule = '@font-face { font-family:\"' + fontName + '\";src:' + url + '}';\n\n      FontLoader.insertRule(rule);\n\n      if (PDFJS.pdfBug && 'FontInspector' in globalScope &&\n          globalScope['FontInspector'].enabled)\n        globalScope['FontInspector'].fontAdded(this, url);\n\n      return rule;\n    },\n    getPathGenerator: function (objs, character) {\n      if (!(character in this.compiledGlyphs)) {\n        var js = objs.get(this.loadedName + '_path_' + character);\n        /*jshint -W054 */\n        this.compiledGlyphs[character] = new Function('c', 'size', js);\n      }\n      return this.compiledGlyphs[character];\n    }\n  };\n  return FontFace;\n})();\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* globals Document, error, PDFJS */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use strict';\n\nvar Metadata = (PDFJS.Metadata = (function MetadataClosure() {\n   function fixMetadata(meta) {\n      return meta.replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n         var bytes = codes.replace(\n            /\\\\([0-3])([0-7])([0-7])/g,\n            function (code, d1, d2, d3) {\n               return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n            }\n         );\n         var chars = '';\n         for (var i = 0; i < bytes.length; i += 2) {\n            var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n            chars +=\n               code >= 32 &&\n               code < 127 &&\n               code != 60 &&\n               code != 62 &&\n               code != 38 &&\n               false\n                  ? String.fromCharCode(code)\n                  : '&#x' + (0x10000 + code).toString(16).substring(1) + ';';\n         }\n         return '>' + chars;\n      });\n   }\n\n   function Metadata(meta) {\n\tthis.metadata = {};\n\tif (typeof meta === 'string') {\n         // Ghostscript produces invalid metadata\n         meta = fixMetadata(meta);\n\t\t meta = meta.trim();\n\t\t if (meta.startsWith('<') && meta.endsWith('>')) {\n\t\t\tvar parser = new DOMParser();\n\t\t\tmeta = parser.parseFromString(meta, 'application/xml');\n\t\t\tthis.metaDocument = meta;\n\t\t\tthis.parse();\n\t\t }\n\t}\n   }\n\n   Metadata.prototype = {\n      parse: function Metadata_parse() {\n         var doc = this.metaDocument;\n         var rdf = doc.documentElement;\n\n         if (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n            // Wrapped in <xmpmeta>\n            rdf = rdf.firstChild;\n            while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf')\n               rdf = rdf.nextSibling;\n         }\n\n         var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n         if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) return;\n\n         var children = rdf.childNodes,\n            desc,\n            entry,\n            name,\n            i,\n            ii,\n            length,\n            iLength;\n\n         for (i = 0, length = children.length; i < length; i++) {\n            desc = children[i];\n            if (desc.nodeName.toLowerCase() !== 'rdf:description') continue;\n\n            for (ii = 0, iLength = desc.childNodes.length; ii < iLength; ii++) {\n               if (desc.childNodes[ii].nodeName.toLowerCase() !== '#text') {\n                  entry = desc.childNodes[ii];\n                  name = entry.nodeName.toLowerCase();\n                  this.metadata[name] = entry.textContent.trim();\n               }\n            }\n         }\n      },\n\n      get: function Metadata_get(name) {\n         return this.metadata[name] || null;\n      },\n\n      has: function Metadata_has(name) {\n         return typeof this.metadata[name] !== 'undefined';\n      },\n   };\n\n   return Metadata;\n})());\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals CanvasGraphics, combineUrl, createScratchCanvas, error,\n           FontLoader, globalScope, info, isArrayBuffer, loadJpegStream,\n           MessageHandler, PDFJS, Promise, StatTimer, warn,\n           PasswordResponses, Util, loadScript,\n           FontFace */\n\n'use strict';\n\n/**\n * The maximum allowed image size in total pixels e.g. width * height. Images\n * above this value will not be drawn. Use -1 for no limit.\n * @var {Number}\n */\nPDFJS.maxImageSize = PDFJS.maxImageSize === undefined ? -1 : PDFJS.maxImageSize;\n\n/**\n * By default fonts are converted to OpenType fonts and loaded via font face\n * rules. If disabled, the font will be rendered using a built in font renderer\n * that constructs the glyphs with primitive path commands.\n * @var {Boolean}\n */\nPDFJS.disableFontFace = PDFJS.disableFontFace === undefined ?\n                        false : PDFJS.disableFontFace;\n\n/**\n * Path for image resources, mainly for annotation icons. Include trailing\n * slash.\n * @var {String}\n */\nPDFJS.imageResourcesPath = PDFJS.imageResourcesPath === undefined ?\n                           '' : PDFJS.imageResourcesPath;\n\n/**\n * Disable the web worker and run all code on the main thread. This will happen\n * automatically if the browser doesn't support workers or sending typed arrays\n * to workers.\n * @var {Boolean}\n */\nPDFJS.disableWorker = PDFJS.disableWorker === undefined ?\n                      false : PDFJS.disableWorker;\n\n/**\n * Path and filename of the worker file. Required when the worker is enabled in\n * development mode. If unspecified in the production build, the worker will be\n * loaded based on the location of the pdf.js file.\n * @var {String}\n */\nPDFJS.workerSrc = PDFJS.workerSrc === undefined ? null : PDFJS.workerSrc;\n\n/**\n * Disable range request loading of PDF files. When enabled and if the server\n * supports partial content requests then the PDF will be fetched in chunks.\n * Enabled (false) by default.\n * @var {Boolean}\n */\nPDFJS.disableRange = PDFJS.disableRange === undefined ?\n                     false : PDFJS.disableRange;\n\n/**\n * Disable pre-fetching of PDF file data. When range requests are enabled PDF.js\n * will automatically keep fetching more data even if it isn't needed to display\n * the current page. This default behavior can be disabled.\n * @var {Boolean}\n */\nPDFJS.disableAutoFetch = PDFJS.disableAutoFetch === undefined ?\n                         false : PDFJS.disableAutoFetch;\n\n/**\n * Enables special hooks for debugging PDF.js.\n * @var {Boolean}\n */\nPDFJS.pdfBug = PDFJS.pdfBug === undefined ? false : PDFJS.pdfBug;\n\n/**\n * Enables transfer usage in postMessage for ArrayBuffers.\n * @var {boolean}\n */\nPDFJS.postMessageTransfers = PDFJS.postMessageTransfers === undefined ?\n                             true : PDFJS.postMessageTransfers;\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)\n * is used, which means it must follow the same origin rules that any XHR does\n * e.g. No cross domain requests without CORS.\n *\n * @param {string|TypedAray|object} source Can be an url to where a PDF is\n * located, a typed array (Uint8Array) already populated with data or\n * and parameter object with the following possible fields:\n *  - url   - The URL of the PDF.\n *  - data  - A typed array with PDF data.\n *  - httpHeaders - Basic authentication headers.\n *  - password - For decrypting password-protected PDFs.\n *  - initialData - A typed array with the first portion or all of the pdf data.\n *                  Used by the extension since some data is already loaded\n *                  before the switch to range requests.\n *\n * @param {object} pdfDataRangeTransport is optional. It is used if you want\n * to manually serve range requests for data in the PDF. See viewer.js for\n * an example of pdfDataRangeTransport's interface.\n *\n * @param {function} passwordCallback is optional. It is used to request a\n * password if wrong or no password was provided. The callback receives two\n * parameters: function that needs to be called with new password and reason\n * (see {PasswordResponses}).\n *\n * @return {Promise} A promise that is resolved with {PDFDocumentProxy} object.\n */\nPDFJS.getDocument = function getDocument(source,\n                                         pdfDataRangeTransport,\n                                         passwordCallback,\n                                         progressCallback) {\n  var workerInitializedPromise, workerReadyPromise, transport;\n\n  if (typeof source === 'string') {\n    source = { url: source };\n  } else if (isArrayBuffer(source)) {\n    source = { data: source };\n  } else if (typeof source !== 'object') {\n    error('Invalid parameter in getDocument, need either Uint8Array, ' +\n          'string or a parameter object');\n  }\n\n  if (!source.url && !source.data)\n    error('Invalid parameter array, need either .data or .url');\n\n  // copy/use all keys as is except 'url' -- full path is required\n  var params = {};\n  for (var key in source) {\n    if (key === 'url' && typeof window !== 'undefined') {\n      params[key] = combineUrl(window.location.href, source[key]);\n      continue;\n    }\n    params[key] = source[key];\n  }\n\n  workerInitializedPromise = new PDFJS.Promise();\n  workerReadyPromise = new PDFJS.Promise();\n  transport = new WorkerTransport(workerInitializedPromise,\n      workerReadyPromise, pdfDataRangeTransport, progressCallback);\n  workerInitializedPromise.then(function transportInitialized() {\n    transport.passwordCallback = passwordCallback;\n    transport.fetchDocument(params);\n  });\n  return workerReadyPromise;\n};\n\n/**\n * Proxy to a PDFDocument in the worker thread. Also, contains commonly used\n * properties that can be read synchronously.\n */\nvar PDFDocumentProxy = (function PDFDocumentProxyClosure() {\n  function PDFDocumentProxy(pdfInfo, transport) {\n    this.pdfInfo = pdfInfo;\n    this.transport = transport;\n  }\n  PDFDocumentProxy.prototype = {\n    /**\n     * @return {number} Total number of pages the PDF contains.\n     */\n    get numPages() {\n      return this.pdfInfo.numPages;\n    },\n    /**\n     * @return {string} A unique ID to identify a PDF. Not guaranteed to be\n     * unique.\n     */\n    get fingerprint() {\n      return this.pdfInfo.fingerprint;\n    },\n    /**\n     * @return {boolean} true if embedded document fonts are in use. Will be\n     * set during rendering of the pages.\n     */\n    get embeddedFontsUsed() {\n      return this.transport.embeddedFontsUsed;\n    },\n    /**\n     * @param {number} The page number to get. The first page is 1.\n     * @return {Promise} A promise that is resolved with a {PDFPageProxy}\n     * object.\n     */\n    getPage: function PDFDocumentProxy_getPage(number) {\n      return this.transport.getPage(number);\n    },\n    /**\n     * @param {object} Must have 'num' and 'gen' properties.\n     * @return {Promise} A promise that is resolved with the page index that is\n     * associated with the reference.\n     */\n    getPageIndex: function PDFDocumentProxy_getPageIndex(ref) {\n      return this.transport.getPageIndex(ref);\n    },\n    /**\n     * @return {Promise} A promise that is resolved with a lookup table for\n     * mapping named destinations to reference numbers.\n     */\n    getDestinations: function PDFDocumentProxy_getDestinations() {\n      return this.transport.getDestinations();\n    },\n    /**\n     * @return {Promise} A promise that is resolved with an array of all the\n     * JavaScript strings in the name tree.\n     */\n    getJavaScript: function PDFDocumentProxy_getDestinations() {\n      var promise = new PDFJS.Promise();\n      var js = this.pdfInfo.javaScript;\n      promise.resolve(js);\n      return promise;\n    },\n    /**\n     * @return {Promise} A promise that is resolved with an {array} that is a\n     * tree outline (if it has one) of the PDF. The tree is in the format of:\n     * [\n     *  {\n     *   title: string,\n     *   bold: boolean,\n     *   italic: boolean,\n     *   color: rgb array,\n     *   dest: dest obj,\n     *   items: array of more items like this\n     *  },\n     *  ...\n     * ].\n     */\n    getOutline: function PDFDocumentProxy_getOutline() {\n      var promise = new PDFJS.Promise();\n      var outline = this.pdfInfo.outline;\n      promise.resolve(outline);\n      return promise;\n    },\n    /**\n     * @return {Promise} A promise that is resolved with an {object} that has\n     * info and metadata properties.  Info is an {object} filled with anything\n     * available in the information dictionary and similarly metadata is a\n     * {Metadata} object with information from the metadata section of the PDF.\n     */\n    getMetadata: function PDFDocumentProxy_getMetadata() {\n      var promise = new PDFJS.Promise();\n      var info = this.pdfInfo.info;\n      var metadata = this.pdfInfo.metadata;\n      promise.resolve({\n        info: info,\n        metadata: metadata ? new PDFJS.Metadata(metadata) : null\n      });\n      return promise;\n    },\n    isEncrypted: function PDFDocumentProxy_isEncrypted() {\n      var promise = new PDFJS.Promise();\n      promise.resolve(this.pdfInfo.encrypted);\n      return promise;\n    },\n    /**\n     * @return {Promise} A promise that is resolved with a TypedArray that has\n     * the raw data from the PDF.\n     */\n    getData: function PDFDocumentProxy_getData() {\n      var promise = new PDFJS.Promise();\n      this.transport.getData(promise);\n      return promise;\n    },\n    /**\n     * @return {Promise} A promise that is resolved when the document's data\n     * is loaded\n     */\n    dataLoaded: function PDFDocumentProxy_dataLoaded() {\n      return this.transport.dataLoaded();\n    },\n    cleanup: function PDFDocumentProxy_cleanup() {\n      this.transport.startCleanup();\n    },\n    destroy: function PDFDocumentProxy_destroy() {\n      this.transport.destroy();\n    }\n  };\n  return PDFDocumentProxy;\n})();\n\nvar PDFPageProxy = (function PDFPageProxyClosure() {\n  function PDFPageProxy(pageInfo, transport) {\n    this.pageInfo = pageInfo;\n    this.transport = transport;\n    this.stats = new StatTimer();\n    this.stats.enabled = !!globalScope.PDFJS.enableStats;\n    this.commonObjs = transport.commonObjs;\n    this.objs = new PDFObjects();\n    this.receivingOperatorList  = false;\n    this.cleanupAfterRender = false;\n    this.pendingDestroy = false;\n    this.renderTasks = [];\n  }\n  PDFPageProxy.prototype = {\n    /**\n     * @return {number} Page number of the page. First page is 1.\n     */\n    get pageNumber() {\n      return this.pageInfo.pageIndex + 1;\n    },\n    /**\n     * @return {number} The number of degrees the page is rotated clockwise.\n     */\n    get rotate() {\n      return this.pageInfo.rotate;\n    },\n    /**\n     * @return {object} The reference that points to this page. It has 'num' and\n     * 'gen' properties.\n     */\n    get ref() {\n      return this.pageInfo.ref;\n    },\n    /**\n     * @return {array} An array of the visible portion of the PDF page in the\n     * user space units - [x1, y1, x2, y2].\n     */\n    get view() {\n      return this.pageInfo.view;\n    },\n    /**\n     * @param {number} scale The desired scale of the viewport.\n     * @param {number} rotate Degrees to rotate the viewport. If omitted this\n     * defaults to the page rotation.\n     * @return {PageViewport} Contains 'width' and 'height' properties along\n     * with transforms required for rendering.\n     */\n    getViewport: function PDFPageProxy_getViewport(scale, rotate) {\n      if (arguments.length < 2)\n        rotate = this.rotate;\n      return new PDFJS.PageViewport(this.view, scale, rotate, 0, 0);\n    },\n    /**\n     * @return {Promise} A promise that is resolved with an {array} of the\n     * annotation objects.\n     */\n    getAnnotations: function PDFPageProxy_getAnnotations() {\n      if (this.annotationsPromise)\n        return this.annotationsPromise;\n\n      var promise = new PDFJS.Promise();\n      this.annotationsPromise = promise;\n      this.transport.getAnnotations(this.pageInfo.pageIndex);\n      return promise;\n    },\n    /**\n     * Begins the process of rendering a page to the desired context.\n     * @param {object} params A parameter object that supports:\n     * {\n     *   canvasContext(required): A 2D context of a DOM Canvas object.,\n     *   textLayer(optional): An object that has beginLayout, endLayout, and\n     *                        appendText functions.,\n     *   imageLayer(optional): An object that has beginLayout, endLayout and\n     *                         appendImage functions.,\n     *   continueCallback(optional): A function that will be called each time\n     *                               the rendering is paused.  To continue\n     *                               rendering call the function that is the\n     *                               first argument to the callback.\n     * }.\n     * @return {RenderTask} An extended promise that is resolved when the page\n     * finishes rendering (see RenderTask).\n     */\n    render: function PDFPageProxy_render(params) {\n      var stats = this.stats;\n      stats.time('Overall');\n\n      // If there was a pending destroy cancel it so no cleanup happens during\n      // this call to render.\n      this.pendingDestroy = false;\n\n      // If there is no displayReadyPromise yet, then the operatorList was never\n      // requested before. Make the request and create the promise.\n      if (!this.displayReadyPromise) {\n        this.receivingOperatorList = true;\n        this.displayReadyPromise = new Promise();\n        this.operatorList = {\n          fnArray: [],\n          argsArray: [],\n          lastChunk: false\n        };\n\n        this.stats.time('Page Request');\n        this.transport.messageHandler.send('RenderPageRequest', {\n          pageIndex: this.pageNumber - 1\n        });\n      }\n\n      var internalRenderTask = new InternalRenderTask(complete, params,\n                                       this.objs, this.commonObjs,\n                                       this.operatorList, this.pageNumber);\n      this.renderTasks.push(internalRenderTask);\n      var renderTask = new RenderTask(internalRenderTask);\n\n      var self = this;\n      this.displayReadyPromise.then(\n        function pageDisplayReadyPromise(transparency) {\n          if (self.pendingDestroy) {\n            complete();\n            return;\n          }\n          stats.time('Rendering');\n          try {//MQZ. catch canvas drawing exceptions\n            internalRenderTask.initalizeGraphics(transparency);\n            internalRenderTask.operatorListChanged();\n          }\n          catch(err) {\n            complete(err);\n          }\n        },\n        function pageDisplayReadPromiseError(reason) {\n          complete(reason);\n        }\n      );\n\n      function complete(error) {\n        var i = self.renderTasks.indexOf(internalRenderTask);\n        if (i >= 0) {\n          self.renderTasks.splice(i, 1);\n        }\n\n        if (self.cleanupAfterRender) {\n          self.pendingDestroy = true;\n        }\n        self._tryDestroy();\n\n        if (error) {\n          renderTask.reject(error);\n        } else {\n          renderTask.resolve();\n        }\n        stats.timeEnd('Rendering');\n        stats.timeEnd('Overall');\n      }\n\n      return renderTask;\n    },\n    /**\n     * @return {Promise} That is resolved with the a {string} that is the text\n     * content from the page.\n     */\n    getTextContent: function PDFPageProxy_getTextContent() {\n      var promise = new PDFJS.Promise();\n      this.transport.messageHandler.send('GetTextContent', {\n          pageIndex: this.pageNumber - 1\n        },\n        function textContentCallback(textContent) {\n          promise.resolve(textContent);\n        }\n      );\n      return promise;\n    },\n    /**\n     * Stub for future feature.\n     */\n    getOperationList: function PDFPageProxy_getOperationList() {\n      var promise = new PDFJS.Promise();\n      var operationList = { // not implemented\n        dependencyFontsID: null,\n        operatorList: null\n      };\n      promise.resolve(operationList);\n      return promise;\n    },\n    /**\n     * Destroys resources allocated by the page.\n     */\n    destroy: function PDFPageProxy_destroy() {\n      this.pendingDestroy = true;\n      this._tryDestroy();\n    },\n    /**\n     * For internal use only. Attempts to clean up if rendering is in a state\n     * where that's possible.\n     */\n    _tryDestroy: function PDFPageProxy__destroy() {\n      if (!this.pendingDestroy ||\n          this.renderTasks.length !== 0 ||\n          this.receivingOperatorList) {\n        return;\n      }\n\n      delete this.operatorList;\n      delete this.displayReadyPromise;\n      this.objs.clear();\n      this.pendingDestroy = false;\n    },\n    /**\n     * For internal use only.\n     */\n    _startRenderPage: function PDFPageProxy_startRenderPage(transparency) {\n      this.displayReadyPromise.resolve(transparency);\n    },\n    /**\n     * For internal use only.\n     */\n    _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk) {\n      // Add the new chunk to the current operator list.\n      for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {\n        this.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n        this.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n      }\n      this.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n      // Notify all the rendering tasks there are more operators to be consumed.\n      for (var i = 0; i < this.renderTasks.length; i++) {\n        this.renderTasks[i].operatorListChanged();\n      }\n\n      if (operatorListChunk.lastChunk) {\n        this.receivingOperatorList = false;\n        this._tryDestroy();\n      }\n    }\n  };\n  return PDFPageProxy;\n})();\n/**\n * For internal use only.\n */\nvar WorkerTransport = (function WorkerTransportClosure() {\n  function WorkerTransport(workerInitializedPromise, workerReadyPromise,\n      pdfDataRangeTransport, progressCallback) {\n    this.pdfDataRangeTransport = pdfDataRangeTransport;\n\n    this.workerReadyPromise = workerReadyPromise;\n    this.progressCallback = progressCallback;\n    this.commonObjs = new PDFObjects();\n\n    this.pageCache = [];\n    this.pagePromises = [];\n    this.embeddedFontsUsed = false;\n\n    this.passwordCallback = null;\n\n    // If worker support isn't disabled explicit and the browser has worker\n    // support, create a new web worker and test if it/the browser fullfills\n    // all requirements to run parts of pdf.js in a web worker.\n    // Right now, the requirement is, that an Uint8Array is still an Uint8Array\n    // as it arrives on the worker. Chrome added this with version 15.\n    if (!globalScope.PDFJS.disableWorker && typeof Worker !== 'undefined') {\n      var workerSrc = PDFJS.workerSrc;\n      if (!workerSrc) {\n        error('No PDFJS.workerSrc specified');\n      }\n\n      try {\n        // Some versions of FF can't create a worker on localhost, see:\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n        var worker = new Worker(workerSrc);\n        var messageHandler = new MessageHandler('main', worker);\n        this.messageHandler = messageHandler;\n\n        messageHandler.on('test', function transportTest(data) {\n          var supportTypedArray = data && data.supportTypedArray;\n          if (supportTypedArray) {\n            this.worker = worker;\n            if (!data.supportTransfers) {\n              PDFJS.postMessageTransfers = false;\n            }\n            this.setupMessageHandler(messageHandler);\n            workerInitializedPromise.resolve();\n          } else {\n            globalScope.PDFJS.disableWorker = true;\n            this.loadFakeWorkerFiles().then(function() {\n              this.setupFakeWorker();\n              workerInitializedPromise.resolve();\n            }.bind(this));\n          }\n        }.bind(this));\n\n        var testObj = new Uint8Array([PDFJS.postMessageTransfers ? 255 : 0]);\n        // Some versions of Opera throw a DATA_CLONE_ERR on serializing the\n        // typed array. Also, checking if we can use transfers.\n        try {\n          messageHandler.send('test', testObj, null, [testObj.buffer]);\n        } catch (ex) {\n          info('Cannot use postMessage transfers');\n          testObj[0] = 0;\n          messageHandler.send('test', testObj);\n        }\n        return;\n      } catch (e) {\n        info('The worker has been disabled.');\n      }\n    }\n    // Either workers are disabled, not supported or have thrown an exception.\n    // Thus, we fallback to a faked worker.\n    globalScope.PDFJS.disableWorker = true;\n    this.loadFakeWorkerFiles().then(function() {\n      this.setupFakeWorker();\n      workerInitializedPromise.resolve();\n    }.bind(this));\n  }\n  WorkerTransport.prototype = {\n    destroy: function WorkerTransport_destroy() {\n      this.pageCache = [];\n      this.pagePromises = [];\n      var self = this;\n      this.messageHandler.send('Terminate', null, function () {\n        if (self.worker) {\n          self.worker.terminate();\n        }\n      });\n    },\n\n    loadFakeWorkerFiles: function WorkerTransport_loadFakeWorkerFiles() {\n      if (!PDFJS.fakeWorkerFilesLoadedPromise) {\n        PDFJS.fakeWorkerFilesLoadedPromise = new Promise();\n        // In the developer build load worker_loader which in turn loads all the\n        // other files and resolves the promise. In production only the\n        // pdf.worker.js file is needed.\n//#if !PRODUCTION\n//MQZ Dec.03.2013 Disable loadScript\n      if (globalScope.PDFJS.disableWorker) {\n          PDFJS.fakeWorkerFilesLoadedPromise.resolve();\n      }\n      else {\n        Util.loadScript(PDFJS.workerSrc);\n      }\n//#else\n//      Util.loadScript(PDFJS.workerSrc, function() {\n//        PDFJS.fakeWorkerFilesLoadedPromise.resolve();\n//      });\n//#endif\n      }\n      return PDFJS.fakeWorkerFilesLoadedPromise;\n    },\n\n    setupFakeWorker: function WorkerTransport_setupFakeWorker() {\n      warn('Setting up fake worker.');\n      // If we don't use a worker, just post/sendMessage to the main thread.\n      var fakeWorker = {\n        postMessage: function WorkerTransport_postMessage(obj) {\n          fakeWorker.onmessage({data: obj});\n        },\n        terminate: function WorkerTransport_terminate() {}\n      };\n\n      var messageHandler = new MessageHandler('main', fakeWorker);\n      this.setupMessageHandler(messageHandler);\n\n      // If the main thread is our worker, setup the handling for the messages\n      // the main thread sends to it self.\n      PDFJS.WorkerMessageHandler.setup(messageHandler);\n    },\n\n    setupMessageHandler:\n      function WorkerTransport_setupMessageHandler(messageHandler) {\n      this.messageHandler = messageHandler;\n\n      function updatePassword(password) {\n        messageHandler.send('UpdatePassword', password);\n      }\n\n      var pdfDataRangeTransport = this.pdfDataRangeTransport;\n      if (pdfDataRangeTransport) {\n        pdfDataRangeTransport.addRangeListener(function(begin, chunk) {\n          messageHandler.send('OnDataRange', {\n            begin: begin,\n            chunk: chunk\n          });\n        });\n\n        pdfDataRangeTransport.addProgressListener(function(loaded) {\n          messageHandler.send('OnDataProgress', {\n            loaded: loaded\n          });\n        });\n\n        messageHandler.on('RequestDataRange',\n          function transportDataRange(data) {\n            pdfDataRangeTransport.requestDataRange(data.begin, data.end);\n          }, this);\n      }\n\n      messageHandler.on('GetDoc', function transportDoc(data) {\n        var pdfInfo = data.pdfInfo;\n        var pdfDocument = new PDFDocumentProxy(pdfInfo, this);\n        this.pdfDocument = pdfDocument;\n        this.workerReadyPromise.resolve(pdfDocument);\n      }, this);\n\n      messageHandler.on('NeedPassword', function transportPassword(data) {\n        if (this.passwordCallback) {\n          return this.passwordCallback(updatePassword,\n                                       PasswordResponses.NEED_PASSWORD);\n        }\n        this.workerReadyPromise.reject(data.exception.message, data.exception);\n      }, this);\n\n      messageHandler.on('IncorrectPassword', function transportBadPass(data) {\n        if (this.passwordCallback) {\n          return this.passwordCallback(updatePassword,\n                                       PasswordResponses.INCORRECT_PASSWORD);\n        }\n        this.workerReadyPromise.reject(data.exception.message, data.exception);\n      }, this);\n\n      messageHandler.on('InvalidPDF', function transportInvalidPDF(data) {\n        this.workerReadyPromise.reject(data.exception.name, data.exception);\n      }, this);\n\n      messageHandler.on('MissingPDF', function transportMissingPDF(data) {\n        this.workerReadyPromise.reject(data.exception.message, data.exception);\n      }, this);\n\n      messageHandler.on('UnknownError', function transportUnknownError(data) {\n        this.workerReadyPromise.reject(data.exception.message, data.exception);\n      }, this);\n\n      messageHandler.on('GetPage', function transportPage(data) {\n        var pageInfo = data.pageInfo;\n        var page = new PDFPageProxy(pageInfo, this);\n        this.pageCache[pageInfo.pageIndex] = page;\n        var promise = this.pagePromises[pageInfo.pageIndex];\n        promise.resolve(page);\n      }, this);\n\n      messageHandler.on('GetAnnotations', function transportAnnotations(data) {\n        var annotations = data.annotations;\n        var promise = this.pageCache[data.pageIndex].annotationsPromise;\n        promise.resolve(annotations);\n      }, this);\n\n      messageHandler.on('StartRenderPage', function transportRender(data) {\n        var page = this.pageCache[data.pageIndex];\n\n        page.stats.timeEnd('Page Request');\n        page._startRenderPage(data.transparency);\n      }, this);\n\n      messageHandler.on('RenderPageChunk', function transportRender(data) {\n        var page = this.pageCache[data.pageIndex];\n\n        page._renderPageChunk(data.operatorList);\n      }, this);\n\n      messageHandler.on('commonobj', function transportObj(data) {\n        var id = data[0];\n        var type = data[1];\n        if (this.commonObjs.hasData(id))\n          return;\n\n        switch (type) {\n            case 'Font':\n            var exportedData = data[2];\n\n            var font;\n            if ('error' in exportedData) {\n              var error = exportedData.error;\n//MQZ. Dec.03.2013 no FontLoader\n//              warn('Error during font loading: ' + error);\n              this.commonObjs.resolve(id, error);\n              break;\n            } else {\n              font = new FontFace(exportedData);\n            }\n\n//MQZ Dec.03.2013 disable FontLoader\n//            FontLoader.bind(\n//              [font],\n//              function fontReady(fontObjs) {\n                this.commonObjs.resolve(id, font);\n//              }.bind(this)\n//            );\n            break;\n          case 'FontPath':\n            this.commonObjs.resolve(id, data[2]);\n            break;\n          default:\n            error('Got unknown common object type ' + type);\n        }\n      }, this);\n\n      messageHandler.on('obj', function transportObj(data) {\n        var id = data[0];\n        var pageIndex = data[1];\n        var type = data[2];\n        var pageProxy = this.pageCache[pageIndex];\n        if (pageProxy.objs.hasData(id))\n          return;\n\n        switch (type) {\n          case 'JpegStream':\n            var imageData = data[3];\n            loadJpegStream(id, imageData, pageProxy.objs);\n            break;\n          case 'Image':\n            var imageData = data[3];\n            pageProxy.objs.resolve(id, imageData);\n\n            // heuristics that will allow not to store large data\n            var MAX_IMAGE_SIZE_TO_STORE = 8000000;\n            if ('data' in imageData &&\n                imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n              pageProxy.cleanupAfterRender = true;\n            }\n            break;\n          default:\n            error('Got unknown object type ' + type);\n        }\n      }, this);\n\n      messageHandler.on('DocProgress', function transportDocProgress(data) {\n        if (this.progressCallback) {\n          this.progressCallback({\n            loaded: data.loaded,\n            total: data.total\n          });\n        }\n      }, this);\n\n      messageHandler.on('DocError', function transportDocError(data) {\n        this.workerReadyPromise.reject(data);\n      }, this);\n\n      messageHandler.on('PageError', function transportError(data) {\n        var page = this.pageCache[data.pageNum - 1];\n        if (page.displayReadyPromise)\n          page.displayReadyPromise.reject(data.error);\n        else\n          error(data.error);\n      }, this);\n\n      messageHandler.on('JpegDecode', function(data, promise) {\n        var imageUrl = data[0];\n        var components = data[1];\n        if (components != 3 && components != 1)\n          error('Only 3 component or 1 component can be returned');\n\n        var img = new Image();\n        img.onload = (function messageHandler_onloadClosure() {\n          var width = img.width;\n          var height = img.height;\n          var size = width * height;\n          var rgbaLength = size * 4;\n          var buf = new Uint8Array(size * components);\n          var tmpCanvas = createScratchCanvas(width, height);\n          var tmpCtx = tmpCanvas.getContext('2d');\n          tmpCtx.drawImage(img, 0, 0);\n          var data = tmpCtx.getImageData(0, 0, width, height).data;\n\n          if (components == 3) {\n            for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n              buf[j] = data[i];\n              buf[j + 1] = data[i + 1];\n              buf[j + 2] = data[i + 2];\n            }\n          } else if (components == 1) {\n            for (var i = 0, j = 0; i < rgbaLength; i += 4, j++) {\n              buf[j] = data[i];\n            }\n          }\n          promise.resolve({ data: buf, width: width, height: height});\n        }).bind(this);\n//MQZ. Oct.17.2012 - disable image drawing\n//          img.src = imageUrl;\n          img.src = 'data:image/jpeg;base64,' + img.btoa(imageUrl);\n      });\n    },\n\n    fetchDocument: function WorkerTransport_fetchDocument(source) {\n      source.disableAutoFetch = PDFJS.disableAutoFetch;\n      source.chunkedViewerLoading = !!this.pdfDataRangeTransport;\n      this.messageHandler.send('GetDocRequest', {\n        source: source,\n        disableRange: PDFJS.disableRange,\n        maxImageSize: PDFJS.maxImageSize,\n        disableFontFace: PDFJS.disableFontFace\n      });\n    },\n\n    getData: function WorkerTransport_getData(promise) {\n      this.messageHandler.send('GetData', null, function(data) {\n        promise.resolve(data);\n      });\n    },\n\n    dataLoaded: function WorkerTransport_dataLoaded() {\n      var promise = new PDFJS.Promise();\n      this.messageHandler.send('DataLoaded', null, function(args) {\n        promise.resolve(args);\n      });\n      return promise;\n    },\n\n    getPage: function WorkerTransport_getPage(pageNumber, promise) {\n      var pageIndex = pageNumber - 1;\n      if (pageIndex in this.pagePromises)\n        return this.pagePromises[pageIndex];\n      var promise = new PDFJS.Promise('Page ' + pageNumber);\n      this.pagePromises[pageIndex] = promise;\n      this.messageHandler.send('GetPageRequest', { pageIndex: pageIndex });\n      return promise;\n    },\n\n    getPageIndex: function WorkerTransport_getPageIndexByRef(ref) {\n      var promise = new PDFJS.Promise();\n      this.messageHandler.send('GetPageIndex', { ref: ref },\n        function (pageIndex) {\n          promise.resolve(pageIndex);\n        }\n      );\n      return promise;\n    },\n\n    getAnnotations: function WorkerTransport_getAnnotations(pageIndex) {\n      this.messageHandler.send('GetAnnotationsRequest',\n        { pageIndex: pageIndex });\n    },\n\n    getDestinations: function WorkerTransport_getDestinations() {\n      var promise = new PDFJS.Promise();\n      this.messageHandler.send('GetDestinations', null,\n        function transportDestinations(destinations) {\n          promise.resolve(destinations);\n        }\n      );\n      return promise;\n    },\n\n    startCleanup: function WorkerTransport_startCleanup() {\n      this.messageHandler.send('Cleanup', null,\n        function endCleanup() {\n          for (var i = 0, ii = this.pageCache.length; i < ii; i++) {\n            var page = this.pageCache[i];\n            if (page) {\n              page.destroy();\n            }\n          }\n          this.commonObjs.clear();\n//MQZ Dec.03.2013 disable FontLoader\n//          FontLoader.clear();\n        }.bind(this)\n      );\n    }\n  };\n  return WorkerTransport;\n\n})();\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects\n * for fonts, images, rendering code and such. These objects might get processed\n * inside of a worker. The `PDFObjects` implements some basic functions to\n * manage these objects.\n */\nvar PDFObjects = (function PDFObjectsClosure() {\n  function PDFObjects() {\n    this.objs = {};\n  }\n\n  PDFObjects.prototype = {\n    /**\n     * Internal function.\n     * Ensures there is an object defined for `objId`.\n     */\n    ensureObj: function PDFObjects_ensureObj(objId) {\n      if (this.objs[objId])\n        return this.objs[objId];\n\n      var obj = {\n        promise: new Promise(objId),\n        data: null,\n        resolved: false\n      };\n      this.objs[objId] = obj;\n\n      return obj;\n    },\n\n    /**\n     * If called *without* callback, this returns the data of `objId` but the\n     * object needs to be resolved. If it isn't, this function throws.\n     *\n     * If called *with* a callback, the callback is called with the data of the\n     * object once the object is resolved. That means, if you call this\n     * function and the object is already resolved, the callback gets called\n     * right away.\n     */\n    get: function PDFObjects_get(objId, callback) {\n      // If there is a callback, then the get can be async and the object is\n      // not required to be resolved right now\n      if (callback) {\n        this.ensureObj(objId).promise.then(callback);\n        return null;\n      }\n\n      // If there isn't a callback, the user expects to get the resolved data\n      // directly.\n      var obj = this.objs[objId];\n\n      // If there isn't an object yet or the object isn't resolved, then the\n      // data isn't ready yet!\n\t  if (!obj || !obj.resolved) { // fix issue #255, keep moving on, test PDF is i255_emojis.pdf\n\t\t// error('Requesting object that isn\\'t resolved yet ' + objId)\n\t    warn('Requesting object that isn\\'t resolved yet ' + objId);\n\t\treturn null;\n\t  }\n      return obj.data;\n    },\n\n    /**\n     * Resolves the object `objId` with optional `data`.\n     */\n    resolve: function PDFObjects_resolve(objId, data) {\n      var obj = this.ensureObj(objId);\n\n      obj.resolved = true;\n      obj.data = data;\n      obj.promise.resolve(data);\n    },\n\n    isResolved: function PDFObjects_isResolved(objId) {\n      var objs = this.objs;\n\n      if (!objs[objId]) {\n        return false;\n      } else {\n        return objs[objId].resolved;\n      }\n    },\n\n    hasData: function PDFObjects_hasData(objId) {\n      return this.isResolved(objId);\n    },\n\n    /**\n     * Returns the data of `objId` if object exists, null otherwise.\n     */\n    getData: function PDFObjects_getData(objId) {\n      var objs = this.objs;\n      if (!objs[objId] || !objs[objId].resolved) {\n        return null;\n      } else {\n        return objs[objId].data;\n      }\n    },\n\n    clear: function PDFObjects_clear() {\n      this.objs = {};\n    }\n  };\n  return PDFObjects;\n})();\n/*\n * RenderTask is basically a promise but adds a cancel function to terminate it.\n */\nvar RenderTask = (function RenderTaskClosure() {\n  function RenderTask(internalRenderTask) {\n    this.internalRenderTask = internalRenderTask;\n    Promise.call(this);\n  }\n\n  RenderTask.prototype = Object.create(Promise.prototype);\n\n  /**\n   * Cancel the rendering task. If the task is curently rendering it will not be\n   * cancelled until graphics pauses with a timeout. The promise that this\n   * object extends will resolved when cancelled.\n   */\n  RenderTask.prototype.cancel = function RenderTask_cancel() {\n    this.internalRenderTask.cancel();\n  };\n\n  return RenderTask;\n})();\n\nvar InternalRenderTask = (function InternalRenderTaskClosure() {\n\n  function InternalRenderTask(callback, params, objs, commonObjs, operatorList,\n                              pageNumber) {\n    this.callback = callback;\n    this.params = params;\n    this.objs = objs;\n    this.commonObjs = commonObjs;\n    this.operatorListIdx = null;\n    this.operatorList = operatorList;\n    this.pageNumber = pageNumber;\n    this.running = false;\n    this.graphicsReadyCallback = null;\n    this.graphicsReady = false;\n    this.cancelled = false;\n  }\n\n  InternalRenderTask.prototype = {\n\n    initalizeGraphics:\n        function InternalRenderTask_initalizeGraphics(transparency) {\n\n      if (this.cancelled) {\n        return;\n      }\n      if (PDFJS.pdfBug && 'StepperManager' in globalScope &&\n          globalScope.StepperManager.enabled) {\n        this.stepper = globalScope.StepperManager.create(this.pageNumber - 1);\n        this.stepper.init(this.operatorList);\n        this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n      }\n\n      var params = this.params;\n      this.gfx = new CanvasGraphics(params.canvasContext, this.commonObjs,\n                                    this.objs, params.textLayer,\n                                    params.imageLayer);\n\n      this.gfx.beginDrawing(params.viewport, transparency);\n      this.operatorListIdx = 0;\n      this.graphicsReady = true;\n      if (this.graphicsReadyCallback) {\n        this.graphicsReadyCallback();\n      }\n    },\n\n    cancel: function InternalRenderTask_cancel() {\n      this.running = false;\n      this.cancelled = true;\n      this.callback('cancelled');\n    },\n\n    operatorListChanged: function InternalRenderTask_operatorListChanged() {\n      if (!this.graphicsReady) {\n        if (!this.graphicsReadyCallback) {\n          this.graphicsReadyCallback = this._continue.bind(this);\n        }\n        return;\n      }\n\n      if (this.stepper) {\n        this.stepper.updateOperatorList(this.operatorList);\n      }\n\n      if (this.running) {\n        return;\n      }\n      this._continue();\n    },\n\n    _continue: function InternalRenderTask__continue() {\n      this.running = true;\n      if (this.cancelled) {\n        return;\n      }\n      if (this.params.continueCallback) {\n        this.params.continueCallback(this._next.bind(this));\n      } else {\n        this._next();\n      }\n    },\n\n    _next: function InternalRenderTask__next() {\n      if (this.cancelled) {\n        return;\n      }\n      this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList,\n                                        this.operatorListIdx,\n                                        this._continue.bind(this),\n                                        this.stepper);\n      if (this.operatorListIdx === this.operatorList.argsArray.length) {\n        this.running = false;\n        if (this.operatorList.lastChunk) {\n          this.gfx.endDrawing();\n          this.callback();\n        }\n      }\n    }\n\n  };\n\n  return InternalRenderTask;\n})();\n\n  ","import process from \"process\";\nimport console from \"console\";\nimport fs from \"fs\";\nimport nodeUtil from \"util\";\nimport { EventEmitter } from \"events\";\n\nimport { _PARSER_SIG } from \"./pkinfo.js\";\nimport PDFField from \"./pdffield.js\";\nimport PDFFont from \"./pdffont.js\";\nimport PDFUnit from \"./pdfunit.js\";\nimport PTIXmlParser from \"./ptixmlinject.js\";\nimport { createScratchCanvas } from \"./pdfcanvas.js\";\n\nimport { PDFJS } from \"./pdfjs-code.js\"; // created via `npm run build`\n\n//start of helper classes\nclass PDFPageParser {\n\t//static\n\tstatic RenderingStates = {\n\t\tINITIAL: 0,\n\t\tRUNNING: 1,\n\t\tPAUSED: 2,\n\t\tFINISHED: 3,\n\t};\n\n\t//public\n\tid = -1;\n\tpdfPage = null;\n\tptiParser = null;\n\tscale = 0;\n\tviewport = null;\n\trenderingState = -1;\n\n\tFields = null;\n\tBoxsets = null;\n\tctxCanvas = null;\n\n\t#_addField(field) {\n\t\tif (!PDFField.isFormElement(field)) {\n\t\t\tnodeUtil.p2jwarn(\"NOT valid form element\", field);\n\t\t\treturn;\n\t\t}\n\n\t\tconst oneField = new PDFField(\n\t\t\tfield,\n\t\t\tthis.viewport,\n\t\t\tthis.Fields,\n\t\t\tthis.Boxsets\n\t\t);\n\t\toneField.processField();\n\t}\n\n\t// constructor\n\tconstructor(pdfPage, id, scale, ptiParser) {\n\t\t// public, this instance copies\n\t\tthis.id = id;\n\t\tthis.pdfPage = pdfPage;\n\t\tthis.ptiParser = ptiParser;\n\n\t\tthis.scale = scale || 1.0;\n\n\t\t//leave out the 2nd parameter in order to use page's default rotation (for both portrait and landscape form)\n\t\tthis.viewport = this.pdfPage.getViewport(this.scale);\n\n\t\tthis.renderingState = PDFPageParser.RenderingStates.INITIAL;\n\n\t\t//form elements other than radio buttons and check boxes\n\t\tthis.Fields = [];\n\t\t//form elements: radio buttons and check boxes\n\t\tthis.Boxsets = [];\n\t\tthis.ctxCanvas = {};\n\t}\n\n\tget width() {\n\t\treturn PDFUnit.toFormX(this.viewport.width);\n\t}\n\tget height() {\n\t\treturn PDFUnit.toFormY(this.viewport.height);\n\t}\n\tget HLines() {\n\t\treturn this.ctxCanvas.HLines;\n\t}\n\tget VLines() {\n\t\treturn this.ctxCanvas.VLines;\n\t}\n\tget Fills() {\n\t\treturn this.ctxCanvas.Fills;\n\t}\n\tget Texts() {\n\t\treturn this.ctxCanvas.Texts;\n\t}\n\n\tdestroy() {\n\t\tthis.pdfPage.destroy();\n\t\tthis.pdfPage = null;\n\n\t\tthis.ptiParser = null;\n\t\tthis.Fields = null;\n\t\tthis.Boxsets = null;\n\t\tthis.ctxCanvas = null;\n\t}\n\n\tgetPagePoint(x, y) {\n\t\treturn this.viewport.convertToPdfPoint(x, y);\n\t}\n\n\tparsePage(callback, errorCallBack) {\n\t\tif (this.renderingState !== PDFPageParser.RenderingStates.INITIAL) {\n\t\t\terrorCallBack(\"Must be in new state before drawing\");\n\t\t\treturn;\n\t\t}\n\n\t\tthis.renderingState = PDFPageParser.RenderingStates.RUNNING;\n\n\t\tconst canvas = createScratchCanvas(1, 1);\n\t\tconst ctx = canvas.getContext(\"2d\");\n\n\t\tconst selfAddField = this.#_addField.bind(this);\n\t\tfunction pageViewDrawCallback(error) {\n\t\t\tthis.renderingState = PDFPageParser.RenderingStates.FINISHED;\n\n\t\t\tif (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t\terrorCallBack(`Error: Page ${this.id + 1}: ${error.message}`);\n\t\t\t} else {\n\t\t\t\tif (this.ptiParser) {\n\t\t\t\t\tconst extraFields = this.ptiParser.getFields(parseInt(this.id) + 1);\n\t\t\t\t\textraFields.forEach((field) => selfAddField(field));\n\t\t\t\t}\n\n\t\t\t\tthis.ctxCanvas = ctx.canvas;\n\t\t\t\tthis.stats = this.pdfPage.stats;\n\n\t\t\t\tnodeUtil.p2jinfo(`Success: Page ${this.id + 1}`);\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\n\t\tconst renderContext = {\n\t\t\tcanvasContext: ctx,\n\t\t\tviewport: this.viewport,\n\t\t};\n\n\t\tthis.pdfPage.render(renderContext).then(\n\t\t\t(data) => {\n\t\t\t\tthis.pdfPage.getAnnotations().then(\n\t\t\t\t\t(fields) => {\n\t\t\t\t\t\tfields.forEach((field) => this.#_addField(field));\n\t\t\t\t\t\tpageViewDrawCallback.call(this, null);\n\t\t\t\t\t},\n\t\t\t\t\t(err) => errorCallBack(`pdfPage.getAnnotations error:${err}`)\n\t\t\t\t);\n\t\t\t},\n\t\t\t(err) => pageViewDrawCallback.call(this, err)\n\t\t);\n\t}\n}\n\n////////////////////////////////Start of Node.js Module\nexport default class PDFJSClass extends EventEmitter {\n\tpdfDocument = null;\n\tpages = null;\n\trawTextContents = null;\n\n\tneedRawText = null;\n\n\t// constructor\n\tconstructor(needRawText) {\n\t\tsuper();\n\n\t\t// public, this instance copies\n\t\tthis.pdfDocument = null;\n\t\tthis.pages = [];\n\t\tthis.rawTextContents = [];\n\n\t\tthis.needRawText = needRawText;\n\t}\n\n\traiseErrorEvent(errMsg) {\n\t\tconsole.error(errMsg);\n\t\tprocess.nextTick(() => this.emit(\"pdfjs_parseDataError\", errMsg));\n\t\t// this.emit(\"error\", errMsg);\n\t\treturn errMsg;\n\t}\n\n\traiseReadyEvent(data) {\n\t\tprocess.nextTick(() => this.emit(\"pdfjs_parseDataReady\", data));\n\t\treturn data;\n\t}\n\n\tparsePDFData(arrayBuffer, password) {\n\t\tthis.pdfDocument = null;\n\n\t\tconst parameters = { password, data: arrayBuffer };\n\t\tPDFJS.getDocument(parameters).then(\n\t\t\t(pdfDocument) => this.load(pdfDocument, 1),\n\t\t\t(error) => this.raiseErrorEvent(error)\n\t\t);\n\t}\n\n\ttryLoadFieldInfoXML(pdfFilePath) {\n\t\tconst _sufInfo = \"_fieldInfo.xml\";\n\t\tconst fieldInfoXMLPath = pdfFilePath.replace(\".pdf\", _sufInfo);\n\t\tif (\n\t\t\tfieldInfoXMLPath.indexOf(_sufInfo) < 1 ||\n\t\t\t!fs.existsSync(fieldInfoXMLPath)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tnodeUtil.p2jinfo(`About to load fieldInfo XML : ${  fieldInfoXMLPath}`);\n\n\t\tthis.ptiParser = new PTIXmlParser();\n\t\tthis.ptiParser.parseXml(fieldInfoXMLPath, (err) => {\n\t\t\tif (err) {\n\t\t\t\tnodeUtil.p2jwarn(`fieldInfo XML Error: ${  JSON.stringify(err)}`);\n\t\t\t\tthis.ptiParser = null;\n\t\t\t} else {\n\t\t\t\tnodeUtil.p2jinfo(\"fieldInfo XML loaded.\");\n\t\t\t}\n\t\t});\n\t}\n\n\tload(pdfDocument, scale) {\n\t\tthis.pdfDocument = pdfDocument;\n\n\t\treturn this.loadMetaData().then(\n\t\t\t() => this.loadPages(),\n\t\t\t(error) => this.raiseErrorEvent(`loadMetaData error: ${error}`)\n\t\t);\n\t}\n\n\tloadMetaData() {\n\t\treturn this.pdfDocument.getMetadata().then(\n\t\t\t(data) => {\n\t\t\t\tthis.documentInfo = data.info;\n\t\t\t\tthis.metadata = data.metadata?.metadata ?? {};\n\t\t\t\tthis.parseMetaData();\n\t\t\t},\n\t\t\t(error) => this.raiseErrorEvent(`pdfDocument.getMetadata error: ${error}`)\n\t\t);\n\t}\n\n\tparseMetaData() {\n\t\tconst meta = {\n\t\t\tTranscoder: _PARSER_SIG,\n\t\t\tMeta: { ...this.documentInfo, Metadata: this.metadata },\n\t\t};\n\t\tthis.raiseReadyEvent(meta);\n\t\tthis.emit(\"readable\", meta);\n\t}\n\n\tloadPages() {\n\t\tconst pagesCount = this.pdfDocument.numPages;\n\t\tconst pagePromises = [];\n\t\tfor (let i = 1; i <= pagesCount; i++)\n\t\t\tpagePromises.push(this.pdfDocument.getPage(i));\n\n\t\tconst pagesPromise = PDFJS.Promise.all(pagePromises);\n\n\t\tnodeUtil.p2jinfo(`PDF loaded. pagesCount = ${pagesCount}`);\n\n\t\treturn pagesPromise.then(\n\t\t\t(promisedPages) => this.parsePage(promisedPages, 0, 1.5),\n\t\t\t(error) => this.raiseErrorEvent(`pagesPromise error: ${error}`)\n\t\t);\n\t}\n\n\tparsePage(promisedPages, id, scale) {\n\t\tnodeUtil.p2jinfo(`start to parse page:${id + 1}`);\n\n\t\tconst pdfPage = promisedPages[id];\n\t\tconst pageParser = new PDFPageParser(pdfPage, id, scale, this.ptiParser);\n\n\t\tfunction continueOnNextPage() {\n\t\t\tnodeUtil.p2jinfo(`complete parsing page:${id + 1}`);\n\t\t\tif (id === this.pdfDocument.numPages - 1) {\n\t\t\t\tthis.raiseReadyEvent({ Pages: this.pages });\n\t\t\t\t//v1.1.2: signal end of parsed data with null\n\t\t\t\tprocess.nextTick(() => this.raiseReadyEvent(null));\n\t\t\t\tthis.emit(\"data\", null);\n\t\t\t} else {\n\t\t\t\tprocess.nextTick(() => this.parsePage(promisedPages, ++id, scale));\n\t\t\t}\n\t\t}\n\n\t\tpageParser.parsePage(\n\t\t\t(data) => {\n\t\t\t\tconst page = {\n\t\t\t\t\tWidth: pageParser.width,\n\t\t\t\t\tHeight: pageParser.height,\n\t\t\t\t\tHLines: pageParser.HLines,\n\t\t\t\t\tVLines: pageParser.VLines,\n\t\t\t\t\tFills: pageParser.Fills,\n\t\t\t\t\t//needs to keep current default output format, text content will output to a separate file if '-c' command line argument is set\n\t\t\t\t\t//                Content:pdfPage.getTextContent(),\n\t\t\t\t\tTexts: pageParser.Texts,\n\t\t\t\t\tFields: pageParser.Fields,\n\t\t\t\t\tBoxsets: pageParser.Boxsets,\n\t\t\t\t};\n\n\t\t\t\tthis.pages.push(page);\n\t\t\t\tthis.emit(\"data\", page);\n\n\t\t\t\tif (this.needRawText) {\n\t\t\t\t\tpdfPage.getTextContent().then(\n\t\t\t\t\t\t(textContent) => {\n\t\t\t\t\t\t\tthis.rawTextContents.push(textContent);\n\t\t\t\t\t\t\tnodeUtil.p2jinfo(`complete parsing raw text content:${id + 1}`);\n\t\t\t\t\t\t\tcontinueOnNextPage.call(this);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(error) =>\n\t\t\t\t\t\t\tthis.raiseErrorEvent(`pdfPage.getTextContent error: ${error}`)\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tcontinueOnNextPage.call(this);\n\t\t\t\t}\n\t\t\t},\n\t\t\t(errMsg) => this.raiseErrorEvent(errMsg)\n\t\t);\n\t}\n\n\tgetRawTextContent() {\n\t\tlet retVal = \"\";\n\t\tif (!this.needRawText) return retVal;\n\n\t\tthis.rawTextContents.forEach((textContent, index) => {\n\t\t\tlet prevText = null;\n\t\t\ttextContent.bidiTexts.forEach((textObj, idx) => {\n\t\t\t\tif (prevText) {\n\t\t\t\t\tif (Math.abs(textObj.y - prevText.y) <= 9) {\n\t\t\t\t\t\tprevText.str += textObj.str;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tretVal += `${prevText.str}\\r\\n`;\n\t\t\t\t\t\tprevText = textObj;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tprevText = textObj;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (prevText) {\n\t\t\t\tretVal += prevText.str;\n\t\t\t}\n\t\t\tretVal +=\n\t\t\t\t`\\r\\n----------------Page (${index}) Break----------------\\r\\n`;\n\t\t});\n\n\t\treturn retVal;\n\t}\n\n\tgetAllFieldsTypes() {\n\t\treturn PDFField.getAllFieldsTypes({ Pages: this.pages || [] });\n\t}\n\n\tgetMergedTextBlocksIfNeeded() {\n\t\tfor (let p = 0; p < this.pages.length; p++) {\n\t\t\tlet prevText = null;\n\t\t\tconst page = this.pages[p];\n\n\t\t\tpage.Texts.sort(PDFFont.compareBlockPos);\n\t\t\tpage.Texts = page.Texts.filter((t, j) => {\n\t\t\t\tconst isDup = j > 0 && PDFFont.areDuplicateBlocks(page.Texts[j - 1], t);\n\t\t\t\tif (isDup) {\n\t\t\t\t\tnodeUtil.p2jinfo(\n\t\t\t\t\t\t`skipped: dup text block: ${decodeURIComponent(t.R[0].T)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn !isDup;\n\t\t\t});\n\n\t\t\tfor (let i = 0; i < page.Texts.length; i++) {\n\t\t\t\tconst text = page.Texts[i];\n\n\t\t\t\tif (prevText) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tPDFFont.areAdjacentBlocks(prevText, text) &&\n\t\t\t\t\t\tPDFFont.haveSameStyle(prevText, text)\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst preT = decodeURIComponent(prevText.R[0].T);\n\t\t\t\t\t\tconst curT = decodeURIComponent(text.R[0].T);\n\n\t\t\t\t\t\tprevText.R[0].T += text.R[0].T;\n\t\t\t\t\t\tprevText.w += text.w;\n\t\t\t\t\t\ttext.merged = true;\n\n\t\t\t\t\t\tconst mergedText = decodeURIComponent(prevText.R[0].T);\n\t\t\t\t\t\tnodeUtil.p2jinfo(\n\t\t\t\t\t\t\t`merged text block: ${preT} + ${curT} => ${mergedText}`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tprevText = null; //yeah, only merge two blocks for now\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprevText = text;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tprevText = text;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpage.Texts = page.Texts.filter((t) => !t.merged);\n\t\t}\n\n\t\treturn { Pages: this.pages };\n\t}\n\n\tdestroy() {\n\t\tthis.removeAllListeners();\n\n\t\tif (this.pdfDocument) this.pdfDocument.destroy();\n\t\tthis.pdfDocument = null;\n\n\t\tthis.pages = null;\n\t\tthis.rawTextContents = null;\n\t}\n}\n","import { Transform, Readable } from \"stream\";\nimport fs from \"fs\";\nimport { Buffer } from \"buffer\";\n\nexport class ParserStream extends Transform {\n    static createContentStream(jsonObj) {\n\t\tconst rStream = new Readable({ objectMode: true });\n\t\trStream.push(jsonObj);\n\t\trStream.push(null);\n\t\treturn rStream;\n\t}\n\n    static createOutputStream(outputPath, resolve, reject) {\n\t\tconst outputStream = fs.createWriteStream(outputPath);\n\t\toutputStream.on('finish', () => resolve(outputPath));\n\t\toutputStream.on('error', err => reject(err) );\n\t\treturn outputStream;\n\t}\n\n    #pdfParser = null;\n    #chunks = [];\n    #parsedData = { Pages:[] };\n    #_flush_callback = null;\n\n    constructor(pdfParser, options) {\n        super(options);\n        this.#pdfParser = pdfParser;\n\n        this.#chunks = [];\n\n        // this.#pdfParser.on(\"pdfParser_dataReady\", evtData => {\n        //     this.push(evtData);\n        //     this.#_flush_callback();\n        //     this.emit('end', null);\n        // });\n        this.#pdfParser.on(\"readable\", meta => this.#parsedData = { ...meta, Pages:[] });\n        this.#pdfParser.on(\"data\", page => {\n\t\t\tif (!page) {\n\t\t\t\tthis.push(this.#parsedData);\n\t\t\t\tthis.#_flush_callback();\n\t\t\t} else {\n\t\t\t\tthis.#parsedData.Pages.push(page);\n\t\t\t}\n        });\n    }\n\n    //implements transform stream\n\t_transform(chunk, enc, callback) {\n\t\tthis.#chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, enc));\n\t\tcallback();\n\t}\n\n\t_flush(callback) {\n        this.#_flush_callback = callback;\n\t\tthis.#pdfParser.parseBuffer(Buffer.concat(this.#chunks));\n\t}\n\n    _destroy() {\n        super.removeAllListeners();\n        this.#pdfParser = null;\n        this.#chunks = [];\n    }\n}\n\nexport class StringifyStream extends Transform {\n    constructor(options) {\n        super(options);\n\n        this._readableState.objectMode = false;\n        this._writableState.objectMode = true;\n    }\n\n    _transform(obj, encoding, callback){\n        this.push(JSON.stringify(obj));\n        callback();\n    }\n}\n","import fs from \"fs\";\nimport nodeUtil from \"util\";\nimport { readFile } from \"fs/promises\";\nimport { EventEmitter } from \"events\";\nimport { Buffer } from \"buffer\";\n\nimport PDFJS from \"./lib/pdf.js\";\nimport { ParserStream, StringifyStream } from \"./lib/parserstream.js\";\nimport { kColors, kFontFaces, kFontStyles } from \"./lib/pdfconst.js\";\nimport { pkInfo, _PARSER_SIG } from \"./lib/pkinfo.js\";\nimport PDFUnit from \"./lib/pdfunit.js\";\n\n/**\n * Class representing a PDF Parser.\n * @class PDFParser\n * @extends EventEmitter\n */\nexport default class PDFParser extends EventEmitter {\n\t/**\n\t * Static method to retrieve color dictionary.\n\t * @returns {object} Color dictionary\n\t */\n\tstatic get colorDict() {\n\t\treturn kColors;\n\t}\n\n\t/**\n\t * Static method to retrieve font face dictionary.\n\t * @returns {object} Font face dictionary\n\t */\n\tstatic get fontFaceDict() {\n\t\treturn kFontFaces;\n\t}\n\n\t/**\n\t * Static method to retrieve font style dictionary.\n\t * @returns {object} Font style dictionary\n\t */\n\tstatic get fontStyleDict() {\n\t\treturn kFontStyles;\n\t}\n\n\t/**\n\t * static property to expose PDFUnit class\n\t * @returns {PDFUnit} PDFUnit class\n\t */\n\tstatic get PDFUnit() {\n\t\treturn PDFUnit;\n\t}\n\n\t/**\n\t * static property to expose ParserStream class\n\t */\n\tstatic get ParserStream() {\n\t\treturn ParserStream;\n\t}\n\n\t/**\n\t * static property to expose StringifyStream class\n\t */\n\tstatic get StringifyStream() {\n\t\treturn StringifyStream;\n\t}\n\n\t/**\n\t * static property to expose pkInfo function\n\t */\n\tstatic get pkInfo() {\n\t\treturn pkInfo;\n\t}\n\n\t/**\n\t * static property to expose _PARSER_SIG string\n\t */\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tstatic get _PARSER_SIG() {\n\t\treturn _PARSER_SIG;\n\t}\n\n\tstatic #maxBinBufferCount = 10;\n\tstatic #binBuffer = {};\n\n\t#password = \"\";\n\t#context = null; // service context object, only used in Web Service project; null in command line\t    #pdfFilePath = null;\n\t#pdfFilePath = null; //current PDF file to load and parse, null means loading/parsing not started\t    #data = null;\n\t#pdfFileMTime = null; // last time the current pdf was modified, used to recognize changes and ignore cache\t    #PDFJS = null;\n\t#data = null; //if file read success, data is PDF content; if failed, data is \"err\" object\t    #processFieldInfoXML = false;\n\t#PDFJS = null; //will be initialized in constructor\n\t#processFieldInfoXML = false; //disable additional _fieldInfo.xml parsing and merging (do NOT set to true)\n\n\t/**\n\t * PDFParser constructor.\n\t * @constructor PDFParser class.\n\t * @param {object} context - The context object (only used in Web Service project); null in command line\n\t * @param {boolean} needRawText - Whether raw text is needed or not\n\t * @param {string} password - The password for PDF file\n\t * @info Private methods accessible using the [funcName].call(this, ...) syntax\n\t */\n\tconstructor(context, needRawText, password) {\n\t\tsuper();\n\t\tthis.#context = context;\n\t\tthis.#pdfFilePath = null; //current PDF file to load and parse, null means loading/parsing not started\t        this.#pdfFileMTime = null;\n\t\tthis.#pdfFileMTime = null; // last time the current pdf was modified, used to recognize changes and ignore cache\t        this.#data = null;\n\t\tthis.#data = null; //if file read success, data is PDF content; if failed, data is \"err\" object\t        this.#processFieldInfoXML = false;\n\t\tthis.#processFieldInfoXML = false; //disable additional _fieldInfo.xml parsing and merging (do NOT set to true)\n\n\t\tthis.#PDFJS = new PDFJS(needRawText);\n\t\tthis.#password = password;\n\t}\n\n\t/**\n\t * @private\n\t * @param {object} data - The parsed data\n\t */\n\t#onPDFJSParseDataReady(data) {\n\t\tif (!data) {\n\t\t\tnodeUtil.p2jinfo(\"PDF parsing completed.\");\n\t\t\tthis.emit(\"pdfParser_dataReady\", this.#data);\n\t\t} else {\n\t\t\tthis.#data = { ...this.#data, ...data };\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {Error} err - The error object\n\t */\n\t#onPDFJSParserDataError(err) {\n\t\tthis.#data = null;\n\t\tthis.emit(\"pdfParser_dataError\", { parserError: err });\n\t}\n\n\t/**\n\t * @private\n\t * @param {Buffer} buffer - The PDF buffer\n\t */\n\t#startParsingPDF(buffer) {\n\t\tthis.#data = {};\n\t\tthis.#PDFJS.on(\"pdfjs_parseDataReady\", (data) =>\n\t\t\tthis.#onPDFJSParseDataReady(data)\n\t\t);\n\t\tthis.#PDFJS.on(\"pdfjs_parseDataError\", (err) =>\n\t\t\tthis.#onPDFJSParserDataError(err)\n\t\t);\n\n\t\t//v1.3.0 the following Readable Stream-like events are replacement for the top two custom events\n\t\tthis.#PDFJS.on(\"readable\", (meta) => this.emit(\"readable\", meta));\n\t\tthis.#PDFJS.on(\"data\", (data) => this.emit(\"data\", data));\n\t\tthis.#PDFJS.on(\"error\", (err) => this.#onPDFJSParserDataError(err));\n\n\t\tthis.#PDFJS.parsePDFData(\n\t\t\tbuffer || PDFParser.#binBuffer[this.binBufferKey],\n\t\t\tthis.#password\n\t\t);\n\t}\n\n\t/**\n\t * @private\n\t * @returns {boolean}\n\t */\n\t#processBinaryCache() {\n\t\tif (this.binBufferKey in PDFParser.#binBuffer) {\n\t\t\tthis.#startParsingPDF();\n\t\t\treturn true;\n\t\t}\n\n\t\tconst allKeys = Object.keys(PDFParser.#binBuffer);\n\t\tif (allKeys.length > PDFParser.#maxBinBufferCount) {\n\t\t\tconst idx = this.id % PDFParser.#maxBinBufferCount;\n\t\t\tconst key = allKeys[idx];\n\t\t\tPDFParser.#binBuffer[key] = null;\n\t\t\tdelete PDFParser.#binBuffer[key];\n\n\t\t\tnodeUtil.p2jinfo(`re-cycled cache for ${key}`);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Getter for #data\n\t * @returns {object|null} Data\n\t */\n\tget data() {\n\t\treturn this.#data;\n\t}\n\n\t/**\n\t * Getter for binBufferKey\n\t * @returns {string} The binBufferKey\n\t */\n\tget binBufferKey() {\n\t\treturn this.#pdfFilePath + this.#pdfFileMTime;\n\t}\n\n\t/**\n\t * Creates a parser stream\n\t * @returns {ParserStream} A new parser stream\n\t */\n\tcreateParserStream() {\n\t\treturn new ParserStream(this, { objectMode: true, bufferSize: 64 * 1024 });\n\t}\n\n\t/**\n\t * Asynchronously load a PDF from a file path.\n\t * @param {string} pdfFilePath - Path of the PDF file\n\t * @param {number} verbosity - Verbosity level\n\t */\n\tasync loadPDF(pdfFilePath, verbosity) {\n\t\tnodeUtil.verbosity(verbosity || 0);\n\t\tnodeUtil.p2jinfo(`about to load PDF file ${pdfFilePath}`);\n\n\t\tthis.#pdfFilePath = pdfFilePath;\n\n\t\ttry {\n\t\t\tthis.#pdfFileMTime = fs.statSync(pdfFilePath).mtimeMs;\n\t\t\tif (this.#processFieldInfoXML) {\n\t\t\t\tthis.#PDFJS.tryLoadFieldInfoXML(pdfFilePath);\n\t\t\t}\n\n\t\t\tif (this.#processBinaryCache()) return;\n\n\t\t\tPDFParser.#binBuffer[this.binBufferKey] = await readFile(pdfFilePath);\n\t\t\tnodeUtil.p2jinfo(`Load OK: ${pdfFilePath}`);\n\t\t\tthis.#startParsingPDF();\n\t\t} catch (err) {\n\t\t\tnodeUtil.p2jerror(`Load Failed: ${pdfFilePath} - ${err}`);\n\t\t\tthis.emit(\"pdfParser_dataError\", err);\n\t\t}\n\t}\n\n\t/**\n\t * Parse PDF buffer. Introduce a way to directly process buffers without the need to write it to a temporary file\n\t * @param {Buffer} pdfBuffer - PDF buffer\n\t * @param {number} verbosity - Verbosity level, ERRORS = 0, WARNINGS = 1, INFOS = 5;\n\t */\n\tparseBuffer(pdfBuffer, verbosity) {\n\t\tnodeUtil.verbosity(verbosity); // validated in util.js\n\t\tif ((!pdfBuffer?.length) || (!pdfBuffer.buffer)) {\n\t\t\tnodeUtil.p2jerror(\"Error: empty PDF buffer, nothing to parse.\");\n\t\t\treturn;\n\t\t}\n\t\tlet pdfBufferParse = pdfBuffer;\n\t\tif (pdfBufferParse.buffer.byteLength !== pdfBufferParse.length) {\n\t\t\tpdfBufferParse = Buffer.from(pdfBufferParse.buffer, 0, pdfBufferParse.byteLength);\n\t\t}\n\n\t\tthis.#startParsingPDF(pdfBufferParse);\n\t}\n\n\t/**\n\t * Retrieve raw text content from PDF.\n\t * @returns {string} Raw text content\n\t */\n\tgetRawTextContent() {\n\t\treturn this.#PDFJS.getRawTextContent();\n\t}\n\n\t/**\n\t * Retrieve raw text content stream.\n\t * @returns {Stream} Raw text content stream\n\t */\n\tgetRawTextContentStream() {\n\t\treturn ParserStream.createContentStream(this.getRawTextContent());\n\t}\n\n\t/**\n\t * Retrieve all field types.\n\t * @returns {object[]} All field types\n\t */\n\tgetAllFieldsTypes() {\n\t\treturn this.#PDFJS.getAllFieldsTypes();\n\t}\n\n\t/**\n\t * Retrieve all field types stream.\n\t * @returns {Stream} All field types stream\n\t */\n\tgetAllFieldsTypesStream() {\n\t\treturn ParserStream.createContentStream(this.getAllFieldsTypes());\n\t}\n\n\t/**\n\t * Retrieve merged text blocks if needed.\n\t * @returns {object} Merged text blocks\n\t */\n\tgetMergedTextBlocksIfNeeded() {\n\t\treturn this.#PDFJS.getMergedTextBlocksIfNeeded();\n\t}\n\n\t/**\n\t * Retrieve merged text blocks stream.\n\t * @returns {Stream} Merged text blocks stream\n\t */\n\tgetMergedTextBlocksStream() {\n\t\treturn ParserStream.createContentStream(this.getMergedTextBlocksIfNeeded());\n\t}\n\n\t/**\n\t * Destroy the PDFParser instance.\n\t */\n\tdestroy() {\n\t\t// invoked with stream transform process\n\t\tsuper.removeAllListeners();\n\n\t\t//context object will be set in Web Service project, but not in command line utility\n\t\tif (this.#context) {\n\t\t\tthis.#context.destroy();\n\t\t\tthis.#context = null;\n\t\t}\n\n\t\tthis.#pdfFilePath = null;\n\t\tthis.#pdfFileMTime = null;\n\t\tthis.#data = null;\n\t\tthis.#processFieldInfoXML = false; //disable additional _fieldInfo.xml parsing and merging (do NOT set to true)\n\n\t\tthis.#PDFJS.destroy();\n\t\tthis.#PDFJS = null;\n\t}\n}\n"],"names":["_PARSER_SIG","pkInfo.name","pkInfo.version","pkInfo.homepage","kColors","kFontFaces","kFontStyles","_pixelPerPoint","PDFUnit","toFixedFloat","fNum","parseFloat","toFixed","colorCount","length","toPixelX","formX","Math","round","dpi","toPixelY","formY","pointToPixel","point","getColorByIndex","clrId","toFormPoint","viewportX","viewportY","toFormX","toFormY","findColorIndex","color","indexOf","dateToIso8601","date","slice","tz","idx","search","PDFField","static","isWidgetSupported","field","retVal","fieldType","fieldFlags","nodeUtil","p2jwarn","isFormElement","subtype","constructor","viewport","Fields","Boxsets","this","normalizeRect","rect","r","getFieldPosition","fieldRect","convertToViewportRectangle","height","kMinHeight","x","y","w","h","getFieldBaseData","attributeMask","anData","id","Id","fullName","EN","TI","AM","alternativeText","TU","alternativeID","TM","Object","assign","addAlpha","style","T","Name","TName","TypeInfo","MV","fieldValue","V","push","addCheckBox","box","checked","boxes","addRadioButton","value","rdGroup","filter","boxset","addLinkButton","FL","form","addSelect","PL","D","forEach","ele","Array","isArray","addSignature","Sig","M","Location","Reason","ContactInfo","processField","tabIndex","clean","getAllFieldsTypes","data","isFieldReadOnly","getFieldBase","type","calc","Pages","page","boxsets","_boldSubNames","_stdFonts","DISTANCE_DELTA","PDFFont","initTypeName","typeName","fontObj","name","fallbackName","toLowerCase","initSubType","subType","bold","nameArray","split","subName","initSymbol","isSymbol","isSymbolicFont","oneName","p2jinfo","initSpaceWidth","spaceWidth","spaceId","toFontChar","widths","fontSize","faceIdx","italic","fontStyleId","compareBlockPos","t1","t2","abs","haveSameStyle","R","S","i","TS","RA","getSpaceThreshHold","getFontSize","sw","areAdjacentBlocks","isInSameLine","isDistanceSmallerThanASpace","textBlock","sId","areDuplicateBlocks","setFaceIndex","isSerifFont","isMonospace","getFontStyleIndex","fsa","element","index","list","processSymbolicFont","str","charCodeAt","textRotationAngle","matrix2D","r1","atan","r2","PI","processText","p","maxWidth","targetData","text","colorObj","clr","oc","textRun","flashEncode","rAngle","oneText","A","Texts","encodeURIComponent","replace","PTIXmlParser","xmlData","ptiPageArray","parseXml","filePath","callback","fs","readFile","err","xmlFields","DOMParser","parseFromString","documentElement","getElementsByTagName","fields","getAttribute","xPos","yPos","width","fontName","item","rectLeft","parseInt","rectTop","rectRight","rectBottom","getFields","pageNum","PDFLine","x1","y1","x2","y2","lineWidth","dashed","setStartPoint","oneLine","processLine","xDelta","yDelta","minDelta","l","dsh","HLines","VLines","PDFFill","processFill","oneFill","Fills","mr","sin","ms","cos","mc","sqrt","dec2hex","j","toString","matrixMultiply","m1","m2","result","sum","z","copyState","o1","o2","fillStyle","lineCap","lineJoin","miterLimit","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","strokeStyle","globalAlpha","arcScaleX_","arcScaleY_","lineScale_","dashArray","processStyle","styleString","alpha","String","substring","start","end","guts","Number","bezierCurveToHelper","self","cp1","cp2","currentPath_","cp1x","cp1y","cp2x","cp2y","currentX_","currentY_","setM","ctx","m","updateLineScale","k","isFinite","isNaN","matrixIsFinite","m_","det","CanvasPattern_","CanvasGradient_","aType","type_","x0_","y0_","r0_","x1_","y1_","r1_","colors_","addColorStop","aOffset","aColor","offset","CanvasRenderingContext2D_","canvasTarget","scaledWidth","scaledHeight","mStack_","aStack_","canvas","currentFont","drawPDFLine","p1","p2","dashedLine","drawPDFFill","cp","min","max","needRemoveRect","getContext","ctxType","setLineDash","lineDash","getLineDash","fillText","trim","getCoords_","a","strokeText","measureText","setFont","clearRect","beginPath","moveTo","aX","aY","lineTo","bezierCurveTo","aCP1x","aCP1y","aCP2x","aCP2y","quadraticCurveTo","aCPx","aCPy","arc","aRadius","aStartAngle","aEndAngle","aClockwise","arcType","xStart","yStart","xEnd","yEnd","pStart","pEnd","radius","aWidth","aHeight","closePath","strokeRect","oldPath","stroke","fillRect","fill","createLinearGradient","aX0","aY0","aX1","aY1","gradient","createRadialGradient","aR0","aR1","drawImage","image","var_args","getImageData","Uint8Array","aFill","save","o","restore","pop","translate","rotate","aRot","c","s","scale","transform","m11","m12","m21","m22","dx","dy","setTransform","clip","arcTo","createPattern","createScratchCanvas","setupFieldAttributes","annotation","aa","get","nVal","key","jsFuncName","prototype","hasOwnProperty","call","vParts","funcName","funcParam","AFSpecialFormat","maskValue","processFieldAttribute","PDFAnno","processAnnotation","asName","po","val","setupRadioButton","mk","ap","sp","setupPushButton","setupCheckBox","setupDropDown","sig","time","location","reason","contactInfo","setupSignature","PDFImage$1","_src","_onload","onload","src","btoa","Buffer","from","PDFJS","globalScope","console","isWorker","window","verbosity","FONT_IDENTITY_MATRIX","TextRenderingMode","pdfBug","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","curveTo","curveTo2","curveTo3","rectangle","closeStroke","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","NO_OPS","NO_OPS_RANGE","log","Boolean","process","env","PDF2JSON_DISABLE_LOGS","bind","info","msg","LogManager","notify","warn","error","arguments","logArguments","apply","join","Error","TODO","what","assert","cond","combineUrl","baseUrl","url","charAt","pathLength","lastIndexOf","prefixLength","isValidUrl","allowRelative","colon","assertWellFormed","loggers","addLogger","logger","message","ii","shadow","obj","prop","defineProperty","enumerable","configurable","writable","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","NotImplementedException","MissingDataException","begin","XRefParseException","bytesToString","bytes","n","fromCharCode","stringToBytes","IDENTITY_MATRIX","Util","makeCssRgb","rgb","makeCssCmyk","cmyk","ColorSpace","singletons","getRgb","applyTransform","applyInverseTransform","d","getAxialAlignedBoundingBox","p3","p4","inverseTransform","apply3dTransform","v","singularValueDecompose2dScale","transpose","b","first","second","sx","sy","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","sign","num","concatenateToArray","arr1","arr2","prependToArray","unshift","extendObj","obj1","obj2","getInheritableProperty","dict","has","inherit","sub","base","create","loadScript","script","document","createElement","loaded","setAttribute","appendChild","PDFStringTranslateTable","PageViewport","viewBox","rotation","offsetX","offsetY","dontFlip","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","centerX","centerY","fontScale","clone","args","convertToViewportPoint","tl","br","convertToPdfPoint","stringToPDFString","str2","isEmptyObj","isBool","isInt","isNum","isString","isName","isCmd","cmd","Cmd","isDict","Dict","dictType","isStream","isArrayBuffer","isRef","Ref","isPDFFunction","fnDict","Promise","HandlerManager","handlers","running","unhandledRejections","pendingRejectionCheck","scheduleHandlers","promise","_status","concat","_handlers","setTimeout","runHandlers","handler","shift","nextStatus","thisPromise","nextValue","_value","onResolve","onReject","_unhandledRejection","removeUnhandeledRejection","ex","nextPromise","_updateStatus","addUnhandledRejection","Date","now","scheduleRejectionCheck","splice","unhandled","stack","all","promises","deferred","unresolved","results","resolve","reject","isPromise","then","status","isResolved","isRejected","StatTimer","rpad","pad","started","times","enabled","timeEnd","out","longest","span","duration","MessageHandler","comObj","callbackIndex","postMessageTransfers","callbacks","ah","actionHandler","onmessage","event","isReply","callbackId","action","resolvedData","postMessage","createBlob","contentType","Blob","createObjectURL","URL","blob","digits","buffer","b1","b2","b3","on","actionName","scope","send","transfers","p2jlog","p2jerror","verbo","srcOffset","getRgbItem","dest","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","createRgbBuffer","subarray","numComponentColors","numComps","allColors","Uint16Array","colorMap","usesZeroToOneRange","parse","cs","xref","res","IR","parseToIR","AlternateCS","fromIR","gray","whitePoint","WhitePoint","blackPoint","BlackPoint","gamma","Gamma","CalGrayCS","basePatternCS","PatternCS","baseIndexedCS","hiVal","lookup","IndexedCS","alt","tintFnIR","PDFFunction","range","Range","LabCS","colorSpaces","refcs","mode","fetchIfRef","getAll","getBytes","getIR","isDefaultDecode","decode","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","tintFn","defaultColor","Float32Array","input","tinted","baseNumComps","pos","baseBuf","scaled","decodeMap","baseCS","highVal","lookupArray","set","outputDelta","lookupPos","q","g","convertToRgb","srcScale","XW","YW","ZW","XB","YB","ZB","G","AG","pow","Y","Lstar","amin","amax","bmin","bmax","fn_g","high1","low2","high2","maxVal","Ls","as","bs","L","N","X","Z","PatternType","Pattern","getPattern","shadingFromIR","raw","Shadings","parseShading","shading","matrix","RadialAxial","Dummy","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","distance","fn","fnObj","fnArray","jj","arg","diff","step","colorStops","rgbColor","cssColor","background","SMALL_NUMBER","p0","r0","grad","TilingPattern","PaintType","objs","commonObjs","baseTransform","operatorList","bbox","xstep","ystep","paintType","tilingType","createPatternCanvas","owner","x0","y0","topLeft","botRight","matrixScale","curMatrixScale","combinedScale","ceil","tmpCanvas","CachedCanvases","getCanvas","tmpCtx","context","graphics","CanvasGraphics","groupLevel","setFillAndStrokeStyleToContext","setScale","transformToScale","tmpTranslate","clipBbox","executeOperatorList","tmpScale","scaleToContext","bboxWidth","bboxHeight","temporaryPatternCanvas","getSampleArray","size","outputSize","bps","array","codeSize","codeBuf","sampleMul","strBytes","strIdx","typeFn","constructSampled","constructInterpolated","constructStiched","constructPostScript","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","toMultiArray","arr","domain","inputSize","order","encode","interpolate","xmin","xmax","ymin","ymax","samples","cubeVertices","cubeN","Float64Array","cubeVertex","Uint32Array","domain_2i","domain_2i_1","e","size_i","e0","floor","n0","n1","offset0","offset1","rj","c0","c1","fnRefs","fns","bounds","fnsIR","dmin","dmax","rmin","v2","lexer","PostScriptLexer","PostScriptParser","numOutputs","evaluator","PostScriptEvaluator","cache","FunctionCache","initialStack","execute","transformed","rangeIndex","total","PostScriptStack","copy","roll","t","operators","operands","operator","counter","LN10","token","prev","nextToken","getToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","getOperator","op","opValue","stream","nextChar","currentChar","getByte","comment","ch","EOF","Lexer","isSpace","getNumber","Annotation","params","annotationFlags","getAndSetRectangle","borderStyle","borderWidth","borderArray","appearance","appearanceState","appearances","getDefaultAppearance","hasAppearance","setRectangle","getData","hasHtml","getHtmlElement","getEmptyContainer","tagName","isViewable","loadResources","keys","getAsync","resources","ObjectLoader","map","load","getOperatorList","OperatorList","appearanceDict","resourcesPromise","minX","minY","maxX","maxY","xRatio","yRatio","getTransformMatrix","border","opList","addOp","getConstructor","LinkAnnotation","TextAnnotation","TextWidgetAnnotation","WidgetAnnotation","fromData","Constructor","fromRef","ref","appendToOperatorList","annotations","pdfManager","partialEvaluator","annotationsReadyPromise","annotationPromises","datas","annotOpList","addOpList","decodeBytes","rawValue","defaultAppearance","fieldResources","itemNameStr","parent","textAlignment","display","content","textContent","textAlign","verticalAlign","direction","fontDirection","fontWeight","black","fontStyle","loadedName","fontFamily","setTextStyles","fontRefName","Stream","appearanceFnArray","appearanceArgsArray","argsArray","fnId","rgbValue","title","container","className","iconName","imageResourcesPath","dataset","l10nId","l10nArgs","JSON","stringify","left","top","lines","line","createTextNode","showAnnotation","zIndex","removeAttribute","hideAnnotation","toElement","relatedTarget","addEventListener","linkType","addDefaultProtocolToUrl","urlDict","hasOperatorList","borderColor","href","Page","pageIndex","pageDict","fontCache","idCounters","getPageProp","inheritPageProp","undefined","mediaBox","view","cropBox","annotationRefs","getContentStream","streams","StreamsSequenceStream","NullStream","ensure","pageListPromise","contentStreamPromise","PartialEvaluator","contentStream","transparency","hasBlendModes","annotationsPromise","pageOpList","flush","extractTextContent","textContentPromise","bidiTexts","getTextContent","getAnnotationsData","annotationsData","annotationRef","PDFDocument","password","init","XRef","find","needle","limit","backwards","DocumentInfoValidators","entries","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","recoveryMode","setup","acroForm","catalog","catDict","xfa","linearization","Linearization","startXRef","reset","found","skip","mainXRefEntriesOffset","checkHeader","moveStart","version","pdfFormatVersion","parseStartXRef","setStartXRef","Catalog","numPages","documentInfo","infoDict","docInfo","PDFFormatVersion","IsAcroFormPresent","IsXFAPresent","trailer","validEntries","fingerprint","hash","fileID","calculateMD5","getPage","cleanup","cmdCache","cmdValue","nonSerializable","__nonSerializable__","assignXref","newXref","key1","key2","key3","fetchIfRefAsync","getRaw","gen","RefSet","put","remove","RefSetCache","thisArg","clear","getCatalogObj","pagePromises","metadata","streamRef","encryptMetadata","encrypt","fetch","decodeURIComponent","escape","toplevelPagesDict","pagesObj","documentOutline","readDocumentOutline","root","items","processed","queue","outlineDict","outlineItem","destinations","fetchDestination","nameTreeRef","nameDictionaryRef","dests","names","NameTree","javaScript","jsDict","js","font","sent","translated","getPageDict","nodesToVisit","currentPageIndex","next","currentNode","fetchAsync","kids","last","getPageIndex","kidRef","parentRef","node","kidPromises","kid","pagesBeforeRef","xrefstms","startXRefQueue","trailerDict","indexObjects","readXRef","ids","fileId","CipherTransformFactory","processXRefTable","parser","tableState","entryNum","streamPos","parserBuf1","buf1","parserBuf2","buf2","readXRefTable","getObj","firstEntryNum","entryCount","entry","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","readToken","skipUntil","dataLength","skipped","trailerBytes","startxrefBytes","endobjBytes","xrefBytes","position","trailers","xrefStms","exec","contentLength","xrefTagOffset","Parser","topDict","getEntry","suppressEncryption","makeSubStream","obj3","createCipherTransform","tableOffset","allowStreams","nums","tryFetch","manager","requestRange","mayHaveChildren","addChildren","refSet","ChunkedStream","getMissingChunks","walk","nodesToRevisit","pendingRequests","getBaseStreams","baseStreams","foundMissingData","requestRanges","ISOAdobeCharset","ExpertCharset","ExpertSubsetCharset","ARCFourCipher","tmp","keyLength","encryptBlock","tmp2","output","decryptBlock","Int32Array","h0","h1","h2","h3","paddedLength","padded","f","rotateArg","NullCipher","AES128Cipher","rcon","inv_s","mix","decrypt128","u","state","s0","s1","s2","s3","cipherKey","t3","t4","expandKey128","bufferPosition","decryptBlock2","finalize","sourceLength","bufferLength","iv","plain","outputLength","lastBlock","CipherTransform","stringCipherConstructor","streamCipherConstructor","createStream","cipher","DecryptStream","decryptString","defaultPasswordBytes","prepareKeyData","ownerPassword","userPassword","flags","revision","hashDataSize","hashData","keyLengthInBytes","encryptionKey","checkData","derivedKey","identityName","algorithm","passwordBytes","fileIdBytes","decodedPassword","decodeUserPassword","cf","stmf","strf","eff","buildObjectKey","isAes","buildCipherConstructor","cfm","cryptFilter","cipherConstructor","uniquePrefix","EvalState","stateStack","OP_MAP","numArgs","variableArgs","J","ri","gs","Q","cm","re","F","B","W","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","d1","CS","SC","SCN","sc","scn","RG","rg","K","sh","BI","ID","EI","Do","MP","DP","BMC","BDC","EMC","BX","EX","BM","BD","true","fa","fal","fals","false","nu","nul","null","nodes","graphicStates","bm","xObjects","xObject","xResources","buildFormXObject","xobj","smask","group","groupOptions","isolated","knockout","groupSubtype","buildPaintImageXObject","inline","maxImageSize","bitStrideLength","imgArray","inverseDecode","PDFImage","createMask","softMask","mask","JpegStream","objId","addDependency","isNativelySupported","buildImage","imageObj","imgData","handleTilingType","pattern","patternDict","tilingOpList","addDependencies","dependencies","handleSetFont","fontArgs","fontRef","loadFont","fontData","exportData","handleText","chars","glyphs","charsToGlyphs","isAddToPathSet","textRenderingMode","disableFontFace","fontChar","renderer","hasBuiltPath","path","getPathJs","gState","setGStateForKey","gStateObj","gStateMap","parentOperatorList","errorFont","ErrorFont","fontRes","translateFont","loadCharProcs","charProcs","fontResources","charProcKeys","charProcOperatorList","glyphStream","xobjs","patterns","isEOF","opSpec","patternName","typeNum","old","arrLength","shadingRes","dictName","extGState","saveState","textState","TextState","chunk","textRise","textHScale","leading","translateTextMatrix","initialiseTextObj","transformCTM","fontCharsToUnicode","fakeSpaces","gsState","bidiText","bidi","vertical","renderParams","calcRenderParams","renderMatrix","vScale","angle","dir","extractDataStructures","baseDict","properties","toUnicode","readToUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","readCidToGidMap","overridableEncoding","hasEncoding","differences","baseEncoding","Encodings","WinAnsiEncoding","StandardEncoding","FontFlags","Symbolic","file","MacRomanEncoding","SymbolSetEncoding","encoding","baseName","diffEncoding","cmapObj","cmap","CMapFactory","w1","w2","cidToGidStream","glyphsData","glyphID","extractWidths","descriptor","defaultVMetrics","glyphsWidths","defaultWidth","glyphsVMetrics","vmetrics","vmetric","firstChar","baseFontName","metrics","getBaseFontMetrics","firstWidth","glyph","glyphWidth","FixedPitch","fontNameWoStyle","serifFonts","monospace","lookupName","stdFontMap","Metrics","glyphWidths","df","maxCharIndex","Serif","symbolsFonts","Nonsymbolic","lastChar","Font","baseFont","fontNameStr","baseFontStr","fontFile","length1","length2","wideChars","fixedPitch","fontMatrix","ascent","descent","xHeight","capHeight","italicAngle","coded","cidEncoding","test","optimizeQueue","squash","howMany","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","imgRowSize","rowSize","dataOffset","kk","images","maskParams","messageHandler","fnIndex","lastChunk","getTransfers","ctm","textMatrix","m0","m3","m4","m5","tm","atan2","CMAP_GLYPH_OFFSET","GLYPH_AREA_SIZE","Script","Italic","AllCap","SmallCap","ForceBold","ExpertEncoding","MacExpertEncoding","zapfDingbatsEncoding","ArialNarrow","ArialBlack","Arial","ArialMT","CourierNew","CourierNewPSMT","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","nonStdFontMap","ComicSansMS","LucidaConsole","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","Dingbats","Symbol","ZapfDingbats","CMapConverterList","H","jis7ToUnicode","eucjpToUnicode","sjisToUnicode","gbkToUnicode","big5ToUnicode","HalfwidthCMaps","TextDecoder","fatal","FileReaderSync","readAsText","UnicodeRanges","MacStandardGlyphOrdering","getUnicodeRangeFor","isSpecialUnicode","unicode","NormalizedUnicodes","reverseIfRtl","charsLength","charCodes","glyphUnicode","sizes","loadCidToUnicode","rebuildToUnicode","buildToFontChar","noUnicodeAdaptation","loading","mimetype","cff","CFFFont","Type1Font","adjustWidths","convert","checkAndRepair","seacMap","stringToArray","arrayToString","int16","int32","getMaxPower2","number","maxPower","string16","safeString16","string32","createOpenTypeHeader","sfnt","numTables","header","tablesMaxPower2","searchRange","virtualOffset","createTableEntry","tag","checksum","tableEntry","createCmapTable","deltas","ranges","codes","sort","codeIndices","getRanges","bmpLength","trailingRangesCount","segCount","segCount2","searchEntry","rangeShift","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","format314","format31012","header31012","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","createNameTable","proto","strings","stringsUnicode","strUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","cmapCharcodeToUnicode","charcode","symbolic","platformId","encodingId","glyphName","GlyphsUnicode","FontRendererFactory","readTableEntry","previousPosition","sanitizeGlyph","source","sourceStart","sourceEnd","destStart","hintsValid","glyf","contoursCount","flagsCount","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","flag","xyLength","repeat","glyphDataLength","TTOpsStackDeltas","sanitizeTTProgram","table","ttContext","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","pc","funcId","functionsStackDeltas","stackTop","functionsDefined","functionsUsed","stackDelta","NaN","newLength","foldTTTable","VALID_TABLES","ttf","entrySelector","readOpenTypeHeader","tables","head","hhea","hmtx","maxp","post","isTrueType","loca","cffFile","fpgm","prep","numGlyphs","maxFunctionDefs","dupFirstEntry","cvt","checkInvalidFunctions","cvtData","sanitizeTTPrograms","tablesNames","numOfMetrics","numMissing","sanitizeMetrics","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeHead","isGlyphLocationsLong","itemSize","itemDecode","itemEncode","locaData","locaDataSize","oldGlyfData","oldGlyfDataLength","newGlyfData","startOffset","writeOffset","endOffset","firstEntryLength","simpleGlyph","sanitizeGlyphLocations","valid","maxpNumGlyphs","glyphNames","glyphNameIndexes","customNames","stringLength","string","readPostScriptTable","gidToCidMap","gid","nextCid","usedUnicodes","unassignedUnicodeItems","cidToFontChar","cid","unusedUnicode","useToFontChar","cmapTable","potentialTable","foundPreferredTable","useTable","canBreak","format","hasShortCmap","mappings","glyphId","segIndex","segments","delta","offsetsCount","segment","rangeOffset","offsetIndex","offsets","firstCode","readCmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","cmapMapping","newToFontChar","glyphCodeMapping","glyphsLength","glyphNameMap","createGlyphNameMap","unicodeIsEnabled","os2","selection","validateOS2Table","CFFParser","compiler","CFFCompiler","compile","namePrototype","numRecords","stringsStart","records","platform","language","record","nameIndex","readNameTable","tableData","otf","isFixedPitch","charstring","seacs","glyphIds","tan","fontCharCode","cidToUnicode","isIdentityMap","cidToUnicodeMap","unicodeToCIDMap","unicodeToCID","CIDToUnicodeMaps","overwrite","fillLength","_shadowWidth","possibleSpaceReplacements","charToGlyph","disabled","mapPrivateUseChars","unicodeChars","accent","seac","baseUnicode","accentUnicode","accentOffset","charsCache","converter","charsCacheKey","readCharCode","Type1CharString","COMMAND_MAP","lsb","flexing","encoded","subrs","executeCommand","subrNumber","wx","sbx","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","Type1Parser","decrypt","discardNumber","decryptedString","isSpecial","encrypted","readNumberArray","readNumber","readInt","readBoolean","extractFontProgram","program","privateData","lenIV","blueArray","charString","extractFontHeader","encodingArg","fontBBox","CFFStandardStrings","headerBlockLength","eexecBlockLength","pfbHeader","peekBytes","pfbHeaderPresent","headerBlock","eexecBlock","getOrderedCharStrings","type2Charstrings","getType2Charstrings","getType2Subrs","wrap","getSeacs","type1Charstrings","type1Subrs","type2Subrs","CFF","CFFHeader","CFFTopDict","setByName","CFFStrings","add","globalSubrIndex","CFFIndex","charsetArray","charset","CFFCharset","charStringsIndex","charStrings","privateDict","CFFPrivateDict","subrIndex","subrsIndex","readExtra","getCharStrings","charsets","unicodeUsed","inverseEncoding","gidStart","isCIDFont","previousCharcode","nextUnusedUnicode","CharstringValidationData","resetStack","stem","undefStack","CharstringValidationData12","stackFn","parseHeader","parseIndex","endPos","topDictIndex","stringIndex","topDictParsed","parseDict","createDict","parseNameIndex","parseStringIndex","parsePrivateDict","hasName","charStringOffset","getByName","charStringsAndSeacs","parseCharStrings","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","major","minor","hdrSize","offSize","parseOperand","eof","parseFloatOperand","cffIndex","offsetSize","startPos","offsetStart","offsetEnd","Type","cffDict","types","pair","setByKey","stackSize","hints","validationCommand","emptyPrivateDictionary","parentDict","privateOffset","privateDictEnd","dictData","subrsOffset","relativeOffset","removeByName","CFFCharsetPredefinedTypes","ISO_ADOBE","EXPERT","EXPERT_SUBSET","predefined","dataStart","glyphsCount","rangesCount","dataEnd","supplementsCount","sid","readSupplement","CFFEncoding","fdIndex","CFFFDSelect","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","opcodes","values","createTables","layout","CFFOffsetTracker","isTracking","track","setEntryLocation","offset2","offset3","offset4","compileHeader","compileNameIndex","subDict","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeFloat","encodeInteger","epsilon","nibbles","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","offsetTracker","compileGlobalSubrIndex","writeByteArray","compileTypedArray","lastOffset","getLong","getUshort","parseCmap","idDelta","idOffset","groups","parseCff","gsubrs","lookupCmap","compileGlyf","xa","ya","numberOfContours","arg1","arg2","glyphIndex","scaleX","scaleY","scale01","scale10","subglyph","endPtsOfContours","numberOfPoints","points","startPoint","endPoint","contour","compileCharString","stems","stackClean","xb","yb","subrsBias","subrCode","achar","bchar","gsubrsBias","CompiledFont","compiledGlyphs","TrueTypeCompiled","Type2Compiled","cffInfo","compileGlyph","compileGlyphImpl","parseGlyfTable","AE","AEacute","AEmacron","AEsmall","Aacute","Aacutesmall","Abreve","Abreveacute","Abrevecyrillic","Abrevedotbelow","Abrevegrave","Abrevehookabove","Abrevetilde","Acaron","Acircle","Acircumflex","Acircumflexacute","Acircumflexdotbelow","Acircumflexgrave","Acircumflexhookabove","Acircumflexsmall","Acircumflextilde","Acute","Acutesmall","Acyrillic","Adblgrave","Adieresis","Adieresiscyrillic","Adieresismacron","Adieresissmall","Adotbelow","Adotmacron","Agrave","Agravesmall","Ahookabove","Aiecyrillic","Ainvertedbreve","Alpha","Alphatonos","Amacron","Amonospace","Aogonek","Aring","Aringacute","Aringbelow","Aringsmall","Asmall","Atilde","Atildesmall","Aybarmenian","Bcircle","Bdotaccent","Bdotbelow","Becyrillic","Benarmenian","Beta","Bhook","Blinebelow","Bmonospace","Brevesmall","Bsmall","Btopbar","C","Caarmenian","Cacute","Caron","Caronsmall","Ccaron","Ccedilla","Ccedillaacute","Ccedillasmall","Ccircle","Ccircumflex","Cdot","Cdotaccent","Cedillasmall","Chaarmenian","Cheabkhasiancyrillic","Checyrillic","Chedescenderabkhasiancyrillic","Chedescendercyrillic","Chedieresiscyrillic","Cheharmenian","Chekhakassiancyrillic","Cheverticalstrokecyrillic","Chi","Chook","Circumflexsmall","Cmonospace","Coarmenian","Csmall","DZ","DZcaron","Daarmenian","Dafrican","Dcaron","Dcedilla","Dcircle","Dcircumflexbelow","Dcroat","Ddotaccent","Ddotbelow","Decyrillic","Deicoptic","Delta","Deltagreek","Dhook","Dieresis","DieresisAcute","DieresisGrave","Dieresissmall","Digammagreek","Djecyrillic","Dlinebelow","Dmonospace","Dotaccentsmall","Dslash","Dsmall","Dtopbar","Dz","Dzcaron","Dzeabkhasiancyrillic","Dzecyrillic","Dzhecyrillic","E","Eacute","Eacutesmall","Ebreve","Ecaron","Ecedillabreve","Echarmenian","Ecircle","Ecircumflex","Ecircumflexacute","Ecircumflexbelow","Ecircumflexdotbelow","Ecircumflexgrave","Ecircumflexhookabove","Ecircumflexsmall","Ecircumflextilde","Ecyrillic","Edblgrave","Edieresis","Edieresissmall","Edot","Edotaccent","Edotbelow","Efcyrillic","Egrave","Egravesmall","Eharmenian","Ehookabove","Eightroman","Einvertedbreve","Eiotifiedcyrillic","Elcyrillic","Elevenroman","Emacron","Emacronacute","Emacrongrave","Emcyrillic","Emonospace","Encyrillic","Endescendercyrillic","Eng","Enghecyrillic","Enhookcyrillic","Eogonek","Eopen","Epsilon","Epsilontonos","Ercyrillic","Ereversed","Ereversedcyrillic","Escyrillic","Esdescendercyrillic","Esh","Esmall","Eta","Etarmenian","Etatonos","Eth","Ethsmall","Etilde","Etildebelow","Euro","Ezh","Ezhcaron","Ezhreversed","Fcircle","Fdotaccent","Feharmenian","Feicoptic","Fhook","Fitacyrillic","Fiveroman","Fmonospace","Fourroman","Fsmall","GBsquare","Gacute","Gammaafrican","Gangiacoptic","Gbreve","Gcaron","Gcedilla","Gcircle","Gcircumflex","Gcommaaccent","Gdot","Gdotaccent","Gecyrillic","Ghadarmenian","Ghemiddlehookcyrillic","Ghestrokecyrillic","Gheupturncyrillic","Ghook","Gimarmenian","Gjecyrillic","Gmacron","Gmonospace","Grave","Gravesmall","Gsmall","Gsmallhook","Gstroke","H18533","H18543","H18551","H22073","HPsquare","Haabkhasiancyrillic","Hadescendercyrillic","Hardsigncyrillic","Hbar","Hbrevebelow","Hcedilla","Hcircle","Hcircumflex","Hdieresis","Hdotaccent","Hdotbelow","Hmonospace","Hoarmenian","Horicoptic","Hsmall","Hungarumlaut","Hungarumlautsmall","Hzsquare","I","IAcyrillic","IJ","IUcyrillic","Iacute","Iacutesmall","Ibreve","Icaron","Icircle","Icircumflex","Icircumflexsmall","Icyrillic","Idblgrave","Idieresis","Idieresisacute","Idieresiscyrillic","Idieresissmall","Idot","Idotaccent","Idotbelow","Iebrevecyrillic","Iecyrillic","Ifraktur","Igrave","Igravesmall","Ihookabove","Iicyrillic","Iinvertedbreve","Iishortcyrillic","Imacron","Imacroncyrillic","Imonospace","Iniarmenian","Iocyrillic","Iogonek","Iota","Iotaafrican","Iotadieresis","Iotatonos","Ismall","Istroke","Itilde","Itildebelow","Izhitsacyrillic","Izhitsadblgravecyrillic","Jaarmenian","Jcircle","Jcircumflex","Jecyrillic","Jheharmenian","Jmonospace","Jsmall","KBsquare","KKsquare","Kabashkircyrillic","Kacute","Kacyrillic","Kadescendercyrillic","Kahookcyrillic","Kappa","Kastrokecyrillic","Kaverticalstrokecyrillic","Kcaron","Kcedilla","Kcircle","Kcommaaccent","Kdotbelow","Keharmenian","Kenarmenian","Khacyrillic","Kheicoptic","Khook","Kjecyrillic","Klinebelow","Kmonospace","Koppacyrillic","Koppagreek","Ksicyrillic","Ksmall","LJ","LL","Lacute","Lambda","Lcaron","Lcedilla","Lcircle","Lcircumflexbelow","Lcommaaccent","Ldot","Ldotaccent","Ldotbelow","Ldotbelowmacron","Liwnarmenian","Lj","Ljecyrillic","Llinebelow","Lmonospace","Lslash","Lslashsmall","Lsmall","MBsquare","Macron","Macronsmall","Macute","Mcircle","Mdotaccent","Mdotbelow","Menarmenian","Mmonospace","Msmall","Mturned","Mu","NJ","Nacute","Ncaron","Ncedilla","Ncircle","Ncircumflexbelow","Ncommaaccent","Ndotaccent","Ndotbelow","Nhookleft","Nineroman","Nj","Njecyrillic","Nlinebelow","Nmonospace","Nowarmenian","Nsmall","Ntilde","Ntildesmall","Nu","O","OE","OEsmall","Oacute","Oacutesmall","Obarredcyrillic","Obarreddieresiscyrillic","Obreve","Ocaron","Ocenteredtilde","Ocircle","Ocircumflex","Ocircumflexacute","Ocircumflexdotbelow","Ocircumflexgrave","Ocircumflexhookabove","Ocircumflexsmall","Ocircumflextilde","Ocyrillic","Odblacute","Odblgrave","Odieresis","Odieresiscyrillic","Odieresissmall","Odotbelow","Ogoneksmall","Ograve","Ogravesmall","Oharmenian","Ohm","Ohookabove","Ohorn","Ohornacute","Ohorndotbelow","Ohorngrave","Ohornhookabove","Ohorntilde","Ohungarumlaut","Oi","Oinvertedbreve","Omacron","Omacronacute","Omacrongrave","Omega","Omegacyrillic","Omegagreek","Omegaroundcyrillic","Omegatitlocyrillic","Omegatonos","Omicron","Omicrontonos","Omonospace","Oneroman","Oogonek","Oogonekmacron","Oopen","Oslash","Oslashacute","Oslashsmall","Osmall","Ostrokeacute","Otcyrillic","Otilde","Otildeacute","Otildedieresis","Otildesmall","P","Pacute","Pcircle","Pdotaccent","Pecyrillic","Peharmenian","Pemiddlehookcyrillic","Phi","Phook","Pi","Piwrarmenian","Pmonospace","Psi","Psicyrillic","Psmall","Qcircle","Qmonospace","Qsmall","Raarmenian","Racute","Rcaron","Rcedilla","Rcircle","Rcommaaccent","Rdblgrave","Rdotaccent","Rdotbelow","Rdotbelowmacron","Reharmenian","Rfraktur","Rho","Ringsmall","Rinvertedbreve","Rlinebelow","Rmonospace","Rsmall","Rsmallinverted","Rsmallinvertedsuperior","SF010000","SF020000","SF030000","SF040000","SF050000","SF060000","SF070000","SF080000","SF090000","SF100000","SF110000","SF190000","SF200000","SF210000","SF220000","SF230000","SF240000","SF250000","SF260000","SF270000","SF280000","SF360000","SF370000","SF380000","SF390000","SF400000","SF410000","SF420000","SF430000","SF440000","SF450000","SF460000","SF470000","SF480000","SF490000","SF500000","SF510000","SF520000","SF530000","SF540000","Sacute","Sacutedotaccent","Sampigreek","Scaron","Scarondotaccent","Scaronsmall","Scedilla","Schwa","Schwacyrillic","Schwadieresiscyrillic","Scircle","Scircumflex","Scommaaccent","Sdotaccent","Sdotbelow","Sdotbelowdotaccent","Seharmenian","Sevenroman","Shaarmenian","Shacyrillic","Shchacyrillic","Sheicoptic","Shhacyrillic","Shimacoptic","Sigma","Sixroman","Smonospace","Softsigncyrillic","Ssmall","Stigmagreek","Tau","Tbar","Tcaron","Tcedilla","Tcircle","Tcircumflexbelow","Tcommaaccent","Tdotaccent","Tdotbelow","Tecyrillic","Tedescendercyrillic","Tenroman","Tetsecyrillic","Theta","Thook","Thorn","Thornsmall","Threeroman","Tildesmall","Tiwnarmenian","Tlinebelow","Tmonospace","Toarmenian","Tonefive","Tonesix","Tonetwo","Tretroflexhook","Tsecyrillic","Tshecyrillic","Tsmall","Twelveroman","Tworoman","U","Uacute","Uacutesmall","Ubreve","Ucaron","Ucircle","Ucircumflex","Ucircumflexbelow","Ucircumflexsmall","Ucyrillic","Udblacute","Udblgrave","Udieresis","Udieresisacute","Udieresisbelow","Udieresiscaron","Udieresiscyrillic","Udieresisgrave","Udieresismacron","Udieresissmall","Udotbelow","Ugrave","Ugravesmall","Uhookabove","Uhorn","Uhornacute","Uhorndotbelow","Uhorngrave","Uhornhookabove","Uhorntilde","Uhungarumlaut","Uhungarumlautcyrillic","Uinvertedbreve","Ukcyrillic","Umacron","Umacroncyrillic","Umacrondieresis","Umonospace","Uogonek","Upsilon","Upsilon1","Upsilonacutehooksymbolgreek","Upsilonafrican","Upsilondieresis","Upsilondieresishooksymbolgreek","Upsilonhooksymbol","Upsilontonos","Uring","Ushortcyrillic","Usmall","Ustraightcyrillic","Ustraightstrokecyrillic","Utilde","Utildeacute","Utildebelow","Vcircle","Vdotbelow","Vecyrillic","Vewarmenian","Vhook","Vmonospace","Voarmenian","Vsmall","Vtilde","Wacute","Wcircle","Wcircumflex","Wdieresis","Wdotaccent","Wdotbelow","Wgrave","Wmonospace","Wsmall","Xcircle","Xdieresis","Xdotaccent","Xeharmenian","Xi","Xmonospace","Xsmall","Yacute","Yacutesmall","Yatcyrillic","Ycircle","Ycircumflex","Ydieresis","Ydieresissmall","Ydotaccent","Ydotbelow","Yericyrillic","Yerudieresiscyrillic","Ygrave","Yhook","Yhookabove","Yiarmenian","Yicyrillic","Yiwnarmenian","Ymonospace","Ysmall","Ytilde","Yusbigcyrillic","Yusbigiotifiedcyrillic","Yuslittlecyrillic","Yuslittleiotifiedcyrillic","Zaarmenian","Zacute","Zcaron","Zcaronsmall","Zcircle","Zcircumflex","Zdot","Zdotaccent","Zdotbelow","Zecyrillic","Zedescendercyrillic","Zedieresiscyrillic","Zeta","Zhearmenian","Zhebrevecyrillic","Zhecyrillic","Zhedescendercyrillic","Zhedieresiscyrillic","Zlinebelow","Zmonospace","Zsmall","Zstroke","aabengali","aacute","aadeva","aagujarati","aagurmukhi","aamatragurmukhi","aarusquare","aavowelsignbengali","aavowelsigndeva","aavowelsigngujarati","abbreviationmarkarmenian","abbreviationsigndeva","abengali","abopomofo","abreve","abreveacute","abrevecyrillic","abrevedotbelow","abrevegrave","abrevehookabove","abrevetilde","acaron","acircle","acircumflex","acircumflexacute","acircumflexdotbelow","acircumflexgrave","acircumflexhookabove","acircumflextilde","acute","acutebelowcmb","acutecmb","acutecomb","acutedeva","acutelowmod","acutetonecmb","acyrillic","adblgrave","addakgurmukhi","adeva","adieresis","adieresiscyrillic","adieresismacron","adotbelow","adotmacron","ae","aeacute","aekorean","aemacron","afii00208","afii08941","afii10017","afii10018","afii10019","afii10020","afii10021","afii10022","afii10023","afii10024","afii10025","afii10026","afii10027","afii10028","afii10029","afii10030","afii10031","afii10032","afii10033","afii10034","afii10035","afii10036","afii10037","afii10038","afii10039","afii10040","afii10041","afii10042","afii10043","afii10044","afii10045","afii10046","afii10047","afii10048","afii10049","afii10050","afii10051","afii10052","afii10053","afii10054","afii10055","afii10056","afii10057","afii10058","afii10059","afii10060","afii10061","afii10062","afii10063","afii10064","afii10065","afii10066","afii10067","afii10068","afii10069","afii10070","afii10071","afii10072","afii10073","afii10074","afii10075","afii10076","afii10077","afii10078","afii10079","afii10080","afii10081","afii10082","afii10083","afii10084","afii10085","afii10086","afii10087","afii10088","afii10089","afii10090","afii10091","afii10092","afii10093","afii10094","afii10095","afii10096","afii10097","afii10098","afii10099","afii10100","afii10101","afii10102","afii10103","afii10104","afii10105","afii10106","afii10107","afii10108","afii10109","afii10110","afii10145","afii10146","afii10147","afii10148","afii10192","afii10193","afii10194","afii10195","afii10196","afii10831","afii10832","afii10846","afii299","afii300","afii301","afii57381","afii57388","afii57392","afii57393","afii57394","afii57395","afii57396","afii57397","afii57398","afii57399","afii57400","afii57401","afii57403","afii57407","afii57409","afii57410","afii57411","afii57412","afii57413","afii57414","afii57415","afii57416","afii57417","afii57418","afii57419","afii57420","afii57421","afii57422","afii57423","afii57424","afii57425","afii57426","afii57427","afii57428","afii57429","afii57430","afii57431","afii57432","afii57433","afii57434","afii57440","afii57441","afii57442","afii57443","afii57444","afii57445","afii57446","afii57448","afii57449","afii57450","afii57451","afii57452","afii57453","afii57454","afii57455","afii57456","afii57457","afii57458","afii57470","afii57505","afii57506","afii57507","afii57508","afii57509","afii57511","afii57512","afii57513","afii57514","afii57519","afii57534","afii57636","afii57645","afii57658","afii57664","afii57665","afii57666","afii57667","afii57668","afii57669","afii57670","afii57671","afii57672","afii57673","afii57674","afii57675","afii57676","afii57677","afii57678","afii57679","afii57680","afii57681","afii57682","afii57683","afii57684","afii57685","afii57686","afii57687","afii57688","afii57689","afii57690","afii57694","afii57695","afii57700","afii57705","afii57716","afii57717","afii57718","afii57723","afii57793","afii57794","afii57795","afii57796","afii57797","afii57798","afii57799","afii57800","afii57801","afii57802","afii57803","afii57804","afii57806","afii57807","afii57839","afii57841","afii57842","afii57929","afii61248","afii61289","afii61352","afii61573","afii61574","afii61575","afii61664","afii63167","afii64937","agrave","agujarati","agurmukhi","ahiragana","ahookabove","aibengali","aibopomofo","aideva","aiecyrillic","aigujarati","aigurmukhi","aimatragurmukhi","ainarabic","ainfinalarabic","aininitialarabic","ainmedialarabic","ainvertedbreve","aivowelsignbengali","aivowelsigndeva","aivowelsigngujarati","akatakana","akatakanahalfwidth","akorean","alef","alefarabic","alefdageshhebrew","aleffinalarabic","alefhamzaabovearabic","alefhamzaabovefinalarabic","alefhamzabelowarabic","alefhamzabelowfinalarabic","alefhebrew","aleflamedhebrew","alefmaddaabovearabic","alefmaddaabovefinalarabic","alefmaksuraarabic","alefmaksurafinalarabic","alefmaksurainitialarabic","alefmaksuramedialarabic","alefpatahhebrew","alefqamatshebrew","aleph","allequal","alphatonos","amacron","amonospace","ampersand","ampersandmonospace","ampersandsmall","amsquare","anbopomofo","angbopomofo","angbracketleft","angbracketright","angkhankhuthai","anglebracketleft","anglebracketleftvertical","anglebracketright","anglebracketrightvertical","angleleft","angleright","angstrom","anoteleia","anudattadeva","anusvarabengali","anusvaradeva","anusvaragujarati","aogonek","apaatosquare","aparen","apostrophearmenian","apostrophemod","apple","approaches","approxequal","approxequalorimage","approximatelyequal","araeaekorean","araeakorean","arighthalfring","aring","aringacute","aringbelow","arrowboth","arrowdashdown","arrowdashleft","arrowdashright","arrowdashup","arrowdblboth","arrowdbldown","arrowdblleft","arrowdblright","arrowdblup","arrowdown","arrowdownleft","arrowdownright","arrowdownwhite","arrowheaddownmod","arrowheadleftmod","arrowheadrightmod","arrowheadupmod","arrowhorizex","arrowleft","arrowleftdbl","arrowleftdblstroke","arrowleftoverright","arrowleftwhite","arrowright","arrowrightdblstroke","arrowrightheavy","arrowrightoverleft","arrowrightwhite","arrowtableft","arrowtabright","arrowup","arrowupdn","arrowupdnbse","arrowupdownbase","arrowupleft","arrowupleftofdown","arrowupright","arrowupwhite","arrowvertex","asciicircum","asciicircummonospace","asciitilde","asciitildemonospace","ascript","ascriptturned","asmallhiragana","asmallkatakana","asmallkatakanahalfwidth","asterisk","asteriskaltonearabic","asteriskarabic","asteriskmath","asteriskmonospace","asterisksmall","asterism","asuperior","asymptoticallyequal","at","atilde","atmonospace","atsmall","aturned","aubengali","aubopomofo","audeva","augujarati","augurmukhi","aulengthmarkbengali","aumatragurmukhi","auvowelsignbengali","auvowelsigndeva","auvowelsigngujarati","avagrahadeva","aybarmenian","ayin","ayinaltonehebrew","ayinhebrew","babengali","backslash","backslashmonospace","badeva","bagujarati","bagurmukhi","bahiragana","bahtthai","bakatakana","bar","barmonospace","bbopomofo","bcircle","bdotaccent","bdotbelow","beamedsixteenthnotes","because","becyrillic","beharabic","behfinalarabic","behinitialarabic","behiragana","behmedialarabic","behmeeminitialarabic","behmeemisolatedarabic","behnoonfinalarabic","bekatakana","benarmenian","bet","beta","betasymbolgreek","betdagesh","betdageshhebrew","bethebrew","betrafehebrew","bhabengali","bhadeva","bhagujarati","bhagurmukhi","bhook","bihiragana","bikatakana","bilabialclick","bindigurmukhi","birusquare","blackcircle","blackdiamond","blackdownpointingtriangle","blackleftpointingpointer","blackleftpointingtriangle","blacklenticularbracketleft","blacklenticularbracketleftvertical","blacklenticularbracketright","blacklenticularbracketrightvertical","blacklowerlefttriangle","blacklowerrighttriangle","blackrectangle","blackrightpointingpointer","blackrightpointingtriangle","blacksmallsquare","blacksmilingface","blacksquare","blackstar","blackupperlefttriangle","blackupperrighttriangle","blackuppointingsmalltriangle","blackuppointingtriangle","blank","blinebelow","block","bmonospace","bobaimaithai","bohiragana","bokatakana","bparen","bqsquare","braceex","braceleft","braceleftbt","braceleftmid","braceleftmonospace","braceleftsmall","bracelefttp","braceleftvertical","braceright","bracerightbt","bracerightmid","bracerightmonospace","bracerightsmall","bracerighttp","bracerightvertical","bracketleft","bracketleftbt","bracketleftex","bracketleftmonospace","bracketlefttp","bracketright","bracketrightbt","bracketrightex","bracketrightmonospace","bracketrighttp","breve","brevebelowcmb","brevecmb","breveinvertedbelowcmb","breveinvertedcmb","breveinverteddoublecmb","bridgebelowcmb","bridgeinvertedbelowcmb","brokenbar","bstroke","bsuperior","btopbar","buhiragana","bukatakana","bullet","bulletinverse","bulletoperator","bullseye","caarmenian","cabengali","cacute","cadeva","cagujarati","cagurmukhi","calsquare","candrabindubengali","candrabinducmb","candrabindudeva","candrabindugujarati","capslock","careof","caron","caronbelowcmb","caroncmb","carriagereturn","cbopomofo","ccaron","ccedilla","ccedillaacute","ccircle","ccircumflex","ccurl","cdot","cdotaccent","cdsquare","cedilla","cedillacmb","cent","centigrade","centinferior","centmonospace","centoldstyle","centsuperior","chaarmenian","chabengali","chadeva","chagujarati","chagurmukhi","chbopomofo","cheabkhasiancyrillic","checkmark","checyrillic","chedescenderabkhasiancyrillic","chedescendercyrillic","chedieresiscyrillic","cheharmenian","chekhakassiancyrillic","cheverticalstrokecyrillic","chi","chieuchacirclekorean","chieuchaparenkorean","chieuchcirclekorean","chieuchkorean","chieuchparenkorean","chochangthai","chochanthai","chochingthai","chochoethai","chook","cieucacirclekorean","cieucaparenkorean","cieuccirclekorean","cieuckorean","cieucparenkorean","cieucuparenkorean","circle","circlecopyrt","circlemultiply","circleot","circleplus","circlepostalmark","circlewithlefthalfblack","circlewithrighthalfblack","circumflex","circumflexbelowcmb","circumflexcmb","clickalveolar","clickdental","clicklateral","clickretroflex","club","clubsuitblack","clubsuitwhite","cmcubedsquare","cmonospace","cmsquaredsquare","coarmenian","colonmonetary","colonmonospace","colonsign","colonsmall","colontriangularhalfmod","colontriangularmod","comma","commaabovecmb","commaaboverightcmb","commaaccent","commaarabic","commaarmenian","commainferior","commamonospace","commareversedabovecmb","commareversedmod","commasmall","commasuperior","commaturnedabovecmb","commaturnedmod","compass","congruent","contourintegral","control","controlACK","controlBEL","controlBS","controlCAN","controlCR","controlDC1","controlDC2","controlDC3","controlDC4","controlDEL","controlDLE","controlEM","controlENQ","controlEOT","controlESC","controlETB","controlETX","controlFF","controlFS","controlGS","controlHT","controlLF","controlNAK","controlRS","controlSI","controlSO","controlSOT","controlSTX","controlSUB","controlSYN","controlUS","controlVT","copyright","copyrightsans","copyrightserif","cornerbracketleft","cornerbracketlefthalfwidth","cornerbracketleftvertical","cornerbracketright","cornerbracketrighthalfwidth","cornerbracketrightvertical","corporationsquare","cosquare","coverkgsquare","cparen","cruzeiro","cstretched","curlyand","curlyor","currency","cyrBreve","cyrFlex","cyrbreve","cyrflex","daarmenian","dabengali","dadarabic","dadeva","dadfinalarabic","dadinitialarabic","dadmedialarabic","dagesh","dageshhebrew","dagger","daggerdbl","dagujarati","dagurmukhi","dahiragana","dakatakana","dalarabic","dalet","daletdagesh","daletdageshhebrew","dalethebrew","dalfinalarabic","dammaarabic","dammalowarabic","dammatanaltonearabic","dammatanarabic","danda","dargahebrew","dargalefthebrew","dasiapneumatacyrilliccmb","dblGrave","dblanglebracketleft","dblanglebracketleftvertical","dblanglebracketright","dblanglebracketrightvertical","dblarchinvertedbelowcmb","dblarrowleft","dblarrowright","dbldanda","dblgrave","dblgravecmb","dblintegral","dbllowline","dbllowlinecmb","dbloverlinecmb","dblprimemod","dblverticalbar","dblverticallineabovecmb","dbopomofo","dbsquare","dcaron","dcedilla","dcircle","dcircumflexbelow","dcroat","ddabengali","ddadeva","ddagujarati","ddagurmukhi","ddalarabic","ddalfinalarabic","dddhadeva","ddhabengali","ddhadeva","ddhagujarati","ddhagurmukhi","ddotaccent","ddotbelow","decimalseparatorarabic","decimalseparatorpersian","decyrillic","degree","dehihebrew","dehiragana","deicoptic","dekatakana","deleteleft","deleteright","deltaturned","denominatorminusonenumeratorbengali","dezh","dhabengali","dhadeva","dhagujarati","dhagurmukhi","dhook","dialytikatonos","dialytikatonoscmb","diamond","diamondsuitwhite","dieresis","dieresisacute","dieresisbelowcmb","dieresiscmb","dieresisgrave","dieresistonos","dihiragana","dikatakana","dittomark","divide","divides","divisionslash","djecyrillic","dkshade","dlinebelow","dlsquare","dmacron","dmonospace","dnblock","dochadathai","dodekthai","dohiragana","dokatakana","dollar","dollarinferior","dollarmonospace","dollaroldstyle","dollarsmall","dollarsuperior","dong","dorusquare","dotaccent","dotaccentcmb","dotbelowcmb","dotbelowcomb","dotkatakana","dotlessi","dotlessj","dotlessjstrokehook","dotmath","dottedcircle","doubleyodpatah","doubleyodpatahhebrew","downtackbelowcmb","downtackmod","dparen","dsuperior","dtail","dtopbar","duhiragana","dukatakana","dz","dzaltone","dzcaron","dzcurl","dzeabkhasiancyrillic","dzecyrillic","dzhecyrillic","eacute","earth","ebengali","ebopomofo","ebreve","ecandradeva","ecandragujarati","ecandravowelsigndeva","ecandravowelsigngujarati","ecaron","ecedillabreve","echarmenian","echyiwnarmenian","ecircle","ecircumflex","ecircumflexacute","ecircumflexbelow","ecircumflexdotbelow","ecircumflexgrave","ecircumflexhookabove","ecircumflextilde","ecyrillic","edblgrave","edeva","edieresis","edot","edotaccent","edotbelow","eegurmukhi","eematragurmukhi","efcyrillic","egrave","egujarati","eharmenian","ehbopomofo","ehiragana","ehookabove","eibopomofo","eight","eightarabic","eightbengali","eightcircle","eightcircleinversesansserif","eightdeva","eighteencircle","eighteenparen","eighteenperiod","eightgujarati","eightgurmukhi","eighthackarabic","eighthangzhou","eighthnotebeamed","eightideographicparen","eightinferior","eightmonospace","eightoldstyle","eightparen","eightperiod","eightpersian","eightroman","eightsuperior","eightthai","einvertedbreve","eiotifiedcyrillic","ekatakana","ekatakanahalfwidth","ekonkargurmukhi","ekorean","elcyrillic","elevencircle","elevenparen","elevenperiod","elevenroman","ellipsis","ellipsisvertical","emacron","emacronacute","emacrongrave","emcyrillic","emdash","emdashvertical","emonospace","emphasismarkarmenian","emptyset","enbopomofo","encyrillic","endash","endashvertical","endescendercyrillic","eng","engbopomofo","enghecyrillic","enhookcyrillic","enspace","eogonek","eokorean","eopen","eopenclosed","eopenreversed","eopenreversedclosed","eopenreversedhook","eparen","epsilontonos","equal","equalmonospace","equalsmall","equalsuperior","equivalence","erbopomofo","ercyrillic","ereversed","ereversedcyrillic","escyrillic","esdescendercyrillic","esh","eshcurl","eshortdeva","eshortvowelsigndeva","eshreversedloop","eshsquatreversed","esmallhiragana","esmallkatakana","esmallkatakanahalfwidth","estimated","esuperior","eta","etarmenian","etatonos","eth","etilde","etildebelow","etnahtafoukhhebrew","etnahtafoukhlefthebrew","etnahtahebrew","etnahtalefthebrew","eturned","eukorean","euro","evowelsignbengali","evowelsigndeva","evowelsigngujarati","exclam","exclamarmenian","exclamdbl","exclamdown","exclamdownsmall","exclammonospace","exclamsmall","existential","ezh","ezhcaron","ezhcurl","ezhreversed","ezhtail","fadeva","fagurmukhi","fahrenheit","fathaarabic","fathalowarabic","fathatanarabic","fbopomofo","fcircle","fdotaccent","feharabic","feharmenian","fehfinalarabic","fehinitialarabic","fehmedialarabic","feicoptic","female","ff","ffi","ffl","fi","fifteencircle","fifteenparen","fifteenperiod","figuredash","filledbox","filledrect","finalkaf","finalkafdagesh","finalkafdageshhebrew","finalkafhebrew","finalmem","finalmemhebrew","finalnun","finalnunhebrew","finalpe","finalpehebrew","finaltsadi","finaltsadihebrew","firsttonechinese","fisheye","fitacyrillic","five","fivearabic","fivebengali","fivecircle","fivecircleinversesansserif","fivedeva","fiveeighths","fivegujarati","fivegurmukhi","fivehackarabic","fivehangzhou","fiveideographicparen","fiveinferior","fivemonospace","fiveoldstyle","fiveparen","fiveperiod","fivepersian","fiveroman","fivesuperior","fivethai","fl","florin","fmonospace","fmsquare","fofanthai","fofathai","fongmanthai","forall","four","fourarabic","fourbengali","fourcircle","fourcircleinversesansserif","fourdeva","fourgujarati","fourgurmukhi","fourhackarabic","fourhangzhou","fourideographicparen","fourinferior","fourmonospace","fournumeratorbengali","fouroldstyle","fourparen","fourperiod","fourpersian","fourroman","foursuperior","fourteencircle","fourteenparen","fourteenperiod","fourthai","fourthtonechinese","fparen","fraction","franc","gabengali","gacute","gadeva","gafarabic","gaffinalarabic","gafinitialarabic","gafmedialarabic","gagujarati","gagurmukhi","gahiragana","gakatakana","gammalatinsmall","gammasuperior","gangiacoptic","gbopomofo","gbreve","gcaron","gcedilla","gcircle","gcircumflex","gcommaaccent","gdot","gdotaccent","gecyrillic","gehiragana","gekatakana","geometricallyequal","gereshaccenthebrew","gereshhebrew","gereshmuqdamhebrew","germandbls","gershayimaccenthebrew","gershayimhebrew","getamark","ghabengali","ghadarmenian","ghadeva","ghagujarati","ghagurmukhi","ghainarabic","ghainfinalarabic","ghaininitialarabic","ghainmedialarabic","ghemiddlehookcyrillic","ghestrokecyrillic","gheupturncyrillic","ghhadeva","ghhagurmukhi","ghook","ghzsquare","gihiragana","gikatakana","gimarmenian","gimel","gimeldagesh","gimeldageshhebrew","gimelhebrew","gjecyrillic","glottalinvertedstroke","glottalstop","glottalstopinverted","glottalstopmod","glottalstopreversed","glottalstopreversedmod","glottalstopreversedsuperior","glottalstopstroke","glottalstopstrokereversed","gmacron","gmonospace","gohiragana","gokatakana","gparen","gpasquare","grave","gravebelowcmb","gravecmb","gravecomb","gravedeva","gravelowmod","gravemonospace","gravetonecmb","greater","greaterequal","greaterequalorless","greatermonospace","greaterorequivalent","greaterorless","greateroverequal","greatersmall","gscript","gstroke","guhiragana","guillemotleft","guillemotright","guilsinglleft","guilsinglright","gukatakana","guramusquare","gysquare","haabkhasiancyrillic","haaltonearabic","habengali","hadescendercyrillic","hadeva","hagujarati","hagurmukhi","haharabic","hahfinalarabic","hahinitialarabic","hahiragana","hahmedialarabic","haitusquare","hakatakana","hakatakanahalfwidth","halantgurmukhi","hamzaarabic","hamzalowarabic","hangulfiller","hardsigncyrillic","harpoonleftbarbup","harpoonrightbarbup","hasquare","hatafpatah","hatafpatah16","hatafpatah23","hatafpatah2f","hatafpatahhebrew","hatafpatahnarrowhebrew","hatafpatahquarterhebrew","hatafpatahwidehebrew","hatafqamats","hatafqamats1b","hatafqamats28","hatafqamats34","hatafqamatshebrew","hatafqamatsnarrowhebrew","hatafqamatsquarterhebrew","hatafqamatswidehebrew","hatafsegol","hatafsegol17","hatafsegol24","hatafsegol30","hatafsegolhebrew","hatafsegolnarrowhebrew","hatafsegolquarterhebrew","hatafsegolwidehebrew","hbar","hbopomofo","hbrevebelow","hcedilla","hcircle","hcircumflex","hdieresis","hdotaccent","hdotbelow","he","heart","heartsuitblack","heartsuitwhite","hedagesh","hedageshhebrew","hehaltonearabic","heharabic","hehebrew","hehfinalaltonearabic","hehfinalalttwoarabic","hehfinalarabic","hehhamzaabovefinalarabic","hehhamzaaboveisolatedarabic","hehinitialaltonearabic","hehinitialarabic","hehiragana","hehmedialaltonearabic","hehmedialarabic","heiseierasquare","hekatakana","hekatakanahalfwidth","hekutaarusquare","henghook","herutusquare","het","hethebrew","hhook","hhooksuperior","hieuhacirclekorean","hieuhaparenkorean","hieuhcirclekorean","hieuhkorean","hieuhparenkorean","hihiragana","hikatakana","hikatakanahalfwidth","hiriq","hiriq14","hiriq21","hiriq2d","hiriqhebrew","hiriqnarrowhebrew","hiriqquarterhebrew","hiriqwidehebrew","hlinebelow","hmonospace","hoarmenian","hohipthai","hohiragana","hokatakana","hokatakanahalfwidth","holam","holam19","holam26","holam32","holamhebrew","holamnarrowhebrew","holamquarterhebrew","holamwidehebrew","honokhukthai","hookabovecomb","hookcmb","hookpalatalizedbelowcmb","hookretroflexbelowcmb","hoonsquare","horicoptic","horizontalbar","horncmb","hotsprings","house","hparen","hsuperior","hturned","huhiragana","huiitosquare","hukatakana","hukatakanahalfwidth","hungarumlaut","hungarumlautcmb","hv","hyphen","hypheninferior","hyphenmonospace","hyphensmall","hyphensuperior","hyphentwo","iacute","iacyrillic","ibengali","ibopomofo","ibreve","icaron","icircle","icircumflex","icyrillic","idblgrave","ideographearthcircle","ideographfirecircle","ideographicallianceparen","ideographiccallparen","ideographiccentrecircle","ideographicclose","ideographiccomma","ideographiccommaleft","ideographiccongratulationparen","ideographiccorrectcircle","ideographicearthparen","ideographicenterpriseparen","ideographicexcellentcircle","ideographicfestivalparen","ideographicfinancialcircle","ideographicfinancialparen","ideographicfireparen","ideographichaveparen","ideographichighcircle","ideographiciterationmark","ideographiclaborcircle","ideographiclaborparen","ideographicleftcircle","ideographiclowcircle","ideographicmedicinecircle","ideographicmetalparen","ideographicmoonparen","ideographicnameparen","ideographicperiod","ideographicprintcircle","ideographicreachparen","ideographicrepresentparen","ideographicresourceparen","ideographicrightcircle","ideographicsecretcircle","ideographicselfparen","ideographicsocietyparen","ideographicspace","ideographicspecialparen","ideographicstockparen","ideographicstudyparen","ideographicsunparen","ideographicsuperviseparen","ideographicwaterparen","ideographicwoodparen","ideographiczero","ideographmetalcircle","ideographmooncircle","ideographnamecircle","ideographsuncircle","ideographwatercircle","ideographwoodcircle","ideva","idieresis","idieresisacute","idieresiscyrillic","idotbelow","iebrevecyrillic","iecyrillic","ieungacirclekorean","ieungaparenkorean","ieungcirclekorean","ieungkorean","ieungparenkorean","igrave","igujarati","igurmukhi","ihiragana","ihookabove","iibengali","iicyrillic","iideva","iigujarati","iigurmukhi","iimatragurmukhi","iinvertedbreve","iishortcyrillic","iivowelsignbengali","iivowelsigndeva","iivowelsigngujarati","ij","ikatakana","ikatakanahalfwidth","ikorean","ilde","iluyhebrew","imacron","imacroncyrillic","imageorapproximatelyequal","imatragurmukhi","imonospace","increment","infinity","iniarmenian","integral","integralbottom","integralbt","integralex","integraltop","integraltp","intersection","intisquare","invbullet","invcircle","invsmileface","iocyrillic","iogonek","iota","iotadieresis","iotadieresistonos","iotalatin","iotatonos","iparen","irigurmukhi","ismallhiragana","ismallkatakana","ismallkatakanahalfwidth","issharbengali","istroke","isuperior","iterationhiragana","iterationkatakana","itilde","itildebelow","iubopomofo","iucyrillic","ivowelsignbengali","ivowelsigndeva","ivowelsigngujarati","izhitsacyrillic","izhitsadblgravecyrillic","jaarmenian","jabengali","jadeva","jagujarati","jagurmukhi","jbopomofo","jcaron","jcircle","jcircumflex","jcrossedtail","jdotlessstroke","jecyrillic","jeemarabic","jeemfinalarabic","jeeminitialarabic","jeemmedialarabic","jeharabic","jehfinalarabic","jhabengali","jhadeva","jhagujarati","jhagurmukhi","jheharmenian","jis","jmonospace","jparen","jsuperior","kabashkircyrillic","kabengali","kacute","kacyrillic","kadescendercyrillic","kadeva","kaf","kafarabic","kafdagesh","kafdageshhebrew","kaffinalarabic","kafhebrew","kafinitialarabic","kafmedialarabic","kafrafehebrew","kagujarati","kagurmukhi","kahiragana","kahookcyrillic","kakatakana","kakatakanahalfwidth","kappa","kappasymbolgreek","kapyeounmieumkorean","kapyeounphieuphkorean","kapyeounpieupkorean","kapyeounssangpieupkorean","karoriisquare","kashidaautoarabic","kashidaautonosidebearingarabic","kasmallkatakana","kasquare","kasraarabic","kasratanarabic","kastrokecyrillic","katahiraprolongmarkhalfwidth","kaverticalstrokecyrillic","kbopomofo","kcalsquare","kcaron","kcedilla","kcircle","kcommaaccent","kdotbelow","keharmenian","kehiragana","kekatakana","kekatakanahalfwidth","kenarmenian","kesmallkatakana","kgreenlandic","khabengali","khacyrillic","khadeva","khagujarati","khagurmukhi","khaharabic","khahfinalarabic","khahinitialarabic","khahmedialarabic","kheicoptic","khhadeva","khhagurmukhi","khieukhacirclekorean","khieukhaparenkorean","khieukhcirclekorean","khieukhkorean","khieukhparenkorean","khokhaithai","khokhonthai","khokhuatthai","khokhwaithai","khomutthai","khook","khorakhangthai","khzsquare","kihiragana","kikatakana","kikatakanahalfwidth","kiroguramusquare","kiromeetorusquare","kirosquare","kiyeokacirclekorean","kiyeokaparenkorean","kiyeokcirclekorean","kiyeokkorean","kiyeokparenkorean","kiyeoksioskorean","kjecyrillic","klinebelow","klsquare","kmcubedsquare","kmonospace","kmsquaredsquare","kohiragana","kohmsquare","kokaithai","kokatakana","kokatakanahalfwidth","kooposquare","koppacyrillic","koreanstandardsymbol","koroniscmb","kparen","kpasquare","ksicyrillic","ktsquare","kturned","kuhiragana","kukatakana","kukatakanahalfwidth","kvsquare","kwsquare","labengali","lacute","ladeva","lagujarati","lagurmukhi","lakkhangyaothai","lamaleffinalarabic","lamalefhamzaabovefinalarabic","lamalefhamzaaboveisolatedarabic","lamalefhamzabelowfinalarabic","lamalefhamzabelowisolatedarabic","lamalefisolatedarabic","lamalefmaddaabovefinalarabic","lamalefmaddaaboveisolatedarabic","lamarabic","lambda","lambdastroke","lamed","lameddagesh","lameddageshhebrew","lamedhebrew","lamfinalarabic","lamhahinitialarabic","laminitialarabic","lamjeeminitialarabic","lamkhahinitialarabic","lamlamhehisolatedarabic","lammedialarabic","lammeemhahinitialarabic","lammeeminitialarabic","largecircle","lbar","lbelt","lbopomofo","lcaron","lcedilla","lcircle","lcircumflexbelow","lcommaaccent","ldot","ldotaccent","ldotbelow","ldotbelowmacron","leftangleabovecmb","lefttackbelowcmb","less","lessequal","lessequalorgreater","lessmonospace","lessorequivalent","lessorgreater","lessoverequal","lesssmall","lezh","lfblock","lhookretroflex","lira","liwnarmenian","lj","ljecyrillic","ll","lladeva","llagujarati","llinebelow","llladeva","llvocalicbengali","llvocalicdeva","llvocalicvowelsignbengali","llvocalicvowelsigndeva","lmiddletilde","lmonospace","lmsquare","lochulathai","logicaland","logicalnot","logicalnotreversed","logicalor","lolingthai","longs","lowlinecenterline","lowlinecmb","lowlinedashed","lozenge","lparen","lslash","lsquare","lsuperior","ltshade","luthai","lvocalicbengali","lvocalicdeva","lvocalicvowelsignbengali","lvocalicvowelsigndeva","lxsquare","mabengali","macron","macronbelowcmb","macroncmb","macronlowmod","macronmonospace","macute","madeva","magujarati","magurmukhi","mahapakhhebrew","mahapakhlefthebrew","mahiragana","maichattawalowleftthai","maichattawalowrightthai","maichattawathai","maichattawaupperleftthai","maieklowleftthai","maieklowrightthai","maiekthai","maiekupperleftthai","maihanakatleftthai","maihanakatthai","maitaikhuleftthai","maitaikhuthai","maitholowleftthai","maitholowrightthai","maithothai","maithoupperleftthai","maitrilowleftthai","maitrilowrightthai","maitrithai","maitriupperleftthai","maiyamokthai","makatakana","makatakanahalfwidth","male","mansyonsquare","maqafhebrew","mars","masoracirclehebrew","masquare","mbopomofo","mbsquare","mcircle","mcubedsquare","mdotaccent","mdotbelow","meemarabic","meemfinalarabic","meeminitialarabic","meemmedialarabic","meemmeeminitialarabic","meemmeemisolatedarabic","meetorusquare","mehiragana","meizierasquare","mekatakana","mekatakanahalfwidth","mem","memdagesh","memdageshhebrew","memhebrew","menarmenian","merkhahebrew","merkhakefulahebrew","merkhakefulalefthebrew","merkhalefthebrew","mhook","mhzsquare","middledotkatakanahalfwidth","middot","mieumacirclekorean","mieumaparenkorean","mieumcirclekorean","mieumkorean","mieumpansioskorean","mieumparenkorean","mieumpieupkorean","mieumsioskorean","mihiragana","mikatakana","mikatakanahalfwidth","minus","minusbelowcmb","minuscircle","minusmod","minusplus","minute","miribaarusquare","mirisquare","mlonglegturned","mlsquare","mmcubedsquare","mmonospace","mmsquaredsquare","mohiragana","mohmsquare","mokatakana","mokatakanahalfwidth","molsquare","momathai","moverssquare","moverssquaredsquare","mparen","mpasquare","mssquare","msuperior","mturned","mu","mu1","muasquare","muchgreater","muchless","mufsquare","mugreek","mugsquare","muhiragana","mukatakana","mukatakanahalfwidth","mulsquare","multiply","mumsquare","munahhebrew","munahlefthebrew","musicalnote","musicalnotedbl","musicflatsign","musicsharpsign","mussquare","muvsquare","muwsquare","mvmegasquare","mvsquare","mwmegasquare","mwsquare","nabengali","nabla","nacute","nadeva","nagujarati","nagurmukhi","nahiragana","nakatakana","nakatakanahalfwidth","napostrophe","nasquare","nbopomofo","nbspace","ncaron","ncedilla","ncircle","ncircumflexbelow","ncommaaccent","ndotaccent","ndotbelow","nehiragana","nekatakana","nekatakanahalfwidth","newsheqelsign","nfsquare","ngabengali","ngadeva","ngagujarati","ngagurmukhi","ngonguthai","nhiragana","nhookleft","nhookretroflex","nieunacirclekorean","nieunaparenkorean","nieuncieuckorean","nieuncirclekorean","nieunhieuhkorean","nieunkorean","nieunpansioskorean","nieunparenkorean","nieunsioskorean","nieuntikeutkorean","nihiragana","nikatakana","nikatakanahalfwidth","nikhahitleftthai","nikhahitthai","nine","ninearabic","ninebengali","ninecircle","ninecircleinversesansserif","ninedeva","ninegujarati","ninegurmukhi","ninehackarabic","ninehangzhou","nineideographicparen","nineinferior","ninemonospace","nineoldstyle","nineparen","nineperiod","ninepersian","nineroman","ninesuperior","nineteencircle","nineteenparen","nineteenperiod","ninethai","nj","njecyrillic","nkatakana","nkatakanahalfwidth","nlegrightlong","nlinebelow","nmonospace","nmsquare","nnabengali","nnadeva","nnagujarati","nnagurmukhi","nnnadeva","nohiragana","nokatakana","nokatakanahalfwidth","nonbreakingspace","nonenthai","nonuthai","noonarabic","noonfinalarabic","noonghunnaarabic","noonghunnafinalarabic","nooninitialarabic","noonjeeminitialarabic","noonjeemisolatedarabic","noonmedialarabic","noonmeeminitialarabic","noonmeemisolatedarabic","noonnoonfinalarabic","notcontains","notelement","notelementof","notequal","notgreater","notgreaternorequal","notgreaternorless","notidentical","notless","notlessnorequal","notparallel","notprecedes","notsubset","notsucceeds","notsuperset","nowarmenian","nparen","nssquare","nsuperior","ntilde","nuhiragana","nukatakana","nukatakanahalfwidth","nuktabengali","nuktadeva","nuktagujarati","nuktagurmukhi","numbersign","numbersignmonospace","numbersignsmall","numeralsigngreek","numeralsignlowergreek","numero","nun","nundagesh","nundageshhebrew","nunhebrew","nvsquare","nwsquare","nyabengali","nyadeva","nyagujarati","nyagurmukhi","oacute","oangthai","obarred","obarredcyrillic","obarreddieresiscyrillic","obengali","obopomofo","obreve","ocandradeva","ocandragujarati","ocandravowelsigndeva","ocandravowelsigngujarati","ocaron","ocircle","ocircumflex","ocircumflexacute","ocircumflexdotbelow","ocircumflexgrave","ocircumflexhookabove","ocircumflextilde","ocyrillic","odblacute","odblgrave","odeva","odieresis","odieresiscyrillic","odotbelow","oe","oekorean","ogonek","ogonekcmb","ograve","ogujarati","oharmenian","ohiragana","ohookabove","ohorn","ohornacute","ohorndotbelow","ohorngrave","ohornhookabove","ohorntilde","ohungarumlaut","oi","oinvertedbreve","okatakana","okatakanahalfwidth","okorean","olehebrew","omacron","omacronacute","omacrongrave","omdeva","omega","omega1","omegacyrillic","omegalatinclosed","omegaroundcyrillic","omegatitlocyrillic","omegatonos","omgujarati","omicron","omicrontonos","omonospace","one","onearabic","onebengali","onecircle","onecircleinversesansserif","onedeva","onedotenleader","oneeighth","onefitted","onegujarati","onegurmukhi","onehackarabic","onehalf","onehangzhou","oneideographicparen","oneinferior","onemonospace","onenumeratorbengali","oneoldstyle","oneparen","oneperiod","onepersian","onequarter","oneroman","onesuperior","onethai","onethird","oogonek","oogonekmacron","oogurmukhi","oomatragurmukhi","oopen","oparen","openbullet","option","ordfeminine","ordmasculine","orthogonal","oshortdeva","oshortvowelsigndeva","oslash","oslashacute","osmallhiragana","osmallkatakana","osmallkatakanahalfwidth","ostrokeacute","osuperior","otcyrillic","otilde","otildeacute","otildedieresis","oubopomofo","overline","overlinecenterline","overlinecmb","overlinedashed","overlinedblwavy","overlinewavy","overscore","ovowelsignbengali","ovowelsigndeva","ovowelsigngujarati","paampssquare","paasentosquare","pabengali","pacute","padeva","pagedown","pageup","pagujarati","pagurmukhi","pahiragana","paiyannoithai","pakatakana","palatalizationcyrilliccmb","palochkacyrillic","pansioskorean","paragraph","parallel","parenleft","parenleftaltonearabic","parenleftbt","parenleftex","parenleftinferior","parenleftmonospace","parenleftsmall","parenleftsuperior","parenlefttp","parenleftvertical","parenright","parenrightaltonearabic","parenrightbt","parenrightex","parenrightinferior","parenrightmonospace","parenrightsmall","parenrightsuperior","parenrighttp","parenrightvertical","partialdiff","paseqhebrew","pashtahebrew","pasquare","patah","patah11","patah1d","patah2a","patahhebrew","patahnarrowhebrew","patahquarterhebrew","patahwidehebrew","pazerhebrew","pbopomofo","pcircle","pdotaccent","pe","pecyrillic","pedagesh","pedageshhebrew","peezisquare","pefinaldageshhebrew","peharabic","peharmenian","pehebrew","pehfinalarabic","pehinitialarabic","pehiragana","pehmedialarabic","pekatakana","pemiddlehookcyrillic","perafehebrew","percent","percentarabic","percentmonospace","percentsmall","period","periodarmenian","periodcentered","periodhalfwidth","periodinferior","periodmonospace","periodsmall","periodsuperior","perispomenigreekcmb","perpendicular","perthousand","peseta","pfsquare","phabengali","phadeva","phagujarati","phagurmukhi","phi","phi1","phieuphacirclekorean","phieuphaparenkorean","phieuphcirclekorean","phieuphkorean","phieuphparenkorean","philatin","phinthuthai","phisymbolgreek","phook","phophanthai","phophungthai","phosamphaothai","pi","pieupacirclekorean","pieupaparenkorean","pieupcieuckorean","pieupcirclekorean","pieupkiyeokkorean","pieupkorean","pieupparenkorean","pieupsioskiyeokkorean","pieupsioskorean","pieupsiostikeutkorean","pieupthieuthkorean","pieuptikeutkorean","pihiragana","pikatakana","pisymbolgreek","piwrarmenian","plus","plusbelowcmb","pluscircle","plusminus","plusmod","plusmonospace","plussmall","plussuperior","pmonospace","pmsquare","pohiragana","pointingindexdownwhite","pointingindexleftwhite","pointingindexrightwhite","pointingindexupwhite","pokatakana","poplathai","postalmark","postalmarkface","pparen","precedes","prescription","primemod","primereversed","product","projective","prolongedkana","propellor","propersubset","propersuperset","proportion","proportional","psi","psicyrillic","psilipneumatacyrilliccmb","pssquare","puhiragana","pukatakana","pvsquare","pwsquare","qadeva","qadmahebrew","qafarabic","qaffinalarabic","qafinitialarabic","qafmedialarabic","qamats","qamats10","qamats1a","qamats1c","qamats27","qamats29","qamats33","qamatsde","qamatshebrew","qamatsnarrowhebrew","qamatsqatanhebrew","qamatsqatannarrowhebrew","qamatsqatanquarterhebrew","qamatsqatanwidehebrew","qamatsquarterhebrew","qamatswidehebrew","qarneyparahebrew","qbopomofo","qcircle","qhook","qmonospace","qof","qofdagesh","qofdageshhebrew","qofhebrew","qparen","quarternote","qubuts","qubuts18","qubuts25","qubuts31","qubutshebrew","qubutsnarrowhebrew","qubutsquarterhebrew","qubutswidehebrew","question","questionarabic","questionarmenian","questiondown","questiondownsmall","questiongreek","questionmonospace","questionsmall","quotedbl","quotedblbase","quotedblleft","quotedblmonospace","quotedblprime","quotedblprimereversed","quotedblright","quoteleft","quoteleftreversed","quotereversed","quoteright","quoterightn","quotesinglbase","quotesingle","quotesinglemonospace","raarmenian","rabengali","racute","radeva","radical","radicalex","radoverssquare","radoverssquaredsquare","radsquare","rafe","rafehebrew","ragujarati","ragurmukhi","rahiragana","rakatakana","rakatakanahalfwidth","ralowerdiagonalbengali","ramiddlediagonalbengali","ramshorn","ratio","rbopomofo","rcaron","rcedilla","rcircle","rcommaaccent","rdblgrave","rdotaccent","rdotbelow","rdotbelowmacron","referencemark","reflexsubset","reflexsuperset","registered","registersans","registerserif","reharabic","reharmenian","rehfinalarabic","rehiragana","rekatakana","rekatakanahalfwidth","resh","reshdageshhebrew","reshhebrew","reversedtilde","reviahebrew","reviamugrashhebrew","revlogicalnot","rfishhook","rfishhookreversed","rhabengali","rhadeva","rho","rhook","rhookturned","rhookturnedsuperior","rhosymbolgreek","rhotichookmod","rieulacirclekorean","rieulaparenkorean","rieulcirclekorean","rieulhieuhkorean","rieulkiyeokkorean","rieulkiyeoksioskorean","rieulkorean","rieulmieumkorean","rieulpansioskorean","rieulparenkorean","rieulphieuphkorean","rieulpieupkorean","rieulpieupsioskorean","rieulsioskorean","rieulthieuthkorean","rieultikeutkorean","rieulyeorinhieuhkorean","rightangle","righttackbelowcmb","righttriangle","rihiragana","rikatakana","rikatakanahalfwidth","ring","ringbelowcmb","ringcmb","ringhalfleft","ringhalfleftarmenian","ringhalfleftbelowcmb","ringhalfleftcentered","ringhalfright","ringhalfrightbelowcmb","ringhalfrightcentered","rinvertedbreve","rittorusquare","rlinebelow","rlongleg","rlonglegturned","rmonospace","rohiragana","rokatakana","rokatakanahalfwidth","roruathai","rparen","rrabengali","rradeva","rragurmukhi","rreharabic","rrehfinalarabic","rrvocalicbengali","rrvocalicdeva","rrvocalicgujarati","rrvocalicvowelsignbengali","rrvocalicvowelsigndeva","rrvocalicvowelsigngujarati","rsuperior","rtblock","rturned","rturnedsuperior","ruhiragana","rukatakana","rukatakanahalfwidth","rupeemarkbengali","rupeesignbengali","rupiah","ruthai","rvocalicbengali","rvocalicdeva","rvocalicgujarati","rvocalicvowelsignbengali","rvocalicvowelsigndeva","rvocalicvowelsigngujarati","sabengali","sacute","sacutedotaccent","sadarabic","sadeva","sadfinalarabic","sadinitialarabic","sadmedialarabic","sagujarati","sagurmukhi","sahiragana","sakatakana","sakatakanahalfwidth","sallallahoualayhewasallamarabic","samekh","samekhdagesh","samekhdageshhebrew","samekhhebrew","saraaathai","saraaethai","saraaimaimalaithai","saraaimaimuanthai","saraamthai","saraathai","saraethai","saraiileftthai","saraiithai","saraileftthai","saraithai","saraothai","saraueeleftthai","saraueethai","saraueleftthai","sarauethai","sarauthai","sarauuthai","sbopomofo","scaron","scarondotaccent","scedilla","schwa","schwacyrillic","schwadieresiscyrillic","schwahook","scircle","scircumflex","scommaaccent","sdotaccent","sdotbelow","sdotbelowdotaccent","seagullbelowcmb","secondtonechinese","section","seenarabic","seenfinalarabic","seeninitialarabic","seenmedialarabic","segol","segol13","segol1f","segol2c","segolhebrew","segolnarrowhebrew","segolquarterhebrew","segoltahebrew","segolwidehebrew","seharmenian","sehiragana","sekatakana","sekatakanahalfwidth","semicolon","semicolonarabic","semicolonmonospace","semicolonsmall","semivoicedmarkkana","semivoicedmarkkanahalfwidth","sentisquare","sentosquare","seven","sevenarabic","sevenbengali","sevencircle","sevencircleinversesansserif","sevendeva","seveneighths","sevengujarati","sevengurmukhi","sevenhackarabic","sevenhangzhou","sevenideographicparen","seveninferior","sevenmonospace","sevenoldstyle","sevenparen","sevenperiod","sevenpersian","sevenroman","sevensuperior","seventeencircle","seventeenparen","seventeenperiod","seventhai","sfthyphen","shaarmenian","shabengali","shacyrillic","shaddaarabic","shaddadammaarabic","shaddadammatanarabic","shaddafathaarabic","shaddakasraarabic","shaddakasratanarabic","shade","shadedark","shadelight","shademedium","shadeva","shagujarati","shagurmukhi","shalshelethebrew","shbopomofo","shchacyrillic","sheenarabic","sheenfinalarabic","sheeninitialarabic","sheenmedialarabic","sheicoptic","sheqel","sheqelhebrew","sheva","sheva115","sheva15","sheva22","sheva2e","shevahebrew","shevanarrowhebrew","shevaquarterhebrew","shevawidehebrew","shhacyrillic","shimacoptic","shin","shindagesh","shindageshhebrew","shindageshshindot","shindageshshindothebrew","shindageshsindot","shindageshsindothebrew","shindothebrew","shinhebrew","shinshindot","shinshindothebrew","shinsindot","shinsindothebrew","shook","sigma","sigma1","sigmafinal","sigmalunatesymbolgreek","sihiragana","sikatakana","sikatakanahalfwidth","siluqhebrew","siluqlefthebrew","similar","sindothebrew","siosacirclekorean","siosaparenkorean","sioscieuckorean","sioscirclekorean","sioskiyeokkorean","sioskorean","siosnieunkorean","siosparenkorean","siospieupkorean","siostikeutkorean","six","sixarabic","sixbengali","sixcircle","sixcircleinversesansserif","sixdeva","sixgujarati","sixgurmukhi","sixhackarabic","sixhangzhou","sixideographicparen","sixinferior","sixmonospace","sixoldstyle","sixparen","sixperiod","sixpersian","sixroman","sixsuperior","sixteencircle","sixteencurrencydenominatorbengali","sixteenparen","sixteenperiod","sixthai","slash","slashmonospace","slong","slongdotaccent","smileface","smonospace","sofpasuqhebrew","softhyphen","softsigncyrillic","sohiragana","sokatakana","sokatakanahalfwidth","soliduslongoverlaycmb","solidusshortoverlaycmb","sorusithai","sosalathai","sosothai","sosuathai","space","spacehackarabic","spade","spadesuitblack","spadesuitwhite","sparen","squarebelowcmb","squarecc","squarecm","squarediagonalcrosshatchfill","squarehorizontalfill","squarekg","squarekm","squarekmcapital","squareln","squarelog","squaremg","squaremil","squaremm","squaremsquared","squareorthogonalcrosshatchfill","squareupperlefttolowerrightfill","squareupperrighttolowerleftfill","squareverticalfill","squarewhitewithsmallblack","srsquare","ssabengali","ssadeva","ssagujarati","ssangcieuckorean","ssanghieuhkorean","ssangieungkorean","ssangkiyeokkorean","ssangnieunkorean","ssangpieupkorean","ssangsioskorean","ssangtikeutkorean","ssuperior","sterling","sterlingmonospace","strokelongoverlaycmb","strokeshortoverlaycmb","subset","subsetnotequal","subsetorequal","succeeds","suchthat","suhiragana","sukatakana","sukatakanahalfwidth","sukunarabic","summation","sun","superset","supersetnotequal","supersetorequal","svsquare","syouwaerasquare","tabengali","tackdown","tackleft","tadeva","tagujarati","tagurmukhi","taharabic","tahfinalarabic","tahinitialarabic","tahiragana","tahmedialarabic","taisyouerasquare","takatakana","takatakanahalfwidth","tatweelarabic","tau","tav","tavdages","tavdagesh","tavdageshhebrew","tavhebrew","tbar","tbopomofo","tcaron","tccurl","tcedilla","tcheharabic","tchehfinalarabic","tchehinitialarabic","tchehmedialarabic","tcircle","tcircumflexbelow","tcommaaccent","tdieresis","tdotaccent","tdotbelow","tecyrillic","tedescendercyrillic","teharabic","tehfinalarabic","tehhahinitialarabic","tehhahisolatedarabic","tehinitialarabic","tehiragana","tehjeeminitialarabic","tehjeemisolatedarabic","tehmarbutaarabic","tehmarbutafinalarabic","tehmedialarabic","tehmeeminitialarabic","tehmeemisolatedarabic","tehnoonfinalarabic","tekatakana","tekatakanahalfwidth","telephone","telephoneblack","telishagedolahebrew","telishaqetanahebrew","tencircle","tenideographicparen","tenparen","tenperiod","tenroman","tesh","tet","tetdagesh","tetdageshhebrew","tethebrew","tetsecyrillic","tevirhebrew","tevirlefthebrew","thabengali","thadeva","thagujarati","thagurmukhi","thalarabic","thalfinalarabic","thanthakhatlowleftthai","thanthakhatlowrightthai","thanthakhatthai","thanthakhatupperleftthai","theharabic","thehfinalarabic","thehinitialarabic","thehmedialarabic","thereexists","therefore","theta","theta1","thetasymbolgreek","thieuthacirclekorean","thieuthaparenkorean","thieuthcirclekorean","thieuthkorean","thieuthparenkorean","thirteencircle","thirteenparen","thirteenperiod","thonangmonthothai","thook","thophuthaothai","thorn","thothahanthai","thothanthai","thothongthai","thothungthai","thousandcyrillic","thousandsseparatorarabic","thousandsseparatorpersian","three","threearabic","threebengali","threecircle","threecircleinversesansserif","threedeva","threeeighths","threegujarati","threegurmukhi","threehackarabic","threehangzhou","threeideographicparen","threeinferior","threemonospace","threenumeratorbengali","threeoldstyle","threeparen","threeperiod","threepersian","threequarters","threequartersemdash","threeroman","threesuperior","threethai","thzsquare","tihiragana","tikatakana","tikatakanahalfwidth","tikeutacirclekorean","tikeutaparenkorean","tikeutcirclekorean","tikeutkorean","tikeutparenkorean","tilde","tildebelowcmb","tildecmb","tildecomb","tildedoublecmb","tildeoperator","tildeoverlaycmb","tildeverticalcmb","timescircle","tipehahebrew","tipehalefthebrew","tippigurmukhi","titlocyrilliccmb","tiwnarmenian","tlinebelow","tmonospace","toarmenian","tohiragana","tokatakana","tokatakanahalfwidth","tonebarextrahighmod","tonebarextralowmod","tonebarhighmod","tonebarlowmod","tonebarmidmod","tonefive","tonesix","tonetwo","tonos","tonsquare","topatakthai","tortoiseshellbracketleft","tortoiseshellbracketleftsmall","tortoiseshellbracketleftvertical","tortoiseshellbracketright","tortoiseshellbracketrightsmall","tortoiseshellbracketrightvertical","totaothai","tpalatalhook","tparen","trademark","trademarksans","trademarkserif","tretroflexhook","triagdn","triaglf","triagrt","triagup","ts","tsadi","tsadidagesh","tsadidageshhebrew","tsadihebrew","tsecyrillic","tsere","tsere12","tsere1e","tsere2b","tserehebrew","tserenarrowhebrew","tserequarterhebrew","tserewidehebrew","tshecyrillic","tsuperior","ttabengali","ttadeva","ttagujarati","ttagurmukhi","tteharabic","ttehfinalarabic","ttehinitialarabic","ttehmedialarabic","tthabengali","tthadeva","tthagujarati","tthagurmukhi","tturned","tuhiragana","tukatakana","tukatakanahalfwidth","tusmallhiragana","tusmallkatakana","tusmallkatakanahalfwidth","twelvecircle","twelveparen","twelveperiod","twelveroman","twentycircle","twentyhangzhou","twentyparen","twentyperiod","two","twoarabic","twobengali","twocircle","twocircleinversesansserif","twodeva","twodotenleader","twodotleader","twodotleadervertical","twogujarati","twogurmukhi","twohackarabic","twohangzhou","twoideographicparen","twoinferior","twomonospace","twonumeratorbengali","twooldstyle","twoparen","twoperiod","twopersian","tworoman","twostroke","twosuperior","twothai","twothirds","uacute","ubar","ubengali","ubopomofo","ubreve","ucaron","ucircle","ucircumflex","ucircumflexbelow","ucyrillic","udattadeva","udblacute","udblgrave","udeva","udieresis","udieresisacute","udieresisbelow","udieresiscaron","udieresiscyrillic","udieresisgrave","udieresismacron","udotbelow","ugrave","ugujarati","ugurmukhi","uhiragana","uhookabove","uhorn","uhornacute","uhorndotbelow","uhorngrave","uhornhookabove","uhorntilde","uhungarumlaut","uhungarumlautcyrillic","uinvertedbreve","ukatakana","ukatakanahalfwidth","ukcyrillic","ukorean","umacron","umacroncyrillic","umacrondieresis","umatragurmukhi","umonospace","underscore","underscoredbl","underscoremonospace","underscorevertical","underscorewavy","union","universal","uogonek","uparen","upblock","upperdothebrew","upsilon","upsilondieresis","upsilondieresistonos","upsilonlatin","upsilontonos","uptackbelowcmb","uptackmod","uragurmukhi","uring","ushortcyrillic","usmallhiragana","usmallkatakana","usmallkatakanahalfwidth","ustraightcyrillic","ustraightstrokecyrillic","utilde","utildeacute","utildebelow","uubengali","uudeva","uugujarati","uugurmukhi","uumatragurmukhi","uuvowelsignbengali","uuvowelsigndeva","uuvowelsigngujarati","uvowelsignbengali","uvowelsigndeva","uvowelsigngujarati","vadeva","vagujarati","vagurmukhi","vakatakana","vav","vavdagesh","vavdagesh65","vavdageshhebrew","vavhebrew","vavholam","vavholamhebrew","vavvavhebrew","vavyodhebrew","vcircle","vdotbelow","vecyrillic","veharabic","vehfinalarabic","vehinitialarabic","vehmedialarabic","vekatakana","venus","verticalbar","verticallineabovecmb","verticallinebelowcmb","verticallinelowmod","verticallinemod","vewarmenian","vhook","vikatakana","viramabengali","viramadeva","viramagujarati","visargabengali","visargadeva","visargagujarati","vmonospace","voarmenian","voicediterationhiragana","voicediterationkatakana","voicedmarkkana","voicedmarkkanahalfwidth","vokatakana","vparen","vtilde","vturned","vuhiragana","vukatakana","wacute","waekorean","wahiragana","wakatakana","wakatakanahalfwidth","wakorean","wasmallhiragana","wasmallkatakana","wattosquare","wavedash","wavyunderscorevertical","wawarabic","wawfinalarabic","wawhamzaabovearabic","wawhamzaabovefinalarabic","wbsquare","wcircle","wcircumflex","wdieresis","wdotaccent","wdotbelow","wehiragana","weierstrass","wekatakana","wekorean","weokorean","wgrave","whitebullet","whitecircle","whitecircleinverse","whitecornerbracketleft","whitecornerbracketleftvertical","whitecornerbracketright","whitecornerbracketrightvertical","whitediamond","whitediamondcontainingblacksmalldiamond","whitedownpointingsmalltriangle","whitedownpointingtriangle","whiteleftpointingsmalltriangle","whiteleftpointingtriangle","whitelenticularbracketleft","whitelenticularbracketright","whiterightpointingsmalltriangle","whiterightpointingtriangle","whitesmallsquare","whitesmilingface","whitesquare","whitestar","whitetelephone","whitetortoiseshellbracketleft","whitetortoiseshellbracketright","whiteuppointingsmalltriangle","whiteuppointingtriangle","wihiragana","wikatakana","wikorean","wmonospace","wohiragana","wokatakana","wokatakanahalfwidth","won","wonmonospace","wowaenthai","wparen","wring","wsuperior","wturned","wynn","xabovecmb","xbopomofo","xcircle","xdieresis","xdotaccent","xeharmenian","xi","xmonospace","xparen","xsuperior","yaadosquare","yabengali","yacute","yadeva","yaekorean","yagujarati","yagurmukhi","yahiragana","yakatakana","yakatakanahalfwidth","yakorean","yamakkanthai","yasmallhiragana","yasmallkatakana","yasmallkatakanahalfwidth","yatcyrillic","ycircle","ycircumflex","ydieresis","ydotaccent","ydotbelow","yeharabic","yehbarreearabic","yehbarreefinalarabic","yehfinalarabic","yehhamzaabovearabic","yehhamzaabovefinalarabic","yehhamzaaboveinitialarabic","yehhamzaabovemedialarabic","yehinitialarabic","yehmedialarabic","yehmeeminitialarabic","yehmeemisolatedarabic","yehnoonfinalarabic","yehthreedotsbelowarabic","yekorean","yen","yenmonospace","yeokorean","yeorinhieuhkorean","yerahbenyomohebrew","yerahbenyomolefthebrew","yericyrillic","yerudieresiscyrillic","yesieungkorean","yesieungpansioskorean","yesieungsioskorean","yetivhebrew","ygrave","yhook","yhookabove","yiarmenian","yicyrillic","yikorean","yinyang","yiwnarmenian","ymonospace","yod","yoddagesh","yoddageshhebrew","yodhebrew","yodyodhebrew","yodyodpatahhebrew","yohiragana","yoikorean","yokatakana","yokatakanahalfwidth","yokorean","yosmallhiragana","yosmallkatakana","yosmallkatakanahalfwidth","yotgreek","yoyaekorean","yoyakorean","yoyakthai","yoyingthai","yparen","ypogegrammeni","ypogegrammenigreekcmb","yr","yring","ysuperior","ytilde","yturned","yuhiragana","yuikorean","yukatakana","yukatakanahalfwidth","yukorean","yusbigcyrillic","yusbigiotifiedcyrillic","yuslittlecyrillic","yuslittleiotifiedcyrillic","yusmallhiragana","yusmallkatakana","yusmallkatakanahalfwidth","yuyekorean","yuyeokorean","yyabengali","yyadeva","zaarmenian","zacute","zadeva","zagurmukhi","zaharabic","zahfinalarabic","zahinitialarabic","zahiragana","zahmedialarabic","zainarabic","zainfinalarabic","zakatakana","zaqefgadolhebrew","zaqefqatanhebrew","zarqahebrew","zayin","zayindagesh","zayindageshhebrew","zayinhebrew","zbopomofo","zcaron","zcircle","zcircumflex","zcurl","zdot","zdotaccent","zdotbelow","zecyrillic","zedescendercyrillic","zedieresiscyrillic","zehiragana","zekatakana","zero","zeroarabic","zerobengali","zerodeva","zerogujarati","zerogurmukhi","zerohackarabic","zeroinferior","zeromonospace","zerooldstyle","zeropersian","zerosuperior","zerothai","zerowidthjoiner","zerowidthnonjoiner","zerowidthspace","zeta","zhbopomofo","zhearmenian","zhebrevecyrillic","zhecyrillic","zhedescendercyrillic","zhedieresiscyrillic","zihiragana","zikatakana","zinorhebrew","zlinebelow","zmonospace","zohiragana","zokatakana","zparen","zretroflexhook","zstroke","zuhiragana","zukatakana","handleImageData","isNativelyDecodable","colorSpace","decodeAndClamp","addend","coefficient","isMask","getParams","imageMask","matte","bitsPerComponent","bpc","needsDecode","decodeCoefficients","decodeAddends","imageDataPromise","smaskPromise","maskPromise","imageData","smaskData","maskData","resize","pixels","components","px","newIndex","oldIndex","temp","buf","imgArrayPos","bufferPos","drawWidth","drawHeight","decodeBuffer","getComponents","rowComps","remainingBits","getOpacity","fillGrayBuffer","opacity","imageOffset","maskOffset","undoPreblend","matteRgb","clamp","fillRgbaBuffer","originalWidth","originalHeight","rowBytes","getImageBytes","actualHeight","comps","rgbBuf","compsPos","opacityPos","Courier","Helvetica","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","refill","restoreState","cipherTransform","makeInlineImage","makeStream","followingBytes","imageStream","skipToNextLine","ENDSTREAM_SIGNATURE","scanBytes","scanLength","makeFilter","filterArray","paramsArray","PredictorStream","FlateStream","earlyChange","LZWStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","knownCommands","specialChars","toHexDigit","floating","getString","numParen","done","charBuffered","getName","getHexString","firstDigit","secondDigit","isFirstHex","knownCommandFound","possibleCommand","linDict","getInt","getHint","hintsOffset","hintsLength","hintsOffset2","hintsLenth2","objectNumberFirst","endFirst","pageFirst","arrayBuffer","strEnd","DecodeStream","StringStream","ensureBuffer","requested","current","byteLength","buffer2","readBlock","bufEnd","FakeStream","codeLenCodeMap","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","bytesPos","cmf","flg","getBits","getCode","maxLen","codeLen","codeVal","generateHuffmanTable","lengths","len","code2","hdr","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","repeatLength","code1","dist","blockLen","check","predictor","readBlockTiff","readBlockPng","colors","columns","pixBytes","rawBytes","inbuf","outbuf","inbits","outbits","compArray","bitMask","prevRow","up","upLeft","pa","pb","req","jpegImage","JpegImage","colorTransform","jpxImage","JpxImage","componentsCount","tiles","dataPosition","sourcePosition","data0","data1","data2","data3","rowFeed","tileCompoments","tileWidth","tileHeight","tileLeft","tileTop","jbig2Image","Jbig2Image","chunks","decodeParams","globals","parseChunks","nextChunk","initialized","hasMoreData","maxDecodeLength","digit","repeatHeader","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","eoline","byteAlign","rows","eoblock","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","lookBits","eatBits","lookChar","addPixels","blackPixels","addPixelsNeg","refPos","code3","getTwoDimCode","getBlackCode","getWhiteCode","gotEOL","findTableCode","limitValue","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","readBits","lastCode","estimatedDecodedSize","blockSize","prevCode","decodedLength","currentBufferLength","hasPrev","WorkerMessageHandler","loadDocument","loadDocumentPromise","parseSuccess","numPagesPromise","ensureModel","fingerprintPromise","outlinePromise","ensureCatalog","infoPromise","metadataPromise","encryptedPromise","ensureXRef","javaScriptPromise","doc","outline","parseFailure","supportTransfers","xhr","XMLHttpRequest","responseExists","responseType","supportTypedArray","onSuccess","pdfInfo","onFailure","exception","pdfManagerPromise","disableRange","LocalPdfManager","chunkedViewerLoading","NetworkPdfManager","networkManager","NetworkManager","httpHeaders","fullRequestXhrId","requestFull","onHeadersReceived","fullRequestXhr","getRequestXhr","getResponseHeader","abortRequest","onDone","onError","onProgress","evt","lengthComputable","getPdfManager","pdfManagerReady","passwordChangedPromise","requestLoadedStream","onLoadedStream","rotatePromise","refPromise","viewPromise","pageInfo","pdfModel","updatePassword","wrappedException","minimumStackMessage","terminate","consoleTimer","workerConsole","SubbandsGainLog2","LH","HL","HH","failOnCorruptedImage","readUint32","readUint16","log2","calculateComponentDimensions","component","siz","XOsiz","XRsiz","Xsiz","YOsiz","YRsiz","Ysiz","calculateTileGrids","SIZ","numXtiles","XTOsiz","XTsiz","numYtiles","YTOsiz","YTsiz","tile","tx0","ty0","tx1","ty1","Csiz","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","entropyCoderWithCustomPrecincts","PPx","precinctsSizes","PPy","xcb_","xcb","ycb_","ycb","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctXOffset","precinctYOffset","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","cbx","cby","precinctNumber","tbx0_","tby0_","tbx1_","tby1_","subbandType","precinct","Lblock","cbxMin","cbyMin","cbxMax","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","currentTile","layersCount","codingStyleDefaultParameters","maxDecompositionLevelsCount","decompositionLevelsCount","nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","buildPackets","blocksDimensions","bscale","resolutionSubbands","progressionOrder","packetsIterator","parseTilePackets","bufferSize","skipNextBit","alignToByte","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","inclusionTree","zeroBitPlanesTree","InclusionTree","TagTree","incrementValue","nextLevel","included","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","mb","transformation","segmentationSymbolUsed","blockWidth","blockHeight","bitModel","currentCodingpassType","BitModel","totalLength","qq","dataItem","encodedData","decoder","ArithmeticDecoder","setDecoder","runSignificancePropogationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","correction","coefficentsSign","coefficentsMagnitude","nb","bitsDecoded","transformTile","quantizationParameters","spqcds","SPqcds","scalarExpounded","guardBits","precision","subbandCoefficients","gainLog2","IrreversibleTransform","ReversibleTransform","calculate","initializeTile","qcdOrQcc","QCC","QCD","COC","COD","open","response","mozResponseArrayBuffer","readUint","headerSize","lbox","tbox","jumpDataLength","parseCodestream","mainHeader","isSigned","qcd","sqcd","spqcdSize","noQuantization","spqcd","cqcc","qcc","cod","scod","sopMarkerUsed","ephMarkerUsed","multipleComponentTransform","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticalyStripe","predictableTermination","precinctsSize","partIndex","partsCount","resultImages","y0items","y1items","y2items","i1","transformComponents","levelsLength","levels","level","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","QeTable","qe","nmps","nlps","switchFlag","bp","chigh","clow","byteIn","ct","readBit","cx","qeIcx","exchangeLps","renormD","mps","exchangeMps","qeTableIcx","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","calcSignContribution","significance0","sign0","significance1","sign1","SignContextLabels","contextLabel","xorBit","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","uniformContext","runLengthContext","contexts","setNeighborsSignificance","column","contextLabels","labels","i0","decodeSignBit","horizontalContribution","verticalContribution","contextLabelAndXor","significance","bit","significanceState","oneRowDown","twoRowsDown","threeRowsDown","index0","i2","Transform","u0","v0","iterate","expand","bufferPadding","j1","j2","hl","lh","hh","llWidth","llHeight","llItems","hlWidth","hlHeight","hlItems","lhWidth","lhHeight","lhItems","hhWidth","hhHeight","hhItems","bufferOut","i0_","i1_","offset_","K_","nn","cx_index","cx_mps","nmpsIcx","nlpsIcx","switchIcx","ContextCache","DecodingContext","decodeInteger","contextCache","procedure","getContexts","toRead","decodeIAID","Int8Array","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","readInt32","readInt8","decodeBitmap","mmr","templateIndex","prediction","decodingContext","useskip","template","templateLength","templateX","templateY","pseudoPixelContext","bitmap","ltp","j0","pixel","decodeRefinement","referenceBitmap","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","readSegmentHeader","segmentHeader","segmentType","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionMmr","RegionSegmentInformationFieldLength","searchPattern","headerEnd","readSegments","randomAccess","combinationOperator","processSegment","visitor","dictionary","dictionaryFlags","huffman","refinement","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","atLength","refinementAt","numberOfExportedSymbols","numberOfNewSymbols","textRegion","textRegionSegmentFlags","stripSize","referenceCorner","transposed","defaultPixelValue","dsOffset","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","numberOfSymbolInstances","genericRegion","genericRegionSegmentFlags","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","SimpleSegmentVisitor","onPageInformation","currentPageInfo","drawBitmap","regionInfo","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","symbols","inputSymbols","huffmanTables","refinementTemplateIndex","newSymbols","currentHeight","symbolCodeLength","currentWidth","deltaWidth","symbolId","rdx","rdy","exportedSymbols","currentFlag","totalSymbolsLength","runLength","decodeSymbolDictionary","onImmediateTextRegion","stripT","firstS","currentS","applyRefinement","symbolBitmap","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","symbolRow","deltaS","decodeTextRegion","onImmediateLosslessTextRegion","parseJbig2Chunks","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","BidiResult","isLTR","startLevel","strLength","oldtypes","numBidi","charCode","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","children","decodeScan","frame","resetInterval","spectralStart","spectralEnd","successivePrev","successive","samplesPerLine","scanLines","mcusPerLine","progressive","maxH","maxV","bitsData","bitsCount","nextByte","decodeHuffman","tree","receive","receiveAndExtend","eobrun","successiveACNextValue","successiveACState","decodeMcu","mcu","col","mcuCol","blockRow","blockCol","blocks","decodeBlock","blocksPerLine","decodeFn","componentsLength","zz","huffmanTableDC","pred","rs","huffmanTableAC","marker","mcuExpected","blocksPerColumn","mcusPerColumn","buildComponentData","quantizeAndInverse","dataOut","dataIn","v1","v3","v4","v5","v6","v7","qt","quantizationTable","sample","scanLine","readDataBlock","prepareComponents","componentId","blocksPerLineForMcu","blocksPerColumnForMcu","jfif","adobe","quantizationTables","frames","huffmanTablesAC","huffmanTablesDC","fileMarker","appData","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesEnd","quantizationTableSpec","componentsOrder","qId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","tableSpec","successiveApproximation","clampTo8bit","component1","component2","component3","component4","component1Line","component2Line","component3Line","component4Line","Cb","Cr","Ye","copyToImageData","imageDataArray","chunkSize","loadedChunks","numChunksLoaded","numChunks","initialDataLength","allChunksLoaded","onReceiveData","beginChunk","endChunk","onReceiveInitialData","ensureRange","nextEmptyChunk","hasChunk","getByteRange","ChunkedStreamSubstream","missingChunks","subStream","ChunkedStreamManager","disableAutoFetch","msgHandler","sendRequest","getXhr","currRequestId","chunksNeededByRequest","requestsByChunk","callbacksByRequest","loadedStream","initialData","setInitialData","requestAllChunks","requestChunks","chunksNeeded","requestId","chunksToRequest","groupedChunksToRequest","groupChunks","groupedChunk","getStream","getBeginChunk","getEndChunk","groupedChunks","prevChunk","bytesLoaded","loadedRequests","requestIds","BasePdfManager","streamManager","ensureHelper","abortAllRequests","CMAP_CODESPACES","Hankaku","Hiragana","Katakana","CMap","codespaceRanges","addCodespaceRange","low","high","mapRange","dstLow","lastByte","mapRangeToArray","mapOne","dst","codespaceRangesLen","codespaceRange","IdentityCMap","strToInt","expectString","expectInt","parseBfChar","cMap","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","objLoop","addContextCurrentTransform","mozCurrentTransform","_scaleX","_scaleY","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","_originalTransform","_originalSetTransform","_transformMatrix","_transformStack","ad_bc","bc_ad","cosValue","sinValue","trackTransform","canvasEntry","CanvasExtraState","alphaIsShape","fontSizeScale","lineX","lineY","charSpacing","wordSpacing","fillColorSpace","fillColorSpaceObj","strokeColorSpace","strokeColorSpaceObj","fillColorObj","strokeColorObj","fillColor","strokeColor","fillAlpha","strokeAlpha","paintFormXObjectDepth","setCurrentPoint","canvasCtx","textLayer","imageLayer","pendingClip","pendingEOFill","groupStack","processingType3","baseTransformStack","opMode","noOpStartIdx","putBinaryImageData","ImageData","putImageData","tmpImgData","createImageData","tmpImgDataPixels","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","mozOpaque","beginLayout","executionStartIdx","continueCallback","stepper","argsArrayLen","endTime","noOpIdx","nextBreakPoint","breakIt","deps","depObjId","common","endDrawing","endLayout","dashPhase","lineDashOffset","mozDash","mozDashOffset","intent","flatness","states","globalCompositeOperation","x3","y3","consumePath","getSinglePixelWidth","needRestore","mozFillRule","paths","pendingTextPaths","addToPath","spacing","typeface","browserFontSize","rule","rise","applyTextTransforms","createTextGeometry","geometry","ctxMatrix","hScale","paintChar","character","fillStrokeMode","getPathGenerator","skipTextSelection","geom","textSelection","canvasWidth","tx","firstGlyph","restoreNeeded","vx","vy","scaledX","scaledY","charWidth","remeasure","characterScaleX","curFontSize","VERTICAL_TEXT_ROTATION","appendText","stGlyphs","spacingLength","shownCanvasWidth","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","patternIR","inv","mozCurrentTransformInverse","bl","ul","ur","depth","currentCtx","currentTransform","canvasBounds","drawnWidth","drawnHeight","groupCtx","sourceCtx","destCtx","property","copyCtxState","imageSmoothingEnabled","mozImageSmoothingEnabled","domImage","getCanvasPosition","appendImage","width1","POINT_TYPES","lineSize","steps","outlines","pp","coords","compileType3Glyph","maskCanvas","maskCtx","imgToPaint","widthScale","heightScale","HTMLElement","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","inverse","FontLoader","insertRule","styleElement","getElementById","styleSheet","sheet","cssRules","parentNode","removeChild","loadTestFont","atob","loadTestFontId","loadingContext","requests","nextRequestId","isSyncFontLoadingSupported","userAgent","navigator","fonts","rules","fontsToLoad","attached","bindDOM","request","queueLoadingCallback","prepareFontLoadEvent","complete","otherRequest","spliceString","insert","called","XXXX_VALUE","div","body","isFontReady","FontFace","fontAdded","Function","Metadata","meta","d2","d3","fixMetadata","startsWith","endsWith","metaDocument","rdf","nodeName","firstChild","nextSibling","hasChildNodes","desc","iLength","childNodes","disableWorker","workerSrc","getDocument","pdfDataRangeTransport","passwordCallback","progressCallback","workerInitializedPromise","workerReadyPromise","transport","WorkerTransport","fetchDocument","PDFDocumentProxy","embeddedFontsUsed","getDestinations","getJavaScript","getOutline","getMetadata","isEncrypted","dataLoaded","startCleanup","destroy","PDFPageProxy","stats","enableStats","PDFObjects","receivingOperatorList","cleanupAfterRender","pendingDestroy","renderTasks","pageNumber","getViewport","getAnnotations","render","displayReadyPromise","internalRenderTask","InternalRenderTask","renderTask","RenderTask","_tryDestroy","initalizeGraphics","operatorListChanged","getOperationList","dependencyFontsID","_startRenderPage","_renderPageChunk","operatorListChunk","pageCache","Worker","worker","setupMessageHandler","loadFakeWorkerFiles","setupFakeWorker","testObj","fakeWorkerFilesLoadedPromise","fakeWorker","addRangeListener","addProgressListener","requestDataRange","pdfDocument","hasData","exportedData","pageProxy","imageUrl","Image","loadJpegStream","rgbaLength","ensureObj","resolved","cancel","operatorListIdx","graphicsReadyCallback","graphicsReady","cancelled","StepperManager","getNextBreakPoint","gfx","canvasContext","updateOperatorList","_continue","_next","PDFPageParser","INITIAL","RUNNING","PAUSED","FINISHED","pdfPage","ptiParser","renderingState","ctxCanvas","_addField","RenderingStates","getPagePoint","parsePage","errorCallBack","selfAddField","pageViewDrawCallback","renderContext","PDFJSClass","EventEmitter","pages","rawTextContents","needRawText","super","raiseErrorEvent","errMsg","nextTick","emit","raiseReadyEvent","parsePDFData","parameters","tryLoadFieldInfoXML","pdfFilePath","_sufInfo","fieldInfoXMLPath","existsSync","loadMetaData","loadPages","parseMetaData","Transcoder","Meta","pagesCount","pagesPromise","promisedPages","pageParser","continueOnNextPage","Width","Height","getRawTextContent","prevText","textObj","getMergedTextBlocksIfNeeded","isDup","preT","curT","merged","mergedText","removeAllListeners","ParserStream","createContentStream","jsonObj","rStream","Readable","objectMode","createOutputStream","outputPath","outputStream","createWriteStream","pdfParser","parsedData","_flush_callback","options","_transform","enc","isBuffer","_flush","parseBuffer","_destroy","StringifyStream","_readableState","_writableState","PDFParser","colorDict","fontFaceDict","fontStyleDict","pkInfo","pdfFileMTime","processFieldInfoXML","onPDFJSParseDataReady","onPDFJSParserDataError","parserError","startParsingPDF","binBuffer","binBufferKey","processBinaryCache","allKeys","maxBinBufferCount","createParserStream","loadPDF","statSync","mtimeMs","pdfBuffer","pdfBufferParse","getRawTextContentStream","getAllFieldsTypesStream","getMergedTextBlocksStream"],"mappings":"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U,IAAO,OAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,MAC1B,CAAEsU,MAAS,KAAQtU,IAAO,OAC1B,CAAEsU,MAAS,MAAQtU,IAAO,OAC1B,CAAEsU,MAAS,MAAQtU,IAAO,OAC1B,CAAEsU,MAAS,MAAQtU,IAAO,OAC1B,CAAEsU,MAAS,MAAQtU,IAAO,OAC1B,CAAEsU,MAAS,MAAQt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CV,IAAU,IACV,IAAU,KACV,IAAU,MACV,IAAU,OACV,IAAU,KACV,IAAU,IACV,IAAU,KACV,IAAU,MACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,MACV,IAAU,KACV,IAAU,IACV,IAAU,KACV,IAAU,MACV,IAAU,OACV,IAAU,KACV,IAAU,IACV,IAAU,KACV,IAAU,MACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,MACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,OACV,IAAU,MACV,IAAU,KACV,IAAU,MACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,OACV,IAAU,UACV,IAAU,SACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,MACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IA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AW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,MACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,MACXC,UAAW,MACXC,UAAW,KACXC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAA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CPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,KAAQ,IACRC,IAAO,IACPC,KAAQ,IACRC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,KAAQ,IACRC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,KAAQ,IACRC,IAAO,IACPC,KAAQ,IACRC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,KACRC,KAAQ,IACRC,KAAQ,IACRC,KAAQ,IAC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AAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,SAC7D,GAEA6vL,EAAmB,CAAC,IAAI7vL,YAAY,CACtC,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,IAC7D,GAEJ,SAAS2sL,EAAYxoL,GACnB,IAAIxd,EAAQwd,EAAOtO,WACfi6L,EAAW,EAEfhtN,KAAK4mB,KAAOya,EAAOza,KACnB,IAAIqmM,EAAMppM,EAAMmpM,KACZE,EAAMrpM,EAAMmpM,MACJ,GAARC,IAAqB,GAARC,GACfpsM,GAAM,mCAAqCmsM,EAAM,KAAOC,GACtC,IAAT,GAAND,IACHnsM,GAAM,+CAAiDmsM,EAAM,KAAOC,KAC/DD,GAAO,GAAKC,GAAO,IAAQ,GAChCpsM,GAAM,+BAAiCmsM,EAAM,KAAOC,GAC5C,GAANA,GACFpsM,GAAM,kCAAoCmsM,EAAM,KAAOC,GAEzDltN,KAAK6jB,MAAQA,EACb7jB,KAAKgtN,SAXWA,EAahBhtN,KAAKo7B,SAAW,EAChBp7B,KAAKq7B,QAAU,EAEf4wL,GAAaxzM,KAAKzY,KACtB,CA+NE,OA7NA6pN,EAAYtxM,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAEnDsxM,EAAYtxM,UAAU40M,QAAU,SAA6Bj9L,GAO3D,IANA,IAKI7K,EALA+V,EAAWp7B,KAAKo7B,SAChBC,EAAUr7B,KAAKq7B,QACfxX,EAAQ7jB,KAAK6jB,MACbmpM,EAAWhtN,KAAKgtN,SAGb5xL,EAAWlL,QACsB,KAA1B7K,EAAIxB,EAAMmpM,OACpBlsM,GAAM,gCACRua,GAAWhW,GAAK+V,EAChBA,GAAY,EAMd,OAJA/V,EAAIgW,GAAY,GAAKnL,GAAQ,EAC7BlwB,KAAKq7B,QAAUA,GAAWnL,EAC1BlwB,KAAKo7B,SAAWA,GAAYlL,EAC5BlwB,KAAKgtN,SAAWA,EACT3nM,CACR,EAEDwkM,EAAYtxM,UAAU60M,QAAU,SAA6B7wJ,GAQ3D,IAPA,IAAI/E,EAAQ+E,EAAM,GACd8wJ,EAAS9wJ,EAAM,GACfnhC,EAAWp7B,KAAKo7B,SAChBC,EAAUr7B,KAAKq7B,QACfxX,EAAQ7jB,KAAK6jB,MACbmpM,EAAWhtN,KAAKgtN,SAEb5xL,EAAWiyL,GAAQ,CACxB,IAAIhoM,OACkC,KAA1BA,EAAIxB,EAAMmpM,OACpBlsM,GAAM,gCACRua,GAAYhW,GAAK+V,EACjBA,GAAY,CAClB,CACI,IAAIjY,EAAOq0C,EAAMn8B,GAAY,GAAKgyL,GAAU,GACxCC,EAAUnqM,GAAQ,GAClBoqM,EAAiB,MAAPpqM,EAMd,OALiB,IAAbiY,GAAkBA,EAAWkyL,GAAuB,IAAZA,IAC1CxsM,GAAM,gCACR9gB,KAAKq7B,QAAWA,GAAWiyL,EAC3BttN,KAAKo7B,SAAYA,EAAWkyL,EAC5BttN,KAAKgtN,SAAWA,EACTO,CACR,EAED1D,EAAYtxM,UAAUi1M,qBACpB,SAAyCC,GAKzC,IAJA,IAAI3pM,EAAI2pM,EAAQlwN,OAGZ8vN,EAAS,EACJrmN,EAAI,EAAGA,EAAI8c,IAAK9c,EACnBymN,EAAQzmN,GAAKqmN,IACfA,EAASI,EAAQzmN,IAMrB,IAFA,IAAIg0B,EAAO,GAAKqyL,EACZ71J,EAAQ,IAAIt6B,YAAYlC,GACnB0yL,EAAM,EAAGvqM,EAAO,EAAG4pB,EAAO,EAC9B2gL,GAAOL,IACLK,EAAKvqM,IAAS,EAAG4pB,IAAS,EAC/B,IAAK,IAAI3zB,EAAM,EAAGA,EAAM0K,IAAK1K,EAC3B,GAAIq0M,EAAQr0M,IAAQs0M,EAAK,CAEvB,IAAIC,EAAQ,EACRnuL,EAAIrc,EACR,IAASnc,EAAI,EAAGA,EAAI0mN,IAAO1mN,EACzB2mN,EAASA,GAAS,EAAU,EAAJnuL,EACxBA,IAAM,EAIR,IAASx4B,EAAI2mN,EAAO3mN,EAAIg0B,EAAMh0B,GAAK+lC,EACjCyqB,EAAMxwD,GAAM0mN,GAAO,GAAMt0M,IAEzB+J,CACZ,CAII,MAAO,CAACq0C,EAAO61J,EAChB,EAEDxD,EAAYtxM,UAAUi0M,UAAY,WAEhC,IAAIoB,EAAM5tN,KAAKmtN,QAAQ,GAKvB,GAJU,EAANS,IACF5tN,KAAKytE,KAAM,GAGD,KAFZmgJ,IAAQ,GAER,CAyCA,IAAIC,EACAC,EACJ,GAAW,GAAPF,EACFC,EAAef,EACfgB,EAAgBf,OACX,GAAW,GAAPa,EAAU,CAQnB,IAPA,IAAIG,EAAc/tN,KAAKmtN,QAAQ,GAAK,IAChCa,EAAehuN,KAAKmtN,QAAQ,GAAK,EACjCc,EAAkBjuN,KAAKmtN,QAAQ,GAAK,EAGpCe,EAAqB,IAAI13M,WAAWm2M,EAAepvN,QAE9CyJ,EAAI,EAAGA,EAAIinN,IAAmBjnN,EACrCknN,EAAmBvB,EAAe3lN,IAAMhH,KAAKmtN,QAAQ,GAQvD,IAPA,IAAIgB,EAAiBnuN,KAAKwtN,qBAAqBU,GAG3CR,EAAM,EAENl2J,GADAxwD,EAAI,EACI+mN,EAAcC,GACtBI,EAAc,IAAI53M,WAAWghD,GAC1BxwD,EAAIwwD,GAAO,CAChB,IAAIr0C,EAAOnjB,KAAKotN,QAAQe,GACxB,GAAY,IAARhrM,EACF,IAAIkrM,EAAa,EAAGC,EAAa,EAAGjtM,EAAOqsM,OACtC,GAAY,IAARvqM,EACLkrM,EAAa,EAAGC,EAAa,EAAGjtM,EAAQqsM,EAAM,MAC7C,IAAY,IAARvqM,EAEJ,CACLirM,EAAYpnN,KAAO0mN,EAAMvqM,EACzB,QACV,CAJckrM,EAAa,EAAGC,EAAa,GAAIjtM,EAAQqsM,EAAM,CAI7D,CAGQ,IADA,IAAIa,EAAevuN,KAAKmtN,QAAQkB,GAAcC,EACvCC,KAAiB,GACtBH,EAAYpnN,KAAOqa,CAC7B,CAEMwsM,EACE7tN,KAAKwtN,qBAAqBY,EAAY79L,SAAS,EAAGw9L,IACpDD,EACE9tN,KAAKwtN,qBAAqBY,EAAY79L,SAASw9L,EAAav2J,GACpE,MACM12C,GAAM,sCAMR,IAHA,IACIyqB,GADAvc,EAAShvB,KAAKgvB,QACGA,EAAOzxB,OAAS,EACjCq2B,EAAM5zB,KAAKw5C,eACF,CACX,IAAIg1K,EAAQxuN,KAAKotN,QAAQS,GACzB,GAAIW,EAAQ,IACN56L,EAAM,GAAK2X,IAEbA,GADAvc,EAAShvB,KAAKmsN,aAAav4L,EAAM,IAClBr2B,QAEjByxB,EAAO4E,KAAS46L,MALlB,CAQA,GAAa,KAATA,EAEF,YADAxuN,KAAKw5C,aAAe5lB,GAKtB,IAAI+5L,GADJa,EAAQ5B,EADR4B,GAAS,OAEY,GACjBb,EAAQ,IACVA,EAAQ3tN,KAAKmtN,QAAQQ,IACnBD,GAAe,MAARc,GAAkBb,EAC7Ba,EAAQxuN,KAAKotN,QAAQU,IAErBH,GADAa,EAAQ3B,EAAW2B,KACF,IACL,IACVb,EAAQ3tN,KAAKmtN,QAAQQ,IACvB,IAAIc,GAAgB,MAARD,GAAkBb,EAC1B/5L,EAAM85L,GAAOniL,IAEfA,GADAvc,EAAShvB,KAAKmsN,aAAav4L,EAAM85L,IAClBnwN,QAEjB,IAAK,IAAI+S,EAAI,EAAGA,EAAIo9M,IAAOp9M,IAAKsjB,EAC9B5E,EAAO4E,GAAO5E,EAAO4E,EAAM66L,EAtBnC,CAuBA,CArFA,KAvCI,CACE,IAEIppM,EAFAxB,EAAQ7jB,KAAK6jB,MACbmpM,EAAWhtN,KAAKgtN,cAGkB,KAA1B3nM,EAAIxB,EAAMmpM,OACpBlsM,GAAM,oCACR,IAAI4tM,EAAWrpM,OACuB,KAA1BA,EAAIxB,EAAMmpM,OACpBlsM,GAAM,oCACR4tM,GAAarpM,GAAK,OACoB,KAA1BA,EAAIxB,EAAMmpM,OACpBlsM,GAAM,oCACR,IAAI6tM,EAAQtpM,OAC0B,KAA1BA,EAAIxB,EAAMmpM,OACpBlsM,GAAM,qCACR6tM,GAAUtpM,GAAK,KACW,OAAXqpM,IACG,IAAbA,GAA4B,IAAVC,GAErB7tM,GAAM,iDAGR9gB,KAAKq7B,QAAU,EACfr7B,KAAKo7B,SAAW,EAEhB,IAAIoe,EAAex5C,KAAKw5C,aACpBxqB,EAAShvB,KAAKmsN,aAAa3yK,EAAek1K,GAC1Ct/M,EAAMoqC,EAAek1K,EACzB1uN,KAAKw5C,aAAepqC,EACpB,IAAK,IAAI0U,EAAI01B,EAAc11B,EAAI1U,IAAO0U,EAAG,CACvC,QAAsC,KAA1BuB,EAAIxB,EAAMmpM,MAA6B,CACjDhtN,KAAKytE,KAAM,EACX,KACV,CACQz+C,EAAOlL,GAAKuB,CACpB,CACMrlB,KAAKgtN,SAAWA,CAEtB,CAsFG,EAEMnD,CACR,CApViB,GAsVdD,GAAkB,WACpB,SAASA,EAAgBvhN,EAAK25B,GAC5B,IAAI4sL,EAAY5uN,KAAK4uN,UAAY5sL,EAAO7pB,IAAI,cAAgB,EAE5D,GAAIy2M,GAAa,EACf,OAAOvmN,EACS,IAAdumN,IAAoBA,EAAY,IAAMA,EAAY,KACpD9tM,GAAM,0BAA4B8tM,GAGlC5uN,KAAKwsN,UADW,IAAdoC,EACe5uN,KAAK6uN,cAEL7uN,KAAK8uN,aAExB9uN,KAAKqI,IAAMA,EACXrI,KAAK4mB,KAAOve,EAAIue,KAEhB,IAAImoM,EAAS/uN,KAAK+uN,OAAS/sL,EAAO7pB,IAAI,WAAa,EAC/C+X,EAAOlwB,KAAKkwB,KAAO8R,EAAO7pB,IAAI,qBAAuB,EACrD62M,EAAUhvN,KAAKgvN,QAAUhtL,EAAO7pB,IAAI,YAAc,EAMtD,OAJAnY,KAAKivN,SAAYF,EAAS7+L,EAAO,GAAM,EACvClwB,KAAK47M,SAAYoT,EAAUD,EAAS7+L,EAAO,GAAM,EAEjD+7L,GAAaxzM,KAAKzY,MACXA,IACX,CA6JE,OA3JA4pN,EAAgBrxM,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAEvDqxM,EAAgBrxM,UAAUs2M,cACxB,WACA,IAAIjT,EAAW57M,KAAK47M,SAEhBpiK,EAAex5C,KAAKw5C,aACpBxqB,EAAShvB,KAAKmsN,aAAa3yK,EAAeoiK,GAE1C1rL,EAAOlwB,KAAKkwB,KACZ6+L,EAAS/uN,KAAK+uN,OAEdG,EAAWlvN,KAAKqI,IAAI0qB,SAAS6oL,GAEjC,GADA57M,KAAKytE,KAAOyhJ,EAAS3xN,QACjByC,KAAKytE,IAAT,CAIA,IAAI0hJ,EAAQ,EAAGC,EAAS,EACpBC,EAAS,EAAGC,EAAU,EACtB17L,EAAM4lB,EAEV,GAAa,IAATtpB,EACF,IAAK,IAAIlpB,EAAI,EAAGA,EAAI40M,IAAY50M,EAAG,CACjC,IAAIiQ,EAAIi4M,EAASloN,GACjBmoN,EAASA,GAAS,EAAKl4M,EAGvB+X,EAAO4E,KAAmC,KAAzB3c,EAAKk4M,GAASJ,GAE/BI,GAAS,KACjB,MACW,GAAa,IAATj/L,EAAY,CACrB,IAASlpB,EAAI,EAAGA,EAAI+nN,IAAU/nN,EAC5BgoB,EAAO4E,KAASs7L,EAASloN,GAC3B,KAAOA,EAAI40M,IAAY50M,EACrBgoB,EAAO4E,GAAO5E,EAAO4E,EAAMm7L,GAAUG,EAASloN,GAC9C4sB,GAER,KAAW,CACL,IAAI27L,EAAY,IAAI/4M,WAAWu4M,EAAS,GACpCS,GAAW,GAAKt/L,GAAQ,EACxB7iB,EAAI,EAAGiD,EAAIkpC,EACXw1K,EAAUhvN,KAAKgvN,QACnB,IAAShoN,EAAI,EAAGA,EAAIgoN,IAAWhoN,EAC7B,IAAK,IAAIklD,EAAK,EAAGA,EAAK6iK,IAAU7iK,EAC1BmjK,EAASn/L,IACXi/L,EAASA,GAAS,EAAsB,IAAhBD,EAAS7hN,KACjCgiN,GAAU,GAEZE,EAAUrjK,GAAOqjK,EAAUrjK,IACTijK,GAAUE,EAASn/L,GAAUs/L,EAC/CH,GAAUn/L,EACVk/L,EAAUA,GAAUl/L,EAAQq/L,EAAUrjK,IACtCojK,GAAWp/L,IACI,IACblB,EAAO1e,KAAQ8+M,GAAWE,EAAU,EAAM,IAC1CA,GAAW,GAIbA,EAAU,IACZtgM,EAAO1e,MAAQ8+M,GAAW,EAAIE,IAC7BH,GAAU,GAAM,EAAIG,GAAY,GAEzC,CACItvN,KAAKw5C,cAAgBoiK,CAlDzB,CAmDG,EAEDgO,EAAgBrxM,UAAUu2M,aACxB,WAEA,IAAIlT,EAAW57M,KAAK47M,SAChBqT,EAAWjvN,KAAKivN,SAEhBL,EAAY5uN,KAAKqI,IAAIm5B,UACrB0tL,EAAWlvN,KAAKqI,IAAI0qB,SAAS6oL,GAEjC,GADA57M,KAAKytE,KAAOyhJ,EAAS3xN,QACjByC,KAAKytE,IAAT,CAIA,IAAIj0B,EAAex5C,KAAKw5C,aACpBxqB,EAAShvB,KAAKmsN,aAAa3yK,EAAeoiK,GAE1C6T,EAAUzgM,EAAOuB,SAASipB,EAAeoiK,EAAUpiK,GAChC,IAAnBi2K,EAAQlyN,SACVkyN,EAAU,IAAIj5M,WAAWolM,IAE3B,IAAIvuM,EAAImsC,EACR,OAAQo1K,GACN,KAAK,EACH,IAAK,IAAI5nN,EAAI,EAAGA,EAAI40M,IAAY50M,EAC9BgoB,EAAO3hB,KAAO6hN,EAASloN,GACzB,MACF,KAAK,EACH,IAASA,EAAI,EAAGA,EAAIioN,IAAYjoN,EAC9BgoB,EAAO3hB,KAAO6hN,EAASloN,GACzB,KAAOA,EAAI40M,IAAY50M,EACrBgoB,EAAO3hB,GAAM2hB,EAAO3hB,EAAI4hN,GAAYC,EAASloN,GAAM,IACnDqG,IAEF,MACF,KAAK,EACH,IAASrG,EAAI,EAAGA,EAAI40M,IAAY50M,EAC9BgoB,EAAO3hB,KAAQoiN,EAAQzoN,GAAKkoN,EAASloN,GAAM,IAC7C,MACF,KAAK,EACH,IAASA,EAAI,EAAGA,EAAIioN,IAAYjoN,EAC9BgoB,EAAO3hB,MAAQoiN,EAAQzoN,IAAM,GAAKkoN,EAASloN,GAC7C,KAAOA,EAAI40M,IAAY50M,EACrBgoB,EAAO3hB,IAAQoiN,EAAQzoN,GAAKgoB,EAAO3hB,EAAI4hN,IAAc,GACpCC,EAASloN,GAAM,IAChCqG,IAEF,MACF,KAAK,EAGH,IAASrG,EAAI,EAAGA,EAAIioN,IAAYjoN,EAAG,CACjC,IAAI0oN,EAAKD,EAAQzoN,GACbiQ,EAAIi4M,EAASloN,GACjBgoB,EAAO3hB,KAAOqiN,EAAKz4M,CAC7B,CACQ,KAAOjQ,EAAI40M,IAAY50M,EAAG,CACpB0oN,EAAKD,EAAQzoN,GAAjB,IACI2oN,EAASF,EAAQzoN,EAAIioN,GACrBnnL,EAAO9Y,EAAO3hB,EAAI4hN,GAClBnmN,EAAIg/B,EAAO4nL,EAAKC,EAEhBC,EAAK9mN,EAAIg/B,EACT8nL,EAAK,IACPA,GAAMA,GACR,IAAIC,EAAK/mN,EAAI4mN,EACTG,EAAK,IACPA,GAAMA,GACR,IAAI5yJ,EAAKn0D,EAAI6mN,EACT1yJ,EAAK,IACPA,GAAMA,GAEJhmD,EAAIi4M,EAASloN,GAEfgoB,EAAO3hB,KADLuiN,GAAMC,GAAMD,GAAM3yJ,EACNn1B,EAAO7wB,EACd44M,GAAM5yJ,EACCyyJ,EAAKz4M,EAEL04M,EAAS14M,CACnC,CACQ,MACF,QACE6J,GAAM,0BAA4B8tM,GAEtC5uN,KAAKw5C,cAAgBoiK,CAxEzB,CAyEG,EAEMgO,CACR,CAxLqB,GAiMlBvoK,GAAa,WACf,SAASA,EAAWx9B,EAAO+C,EAAMoK,GAG/BhxB,KAAK4mB,KAAOA,EACZ5mB,KAAK6jB,MAAQA,EAEbooM,GAAaxzM,KAAKzY,KACtB,CA4CE,OA1CAqhD,EAAW9oC,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAElD8oC,EAAW9oC,UAAU4zM,aAAe,SAAiC2D,GACnE,IAAI9vN,KAAKw5C,aAET,IACE,IAAIu2K,EAAY,IAAIC,IACQ,GAAxBhwN,KAAKiwN,iBACPF,EAAUE,eAAiBjwN,KAAKiwN,gBAClCF,EAAUj/L,MAAM9wB,KAAK6jB,OACrB,IAAI9Y,EAAQglN,EAAUhlN,MAClBxK,EAASwvN,EAAUxvN,OACnB4D,EAAO4rN,EAAUntL,QAAQ73B,EAAOxK,GACpCP,KAAKgvB,OAAS7qB,EACdnE,KAAKw5C,aAAer1C,EAAK5G,OACzByC,KAAKytE,KAAM,CACZ,CAAC,MAAOpwC,GACPvc,GAAM,eAAiBuc,EAC7B,CACG,EACDgkB,EAAW9oC,UAAUya,MAAQ,WAC3B,OAAOtY,GAAMkU,gBAAgB5uB,KAAK6jB,MAAO,aAC1C,EAKDw9B,EAAW9oC,UAAUipC,oBACnB,SAAwCxwB,EAAMC,GAC9C,IAAIF,EAAKxM,GAAWuM,MAAM9wB,KAAK4mB,KAAKzO,IAAI,aAAc,MAAO6Y,EAAMC,GACnE,MAAmB,eAAZF,EAAG7rB,MAAqC,cAAZ6rB,EAAG7rB,IACvC,EAIDm8C,EAAW9oC,UAAUsgM,oBACnB,SAAwC7nL,EAAMC,GAC9C,IACIR,EADKlM,GAAWuM,MAAM9wB,KAAK4mB,KAAKzO,IAAI,aAAc,MAAO6Y,EAAMC,GACjDR,SAClB,OAAmB,GAAZA,GAA6B,GAAZA,CACzB,EAEM4wB,CACR,CArDgB,GA2Db2oK,GAAY,WACd,SAASA,EAAUnmM,EAAO+C,GACxB5mB,KAAK4mB,KAAOA,EACZ5mB,KAAK6jB,MAAQA,EAEbooM,GAAaxzM,KAAKzY,KACtB,CAsFE,OApFAgqN,EAAUzxM,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAEjDyxM,EAAUzxM,UAAU4zM,aAAe,SAAgC2D,GACjE,IAAI9vN,KAAKw5C,aAAT,CAGA,IAAI02K,EAAW,IAAIC,GACnBD,EAASp/L,MAAM9wB,KAAK6jB,OAEpB,IAAI9Y,EAAQmlN,EAASnlN,MACjBxK,EAAS2vN,EAAS3vN,OAClB6vN,EAAkBF,EAASE,gBACR,GAAnBA,GAA2C,GAAnBA,GAA2C,GAAnBA,GAClDtvM,GAAM,YAAcsvM,EAAkB,gCAIxC,IAFA,IAAIjsN,EAAO,IAAIqS,WAAWzL,EAAQxK,EAAS6vN,GAElC9/M,EAAI,EAAG47C,EAAKgkK,EAASG,MAAM9yN,OAAQ+S,EAAI47C,EAAI57C,IAAK,CACvD,IAMIggN,EAAcC,EAAgBC,EAAOC,EAAOC,EAAOC,EAAOC,EAN1DC,EAAiBX,EAASG,MAAM//M,GAChCwgN,EAAYD,EAAe,GAAG9lN,MAC9BgmN,EAAaF,EAAe,GAAGtwN,OAC/BywN,EAAWH,EAAe,GAAG/oL,KAC7BmpL,EAAUJ,EAAe,GAAG9oL,IAGhC,OAAQqoL,GACN,KAAK,EACHI,EAAQK,EAAe,GAAGtgL,MAE1B+/K,EAAevlN,EAAQkmN,EAAUD,EACjCJ,EAAU7lN,EAAQ+lN,EAClBP,EAAiB,EACjB,IAAK,IAAIljN,EAAI,EAAGA,EAAI0jN,EAAY1jN,IAAK,CACnC,IAAK,IAAIrG,EAAI,EAAGA,EAAI8pN,EAAW9pN,IAC7B7C,EAAKmsN,KAAkBE,EAAMD,KAC/BD,GAAgBM,CAC5B,CACU,MACF,KAAK,EACHJ,EAAQK,EAAe,GAAGtgL,MAC1BkgL,EAAQI,EAAe,GAAGtgL,MAC1BmgL,EAAQG,EAAe,GAAGtgL,MAE1B+/K,EAA8C,GAA9BvlN,EAAQkmN,EAAUD,GAClCJ,EAAgC,GAArB7lN,EAAQ+lN,GACnBP,EAAiB,EACjB,IAASljN,EAAI,EAAGA,EAAI0jN,EAAY1jN,IAAK,CACnC,IAASrG,EAAI,EAAGA,EAAI8pN,EAAW9pN,IAC7B7C,EAAKmsN,KAAkBE,EAAMD,GAC7BpsN,EAAKmsN,KAAkBG,EAAMF,GAC7BpsN,EAAKmsN,KAAkBI,EAAMH,GAC7BA,IAEFD,GAAgBM,CAC5B,CACU,MACF,KAAK,EACHJ,EAAQK,EAAe,GAAGtgL,MAC1BkgL,EAAQI,EAAe,GAAGtgL,MAC1BmgL,EAAQG,EAAe,GAAGtgL,MAC1BogL,EAAQE,EAAe,GAAGtgL,MAE1B+/K,EAA8C,GAA9BvlN,EAAQkmN,EAAUD,GAClCJ,EAAgC,GAArB7lN,EAAQ+lN,GACnBP,EAAiB,EACjB,IAASljN,EAAI,EAAGA,EAAI0jN,EAAY1jN,IAAK,CACnC,IAASrG,EAAI,EAAGA,EAAI8pN,EAAW9pN,IAC7B7C,EAAKmsN,KAAkBE,EAAMD,GAC7BpsN,EAAKmsN,KAAkBG,EAAMF,GAC7BpsN,EAAKmsN,KAAkBI,EAAMH,GAC7BpsN,EAAKmsN,KAAkBK,EAAMJ,GAC7BA,IAEFD,GAAgBM,CAC5B,EAGA,CAEI5wN,KAAKgvB,OAAS7qB,EACdnE,KAAKw5C,aAAer1C,EAAK5G,OACzByC,KAAKytE,KAAM,CA7ET,CA8EH,EAEMu8I,CACR,CA7Fe,GAmGZK,GAAc,WAChB,SAASA,EAAYxmM,EAAO+C,GAC1B5mB,KAAK4mB,KAAOA,EACZ5mB,KAAK6jB,MAAQA,EAEbooM,GAAaxzM,KAAKzY,KACtB,CA6BE,OA3BAqqN,EAAY9xM,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAEnD8xM,EAAY9xM,UAAU4zM,aAAe,SAAkC2D,GACrE,IAAI9vN,KAAKw5C,aAAT,CAGA,IAAI03K,EAAa,IAAIC,GAEjBC,EAAS,GAAIC,EAAerxN,KAAK4mB,KAAKzO,IAAI,eAC9C,GAAIk5M,GAAgBA,EAAaxqM,IAAI,gBAAiB,CACpD,IACIyqM,EADgBD,EAAal5M,IAAI,gBACT4a,WAC5Bq+L,EAAO/uN,KAAK,CAAC8B,KAAMmtN,EAASniN,MAAO,EAAGC,IAAKkiN,EAAQ/zN,QACzD,CACI6zN,EAAO/uN,KAAK,CAAC8B,KAAMnE,KAAK6jB,MAAO1U,MAAO,EAAGC,IAAKpP,KAAK6jB,MAAMtmB,SAKzD,IAJA,IAAI4G,EAAO+sN,EAAWK,YAAYH,GAC9Bx8K,EAAazwC,EAAK5G,OAGbyJ,EAAI,EAAGA,EAAI4tC,EAAY5tC,IAC9B7C,EAAK6C,IAAM,IAEbhH,KAAKgvB,OAAS7qB,EACdnE,KAAKw5C,aAAe5E,EACpB50C,KAAKytE,KAAM,CApBT,CAqBH,EAEM48I,CACR,CApCiB,GAsCdnwK,GAAgB,WAClB,SAASA,EAAc7xC,EAAKo/D,GAC1BznE,KAAKqI,IAAMA,EACXrI,KAAK4mB,KAAOve,EAAIue,KAChB5mB,KAAKynE,QAAUA,EACfznE,KAAKwxN,UAAY,KACjBxxN,KAAKyxN,aAAc,EAEnBxF,GAAaxzM,KAAKzY,KACtB,CAgCE,OA5BAk6C,EAAc3hC,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAErD2hC,EAAc3hC,UAAUi0M,UAAY,WAClC,IAAIvnK,EAOJ,GANIjlD,KAAKyxN,YACPxsK,EAAQjlD,KAAKwxN,WAEbvsK,EAAQjlD,KAAKqI,IAAI0qB,SATL,KAUZ/yB,KAAKyxN,aAAc,GAEhBxsK,GAA0B,IAAjBA,EAAM1nD,OAApB,CAIAyC,KAAKwxN,UAAYxxN,KAAKqI,IAAI0qB,SAhBZ,KAiBd,IAAI2+L,EAAc1xN,KAAKwxN,WAAaxxN,KAAKwxN,UAAUj0N,OAAS,EAG5D0nD,GAAQwiB,EADMznE,KAAKynE,SACHxiB,GAAQysK,GAExB,IACI1qN,EADAwyC,EAAex5C,KAAKw5C,aACjB11B,EAAImhC,EAAM1nD,OACbyxB,EAAShvB,KAAKmsN,aAAa3yK,EAAe11B,GAC9C,IAAK9c,EAAI,EAAGA,EAAI8c,EAAG9c,IACjBgoB,EAAOwqB,KAAkByL,EAAMj+C,GACjChH,KAAKw5C,aAAeA,CAZxB,MAFMx5C,KAAKytE,KAAM,CAed,EAEMvzB,CACR,CA1CmB,GA4ChB+vK,GAAgB,WAClB,SAASA,EAAc5hN,GACrBrI,KAAKqI,IAAMA,EACXrI,KAAK4mB,KAAOve,EAAIue,KAChB5mB,KAAKyzB,MAAQ,IAAIjd,WAAW,GAE5By1M,GAAaxzM,KAAKzY,KACtB,CA+DE,OA7DAiqN,EAAc1xM,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAErD0xM,EAAc1xM,UAAUi0M,UAAY,WAQlC,IAPA,IAIInkN,EAAMrI,KAAKqI,IAEX4O,EAAI5O,EAAIm5B,UACLI,GAAMC,QAAQ5qB,IACnBA,EAAI5O,EAAIm5B,UAGV,IATU,IASNvqB,GAXa,MAWAA,EAAjB,CAKA,IAAsC+X,EAAlCwqB,EAAex5C,KAAKw5C,aAGxB,GAlBmB,KAkBfviC,EAAmB,CACrB+X,EAAShvB,KAAKmsN,aAAa3yK,EAAe,GAC1C,IAAK,IAAIxyC,EAAI,EAAGA,EAAI,IAAKA,EACvBgoB,EAAOwqB,EAAexyC,GAAK,EAC7BhH,KAAKw5C,cAAgB,CAC3B,KAAW,CACL,IAAI/lB,EAAQzzB,KAAKyzB,MACjBA,EAAM,GAAKxc,EACX,IAASjQ,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAE1B,IADAiQ,EAAI5O,EAAIm5B,UACDI,GAAMC,QAAQ5qB,IACnBA,EAAI5O,EAAIm5B,UAKV,GAFA/N,EAAMzsB,GAAKiQ,GA/BL,IAiCFA,GAnCS,KAmCIA,EACf,KACV,CAKM,GAJA+X,EAAShvB,KAAKmsN,aAAa3yK,EAAexyC,EAAI,GAC9ChH,KAAKw5C,cAAgBxyC,EAAI,EAGrBA,EAAI,EAAG,CACT,KAAOA,EAAI,IAAKA,EACdysB,EAAMzsB,GAAK,IACbhH,KAAKytE,KAAM,CACnB,CACM,IAAIjuC,EAAI,EACR,IAASx4B,EAAI,EAAGA,EAAI,IAAKA,EACvBw4B,EAAQ,GAAJA,GAAU/L,EAAMzsB,GAAK,IAE3B,IAASA,EAAI,EAAGA,GAAK,IAAKA,EACxBgoB,EAAOwqB,EAAexyC,GAAS,IAAJw4B,EAC3BA,IAAM,CAEd,CAzCA,MAFMx/B,KAAKytE,KAAM,CA4Cd,EAEMw8I,CACR,CAvEmB,GAyEhBC,GAAiB,WACnB,SAASA,EAAe7hN,GACtBrI,KAAKqI,IAAMA,EACXrI,KAAK4mB,KAAOve,EAAIue,KAEhB5mB,KAAKgrN,YAAc,EAEnBiB,GAAaxzM,KAAKzY,KACtB,CA8CE,OA5CAkqN,EAAe3xM,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAEtD2xM,EAAe3xM,UAAUi0M,UAAY,WACnC,IACI3oM,EAAQ7jB,KAAKqI,IAAI0qB,SADK,KAE1B,GAAKlP,EAAMtmB,OAAX,CAUA,IALA,IAAIo0N,EAAmB9tM,EAAMtmB,OAAS,GAAM,EACxCyxB,EAAShvB,KAAKmsN,aAAansN,KAAKw5C,aAAem4K,GAC/Cn4K,EAAex5C,KAAKw5C,aAEpBwxK,EAAahrN,KAAKgrN,WACbhkN,EAAI,EAAGub,EAAKsB,EAAMtmB,OAAQyJ,EAAIub,EAAIvb,IAAK,CAC9C,IAAmB4qN,EAAflwL,EAAK7d,EAAM7c,GACf,GAAI06B,GAAM,IAAQA,GAAM,GACtBkwL,EAAa,GAALlwL,MACH,MAAKA,GAAM,IAAQA,GAAM,IAAUA,GAAM,IAAQA,GAAM,KAGvD,IAAW,KAAPA,EAAa,CACtB1hC,KAAKytE,KAAM,EACX,KACR,CACQ,QACR,CANQmkJ,EAAsB,GAAR,GAALlwL,EAMjB,CACUspL,EAAa,EACfA,EAAa4G,GAEb5iM,EAAOwqB,KAAmBwxK,GAAc,EAAK4G,EAC7C5G,GAAc,EAEtB,CACQA,GAAc,GAAKhrN,KAAKytE,MAE1Bz+C,EAAOwqB,KAAmBwxK,GAAc,EACxCA,GAAc,GAEhBhrN,KAAKgrN,WAAaA,EAClBhrN,KAAKw5C,aAAeA,CAjCxB,MAFMx5C,KAAKytE,KAAM,CAoCd,EAEMy8I,CACR,CAvDoB,GAyDjBE,GAAkB,WACpB,SAASA,EAAgB/hN,GACvBrI,KAAKqI,IAAMA,EACXrI,KAAK4mB,KAAOve,EAAIue,KAEhBqlM,GAAaxzM,KAAKzY,KACtB,CAoCE,OAlCAoqN,EAAgB7xM,UAAY7W,OAAOulB,OAAOglM,GAAa1zM,WAEvD6xM,EAAgB7xM,UAAUi0M,UAAY,WAKpC,IAAIqF,EAAe7xN,KAAKqI,IAAI0qB,SAAS,GACrC,IAAK8+L,GAAgBA,EAAat0N,OAAS,GAAwB,KAAnBs0N,EAAa,GAC3D7xN,KAAKytE,KAAM,MADb,CAKA,IAAIj0B,EAAex5C,KAAKw5C,aACpB11B,EAAI+tM,EAAa,GACrB,GAAI/tM,EAAI,IAAK,CAIX,IAFIkL,EAAShvB,KAAKmsN,aAAa3yK,EAAe11B,EAAI,IAC3C01B,KAAkBq4K,EAAa,GAClC/tM,EAAI,EAAG,CACT,IAAIu3C,EAASr7D,KAAKqI,IAAI0qB,SAASjP,GAC/BkL,EAAOmF,IAAIknC,EAAQ7hB,GACnBA,GAAgB11B,CACxB,CACA,KAAW,CACLA,EAAI,IAAMA,EAGV,IAFA,IAAIuB,EAAIwsM,EAAa,GACjB7iM,EAAShvB,KAAKmsN,aAAa3yK,EAAe11B,EAAI,GACzC9c,EAAI,EAAGA,EAAI8c,EAAG9c,IACrBgoB,EAAOwqB,KAAkBn0B,CACjC,CACIrlB,KAAKw5C,aAAeA,CApBxB,CAqBG,EAEM4wK,CACR,CA3CqB,GA6ClBD,GAAiB,WAEnB,IAWI2H,EAAc,CAChB,EAAE,GAAI,GAAI,EAAE,GAAI,GAChB,CAAC,EAJgB,GAKjB,CAAC,EANgB,GAOjB,CAAC,EARgB,GAQE,CAAC,EARH,GASjB,CAAC,EAVgB,GAUE,CAAC,EAVH,GAWjB,CAAC,EAhBc,GAgBE,CAAC,EAhBH,GAiBf,CAAC,EAjBc,GAiBE,CAAC,EAjBH,GAkBf,CAAC,EAlBc,GAkBE,CAAC,EAlBH,GAmBf,CAAC,EAnBc,GAmBE,CAAC,EAnBH,GAoBf,CAAC,EAnBe,GAmBE,CAAC,EAnBH,GAoBhB,CAAC,EApBe,GAoBE,CAAC,EApBH,GAqBhB,CAAC,EArBe,GAqBE,CAAC,EArBH,GAsBhB,CAAC,EAtBe,GAsBE,CAAC,EAtBH,GAuBhB,CAAC,EAvBe,GAuBE,CAAC,EAvBH,GAwBhB,CAAC,EAxBe,GAwBE,CAAC,EAxBH,GAyBhB,CAAC,EAzBe,GAyBE,CAAC,EAzBH,GA0BhB,CAAC,EA1Be,GA0BE,CAAC,EA1BH,GA2BhB,CAAC,EAxBgB,GAwBE,CAAC,EAxBH,GAyBjB,CAAC,EAzBgB,GAyBE,CAAC,EAzBH,GA0BjB,CAAC,EA1BgB,GA0BE,CAAC,EA1BH,GA2BjB,CAAC,EA3BgB,GA2BE,CAAC,EA3BH,GA4BjB,CAAC,EA5BgB,GA4BE,CAAC,EA5BH,GA6BjB,CAAC,EA7BgB,GA6BE,CAAC,EA7BH,GA8BjB,CAAC,EA9BgB,GA8BE,CAAC,EA9BH,GA+BjB,CAAC,EA/BgB,GA+BE,CAAC,EA/BH,GAgCjB,CAAC,EAjCgB,GAiCE,CAAC,EAjCH,GAkCjB,CAAC,EAlCgB,GAkCE,CAAC,EAlCH,GAmCjB,CAAC,EAnCgB,GAmCE,CAAC,EAnCH,GAoCjB,CAAC,EApCgB,GAoCE,CAAC,EApCH,GAqCjB,CAAC,EArCgB,GAqCE,CAAC,EArCH,GAsCjB,CAAC,EAtCgB,GAsCE,CAAC,EAtCH,GAuCjB,CAAC,EAvCgB,GAuCE,CAAC,EAvCH,GAwCjB,CAAC,EAxCgB,GAwCE,CAAC,EAxCH,GAyCjB,CAAC,EA1Ce,GA0CE,CAAC,EA1CH,GA2ChB,CAAC,EA3Ce,GA2CE,CAAC,EA3CH,GA4ChB,CAAC,EA5Ce,GA4CE,CAAC,EA5CH,GA6ChB,CAAC,EA7Ce,GA6CE,CAAC,EA7CH,GA8ChB,CAAC,EA9Ce,GA8CE,CAAC,EA9CH,GA+ChB,CAAC,EA/Ce,GA+CE,CAAC,EA/CH,GAgDhB,CAAC,EAhDe,GAgDE,CAAC,EAhDH,GAiDhB,CAAC,EAjDe,GAiDE,CAAC,EAjDH,GAkDhB,CAAC,EAlDe,GAkDE,CAAC,EAlDH,GAmDhB,CAAC,EAnDe,GAmDE,CAAC,EAnDH,GAoDhB,CAAC,EApDe,GAoDE,CAAC,EApDH,GAqDhB,CAAC,EArDe,GAqDE,CAAC,EArDH,GAsDhB,CAAC,EAtDe,GAsDE,CAAC,EAtDH,GAuDhB,CAAC,EAvDe,GAuDE,CAAC,EAvDH,GAwDhB,CAAC,EAxDe,GAwDE,CAAC,EAxDH,GAyDhB,CAAC,EAzDe,GAyDE,CAAC,EAzDH,GA0DhB,CAAC,EA1De,GA0DE,CAAC,EA1DH,GA2DhB,CAAC,EA3De,GA2DE,CAAC,EA3DH,GA4DhB,CAAC,EA5De,GA4DE,CAAC,EA5DH,GA6DhB,CAAC,EA7De,GA6DE,CAAC,EA7DH,GA8DhB,CAAC,EA9De,GA8DE,CAAC,EA9DH,GA+DhB,CAAC,EA/De,GA+DE,CAAC,EA/DH,GAgEhB,CAAC,EAhEe,GAgEE,CAAC,EAhEH,GAiEhB,CAAC,EAjEe,GAiEE,CAAC,EAjEH,GAkEhB,CAAC,EAlEe,GAkEE,CAAC,EAlEH,GAmEhB,CAAC,EAnEe,GAmEE,CAAC,EAnEH,GAoEhB,CAAC,EApEe,GAoEE,CAAC,EApEH,GAqEhB,CAAC,EArEe,GAqEE,CAAC,EArEH,GAsEhB,CAAC,EAtEe,GAsEE,CAAC,EAtEH,GAuEhB,CAAC,EAvEe,GAuEE,CAAC,EAvEH,GAwEhB,CAAC,EAxEe,GAwEE,CAAC,EAxEH,GAyEhB,CAAC,EAzEe,GAyEE,CAAC,EAzEH,IA4EdC,EAAc,CAChB,EAAE,GAAI,GACN,CAAC,IAjFY,GAkFb,EAAE,GAAI,GAAI,EAAE,GAAI,GAChB,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GACpC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GACpC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GACpC,CAAC,GAAI,MAAO,CAAC,GAAI,MACjB,CAAC,GAAI,MACL,CAAC,GAAI,MACL,CAAC,GAAI,MACL,CAAC,GAAI,MACL,CAAC,GAAI,MACL,CAAC,GAAI,MACL,CAAC,GAAI,MAAO,CAAC,GAAI,MACjB,CAAC,GAAI,MAAO,CAAC,GAAI,MACjB,CAAC,GAAI,MACL,CAAC,GAAI,MACL,CAAC,GAAI,MACL,CAAC,GAAI,OAGHC,EAAc,CAChB,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GACpC,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,GAAI,CAAC,EAAG,GACZ,CAAC,EAAG,KAAM,CAAC,EAAG,KACd,CAAC,EAAG,KAAM,CAAC,EAAG,KACd,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,IAAK,CAAC,EAAG,IACb,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAClC,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAClC,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MACrC,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MACrC,CAAC,EAAG,KAAM,CAAC,EAAG,KACd,CAAC,EAAG,KAAM,CAAC,EAAG,KACd,CAAC,EAAG,KACJ,CAAC,EAAG,KACJ,CAAC,EAAG,KAAM,CAAC,EAAG,KACd,CAAC,EAAG,KAAM,CAAC,EAAG,KACd,CAAC,EAAG,KACJ,CAAC,EAAG,KACJ,CAAC,EAAG,KACJ,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,MACJ,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAClC,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAClC,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAClC,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAClC,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAClC,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAC5B,CAAC,EA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,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAC/B,CAAC,GAAI,KACL,CAAC,GAAI,KACL,CAAC,GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IAAK,CAAC,GAAI,IACf,CAAC,GAAI,IAAK,CAAC,GAAI,IACf,C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KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,MAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,MAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,MAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,MAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,MAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,MAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,MAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,KAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,IAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,IAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,IAAQC,KAAM,GAAIC,KAAM,GAAIC,WAAY,GAC7C,CAACH,GAAI,IAAQC,KAAM,GAAIC,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K,KAItDC,EAAc,CAChB,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KACnE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KACnE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAClE,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MACrE,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACrE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAGlD,SAASC,EAAMrvO,GACb,SAAY,EAAJA,EACZ,CAEE,SAASsvO,EAAOtvO,GACd,QAAY,EAAJA,EACZ,CAEE,SAASuvO,EAAYp6M,EAAKhtB,EAAOxM,GAE/B,IADA,IACS0K,EAAI8B,EAAOwoB,EAAKwE,EAAI5+B,OAAQ8P,EAAIsqB,IAAMtqB,EAC7C,GAAI8uB,EAAI9uB,IAAM1K,EACZ,OAAO0K,EAEX,OAAOA,CACX,CAEE,SAASmpO,EAAUr6M,EAAKhtB,EAAOC,EAAKzM,GAClC,IAAK,IAAI0K,EAAI8B,EAAO9B,EAAI+B,IAAO/B,EAC7B8uB,EAAI9uB,GAAK1K,CAEf,CAEE,SAAS8zO,EAAct6M,EAAKhtB,EAAOC,GACjC,IAAK,IAAIpI,EAAImI,EAAO9B,EAAI+B,EAAM,EAAGpI,EAAIqG,IAAKrG,IAAKqG,EAAG,CAChD,IAAIktM,EAAOp+K,EAAIn1B,GACfm1B,EAAIn1B,GAAKm1B,EAAI9uB,GACb8uB,EAAI9uB,GAAKktM,CACf,CACA,CA0CE,SAASm8B,EAAWruO,EAAKsuO,EAAO9wL,GAC9B7lD,KAAKqI,IAAMA,EACXrI,KAAKmmD,IAAMN,EAAW,MAAQ8wL,EAAQ,MAAQ,KAClD,CAkTE,OAhTA,SAActuO,EAAKuuO,EAAY/wL,GAC7B,IAAI8wL,GAAQ,EACRE,EAAYxuO,EAAI9K,OACpB,GAAkB,IAAds5O,GAAmBhxL,EACrB,OAAO,IAAI6wL,EAAWruO,EAAKsuO,EAAO9wL,GASpC,IALA,IAAIpD,EAAQ,GACRyrB,EAAQ,GACR4oK,EAAW,GACXC,EAAU,EAEL/vO,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAAG,CAClCy7C,EAAMz7C,GAAKqB,EAAIsZ,OAAO3a,GAEtB,IAAIgwO,EAAW3uO,EAAIC,WAAWtB,GAC1BiwO,EAAW,IACXD,GAAY,IACdC,EAAWd,EAAUa,GACd,MAAUA,GAAYA,GAAY,KACzCC,EAAW,IACJ,MAAUD,GAAYA,GAAY,KACzCC,EAAWb,EAAuB,IAAXY,GAChB,MAAUA,GAAYA,GAAY,OACzCC,EAAW,MAEG,KAAZA,GAA+B,MAAZA,GAAgC,MAAZA,GACzCF,IAEFD,EAAS9vO,GAAKknE,EAAMlnE,GAAKiwO,CAC/B,CAMI,GAAgB,IAAZF,EAEF,OAAO,IAAIL,EAAWruO,EADtBsuO,GAAQ,IAIS,GAAfC,IACGC,EAAYE,EAAW,IAC1BJ,GAAQ,EACRC,EAAa,IAEbD,GAAQ,EACRC,EAAa,IAIjB,IAAIlQ,EAAS,GAEb,IAAS1/N,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAC/B0/N,EAAO1/N,GAAK4vO,EAOd,IAAIv5M,EAAIg5M,EAAMO,GAAc,IAAM,IAC9BM,EAAM75M,EACN85M,EAAMD,EAQNE,EAAWF,EACf,IAASlwO,EAAI,EAAGA,EAAI6vO,IAAa7vO,EACf,OAAZknE,EAAMlnE,GACRknE,EAAMlnE,GAAKowO,EAEXA,EAAWlpK,EAAMlnE,GAUrB,IADIowO,EAAWF,EACNlwO,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAAG,CAEzB,OADLw4B,EAAI0uC,EAAMlnE,IAEZknE,EAAMlnE,GAAkB,MAAZowO,EAAoB,KAAO,KAC3B,KAAL53M,GAAiB,KAALA,GAAiB,MAALA,IAC/B43M,EAAW53M,EACnB,CAMI,IAASx4B,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAAG,CAEzB,OADLw4B,EAAI0uC,EAAMlnE,MAEZknE,EAAMlnE,GAAK,IACnB,CAQI,IAASA,EAAI,EAAGA,EAAI6vO,EAAY,IAAK7vO,EACnB,MAAZknE,EAAMlnE,IAA8B,MAAhBknE,EAAMlnE,EAAI,IAA8B,MAAhBknE,EAAMlnE,EAAI,KACxDknE,EAAMlnE,GAAK,MACG,MAAZknE,EAAMlnE,IAA+B,MAAhBknE,EAAMlnE,EAAI,IAA8B,MAAhBknE,EAAMlnE,EAAI,IACvDknE,EAAMlnE,EAAI,IAAMknE,EAAMlnE,EAAI,KAC5BknE,EAAMlnE,GAAKknE,EAAMlnE,EAAI,IAQzB,IAASA,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAC/B,GAAgB,MAAZknE,EAAMlnE,GAAY,CAEpB,IAAK,IAAIqG,EAAIrG,EAAI,EAAGqG,GAAK,GACP,MAAZ6gE,EAAM7gE,KADkBA,EAG5B6gE,EAAM7gE,GAAK,KAGb,IAASA,EAAIrG,EAAI,EAAGqG,EAAIwpO,GACN,MAAZ3oK,EAAM7gE,KADyBA,EAGnC6gE,EAAM7gE,GAAK,IAErB,CAOI,IAASrG,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAAG,CAEzB,OADLw4B,EAAI0uC,EAAMlnE,KACQ,MAALw4B,GAAkB,MAALA,GAAkB,MAALA,IACzC0uC,EAAMlnE,GAAK,KACnB,CASI,IADIowO,EAAWF,EACNlwO,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAAG,CAEzB,OADLw4B,EAAI0uC,EAAMlnE,IAEZknE,EAAMlnE,GAAkB,KAAZowO,EAAmB,IAAM,KACzB,KAAL53M,GAAiB,KAALA,IACnB43M,EAAW53M,EACnB,CASI,IAASx4B,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAC/B,GAAgB,MAAZknE,EAAMlnE,GAAY,CACpB,IAAIoI,EAAMmnO,EAAYroK,EAAOlnE,EAAI,EAAG,MAChCqwO,EAASH,EACTlwO,EAAI,IACNqwO,EAASnpK,EAAMlnE,EAAI,IACrB,IAAIswO,EAAQH,EACR/nO,EAAM,EAAIynO,IACZS,EAAQppK,EAAM9+D,EAAM,IACR,KAAVioO,IACFA,EAAS,KACE,KAATC,IACFA,EAAQ,KACND,GAAUC,GACZd,EAAUtoK,EAAOlnE,EAAGoI,EAAKioO,GAC3BrwO,EAAIoI,EAAM,CAClB,CAOI,IAASpI,EAAI,EAAGA,EAAI6vO,IAAa7vO,EACf,MAAZknE,EAAMlnE,KACRknE,EAAMlnE,GAAKq2B,GAWf,IAASr2B,EAAI,EAAGA,EAAI6vO,IAAa7vO,EAAG,CAClC,IAAIw4B,EAAI0uC,EAAMlnE,GACVsvO,EAAO5P,EAAO1/N,IACP,KAALw4B,EACFknM,EAAO1/N,IAAM,EACC,MAALw4B,GAAkB,MAALA,IACtBknM,EAAO1/N,IAAM,GAGN,KAALw4B,GAAiB,MAALA,GAAkB,MAALA,IAC3BknM,EAAO1/N,IAAM,EAGvB,CAyBI,IAFA,IAAIuwO,GAAgB,EAChBC,EAAiB,GACLj1N,GAAPvb,EAAI,EAAQ0/N,EAAOnpO,QAAQyJ,EAAIub,IAAMvb,EAAG,CAE3CuwO,GADA5Q,EAAQD,EAAO1/N,MAEjBuwO,EAAe5Q,GACb6Q,EAAiB7Q,GAAS0P,EAAM1P,KAClC6Q,EAAiB7Q,EACzB,CAII,IAAK,IAAIA,EAAQ4Q,EAAc5Q,GAAS6Q,IAAkB7Q,EAAO,CAE/D,IAAIx3N,GAAS,EACb,IAASnI,EAAI,EAAGub,EAAKmkN,EAAOnpO,OAAQyJ,EAAIub,IAAMvb,EACxC0/N,EAAO1/N,GAAK2/N,EACVx3N,GAAS,IACXsnO,EAAch0L,EAAOtzC,EAAOnI,GAC5BmI,GAAS,GAEFA,EAAQ,IACjBA,EAAQnI,GAGRmI,GAAS,GACXsnO,EAAch0L,EAAOtzC,EAAOu3N,EAAOnpO,OAE3C,CAqBI,IAAImQ,EAAS,GACb,IAAS1G,EAAI,EAAGub,EAAKkgC,EAAMllD,OAAQyJ,EAAIub,IAAMvb,EAAG,CAC9C,IAAI06B,EAAK+gB,EAAMz7C,GACL,KAAN06B,GAAmB,KAANA,IACfh0B,GAAUg0B,EAClB,CAEI,OAAO,IAAIg1M,EAAWhpO,EAAQipO,EAClC,CAGC,CA/auB,GA2cR,WAEd,IAAIc,EAAY,IAAI9/L,WAAW,CAC5B,EACA,EAAI,EACL,GAAK,EAAI,EACR,EAAG,GAAI,GAAI,GACZ,GAAI,GAAI,GAAI,GAAI,EACf,EAAG,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GAAK,EACxB,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxB,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAChB,GAAI,GAAI,GAAI,GACZ,GAAI,GAAI,GACR,GAAI,GACJ,KAGE+/L,EAAY,KACZC,EAAa,IACbC,EAAY,KACZC,EAAY,KACZC,EAAY,KACZC,EAAY,KACZC,EAAY,KACZC,EAAa,KAEjB,SAASr4O,IACX,CAEE,SAASs4O,EAAkB9pB,EAAa/9I,GAEtC,IADA,IAAsBrpE,EAAGqG,EAArBiD,EAAI,EAAG6S,EAAO,GAAU5lB,EAAS,GAC9BA,EAAS,IAAM6wN,EAAY7wN,EAAS,IACzCA,IACF4lB,EAAK9gB,KAAK,CAAC81O,SAAU,GAAIjwO,MAAO,IAChC,IAAiBosB,EAAbxrB,EAAIqa,EAAK,GACb,IAAKnc,EAAI,EAAGA,EAAIzJ,EAAQyJ,IAAK,CAC3B,IAAKqG,EAAI,EAAGA,EAAI+gN,EAAYpnN,GAAIqG,IAAK,CAGnC,KAFAvE,EAAIqa,EAAKtM,OACPshO,SAASrvO,EAAEZ,OAASmoE,EAAO//D,GACtBxH,EAAEZ,MAAQ,GACfY,EAAIqa,EAAKtM,MAIX,IAFA/N,EAAEZ,QACFib,EAAK9gB,KAAKyG,GACHqa,EAAK5lB,QAAUyJ,GACpBmc,EAAK9gB,KAAKiyB,EAAI,CAAC6jN,SAAU,GAAIjwO,MAAO,IACpCY,EAAEqvO,SAASrvO,EAAEZ,OAASosB,EAAE6jN,SACxBrvO,EAAIwrB,EAENhkB,GACR,CACUtJ,EAAI,EAAIzJ,IAEV4lB,EAAK9gB,KAAKiyB,EAAI,CAAC6jN,SAAU,GAAIjwO,MAAO,IACpCY,EAAEqvO,SAASrvO,EAAEZ,OAASosB,EAAE6jN,SACxBrvO,EAAIwrB,EAEZ,CACI,OAAOnR,EAAK,GAAGg1N,QACnB,CAEE,SAASC,EAAWj0O,EAAMuN,EACN2mO,EAAOl+B,EAAYm+B,EACnBC,EAAeC,EACfC,EAAgBC,GAClBL,EAAM9U,UACD8U,EAAMM,eACXN,EAAMO,UAFtB,IAGIC,EAAcR,EAAMQ,YACpBC,EAAcT,EAAMS,YAGpB54K,GAFOm4K,EAAMU,KAAaV,EAAMW,KAElBtnO,GAAQunO,EAAW,EAAGC,EAAY,EACpD,SAAStR,IACP,GAAIsR,EAAY,EAEd,OADAA,IACQD,GAAYC,EAAa,EAGnC,GAAgB,MADhBD,EAAW90O,EAAKuN,MACM,CACpB,IAAIynO,EAAWh1O,EAAKuN,KACpB,GAAIynO,EACF,KAAM,uBAA0BF,GAAY,EAAKE,GAAU7rO,SAAS,GAG9E,CAEM,OADA4rO,EAAY,EACLD,IAAa,CAC1B,CACI,SAASG,EAAcC,GAErB,IADA,IAAiBrP,EAAb53L,EAAOinM,EACkB,QAArBrP,EAAMpC,MAAqB,CAEjC,GAAoB,iBADpBx1L,EAAOA,EAAK43L,IAEV,OAAO53L,EACT,GAAoB,iBAATA,EACT,KAAM,0BAChB,CACM,OAAO,IACb,CACI,SAASknM,EAAQ/7O,GAEf,IADA,IAAIumB,EAAI,EACDvmB,EAAS,GAAG,CACjB,IAAIysO,EAAMpC,IACV,GAAY,OAARoC,EAAc,OAClBlmN,EAAKA,GAAK,EAAKkmN,EACfzsO,GACR,CACM,OAAOumB,CACb,CACI,SAASy1N,EAAiBh8O,GACxB,IAAIumB,EAAIw1N,EAAQ/7O,GAChB,OAAIumB,GAAK,GAAMvmB,EAAS,EACfumB,EACFA,IAAM,GAAKvmB,GAAU,CAClC,CA6BI,IAAIi8O,EAAS,EAwBb,IAA2BC,EAAvBC,EAAoB,EAuDxB,SAASC,EAAUlgB,EAAWvmM,EAAQ0mN,EAAKjnB,EAAKknB,GAC9C,IACIC,EAASF,EAAMf,EACfkB,GAFUH,EAAMf,EAAe,GAEXpf,EAAUv0M,EAAIytM,EAClCqnB,EAAWF,EAASrgB,EAAU74N,EAAIi5O,EACtC3mN,EAAOumM,EAAWA,EAAUwgB,OAAOF,GAAUC,GACnD,CACI,SAASE,EAAYzgB,EAAWvmM,EAAQ0mN,GACtC,IAAIG,EAAYH,EAAMngB,EAAU0gB,cAAiB,EAC7CH,EAAWJ,EAAMngB,EAAU0gB,cAC/BjnN,EAAOumM,EAAWA,EAAUwgB,OAAOF,GAAUC,GACnD,CAEI,IACIvgB,EAAWzyN,EAAGqG,EAAGiD,EAAGwT,EACpBs2N,EAFAC,EAAmBlgC,EAAW58M,OAK9B68O,EAFAtB,EACoB,IAAlBP,EAC4B,IAAnBE,EAzGf,SAAuBhf,EAAW6gB,GAChC,IAAI96M,EAAI45M,EAAc3f,EAAU8gB,gBAC5B1iN,EAAa,IAAN2H,EAAU,EAAK+5M,EAAiB/5M,IAAMk5M,EACjD4B,EAAG,GAAM7gB,EAAU+gB,MAAQ3iN,CACjC,EACI,SAA4B4hM,EAAW6gB,GACrCA,EAAG,IAAM1S,KAAa8Q,CAC5B,EAoGsC,IAAnBD,EAlGf,SAAuBhf,EAAW6gB,GAChC,GAAId,EAAS,EACXA,SAIF,IADA,IAAIlpO,EAAIioO,EAAel7M,EAAIm7M,EACpBloO,GAAK+sB,GAAG,CACb,IAAIo9M,EAAKrB,EAAc3f,EAAUihB,gBAC7BxjO,EAAS,GAALujO,EAASt6O,EAAIs6O,GAAM,EAC3B,GAAU,IAANvjO,EAUJojO,EADQ7C,EADRnnO,GAAKnQ,IAEGo5O,EAAiBriO,IAAM,GAAKwhO,GACpCpoO,QAXA,CACE,GAAInQ,EAAI,GAAI,CACVq5O,EAASF,EAAQn5O,IAAM,GAAKA,GAAK,EACjC,KACZ,CACUmQ,GAAK,EAEf,CAKA,CACA,EAEI,SAA4BmpN,EAAW6gB,GAErC,IADA,IAAIhqO,EAAIioO,EAAel7M,EAAIm7M,EAAar4O,EAAI,EACrCmQ,GAAK+sB,GAAG,CACb,IAAIzvB,EAAI6pO,EAAUnnO,GAClB,OAAQopO,GACR,KAAK,EACH,IAAIe,EAAKrB,EAAc3f,EAAUihB,gBAC7BxjO,EAAS,GAALujO,EACR,GADiBt6O,EAAIs6O,GAAM,EACjB,IAANvjO,EACE/W,EAAI,IACNq5O,EAASF,EAAQn5O,IAAM,GAAKA,GAC5Bu5O,EAAoB,IAEpBv5O,EAAI,GACJu5O,EAAoB,OAEjB,CACL,GAAU,IAANxiO,EACF,KAAM,uBACRuiO,EAAwBF,EAAiBriO,GACzCwiO,EAAoBv5O,EAAI,EAAI,CACxC,CACU,SACF,KAAK,EACL,KAAK,EACCm6O,EAAG1sO,GACL0sO,EAAG1sO,IAAOg6N,KAAa8Q,EAGb,KADVv4O,IAEEu5O,EAAyC,GAArBA,EAAyB,EAAI,GAErD,MACF,KAAK,EACCY,EAAG1sO,GACL0sO,EAAG1sO,IAAOg6N,KAAa8Q,GAEvB4B,EAAG1sO,GAAK6rO,GAAyBf,EACjCgB,EAAoB,GAEtB,MACF,KAAK,EACCY,EAAG1sO,KACL0sO,EAAG1sO,IAAOg6N,KAAa8Q,GAG3BpoO,GACR,CACgC,IAAtBopO,GAEa,KADfF,IAEEE,EAAoB,EAE9B,EA1GI,SAAwBjgB,EAAW6gB,GACjC,IAAI96M,EAAI45M,EAAc3f,EAAU8gB,gBAC5B1iN,EAAa,IAAN2H,EAAU,EAAI+5M,EAAiB/5M,GAC1C86M,EAAG,GAAK7gB,EAAU+gB,MAAQ3iN,EAE1B,IADA,IAAIvnB,EAAI,EACDA,EAAI,IAAI,CACb,IAAImqO,EAAKrB,EAAc3f,EAAUihB,gBAC7BxjO,EAAS,GAALujO,EAASt6O,EAAIs6O,GAAM,EAC3B,GAAU,IAANvjO,EAQJojO,EADQ7C,EADRnnO,GAAKnQ,IAEGo5O,EAAiBriO,GACzB5G,QATA,CACE,GAAInQ,EAAI,GACN,MACFmQ,GAAK,EAEf,CAKA,CACA,EAiHI,IAAaqqO,EACTC,EAQAh6O,EAAGskB,EATH00N,EAAM,EAUV,IAPEgB,EADsB,GAApBP,EACYlgC,EAAW,GAAGggC,cAAgBhgC,EAAW,GAAG0gC,gBAE5ChC,EAAcR,EAAMyC,cAE/BxC,IAAeA,EAAgBsC,GAG7BhB,EAAMgB,GAAa,CAExB,IAAK5zO,EAAI,EAAGA,EAAIqzO,EAAkBrzO,IAChCmzM,EAAWnzM,GAAGwzO,KAAO,EAGvB,GAFAhB,EAAS,EAEe,GAApBa,EAEF,IADA5gB,EAAYtf,EAAW,GAClBr2L,EAAI,EAAGA,EAAIw0N,EAAex0N,IAC7Bo2N,EAAYzgB,EAAW2gB,EAAUR,GACjCA,SAGF,IAAK91N,EAAI,EAAGA,EAAIw0N,EAAex0N,IAAK,CAClC,IAAK9c,EAAI,EAAGA,EAAIqzO,EAAkBrzO,IAIhC,IAFApG,GADA64N,EAAYtf,EAAWnzM,IACTpG,EACdskB,EAAIu0M,EAAUv0M,EACT7X,EAAI,EAAGA,EAAI6X,EAAG7X,IACjB,IAAKiD,EAAI,EAAGA,EAAI1P,EAAG0P,IACjBqpO,EAAUlgB,EAAW2gB,EAAUR,EAAKvsO,EAAGiD,GAI7CspO,GACV,CAMM,GAFAV,EAAY,GACZyB,EAAUx2O,EAAKuN,IAAW,EAAKvN,EAAKuN,EAAS,KAC/B,MACZ,KAAM,uBAGR,KAAIipO,GAAU,OAAUA,GAAU,OAIhC,MAHAjpO,GAAU,CAIlB,CAEI,OAAOA,EAASwuD,CACpB,CAEE,SAAS66K,EAAmB1C,EAAO5e,GACjC,IAsKIzyN,EAAGqG,EAtKH26B,EAAQ,GACRmyM,EAAgB1gB,EAAU0gB,cAC1BU,EAAkBphB,EAAUohB,gBAC5BlC,EAAiBwB,GAAiB,EAClCrzO,EAAI,IAAI6wC,WAAW,IAAKx3C,EAAI,IAAIqW,WAAW,IAO/C,SAASwkO,EAAmBV,EAAIW,EAASC,GACvC,IACIzQ,EAAI0Q,EAAI58M,EAAI68M,EAAIC,EAAIC,EAAIC,EAAIC,EAAIh8M,EAEhCx4B,EAHAy0O,EAAKhiB,EAAUiiB,kBAEf5yO,EAAIoyO,EAIR,IAAKl0O,EAAI,EAAGA,EAAI,GAAIA,IAClB8B,EAAE9B,GAAKszO,EAAGtzO,GAAKy0O,EAAGz0O,GAGpB,IAAKA,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAI2rN,EAAM,EAAI3rN,EAGI,GAAd8B,EAAE,EAAI6pN,IAA2B,GAAd7pN,EAAE,EAAI6pN,IAA2B,GAAd7pN,EAAE,EAAI6pN,IAC9B,GAAd7pN,EAAE,EAAI6pN,IAA2B,GAAd7pN,EAAE,EAAI6pN,IAA2B,GAAd7pN,EAAE,EAAI6pN,IAC9B,GAAd7pN,EAAE,EAAI6pN,IAcV8X,EAAMuN,EAAWlvO,EAAE,EAAI6pN,GAAO,KAAQ,EACtCwoB,EAAMnD,EAAWlvO,EAAE,EAAI6pN,GAAO,KAAQ,EACtCp0L,EAAKz1B,EAAE,EAAI6pN,GACXyoB,EAAKtyO,EAAE,EAAI6pN,GACX0oB,EAAMpD,GAAcnvO,EAAE,EAAI6pN,GAAO7pN,EAAE,EAAI6pN,IAAQ,KAAQ,EACvD6oB,EAAMvD,GAAcnvO,EAAE,EAAI6pN,GAAO7pN,EAAE,EAAI6pN,IAAQ,KAAQ,EACvD2oB,EAAKxyO,EAAE,EAAI6pN,IAAQ,EACnB4oB,EAAKzyO,EAAE,EAAI6pN,IAAQ,EAGnBnzL,EAAKirM,EAAK0Q,EAAI,GAAM,EACpB1Q,EAAMA,EAAK0Q,EAAK,GAAM,EACtBA,EAAK37M,EACLA,EAAKjB,EAAKw5M,EAAUqD,EAAKtD,EAAU,KAAQ,EAC3Cv5M,EAAMA,EAAKu5M,EAAUsD,EAAKrD,EAAU,KAAQ,EAC5CqD,EAAK57M,EACLA,EAAK67M,EAAKE,EAAK,GAAM,EACrBF,EAAMA,EAAKE,EAAK,GAAM,EACtBA,EAAK/7M,EACLA,EAAKg8M,EAAKF,EAAK,GAAM,EACrBA,EAAME,EAAKF,EAAK,GAAM,EACtBE,EAAKh8M,EAGLA,EAAKirM,EAAK2Q,EAAK,GAAM,EACrB3Q,EAAMA,EAAK2Q,EAAK,GAAM,EACtBA,EAAK57M,EACLA,EAAK27M,EAAK58M,EAAK,GAAM,EACrB48M,EAAMA,EAAK58M,EAAK,GAAM,EACtBA,EAAKiB,EACLA,EAAK67M,EAAKxD,EAAU2D,EAAK5D,EAAU,MAAS,GAC5CyD,EAAMA,EAAKzD,EAAU4D,EAAK3D,EAAU,MAAS,GAC7C2D,EAAKh8M,EACLA,EAAK87M,EAAK3D,EAAU4D,EAAK7D,EAAU,MAAS,GAC5C4D,EAAMA,EAAK5D,EAAU6D,EAAK5D,EAAU,MAAS,GAC7C4D,EAAK/7M,EAGL12B,EAAE,EAAI6pN,GAAO8X,EAAK+Q,EAClB1yO,EAAE,EAAI6pN,GAAO8X,EAAK+Q,EAClB1yO,EAAE,EAAI6pN,GAAOwoB,EAAKI,EAClBzyO,EAAE,EAAI6pN,GAAOwoB,EAAKI,EAClBzyO,EAAE,EAAI6pN,GAAOp0L,EAAK+8M,EAClBxyO,EAAE,EAAI6pN,GAAOp0L,EAAK+8M,EAClBxyO,EAAE,EAAI6pN,GAAOyoB,EAAKC,EAClBvyO,EAAE,EAAI6pN,GAAOyoB,EAAKC,IA1DhB77M,EAAKw4M,EAAWlvO,EAAE,EAAI6pN,GAAO,KAAQ,GACrC7pN,EAAE,EAAI6pN,GAAOnzL,EACb12B,EAAE,EAAI6pN,GAAOnzL,EACb12B,EAAE,EAAI6pN,GAAOnzL,EACb12B,EAAE,EAAI6pN,GAAOnzL,EACb12B,EAAE,EAAI6pN,GAAOnzL,EACb12B,EAAE,EAAI6pN,GAAOnzL,EACb12B,EAAE,EAAI6pN,GAAOnzL,EACb12B,EAAE,EAAI6pN,GAAOnzL,EAmDvB,CAGM,IAAKx4B,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAI6yO,EAAM7yO,EAGU,GAAhB8B,EAAE,EAAM+wO,IAA6B,GAAhB/wO,EAAE,GAAM+wO,IAA6B,GAAhB/wO,EAAE,GAAM+wO,IAClC,GAAhB/wO,EAAE,GAAM+wO,IAA6B,GAAhB/wO,EAAE,GAAM+wO,IAA6B,GAAhB/wO,EAAE,GAAM+wO,IAClC,GAAhB/wO,EAAE,GAAM+wO,IAcZpP,EAAMuN,EAAWlvO,EAAE,EAAM+wO,GAAO,MAAS,GACzCsB,EAAMnD,EAAWlvO,EAAE,GAAM+wO,GAAO,MAAS,GACzCt7M,EAAKz1B,EAAE,GAAM+wO,GACbuB,EAAKtyO,EAAE,GAAM+wO,GACbwB,EAAMpD,GAAcnvO,EAAE,EAAM+wO,GAAO/wO,EAAE,GAAM+wO,IAAQ,MAAS,GAC5D2B,EAAMvD,GAAcnvO,EAAE,EAAM+wO,GAAO/wO,EAAE,GAAM+wO,IAAQ,MAAS,GAC5DyB,EAAKxyO,EAAE,GAAM+wO,GACb0B,EAAKzyO,EAAE,GAAM+wO,GAGbr6M,EAAKirM,EAAK0Q,EAAK,GAAM,EACrB1Q,EAAMA,EAAK0Q,EAAK,GAAM,EACtBA,EAAK37M,EACLA,EAAKjB,EAAKw5M,EAAUqD,EAAKtD,EAAU,MAAS,GAC5Cv5M,EAAMA,EAAKu5M,EAAUsD,EAAKrD,EAAU,MAAS,GAC7CqD,EAAK57M,EACLA,EAAK67M,EAAKE,EAAK,GAAM,EACrBF,EAAMA,EAAKE,EAAK,GAAM,EACtBA,EAAK/7M,EACLA,EAAKg8M,EAAKF,EAAK,GAAM,EACrBA,EAAME,EAAKF,EAAK,GAAM,EACtBE,EAAKh8M,EAGLA,EAAKirM,EAAK2Q,EAAK,GAAM,EACrB3Q,EAAMA,EAAK2Q,EAAK,GAAM,EACtBA,EAAK57M,EACLA,EAAK27M,EAAK58M,EAAK,GAAM,EACrB48M,EAAMA,EAAK58M,EAAK,GAAM,EACtBA,EAAKiB,EACLA,EAAK67M,EAAKxD,EAAU2D,EAAK5D,EAAU,MAAS,GAC5CyD,EAAMA,EAAKzD,EAAU4D,EAAK3D,EAAU,MAAS,GAC7C2D,EAAKh8M,EACLA,EAAK87M,EAAK3D,EAAU4D,EAAK7D,EAAU,MAAS,GAC5C4D,EAAMA,EAAK5D,EAAU6D,EAAK5D,EAAU,MAAS,GAC7C4D,EAAK/7M,EAGL12B,EAAE,EAAM+wO,GAAOpP,EAAK+Q,EACpB1yO,EAAE,GAAM+wO,GAAOpP,EAAK+Q,EACpB1yO,EAAE,EAAM+wO,GAAOsB,EAAKI,EACpBzyO,EAAE,GAAM+wO,GAAOsB,EAAKI,EACpBzyO,EAAE,GAAM+wO,GAAOt7M,EAAK+8M,EACpBxyO,EAAE,GAAM+wO,GAAOt7M,EAAK+8M,EACpBxyO,EAAE,GAAM+wO,GAAOuB,EAAKC,EACpBvyO,EAAE,GAAM+wO,GAAOuB,EAAKC,IA1DlB77M,EAAKw4M,EAAWkD,EAAOl0O,EAAE,GAAK,MAAS,GACvC8B,EAAE,EAAM+wO,GAAOr6M,EACf12B,EAAE,EAAM+wO,GAAOr6M,EACf12B,EAAE,GAAM+wO,GAAOr6M,EACf12B,EAAE,GAAM+wO,GAAOr6M,EACf12B,EAAE,GAAM+wO,GAAOr6M,EACf12B,EAAE,GAAM+wO,GAAOr6M,EACf12B,EAAE,GAAM+wO,GAAOr6M,EACf12B,EAAE,GAAM+wO,GAAOr6M,EAmDzB,CAGM,IAAKx4B,EAAI,EAAGA,EAAI,KAAMA,EAAG,CACvB,IAAI20O,EAAS,KAAQ7yO,EAAE9B,GAAK,GAAM,GAClCi0O,EAAQj0O,GAAK20O,EAAS,EAAI,EAAIA,EAAS,IAAO,IAAOA,CAC7D,CACA,CAGI,IAAK,IAAI5B,EAAW,EAAGA,EAAWc,EAAiBd,IAAY,CAC7D,IAAI6B,EAAW7B,GAAY,EAC3B,IAAK/yO,EAAI,EAAGA,EAAI,EAAGA,IACjBghC,EAAM3lC,KAAK,IAAImU,WAAWmiO,IAC5B,IAAK,IAAIqB,EAAW,EAAGA,EAAWG,EAAeH,IAAY,CAC3DgB,EAAmBvhB,EAAUwgB,OAAOF,GAAUC,GAAW75O,EAAG2G,GAE5D,IAAI4K,EAAS,EAAGiqO,EAAS3B,GAAY,EACrC,IAAK3sO,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACtB,IAAI46B,EAAOD,EAAM4zM,EAAWvuO,GAC5B,IAAKrG,EAAI,EAAGA,EAAI,EAAGA,IACjBihC,EAAK0zM,EAAS30O,GAAK7G,EAAEuR,IACjC,CACA,CACA,CACI,OAAOs2B,CACX,CAoaE,OAlaApoC,EAAY2Y,UAAY,CACtBirB,KAAM,SAAc0f,GAClB,IAAIizK,EAAM,IAAIC,eACdD,EAAIgO,KAAK,MAAOjhL,GAAM,GACtBizK,EAAIG,aAAe,cACnBH,EAAI97M,OAAS,WAEX,IAAIlW,EAAO,IAAIqS,WAAW2/M,EAAIiO,UAAYjO,EAAIkO,wBAC9CrkO,KAAK8wB,MAAM3sB,GACPnE,KAAKqa,QACPra,KAAKqa,QACR,EAAEmG,KAAKxgB,MACRm2N,EAAI5mM,KAAK,KACV,EACDuB,MAAO,SAAe3sB,GACpB,IAAIuN,EAAS,EAAYvN,EAAK5G,OAC9B,SAAS+7N,IACP,IAAI32N,EAASwB,EAAKuN,IAAW,EAAKvN,EAAKuN,EAAS,GAEhD,OADAA,GAAU,EACH/O,CACf,CACM,SAASk5O,IACP,IAAIt+O,EAAS+7N,IACTn+L,EAAQh3B,EAAKosB,SAAS7e,EAAQA,EAASnU,EAAS,GAEpD,OADAmU,GAAUypB,EAAM59B,OACT49B,CACf,CACM,SAAS2gN,EAAkBzD,GACzB,IACI5e,EAAWsiB,EADXhD,EAAO,EAAGC,EAAO,EAErB,IAAK+C,KAAe1D,EAAMl+B,WACpBk+B,EAAMl+B,WAAW3hM,eAAeujO,KAE9BhD,GADJtf,EAAY4e,EAAMl+B,WAAW4hC,IACRn7O,IAAGm4O,EAAOtf,EAAU74N,GACrCo4O,EAAOvf,EAAUv0M,IAAG8zN,EAAOvf,EAAUv0M,IAG7C,IAAI2zN,EAAcn7O,KAAKi8B,KAAK0+M,EAAMM,eAAiB,EAAII,GACnD+B,EAAgBp9O,KAAKi8B,KAAK0+M,EAAMO,UAAY,EAAII,GACpD,IAAK+C,KAAe1D,EAAMl+B,WACxB,GAAIk+B,EAAMl+B,WAAW3hM,eAAeujO,GAAc,CAChDtiB,EAAY4e,EAAMl+B,WAAW4hC,GAM7B,IALA,IAAI5B,EAAgBz8O,KAAKi8B,KAAKj8B,KAAKi8B,KAAK0+M,EAAMM,eAAiB,GAAKlf,EAAU74N,EAAIm4O,GAC9E8B,EAAkBn9O,KAAKi8B,KAAKj8B,KAAKi8B,KAAK0+M,EAAMO,UAAa,GAAKnf,EAAUv0M,EAAI8zN,GAC5EgD,EAAsBnD,EAAcpf,EAAU74N,EAC9Cq7O,EAAwBnB,EAAgBrhB,EAAUv0M,EAClD+0N,EAAS,GACJjzO,EAAI,EAAGA,EAAIi1O,EAAuBj1O,IAAK,CAE9C,IADA,IAAI2rN,EAAM,GACDtlN,EAAI,EAAGA,EAAI2uO,EAAqB3uO,IACvCslN,EAAItwN,KAAK,IAAIs1C,WAAW,KAC1BsiM,EAAO53O,KAAKswN,EAC1B,CACY8G,EAAU0gB,cAAgBA,EAC1B1gB,EAAUohB,gBAAkBA,EAC5BphB,EAAUwgB,OAASA,CAC/B,CAEQ5B,EAAMU,KAAOA,EACbV,EAAMW,KAAOA,EACbX,EAAMQ,YAAcA,EACpBR,EAAMyC,cAAgBA,CAC9B,CACM,IAGIzC,EAAOC,EAHP4D,EAAO,KACPC,EAAQ,KAGRC,EAAqB,GAAIC,EAAS,GAClCC,EAAkB,GAAIC,EAAkB,GACxCC,EAAaljB,IACjB,GAAkB,OAAdkjB,EACF,KAAM,gBAIR,IADAA,EAAaljB,IACQ,OAAdkjB,GAAsB,CAC3B,IAAOnvO,EACP,OAAOmvO,GACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACH,IAAIC,EAAUZ,IAEK,QAAfW,GACiB,KAAfC,EAAQ,IAA8B,KAAfA,EAAQ,IAA8B,KAAfA,EAAQ,IACzC,KAAfA,EAAQ,IAA8B,IAAfA,EAAQ,KAC/BP,EAAO,CACL/uM,QAAS,CAAEigC,MAAOqvK,EAAQ,GAAIpvK,MAAOovK,EAAQ,IAC7CC,aAAcD,EAAQ,GACtBE,SAAWF,EAAQ,IAAM,EAAKA,EAAQ,GACtCG,SAAWH,EAAQ,KAAO,EAAKA,EAAQ,IACvCI,WAAYJ,EAAQ,IACpBK,YAAaL,EAAQ,IACrBM,UAAWN,EAAQlsN,SAAS,GAAI,GAAK,EAAIksN,EAAQ,IAAMA,EAAQ,OAKlD,QAAfD,GACiB,KAAfC,EAAQ,IAA8B,MAAfA,EAAQ,IAA8B,MAAfA,EAAQ,IACzC,KAAfA,EAAQ,IAA8B,MAAfA,EAAQ,IAA8B,IAAfA,EAAQ,KACtDN,EAAQ,CACNhvM,QAASsvM,EAAQ,GACjBO,OAASP,EAAQ,IAAM,EAAKA,EAAQ,GACpCQ,OAASR,EAAQ,IAAM,EAAKA,EAAQ,IACpCS,cAAeT,EAAQ,MAI7B,MAEF,KAAK,MAGH,IAFA,IACIU,EAD2B7jB,IACwB5nN,EAAS,EACzDA,EAASyrO,GAAuB,CACrC,IAAIC,EAAwBj5O,EAAKuN,KAC7B6yD,EAAY,IAAI5sB,WAAW,IAC/B,GAAKylM,GAAyB,EAKvB,IAAKA,GAAyB,GAAO,EAM1C,KAAM,0BALN,IAAK/vO,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEvBk3D,EADQkzK,EAAUpqO,IACHisN,GACjC,CAE+C,MAV/B,IAAKjsN,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEvBk3D,EADQkzK,EAAUpqO,IACHlJ,EAAKuN,IACtC,CAQc0qO,EAA2C,GAAxBgB,GAA8B74K,CAC/D,CACY,MAEF,KAAK,MACL,KAAK,MACH+0J,KACA+e,EAAQ,CAAE,GACJS,YAA8B,QAAf0D,EACrBnE,EAAM9U,UAAYp/N,EAAKuN,KACvB2mO,EAAMO,UAAYtf,IAClB+e,EAAMM,eAAiBrf,IACvB+e,EAAMl+B,WAAa,CAAE,EACrBk+B,EAAMgF,gBAAkB,GACxB,IAAsCtB,EAAlC3rB,EAAkBjsN,EAAKuN,KAE3B,IAAK1K,EAAI,EAAGA,EAAIopN,EAAiBppN,IAAK,CACpC+0O,EAAc53O,EAAKuN,GACnB,IAAI9Q,EAAIuD,EAAKuN,EAAS,IAAM,EACxBwT,EAAuB,GAAnB/gB,EAAKuN,EAAS,GAClB4rO,EAAMn5O,EAAKuN,EAAS,GACxB2mO,EAAMgF,gBAAgBh7O,KAAK05O,GAC3B1D,EAAMl+B,WAAW4hC,GAAe,CAC9Bn7O,EAAGA,EACHskB,EAAGA,EACHw2N,kBAAmBU,EAAmBkB,IAExC5rO,GAAU,CACxB,CACYoqO,EAAkBzD,GAClBgE,EAAOh6O,KAAKg2O,GACZ,MAEF,KAAK,MACH,IAAIkF,EAAgBjkB,IACpB,IAAKtyN,EAAI,EAAGA,EAAIu2O,GAAgB,CAC9B,IAAIC,EAAmBr5O,EAAKuN,KACxB08M,EAAc,IAAI53M,WAAW,IAC7BinO,EAAgB,EACpB,IAAKpwO,EAAI,EAAGA,EAAI,GAAIA,IAAKqE,IACvB+rO,GAAkBrvB,EAAY/gN,GAAKlJ,EAAKuN,GAC1C,IAAIgsO,EAAgB,IAAIlnO,WAAWinO,GACnC,IAAKpwO,EAAI,EAAGA,EAAIowO,EAAepwO,IAAKqE,IAClCgsO,EAAcrwO,GAAKlJ,EAAKuN,GAC1B1K,GAAK,GAAKy2O,GAERD,GAAoB,EACFlB,EAAlBC,GAAsD,GAAnBiB,GACnCtF,EAAkB9pB,EAAasvB,EAC/C,CACY,MAEF,KAAK,MACHpkB,IACAgf,EAAgBhf,IAChB,MAEF,KAAK,MACcA,IAAjB,IACIqkB,EAAiBx5O,EAAKuN,KACtByoM,EAAa,GACjB,IAAKnzM,EAAI,EAAGA,EAAI22O,EAAgB32O,IAAK,CACnCyyN,EAAY4e,EAAMl+B,WAAWh2M,EAAKuN,MAClC,IAAIksO,EAAYz5O,EAAKuN,KACrB+nN,EAAU8gB,eAAiBgC,EAAgBqB,GAAa,GACxDnkB,EAAUihB,eAAiB4B,EAA4B,GAAZsB,GAC3CzjC,EAAW93M,KAAKo3N,EAC9B,CACY,IAAI8e,EAAgBp0O,EAAKuN,KACrB8mO,EAAcr0O,EAAKuN,KACnBmsO,EAA0B15O,EAAKuN,KAC/B8+B,EAAY4nM,EAAWj0O,EAAMuN,EAC/B2mO,EAAOl+B,EAAYm+B,EACnBC,EAAeC,EACfqF,GAA2B,EAA6B,GAA1BA,GAChCnsO,GAAU8+B,EACV,MACF,QACE,GAAwB,KAApBrsC,EAAKuN,EAAS,IACdvN,EAAKuN,EAAS,IAAM,KAAQvN,EAAKuN,EAAS,IAAM,IAAM,CAGxDA,GAAU,EACV,KACd,CACY,KAAM,uBAAyB8qO,EAAWlvO,SAAS,IAEvDkvO,EAAaljB,GACrB,CACM,GAAqB,GAAjB+iB,EAAO9+O,OACT,KAAM,oCAERyC,KAAK+K,MAAQstO,EAAMM,eACnB34O,KAAKO,OAAS83O,EAAMO,UACpB54O,KAAKk8O,KAAOA,EACZl8O,KAAKm8O,MAAQA,EACbn8O,KAAKm6M,WAAa,GAClB,IAAK,IAAInzM,EAAI,EAAGA,EAAIqxO,EAAMgF,gBAAgB9/O,OAAQyJ,IAAK,CACrD,IAAIyyN,EAAY4e,EAAMl+B,WAAWk+B,EAAMgF,gBAAgBr2O,IACvDhH,KAAKm6M,WAAW93M,KAAK,CACnB2lC,MAAO+yM,EAAmB1C,EAAO5e,GACjC1lJ,OAAQ0lJ,EAAU74N,EAAIy3O,EAAMU,KAC5B/kK,OAAQylJ,EAAUv0M,EAAImzN,EAAMW,MAEtC,CACK,EACDp2M,QAAS,SAAiB73B,EAAOxK,GAC/B,SAASu9O,EAAY1qO,GACnB,OAAOA,EAAI,EAAI,EAAIA,EAAI,IAAM,IAAMA,CAC3C,CACM,IAEI2qO,EAAYC,EAAYC,EAAYC,EACpCC,EAAgBC,EAAgBC,EAAgBC,EAChD79O,EAAGC,EAEHy0B,EAAGopN,EAAIC,EAAIlgM,EAAGo7B,EAAG/1E,EAAG86O,EAAI33O,EAAGkuB,EAAG6nB,EAC9BozK,EAPAl8I,EAAS/zE,KAAK+K,MAAQA,EAAOipE,EAASh0E,KAAKO,OAASA,EAKpDmR,EAAS,EAGTkjC,EAAa7pC,EAAQxK,EAASP,KAAKm6M,WAAW58M,OAC9C4G,EAAO,IAAIqS,WAAWo+B,GAC1B,OAAQ50C,KAAKm6M,WAAW58M,QACtB,KAAK,EAEH,IADAwgP,EAAa/9O,KAAKm6M,WAAW,GACxBz5M,EAAI,EAAGA,EAAIH,EAAQG,IAEtB,IADAy9O,EAAiBJ,EAAW/1M,MAAM,EAAKtnC,EAAIq9O,EAAW/pK,OAASA,GAC1DvzE,EAAI,EAAGA,EAAIsK,EAAOtK,IACrB00B,EAAIgpN,EAAe,EAAK19O,EAAIs9O,EAAWhqK,OAASA,GAEhD5vE,EAAKuN,KAAYyjB,EAGrB,MACF,KAAK,EAYH,IAVA86L,GAAiB,EAEbjwN,KAAKm8O,OAASn8O,KAAKm8O,MAAMe,cAC3BjtB,GAAiB,OACqB,IAAxBjwN,KAAKiwN,iBACnBA,IAAmBjwN,KAAKiwN,gBAE1B8tB,EAAa/9O,KAAKm6M,WAAW,GAC7B6jC,EAAah+O,KAAKm6M,WAAW,GAC7B8jC,EAAaj+O,KAAKm6M,WAAW,GACxBz5M,EAAI,EAAGA,EAAIH,EAAQG,IAItB,IAHAy9O,EAAiBJ,EAAW/1M,MAAM,EAAKtnC,EAAIq9O,EAAW/pK,OAASA,GAC/DoqK,EAAiBJ,EAAWh2M,MAAM,EAAKtnC,EAAIs9O,EAAWhqK,OAASA,GAC/DqqK,EAAiBJ,EAAWj2M,MAAM,EAAKtnC,EAAIu9O,EAAWjqK,OAASA,GAC1DvzE,EAAI,EAAGA,EAAIsK,EAAOtK,IAChBwvN,GAKH96L,EAAIgpN,EAAe,EAAK19O,EAAIs9O,EAAWhqK,OAASA,GAChDwqK,EAAKH,EAAe,EAAK39O,EAAIu9O,EAAWjqK,OAASA,GAGjDjtE,EAAIg3O,EAAY3oN,EAAI,QAFpBqpN,EAAKH,EAAe,EAAK59O,EAAIw9O,EAAWlqK,OAASA,IAEf,MAClC/+C,EAAI8oN,EAAY3oN,EAAI,UAAaopN,EAAK,KAAO,WAAcC,EAAK,MAChE3hM,EAAIihM,EAAY3oN,EAAI,OAASopN,EAAK,QAVlCz3O,EAAIq3O,EAAe,EAAK19O,EAAIs9O,EAAWhqK,OAASA,GAChD/+C,EAAIopN,EAAe,EAAK39O,EAAIu9O,EAAWjqK,OAASA,GAChDl3B,EAAIwhM,EAAe,EAAK59O,EAAIw9O,EAAWlqK,OAASA,IAWlD5vE,EAAKuN,KAAY5K,EACjB3C,EAAKuN,KAAYsjB,EACjB7wB,EAAKuN,KAAYmrC,EAGrB,MACF,KAAK,EACH,IAAK78C,KAAKm8O,MACR,KAAM,wCAaR,IAXAlsB,GAAiB,EAEbjwN,KAAKm8O,OAASn8O,KAAKm8O,MAAMe,cAC3BjtB,GAAiB,OACqB,IAAxBjwN,KAAKiwN,iBACnBA,IAAmBjwN,KAAKiwN,gBAE1B8tB,EAAa/9O,KAAKm6M,WAAW,GAC7B6jC,EAAah+O,KAAKm6M,WAAW,GAC7B8jC,EAAaj+O,KAAKm6M,WAAW,GAC7B+jC,EAAal+O,KAAKm6M,WAAW,GACxBz5M,EAAI,EAAGA,EAAIH,EAAQG,IAKtB,IAJAy9O,EAAiBJ,EAAW/1M,MAAM,EAAKtnC,EAAIq9O,EAAW/pK,OAASA,GAC/DoqK,EAAiBJ,EAAWh2M,MAAM,EAAKtnC,EAAIs9O,EAAWhqK,OAASA,GAC/DqqK,EAAiBJ,EAAWj2M,MAAM,EAAKtnC,EAAIu9O,EAAWjqK,OAASA,GAC/DsqK,EAAiBJ,EAAWl2M,MAAM,EAAKtnC,EAAIw9O,EAAWlqK,OAASA,GAC1DvzE,EAAI,EAAGA,EAAIsK,EAAOtK,IAChBwvN,GAMH96L,EAAIgpN,EAAe,EAAK19O,EAAIs9O,EAAWhqK,OAASA,GAChDwqK,EAAKH,EAAe,EAAK39O,EAAIu9O,EAAWjqK,OAASA,GACjDyqK,EAAKH,EAAe,EAAK59O,EAAIw9O,EAAWlqK,OAASA,GACjDz1B,EAAIggM,EAAe,EAAK79O,EAAIy9O,EAAWnqK,OAASA,GAEhD2F,EAAI,IAAMokK,EAAY3oN,EAAI,OAASqpN,EAAK,MACxC76O,EAAI,IAAMm6O,EAAY3oN,EAAI,UAAaopN,EAAK,KAAO,WAAcC,EAAK,MACtEC,EAAK,IAAMX,EAAY3oN,EAAI,OAASopN,EAAK,QAZzC7kK,EAAIykK,EAAe,EAAK19O,EAAIs9O,EAAWhqK,OAASA,GAChDpwE,EAAIy6O,EAAe,EAAK39O,EAAIu9O,EAAWjqK,OAASA,GAChD0qK,EAAKJ,EAAe,EAAK59O,EAAIw9O,EAAWlqK,OAASA,GACjDz1B,EAAIggM,EAAe,EAAK79O,EAAIy9O,EAAWnqK,OAASA,IAWlD5vE,EAAKuN,KAAYgoE,EACjBv1E,EAAKuN,KAAY/N,EACjBQ,EAAKuN,KAAY+sO,EACjBt6O,EAAKuN,KAAY4sC,EAGrB,MACF,QACE,KAAM,yBAEV,OAAOn6C,CACR,EACDu6O,gBAAiB,SAAyB5kC,GACxC,IAGkBr5M,EAAGC,EACjBy0B,EAAGmpB,EAAGo7B,EAAG/1E,EAAGmD,EAAGkuB,EAAG6nB,EAJlB9xC,EAAQ+uM,EAAU/uM,MAAOxK,EAASu5M,EAAUv5M,OAC5Co+O,EAAiB7kC,EAAU31M,KAC3BA,EAAOnE,KAAK4iC,QAAQ73B,EAAOxK,GAC3ByG,EAAI,EAAGqG,EAAI,EAEf,OAAQrN,KAAKm6M,WAAW58M,QACtB,KAAK,EACH,IAAKmD,EAAI,EAAGA,EAAIH,EAAQG,IACtB,IAAKD,EAAI,EAAGA,EAAIsK,EAAOtK,IACrB00B,EAAIhxB,EAAK6C,KAET23O,EAAetxO,KAAO8nB,EACtBwpN,EAAetxO,KAAO8nB,EACtBwpN,EAAetxO,KAAO8nB,EACtBwpN,EAAetxO,KAAO,IAG1B,MACF,KAAK,EACH,IAAK3M,EAAI,EAAGA,EAAIH,EAAQG,IACtB,IAAKD,EAAI,EAAGA,EAAIsK,EAAOtK,IACrBqG,EAAI3C,EAAK6C,KACTguB,EAAI7wB,EAAK6C,KACT61C,EAAI14C,EAAK6C,KAET23O,EAAetxO,KAAOvG,EACtB63O,EAAetxO,KAAO2nB,EACtB2pN,EAAetxO,KAAOwvC,EACtB8hM,EAAetxO,KAAO,IAG1B,MACF,KAAK,EACH,IAAK3M,EAAI,EAAGA,EAAIH,EAAQG,IACtB,IAAKD,EAAI,EAAGA,EAAIsK,EAAOtK,IACrBi5E,EAAIv1E,EAAK6C,KACTrD,EAAIQ,EAAK6C,KACTmuB,EAAIhxB,EAAK6C,KACTs3C,EAAIn6C,EAAK6C,KAETF,EAAI,IAAMg3O,YAAYpkK,GAAK,EAAIp7B,EAAI,KAAOA,GAC1CtpB,EAAI,IAAM8oN,YAAYn6O,GAAK,EAAI26C,EAAI,KAAOA,GAC1CzB,EAAI,IAAMihM,YAAY3oN,GAAK,EAAImpB,EAAI,KAAOA,GAE1CqgM,EAAetxO,KAAOvG,EACtB63O,EAAetxO,KAAO2nB,EACtB2pN,EAAetxO,KAAOwvC,EACtB8hM,EAAetxO,KAAO,IAG1B,MACF,QACE,KAAM,yBAEhB,GAGSzN,CACR,CA/4Be,IAo6BZ42C,GAAgB,WAClB,SAASA,EAAcj5C,EAAQqhP,EAAWzoM,GACxCn2C,KAAK6jB,MAAQ,IAAIrN,WAAWjZ,GAC5ByC,KAAKmP,MAAQ,EACbnP,KAAK4zB,IAAM,EACX5zB,KAAKoP,IAAM7R,EACXyC,KAAK4+O,UAAYA,EACjB5+O,KAAK6+O,aAAe,GACpB7+O,KAAK8+O,gBAAkB,EACvB9+O,KAAK++O,UAAYrhP,KAAKi8B,KAAKp8B,EAASqhP,GACpC5+O,KAAKm2C,QAAUA,EACfn2C,KAAKg/O,kBAAoB,CAC7B,CAoLE,OAhLAxoM,EAAcj+B,UAAY,CAExBk+B,iBAAkB,WAEhB,IADA,IAAI26K,EAAS,GACJnsK,EAAQ,EAAGnhC,EAAI9jB,KAAK++O,UAAW95L,EAAQnhC,IAAKmhC,EAC7CA,KAASjlD,KAAK6+O,cAClBztB,EAAO/uN,KAAK4iD,GAGhB,OAAOmsK,CACR,EAEDv6K,eAAgB,WACd,MAAO,CAAC72C,KACT,EAEDi/O,gBAAiB,WACf,OAAOj/O,KAAK8+O,kBAAoB9+O,KAAK++O,SACtC,EAEDG,cAAe,SAASx7N,EAAOuhC,GAC7B,IAAI71C,EAAMsU,EAAQuhC,EAAMqnK,WAExBhrM,GAAOoC,EAAQ1jB,KAAK4+O,WAAc,EAAG,qBAAuBl7N,GAG5D,IAAInmB,EAASyC,KAAK6jB,MAAMtmB,OACxB+jB,GAAOlS,EAAMpP,KAAK4+O,WAAc,GAAKxvO,IAAQ7R,EAC3C,mBAAqB6R,GAEvBpP,KAAK6jB,MAAMsQ,IAAI,IAAI3d,WAAWyuC,GAAQvhC,GACtC,IAAIk7N,EAAY5+O,KAAK4+O,UACjBO,EAAazhP,KAAK8/B,MAAM9Z,EAAQk7N,GAChCQ,EAAW1hP,KAAK8/B,OAAOpuB,EAAM,GAAKwvO,GAAa,EAEnD,IAAS35L,EAAQk6L,EAAYl6L,EAAQm6L,IAAYn6L,EACzCA,KAASjlD,KAAK6+O,eAClB7+O,KAAK6+O,aAAa55L,IAAS,IACzBjlD,KAAK8+O,gBAGZ,EAEDO,qBAAsB,SAAUl7O,GAC9BnE,KAAK6jB,MAAMsQ,IAAIhwB,GACfnE,KAAKg/O,kBAAoB76O,EAAK5G,OAG9B,IAFA,IAAI6hP,EAAWp/O,KAAKoP,MAAQjL,EAAK5G,OAClByC,KAAK++O,UAAYrhP,KAAK8/B,MAAMr5B,EAAK5G,OAASyC,KAAK4+O,WACrD53O,EAAI,EAAGA,EAAIo4O,EAAUp4O,IAC5BhH,KAAK6+O,aAAa73O,IAAK,IACrBhH,KAAK8+O,eAEV,EAEDQ,YAAa,SAAmC57N,EAAOtU,GACrD,KAAIsU,GAAStU,GAITA,GAAOpP,KAAKg/O,mBAOhB,IAHA,IAAIJ,EAAY5+O,KAAK4+O,UACjBO,EAAazhP,KAAK8/B,MAAM9Z,EAAQk7N,GAChCQ,EAAW1hP,KAAK8/B,OAAOpuB,EAAM,GAAKwvO,GAAa,EAC1C35L,EAAQk6L,EAAYl6L,EAAQm6L,IAAYn6L,EAC/C,KAAMA,KAASjlD,KAAK6+O,cAClB,MAAM,IAAIp7N,GAAqBC,EAAOtU,EAG3C,EAEDmwO,eAAgB,SAAsCJ,GACpD,IAAK,IAAIl6L,EAAQk6L,EAAYr7N,EAAI9jB,KAAK++O,UAAW95L,EAAQnhC,IAAKmhC,EAC5D,KAAMA,KAASjlD,KAAK6+O,cAClB,OAAO55L,EAIX,IAASA,EAAQ,EAAGA,EAAQk6L,IAAcl6L,EACxC,KAAMA,KAASjlD,KAAK6+O,cAClB,OAAO55L,EAGX,OAAO,IACR,EAEDu6L,SAAU,SAAgCv6L,GACxC,OAAOA,KAASjlD,KAAK6+O,YACtB,EAED,UAAIthP,GACF,OAAOyC,KAAKoP,IAAMpP,KAAKmP,KACxB,EAEDqyB,QAAS,WACP,IAAI5N,EAAM5zB,KAAK4zB,IACf,OAAIA,GAAO5zB,KAAKoP,KACN,GAEVpP,KAAKs/O,YAAY1rN,EAAKA,EAAM,GACrB5zB,KAAK6jB,MAAM7jB,KAAK4zB,OACxB,EAIDb,SAAU,SAAgCx1B,GACxC,IAAIsmB,EAAQ7jB,KAAK6jB,MACb+P,EAAM5zB,KAAK4zB,IACXo4L,EAAShsN,KAAKoP,IAElB,IAAK7R,EAEH,OADAyC,KAAKs/O,YAAY1rN,EAAKo4L,GACfnoM,EAAM0M,SAASqD,EAAKo4L,GAG7B,IAAI58M,EAAMwkB,EAAMr2B,EAMhB,OALI6R,EAAM48M,IACR58M,EAAM48M,GACRhsN,KAAKs/O,YAAY1rN,EAAKxkB,GAEtBpP,KAAK4zB,IAAMxkB,EACJyU,EAAM0M,SAASqD,EAAKxkB,EAC5B,EAED25D,UAAW,SAAiCxrE,GAC1C,IAAIsmB,EAAQ7jB,KAAK+yB,SAASx1B,GAE1B,OADAyC,KAAK4zB,KAAO/P,EAAMtmB,OACXsmB,CACR,EAED47N,aAAc,SAAgC/7N,EAAOtU,GAEnD,OADApP,KAAKs/O,YAAY57N,EAAOtU,GACjBpP,KAAK6jB,MAAM0M,SAAS7M,EAAOtU,EACnC,EAED29B,KAAM,SAA4BjpB,GAC3BA,IACHA,EAAI,GACN9jB,KAAK4zB,KAAO9P,CACb,EAED+oB,MAAO,WACL7sC,KAAK4zB,IAAM5zB,KAAKmP,KACjB,EAED+9B,UAAW,WACTltC,KAAKmP,MAAQnP,KAAK4zB,GACnB,EAEDgiB,cAAe,SAAqCzmC,EAAO5R,EAAQqpB,GACjE,SAAS84N,IAAyB,CAClCA,EAAuBnnO,UAAY7W,OAAOulB,OAAOjnB,MACjD0/O,EAAuBnnO,UAAUk+B,iBAAmB,WAKlD,IAJA,IAAImoM,EAAY5+O,KAAK4+O,UACjBO,EAAazhP,KAAK8/B,MAAMx9B,KAAKmP,MAAQyvO,GACrCQ,EAAW1hP,KAAK8/B,OAAOx9B,KAAKoP,IAAM,GAAKwvO,GAAa,EACpDe,EAAgB,GACX16L,EAAQk6L,EAAYl6L,EAAQm6L,IAAYn6L,EACzCA,KAASjlD,KAAK6+O,cAClBc,EAAct9O,KAAK4iD,GAGvB,OAAO06L,CACR,EACD,IAAIC,EAAY,IAAIF,EAIpB,OAHAE,EAAUhsN,IAAMgsN,EAAUzwO,MAAQA,EAClCywO,EAAUxwO,IAAMD,EAAQ5R,GAAUyC,KAAKoP,IACvCwwO,EAAUh5N,KAAOA,EACVg5N,CACR,EAED/1N,UAAU,GAGL2sB,CACR,CAjMmB,GAmMhBqpM,GAAuB,WAEzB,SAASA,EAAqBtiP,EAAQqhP,EAAWl9N,EAAKgH,GAEpD1oB,KAAKqhC,OAAS,IAAImV,GAAcj5C,EAAQqhP,EAAW5+O,MACnDA,KAAKzC,OAASA,EACdyC,KAAK4+O,UAAYA,EACjB5+O,KAAK0hB,IAAMA,EACX1hB,KAAK8/O,iBAAmBp3N,EAAKo3N,iBAC7B,IAAIC,EAAa//O,KAAK+/O,WAAar3N,EAAKq3N,WAExC,GAAIr3N,EAAKquM,qBACPgpB,EAAW3wN,GAAG,cAAepvB,KAAKk/O,cAAc1+N,KAAKxgB,OACrD+/O,EAAW3wN,GAAG,iBAAkBpvB,KAAK63N,WAAWr3M,KAAKxgB,OACrDA,KAAKggP,YAAc,SAA0Ct8N,EAAOtU,GAClE2wO,EAAWxwN,KAAK,mBAAoB,CAAE7L,MAAOA,EAAOtU,IAAKA,GAC1D,MACI,CASLpP,KAAKi3N,eAAiB,IAAIC,eAAel3N,KAAK0hB,IAAK,CACjDu+N,OARW,WAIX,OAAO,IAAI7pB,cAEZ,EAGCe,YAAazuM,EAAKyuM,cAEpBn3N,KAAKggP,YAAc,SAA0Ct8N,EAAOtU,GAClEpP,KAAKi3N,eAAe7gL,aAAa1yB,EAAOtU,EAAK,CAC3CuoN,OAAQ33N,KAAKk/O,cAAc1+N,KAAKxgB,MAChC63N,WAAY73N,KAAK63N,WAAWr3M,KAAKxgB,OAEpC,CACP,CAEIA,KAAKkgP,cAAgB,EAErBlgP,KAAKmgP,sBAAwB,CAAE,EAC/BngP,KAAKogP,gBAAkB,CAAE,EACzBpgP,KAAKqgP,mBAAqB,CAAE,EAE5BrgP,KAAKsgP,aAAe,IAAIn2N,GACpBzB,EAAK63N,aACPvgP,KAAKwgP,eAAe93N,EAAK63N,YAE/B,CAgPE,OA9OAV,EAAqBtnO,UAAY,CAE/BioO,eAAgB,SAA6Cr8O,GAC3DnE,KAAKqhC,OAAOg+M,qBAAqBl7O,GAC7BnE,KAAKqhC,OAAO49M,kBACdj/O,KAAKsgP,aAAa7zN,QAAQzsB,KAAKqhC,QACtBrhC,KAAK+/O,YACd//O,KAAK+/O,WAAWxwN,KAAK,cAAe,CAClCjI,OAAQnjB,EAAK5G,OACb6hC,MAAOp/B,KAAKzC,QAGjB,EAED66N,eAAgB,WACd,OAAOp4N,KAAKsgP,YACb,EAIDG,iBAAkB,WAChB,IAAId,EAAgB3/O,KAAKqhC,OAAOoV,mBAEhC,OADAz2C,KAAK0gP,cAAcf,GACZ3/O,KAAKsgP,YACb,EAEDI,cAAe,SAA4CtvB,EACAlnN,GACzD,IAEIy2O,EAFAC,EAAY5gP,KAAKkgP,gBAGrBlgP,KAAKmgP,sBAAsBS,GAAaD,EAAe,CAAE,EACzD,IAAK,IAAI35O,EAAI,EAAGub,EAAK6uM,EAAO7zN,OAAQyJ,EAAIub,EAAIvb,IACrChH,KAAKqhC,OAAOm+M,SAASpuB,EAAOpqN,MAC/B25O,EAAavvB,EAAOpqN,KAAM,GAI9B,GAAIiiB,GAAW03N,GACTz2O,GACFA,QAFJ,CAOAlK,KAAKqgP,mBAAmBO,GAAa12O,EAErC,IAAI22O,EAAkB,GACtB,IAAK,IAAI57L,KAAS07L,GAChB17L,GAAgB,KACDjlD,KAAKogP,kBAClBpgP,KAAKogP,gBAAgBn7L,GAAS,GAC9B47L,EAAgBx+O,KAAK4iD,IAEvBjlD,KAAKogP,gBAAgBn7L,GAAO5iD,KAAKu+O,GAGnC,GAAKC,EAAgBtjP,OAIrB,KAAIujP,EAAyB9gP,KAAK+gP,YAAYF,GAE9C,IAAS75O,EAAI,EAAGA,EAAI85O,EAAuBvjP,SAAUyJ,EAAG,CACtD,IAAIg6O,EAAeF,EAAuB95O,GACtC0c,EAAQs9N,EAAa7B,WAAan/O,KAAK4+O,UACvCxvO,EAAM1R,KAAK+U,IAAIuuO,EAAa5B,SAAWp/O,KAAK4+O,UAAW5+O,KAAKzC,QAChEyC,KAAKggP,YAAYt8N,EAAOtU,EAChC,CAPoE,CAlBpE,CA0BK,EAED6xO,UAAW,WACT,OAAOjhP,KAAKqhC,MACb,EAGD+U,aAAc,SACI1yB,EAAOtU,EAAKlF,GAE5BkF,EAAM1R,KAAK+U,IAAIrD,EAAKpP,KAAKzC,QAMzB,IAJA,IAAI4hP,EAAan/O,KAAKkhP,cAAcx9N,GAChC07N,EAAWp/O,KAAKmhP,YAAY/xO,GAE5BgiN,EAAS,GACJnsK,EAAQk6L,EAAYl6L,EAAQm6L,IAAYn6L,EAC/CmsK,EAAO/uN,KAAK4iD,GAGdjlD,KAAK0gP,cAActvB,EAAQlnN,EAC5B,EAED8sC,cAAe,SAA4CugB,EACArtD,GACzDqtD,EAASA,GAAU,GAGnB,IAFA,IAAIspL,EAAkB,GAEb75O,EAAI,EAAGA,EAAIuwD,EAAOh6D,OAAQyJ,IAGjC,IAFA,IAAIm4O,EAAan/O,KAAKkhP,cAAc3pL,EAAOvwD,GAAG0c,OAC1C07N,EAAWp/O,KAAKmhP,YAAY5pL,EAAOvwD,GAAGoI,KACjC61C,EAAQk6L,EAAYl6L,EAAQm6L,IAAYn6L,EAC3C47L,EAAgBniP,QAAQumD,GAAS,GACnC47L,EAAgBx+O,KAAK4iD,GAK3B47L,EAAgBppL,MAAK,SAASrkD,EAAGiS,GAAK,OAAOjS,EAAIiS,KACjDrlB,KAAK0gP,cAAcG,EAAiB32O,EACrC,EAID62O,YAAa,SAA0C3vB,GAIrD,IAHA,IAAIgwB,EAAgB,GAChBjC,GAAc,EACdkC,GAAa,EACRr6O,EAAI,EAAGA,EAAIoqN,EAAO7zN,SAAUyJ,EAAG,CACtC,IAAIi+C,EAAQmsK,EAAOpqN,GAEfm4O,EAAa,IACfA,EAAal6L,GAGXo8L,GAAa,GAAKA,EAAY,IAAMp8L,IACtCm8L,EAAc/+O,KAAK,CACjB88O,WAAYA,EAAYC,SAAUiC,EAAY,IAChDlC,EAAal6L,GAEXj+C,EAAI,IAAMoqN,EAAO7zN,QACnB6jP,EAAc/+O,KAAK,CACjB88O,WAAYA,EAAYC,SAAUn6L,EAAQ,IAG9Co8L,EAAYp8L,CACpB,CACM,OAAOm8L,CACR,EAEDvpB,WAAY,SAAyCnvM,GACnD,IAAI44N,EAActhP,KAAKqhC,OAAOy9M,gBAAkB9+O,KAAK4+O,UACnCl2N,EAAKpB,OACvBtnB,KAAK+/O,WAAWxwN,KAAK,cAAe,CAClCjI,OAAQg6N,EACRliN,MAAOp/B,KAAKzC,QAEf,EAED2hP,cAAe,SAA4Cx2N,GACzD,IAAIu8B,EAAQv8B,EAAKu8B,MACbvhC,EAAQgF,EAAKhF,MACbtU,EAAMsU,EAAQuhC,EAAMqnK,WAEpB6yB,EAAan/O,KAAKkhP,cAAcx9N,GAChC07N,EAAWp/O,KAAKmhP,YAAY/xO,GAEhCpP,KAAKqhC,OAAO69M,cAAcx7N,EAAOuhC,GAC7BjlD,KAAKqhC,OAAO49M,mBACdj/O,KAAKsgP,aAAa7zN,QAAQzsB,KAAKqhC,QAGjC,IAAIkgN,EAAiB,GACrB,IAASt8L,EAAQk6L,EAAYl6L,EAAQm6L,IAAYn6L,EAAO,CAGtD,IAAIu8L,EAAaxhP,KAAKogP,gBAAgBn7L,IAAU,UACzCjlD,KAAKogP,gBAAgBn7L,GAE5B,IAAK,IAAIj+C,EAAI,EAAGA,EAAIw6O,EAAWjkP,SAAUyJ,EAAG,CAC1C,IAAI45O,EAAYY,EAAWx6O,GACvB25O,EAAe3gP,KAAKmgP,sBAAsBS,GAC1C37L,KAAS07L,UACJA,EAAa17L,GAGjBh8B,GAAW03N,IAIhBY,EAAel/O,KAAKu+O,EAC9B,CACA,CAIM,IAAK5gP,KAAK8/O,kBAAoB72N,GAAWjpB,KAAKogP,iBAAkB,CAC9D,IAAIb,EACJ,GAAoC,IAAhCv/O,KAAKqhC,OAAOy9M,gBAAuB,CAIrC,IAAIvyL,EAAYvsD,KAAKqhC,OAAO09M,UAAY,EACnC/+O,KAAKqhC,OAAOm+M,SAASjzL,KACxBgzL,EAAiBhzL,EAE7B,MACUgzL,EAAiBv/O,KAAKqhC,OAAOk+M,eAAeH,GAE1Cj2N,GAAMo2N,IACRv/O,KAAK0gP,cAAc,CAACnB,GAE9B,CAEM,IAASv4O,EAAI,EAAGA,EAAIu6O,EAAehkP,SAAUyJ,EAAG,CAC1C45O,EAAYW,EAAev6O,GAA/B,IACIkD,EAAWlK,KAAKqgP,mBAAmBO,UAChC5gP,KAAKqgP,mBAAmBO,GAC3B12O,GACFA,GAEV,CAEMlK,KAAK+/O,WAAWxwN,KAAK,cAAe,CAClCjI,OAAQtnB,KAAKqhC,OAAOy9M,gBAAkB9+O,KAAK4+O,UAC3Cx/M,MAAOp/B,KAAKzC,QAEf,EAED2jP,cAAe,SAA4Cx9N,GAEzD,OADYhmB,KAAK8/B,MAAM9Z,EAAQ1jB,KAAK4+O,UAErC,EAEDuC,YAAa,SAA0C/xO,GACrD,OAAIA,EAAMpP,KAAK4+O,WAAc,EACpBxvO,EAAMpP,KAAK4+O,UAQRlhP,KAAK8/B,OAAOpuB,EAAM,GAAKpP,KAAK4+O,WAAa,CAE3D,GAGSiB,CACR,CAjS0B,GAyTvB4B,GAAiB,WACnB,SAASA,IACP,MAAM,IAAItgO,MAAM,uCACpB,CAmDE,OAjDAsgO,EAAelpO,UAAY,CACzB6/M,eAAgB,WACd,MAAM,IAAI50M,EACX,EAED8xM,YAAa,SAAoC5yM,EAAMgG,GACrD,OAAO1oB,KAAKgqC,OAAOhqC,KAAKy4N,SAAU/1M,EAAMgG,EACzC,EAEDmtM,WAAY,SAAmCnzM,EAAMgG,GACnD,OAAO1oB,KAAKgqC,OAAOhqC,KAAKy4N,SAASznM,KAAMtO,EAAMgG,EAC9C,EAED+sM,cAAe,SAAsC/yM,EAAMgG,GACzD,OAAO1oB,KAAKgqC,OAAOhqC,KAAKy4N,SAASlsL,QAAS7pB,EAAMgG,EACjD,EAED2lB,QAAS,SAAiCpF,GACxC,OAAOjpC,KAAKy4N,SAASpqL,QAAQpF,EAC9B,EAEDqF,QAAS,WACP,OAAOtuC,KAAKy4N,SAASnqL,SACtB,EAEDtE,OAAQ,SAA+BvnB,EAAKC,EAAMgG,GAChD,OAAO,IAAIlF,EACZ,EAED4yB,aAAc,SAA+B1yB,EAAOtU,GAClD,OAAO,IAAIoU,EACZ,EAED20M,oBAAqB,WACnB,OAAO,IAAI30M,EACZ,EAEDk1M,eAAgB,SAAuCxtL,GACrDlrC,KAAKy4N,SAASznM,KAAKka,SAAWlrC,KAAKkrC,SAAWA,EAC1ClrC,KAAKk4N,wBACPl4N,KAAKk4N,uBAAuBzrM,SAE/B,EAEDosM,UAAW,WACT,OAAO,IAAIr1M,EACjB,GAGSi+N,CACR,CAvDoB,GAyDjB3qB,GAAkB,WACpB,SAASA,EAAgB3yN,EAAM+mC,GAC7B,IAAI7J,EAAS,IAAIyF,GAAO3iC,GACxBnE,KAAKy4N,SAAW,IAAIxtL,GAAYjrC,KAAMqhC,EAAQ6J,GAC9ClrC,KAAKsgP,aAAe,IAAIn2N,GACxBnqB,KAAKsgP,aAAa7zN,QAAQ4U,EAC9B,CA6CE,OA3CAy1L,EAAgBv+M,UAAY7W,OAAOulB,OAAOw6N,GAAelpO,WACzDu+M,EAAgBv+M,UAAU3Y,YAAck3N,EAExCA,EAAgBv+M,UAAUyxB,OACtB,SAAgCvnB,EAAKC,EAAMgG,GAC7C,IAAIgC,EAAU,IAAIP,GAClB,IACE,IACIzc,EADA/K,EAAQ8f,EAAIC,GAGdhV,EADoB,mBAAX,EACA/K,EAAMse,MAAMwB,EAAKiG,GAEjB/lB,EAEX+nB,EAAQ+B,QAAQ/e,EACjB,CAAC,MAAO2vB,GACPziB,QAAQuF,IAAIkd,EAAElR,OACdzB,EAAQgC,OAAO2Q,EACrB,CACI,OAAO3S,CACR,EAEDosM,EAAgBv+M,UAAU69B,aACtB,SAAsC1yB,EAAOtU,GAC/C,IAAIsb,EAAU,IAAIP,GAElB,OADAO,EAAQ+B,UACD/B,CACR,EAEDosM,EAAgBv+M,UAAU4/M,oBACtB,WACH,EAEDrB,EAAgBv+M,UAAU6/M,eACtB,WACF,OAAOp4N,KAAKsgP,YACb,EAEDxpB,EAAgBv+M,UAAUsgN,UACtB,WAEH,EAEM/B,CACR,CApDqB,GAsDlBE,GAAoB,WAItB,SAASA,EAAkBtuM,EAAMq3N,GAE/B//O,KAAK+/O,WAAaA,EAElB,IAAI/9M,EAAS,CACX+9M,WAAYA,EACZ5oB,YAAazuM,EAAKyuM,YAClBJ,qBAAsBruM,EAAKquM,qBAC3B+oB,iBAAkBp3N,EAAKo3N,iBACvBS,YAAa73N,EAAK63N,aAEpBvgP,KAAK0hP,cAAgB,IAAI7B,GAAqBn3N,EAAKnrB,OAbpC,MAc+BmrB,EAAKhH,IAAKsgB,GAExDhiC,KAAKy4N,SAAW,IAAIxtL,GAAYjrC,KAAMA,KAAK0hP,cAAcT,YACzBv4N,EAAKwiB,SACzC,CA4DE,OA1DA8rL,EAAkBz+M,UAAY7W,OAAOulB,OAAOw6N,GAAelpO,WAC3Dy+M,EAAkBz+M,UAAU3Y,YAAco3N,EAE1CA,EAAkBz+M,UAAUyxB,OACxB,SAAkCvnB,EAAKC,EAAMgG,GAC/C,IAAIgC,EAAU,IAAIP,GAElB,OADAnqB,KAAK2hP,aAAaj3N,EAASjI,EAAKC,EAAMgG,GAC/BgC,CACR,EAEDssM,EAAkBz+M,UAAUopO,aACxB,SAAwCj3N,EAASjI,EAAKC,EAAMgG,GAC9D,IACE,IAAIhb,EACA/K,EAAQ8f,EAAIC,GAEdhV,EADoB,mBAAX,EACA/K,EAAMse,MAAMwB,EAAKiG,GAEjB/lB,EAEX+nB,EAAQ+B,QAAQ/e,EACjB,CAAC,MAAM2vB,GACN,KAAMA,aAAa5Z,IAGjB,OAFA7I,QAAQuF,IAAIkd,EAAElR,YACdzB,EAAQgC,OAAO2Q,GAIjBr9B,KAAK0hP,cAActrM,aAAa/Y,EAAE3Z,MAAO2Z,EAAEjuB,IAAK,WAC9CpP,KAAK2hP,aAAaj3N,EAASjI,EAAKC,EAAMgG,EAC9C,EAAQlI,KAAKxgB,MACb,CACG,EAEDg3N,EAAkBz+M,UAAU69B,aACxB,SAAwC1yB,EAAOtU,GACjD,IAAIsb,EAAU,IAAIP,GAIlB,OAHAnqB,KAAK0hP,cAActrM,aAAa1yB,EAAOtU,GAAK,WAC1Csb,EAAQ+B,SACd,IACW/B,CACR,EAEDssM,EAAkBz+M,UAAU4/M,oBACxB,WACFn4N,KAAK0hP,cAAcjB,kBACpB,EAEDzpB,EAAkBz+M,UAAU6/M,eACxB,WACF,OAAOp4N,KAAK0hP,cAActpB,gBAC3B,EAEDpB,EAAkBz+M,UAAUsgN,UACxB,WACF74N,KAAK0hP,cAAczqB,eAAe2qB,kBACnC,EAEM5qB,CACR,CAjFuB,GAwGpB6qB,GAAkB,CACpB,eAAgB,CAAC,GAAI,CAAC,EAAG,QACzB,eAAgB,CAAC,GAAI,CAAC,EAAG,QACzB,eAAgB,CAAC,GAAI,CAAC,EAAG,QACzB,eAAgB,CAAC,GAAI,CAAC,EAAG,QACzB,eAAgB,CAAC,GAAI,CAAC,EAAG,QACzB,eAAgB,CAAC,GAAI,CAAC,EAAG,QACzB,eAAgB,CAAC,GAAI,CAAC,EAAG,QACzB,kBAAmB,CAAC,GAAI,CAAC,EAAG,QAC5B,OAAQ,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAC3B,OAAQ,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAC3B,SAAU,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,QACvC,SAAU,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,QACvC,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,OAAQ,GACtC,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,aAC/D,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,OAAQ,GACtC,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,aAC/D,SAAU,CAAC,GAAI,CAAC,KAAM,QACtB,SAAU,CAAC,GAAI,CAAC,KAAM,QACtB,SAAU,CAAC,GAAI,CAAC,KAAM,QACtB,SAAU,CAAC,GAAI,CAAC,KAAM,QACtB,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,aAAc,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACjC,aAAc,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACjC,aAAc,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACjC,aAAc,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACjC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,aAAc,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACjC,aAAc,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACjC,gBAAiB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACxC,gBAAiB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACxC,iBAAkB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAC/C,CAAC,WAAY,aACf,iBAAkB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAC/C,CAAC,WAAY,aACf,cAAe,CAAC,GAAI,CAAC,EAAG,OACxB,cAAe,CAAC,GAAI,CAAC,EAAG,OACxB,cAAe,CAAC,GAAI,CAAC,EAAG,QACxB,cAAe,CAAC,GAAI,CAAC,EAAG,QACxB,cAAe,CAAC,GAAI,CAAC,EAAG,QACxB,cAAe,CAAC,GAAI,CAAC,EAAG,QACxB,iBAAkB,CAAC,GAAI,CAAC,EAAG,QAC3B,WAAY,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAC/B,WAAY,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAC/B,OAAQ,CAAC,GAAI,CAAC,KAAM,QACpB,OAAQ,CAAC,GAAI,CAAC,KAAM,QACpB,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,UAAW,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,OAAQ,GAAI,CAAC,WAAY,aACvD,UAAW,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,OAAQ,GAAI,CAAC,WAAY,aACvD,aAAc,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACjC,aAAc,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACjC,aAAc,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,QAC3C,aAAc,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,QAC3C,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,QAC5C,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,QAC5C,eAAgB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACvC,eAAgB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACvC,gBAAiB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAAI,CAAC,WAAY,aACjE,gBAAiB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAAI,CAAC,WAAY,aACjE,WAAY,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,MAAO,MAAO,QAC7C,WAAY,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,MAAO,MAAO,QAC7C,OAAQ,CAAC,GAAI,CAAC,KAAM,QACpB,YAAa,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACxD,YAAa,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACxD,OAAQ,CAAC,GAAI,CAAC,KAAM,QACpB,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QAC1D,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QAC1D,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACpE,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QAC1D,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QAC1D,eAAgB,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QAC3D,eAAgB,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QAC3D,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACpE,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACpE,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,aAAc,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACzD,aAAc,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACzD,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,iBAAkB,CAAC,GAAI,CAAC,EAAG,OAC3B,iBAAkB,CAAC,GAAI,CAAC,EAAG,OAC3B,iBAAkB,CAAC,GAAI,CAAC,EAAG,OAC3B,iBAAkB,CAAC,GAAI,CAAC,EAAG,OAC3B,iBAAkB,CAAC,GAAI,CAAC,EAAG,QAC3B,iBAAkB,CAAC,GAAI,CAAC,EAAG,QAC3B,iBAAkB,CAAC,GAAI,CAAC,EAAG,QAC3B,oBAAqB,CAAC,GAAI,CAAC,EAAG,QAC9B,iBAAkB,CAAC,GAAI,CAAC,EAAG,OAC3B,QAAS,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,MAAO,MAAO,QAC1C,QAAS,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,MAAO,MAAO,QAC1C,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,aAAc,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACzD,aAAc,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACzD,QAAS,CAAC,GAAI,CAAC,KAAM,QACrBhuL,EAAK,CAAC,GAAI,CAAC,KAAM,QACjBiuL,QAAW,CAAC,CAAC,EAAG,KAAM,IACtBC,SAAY,CAAC,CAAC,EAAG,KAAM,IACvB,aAAc,CAAC,GAAI,GAAI,CAAC,QAAS,SAAU,IAC3C,aAAc,CAAC,GAAI,GAAI,CAAC,QAAS,SAAU,IAC3C,SAAU,CAAC,GAAI,CAAC,KAAM,QACtB,SAAU,CAAC,GAAI,CAAC,KAAM,QACtBC,SAAY,CAAC,CAAC,EAAG,KAAM,IACvB,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,SAAU,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACrD,SAAU,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,QACrDvvL,MAAS,CAAC,CAAC,EAAG,KAAM,IACpB,iBAAkB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACzC,iBAAkB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACzC,kBAAmB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAChD,CAAC,WAAY,aACf,kBAAmB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAChD,CAAC,WAAY,aACf,gBAAiB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACxC,mBAAoB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QAC3C,mBAAoB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QAC3C,gBAAiB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACxC,iBAAkB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAC/C,CAAC,WAAY,aACf,iBAAkB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAC/C,CAAC,WAAY,aACf,sBAAuB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QAC9C,mBAAoB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QAC3CrwD,EAAK,CAAC,GAAI,CAAC,KAAM,QACjB,YAAa,CAAC,CAAC,EAAG,KAAM,IACxB,iBAAkB,CAAC,GAAI,CAAC,EAAG,OAC3B,iBAAkB,CAAC,GAAI,CAAC,EAAG,QAC3B,iBAAkB,CAAC,GAAI,CAAC,EAAG,QAC3B,oBAAqB,CAAC,GAAI,CAAC,EAAG,QAC9B,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,YAAa,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAChC,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,QAC9D,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,QAC9D,QAAS,CAAC,GAAI,CAAC,KAAM,QACrB,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,iBAAkB,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACrC,iBAAkB,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QACrC,cAAe,CAAC,CAAC,EAAG,KAAM,CAAC,MAAO,QAClC,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,QAC5C,cAAe,CAAC,CAAC,EAAG,IAAK,IAAK,KAAM,CAAC,MAAO,QAC5C,eAAgB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACvC,eAAgB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,QACvC,gBAAiB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAAI,CAAC,WAAY,aACjE,gBAAiB,CAAC,GAAI,CAAC,EAAG,MAAO,MAAO,OAAQ,GAAI,CAAC,WAAY,cAI/D6/O,GAAO,WACT,SAASA,IAIPjiP,KAAKkiP,gBAAkB,CAAC,GAAI,GAAI,GAAI,IACpCliP,KAAKujC,IAAM,GACXvjC,KAAK6lD,UAAW,CACpB,CAwDE,OAvDAo8L,EAAK1pO,UAAY,CACf4pO,kBAAmB,SAASr+N,EAAGs+N,EAAKC,GAClCriP,KAAKkiP,gBAAgBp+N,EAAI,GAAGzhB,KAAK+/O,EAAKC,EACvC,EAEDC,SAAU,SAASF,EAAKC,EAAME,GAE5B,IADA,IAAIC,EAAWD,EAAOhlP,OAAS,EACxB6kP,GAAOC,GACZriP,KAAKujC,IAAI6+M,GAAOG,EAEhBA,EAASA,EAAOrzO,UAAU,EAAGszO,GACpBvzO,OAAO8U,aAAaw+N,EAAOj6O,WAAWk6O,GAAY,KACzDJ,CAEL,EAEDK,gBAAiB,SAASL,EAAKC,EAAMlnN,GAEnC,IADA,IAAIn0B,EAAI,EACDo7O,GAAOC,GACZriP,KAAKujC,IAAI6+M,GAAOjnN,EAAMn0B,OACpBo7O,CAEL,EAEDM,OAAQ,SAASpoO,EAAKqoO,GACpB3iP,KAAKujC,IAAIjpB,GAAOqoO,CACjB,EAEDzwN,OAAQ,SAAS/O,GACf,OAAOnjB,KAAKujC,IAAIpgB,EACjB,EAEDkjD,aAAc,SAASh+D,EAAKqJ,GAM1B,IALA,IAAIuF,EAAI,EACJirO,EAAkBliP,KAAKkiP,gBACvBU,EAAqB5iP,KAAKkiP,gBAAgB3kP,OAGrCumB,EAAI,EAAGA,EAAI8+N,EAAoB9+N,IAAK,CAC3C7M,GAAMA,GAAK,EAAK5O,EAAIC,WAAWoJ,EAASoS,MAAQ,EAGhD,IADA,IAAI++N,EAAiBX,EAAgBp+N,GAC5BxT,EAAI,EAAG47C,EAAK22L,EAAetlP,OAAQ+S,EAAI47C,GAAK,CACnD,IAAIk2L,EAAMS,EAAevyO,KACrB+xO,EAAOQ,EAAevyO,KAC1B,GAAI2G,GAAKmrO,GAAOnrO,GAAKorO,EACnB,MAAO,CAACprO,EAAG6M,EAAI,EAE3B,CACA,CAEM,MAAO,CAAC,EAAG,EACjB,GAGSm+N,CACR,CAjEU,GAmEPa,GAAe,WACjB,SAASA,EAAaj9L,EAAU/hC,GAC9Bm+N,GAAKxpO,KAAKzY,MACVA,KAAK6lD,SAAWA,EAChB7lD,KAAKmiP,kBAAkBr+N,EAAG,EAAG,OAC7B9jB,KAAKsiP,SAAS,EAAG,MAAQ,KAC7B,CAGE,OAFAp+N,GAAK4C,QAAQg8N,EAAcb,GAAM,CAAA,GAE1Ba,CACR,CAVkB,GAYf76L,GAAc,WAChB,SAAS86L,EAAS16O,GAEhB,IADA,IAAI+K,EAAI,EACCpM,EAAI,EAAGA,EAAIqB,EAAI9K,OAAQyJ,IAC9BoM,EAAKA,GAAK,EAAK/K,EAAIC,WAAWtB,GAEhC,OAAOoM,IAAM,CACjB,CAEE,SAAS4vO,EAAavgO,GACf4G,GAAS5G,IACZ3B,GAAM,mCAEZ,CAEE,SAASmiO,EAAUxgO,GACZ0G,GAAM1G,IACT3B,GAAM,gCAEZ,CAEE,SAASoiO,EAAYC,EAAM3kN,GACzB,OAAa,CACX,IAAI/b,EAAM+b,EAAMkV,SAChB,GAAI2Q,GAAM5hC,GACR,MAEF,GAAI8G,GAAM9G,EAAK,aACb,OAEFugO,EAAavgO,GACb,IAAInI,EAAMyoO,EAAStgO,GAGnBugO,EAFAvgO,EAAM+b,EAAMkV,UAGZ,IAAIivM,EAAMlgO,EACV0gO,EAAKT,OAAOpoO,EAAKqoO,EACvB,CACA,CAEE,SAASS,EAAaD,EAAM3kN,GAC1B,OAAa,CACX,IAAI/b,EAAM+b,EAAMkV,SAChB,GAAI2Q,GAAM5hC,GACR,MAEF,GAAI8G,GAAM9G,EAAK,cACb,OAEFugO,EAAavgO,GACb,IAAI2/N,EAAMW,EAAStgO,GAEnBugO,EADAvgO,EAAM+b,EAAMkV,UAEZ,IAAI2uM,EAAOU,EAAStgO,GAEpB,GAAI0G,GADJ1G,EAAM+b,EAAMkV,WACMrqB,GAAS5G,GAAM,CAC/B,IAAI8/N,EAASp5N,GAAM1G,GAAOxT,OAAO8U,aAAatB,GAAOA,EACrD0gO,EAAKb,SAASF,EAAKC,EAAME,EAC1B,KAAM,KAAIh5N,GAAM9G,EAAK,KASpB,MARAA,EAAM+b,EAAMkV,SAEZ,IADA,IAAIvY,EAAQ,IACJ5R,GAAM9G,EAAK,OAAS4hC,GAAM5hC,IAChC0Y,EAAM94B,KAAKogB,GACXA,EAAM+b,EAAMkV,SAEdyvM,EAAKV,gBAAgBL,EAAKC,EAAMlnN,EAGxC,CACA,CACIra,GAAM,oBACV,CAEE,SAASuiO,EAAaF,EAAM3kN,GAC1B,OAAa,CACX,IAAI/b,EAAM+b,EAAMkV,SAChB,GAAI2Q,GAAM5hC,GACR,MAEF,GAAI8G,GAAM9G,EAAK,cACb,OAEFugO,EAAavgO,GACb,IAAInI,EAAMyoO,EAAStgO,GAEnBwgO,EADAxgO,EAAM+b,EAAMkV,UAEZ,IAAIivM,EAAM1zO,OAAO8U,aAAatB,GAC9B0gO,EAAKT,OAAOpoO,EAAKqoO,EACvB,CACA,CAEE,SAASW,EAAcH,EAAM3kN,GAC3B,OAAa,CACX,IAAI/b,EAAM+b,EAAMkV,SAChB,GAAI2Q,GAAM5hC,GACR,MAEF,GAAI8G,GAAM9G,EAAK,eACb,OAEFugO,EAAavgO,GACb,IAAI2/N,EAAMW,EAAStgO,GAEnBugO,EADAvgO,EAAM+b,EAAMkV,UAEZ,IAAI2uM,EAAOU,EAAStgO,GAEpBwgO,EADAxgO,EAAM+b,EAAMkV,UAEZ,IAAI6uM,EAAStzO,OAAO8U,aAAatB,GACjC0gO,EAAKb,SAASF,EAAKC,EAAME,EAC/B,CACA,CAEE,SAASgB,EAAoBJ,EAAM3kN,GACjC,OAAa,CACX,IAAI/b,EAAM+b,EAAMkV,SAChB,GAAI2Q,GAAM5hC,GACR,MAEF,GAAI8G,GAAM9G,EAAK,qBACb,OAEF,IAAK4G,GAAS5G,GACZ,MAEF,IAAI2/N,EAAMW,EAAStgO,GAEnB,IAAK4G,GADL5G,EAAM+b,EAAMkV,UAEV,MAEF,IAAI2uM,EAAOU,EAAStgO,GACpB0gO,EAAKhB,kBAAkB1/N,EAAIllB,OAAQ6kP,EAAKC,EAC9C,CACIvhO,GAAM,2BACV,CAiCE,MAAO,CACLmG,OAAQ,SAAU2gC,GAChB,GAAIt+B,GAAOs+B,GACT,OAAQA,EAAS1iD,MACf,IAAK,aACH,OAAO,IAAI49O,IAAa,EAAO,GACjC,IAAK,aACH,OAAO,IAAIA,IAAa,EAAM,GAChC,QACE,OAAIl7L,EAAS1iD,QAAQ28O,KAGfsB,EAAO,IAAIlB,IACVC,gBAAkBL,GAAgBj6L,EAAS1iD,MACzCi+O,GAEF,UAEN,GAAIt5N,GAAS+9B,GAAW,CAC7B,IAAIu7L,EAAO,IAAIlB,GACXzjN,EAAQ,IAAIoD,GAAMgmB,GACtB,KApDN,SAAmBu7L,EAAM3kN,GACvBglN,EAAS,OAAa,CACpB,IAAI/gO,EAAM+b,EAAMkV,SAChB,GAAI2Q,GAAM5hC,GACR,MACK,GAAI8G,GAAM9G,GACf,OAAQA,EAAI+G,KACV,IAAK,UACH,MAAMg6N,EACR,IAAK,UAEH,MACF,IAAK,sBACHD,EAAoBJ,EAAM3kN,GAC1B,MACF,IAAK,cACH0kN,EAAYC,EAAM3kN,GAClB,MACF,IAAK,eACH6kN,EAAaF,EAAM3kN,GACnB,MACF,IAAK,eACH4kN,EAAaD,EAAM3kN,GACnB,MACF,IAAK,gBACH8kN,EAAcH,EAAM3kN,GAIhC,CACA,CAuBUy0C,CAAUkwK,EAAM3kN,EACjB,CAAC,MAAOnB,GACPxc,GAAK,sBAAwBwc,EACvC,CACQ,OAAO8lN,CACf,CACMriO,GAAM,qBACZ,EAEC,CArMiB,GAyNdskD,GAAmB,CACrB,eAAgB,CAAC,CAAC,GAAI,KAAM,CAACltB,EAAG,GAAIjhC,EAAG,IAAK,CAAC,GAAI,MAAO,CAACihC,EAAG,GAAIjhC,EAAG,IAAK,IACtE,CAACihC,EAAG,EAAGjhC,EAAG,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAACihC,EAAG,GAAIjhC,EAAG,IAAK,IAAK,IAAK,CAAC,IAAK,KACrE,CAAC,IAAK,MAAO,GAAI,CAAC,IAAK,MAAO,IAAK,CAAC,IAAK,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,KAAM,IACtE,EAAG,IAAK,KAAM,IAAK,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAAC,KAAM,MAAO,EAAG,EACvE,CAAC,IAAK,MAAO,EAAG,KAAM,KAAM,KAAM,KAAM,IAAK,EAAG,EAAG,IAAK,CAACihC,EAAG,EAAGjhC,EAAG,KAClE,CAAC,IAAK,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,IAAK,CAAC,IAAK,KAAM,IAAK,IAAK,IAAK,CAAC,IAAK,MAClE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,EAAG,EAAG,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,IAAK,IAAK,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,KAC/D,CAACihC,EAAG,GAAIjhC,EAAG,KAAM,EAAG,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,CAACihC,EAAG,GAAIjhC,EAAG,KAAM,EACrE,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,IAAK,IAAK,IAAK,CAAC,IAAK,MAAO,IAAK,KAAM,IAAK,EAAG,KAC/D,CAACihC,EAAG,GAAIjhC,EAAG,IAAK,IAAK,CAACihC,EAAG,GAAIjhC,EAAG,IAAK,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,EAC5D,CAACihC,EAAG,GAAIjhC,EAAG,OAAQ,CAACC,EAAG,KAAM,CAAC,KAAM,OACpC,CAACghC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAChE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,IAAK,MAAO,IAAK,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,KAAM,KAAM,MACrE,MAAO,CAAC,MAAO,OAAQ,KAAM,MAAO,KAAM,KAAM,CAACC,EAAG,GAAI,CAACghC,EAAG,EAAGjhC,EAAG,OAClE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,GAAIjhC,EAAG,OAAQ,MACjE,CAAC,KAAM,OAAQ,IAAK,IAAK,IAAK,MAAO,KAAM,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,MACnE,KAAM,KAAM,KAAM,KAAM,IAAK,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,KAAM,MAAO,MAC3D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,KAAM,KAAM,KACtE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAClE,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,KAAM,MAAO,KAAM,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,MAC1D,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,KAAM,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,MAAO,KAAM,KAAM,KACjE,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,KACjE,KAAM,KAAM,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,KAAM,KAAM,KAAM,KAAM,KAC3D,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,IAAK,KAAM,CAACihC,EAAG,GAAIjhC,EAAG,OAAQ,CAACihC,EAAG,GAAIjhC,EAAG,OAC1D,CAACihC,EAAG,GAAIjhC,EAAG,OAAQ,CAACihC,EAAG,GAAIjhC,EAAG,OAAQ,CAACihC,EAAG,GAAIjhC,EAAG,OAAQ,CAACihC,EAAG,GAAIjhC,EAAG,KACpE,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,CAACihC,EAAG,GAAIjhC,EAAG,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,KAAM,CAACihC,EAAG,EAAGjhC,EAAG,MAAO,KAClE,CAACihC,EAAG,GAAIjhC,EAAG,MAAO,KAAM,CAACihC,EAAG,GAAIjhC,EAAG,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAA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CjE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OACpE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACpE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OACpE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,KAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO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,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,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AO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACzD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/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,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,CAAC,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjD,CAAC,MAAO,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ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O,OAAQ,MACvD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MACvD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAC/D,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MACvD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAC7D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAC/D,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAC7D,CAAC,MAAO,OAAQ,CAAC,MAAO,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,MAAO,OAAQ,MACvD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAC9D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OACtD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OACtD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAC/D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OACtD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAC9D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAChE,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAC7D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OACtD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAC9D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAC9D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MACrE,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MACrE,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,MAAO,OAAQ,MACvD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OACtD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAC/D,MAAO,MAAO,CAAC,MAAO,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MACrE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAClE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACrE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,CAAC,MAAO,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,KACrE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,CAAC,MAAO,OAChE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MACrE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAClE,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC3D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,CAAC,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACrE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAC5D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC1D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,CAAC,MAAO,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAA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O,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,KAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,MAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjD,CAAC,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAClE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAA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,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACrD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MA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O,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OACpD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,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MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACrD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAChE,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,KAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,M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ACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,M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AAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,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nE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACrD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACrE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAC5D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAC3D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAChE,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAChE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CA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AAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MA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AAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,CAACihC,EAAG,EAAGjh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AO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAC5D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAC5D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,M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O,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,KAAM,OACvD,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ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AQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,MAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,KAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OACxD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACxD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OACzD,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,OAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,OAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC1D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAAS,CAAC,MAAO,QAC3D,CAAC,MAAO,Q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MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACghC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACrE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OACzD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAClE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAC3D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC1D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MACrE,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,KAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAC1D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAA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O,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACghC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAC5D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MA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AG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAC7D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAC5D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MACpE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAChE,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAChE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MACpE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAC7D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MACpE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAC7D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAC7D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAC7D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAA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C,EAAG,EAAGjhC,EAAG,OAChE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAC5D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAChE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAC5D,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OACnE,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OACrD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OACrD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OACrD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OACrD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OACnE,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OACrD,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,CAACihC,EAAG,EAAGjhC,EAAG,OAAQ,MAAO,MAAO,MAAO,CAACihC,EAAG,EAAGjhC,EAAG,OACnE,MAAO,MAAO,MAAO,MAAO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"}