{"version":3,"file":"pdfparser.cjs","sources":["../lib/simpleXmlParser.js","../lib/pdfjs-logger.js","../lib/pdfanno.js","../lib/pdfimage.js","../lib/pdfconst.js","../lib/pdfunit.js","../lib/pdfline.js","../lib/pdffill.js","../lib/pdffont.js","../lib/pdfcanvas.js","../lib/pdfjs-code.js","../lib/pkinfo.js","../lib/pdffield.js","../lib/ptixmlinject.js","../lib/pdf.js","../lib/parserstream.js","../pdfparser.js"],"sourcesContent":["// A simple XML parser to replace @xmldom/xmldom dependency\n// This implements just enough functionality to support the existing code\n\n/**\n * A simple XML Element implementation\n * @class\n */\nclass Element {\n  /**\n   * Create a new Element\n   * @param {string} nodeName - The name of the node/tag\n   */\n  constructor(nodeName) {\n    /** @type {string} */\n    this.nodeName = nodeName;\n    /** @type {Array<Element>} */\n    this.childNodes = [];\n    /** @type {Object.<string, string>} */\n    this.attributes = {};\n    /** @type {string} */\n    this.textContent = \"\";\n  }\n\n  /**\n   * Get attribute value by name\n   * @param {string} name - The attribute name\n   * @returns {string|null} The attribute value or null\n   */\n  getAttribute(name) {\n    return this.attributes[name] || null;\n  }\n\n  /**\n   * Get elements by tag name\n   * @param {string} tagName - The tag name to search for\n   * @returns {Array<Element>} The matching elements\n   */\n  getElementsByTagName(tagName) {\n    /** @type {Array<Element>} */\n    let results = [];\n\n    // Check if this element matches\n    if (this.nodeName === tagName) {\n      results.push(this);\n    }\n\n    // Check child elements recursively\n    for (const child of this.childNodes) {\n      if (child instanceof Element) {\n        if (tagName === \"*\" || child.nodeName === tagName) {\n          results.push(child);\n        }\n\n        // Add matching descendants\n        const childMatches = child.getElementsByTagName(tagName);\n        results = results.concat(childMatches);\n      }\n    }\n\n    return results;\n  }\n}\n\n/**\n * A simple XML Document implementation\n * @class\n */\nclass Document {\n  constructor() {\n    /** @type {Element|null} */\n    this.documentElement = null;\n  }\n}\n\n/**\n * A minimal DOMParser implementation that supports the basic features needed\n * @class\n */\nclass SimpleDOMParser {\n  /**\n   * Parse XML string into a Document\n   * @param {string} xmlString - The XML string to parse\n   * @returns {Document} The parsed document\n   */\n  parseFromString(xmlString) {\n    const doc = new Document();\n\n    // Remove XML declaration if present\n    xmlString = xmlString.replace(/<\\?xml[^?]*\\?>/, \"\").trim();\n\n    // Parse the document\n    doc.documentElement = this.parseElement(xmlString);\n\n    return doc;\n  }\n\n  /**\n   * Parse an XML element\n   * @param {string} xmlString - The XML string to parse\n   * @returns {Element|null} The parsed element or null\n   */\n  parseElement(xmlString) {\n    // Regular expressions for parsing XML\n    const startTagRegex = /<([^\\s/>]+)([^>]*)>/;\n    const attributeRegex = /([^\\s=]+)=(?:\"([^\"]*)\"|'([^']*)')/g;\n\n    // Find the start tag\n    const startMatch = xmlString.match(startTagRegex);\n    if (!startMatch) {\n      return null;\n    }\n\n    const tagName = startMatch[1];\n    const attributeString = startMatch[2];\n\n    // Create the element\n    const element = new Element(tagName);\n\n    // Parse attributes\n    let attributeMatch;\n    while ((attributeMatch = attributeRegex.exec(attributeString)) !== null) {\n      const attrName = attributeMatch[1];\n      const attrValue = attributeMatch[2] || attributeMatch[3]; // Use whichever capture group matched\n      element.attributes[attrName] = attrValue;\n    }\n\n    // Find the content between start and end tags\n    const startTagEnd = startMatch[0].length;\n    const endTagSearch = new RegExp(`</${tagName}>`);\n    const endMatch = xmlString.slice(startTagEnd).search(endTagSearch);\n\n    if (endMatch === -1) {\n      // Self-closing or malformed tag\n      return element;\n    }\n\n    const contentString = xmlString.slice(startTagEnd, startTagEnd + endMatch);\n\n    // Parse child elements\n    let remainingContent = contentString.trim();\n    while (remainingContent.length > 0) {\n      // Check if there's a child element\n      if (remainingContent.startsWith(\"<\") && !remainingContent.startsWith(\"</\")) {\n        // Find the next child element\n        const childStartMatch = remainingContent.match(startTagRegex);\n        if (childStartMatch) {\n          const childTagName = childStartMatch[1];\n          const childEndTagSearch = new RegExp(`</${childTagName}>`);\n          const childEndIndex = remainingContent.search(childEndTagSearch);\n\n          if (childEndIndex !== -1) {\n            // Extract the complete child element string (including its end tag)\n            const childEndTagLength = childTagName.length + 3; // \"</tag>\"\n            const childXmlString = remainingContent.slice(0, childEndIndex + childEndTagLength);\n\n            // Parse the child element and add it to parent\n            const childElement = this.parseElement(childXmlString);\n            if (childElement) {\n              element.childNodes.push(childElement);\n            }\n\n            // Remove the processed child from remaining content\n            remainingContent = remainingContent.slice(childXmlString.length).trim();\n            continue;\n          }\n        }\n      }\n\n      // Handle text content\n      const nextTagIndex = remainingContent.indexOf(\"<\");\n      if (nextTagIndex === -1) {\n        // The rest is all text\n        element.textContent += remainingContent.trim();\n        break;\n      } else if (nextTagIndex > 0) {\n        // There's some text before the next tag\n        element.textContent += remainingContent.slice(0, nextTagIndex).trim();\n        remainingContent = remainingContent.slice(nextTagIndex).trim();\n      } else {\n        // Can't parse further, just break\n        break;\n      }\n    }\n\n    return element;\n  }\n}\n\n// Export DOMParser as a class\nexport { SimpleDOMParser as DOMParser };\n","/**\n * PDF.js Logger Module\n * \n * Provides logging functionality for all PDF processing modules.\n * This module has no dependencies and can be imported by any module\n * that needs logging without creating circular dependencies.\n * \n * The actual implementation lives in base/shared/util.js and is injected\n * via initLogger() when pdf.js loads. Fallback implementations are provided\n * for use before initialization.\n */\n\nimport console from \"node:console\";\n\n/**\n * Logger instance that modules import\n * Delegates to PDFJS implementation from base/shared/util.js after initLogger() is called\n */\nexport const PJS = {\n  log: console.log.bind(console),\n  info: console.info.bind(console),\n  warn: console.warn.bind(console),\n  error(msg) { throw new Error(msg); },\n  verbosity() {},\n  LogManager: {\n    addLogger() {},\n    notify() {},\n  },\n  // Verbosity constants (matching base/shared/util.js lines 26-28)\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\n/**\n * Initialize the logger with the actual PDFJS implementation from base/shared/util.js\n * This is called by pdf.js after pdfjs-code.js is loaded\n * \n * Delegates all methods to the pdfjsInstance which has the full implementation\n */\nexport function initLogger(pdfjsInstance) {\n  if (pdfjsInstance) {\n    // Delegate all methods to the actual PDFJS implementation\n    PJS.log = pdfjsInstance.log;\n    PJS.info = pdfjsInstance.info;\n    PJS.warn = pdfjsInstance.warn;\n    PJS.error = pdfjsInstance.error;\n    PJS.verbosity = pdfjsInstance.verbosity;\n    PJS.LogManager = pdfjsInstance.LogManager;\n\n    // Initialize default verbosity\n    if (typeof pdfjsInstance.verbosity === 'function') {\n      pdfjsInstance.verbosity();\n    }\n  }\n}\n","import { PJS } from \"./pdfjs-logger.js\";\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            \n            item.checked = (item.fieldValue === item.value); //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            PJS.warn(\"Unknown fieldType: \", item);\n        }\n    }\n}\n","\nimport { Buffer } from \"node: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","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 { PJS } from \"./pdfjs-logger.js\";\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                PJS.info(`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                PJS.info(`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 { PJS } from \"./pdfjs-logger.js\";\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            PJS.info(`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 { PJS } from \"./pdfjs-logger.js\";\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            PJS.info(\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            PJS.info(\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      PJS.info(`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            PJS.info(`${this.fontObj.type} - SymbolicFont - (${this.fontObj.name}) : ${str.charCodeAt(0)}::${str.charCodeAt(1)} => ${retVal}`);\n      }\n\n      return retVal;\n   }\n\n   #processType3Font(str) {\n      // Special handling for Type3 fonts\n      if (!str || str.length !== 1 || this.fontObj.type !== 'Type3') {\n         return str;\n      }\n\n      // Debug info\n      PJS.info(`Processing Type3 font: char code = ${str.charCodeAt(0)}, char = '${str}'`);\n      if (this.fontObj.charProcMapping) {\n         PJS.info(`charProcMapping available with ${Object.keys(this.fontObj.charProcMapping).length} entries`);\n      } else {\n         PJS.info(`No charProcMapping available for this Type3 font`);\n         \n         // If no mapping is available, try to use the character directly\n         if (str && str.length === 1) {\n            const code = str.charCodeAt(0);\n            if (code >= 65 && code <= 90) { // A-Z\n               PJS.info(`Using direct uppercase letter: ${str}`);\n               return str;\n            } else if (code >= 97 && code <= 122) { // a-z\n               PJS.info(`Using direct lowercase letter: ${str}`);\n               return str;\n            } else if (code >= 48 && code <= 57) { // 0-9\n               PJS.info(`Using direct digit: ${str}`);\n               return str;\n            }\n         }\n      }\n\n      // Use the charProcMapping if available to map character code to glyph name\n      if (this.fontObj.charProcMapping) {\n         const charCode = str.charCodeAt(0);\n         const glyphName = this.fontObj.charProcMapping[charCode];\n         \n         if (glyphName) {\n            PJS.info(`Found glyph name in mapping: ${glyphName}`);\n            // Map common Type3 glyph names to Unicode characters\n            const glyphToUnicode = {\n               'bullet': '\\u2022',\n               'checkbox': '\\u2610',\n               'checkmark': '\\u2713',\n               'check': '\\u2713',\n               'circle': '\\u25CB',\n               'square': '\\u25A1',\n               'triangle': '\\u25B2',\n               'triangledown': '\\u25BC',\n               'triangleleft': '\\u25C0',\n               'triangleright': '\\u25B6',\n               'star': '\\u2605',\n               'diamond': '\\u25C6',\n               'heart': '\\u2665',\n               'club': '\\u2663',\n               'spade': '\\u2660',\n               'filledcircle': '\\u25CF',\n               'filledsquare': '\\u25A0',\n               'filledtriangle': '\\u25B2',\n               'filledtriangledown': '\\u25BC',\n               'filledtriangleright': '\\u25B6',\n               'filledtriangleleft': '\\u25C0',\n               'arrowleft': '\\u2190',\n               'arrowright': '\\u2192',\n               'arrowup': '\\u2191',\n               'arrowdown': '\\u2193',\n               'cross': '\\u2717'\n            };\n            \n            // Check for direct match\n            const glyphNameLower = typeof glyphName === 'string' ? glyphName.toLowerCase() : '';\n            if (glyphNameLower in glyphToUnicode) {\n               const unicodeChar = glyphToUnicode[/** @type {keyof typeof glyphToUnicode} */ (glyphNameLower)];\n               PJS.info(`Mapped ${glyphNameLower} to Unicode ${unicodeChar}`);\n               return unicodeChar;\n            }\n            \n            // Check for letters in the glyph name (g0, g1, etc.)\n            if (typeof glyphName === 'string' && glyphName.length > 1) {\n               const letterMatch = glyphName.match(/[A-Za-z]/g);\n               if (letterMatch && letterMatch.length === 1) {\n                  const letter = letterMatch[0].toUpperCase();\n                  PJS.info(`Extracted letter ${letter} from glyph name ${glyphName}`);\n                  return letter;\n               }\n            }\n            \n            // Check for partial match (glyph name contains known keyword)\n            for (const key in glyphToUnicode) {\n               if (glyphNameLower.indexOf(key) >= 0) {\n                  const unicodeChar = glyphToUnicode[/** @type {keyof typeof glyphToUnicode} */ (key)];\n                  PJS.info(`Partial match: ${glyphNameLower} contains ${key}, mapped to ${unicodeChar}`);\n                  return unicodeChar;\n               }\n            }\n            \n            // Try to match letters in the glyph name (e.g. g26 -> \"C\", g28 -> \"O\", etc.)\n            // Look for letter patterns in the glyph name \n            if (typeof glyphName === 'string') {\n               // Try to extract letter from glyph name\n               const letterMatch = glyphName.match(/[A-Za-z]/g);\n               if (letterMatch && letterMatch.length === 1) {\n                  const letter = letterMatch[0].toUpperCase();\n                  PJS.info(`Extracted letter ${letter} from glyph name ${glyphName}`);\n                  return letter;\n               }\n               \n               // Handle number in glyph name to suggest possible letter\n               const numberMatch = glyphName.match(/\\d+/);\n               if (numberMatch && numberMatch.length === 1) {\n                  const num = parseInt(numberMatch[0], 10);\n                  // Map numbers to alphabet (1=A, 2=B, etc.)\n                  if (num >= 1 && num <= 26) {\n                     const letter = String.fromCharCode(64 + num); // ASCII 'A' is 65\n                     PJS.info(`Mapped number ${num} in glyph name ${glyphName} to letter ${letter}`);\n                     return letter;\n                  }\n               }\n            }\n            \n            // Handle uniXXXX format glyph names\n            if (typeof glyphName === 'string' && glyphName.startsWith('uni')) {\n               const hex = glyphName.substring(3);\n               if (/^[0-9A-F]{4,6}$/i.test(hex)) {\n                  PJS.info(`Mapped uni${hex} to Unicode character`);\n                  return String.fromCharCode(parseInt(hex, 16));\n               }\n            }\n         }\n      }\n      \n      // If we reach here, try direct character code mapping\n      const charCode = str.charCodeAt(0);\n      \n      // No hard-coded directMappings, rely on charProcMapping from the font object\n      PJS.info(`No direct mapping for character code ${charCode}, checking general mappings`);\n      \n      \n      // Direct mapping for common Type3 glyph character codes\n      let result = str;\n      switch (charCode) {\n         case 18: result = '\\u2713'; break; // Check mark\n         case 19: result = '\\u2610'; break; // Ballot box\n         case 20: result = '\\u2611'; break; // Ballot box with check\n         case 108: result = '\\u2022'; break; // Bullet\n         case 109: result = '\\u25CF'; break; // Black circle\n         case 110: result = '\\u25CB'; break; // White circle\n         case 111: result = '\\u25A0'; break; // Black square\n         case 112: result = '\\u25A1'; break; // White square\n         case 113: result = '\\u25B2'; break; // Black up-pointing triangle\n         case 114: result = '\\u25BC'; break; // Black down-pointing triangle\n         case 117: result = '\\u2190'; break; // Left arrow\n         case 118: result = '\\u2192'; break; // Right arrow\n         case 119: result = '\\u2191'; break; // Up arrow\n         case 120: result = '\\u2193'; break; // Down arrow\n         case 128: result = '\\u221E'; break; // Infinity\n         case 129: result = '\\u2260'; break; // Not equal\n         case 130: result = '\\u2264'; break; // Less than or equal\n         case 131: result = '\\u2265'; break; // Greater than or equal\n      }\n      \n      if (result !== str) {\n         PJS.info(`Mapped char code ${charCode} to Unicode ${result}`);\n      } else {\n         PJS.info(`No mapping found for char code ${charCode}, returning original character`);\n      }\n      \n      return result;\n   }\n\n   /**\n    * Calculate the rotation angle from a 2D transformation matrix\n    * @param {number[][]} matrix2D - The 2D transformation matrix\n    * @returns {number} - The rotation angle in degrees\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   /**\n    * Process text for rendering\n    * @param {{x: number, y: number}} p - The position\n    * @param {string} str - The text string\n    * @param {number} maxWidth - Maximum width\n    * @param {string} color - Color value\n    * @param {number} fontSize - Font size\n    * @param {{Texts: Array<any>}} targetData - Target data object\n    * @param {number[][]} matrix2D - 2D transformation matrix\n    */\n   processText(p, str, maxWidth, color, fontSize, targetData, matrix2D) {\n      // Debug the incoming text processing\n      PJS.info(`Processing text: '${str}', font type: ${this.fontObj.type || 'unknown'}, char code: ${str ? str.charCodeAt(0) : 'none'}`);\n\n      // Save original text for fallback\n      const originalStr = str;\n      \n      // First try to process Type3 fonts, then fall back to symbolic fonts\n      let text = this.fontObj.type === 'Type3' ? \n                 this.#processType3Font(str) : \n                 this.#processSymbolicFont(str);\n                 \n      if (!text) {\n         PJS.info('Text processing returned null or empty, falling back to original text');\n         text = originalStr; // Use original text as fallback\n      }\n      \n      PJS.info(`Processed text: '${str}' -> '${text}'`);\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         PJS.info(`${str}: rotated ${rAngle} degree.`);\n         // Add RA property safely\n         textRun = Object.assign({}, 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         // TT: this.fontObj.isSymbolicFont || this.fontObj.type === 'Type3' ? 1 : 0, // Add TT flag for symbolic and Type3 fonts\n      };\n\n      PJS.info(`Adding text to output: '${text}'`);\n      targetData.Texts.push(oneText);\n   }\n\n   /**\n    * Encode text for output - preserves UTF-8 multi-byte characters\n    * NOTE: Breaking change in v3.3.0 - removed URI encoding to fix issue #385\n    * Chinese/Japanese/Korean and other multi-byte characters now output as UTF-8\n    * @param {string} str - The string to encode\n    * @returns {string} - The encoded string with legacy character replacements\n    */\n   flashEncode(str) {\n      if (!str) return str;\n      \n      let retVal = str;\n      \n      // Apply legacy Flash-specific character replacements\n      // These handle problematic characters from old PDF encodings\n      retVal = retVal.replace(/\\u0096/g, '-');      // En dash\n      retVal = retVal.replace(/\\u0091/g, \"'\");      // Left single quote\n      retVal = retVal.replace(/\\u0092/g, \"'\");      // Right single quote\n      retVal = retVal.replace(/\\u0082/g, \"'\");      // Low single quote\n      retVal = retVal.replace(/\\u0093/g, '\"');      // Left double quote\n      retVal = retVal.replace(/\\u0094/g, '\"');      // Right double quote\n      retVal = retVal.replace(/\\u0084/g, '\"');      // Low double quote\n      retVal = retVal.replace(/\\u008B/g, '«');      // Left guillemet\n      retVal = retVal.replace(/\\u009B/g, '»');      // Right guillemet\n      \n      return retVal;\n   }\n\n   clean() {\n      this.fontObj = null;\n      delete this.fontObj;\n   }\n}\n","import { PJS } from \"./pdfjs-logger.js\";\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 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 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// Legacy naming convention from original PDF.js implementation\nclass CanvasPattern_ {\n\tconstructor() {}\n}\n\n// Gradient / Pattern Stubs\n// Legacy naming convention from original PDF.js implementation\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// Legacy naming convention from original PDF.js implementation\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\tPJS.info(`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\tPJS.warn(\"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\tPJS.warn(\"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// Method signature matches Canvas API\n\t// MQZ. 2025.01: Enhanced to support transparency groups which handled by base/display/canvas.js when invokes endGroup() \n\t// This handles transparency groups where text/lines/fills are rendered to a temporary canvas and then composited back to the main canvas via drawImage()\n\tdrawImage(image, var_args) {\n\t\t// If source has our custom data arrays (i.e., it's a PDFCanvas), merge them to this canvas\n\t\tif (image && typeof image === \"object\") {\n\t\t\t// Merge Texts array\n\t\t\tif (image.Texts && Array.isArray(image.Texts) && image.Texts.length > 0) {\n\t\t\t\tthis.canvas.Texts.push(...image.Texts);\n\t\t\t\timage.Texts = []; // Clear source after merging\n\t\t\t}\n\t\t\t// Merge HLines array\n\t\t\tif (image.HLines && Array.isArray(image.HLines) && image.HLines.length > 0) {\n\t\t\t\tthis.canvas.HLines.push(...image.HLines);\n\t\t\t\timage.HLines = [];\n\t\t\t}\n\t\t\t// Merge VLines array\n\t\t\tif (image.VLines && Array.isArray(image.VLines) && image.VLines.length > 0) {\n\t\t\t\tthis.canvas.VLines.push(...image.VLines);\n\t\t\t\timage.VLines = [];\n\t\t\t}\n\t\t\t// Merge Fills array\n\t\t\tif (image.Fills && Array.isArray(image.Fills) && image.Fills.length > 0) {\n\t\t\t\tthis.canvas.Fills.push(...image.Fills);\n\t\t\t\timage.Fills = [];\n\t\t\t}\n\t\t}\n\t\t// Note: actual pixel drawing is not supported (no-op for regular images)\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// Legacy naming convention from original PDF.js implementation\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","\n  import { Blob } from 'node:buffer';import { DOMParser } from './simpleXmlParser.js';import PDFAnno from './pdfanno.js';import Image from './pdfimage.js';import { createScratchCanvas } from './pdfcanvas.js';\n  export const PDFJS = { disableWorker: true };\n  const globalScope = { console, PDFJS };\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 Sep.14.2025 expose util methods without coupling to node:util\nPDFJS.log = log;\nPDFJS.info = info;\nPDFJS.warn = warn;\nPDFJS.error = error;\nPDFJS.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 {\n\t\t\tverbosity = verbo;\n\t\t}\n\t}\n};\n// Initialize default verbosity level\nPDFJS.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 = xref.fetchIfRef(cs[1]);\n          if (isDict(params)) {\n             params = params.getAll();\n          }\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 = xref.fetchIfRef(cs[1]);\n          if (isDict(params)) {\n            params = params.getAll();\n          }\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        \n        info(`Processing Type3 font: ${fontName}, found ${charProcKeys.length} CharProcs`);\n        \n        // Create a mapping from character code to glyph name\n        var charProcMapping = {};\n        var encoding = font.get('Encoding');\n        \n        if (encoding) {\n          info(`Type3 font has encoding: ${encoding.name || 'custom'}`);\n          var differences = encoding.get('Differences');\n          var baseEncoding = encoding.get('BaseEncoding');\n          \n                // Process Differences array if it exists\n          if (differences) {\n            info(`Processing Differences array of length ${differences.length}`);\n            var currentCode = 0;\n            for (var i = 0; i < differences.length; i++) {\n              var entry = differences[i];\n              if (typeof entry === 'number') {\n                currentCode = entry;\n                info(`Setting current code to ${currentCode}`);\n              } else {\n                // Check the type of entry to debug what's happening\n                var entryType = typeof entry;\n                var entryValue;\n                \n                // Ensure we always get a string name (not an object)\n                if (entryType === 'object' && entry.name) {\n                  entryValue = entry.name;\n                } else if (entryType === 'object') {\n                  entryValue = JSON.stringify(entry);\n                  info(`Warning: Non-name object in Differences array: ${entryValue}`);\n                } else {\n                  entryValue = entry.toString();\n                }\n                \n                // info(`Entry type: ${entryType}, value: ${entryValue}`);\n                \n                charProcMapping[currentCode] = entryValue;\n                // info(`Mapped code ${currentCode} to glyph '${entryValue}'`);\n                currentCode++;\n              }\n            }\n          }          \n          // Use BaseEncoding if available\n          if (baseEncoding && baseEncoding.name) {\n            info(`Using BaseEncoding: ${baseEncoding.name}`);\n            var baseEncodingMap = Encodings[baseEncoding.name];\n            if (baseEncodingMap) {\n              for (var code = 0; code < 256; code++) {\n                if (!charProcMapping[code] && baseEncodingMap[code]) {\n                  charProcMapping[code] = baseEncodingMap[code];\n                  // info(`Mapped code ${code} to glyph '${baseEncodingMap[code]}' from BaseEncoding`);\n                }\n              }\n            }\n          }\n        }\n        \n        // Store the mapping in the font object for text extraction\n        font.translated.charProcMapping = charProcMapping;\n        // info(`Final charProcMapping has ${Object.keys(charProcMapping).length} entries`);\n        \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          // info(`Processed CharProc for glyph '${key}'`);\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(operatorList.dependencies);\n        }\n        font.translated.charProcOperatorList = charProcOperatorList;\n        font.translated.charProcMapping = charProcMapping;\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            \n            // MQZ: Add font metrics for accurate spacing calculation\n            bidiText.fontName = font.loadedName || font.name;\n            bidiText.fontSize = textState.fontSize;\n            \n            // Get fontMatrix once (used for both spaceWidth and textWidth calculations)\n            var fontMatrix = font.fontMatrix || FONT_IDENTITY_MATRIX;\n            var fontDirection = textState.fontDirection || 1;\n            \n            // Scale spaceWidth to PDF coordinates using fontMatrix (NO textHScale)\n            // Must match canvas.js canvasWidth calculation (line 1258 - no textHScale)\n            bidiText.spaceWidth = font.spaceWidth * textState.fontSize * fontMatrix[0];\n            bidiText.charSpace = charSpace;\n            bidiText.wordSpace = wordSpace;\n            bidiText.textHScale = textState.textHScale;\n            \n            // Calculate actual text width using font glyph widths\n            // Match canvas.js calculation exactly (lines 1210-1211, 1258, canvasWidth does NOT include textHScale)\n            var textWidth = 0;\n            var glyphs = font.charsToGlyphs(chunk);\n            for (var i = 0, ii = glyphs.length; i < ii; i++) {\n              var glyph = glyphs[i];\n              // Use glyph.width if available, otherwise font.defaultWidth (like canvas.js does)\n              var glyphWidth = (glyph && glyph.width) || font.defaultWidth || 0;\n              // Match canvas.js line 1210-1211: width * fontSize * fontMatrix[0] + charSpacing * fontDirection\n              var charWidth = glyphWidth * textState.fontSize * fontMatrix[0] + charSpace * fontDirection;\n              textWidth += charWidth;\n            }\n            // DO NOT apply textHScale - canvasWidth is in unscaled coordinates\n            // (bidiText.x is scaled, but bidiText.width matches JSON w property which is unscaled)\n            bidiText.width = textWidth;\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        this.disableFontFace = true;\n        this.loadedName = this.loadedName || 'Type3Font';\n        \n        // Add ability to map Type3 font glyphs to Unicode characters\n        if (properties.toUnicode) {\n          this.toUnicode = properties.toUnicode;\n        } else {\n          // Create a basic toUnicode map for common glyph names\n          const toUnicode = {};\n          const encoding = properties.baseEncoding || [];\n          for (let i = 0; i < encoding.length; i++) {\n            const glyphName = encoding[i];\n            if (glyphName && GlyphsUnicode[glyphName]) {\n              toUnicode[i] = String.fromCharCode(GlyphsUnicode[glyphName]);\n            }\n          }\n          \n          // If there are differences, apply them too\n          if (properties.differences && properties.differences.length) {\n            for (let i = 0; i < 256; i++) {\n              if (properties.differences[i]) {\n                const glyphName = properties.differences[i];\n                if (typeof glyphName === 'string' && GlyphsUnicode[glyphName]) {\n                  toUnicode[i] = String.fromCharCode(GlyphsUnicode[glyphName]);\n                }\n              }\n            }\n          }\n          this.toUnicode = toUnicode;\n        }\n        return;\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          \n          // For text extraction, map the glyph name to Unicode if possible\n          if (glyphName) {\n            fontCharCode = GlyphsUnicode[glyphName] || charcode;\n            \n            // Handle common symbolic glyphs\n            if (fontCharCode === charcode && typeof glyphName === 'string') {\n              // Special handling for specific glyphs\n              if (glyphName.startsWith('uni')) {\n                // Handle uniXXXX format\n                const hex = glyphName.substring(3);\n                if (/^[0-9A-F]{4,6}$/i.test(hex)) {\n                  fontCharCode = parseInt(hex, 16);\n                }\n              }\n              \n              // Check if it's a common symbol\n              const commonSymbols = {\n                'bullet': 0x2022,\n                'checkbox': 0x2610,\n                'checkmark': 0x2713,\n                'circle': 0x25CB,\n                'square': 0x25A1,\n                'triangle': 0x25B2,\n                'triangledown': 0x25BC,\n                'triangleleft': 0x25C0,\n                'triangleright': 0x25B6,\n                'star': 0x2605\n              };\n              \n              if (commonSymbols[glyphName.toLowerCase()]) {\n                fontCharCode = commonSymbols[glyphName.toLowerCase()];\n              }\n            }\n          } else {\n            fontCharCode = charcode;\n          }\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          if (scanLength <= 0) break; // no match possible, end of stream or invalid stream\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 or invalid stream');\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\t  if (fontObj.coded) {\n      warn('Found Type3 font (custom Glyph) - ' + fontRefName + ', trying to decode'); // MQZ 8/23 added Type3 glyph font support\n\t\t  // MQZ. 08/24/2025 need to set up the font context for glyph based text processing\n\t\t  this.ctx.setFont(fontObj);\n\t\t  return; // we don't need ctx.font for Type3 fonts\n\t  }\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      \n      // Always use textSelection for Type3 fonts\n      var textSelection = textLayer && (font.coded || !skipTextSelection) ? true : false;\n      var type3Text = \"\";\n\n      var canvasWidth = 0.0;\n      var vertical = font.vertical;\n      var defaultVMetrics = font.defaultVMetrics;\n\n      info(`showText called with ${glyphsLength} glyphs, font type: ${font.coded ? 'Type3' : font.type || 'Unknown'}, textSelection: ${textSelection}`);\n\n      // Type3 fonts - each glyph is a \"mini-PDF\"\n      if (font.coded) {\n        info(`Processing Type3 font with ${glyphsLength} glyphs`);\n        \n        // For Type3 fonts, collect unicode characters or character codes\n        for (var i = 0; i < glyphsLength; ++i) {\n          var glyph = glyphs[i];\n          if (glyph !== null) {\n            // Use unicode value if available, otherwise use fontChar\n            if (glyph.unicode) {\n              type3Text += glyph.unicode;\n            } else if (glyph.fontChar) {\n              type3Text += String.fromCharCode(glyph.fontChar);\n            }\n          }\n        }\n        info(`Type3 text: ${type3Text}`);\n        \n        // If we have collected text, store it for later use in appendText\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          // Add the Type3 text to the geometry object so it can be added to the output\n          geom.type3Text = type3Text;\n          geom.fontSize = fontSize;\n          this.restore();\n        }\n        for (var i = 0; i < glyphsLength; ++i) {\n          var glyph = glyphs[i];\n          if (glyph === null) {\n            // word break\n            info(`Type3 word break at glyph ${i}`);\n            this.ctx.translate(wordSpacing, 0);\n            current.x += wordSpacing * textHScale;\n            continue;\n          }\n\n          //info(`Processing Type3 glyph ${i}: ${glyph.unicode || glyph.fontChar}`);\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          //info(`Type3 glyph width: ${width}`);\n          ctx.translate(width, 0);\n          current.x += width * textHScale;\n\n          canvasWidth += width;\n        }\n        // Render Type3 text within the transformation context\n        if (type3Text) {\n          info(`render Type3 text: '${type3Text}', disableFontFace: ${font.disableFontFace}`);\n          var curFontSize = fontSize;\n            switch (current.textRenderingMode) {\n              case TextRenderingMode.FILL:\n                  ctx.fillText(type3Text, 0, 0, canvasWidth, curFontSize);\n                  break;\n              case TextRenderingMode.STROKE:\n                  ctx.strokeText(type3Text, 0, 0, canvasWidth, curFontSize);\n                  break;\n              case TextRenderingMode.FILL_STROKE:\n                  ctx.fillText(type3Text, 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        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            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            }\n          }\n          \n          // Always extract text for pdf2json, even if glyph is disabled for rendering (fixes issue #385)\n          str += glyph.unicode || character;\n          if (accent) {\n            // str += accent.fontChar;  // Accent characters handled above\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      // Text rendering for regular fonts (Type3 fonts are handled in their own context above)\n      if (str && !font.disableFontFace && !font.coded) {\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      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      }\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 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","import { PJS } from \"./pdfjs-logger.js\";\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                PJS.warn(`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                PJS.warn(`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\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    //static public method to generate data output for all field types\n    static getAllFieldData(data) {\n        const isFieldReadOnly = field => (field.AM & kFBANotOverridable) ? true : false;\n\n        function getFieldValue(field) {\n            switch(field.T.Name) {\n                case 'box':\n                    return field.checked === undefined ? false : field.checked;\n                case 'alpha':\n                case 'date':\n                    default:\n                    return field.V;\n            }\n        }\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: getFieldValue(field)\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                        if(box.checked)\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 fs from \"node:fs\";\nimport { DOMParser } from \"./simpleXmlParser.js\";\n\n/**\n * XML Parser for PTI format\n * @class\n */\nexport default class PTIXmlParser {\n    /** @type {string|null} */\n    xmlData = null;\n\t/** @type {Array<any>} */\n\tptiPageArray = [];\n\n\t/**\n\t * Create a new PTIXmlParser\n\t */\n\tconstructor() {\n        this.xmlData = null;\n        this.ptiPageArray = [];\n    }\n\n\t/**\n\t * Parse an XML file\n\t * @param {string} filePath - The path to the XML file\n\t * @param {Function} callback - The callback function\n\t */\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\t/** @type {string} */\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 ? 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\t/** @type {Record<string, any>} */\n\t\t\t\t\tvar item = {};\n\n\t\t\t\t\tvar rectLeft = parseInt(xPos || '0') - 21; //was 23.5\n\t\t\t\t\tvar rectTop = parseInt(yPos || '0') - 20;//was 23\n\t\t\t\t\tvar rectRight = parseInt(String(rectLeft)) + parseInt(width || '0') - 4;\n\t\t\t\t\tvar rectBottom = parseInt(String(rectTop)) + parseInt(height || '0') - 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 ? 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\tif (page) {\n\t\t\t\t\t\tthis.ptiPageArray[parseInt(page)] = fields;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tcallback();\n\t\t});\n\t}\n\n\t/**\n\t * Get fields for a specific page\n\t * @param {number} pageNum - The page number\n\t * @returns {Array<any>|undefined} The fields for the page\n\t */\n\tgetFields(pageNum) {\n\t\treturn this.ptiPageArray[pageNum];\n\t}\n}\n","import process from \"node:process\";\nimport console from \"node:console\";\nimport fs from \"node:fs\";\nimport { EventEmitter } from \"node:events\";\n\nimport { PDFJS } from \"./pdfjs-code.js\";\nimport { initLogger } from \"./pdfjs-logger.js\";\n\n// Initialize the logger with the actual PDFJS instance\ninitLogger(PDFJS);\n\n// Create typed wrapper for internal use\nconst PJS = /** @type {import(\"../src/types/pdfjs\").PDFJSAPI} */ (\n  /** @type {any} */ (PDFJS)\n);\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\n//start of helper classes\nclass PDFPageParser {\n  //static\n  static RenderingStates = {\n    INITIAL: 0,\n    RUNNING: 1,\n    PAUSED: 2,\n    FINISHED: 3,\n  };\n\n  //public\n  id = -1;\n  pdfPage = null;\n  ptiParser = null;\n  scale = 0;\n  viewport = null;\n  renderingState = -1;\n\n  Fields = null;\n  Boxsets = null;\n  ctxCanvas = null;\n\n  #_addField(field) {\n    if (!PDFField.isFormElement(field)) {\n      PJS.warn(\"NOT valid form element\", field);\n      return;\n    }\n\n    const oneField = new PDFField(\n      field,\n      this.viewport,\n      this.Fields,\n      this.Boxsets\n    );\n    oneField.processField();\n  }\n\n  // constructor\n  constructor(pdfPage, id, scale, ptiParser) {\n    // public, this instance copies\n    this.id = id;\n    this.pdfPage = pdfPage;\n    this.ptiParser = ptiParser;\n\n    this.scale = scale || 1.0;\n\n    //leave out the 2nd parameter in order to use page's default rotation (for both portrait and landscape form)\n    this.viewport = this.pdfPage.getViewport(this.scale);\n\n    this.renderingState = PDFPageParser.RenderingStates.INITIAL;\n\n    //form elements other than radio buttons and check boxes\n    this.Fields = [];\n    //form elements: radio buttons and check boxes\n    this.Boxsets = [];\n    this.ctxCanvas = {};\n  }\n\n  get width() {\n    return PDFUnit.toFormX(this.viewport.width);\n  }\n  get height() {\n    return PDFUnit.toFormY(this.viewport.height);\n  }\n  get HLines() {\n    return this.ctxCanvas.HLines;\n  }\n  get VLines() {\n    return this.ctxCanvas.VLines;\n  }\n  get Fills() {\n    return this.ctxCanvas.Fills;\n  }\n  get Texts() {\n    return this.ctxCanvas.Texts;\n  }\n\n  destroy() {\n    this.pdfPage.destroy();\n    this.pdfPage = null;\n\n    this.ptiParser = null;\n    this.Fields = null;\n    this.Boxsets = null;\n    this.ctxCanvas = null;\n  }\n\n  getPagePoint(x, y) {\n    return this.viewport.convertToPdfPoint(x, y);\n  }\n\n  parsePage(callback, errorCallBack) {\n    if (this.renderingState !== PDFPageParser.RenderingStates.INITIAL) {\n      errorCallBack(\"Must be in new state before drawing\");\n      return;\n    }\n\n    this.renderingState = PDFPageParser.RenderingStates.RUNNING;\n\n    const canvas = createScratchCanvas(1, 1);\n    const ctx = canvas.getContext(\"2d\");\n\n    const selfAddField = this.#_addField.bind(this);\n    function pageViewDrawCallback(error) {\n      this.renderingState = PDFPageParser.RenderingStates.FINISHED;\n\n      if (error) {\n        console.error(error);\n        errorCallBack(`Error: Page ${this.id + 1}: ${error.message}`);\n      } else {\n        if (this.ptiParser) {\n          const extraFields = this.ptiParser.getFields(parseInt(this.id) + 1);\n          extraFields.forEach((field) => selfAddField(field));\n        }\n\n        this.ctxCanvas = ctx.canvas;\n        this.stats = this.pdfPage.stats;\n\n        PJS.info(`Success: Page ${this.id + 1}`);\n        callback();\n      }\n    }\n\n    const renderContext = {\n      canvasContext: ctx,\n      viewport: this.viewport,\n    };\n\n    this.pdfPage.render(renderContext).then(\n      (data) => {\n        this.pdfPage.getAnnotations().then(\n          (fields) => {\n            fields.forEach((field) => this.#_addField(field));\n            pageViewDrawCallback.call(this, null);\n          },\n          (err) => errorCallBack(`pdfPage.getAnnotations error:${err}`)\n        );\n      },\n      (err) => pageViewDrawCallback.call(this, err)\n    );\n  }\n}\n\n////////////////////////////////Start of Node.js Module\nexport default class PDFJSClass extends EventEmitter {\n  pdfDocument = null;\n  pages = null;\n  rawTextContents = null;\n\n  needRawText = null;\n\n  // constructor\n  constructor(needRawText) {\n    super();\n\n    // public, this instance copies\n    this.pdfDocument = null;\n    this.pages = [];\n    this.rawTextContents = [];\n\n    this.needRawText = needRawText;\n  }\n\n  raiseErrorEvent(errMsg) {\n    console.error(errMsg);\n    process.nextTick(() => this.emit(\"pdfjs_parseDataError\", errMsg));\n    // this.emit(\"error\", errMsg);\n    return errMsg;\n  }\n\n  raiseReadyEvent(data) {\n    process.nextTick(() => this.emit(\"pdfjs_parseDataReady\", data));\n    return data;\n  }\n\n  parsePDFData(arrayBuffer, password) {\n    this.resetCurrentObject();\n    const parameters = { password, data: arrayBuffer };\n    PJS.getDocument(parameters).then(\n      (pdfDocument) => this.load(pdfDocument, 1),\n      (error) => this.raiseErrorEvent(error)\n    );\n  }\n\n  tryLoadFieldInfoXML(pdfFilePath) {\n    const _sufInfo = \"_fieldInfo.xml\";\n    const fieldInfoXMLPath = pdfFilePath.replace(\".pdf\", _sufInfo);\n    if (\n      fieldInfoXMLPath.indexOf(_sufInfo) < 1 ||\n      !fs.existsSync(fieldInfoXMLPath)\n    ) {\n      return;\n    }\n    PJS.info(`About to load fieldInfo XML : ${fieldInfoXMLPath}`);\n\n    this.ptiParser = new PTIXmlParser();\n    this.ptiParser.parseXml(fieldInfoXMLPath, (err) => {\n      if (err) {\n        PJS.warn(`fieldInfo XML Error: ${JSON.stringify(err)}`);\n        this.ptiParser = null;\n      } else {\n        PJS.info(\"fieldInfo XML loaded.\");\n      }\n    });\n  }\n\n  load(pdfDocument, scale) {\n    this.pdfDocument = pdfDocument;\n\n    return this.loadMetaData().then(\n      () => this.loadPages(),\n      (error) => this.raiseErrorEvent(`loadMetaData error: ${error}`)\n    );\n  }\n\n  loadMetaData() {\n    return this.pdfDocument.getMetadata().then(\n      (data) => {\n        this.documentInfo = data.info;\n        this.metadata = data.metadata?.metadata ?? {};\n        this.parseMetaData();\n      },\n      (error) => this.raiseErrorEvent(`pdfDocument.getMetadata error: ${error}`)\n    );\n  }\n\n  parseMetaData() {\n    const meta = {\n      Transcoder: _PARSER_SIG,\n      Meta: { ...this.documentInfo, Metadata: this.metadata },\n    };\n    this.raiseReadyEvent(meta);\n    this.emit(\"readable\", meta);\n  }\n\n  loadPages() {\n    const pagesCount = this.pdfDocument.numPages;\n    const pagePromises = [];\n    for (let i = 1; i <= pagesCount; i++)\n      pagePromises.push(this.pdfDocument.getPage(i));\n\n    const pagesPromise = PJS.Promise.all(pagePromises);\n\n    PJS.info(`PDF loaded. pagesCount = ${pagesCount}`);\n\n    return pagesPromise.then(\n      (promisedPages) => this.parsePage(promisedPages, 0, 1.5),\n      (error) => this.raiseErrorEvent(`pagesPromise error: ${error}`)\n    );\n  }\n\n  parsePage(promisedPages, id, scale) {\n    PJS.info(`start to parse page:${id + 1}`);\n\n    const pdfPage = promisedPages[id];\n    const pageParser = new PDFPageParser(pdfPage, id, scale, this.ptiParser);\n\n    function continueOnNextPage() {\n      PJS.info(`complete parsing page:${id + 1}`);\n      if (id === this.pdfDocument.numPages - 1) {\n        this.raiseReadyEvent({ Pages: this.pages });\n        //v1.1.2: signal end of parsed data with null\n        process.nextTick(() => this.raiseReadyEvent(null));\n        this.emit(\"data\", null);\n      } else {\n        process.nextTick(() => this.parsePage(promisedPages, ++id, scale));\n      }\n    }\n\n    pageParser.parsePage(\n      (data) => {\n        const page = {\n          Width: pageParser.width,\n          Height: pageParser.height,\n          HLines: pageParser.HLines,\n          VLines: pageParser.VLines,\n          Fills: pageParser.Fills,\n          //needs to keep current default output format, text content will output to a separate file if '-c' command line argument is set\n          //                Content:pdfPage.getTextContent(),\n          Texts: pageParser.Texts,\n          Fields: pageParser.Fields,\n          Boxsets: pageParser.Boxsets,\n        };\n\n        this.pages.push(page);\n\n        this.emit(\"data\", page);\n\n        if (this.needRawText) {\n          pdfPage.getTextContent().then(\n            (textContent) => {\n              this.rawTextContents.push(textContent);\n              PJS.info(`complete parsing raw text content:${id + 1}`);\n              continueOnNextPage.call(this);\n            },\n            (error) =>\n              this.raiseErrorEvent(`pdfPage.getTextContent error: ${error}`)\n          );\n        } else {\n          continueOnNextPage.call(this);\n        }\n      },\n      (errMsg) => this.raiseErrorEvent(errMsg)\n    );\n  }\n\n  getRawTextContent() {\n    let retVal = \"\";\n    if (!this.needRawText) return retVal;\n\n    this.rawTextContents.forEach((textContent, index) => {\n      let prevText = null;\n      \n      textContent.bidiTexts.forEach((textObj, idx) => {\n        // Check if on same line\n        // Use a tolerance relative to font size for better accuracy\n        // Typical line spacing is 120% of font size, so 10-15% tolerance is reasonable\n        const tolerance = prevText ? (prevText.fontSize || 12) * 0.15 : 2;\n        const sameLine = prevText && Math.abs(textObj.y - prevText.y) <= tolerance;\n        \n        if (sameLine) {\n          // spaceWidth is in unscaled coordinates (no textHScale, matching JSON w property)\n          const { spaceWidth, startX, width, textHScale } = prevText;\n          \n          // Use actual calculated text width (from glyph widths)\n          // width is in unscaled coordinates, but startX is in scaled coordinates\n          // So we must apply textHScale to width before adding to startX\n          // This matches canvas.js: current.x += x * textHScale (line 1267)\n          const prevTextEndX = startX + (width * textHScale);\n          \n          // Calculate gap between end of previous text and start of current text\n          // gap is in SCALED coordinates (both textObj.x and prevTextEndX are scaled)\n          const gap = textObj.x - prevTextEndX;\n          \n          // Scale spaceWidth to match gap's coordinate system\n          const scaledSpaceWidth = spaceWidth * textHScale;\n          \n          // Add spaces if gap is positive and significant (> 30% of scaled space width)\n          // Also check that scaledSpaceWidth is valid to avoid division by zero\n          if (scaledSpaceWidth > 0 && gap > scaledSpaceWidth * 0.3) {\n            const numSpaces = Math.round(gap / scaledSpaceWidth);\n            prevText.str += ' '.repeat(Math.max(1, numSpaces));\n          }\n          \n          // Append current text\n          prevText.str += textObj.str;\n          \n          // Update prevText to track current text for next iteration\n          prevText.startX = textObj.x;\n          prevText.width = textObj.width;\n          prevText.spaceWidth = textObj.spaceWidth;\n          prevText.textHScale = textObj.textHScale;\n        } else {\n          // Different line or first text\n          if (prevText) {\n            retVal += `${prevText.str}\\r\\n`;\n          }\n          \n          // Initialize new text object with font metrics\n          prevText = { \n            str: textObj.str, \n            y: textObj.y, \n            startX: textObj.x,\n            width: textObj.width,\n            spaceWidth: textObj.spaceWidth,\n            textHScale: textObj.textHScale,\n            fontSize: textObj.fontSize  // Keep for tolerance calculation\n          };\n        }\n      });\n      \n      if (prevText) {\n        retVal += prevText.str;\n      }\n      retVal += `\\r\\n----------------Page (${index}) Break----------------\\r\\n`;\n    });\n\n    return retVal;\n  }\n\n  getAllFieldsTypes() {\n    return PDFField.getAllFieldsTypes({ Pages: this.pages || [] });\n  }\n\n  getAllFieldData() {\n    return PDFField.getAllFieldData({ Pages: this.pages || [] });\n  }\n\n  getMergedTextBlocksIfNeeded() {\n    for (let p = 0; p < this.pages.length; p++) {\n      let prevText = null;\n      const page = this.pages[p];\n\n      page.Texts.sort(PDFFont.compareBlockPos);\n      page.Texts = page.Texts.filter((t, j) => {\n        const isDup = j > 0 && PDFFont.areDuplicateBlocks(page.Texts[j - 1], t);\n        if (isDup) {\n          PJS.info(\n            `skipped: dup text block: ${t.R[0].T}`\n          );\n        }\n        return !isDup;\n      });\n\n      for (let i = 0; i < page.Texts.length; i++) {\n        const text = page.Texts[i];\n\n        if (prevText) {\n          if (\n            PDFFont.areAdjacentBlocks(prevText, text) &&\n            PDFFont.haveSameStyle(prevText, text)\n          ) {\n            const preT = prevText.R[0].T;\n            const curT = text.R[0].T;\n\n            prevText.R[0].T += text.R[0].T;\n            prevText.w += text.w;\n            text.merged = true;\n\n            const mergedText = prevText.R[0].T;\n            PJS.info(\n              `merged text block: ${preT} + ${curT} => ${mergedText}`\n            );\n            prevText = null; //yeah, only merge two blocks for now\n          } else {\n            prevText = text;\n          }\n        } else {\n          prevText = text;\n        }\n      }\n\n      page.Texts = page.Texts.filter((t) => !t.merged);\n    }\n\n    return { Pages: this.pages };\n  }\n\n  resetCurrentObject() {\n    if (this.pdfDocument) this.pdfDocument.destroy();\n    this.pdfDocument = null;\n\n    this.pages = [];\n    this.rawTextContents = [];\n  }\n\n  destroy() {\n    this.removeAllListeners();\n\n    if (this.pdfDocument) this.pdfDocument.destroy();\n    this.pdfDocument = null;\n\n    this.pages = null;\n    this.rawTextContents = null;\n  }\n}\n\n// Export typed PJS for backward compatibility\nexport { PJS };\n","import { Transform, Readable } from \"node:stream\";\nimport fs from \"node:fs\";\nimport { Buffer } from \"node: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, { encoding: 'utf8' });\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), 'utf8');\n        callback();\n    }\n}\n","import fs from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { EventEmitter } from \"node:events\";\nimport { Buffer } from \"node:buffer\";\n// eslint-disable-next-line no-unused-vars\nimport { Readable } from \"node:stream\";\n\nimport PDFJS, { PJS } 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// Underscore prefix convention for internal constants\n\tstatic get _PARSER_SIG() {\n\t\treturn _PARSER_SIG;\n\t}\n\n\tstatic #maxBinBufferCount = 10;\n\t/** @type {Record<string, Buffer | null>} */\n\tstatic #binBuffer = {};\n\tstatic #instanceCounter = 0;\n\n\t#password = \"\";\n\t/** @type {import('./src/types/pdfparser.js').PDFParserContext|null} */\n\t#context = null; // service context object, only used in Web Service project; null in command line\n\t/** @type {string|null} */\n\t#pdfFilePath = null; //current PDF file to load and parse, null means loading/parsing not started\n\t/** @type {number|null} */\n\t#pdfFileMTime = null; // last time the current pdf was modified, used to recognize changes and ignore cache\n\t/** @type {object|null} */\n\t#data = null; //if file read success, data is PDF content; if failed, data is \"err\" object\n\t/** @type {import('./lib/pdf.js').default|null} */\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 {import('./src/types/pdfparser.js').PDFParserContext|null} 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\tPDFParser.#instanceCounter++;\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 * @param {object} data - The parsed data\n\t */\n\t#onPDFJSParseDataReady(data) {\n\t\tif (!data) {\n\t\t\tPJS.info(\"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 * @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 * @param {Buffer|null} buffer - The PDF buffer\n\t */\n\t#startParsingPDF(buffer = null) {\n\t\tthis.#data = null;\n\t\t\n\t\tif (!this.#PDFJS) {\n\t\t\tthis.#onPDFJSParserDataError(new Error(\"PDFJS parser not initialized\"));\n\t\t\treturn;\n\t\t}\n\t\t\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 * @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 = PDFParser.#instanceCounter % 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\tPJS.info(`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\tif (this.#pdfFilePath === null || this.#pdfFileMTime === null) {\n\t\t\treturn \"\";\n\t\t}\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 * @returns {Promise<void>} Promise that resolves when PDF is loaded\n\t */\n\tasync loadPDF(pdfFilePath, verbosity) {\n\t\tPJS.verbosity(verbosity || 1); // 1: default to WARNINGS if not specified or invalid\n\t\tPJS.info(`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 && this.#PDFJS) {\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\tPJS.info(`Load OK: ${pdfFilePath}`);\n\t\t\tthis.#startParsingPDF();\n\t\t} catch (err) {\n\t\t\tPJS.error(`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\tPJS.verbosity(verbosity || 1); // 1: default to WARNINGS if not specified or invalid\n\t\tif ((!pdfBuffer?.length) || (!pdfBuffer.buffer)) {\n\t\t\tPJS.error(\"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 {Readable} 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 {import('./src/types/pdfparser.js').FieldType[]} All field types\n\t */\n\tgetAllFieldsTypes() {\n\t\treturn this.#PDFJS?.getAllFieldsTypes() || [];\n\t}\n\n\t/**\n\t * Retrieve all field data.\n\t * @returns {import('./src/types/pdfparser.js').FieldType[]} All field data\n\t */\n\t\tgetAllFieldData() {\n\t\t\treturn this.#PDFJS?.getAllFieldData() || [];\n\t\t}\n\n\t/**\n\t * Retrieve all field types stream.\n\t * @returns {Readable} 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 {Readable} Merged text blocks stream\n\t */\n\tgetMergedTextBlocksStream() {\n\t\treturn ParserStream.createContentStream(this.getMergedTextBlocksIfNeeded());\n\t}\n\n\t/**\n\t * Destroys the current instance of PDFJS and sets a new one\n\t * @param {boolean} needRawText - Whether raw text is needed or not\n\t */\n\tresetPDFJS(needRawText){\n\t\tthis.#PDFJS?.destroy();\n\t\tthis.#PDFJS = new PDFJS(needRawText);\n\t\tPDFParser.#instanceCounter++;\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\tPDFParser.#instanceCounter--;\n\t}\n}\n"],"names":["Element","constructor","nodeName","this","childNodes","attributes","textContent","getAttribute","name","getElementsByTagName","tagName","results","push","child","childMatches","concat","Document","documentElement","SimpleDOMParser","parseFromString","xmlString","doc","replace","trim","parseElement","startTagRegex","attributeRegex","startMatch","match","attributeString","element","attributeMatch","exec","attrName","attrValue","startTagEnd","length","endTagSearch","RegExp","endMatch","slice","search","remainingContent","startsWith","childStartMatch","childTagName","childEndTagSearch","childEndIndex","childEndTagLength","childXmlString","childElement","nextTagIndex","indexOf","PJS","log","console","bind","info","warn","error","msg","Error","verbosity","LogManager","addLogger","notify","ERRORS","WARNINGS","INFOS","setupFieldAttributes","annotation","item","aa","get","nVal","forEach","key","value","jsFuncName","Object","prototype","hasOwnProperty","call","split","vParts","funcName","funcParam","TName","AFSpecialFormat","Number","MV","maskValue","processFieldAttribute","PDFAnno","processAnnotation","fieldType","fieldFlags","po","val","alternativeText","alternativeID","toLowerCase","checked","fieldValue","setupRadioButton","mk","FL","ap","sp","setupPushButton","i","setupCheckBox","setupDropDown","sig","Sig","Name","time","M","location","Location","reason","Reason","contactInfo","ContactInfo","setupSignature","PDFImage$1","_src","_onload","onload","src","btoa","Buffer","from","toString","kColors","kFontFaces","kFontStyles","_pixelPerPoint","PDFUnit","toFixedFloat","fNum","parseFloat","toFixed","colorCount","toPixelX","formX","Math","round","dpi","toPixelY","formY","pointToPixel","point","getColorByIndex","clrId","toFormPoint","viewportX","viewportY","toFormX","toFormY","findColorIndex","color","dateToIso8601","date","tz","idx","PDFLine","x1","y1","x2","y2","lineWidth","dashed","setStartPoint","oneLine","x","y","processLine","targetData","xDelta","abs","yDelta","minDelta","w","l","colorObj","clr","oc","dsh","HLines","VLines","PDFFill","width","height","processFill","oneFill","h","Fills","_boldSubNames","_stdFonts","DISTANCE_DELTA","PDFFont","initTypeName","typeName","fontObj","fallbackName","initSubType","subType","bold","nameArray","Array","isArray","subName","initSymbol","isSymbol","isSymbolicFont","filter","oneName","initSpaceWidth","spaceWidth","spaceId","toFontChar","widths","fontSize","faceIdx","italic","fontStyleId","compareBlockPos","t1","t2","haveSameStyle","retVal","R","S","TS","RA","getSpaceThreshHold","getFontSize","sw","areAdjacentBlocks","isInSameLine","isDistanceSmallerThanASpace","textBlock","sId","areDuplicateBlocks","T","setFaceIndex","isSerifFont","isMonospace","getFontStyleIndex","fsa","index","list","processSymbolicFont","str","charCodeAt","type","processType3Font","charProcMapping","keys","code","charCode","glyphName","glyphToUnicode","bullet","checkbox","checkmark","check","circle","square","triangle","triangledown","triangleleft","triangleright","star","diamond","heart","club","spade","filledcircle","filledsquare","filledtriangle","filledtriangledown","filledtriangleright","filledtriangleleft","arrowleft","arrowright","arrowup","arrowdown","cross","glyphNameLower","unicodeChar","letterMatch","letter","toUpperCase","numberMatch","num","parseInt","String","fromCharCode","hex","substring","test","result","textRotationAngle","matrix2D","r1","atan","r2","PI","processText","p","maxWidth","originalStr","text","textRun","flashEncode","rAngle","assign","oneText","A","Texts","clean","mr","sin","ms","cos","mc","sqrt","dec2hex","j","matrixMultiply","m1","m2","sum","z","copyState","o1","o2","fillStyle","lineCap","lineJoin","miterLimit","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","strokeStyle","globalAlpha","arcScaleX_","arcScaleY_","lineScale_","dashArray","processStyle","styleString","alpha","start","end","guts","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","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","rect","aWidth","aHeight","closePath","strokeRect","oldPath","stroke","fillRect","fill","createLinearGradient","aX0","aY0","aX1","aY1","gradient","createRadialGradient","aR0","aR1","drawImage","image","var_args","getImageData","data","Uint8Array","aFill","save","o","restore","pop","translate","rotate","aRot","c","s","scale","transform","m11","m12","m21","m22","dx","dy","setTransform","clip","arcTo","createPattern","createScratchCanvas","PDFJS","disableWorker","globalScope","isWorker","window","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","Boolean","process","env","PDF2JSON_DISABLE_LOGS","arguments","logArguments","apply","join","TODO","what","assert","cond","combineUrl","baseUrl","url","charAt","pathLength","lastIndexOf","prefixLength","isValidUrl","allowRelative","colon","assertWellFormed","loggers","logger","message","ii","shadow","obj","prop","defineProperty","enumerable","configurable","writable","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","PasswordException","UnknownErrorException","details","InvalidPDFException","MissingPDFException","NotImplementedException","MissingDataException","begin","XRefParseException","bytesToString","bytes","n","stringToBytes","IDENTITY_MATRIX","Util","makeCssRgb","rgb","makeCssCmyk","cmyk","ColorSpace","singletons","getRgb","applyTransform","applyInverseTransform","d","getAxialAlignedBoundingBox","r","p3","p4","inverseTransform","apply3dTransform","v","singularValueDecompose2dScale","transpose","b","first","second","sx","sy","normalizeRect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","sign","concatenateToArray","arr1","arr2","prependToArray","unshift","extendObj","obj1","obj2","getInheritableProperty","dict","has","inherit","sub","base","create","loadScript","callback","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","convertToViewportRectangle","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","_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","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","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","params","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","subtype","annotationFlags","getAndSetRectangle","borderStyle","borderWidth","borderArray","appearance","appearanceState","appearances","getDefaultAppearance","hasAppearance","setRectangle","getData","hasHtml","getHtmlElement","getEmptyContainer","style","isViewable","loadResources","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","fullName","parent","textAlignment","display","content","textAlign","verticalAlign","direction","fontDirection","fontWeight","black","fontStyle","fontName","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","fields","linearization","Linearization","err","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","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","id","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","encoding","differences","baseEncoding","currentCode","entryValue","entryType","baseEncodingMap","Encodings","glyphStream","xobjs","patterns","isEOF","opSpec","patternName","typeNum","old","arrLength","shadingRes","dictName","extGState","saveState","textState","TextState","chunk","charSpace","wordSpace","textRise","textHScale","leading","translateTextMatrix","initialiseTextObj","transformCTM","fontCharsToUnicode","fakeSpaces","gsState","bidiText","bidi","vertical","renderParams","calcRenderParams","renderMatrix","vScale","angle","dir","fontMatrix","textWidth","glyph","defaultWidth","extractDataStructures","baseDict","properties","toUnicode","readToUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","readCidToGidMap","overridableEncoding","hasEncoding","WinAnsiEncoding","StandardEncoding","FontFlags","Symbolic","file","MacRomanEncoding","SymbolSetEncoding","baseName","diffEncoding","cmapObj","cmap","CMapFactory","w1","w2","cidToGidStream","glyphsData","glyphID","extractWidths","descriptor","defaultVMetrics","glyphsWidths","glyphsVMetrics","vmetrics","vmetric","firstChar","baseFontName","metrics","getBaseFontMetrics","firstWidth","glyphWidth","FixedPitch","fontNameWoStyle","serifFonts","monospace","lookupName","stdFontMap","Metrics","glyphWidths","df","maxCharIndex","Serif","symbolsFonts","Nonsymbolic","lastChar","Font","baseFont","fontNameStr","baseFontStr","fontFile","length1","length2","wideChars","fixedPitch","ascent","descent","xHeight","capHeight","italicAngle","coded","cidEncoding","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","V","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","GlyphsUnicode","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","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","field","fontCharCode","cidToUnicode","isIdentityMap","cidToUnicodeMap","unicodeToCIDMap","unicodeToCID","CIDToUnicodeMaps","overwrite","fillLength","_shadowWidth","possibleSpaceReplacements","charToGlyph","disabled","mapPrivateUseChars","commonSymbols","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","D","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","arrowdownleft","arrowdownright","arrowdownwhite","arrowheaddownmod","arrowheadleftmod","arrowheadrightmod","arrowheadupmod","arrowhorizex","arrowleftdbl","arrowleftdblstroke","arrowleftoverright","arrowleftwhite","arrowrightdblstroke","arrowrightheavy","arrowrightoverleft","arrowrightwhite","arrowtableft","arrowtabright","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","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","checyrillic","chedescenderabkhasiancyrillic","chedescendercyrillic","chedieresiscyrillic","cheharmenian","chekhakassiancyrillic","cheverticalstrokecyrillic","chi","chieuchacirclekorean","chieuchaparenkorean","chieuchcirclekorean","chieuchkorean","chieuchparenkorean","chochangthai","chochanthai","chochingthai","chochoethai","chook","cieucacirclekorean","cieucaparenkorean","cieuccirclekorean","cieuckorean","cieucparenkorean","cieucuparenkorean","circlecopyrt","circlemultiply","circleot","circleplus","circlepostalmark","circlewithlefthalfblack","circlewithrighthalfblack","circumflex","circumflexbelowcmb","circumflexcmb","clickalveolar","clickdental","clicklateral","clickretroflex","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","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","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","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","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","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","page","rotatePromise","refPromise","viewPromise","pageInfo","pdfModel","updatePassword","pageNum","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","readCodingpasses","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","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","viewport","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","type3Text","canvasWidth","curFontSize","tx","firstGlyph","restoreNeeded","vx","vy","scaledX","scaledY","charWidth","remeasure","characterScaleX","stGlyphs","spacingLength","shownCanvasWidth","VERTICAL_TEXT_ROTATION","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","endsWith","DOMParser","metaDocument","rdf","firstChild","nextSibling","hasChildNodes","desc","iLength","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","_PARSER_SIG","pkInfo.name","pkInfo.version","pkInfo.homepage","kFBANotOverridable","PDFField","static","isWidgetSupported","isFormElement","Fields","Boxsets","getFieldPosition","fieldRect","kMinHeight","getFieldBaseData","attributeMask","anData","Id","EN","TI","AM","TU","TM","addAlpha","TypeInfo","addCheckBox","box","boxes","addRadioButton","rdGroup","boxset","addLinkButton","form","addSelect","PL","ele","addSignature","processField","tabIndex","getAllFieldsTypes","isFieldReadOnly","getFieldBase","calc","Pages","boxsets","getAllFieldData","getFieldValue","PTIXmlParser","xmlData","ptiPageArray","parseXml","filePath","fs","readFile","xmlFields","xPos","yPos","rectLeft","rectTop","rectRight","rectBottom","getFields","pdfjsInstance","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","resetCurrentObject","parameters","tryLoadFieldInfoXML","pdfFilePath","_sufInfo","fieldInfoXMLPath","existsSync","loadMetaData","loadPages","parseMetaData","Transcoder","Meta","pagesCount","pagesPromise","promisedPages","pageParser","continueOnNextPage","Width","Height","getRawTextContent","prevText","textObj","tolerance","startX","prevTextEndX","gap","scaledSpaceWidth","numSpaces","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","instanceCounter","onPDFJSParseDataReady","onPDFJSParserDataError","parserError","startParsingPDF","binBuffer","binBufferKey","processBinaryCache","allKeys","maxBinBufferCount","createParserStream","loadPDF","statSync","mtimeMs","pdfBuffer","pdfBufferParse","getRawTextContentStream","getAllFieldsTypesStream","getMergedTextBlocksStream","resetPDFJS"],"mappings":"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MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,MAC1B,CAAEgR,MAAS,KAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAShR,IAAO,OAC3B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,MAAQhR,IAAO,OAC1B,CAAEgR,MAAS,KAAQhR,IAAO,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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,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,KACV,IAAU,MACV,IAAU,KACV,IAAU,MACV,IAAU,KACV,IAAU,MACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,OACV,IAAU,IACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,KACV,IAAU,MACV,IAAU,MACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,MACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,MACV,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,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,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,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,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,MACXC,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,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,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,MACXC,UAAW,MACXC,UAAW,MACXC,UAAW,MACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,MACXC,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,IACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,UAAW,K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,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,IAAO,IACPC,GAAM,IACNC,GAAM,IACNC,GAAM,IACNC,GAAM,IACNC,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,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,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,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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,O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AG,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,I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GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IACL,CAAC,GAAI,IAAK,CAAC,GAAI,IACf,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,EAAG,IAAK,CAAC,EAAG,IAAK,CAA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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,MAA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,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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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,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,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,MAAO,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OACxD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACrE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,M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AO,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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AO,MAAO,CAAC,MAAO,OAC7D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAC9D,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MACvD,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAC9D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAC/D,CAAC,MAAO,MAAO,OAAQ,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAC9D,CAAC,MAAO,OAAQ,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,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,CA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O,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,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,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,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,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,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,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O,MACjE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,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,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,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,CAAC29B,EAAG,EAAG39B,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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EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAChE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAChE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAChE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAChE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,MACnE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACpE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG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ACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC29B,EAAG,EAAG39B,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,MACxD,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACrD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG3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AAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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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O,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,M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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,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACnE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,MA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AAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,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,MAAO,MAC/D,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAChE,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,M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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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAA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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OACpD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO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AO,OAAQ,CAAC,MAAO,OAAQ,EAAG,CAAC,MAAO,OAC3D,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,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,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,KAAM,OACnE,CAAC,KAAM,OAAQ,CAAC,KAAM,OAAQ,CAAC,K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AAC,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,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AO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,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,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,CAAC,MAAO,OAAQ,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,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,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,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,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAAQ,MACnE,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACrE,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,CAAC,MAAO,OAAQ,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MACxD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,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,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACnE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACzD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACzD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACpE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAChE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OACnE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAClE,MAAO,CAAC,MAAO,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAC5D,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,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,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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACrD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACjE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MACjE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,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,MAAO,CAAC,MAAO,OAAQ,MACrD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC/D,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OACxD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MACrE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,KAAO,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,KAAO,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,CAAC29B,EAAG,EAAG39B,EAAG,OACpE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,KAAO,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAChE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACpE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAChE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACpE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAChE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAC7D,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAChE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAC/D,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAChE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACzD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAChE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC,MAAO,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAChE,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAChE,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAChE,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACrD,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC/D,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,KAAO,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,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC,MAAO,OAChE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC,MAAO,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACrE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OACxD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OACnE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACrD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OACnE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACzD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACpE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OACnE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACzD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACzD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACtD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAC7D,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAChE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACrE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,MACxD,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OACnE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,MAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,MACxD,CAAC29B,EAAG,EAAG39B,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,CAAC,MAAO,OAAQ,MACjE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,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,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAChE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MACrE,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,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MACrE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAClE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAChE,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,MACxD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,CAAC,MAAO,OACtD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAC5D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OACrD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAChE,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MACpE,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,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,MACxD,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAChE,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MACnE,MAAO,CAACC,EAAG,IAAK,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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC/D,MAAO,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,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,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,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,CAAC09B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAC5D,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,EAAG,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACnE,MAAO,MAAO,MAAO,MAAO,CAAC29B,EAAG,EAAG39B,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,CAAC29B,EAAG,EAAG39B,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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"}