{"version":3,"file":"pdf.image_decoders.js","mappings":"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","sources":["webpack://pdfjs-dist/image_decoders/pdf.image_decoders/webpack/universalModuleDefinition","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/util.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/compatibility.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/is_node.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/es/array/at.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es.array.at.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/function-call.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/function-bind-native.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/to-property-key.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/is-callable.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/is-symbol.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/native-symbol.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/get-method.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/a-callable.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/try-to-string.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/define-global-property.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/has-own-property.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/define-built-in.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/make-built-in.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/function-name.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/native-weak-map.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/math-trunc.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/length-of-array-like.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/entry-unbind.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/es/typed-array/at.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es.typed-array.at.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/array-buffer-native.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jbig2.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/core_utils.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/primitives.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/base_stream.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/arithmetic_decoder.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/ccitt.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jpg.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jpx.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/webpack/bootstrap","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/pdf.image_decoders.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/image_decoders/pdf.image_decoders\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/image_decoders/pdf.image_decoders\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/image_decoders/pdf.image_decoders\"] = factory();\n})(globalThis, () => {\nreturn ","/* 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\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n *  - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n *    `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n *  - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n *    annotations are rendered onto the canvas (i.e. by being included in the\n *    operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n *    and their `annotationMode`-option.\n *  - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n *    `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n  ANY: 0x01,\n  DISPLAY: 0x02,\n  PRINT: 0x04,\n  ANNOTATIONS_FORMS: 0x10,\n  ANNOTATIONS_STORAGE: 0x20,\n  ANNOTATIONS_DISABLE: 0x40,\n  OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n  DISABLE: -1,\n  NONE: 0,\n  FREETEXT: 3,\n  INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n  FREETEXT_SIZE: 1,\n  FREETEXT_COLOR: 2,\n  FREETEXT_OPACITY: 3,\n  INK_COLOR: 11,\n  INK_THICKNESS: 12,\n  INK_OPACITY: 13,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n  MARKED: \"Marked\",\n  REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n  MARKED: \"Marked\",\n  UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n  ACCEPTED: \"Accepted\",\n  REJECTED: \"Rejected\",\n  CANCELLED: \"Cancelled\",\n  COMPLETED: \"Completed\",\n  NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n  E: \"Mouse Enter\",\n  X: \"Mouse Exit\",\n  D: \"Mouse Down\",\n  U: \"Mouse Up\",\n  Fo: \"Focus\",\n  Bl: \"Blur\",\n  PO: \"PageOpen\",\n  PC: \"PageClose\",\n  PV: \"PageVisible\",\n  PI: \"PageInvisible\",\n  K: \"Keystroke\",\n  F: \"Format\",\n  V: \"Validate\",\n  C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n  O: \"PageOpen\",\n  C: \"PageClose\",\n};\n\nconst StreamType = {\n  UNKNOWN: \"UNKNOWN\",\n  FLATE: \"FLATE\",\n  LZW: \"LZW\",\n  DCT: \"DCT\",\n  JPX: \"JPX\",\n  JBIG: \"JBIG\",\n  A85: \"A85\",\n  AHX: \"AHX\",\n  CCF: \"CCF\",\n  RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n  UNKNOWN: \"UNKNOWN\",\n  TYPE1: \"TYPE1\",\n  TYPE1STANDARD: \"TYPE1STANDARD\",\n  TYPE1C: \"TYPE1C\",\n  CIDFONTTYPE0: \"CIDFONTTYPE0\",\n  CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n  TRUETYPE: \"TRUETYPE\",\n  CIDFONTTYPE2: \"CIDFONTTYPE2\",\n  TYPE3: \"TYPE3\",\n  OPENTYPE: \"OPENTYPE\",\n  TYPE0: \"TYPE0\",\n  MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n  // Intentionally start from 1 so it is easy to spot bad operators that will be\n  // 0's.\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  /** @deprecated unused */\n  beginAnnotations: 78,\n  /** @deprecated unused */\n  endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  /** @deprecated unused */\n  paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n  /** @deprecated unused */\n  unknown: \"unknown\",\n  forms: \"forms\",\n  javaScript: \"javaScript\",\n  signatures: \"signatures\",\n  smask: \"smask\",\n  shadingPattern: \"shadingPattern\",\n  /** @deprecated unused */\n  font: \"font\",\n  errorTilingPattern: \"errorTilingPattern\",\n  errorExtGState: \"errorExtGState\",\n  errorXObject: \"errorXObject\",\n  errorFontLoadType3: \"errorFontLoadType3\",\n  errorFontState: \"errorFontState\",\n  errorFontMissing: \"errorFontMissing\",\n  errorFontTranslate: \"errorFontTranslate\",\n  errorColorSpace: \"errorColorSpace\",\n  errorOperatorList: \"errorOperatorList\",\n  errorFontToUnicode: \"errorFontToUnicode\",\n  errorFontLoadNative: \"errorFontLoadNative\",\n  errorFontBuildPath: \"errorFontBuildPath\",\n  errorFontGetPath: \"errorFontGetPath\",\n  errorMarkedContent: \"errorMarkedContent\",\n  errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n  switch (url.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n  if (!url) {\n    return null;\n  }\n  try {\n    if (options && typeof url === \"string\") {\n      // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n      if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n        const dots = url.match(/\\./g);\n        // Avoid accidentally matching a *relative* URL pointing to a file named\n        // e.g. \"www.pdf\" or similar.\n        if (dots && dots.length >= 2) {\n          url = `http://${url}`;\n        }\n      }\n\n      // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n      // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n      if (options.tryConvertEncoding) {\n        try {\n          url = stringToUTF8String(url);\n        } catch (ex) {}\n      }\n    }\n\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {\n    /* `new URL()` will throw on incorrect data. */\n  }\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(\n      prop in obj,\n      `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n    );\n  }\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: true,\n    configurable: true,\n    writable: false,\n  });\n  return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n  // eslint-disable-next-line no-shadow\n  function BaseException(message, name) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n    this.message = message;\n    this.name = name;\n  }\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n\n  return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n}\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n}\n\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\n}\n\nclass MissingPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"MissingPDFException\");\n  }\n}\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg, \"UnexpectedResponseException\");\n    this.status = status;\n  }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\n}\n\nfunction bytesToString(bytes) {\n  if (\n    typeof bytes !== \"object\" ||\n    bytes === null ||\n    bytes.length === undefined\n  ) {\n    unreachable(\"Invalid argument for bytesToString\");\n  }\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n  const strBuf = [];\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  if (typeof str !== \"string\") {\n    unreachable(\"Invalid argument for stringToBytes\");\n  }\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n  return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array<any>|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n  if (arr.byteLength !== undefined) {\n    return arr.byteLength;\n  }\n  unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array<Array<any>|Uint8Array|string>} arr - the array of the arrays\n *   (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n  const length = arr.length;\n  // Shortcut: if first and only item is Uint8Array, return it.\n  if (length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n  let resultLength = 0;\n  for (let i = 0; i < length; i++) {\n    resultLength += arrayByteLength(arr[i]);\n  }\n  let pos = 0;\n  const data = new Uint8Array(resultLength);\n  for (let i = 0; i < length; i++) {\n    let item = arr[i];\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === \"string\") {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n    const itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n  return data;\n}\n\nfunction string32(value) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(\n      typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n      `string32: Unexpected input \"${value}\".`\n    );\n  }\n  return String.fromCharCode(\n    (value >> 24) & 0xff,\n    (value >> 16) & 0xff,\n    (value >> 8) & 0xff,\n    value & 0xff\n  );\n}\n\nfunction objectSize(obj) {\n  return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n  const obj = Object.create(null);\n  for (const [key, value] of map) {\n    obj[key] = value;\n  }\n  return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n  try {\n    new Function(\"\"); // eslint-disable-line no-new, no-new-func\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nclass FeatureTest {\n  static get isLittleEndian() {\n    return shadow(this, \"isLittleEndian\", isLittleEndian());\n  }\n\n  static get isEvalSupported() {\n    return shadow(this, \"isEvalSupported\", isEvalSupported());\n  }\n\n  static get isOffscreenCanvasSupported() {\n    return shadow(\n      this,\n      \"isOffscreenCanvasSupported\",\n      typeof OffscreenCanvas !== \"undefined\"\n    );\n  }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n  n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n  static makeHexColor(r, g, b) {\n    return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n  }\n\n  // Apply a scaling matrix to some min/max values.\n  // If a scaling factor is negative then min and max must be\n  // swaped.\n  static scaleMinMax(transform, minMax) {\n    let temp;\n    if (transform[0]) {\n      if (transform[0] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n      minMax[0] *= transform[0];\n      minMax[1] *= transform[0];\n\n      if (transform[3] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[2] *= transform[3];\n      minMax[3] *= transform[3];\n    } else {\n      temp = minMax[0];\n      minMax[0] = minMax[2];\n      minMax[2] = temp;\n      temp = minMax[1];\n      minMax[1] = minMax[3];\n      minMax[3] = temp;\n\n      if (transform[1] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[2] *= transform[1];\n      minMax[3] *= transform[1];\n\n      if (transform[2] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n      minMax[0] *= transform[2];\n      minMax[1] *= transform[2];\n    }\n    minMax[0] += transform[4];\n    minMax[1] += transform[4];\n    minMax[2] += transform[5];\n    minMax[3] += transform[5];\n  }\n\n  // Concatenates two transformation matrices together and returns the result.\n  static transform(m1, m2) {\n    return [\n      m1[0] * m2[0] + m1[2] * m2[1],\n      m1[1] * m2[0] + m1[3] * m2[1],\n      m1[0] * m2[2] + m1[2] * m2[3],\n      m1[1] * m2[2] + m1[3] * m2[3],\n      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n      m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n    ];\n  }\n\n  // For 2d affine transforms\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  // Applies the transform to the rectangle and finds the minimum axially\n  // aligned bounding box.\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = Util.applyTransform(r, m);\n    const p2 = Util.applyTransform(r.slice(2, 4), m);\n    const p3 = Util.applyTransform([r[0], r[3]], m);\n    const p4 = Util.applyTransform([r[2], r[1]], m);\n    return [\n      Math.min(p1[0], p2[0], p3[0], p4[0]),\n      Math.min(p1[1], p2[1], p3[1], p4[1]),\n      Math.max(p1[0], p2[0], p3[0], p4[0]),\n      Math.max(p1[1], p2[1], p3[1], p4[1]),\n    ];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [\n      m[3] / d,\n      -m[1] / d,\n      -m[2] / d,\n      m[0] / d,\n      (m[2] * m[5] - m[4] * m[3]) / d,\n      (m[4] * m[1] - m[5] * m[0]) / d,\n    ];\n  }\n\n  // Apply a generic 3d matrix M on a 3-vector v:\n  //   | a b c |   | X |\n  //   | d e f | x | Y |\n  //   | g h i |   | Z |\n  // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n  // with v as [X,Y,Z]\n  static apply3dTransform(m, v) {\n    return [\n      m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n      m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n      m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n    ];\n  }\n\n  // This calculation uses Singular Value Decomposition.\n  // The SVD can be represented with formula A = USV. We are interested in the\n  // matrix S here because it represents the scale values.\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n\n    // Multiply matrix m with its transpose.\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n    // Solve the second degree polynomial to get roots.\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n\n    // Scale values are the square roots of the eigenvalues.\n    return [Math.sqrt(sx), Math.sqrt(sy)];\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  // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n  // intersection of rect1 and rect2. If no intersection, returns 'null'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(\n      Math.min(rect1[0], rect1[2]),\n      Math.min(rect2[0], rect2[2])\n    );\n    const xHigh = Math.min(\n      Math.max(rect1[0], rect1[2]),\n      Math.max(rect2[0], rect2[2])\n    );\n    if (xLow > xHigh) {\n      return null;\n    }\n    const yLow = Math.max(\n      Math.min(rect1[1], rect1[3]),\n      Math.min(rect2[1], rect2[3])\n    );\n    const yHigh = Math.min(\n      Math.max(rect1[1], rect1[3]),\n      Math.max(rect2[1], rect2[3])\n    );\n    if (yLow > yHigh) {\n      return null;\n    }\n\n    return [xLow, yLow, xHigh, yHigh];\n  }\n\n  // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n    const tvalues = [],\n      bounds = [[], []];\n    let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n    for (let i = 0; i < 2; ++i) {\n      if (i === 0) {\n        b = 6 * x0 - 12 * x1 + 6 * x2;\n        a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n        c = 3 * x1 - 3 * x0;\n      } else {\n        b = 6 * y0 - 12 * y1 + 6 * y2;\n        a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n        c = 3 * y1 - 3 * y0;\n      }\n      if (Math.abs(a) < 1e-12) {\n        if (Math.abs(b) < 1e-12) {\n          continue;\n        }\n        t = -c / b;\n        if (0 < t && t < 1) {\n          tvalues.push(t);\n        }\n        continue;\n      }\n      b2ac = b * b - 4 * c * a;\n      sqrtb2ac = Math.sqrt(b2ac);\n      if (b2ac < 0) {\n        continue;\n      }\n      t1 = (-b + sqrtb2ac) / (2 * a);\n      if (0 < t1 && t1 < 1) {\n        tvalues.push(t1);\n      }\n      t2 = (-b - sqrtb2ac) / (2 * a);\n      if (0 < t2 && t2 < 1) {\n        tvalues.push(t2);\n      }\n    }\n\n    let j = tvalues.length,\n      mt;\n    const jlen = j;\n    while (j--) {\n      t = tvalues[j];\n      mt = 1 - t;\n      bounds[0][j] =\n        mt * mt * mt * x0 +\n        3 * mt * mt * t * x1 +\n        3 * mt * t * t * x2 +\n        t * t * t * x3;\n      bounds[1][j] =\n        mt * mt * mt * y0 +\n        3 * mt * mt * t * y1 +\n        3 * mt * t * t * y2 +\n        t * t * t * y3;\n    }\n\n    bounds[0][jlen] = x0;\n    bounds[1][jlen] = y0;\n    bounds[0][jlen + 1] = x3;\n    bounds[1][jlen + 1] = y3;\n    bounds[0].length = bounds[1].length = jlen + 2;\n\n    return [\n      Math.min(...bounds[0]),\n      Math.min(...bounds[1]),\n      Math.max(...bounds[0]),\n      Math.max(...bounds[1]),\n    ];\n  }\n}\n\nconst PDFStringTranslateTable = [\n  0, 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  0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  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, 0,\n  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, 0,\n  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, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n  0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n  0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n  0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n  if (str[0] >= \"\\xEF\") {\n    let encoding;\n    if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n      encoding = \"utf-16be\";\n    } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n      encoding = \"utf-16le\";\n    } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n      encoding = \"utf-8\";\n    }\n\n    if (encoding) {\n      try {\n        const decoder = new TextDecoder(encoding, { fatal: true });\n        const buffer = stringToBytes(str);\n        return decoder.decode(buffer);\n      } catch (ex) {\n        warn(`stringToPDFString: \"${ex}\".`);\n      }\n    }\n  }\n  // ISO Latin 1\n  const strBuf = [];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const code = PDFStringTranslateTable[str.charCodeAt(i)];\n    strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n  // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n  // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n  // in order to write it in a PDF file.\n  return str.replace(/([()\\\\\\n\\r])/g, match => {\n    if (match === \"\\n\") {\n      return \"\\\\n\";\n    } else if (match === \"\\r\") {\n      return \"\\\\r\";\n    }\n    return `\\\\${match}`;\n  });\n}\n\nfunction isAscii(str) {\n  return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n  const buf = [\"\\xFE\\xFF\"];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(\n      String.fromCharCode((char >> 8) & 0xff),\n      String.fromCharCode(char & 0xff)\n    );\n  }\n  return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n  for (let i = 0, ii = arr1.length; i < ii; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n  const buffer = [\n    date.getUTCFullYear().toString(),\n    (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n    date.getUTCDate().toString().padStart(2, \"0\"),\n    date.getUTCHours().toString().padStart(2, \"0\"),\n    date.getUTCMinutes().toString().padStart(2, \"0\"),\n    date.getUTCSeconds().toString().padStart(2, \"0\"),\n  ];\n\n  return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise<any>} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n  const capability = Object.create(null);\n  let isSettled = false;\n\n  Object.defineProperty(capability, \"settled\", {\n    get() {\n      return isSettled;\n    },\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\nexport {\n  AbortException,\n  AnnotationActionEventType,\n  AnnotationBorderStyleType,\n  AnnotationEditorParamsType,\n  AnnotationEditorPrefix,\n  AnnotationEditorType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationMarkedState,\n  AnnotationMode,\n  AnnotationReplyType,\n  AnnotationReviewState,\n  AnnotationStateModelType,\n  AnnotationType,\n  arrayByteLength,\n  arraysToBytes,\n  assert,\n  BaseException,\n  bytesToString,\n  CMapCompressionType,\n  createPromiseCapability,\n  createValidAbsoluteUrl,\n  DocumentActionEventType,\n  escapeString,\n  FeatureTest,\n  FONT_IDENTITY_MATRIX,\n  FontType,\n  FormatError,\n  getModificationDate,\n  getVerbosityLevel,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isArrayEqual,\n  isAscii,\n  LINE_DESCENT_FACTOR,\n  LINE_FACTOR,\n  MissingPDFException,\n  objectFromMap,\n  objectSize,\n  OPS,\n  PageActionEventType,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  RenderingIntentFlag,\n  setVerbosityLevel,\n  shadow,\n  StreamType,\n  string32,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF16BEString,\n  stringToUTF8String,\n  TextRenderingMode,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  UNSUPPORTED_FEATURES,\n  utf8StringToString,\n  Util,\n  VerbosityLevel,\n  warn,\n};\n","/* Copyright 2017 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 __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n  (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n  !globalThis._pdfjsCompatibilityChecked\n) {\n  globalThis._pdfjsCompatibilityChecked = true;\n\n  // Support: Node.js<16.0.0\n  (function checkNodeBtoa() {\n    if (globalThis.btoa || !isNodeJS) {\n      return;\n    }\n    globalThis.btoa = function (chars) {\n      // eslint-disable-next-line no-undef\n      return Buffer.from(chars, \"binary\").toString(\"base64\");\n    };\n  })();\n\n  // Support: Node.js<16.0.0\n  (function checkNodeAtob() {\n    if (globalThis.atob || !isNodeJS) {\n      return;\n    }\n    globalThis.atob = function (input) {\n      // eslint-disable-next-line no-undef\n      return Buffer.from(input, \"base64\").toString(\"binary\");\n    };\n  })();\n\n  // Support: Node.js\n  (function checkDOMMatrix() {\n    if (globalThis.DOMMatrix || !isNodeJS) {\n      return;\n    }\n    globalThis.DOMMatrix = __non_webpack_require__(\n      \"dommatrix/dist/dommatrix.js\"\n    );\n  })();\n\n  // Support: Node.js\n  (function checkReadableStream() {\n    if (globalThis.ReadableStream || !isNodeJS) {\n      return;\n    }\n    globalThis.ReadableStream = __non_webpack_require__(\n      \"web-streams-polyfill/dist/ponyfill.js\"\n    ).ReadableStream;\n  })();\n\n  // Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0\n  (function checkArrayAt() {\n    if (Array.prototype.at) {\n      return;\n    }\n    require(\"core-js/es/array/at.js\");\n  })();\n\n  // Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0\n  (function checkTypedArrayAt() {\n    if (Uint8Array.prototype.at) {\n      return;\n    }\n    require(\"core-js/es/typed-array/at.js\");\n  })();\n\n  // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n  (function checkStructuredClone() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders are synchronous, hence `structuredClone`\n      // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    if (globalThis.structuredClone) {\n      return;\n    }\n    require(\"core-js/web/structured-clone.js\");\n  })();\n}\n","/* Copyright 2018 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 process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n  typeof process === \"object\" &&\n  process + \"\" === \"[object process]\" &&\n  !process.versions.nw &&\n  !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../../modules/es.array.at');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'at');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'Array', proto: true }, {\n  at: function at(index) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : O[k];\n  }\n});\n\naddToUnscopables('at');\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es-x/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n  return fn && uncurryThis(fn);\n} : function (fn) {\n  return fn && function () {\n    return call.apply(fn, arguments);\n  };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n  return typeof argument == 'function';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol();\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return func == null ? undefined : aCallable(func);\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n    var description = 'Symbol.' + name;\n    if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n      WellKnownSymbolsStore[name] = Symbol[name];\n    } else if (USE_SYMBOL_AS_UID && symbolFor) {\n      WellKnownSymbolsStore[name] = symbolFor(description);\n    } else {\n      WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n    }\n  } return WellKnownSymbolsStore[name];\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.24.1',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n","module.exports = false;\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(global, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw $TypeError($String(argument) + ' is not an object');\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (String(name).slice(0, 7) === 'Symbol(') {\n    name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = uncurryThis(store.get);\n  var wmhas = uncurryThis(store.has);\n  var wmset = uncurryThis(store.set);\n  set = function (it, metadata) {\n    if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    wmset(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  defineProperty(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n  return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n","require('../../modules/es.typed-array.at');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n  return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n  var proto = getPrototypeOf(it);\n  if (!isObject(proto)) return;\n  var state = getInternalState(proto);\n  return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n  throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n      delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n      // old WebKit bug - some methods are non-configurable\n      try {\n        TypedArrayConstructor.prototype[KEY] = property;\n      } catch (error2) { /* empty */ }\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n        delete TypedArrayConstructor[KEY];\n      } catch (error) { /* empty */ }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      defineBuiltIn(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n  else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQUIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  getTypedArrayConstructor: getTypedArrayConstructor,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n","// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n    setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'object' || isCallable(argument)) return argument;\n  throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\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\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n  constructor(msg) {\n    super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n  }\n}\n\n// Utility data structures\nclass ContextCache {\n  getContexts(id) {\n    if (id in this) {\n      return this[id];\n    }\n    return (this[id] = new Int8Array(1 << 16));\n  }\n}\n\nclass DecodingContext {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  get decoder() {\n    const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n    return shadow(this, \"decoder\", decoder);\n  }\n\n  get contextCache() {\n    const 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\nfunction decodeInteger(contextCache, procedure, decoder) {\n  const contexts = contextCache.getContexts(procedure);\n  let prev = 1;\n\n  function readBits(length) {\n    let v = 0;\n    for (let i = 0; i < length; i++) {\n      const bit = decoder.readBit(contexts, prev);\n      prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n      v = (v << 1) | bit;\n    }\n    return v >>> 0;\n  }\n\n  const sign = readBits(1);\n  // prettier-ignore\n  /* eslint-disable no-nested-ternary */\n  const value = readBits(1) ?\n                  (readBits(1) ?\n                    (readBits(1) ?\n                      (readBits(1) ?\n                        (readBits(1) ?\n                          (readBits(32) + 4436) :\n                        readBits(12) + 340) :\n                      readBits(8) + 84) :\n                    readBits(6) + 20) :\n                  readBits(4) + 4) :\n                readBits(2);\n  /* eslint-enable no-nested-ternary */\n  if (sign === 0) {\n    return value;\n  } else if (value > 0) {\n    return -value;\n  }\n  return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n  const contexts = contextCache.getContexts(\"IAID\");\n\n  let prev = 1;\n  for (let i = 0; i < codeLength; i++) {\n    const bit = decoder.readBit(contexts, prev);\n    prev = (prev << 1) | bit;\n  }\n  if (codeLength < 31) {\n    return prev & ((1 << codeLength) - 1);\n  }\n  return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n  \"SymbolDictionary\",\n  null,\n  null,\n  null,\n  \"IntermediateTextRegion\",\n  null,\n  \"ImmediateTextRegion\",\n  \"ImmediateLosslessTextRegion\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"PatternDictionary\",\n  null,\n  null,\n  null,\n  \"IntermediateHalftoneRegion\",\n  null,\n  \"ImmediateHalftoneRegion\",\n  \"ImmediateLosslessHalftoneRegion\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"IntermediateGenericRegion\",\n  null,\n  \"ImmediateGenericRegion\",\n  \"ImmediateLosslessGenericRegion\",\n  \"IntermediateGenericRefinementRegion\",\n  null,\n  \"ImmediateGenericRefinementRegion\",\n  \"ImmediateLosslessGenericRefinementRegion\",\n  null,\n  null,\n  null,\n  null,\n  \"PageInformation\",\n  \"EndOfPage\",\n  \"EndOfStripe\",\n  \"EndOfFile\",\n  \"Profiles\",\n  \"Tables\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"Extension\",\n];\n\nconst CodingTemplates = [\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: 2, y: -1 },\n    { x: -4, y: 0 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: 2, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: 2, y: -1 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -3, y: -1 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: -4, y: 0 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n];\n\nconst RefinementTemplates = [\n  {\n    coding: [\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n    ],\n    reference: [\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n      { x: 0, y: 0 },\n      { x: 1, y: 0 },\n      { x: -1, y: 1 },\n      { x: 0, y: 1 },\n      { x: 1, y: 1 },\n    ],\n  },\n  {\n    coding: [\n      { x: -1, y: -1 },\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n    ],\n    reference: [\n      { x: 0, y: -1 },\n      { x: -1, y: 0 },\n      { x: 0, y: 0 },\n      { x: 1, y: 0 },\n      { x: 0, y: 1 },\n      { x: 1, y: 1 },\n    ],\n  },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n  0x9b25, // 10011 0110010 0101\n  0x0795, // 0011 110010 101\n  0x00e5, // 001 11001 01\n  0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n  0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n  0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n  const bitmap = [];\n  let contextLabel, i, j, pixel, row, row1, row2;\n\n  // ...ooooo....\n  // ..ooooooo... Context template for current pixel (X)\n  // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n  const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n  for (i = 0; i < height; i++) {\n    row = bitmap[i] = new Uint8Array(width);\n    row1 = i < 1 ? row : bitmap[i - 1];\n    row2 = i < 2 ? row : bitmap[i - 2];\n\n    // At the beginning of each row:\n    // Fill contextLabel with pixels that are above/right of (X)\n    contextLabel =\n      (row2[0] << 13) |\n      (row2[1] << 12) |\n      (row2[2] << 11) |\n      (row1[0] << 7) |\n      (row1[1] << 6) |\n      (row1[2] << 5) |\n      (row1[3] << 4);\n\n    for (j = 0; j < width; j++) {\n      row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n      // At each pixel: Clear contextLabel pixels that are shifted\n      // out of the context, then add new ones.\n      contextLabel =\n        ((contextLabel & OLD_PIXEL_MASK) << 1) |\n        (j + 3 < width ? row2[j + 3] << 11 : 0) |\n        (j + 4 < width ? row1[j + 4] << 4 : 0) |\n        pixel;\n    }\n  }\n\n  return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n  mmr,\n  width,\n  height,\n  templateIndex,\n  prediction,\n  skip,\n  at,\n  decodingContext\n) {\n  if (mmr) {\n    const input = new Reader(\n      decodingContext.data,\n      decodingContext.start,\n      decodingContext.end\n    );\n    return decodeMMRBitmap(input, width, height, false);\n  }\n\n  // Use optimized version for the most common case\n  if (\n    templateIndex === 0 &&\n    !skip &&\n    !prediction &&\n    at.length === 4 &&\n    at[0].x === 3 &&\n    at[0].y === -1 &&\n    at[1].x === -3 &&\n    at[1].y === -1 &&\n    at[2].x === 2 &&\n    at[2].y === -2 &&\n    at[3].x === -2 &&\n    at[3].y === -2\n  ) {\n    return decodeBitmapTemplate0(width, height, decodingContext);\n  }\n\n  const useskip = !!skip;\n  const template = CodingTemplates[templateIndex].concat(at);\n\n  // Sorting is non-standard, and it is not required. But sorting increases\n  // the number of template bits that can be reused from the previous\n  // contextLabel in the main loop.\n  template.sort(function (a, b) {\n    return a.y - b.y || a.x - b.x;\n  });\n\n  const templateLength = template.length;\n  const templateX = new Int8Array(templateLength);\n  const templateY = new Int8Array(templateLength);\n  const changingTemplateEntries = [];\n  let reuseMask = 0,\n    minX = 0,\n    maxX = 0,\n    minY = 0;\n  let c, k;\n\n  for (k = 0; k < templateLength; k++) {\n    templateX[k] = template[k].x;\n    templateY[k] = template[k].y;\n    minX = Math.min(minX, template[k].x);\n    maxX = Math.max(maxX, template[k].x);\n    minY = Math.min(minY, template[k].y);\n    // Check if the template pixel appears in two consecutive context labels,\n    // so it can be reused. Otherwise, we add it to the list of changing\n    // template entries.\n    if (\n      k < templateLength - 1 &&\n      template[k].y === template[k + 1].y &&\n      template[k].x === template[k + 1].x - 1\n    ) {\n      reuseMask |= 1 << (templateLength - 1 - k);\n    } else {\n      changingTemplateEntries.push(k);\n    }\n  }\n  const changingEntriesLength = changingTemplateEntries.length;\n\n  const changingTemplateX = new Int8Array(changingEntriesLength);\n  const changingTemplateY = new Int8Array(changingEntriesLength);\n  const changingTemplateBit = new Uint16Array(changingEntriesLength);\n  for (c = 0; c < changingEntriesLength; c++) {\n    k = changingTemplateEntries[c];\n    changingTemplateX[c] = template[k].x;\n    changingTemplateY[c] = template[k].y;\n    changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n  }\n\n  // Get the safe bounding box edges from the width, height, minX, maxX, minY\n  const sbb_left = -minX;\n  const sbb_top = -minY;\n  const sbb_right = width - maxX;\n\n  const pseudoPixelContext = ReusedContexts[templateIndex];\n  let row = new Uint8Array(width);\n  const bitmap = [];\n\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n  let ltp = 0,\n    j,\n    i0,\n    j0,\n    contextLabel = 0,\n    bit,\n    shift;\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n      if (ltp) {\n        bitmap.push(row); // duplicate previous row\n        continue;\n      }\n    }\n    row = new Uint8Array(row);\n    bitmap.push(row);\n    for (j = 0; j < width; j++) {\n      if (useskip && skip[i][j]) {\n        row[j] = 0;\n        continue;\n      }\n      // Are we in the middle of a scanline, so we can reuse contextLabel\n      // bits?\n      if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n        // If yes, we can just shift the bits that are reusable and only\n        // fetch the remaining ones.\n        contextLabel = (contextLabel << 1) & reuseMask;\n        for (k = 0; k < changingEntriesLength; k++) {\n          i0 = i + changingTemplateY[k];\n          j0 = j + changingTemplateX[k];\n          bit = bitmap[i0][j0];\n          if (bit) {\n            bit = changingTemplateBit[k];\n            contextLabel |= bit;\n          }\n        }\n      } else {\n        // compute the contextLabel from scratch\n        contextLabel = 0;\n        shift = templateLength - 1;\n        for (k = 0; k < templateLength; k++, shift--) {\n          j0 = j + templateX[k];\n          if (j0 >= 0 && j0 < width) {\n            i0 = i + templateY[k];\n            if (i0 >= 0) {\n              bit = bitmap[i0][j0];\n              if (bit) {\n                contextLabel |= bit << shift;\n              }\n            }\n          }\n        }\n      }\n      const 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\nfunction decodeRefinement(\n  width,\n  height,\n  templateIndex,\n  referenceBitmap,\n  offsetX,\n  offsetY,\n  prediction,\n  at,\n  decodingContext\n) {\n  let codingTemplate = RefinementTemplates[templateIndex].coding;\n  if (templateIndex === 0) {\n    codingTemplate = codingTemplate.concat([at[0]]);\n  }\n  const codingTemplateLength = codingTemplate.length;\n  const codingTemplateX = new Int32Array(codingTemplateLength);\n  const codingTemplateY = new Int32Array(codingTemplateLength);\n  let k;\n  for (k = 0; k < codingTemplateLength; k++) {\n    codingTemplateX[k] = codingTemplate[k].x;\n    codingTemplateY[k] = codingTemplate[k].y;\n  }\n\n  let referenceTemplate = RefinementTemplates[templateIndex].reference;\n  if (templateIndex === 0) {\n    referenceTemplate = referenceTemplate.concat([at[1]]);\n  }\n  const referenceTemplateLength = referenceTemplate.length;\n  const referenceTemplateX = new Int32Array(referenceTemplateLength);\n  const referenceTemplateY = new Int32Array(referenceTemplateLength);\n  for (k = 0; k < referenceTemplateLength; k++) {\n    referenceTemplateX[k] = referenceTemplate[k].x;\n    referenceTemplateY[k] = referenceTemplate[k].y;\n  }\n  const referenceWidth = referenceBitmap[0].length;\n  const referenceHeight = referenceBitmap.length;\n\n  const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n  const bitmap = [];\n\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n  let ltp = 0;\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n      if (ltp) {\n        throw new Jbig2Error(\"prediction is not supported\");\n      }\n    }\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    for (let j = 0; j < width; j++) {\n      let i0, j0;\n      let contextLabel = 0;\n      for (k = 0; k < codingTemplateLength; k++) {\n        i0 = i + codingTemplateY[k];\n        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      }\n      for (k = 0; k < referenceTemplateLength; k++) {\n        i0 = i + referenceTemplateY[k] - offsetY;\n        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      }\n      const 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\nfunction decodeSymbolDictionary(\n  huffman,\n  refinement,\n  symbols,\n  numberOfNewSymbols,\n  numberOfExportedSymbols,\n  huffmanTables,\n  templateIndex,\n  at,\n  refinementTemplateIndex,\n  refinementAt,\n  decodingContext,\n  huffmanInput\n) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n  }\n\n  const newSymbols = [];\n  let currentHeight = 0;\n  let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n  let tableB1, symbolWidths;\n  if (huffman) {\n    tableB1 = getStandardTable(1); // standard table B.1\n    symbolWidths = [];\n    symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n  }\n\n  while (newSymbols.length < numberOfNewSymbols) {\n    const deltaHeight = huffman\n      ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n    currentHeight += deltaHeight;\n    let currentWidth = 0,\n      totalWidth = 0;\n    const firstSymbol = huffman ? symbolWidths.length : 0;\n    while (true) {\n      const deltaWidth = huffman\n        ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n        : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n      if (deltaWidth === null) {\n        break; // OOB\n      }\n      currentWidth += deltaWidth;\n      totalWidth += currentWidth;\n      let bitmap;\n      if (refinement) {\n        // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n        const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n        if (numberOfInstances > 1) {\n          bitmap = decodeTextRegion(\n            huffman,\n            refinement,\n            currentWidth,\n            currentHeight,\n            0,\n            numberOfInstances,\n            1, // strip size\n            symbols.concat(newSymbols),\n            symbolCodeLength,\n            0, // transposed\n            0, // ds offset\n            1, // top left 7.4.3.1.1\n            0, // OR operator\n            huffmanTables,\n            refinementTemplateIndex,\n            refinementAt,\n            decodingContext,\n            0,\n            huffmanInput\n          );\n        } else {\n          const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n          const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n          const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n          const symbol =\n            symbolId < symbols.length\n              ? symbols[symbolId]\n              : newSymbols[symbolId - symbols.length];\n          bitmap = decodeRefinement(\n            currentWidth,\n            currentHeight,\n            refinementTemplateIndex,\n            symbol,\n            rdx,\n            rdy,\n            false,\n            refinementAt,\n            decodingContext\n          );\n        }\n        newSymbols.push(bitmap);\n      } else if (huffman) {\n        // Store only symbol width and decode a collective bitmap when the\n        // height class is done.\n        symbolWidths.push(currentWidth);\n      } else {\n        // 6.5.8.1 Direct-coded symbol bitmap\n        bitmap = decodeBitmap(\n          false,\n          currentWidth,\n          currentHeight,\n          templateIndex,\n          false,\n          null,\n          at,\n          decodingContext\n        );\n        newSymbols.push(bitmap);\n      }\n    }\n    if (huffman && !refinement) {\n      // 6.5.9 Height class collective bitmap\n      const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n      huffmanInput.byteAlign();\n      let collectiveBitmap;\n      if (bitmapSize === 0) {\n        // Uncompressed collective bitmap\n        collectiveBitmap = readUncompressedBitmap(\n          huffmanInput,\n          totalWidth,\n          currentHeight\n        );\n      } else {\n        // MMR collective bitmap\n        const originalEnd = huffmanInput.end;\n        const bitmapEnd = huffmanInput.position + bitmapSize;\n        huffmanInput.end = bitmapEnd;\n        collectiveBitmap = decodeMMRBitmap(\n          huffmanInput,\n          totalWidth,\n          currentHeight,\n          false\n        );\n        huffmanInput.end = originalEnd;\n        huffmanInput.position = bitmapEnd;\n      }\n      const numberOfSymbolsDecoded = symbolWidths.length;\n      if (firstSymbol === numberOfSymbolsDecoded - 1) {\n        // collectiveBitmap is a single symbol.\n        newSymbols.push(collectiveBitmap);\n      } else {\n        // Divide collectiveBitmap into symbols.\n        let i,\n          y,\n          xMin = 0,\n          xMax,\n          bitmapWidth,\n          symbolBitmap;\n        for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n          bitmapWidth = symbolWidths[i];\n          xMax = xMin + bitmapWidth;\n          symbolBitmap = [];\n          for (y = 0; y < currentHeight; y++) {\n            symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n          }\n          newSymbols.push(symbolBitmap);\n          xMin = xMax;\n        }\n      }\n    }\n  }\n\n  // 6.5.10 Exported symbols\n  const exportedSymbols = [],\n    flags = [];\n  let currentFlag = false,\n    i,\n    ii;\n  const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n  while (flags.length < totalSymbolsLength) {\n    let runLength = huffman\n      ? tableB1.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IAEX\", decoder);\n    while (runLength--) {\n      flags.push(currentFlag);\n    }\n    currentFlag = !currentFlag;\n  }\n  for (i = 0, ii = symbols.length; i < ii; i++) {\n    if (flags[i]) {\n      exportedSymbols.push(symbols[i]);\n    }\n  }\n  for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n    if (flags[i]) {\n      exportedSymbols.push(newSymbols[j]);\n    }\n  }\n  return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n  huffman,\n  refinement,\n  width,\n  height,\n  defaultPixelValue,\n  numberOfSymbolInstances,\n  stripSize,\n  inputSymbols,\n  symbolCodeLength,\n  transposed,\n  dsOffset,\n  referenceCorner,\n  combinationOperator,\n  huffmanTables,\n  refinementTemplateIndex,\n  refinementAt,\n  decodingContext,\n  logStripSize,\n  huffmanInput\n) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  // Prepare bitmap\n  const bitmap = [];\n  let i, row;\n  for (i = 0; i < height; i++) {\n    row = new Uint8Array(width);\n    if (defaultPixelValue) {\n      for (let j = 0; j < width; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n    bitmap.push(row);\n  }\n\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n\n  let stripT = huffman\n    ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n    : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n  let firstS = 0;\n  i = 0;\n  while (i < numberOfSymbolInstances) {\n    const deltaT = huffman\n      ? huffmanTables.tableDeltaT.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n    stripT += deltaT;\n\n    const deltaFirstS = huffman\n      ? huffmanTables.tableFirstS.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n    firstS += deltaFirstS;\n    let currentS = firstS;\n    do {\n      let currentT = 0; // 6.4.9\n      if (stripSize > 1) {\n        currentT = huffman\n          ? huffmanInput.readBits(logStripSize)\n          : decodeInteger(contextCache, \"IAIT\", decoder);\n      }\n      const t = stripSize * stripT + currentT;\n      const symbolId = huffman\n        ? huffmanTables.symbolIDTable.decode(huffmanInput)\n        : decodeIAID(contextCache, decoder, symbolCodeLength);\n      const applyRefinement =\n        refinement &&\n        (huffman\n          ? huffmanInput.readBit()\n          : decodeInteger(contextCache, \"IARI\", decoder));\n      let symbolBitmap = inputSymbols[symbolId];\n      let symbolWidth = symbolBitmap[0].length;\n      let symbolHeight = symbolBitmap.length;\n      if (applyRefinement) {\n        const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n        const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n        const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n        const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n        symbolWidth += rdw;\n        symbolHeight += rdh;\n        symbolBitmap = decodeRefinement(\n          symbolWidth,\n          symbolHeight,\n          refinementTemplateIndex,\n          symbolBitmap,\n          (rdw >> 1) + rdx,\n          (rdh >> 1) + rdy,\n          false,\n          refinementAt,\n          decodingContext\n        );\n      }\n      const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n      const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n      let s2, t2, symbolRow;\n      if (transposed) {\n        // Place Symbol Bitmap from T1,S1\n        for (s2 = 0; s2 < symbolHeight; s2++) {\n          row = bitmap[offsetS + s2];\n          if (!row) {\n            continue;\n          }\n          symbolRow = symbolBitmap[s2];\n          // To ignore Parts of Symbol bitmap which goes\n          // outside bitmap region\n          const maxWidth = Math.min(width - offsetT, symbolWidth);\n          switch (combinationOperator) {\n            case 0: // OR\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] |= symbolRow[t2];\n              }\n              break;\n            case 2: // XOR\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] ^= symbolRow[t2];\n              }\n              break;\n            default:\n              throw new Jbig2Error(\n                `operator ${combinationOperator} is not supported`\n              );\n          }\n        }\n        currentS += symbolHeight - 1;\n      } else {\n        for (t2 = 0; t2 < symbolHeight; t2++) {\n          row = bitmap[offsetT + t2];\n          if (!row) {\n            continue;\n          }\n          symbolRow = symbolBitmap[t2];\n          switch (combinationOperator) {\n            case 0: // OR\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] |= symbolRow[s2];\n              }\n              break;\n            case 2: // XOR\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] ^= symbolRow[s2];\n              }\n              break;\n            default:\n              throw new Jbig2Error(\n                `operator ${combinationOperator} is not supported`\n              );\n          }\n        }\n        currentS += symbolWidth - 1;\n      }\n      i++;\n      const deltaS = huffman\n        ? huffmanTables.tableDeltaS.decode(huffmanInput)\n        : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n      if (deltaS === null) {\n        break; // OOB\n      }\n      currentS += deltaS + dsOffset;\n    } while (true);\n  }\n  return bitmap;\n}\n\nfunction decodePatternDictionary(\n  mmr,\n  patternWidth,\n  patternHeight,\n  maxPatternIndex,\n  template,\n  decodingContext\n) {\n  const at = [];\n  if (!mmr) {\n    at.push({\n      x: -patternWidth,\n      y: 0,\n    });\n    if (template === 0) {\n      at.push(\n        {\n          x: -3,\n          y: -1,\n        },\n        {\n          x: 2,\n          y: -2,\n        },\n        {\n          x: -2,\n          y: -2,\n        }\n      );\n    }\n  }\n  const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n  const collectiveBitmap = decodeBitmap(\n    mmr,\n    collectiveWidth,\n    patternHeight,\n    template,\n    false,\n    null,\n    at,\n    decodingContext\n  );\n  // Divide collective bitmap into patterns.\n  const patterns = [];\n  for (let i = 0; i <= maxPatternIndex; i++) {\n    const patternBitmap = [];\n    const xMin = patternWidth * i;\n    const xMax = xMin + patternWidth;\n    for (let y = 0; y < patternHeight; y++) {\n      patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n    }\n    patterns.push(patternBitmap);\n  }\n  return patterns;\n}\n\nfunction decodeHalftoneRegion(\n  mmr,\n  patterns,\n  template,\n  regionWidth,\n  regionHeight,\n  defaultPixelValue,\n  enableSkip,\n  combinationOperator,\n  gridWidth,\n  gridHeight,\n  gridOffsetX,\n  gridOffsetY,\n  gridVectorX,\n  gridVectorY,\n  decodingContext\n) {\n  const skip = null;\n  if (enableSkip) {\n    throw new Jbig2Error(\"skip is not supported\");\n  }\n  if (combinationOperator !== 0) {\n    throw new Jbig2Error(\n      `operator \"${combinationOperator}\" is not supported in halftone region`\n    );\n  }\n\n  // Prepare bitmap.\n  const regionBitmap = [];\n  let i, j, row;\n  for (i = 0; i < regionHeight; i++) {\n    row = new Uint8Array(regionWidth);\n    if (defaultPixelValue) {\n      for (j = 0; j < regionWidth; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n    regionBitmap.push(row);\n  }\n\n  const numberOfPatterns = patterns.length;\n  const pattern0 = patterns[0];\n  const patternWidth = pattern0[0].length,\n    patternHeight = pattern0.length;\n  const bitsPerValue = log2(numberOfPatterns);\n  const at = [];\n  if (!mmr) {\n    at.push({\n      x: template <= 1 ? 3 : 2,\n      y: -1,\n    });\n    if (template === 0) {\n      at.push(\n        {\n          x: -3,\n          y: -1,\n        },\n        {\n          x: 2,\n          y: -2,\n        },\n        {\n          x: -2,\n          y: -2,\n        }\n      );\n    }\n  }\n  // Annex C. Gray-scale Image Decoding Procedure.\n  const grayScaleBitPlanes = [];\n  let mmrInput, bitmap;\n  if (mmr) {\n    // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n    // the end of each bitmap, so EOFBs must be decoded.\n    mmrInput = new Reader(\n      decodingContext.data,\n      decodingContext.start,\n      decodingContext.end\n    );\n  }\n  for (i = bitsPerValue - 1; i >= 0; i--) {\n    if (mmr) {\n      bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n    } else {\n      bitmap = decodeBitmap(\n        false,\n        gridWidth,\n        gridHeight,\n        template,\n        false,\n        skip,\n        at,\n        decodingContext\n      );\n    }\n    grayScaleBitPlanes[i] = bitmap;\n  }\n  // 6.6.5.2 Rendering the patterns.\n  let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n  for (mg = 0; mg < gridHeight; mg++) {\n    for (ng = 0; ng < gridWidth; ng++) {\n      bit = 0;\n      patternIndex = 0;\n      for (j = bitsPerValue - 1; j >= 0; j--) {\n        bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n        patternIndex |= bit << j;\n      }\n      patternBitmap = patterns[patternIndex];\n      x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n      y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n      // Draw patternBitmap at (x, y).\n      if (\n        x >= 0 &&\n        x + patternWidth <= regionWidth &&\n        y >= 0 &&\n        y + patternHeight <= regionHeight\n      ) {\n        for (i = 0; i < patternHeight; i++) {\n          regionRow = regionBitmap[y + i];\n          patternRow = patternBitmap[i];\n          for (j = 0; j < patternWidth; j++) {\n            regionRow[x + j] |= patternRow[j];\n          }\n        }\n      } else {\n        let regionX, regionY;\n        for (i = 0; i < patternHeight; i++) {\n          regionY = y + i;\n          if (regionY < 0 || regionY >= regionHeight) {\n            continue;\n          }\n          regionRow = regionBitmap[regionY];\n          patternRow = patternBitmap[i];\n          for (j = 0; j < patternWidth; j++) {\n            regionX = x + j;\n            if (regionX >= 0 && regionX < regionWidth) {\n              regionRow[regionX] |= patternRow[j];\n            }\n          }\n        }\n      }\n    }\n  }\n  return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n  const segmentHeader = {};\n  segmentHeader.number = readUint32(data, start);\n  const flags = data[start + 4];\n  const segmentType = flags & 0x3f;\n  if (!SegmentTypes[segmentType]) {\n    throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n  }\n  segmentHeader.type = segmentType;\n  segmentHeader.typeName = SegmentTypes[segmentType];\n  segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n  const pageAssociationFieldSize = !!(flags & 0x40);\n  const referredFlags = data[start + 5];\n  let referredToCount = (referredFlags >> 5) & 7;\n  const retainBits = [referredFlags & 31];\n  let position = start + 6;\n  if (referredFlags === 7) {\n    referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n    position += 3;\n    let 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    throw new Jbig2Error(\"invalid referred-to flags\");\n  }\n\n  segmentHeader.retainBits = retainBits;\n\n  let referredToSegmentNumberSize = 4;\n  if (segmentHeader.number <= 256) {\n    referredToSegmentNumberSize = 1;\n  } else if (segmentHeader.number <= 65536) {\n    referredToSegmentNumberSize = 2;\n  }\n  const referredTo = [];\n  let i, ii;\n  for (i = 0; i < referredToCount; i++) {\n    let number;\n    if (referredToSegmentNumberSize === 1) {\n      number = data[position];\n    } else if (referredToSegmentNumberSize === 2) {\n      number = readUint16(data, position);\n    } else {\n      number = readUint32(data, position);\n    }\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\n  if (segmentHeader.length === 0xffffffff) {\n    // 7.2.7 Segment data length, unknown segment length\n    if (segmentType === 38) {\n      // ImmediateGenericRegion\n      const genericRegionInfo = readRegionSegmentInformation(data, position);\n      const genericRegionSegmentFlags =\n        data[position + RegionSegmentInformationFieldLength];\n      const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n      // searching for the segment end\n      const searchPatternLength = 6;\n      const 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 (i = position, ii = data.length; i < ii; i++) {\n        let 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        throw new Jbig2Error(\"segment end was not found\");\n      }\n    } else {\n      throw new Jbig2Error(\"invalid unknown segment length\");\n    }\n  }\n  segmentHeader.headerEnd = position;\n  return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n  const segments = [];\n  let position = start;\n  while (position < end) {\n    const segmentHeader = readSegmentHeader(data, position);\n    position = segmentHeader.headerEnd;\n    const segment = {\n      header: segmentHeader,\n      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  }\n  if (header.randomAccess) {\n    for (let 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\nfunction 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}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n  const header = segment.header;\n\n  const data = segment.data,\n    end = segment.end;\n  let position = segment.start;\n  let args, at, i, atLength;\n  switch (header.type) {\n    case 0: // SymbolDictionary\n      // 7.4.2 Symbol dictionary segment syntax\n      const dictionary = {};\n      const 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        atLength = dictionary.template === 0 ? 4 : 1;\n        at = [];\n        for (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        at = [];\n        for (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 = [\n        dictionary,\n        header.number,\n        header.referredTo,\n        data,\n        position,\n        end,\n      ];\n      break;\n    case 6: // ImmediateTextRegion\n    case 7: // ImmediateLosslessTextRegion\n      const textRegion = {};\n      textRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const textRegionSegmentFlags = readUint16(data, position);\n      position += 2;\n      textRegion.huffman = !!(textRegionSegmentFlags & 1);\n      textRegion.refinement = !!(textRegionSegmentFlags & 2);\n      textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n      textRegion.stripSize = 1 << textRegion.logStripSize;\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        const 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 & 0x4000\n        );\n      }\n      if (textRegion.refinement && !textRegion.refinementTemplate) {\n        at = [];\n        for (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      args = [textRegion, header.referredTo, data, position, end];\n      break;\n    case 16: // PatternDictionary\n      // 7.4.4. Pattern dictionary segment syntax\n      const patternDictionary = {};\n      const patternDictionaryFlags = data[position++];\n      patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n      patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n      patternDictionary.patternWidth = data[position++];\n      patternDictionary.patternHeight = data[position++];\n      patternDictionary.maxPatternIndex = readUint32(data, position);\n      position += 4;\n      args = [patternDictionary, header.number, data, position, end];\n      break;\n    case 22: // ImmediateHalftoneRegion\n    case 23: // ImmediateLosslessHalftoneRegion\n      // 7.4.5 Halftone region segment syntax\n      const halftoneRegion = {};\n      halftoneRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const halftoneRegionFlags = data[position++];\n      halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n      halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n      halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n      halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n      halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n      halftoneRegion.gridWidth = readUint32(data, position);\n      position += 4;\n      halftoneRegion.gridHeight = readUint32(data, position);\n      position += 4;\n      halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridVectorX = readUint16(data, position);\n      position += 2;\n      halftoneRegion.gridVectorY = readUint16(data, position);\n      position += 2;\n      args = [halftoneRegion, header.referredTo, data, position, end];\n      break;\n    case 38: // ImmediateGenericRegion\n    case 39: // ImmediateLosslessGenericRegion\n      const genericRegion = {};\n      genericRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const genericRegionSegmentFlags = data[position++];\n      genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n      genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n      genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n      if (!genericRegion.mmr) {\n        atLength = genericRegion.template === 0 ? 4 : 1;\n        at = [];\n        for (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      const 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      }\n      const pageSegmentFlags = data[position + 16];\n      readUint16(data, position + 17); // pageStripingInformation\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 53: // Tables\n      args = [header.number, data, position, end];\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      throw new Jbig2Error(\n        `segment type ${header.typeName}(${header.type}) is not implemented`\n      );\n  }\n  const callbackName = \"on\" + header.typeName;\n  if (callbackName in visitor) {\n    // eslint-disable-next-line prefer-spread\n    visitor[callbackName].apply(visitor, args);\n  }\n}\n\nfunction processSegments(segments, visitor) {\n  for (let i = 0, ii = segments.length; i < ii; i++) {\n    processSegment(segments[i], visitor);\n  }\n}\n\nfunction parseJbig2Chunks(chunks) {\n  const visitor = new SimpleSegmentVisitor();\n  for (let i = 0, ii = chunks.length; i < ii; i++) {\n    const chunk = chunks[i];\n    const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n    processSegments(segments, visitor);\n  }\n  return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n  if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n    throw new Error(\"Not implemented: parseJbig2\");\n  }\n  const end = data.length;\n  let position = 0;\n\n  if (\n    data[position] !== 0x97 ||\n    data[position + 1] !== 0x4a ||\n    data[position + 2] !== 0x42 ||\n    data[position + 3] !== 0x32 ||\n    data[position + 4] !== 0x0d ||\n    data[position + 5] !== 0x0a ||\n    data[position + 6] !== 0x1a ||\n    data[position + 7] !== 0x0a\n  ) {\n    throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n  }\n\n  const header = Object.create(null);\n  position += 8;\n  const flags = data[position++];\n  header.randomAccess = !(flags & 1);\n  if (!(flags & 2)) {\n    header.numberOfPages = readUint32(data, position);\n    position += 4;\n  }\n\n  const segments = readSegments(header, data, position, end);\n  const visitor = new SimpleSegmentVisitor();\n  processSegments(segments, visitor);\n\n  const { width, height } = visitor.currentPageInfo;\n  const bitPacked = visitor.buffer;\n  const imgData = new Uint8ClampedArray(width * height);\n  let q = 0,\n    k = 0;\n  for (let i = 0; i < height; i++) {\n    let mask = 0,\n      buffer;\n    for (let j = 0; j < width; j++) {\n      if (!mask) {\n        mask = 128;\n        buffer = bitPacked[k++];\n      }\n      imgData[q++] = buffer & mask ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n\n  return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n  onPageInformation(info) {\n    this.currentPageInfo = info;\n    const rowSize = (info.width + 7) >> 3;\n    const buffer = new Uint8ClampedArray(rowSize * info.height);\n    // The contents of ArrayBuffers are initialized to 0.\n    // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n    if (info.defaultPixelValue) {\n      buffer.fill(0xff);\n    }\n    this.buffer = buffer;\n  }\n\n  drawBitmap(regionInfo, bitmap) {\n    const pageInfo = this.currentPageInfo;\n    const width = regionInfo.width,\n      height = regionInfo.height;\n    const rowSize = (pageInfo.width + 7) >> 3;\n    const combinationOperator = pageInfo.combinationOperatorOverride\n      ? regionInfo.combinationOperator\n      : pageInfo.combinationOperator;\n    const buffer = this.buffer;\n    const mask0 = 128 >> (regionInfo.x & 7);\n    let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n    let i, j, mask, offset;\n    switch (combinationOperator) {\n      case 0: // OR\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] |= mask;\n            }\n            mask >>= 1;\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n          offset0 += rowSize;\n        }\n        break;\n      case 2: // XOR\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] ^= mask;\n            }\n            mask >>= 1;\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n          offset0 += rowSize;\n        }\n        break;\n      default:\n        throw new Jbig2Error(\n          `operator ${combinationOperator} is not supported`\n        );\n    }\n  }\n\n  onImmediateGenericRegion(region, data, start, end) {\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeBitmap(\n      region.mmr,\n      regionInfo.width,\n      regionInfo.height,\n      region.template,\n      region.prediction,\n      null,\n      region.at,\n      decodingContext\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessGenericRegion() {\n    this.onImmediateGenericRegion(...arguments);\n  }\n\n  onSymbolDictionary(\n    dictionary,\n    currentSegment,\n    referredSegments,\n    data,\n    start,\n    end\n  ) {\n    let huffmanTables, huffmanInput;\n    if (dictionary.huffman) {\n      huffmanTables = getSymbolDictionaryHuffmanTables(\n        dictionary,\n        referredSegments,\n        this.customTables\n      );\n      huffmanInput = new Reader(data, start, end);\n    }\n\n    // Combines exported symbols from all referred segments\n    let symbols = this.symbols;\n    if (!symbols) {\n      this.symbols = symbols = {};\n    }\n\n    const inputSymbols = [];\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n      // referredSymbols is undefined when we have a reference to a Tables\n      // segment instead of a SymbolDictionary.\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    symbols[currentSegment] = decodeSymbolDictionary(\n      dictionary.huffman,\n      dictionary.refinement,\n      inputSymbols,\n      dictionary.numberOfNewSymbols,\n      dictionary.numberOfExportedSymbols,\n      huffmanTables,\n      dictionary.template,\n      dictionary.at,\n      dictionary.refinementTemplate,\n      dictionary.refinementAt,\n      decodingContext,\n      huffmanInput\n    );\n  }\n\n  onImmediateTextRegion(region, referredSegments, data, start, end) {\n    const regionInfo = region.info;\n    let huffmanTables, huffmanInput;\n\n    // Combines exported symbols from all referred segments\n    const symbols = this.symbols;\n    const inputSymbols = [];\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n      // referredSymbols is undefined when we have a reference to a Tables\n      // segment instead of a SymbolDictionary.\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n    const symbolCodeLength = log2(inputSymbols.length);\n    if (region.huffman) {\n      huffmanInput = new Reader(data, start, end);\n      huffmanTables = getTextRegionHuffmanTables(\n        region,\n        referredSegments,\n        this.customTables,\n        inputSymbols.length,\n        huffmanInput\n      );\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeTextRegion(\n      region.huffman,\n      region.refinement,\n      regionInfo.width,\n      regionInfo.height,\n      region.defaultPixelValue,\n      region.numberOfSymbolInstances,\n      region.stripSize,\n      inputSymbols,\n      symbolCodeLength,\n      region.transposed,\n      region.dsOffset,\n      region.referenceCorner,\n      region.combinationOperator,\n      huffmanTables,\n      region.refinementTemplate,\n      region.refinementAt,\n      decodingContext,\n      region.logStripSize,\n      huffmanInput\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessTextRegion() {\n    this.onImmediateTextRegion(...arguments);\n  }\n\n  onPatternDictionary(dictionary, currentSegment, data, start, end) {\n    let patterns = this.patterns;\n    if (!patterns) {\n      this.patterns = patterns = {};\n    }\n    const decodingContext = new DecodingContext(data, start, end);\n    patterns[currentSegment] = decodePatternDictionary(\n      dictionary.mmr,\n      dictionary.patternWidth,\n      dictionary.patternHeight,\n      dictionary.maxPatternIndex,\n      dictionary.template,\n      decodingContext\n    );\n  }\n\n  onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n    // HalftoneRegion refers to exactly one PatternDictionary.\n    const patterns = this.patterns[referredSegments[0]];\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeHalftoneRegion(\n      region.mmr,\n      patterns,\n      region.template,\n      regionInfo.width,\n      regionInfo.height,\n      region.defaultPixelValue,\n      region.enableSkip,\n      region.combinationOperator,\n      region.gridWidth,\n      region.gridHeight,\n      region.gridOffsetX,\n      region.gridOffsetY,\n      region.gridVectorX,\n      region.gridVectorY,\n      decodingContext\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessHalftoneRegion() {\n    this.onImmediateHalftoneRegion(...arguments);\n  }\n\n  onTables(currentSegment, data, start, end) {\n    let customTables = this.customTables;\n    if (!customTables) {\n      this.customTables = customTables = {};\n    }\n    customTables[currentSegment] = decodeTablesSegment(data, start, end);\n  }\n}\n\nclass HuffmanLine {\n  constructor(lineData) {\n    if (lineData.length === 2) {\n      // OOB line.\n      this.isOOB = true;\n      this.rangeLow = 0;\n      this.prefixLength = lineData[0];\n      this.rangeLength = 0;\n      this.prefixCode = lineData[1];\n      this.isLowerRange = false;\n    } else {\n      // Normal, upper range or lower range line.\n      // Upper range lines are processed like normal lines.\n      this.isOOB = false;\n      this.rangeLow = lineData[0];\n      this.prefixLength = lineData[1];\n      this.rangeLength = lineData[2];\n      this.prefixCode = lineData[3];\n      this.isLowerRange = lineData[4] === \"lower\";\n    }\n  }\n}\n\nclass HuffmanTreeNode {\n  constructor(line) {\n    this.children = [];\n    if (line) {\n      // Leaf node\n      this.isLeaf = true;\n      this.rangeLength = line.rangeLength;\n      this.rangeLow = line.rangeLow;\n      this.isLowerRange = line.isLowerRange;\n      this.isOOB = line.isOOB;\n    } else {\n      // Intermediate or root node\n      this.isLeaf = false;\n    }\n  }\n\n  buildTree(line, shift) {\n    const bit = (line.prefixCode >> shift) & 1;\n    if (shift <= 0) {\n      // Create a leaf node.\n      this.children[bit] = new HuffmanTreeNode(line);\n    } else {\n      // Create an intermediate node and continue recursively.\n      let node = this.children[bit];\n      if (!node) {\n        this.children[bit] = node = new HuffmanTreeNode(null);\n      }\n      node.buildTree(line, shift - 1);\n    }\n  }\n\n  decodeNode(reader) {\n    if (this.isLeaf) {\n      if (this.isOOB) {\n        return null;\n      }\n      const htOffset = reader.readBits(this.rangeLength);\n      return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n    }\n    const node = this.children[reader.readBit()];\n    if (!node) {\n      throw new Jbig2Error(\"invalid Huffman data\");\n    }\n    return node.decodeNode(reader);\n  }\n}\n\nclass HuffmanTable {\n  constructor(lines, prefixCodesDone) {\n    if (!prefixCodesDone) {\n      this.assignPrefixCodes(lines);\n    }\n    // Create Huffman tree.\n    this.rootNode = new HuffmanTreeNode(null);\n    for (let i = 0, ii = lines.length; i < ii; i++) {\n      const line = lines[i];\n      if (line.prefixLength > 0) {\n        this.rootNode.buildTree(line, line.prefixLength - 1);\n      }\n    }\n  }\n\n  decode(reader) {\n    return this.rootNode.decodeNode(reader);\n  }\n\n  assignPrefixCodes(lines) {\n    // Annex B.3 Assigning the prefix codes.\n    const linesLength = lines.length;\n    let prefixLengthMax = 0;\n    for (let i = 0; i < linesLength; i++) {\n      prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n    }\n\n    const histogram = new Uint32Array(prefixLengthMax + 1);\n    for (let i = 0; i < linesLength; i++) {\n      histogram[lines[i].prefixLength]++;\n    }\n    let currentLength = 1,\n      firstCode = 0,\n      currentCode,\n      currentTemp,\n      line;\n    histogram[0] = 0;\n\n    while (currentLength <= prefixLengthMax) {\n      firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n      currentCode = firstCode;\n      currentTemp = 0;\n      while (currentTemp < linesLength) {\n        line = lines[currentTemp];\n        if (line.prefixLength === currentLength) {\n          line.prefixCode = currentCode;\n          currentCode++;\n        }\n        currentTemp++;\n      }\n      currentLength++;\n    }\n  }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n  // Decodes a Tables segment, i.e., a custom Huffman table.\n  // Annex B.2 Code table structure.\n  const flags = data[start];\n  const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n  const highestValue = readUint32(data, start + 5) & 0xffffffff;\n  const reader = new Reader(data, start + 9, end);\n\n  const prefixSizeBits = ((flags >> 1) & 7) + 1;\n  const rangeSizeBits = ((flags >> 4) & 7) + 1;\n  const lines = [];\n  let prefixLength,\n    rangeLength,\n    currentRangeLow = lowestValue;\n\n  // Normal table lines\n  do {\n    prefixLength = reader.readBits(prefixSizeBits);\n    rangeLength = reader.readBits(rangeSizeBits);\n    lines.push(\n      new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n    );\n    currentRangeLow += 1 << rangeLength;\n  } while (currentRangeLow < highestValue);\n\n  // Lower range table line\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n  // Upper range table line\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n  if (flags & 1) {\n    // Out-of-band table line\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([prefixLength, 0]));\n  }\n\n  return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n  // Annex B.5 Standard Huffman tables.\n  let table = standardTablesCache[number];\n  if (table) {\n    return table;\n  }\n  let lines;\n  switch (number) {\n    case 1:\n      lines = [\n        [0, 1, 4, 0x0],\n        [16, 2, 8, 0x2],\n        [272, 3, 16, 0x6],\n        [65808, 3, 32, 0x7], // upper\n      ];\n      break;\n    case 2:\n      lines = [\n        [0, 1, 0, 0x0],\n        [1, 2, 0, 0x2],\n        [2, 3, 0, 0x6],\n        [3, 4, 3, 0xe],\n        [11, 5, 6, 0x1e],\n        [75, 6, 32, 0x3e], // upper\n        [6, 0x3f], // OOB\n      ];\n      break;\n    case 3:\n      lines = [\n        [-256, 8, 8, 0xfe],\n        [0, 1, 0, 0x0],\n        [1, 2, 0, 0x2],\n        [2, 3, 0, 0x6],\n        [3, 4, 3, 0xe],\n        [11, 5, 6, 0x1e],\n        [-257, 8, 32, 0xff, \"lower\"],\n        [75, 7, 32, 0x7e], // upper\n        [6, 0x3e], // OOB\n      ];\n      break;\n    case 4:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 0, 0x6],\n        [4, 4, 3, 0xe],\n        [12, 5, 6, 0x1e],\n        [76, 5, 32, 0x1f], // upper\n      ];\n      break;\n    case 5:\n      lines = [\n        [-255, 7, 8, 0x7e],\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 0, 0x6],\n        [4, 4, 3, 0xe],\n        [12, 5, 6, 0x1e],\n        [-256, 7, 32, 0x7f, \"lower\"],\n        [76, 6, 32, 0x3e], // upper\n      ];\n      break;\n    case 6:\n      lines = [\n        [-2048, 5, 10, 0x1c],\n        [-1024, 4, 9, 0x8],\n        [-512, 4, 8, 0x9],\n        [-256, 4, 7, 0xa],\n        [-128, 5, 6, 0x1d],\n        [-64, 5, 5, 0x1e],\n        [-32, 4, 5, 0xb],\n        [0, 2, 7, 0x0],\n        [128, 3, 7, 0x2],\n        [256, 3, 8, 0x3],\n        [512, 4, 9, 0xc],\n        [1024, 4, 10, 0xd],\n        [-2049, 6, 32, 0x3e, \"lower\"],\n        [2048, 6, 32, 0x3f], // upper\n      ];\n      break;\n    case 7:\n      lines = [\n        [-1024, 4, 9, 0x8],\n        [-512, 3, 8, 0x0],\n        [-256, 4, 7, 0x9],\n        [-128, 5, 6, 0x1a],\n        [-64, 5, 5, 0x1b],\n        [-32, 4, 5, 0xa],\n        [0, 4, 5, 0xb],\n        [32, 5, 5, 0x1c],\n        [64, 5, 6, 0x1d],\n        [128, 4, 7, 0xc],\n        [256, 3, 8, 0x1],\n        [512, 3, 9, 0x2],\n        [1024, 3, 10, 0x3],\n        [-1025, 5, 32, 0x1e, \"lower\"],\n        [2048, 5, 32, 0x1f], // upper\n      ];\n      break;\n    case 8:\n      lines = [\n        [-15, 8, 3, 0xfc],\n        [-7, 9, 1, 0x1fc],\n        [-5, 8, 1, 0xfd],\n        [-3, 9, 0, 0x1fd],\n        [-2, 7, 0, 0x7c],\n        [-1, 4, 0, 0xa],\n        [0, 2, 1, 0x0],\n        [2, 5, 0, 0x1a],\n        [3, 6, 0, 0x3a],\n        [4, 3, 4, 0x4],\n        [20, 6, 1, 0x3b],\n        [22, 4, 4, 0xb],\n        [38, 4, 5, 0xc],\n        [70, 5, 6, 0x1b],\n        [134, 5, 7, 0x1c],\n        [262, 6, 7, 0x3c],\n        [390, 7, 8, 0x7d],\n        [646, 6, 10, 0x3d],\n        [-16, 9, 32, 0x1fe, \"lower\"],\n        [1670, 9, 32, 0x1ff], // upper\n        [2, 0x1], // OOB\n      ];\n      break;\n    case 9:\n      lines = [\n        [-31, 8, 4, 0xfc],\n        [-15, 9, 2, 0x1fc],\n        [-11, 8, 2, 0xfd],\n        [-7, 9, 1, 0x1fd],\n        [-5, 7, 1, 0x7c],\n        [-3, 4, 1, 0xa],\n        [-1, 3, 1, 0x2],\n        [1, 3, 1, 0x3],\n        [3, 5, 1, 0x1a],\n        [5, 6, 1, 0x3a],\n        [7, 3, 5, 0x4],\n        [39, 6, 2, 0x3b],\n        [43, 4, 5, 0xb],\n        [75, 4, 6, 0xc],\n        [139, 5, 7, 0x1b],\n        [267, 5, 8, 0x1c],\n        [523, 6, 8, 0x3c],\n        [779, 7, 9, 0x7d],\n        [1291, 6, 11, 0x3d],\n        [-32, 9, 32, 0x1fe, \"lower\"],\n        [3339, 9, 32, 0x1ff], // upper\n        [2, 0x0], // OOB\n      ];\n      break;\n    case 10:\n      lines = [\n        [-21, 7, 4, 0x7a],\n        [-5, 8, 0, 0xfc],\n        [-4, 7, 0, 0x7b],\n        [-3, 5, 0, 0x18],\n        [-2, 2, 2, 0x0],\n        [2, 5, 0, 0x19],\n        [3, 6, 0, 0x36],\n        [4, 7, 0, 0x7c],\n        [5, 8, 0, 0xfd],\n        [6, 2, 6, 0x1],\n        [70, 5, 5, 0x1a],\n        [102, 6, 5, 0x37],\n        [134, 6, 6, 0x38],\n        [198, 6, 7, 0x39],\n        [326, 6, 8, 0x3a],\n        [582, 6, 9, 0x3b],\n        [1094, 6, 10, 0x3c],\n        [2118, 7, 11, 0x7d],\n        [-22, 8, 32, 0xfe, \"lower\"],\n        [4166, 8, 32, 0xff], // upper\n        [2, 0x2], // OOB\n      ];\n      break;\n    case 11:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 1, 0x2],\n        [4, 4, 0, 0xc],\n        [5, 4, 1, 0xd],\n        [7, 5, 1, 0x1c],\n        [9, 5, 2, 0x1d],\n        [13, 6, 2, 0x3c],\n        [17, 7, 2, 0x7a],\n        [21, 7, 3, 0x7b],\n        [29, 7, 4, 0x7c],\n        [45, 7, 5, 0x7d],\n        [77, 7, 6, 0x7e],\n        [141, 7, 32, 0x7f], // upper\n      ];\n      break;\n    case 12:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 1, 0x6],\n        [5, 5, 0, 0x1c],\n        [6, 5, 1, 0x1d],\n        [8, 6, 1, 0x3c],\n        [10, 7, 0, 0x7a],\n        [11, 7, 1, 0x7b],\n        [13, 7, 2, 0x7c],\n        [17, 7, 3, 0x7d],\n        [25, 7, 4, 0x7e],\n        [41, 8, 5, 0xfe],\n        [73, 8, 32, 0xff], // upper\n      ];\n      break;\n    case 13:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 3, 0, 0x4],\n        [3, 4, 0, 0xc],\n        [4, 5, 0, 0x1c],\n        [5, 4, 1, 0xd],\n        [7, 3, 3, 0x5],\n        [15, 6, 1, 0x3a],\n        [17, 6, 2, 0x3b],\n        [21, 6, 3, 0x3c],\n        [29, 6, 4, 0x3d],\n        [45, 6, 5, 0x3e],\n        [77, 7, 6, 0x7e],\n        [141, 7, 32, 0x7f], // upper\n      ];\n      break;\n    case 14:\n      lines = [\n        [-2, 3, 0, 0x4],\n        [-1, 3, 0, 0x5],\n        [0, 1, 0, 0x0],\n        [1, 3, 0, 0x6],\n        [2, 3, 0, 0x7],\n      ];\n      break;\n    case 15:\n      lines = [\n        [-24, 7, 4, 0x7c],\n        [-8, 6, 2, 0x3c],\n        [-4, 5, 1, 0x1c],\n        [-2, 4, 0, 0xc],\n        [-1, 3, 0, 0x4],\n        [0, 1, 0, 0x0],\n        [1, 3, 0, 0x5],\n        [2, 4, 0, 0xd],\n        [3, 5, 1, 0x1d],\n        [5, 6, 2, 0x3d],\n        [9, 7, 4, 0x7d],\n        [-25, 7, 32, 0x7e, \"lower\"],\n        [25, 7, 32, 0x7f], // upper\n      ];\n      break;\n    default:\n      throw new Jbig2Error(`standard table B.${number} does not exist`);\n  }\n\n  for (let i = 0, ii = lines.length; i < ii; i++) {\n    lines[i] = new HuffmanLine(lines[i]);\n  }\n  table = new HuffmanTable(lines, true);\n  standardTablesCache[number] = table;\n  return table;\n}\n\nclass Reader {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n    this.position = start;\n    this.shift = -1;\n    this.currentByte = 0;\n  }\n\n  readBit() {\n    if (this.shift < 0) {\n      if (this.position >= this.end) {\n        throw new Jbig2Error(\"end of data while reading bit\");\n      }\n      this.currentByte = this.data[this.position++];\n      this.shift = 7;\n    }\n    const bit = (this.currentByte >> this.shift) & 1;\n    this.shift--;\n    return bit;\n  }\n\n  readBits(numBits) {\n    let result = 0,\n      i;\n    for (i = numBits - 1; i >= 0; i--) {\n      result |= this.readBit() << i;\n    }\n    return result;\n  }\n\n  byteAlign() {\n    this.shift = -1;\n  }\n\n  next() {\n    if (this.position >= this.end) {\n      return -1;\n    }\n    return this.data[this.position++];\n  }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n  // Returns a Tables segment that has been earlier decoded.\n  // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n  let currentIndex = 0;\n  for (let i = 0, ii = referredTo.length; i < ii; i++) {\n    const table = customTables[referredTo[i]];\n    if (table) {\n      if (index === currentIndex) {\n        return table;\n      }\n      currentIndex++;\n    }\n  }\n  throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n  textRegion,\n  referredTo,\n  customTables,\n  numberOfSymbols,\n  reader\n) {\n  // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n  // Read code lengths for RUNCODEs 0...34.\n  const codes = [];\n  for (let i = 0; i <= 34; i++) {\n    const codeLength = reader.readBits(4);\n    codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n  }\n  // Assign Huffman codes for RUNCODEs.\n  const runCodesTable = new HuffmanTable(codes, false);\n\n  // Read a Huffman code using the assignment above.\n  // Interpret the RUNCODE codes and the additional bits (if any).\n  codes.length = 0;\n  for (let i = 0; i < numberOfSymbols; ) {\n    const codeLength = runCodesTable.decode(reader);\n    if (codeLength >= 32) {\n      let repeatedLength, numberOfRepeats, j;\n      switch (codeLength) {\n        case 32:\n          if (i === 0) {\n            throw new Jbig2Error(\"no previous value in symbol ID table\");\n          }\n          numberOfRepeats = reader.readBits(2) + 3;\n          repeatedLength = codes[i - 1].prefixLength;\n          break;\n        case 33:\n          numberOfRepeats = reader.readBits(3) + 3;\n          repeatedLength = 0;\n          break;\n        case 34:\n          numberOfRepeats = reader.readBits(7) + 11;\n          repeatedLength = 0;\n          break;\n        default:\n          throw new Jbig2Error(\"invalid code length in symbol ID table\");\n      }\n      for (j = 0; j < numberOfRepeats; j++) {\n        codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n        i++;\n      }\n    } else {\n      codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n      i++;\n    }\n  }\n  reader.byteAlign();\n  const symbolIDTable = new HuffmanTable(codes, false);\n\n  // 7.4.3.1.6 Text region segment Huffman table selection\n\n  let customIndex = 0,\n    tableFirstS,\n    tableDeltaS,\n    tableDeltaT;\n\n  switch (textRegion.huffmanFS) {\n    case 0:\n    case 1:\n      tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n      break;\n    case 3:\n      tableFirstS = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman FS selector\");\n  }\n\n  switch (textRegion.huffmanDS) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n      break;\n    case 3:\n      tableDeltaS = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DS selector\");\n  }\n\n  switch (textRegion.huffmanDT) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n      break;\n    case 3:\n      tableDeltaT = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DT selector\");\n  }\n\n  if (textRegion.refinement) {\n    // Load tables RDW, RDH, RDX and RDY.\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  return {\n    symbolIDTable,\n    tableFirstS,\n    tableDeltaS,\n    tableDeltaT,\n  };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n  dictionary,\n  referredTo,\n  customTables\n) {\n  // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n  let customIndex = 0,\n    tableDeltaHeight,\n    tableDeltaWidth;\n  switch (dictionary.huffmanDHSelector) {\n    case 0:\n    case 1:\n      tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n      break;\n    case 3:\n      tableDeltaHeight = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DH selector\");\n  }\n\n  switch (dictionary.huffmanDWSelector) {\n    case 0:\n    case 1:\n      tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n      break;\n    case 3:\n      tableDeltaWidth = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DW selector\");\n  }\n\n  let tableBitmapSize, tableAggregateInstances;\n  if (dictionary.bitmapSizeSelector) {\n    tableBitmapSize = getCustomHuffmanTable(\n      customIndex,\n      referredTo,\n      customTables\n    );\n    customIndex++;\n  } else {\n    tableBitmapSize = getStandardTable(1);\n  }\n\n  if (dictionary.aggregationInstancesSelector) {\n    tableAggregateInstances = getCustomHuffmanTable(\n      customIndex,\n      referredTo,\n      customTables\n    );\n  } else {\n    tableAggregateInstances = getStandardTable(1);\n  }\n\n  return {\n    tableDeltaHeight,\n    tableDeltaWidth,\n    tableBitmapSize,\n    tableAggregateInstances,\n  };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n  const bitmap = [];\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    for (let x = 0; x < width; x++) {\n      row[x] = reader.readBit();\n    }\n    reader.byteAlign();\n  }\n  return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n  // MMR is the same compression algorithm as the PDF filter\n  // CCITTFaxDecode with /K -1.\n  const params = {\n    K: -1,\n    Columns: width,\n    Rows: height,\n    BlackIs1: true,\n    EndOfBlock: endOfBlock,\n  };\n  const decoder = new CCITTFaxDecoder(input, params);\n  const bitmap = [];\n  let currentByte,\n    eof = false;\n\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    let shift = -1;\n    for (let x = 0; x < width; x++) {\n      if (shift < 0) {\n        currentByte = decoder.readNextChar();\n        if (currentByte === -1) {\n          // Set the rest of the bits to zero.\n          currentByte = 0;\n          eof = true;\n        }\n        shift = 7;\n      }\n      row[x] = (currentByte >> shift) & 1;\n      shift--;\n    }\n  }\n\n  if (endOfBlock && !eof) {\n    // Read until EOFB has been consumed.\n    const lookForEOFLimit = 5;\n    for (let i = 0; i < lookForEOFLimit; i++) {\n      if (decoder.readNextChar() === -1) {\n        break;\n      }\n    }\n  }\n\n  return bitmap;\n}\n\nclass Jbig2Image {\n  parseChunks(chunks) {\n    return parseJbig2Chunks(chunks);\n  }\n\n  parse(data) {\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      throw new Error(\"Not implemented: Jbig2Image.parse\");\n    }\n    const { imgData, width, height } = parseJbig2(data);\n    this.width = width;\n    this.height = height;\n    return imgData;\n  }\n}\n\nexport { Jbig2Image };\n","/* Copyright 2019 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\nimport {\n  AnnotationEditorPrefix,\n  assert,\n  BaseException,\n  FontType,\n  objectSize,\n  StreamType,\n  stringToPDFString,\n  warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nfunction getLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      lookup = Object.create(null);\n      initializer(lookup);\n      initializer = null;\n    }\n    return lookup;\n  };\n}\n\nfunction getArrayLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      let arr = initializer();\n      initializer = null;\n      lookup = Object.create(null);\n      for (let i = 0, ii = arr.length; i < ii; i += 2) {\n        lookup[arr[i]] = arr[i + 1];\n      }\n      arr = null;\n    }\n    return lookup;\n  };\n}\n\nclass MissingDataException extends BaseException {\n  constructor(begin, end) {\n    super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n    this.begin = begin;\n    this.end = end;\n  }\n}\n\nclass ParserEOFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"ParserEOFException\");\n  }\n}\n\nclass XRefEntryException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefEntryException\");\n  }\n}\n\nclass XRefParseException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefParseException\");\n  }\n}\n\nclass DocStats {\n  constructor(handler) {\n    this._handler = handler;\n\n    this._streamTypes = new Set();\n    this._fontTypes = new Set();\n  }\n\n  _send() {\n    const streamTypes = Object.create(null),\n      fontTypes = Object.create(null);\n    for (const type of this._streamTypes) {\n      streamTypes[type] = true;\n    }\n    for (const type of this._fontTypes) {\n      fontTypes[type] = true;\n    }\n    this._handler.send(\"DocStats\", { streamTypes, fontTypes });\n  }\n\n  addStreamType(type) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(StreamType[type] === type, 'addStreamType: Invalid \"type\" value.');\n    }\n    if (this._streamTypes.has(type)) {\n      return;\n    }\n    this._streamTypes.add(type);\n    this._send();\n  }\n\n  addFontType(type) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(FontType[type] === type, 'addFontType: Invalid \"type\" value.');\n    }\n    if (this._fontTypes.has(type)) {\n      return;\n    }\n    this._fontTypes.add(type);\n    this._send();\n  }\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n *   array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n *   the key is found. If set to `false`, we always walk up the entire parent\n *   chain, for example to be able to find `\\Resources` placed on multiple\n *   levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n  dict,\n  key,\n  getArray = false,\n  stopWhenFound = true,\n}) {\n  let values;\n  const visited = new RefSet();\n\n  while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n    const value = getArray ? dict.getArray(key) : dict.get(key);\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n      if (!values) {\n        values = [];\n      }\n      values.push(value);\n    }\n    dict = dict.get(\"Parent\");\n  }\n  return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n  \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n  \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n  \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n *   to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n  assert(\n    Number.isInteger(number) && number > 0,\n    \"The number should be a positive integer.\"\n  );\n  const romanBuf = [];\n  let pos;\n  // Thousands\n  while (number >= 1000) {\n    number -= 1000;\n    romanBuf.push(\"M\");\n  }\n  // Hundreds\n  pos = (number / 100) | 0;\n  number %= 100;\n  romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n  // Tens\n  pos = (number / 10) | 0;\n  number %= 10;\n  romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n  // Ones\n  romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n  const romanStr = romanBuf.join(\"\");\n  return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n  if (x <= 0) {\n    return 0;\n  }\n  return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n  return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n  return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n  return (\n    ((data[offset] << 24) |\n      (data[offset + 1] << 16) |\n      (data[offset + 2] << 8) |\n      data[offset + 3]) >>>\n    0\n  );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n  const positionPattern = /(.+)\\[(\\d+)\\]$/;\n  return path.split(\".\").map(component => {\n    const m = component.match(positionPattern);\n    if (m) {\n      return { name: m[1], pos: parseInt(m[2], 10) };\n    }\n    return { name: component, pos: 0 };\n  });\n}\n\nfunction escapePDFName(str) {\n  const buffer = [];\n  let start = 0;\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    // Whitespace or delimiters aren't regular chars, so escape them.\n    if (\n      char < 0x21 ||\n      char > 0x7e ||\n      char === 0x23 /* # */ ||\n      char === 0x28 /* ( */ ||\n      char === 0x29 /* ) */ ||\n      char === 0x3c /* < */ ||\n      char === 0x3e /* > */ ||\n      char === 0x5b /* [ */ ||\n      char === 0x5d /* ] */ ||\n      char === 0x7b /* { */ ||\n      char === 0x7d /* } */ ||\n      char === 0x2f /* / */ ||\n      char === 0x25 /* % */\n    ) {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n      buffer.push(`#${char.toString(16)}`);\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n\n  return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n  if (!entry) {\n    return;\n  }\n\n  let parent = null;\n  if (entry instanceof Ref) {\n    if (parents.has(entry)) {\n      // If we've already found entry then we've a cycle.\n      return;\n    }\n    parent = entry;\n    parents.put(parent);\n    entry = xref.fetch(entry);\n  }\n  if (Array.isArray(entry)) {\n    for (const element of entry) {\n      _collectJS(element, xref, list, parents);\n    }\n  } else if (entry instanceof Dict) {\n    if (isName(entry.get(\"S\"), \"JavaScript\")) {\n      const js = entry.get(\"JS\");\n      let code;\n      if (js instanceof BaseStream) {\n        code = js.getString();\n      } else if (typeof js === \"string\") {\n        code = js;\n      }\n      code = code && stringToPDFString(code).replace(/\\u0000/g, \"\");\n      if (code) {\n        list.push(code);\n      }\n    }\n    _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n  }\n\n  if (parent) {\n    parents.remove(parent);\n  }\n}\n\nfunction collectActions(xref, dict, eventType) {\n  const actions = Object.create(null);\n  const additionalActionsDicts = getInheritableProperty({\n    dict,\n    key: \"AA\",\n    stopWhenFound: false,\n  });\n  if (additionalActionsDicts) {\n    // additionalActionsDicts contains dicts from ancestors\n    // as they're found in the tree from bottom to top.\n    // So the dicts are visited in reverse order to guarantee\n    // that actions from elder ancestors will be overwritten\n    // by ones from younger ancestors.\n    for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n      const additionalActions = additionalActionsDicts[i];\n      if (!(additionalActions instanceof Dict)) {\n        continue;\n      }\n      for (const key of additionalActions.getKeys()) {\n        const action = eventType[key];\n        if (!action) {\n          continue;\n        }\n        const actionDict = additionalActions.getRaw(key);\n        const parents = new RefSet();\n        const list = [];\n        _collectJS(actionDict, xref, list, parents);\n        if (list.length > 0) {\n          actions[action] = list;\n        }\n      }\n    }\n  }\n  // Collect the Action if any (we may have one on pushbutton).\n  if (dict.has(\"A\")) {\n    const actionDict = dict.get(\"A\");\n    const parents = new RefSet();\n    const list = [];\n    _collectJS(actionDict, xref, list, parents);\n    if (list.length > 0) {\n      actions.Action = list;\n    }\n  }\n  return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n  /* < */ 0x3c: \"&lt;\",\n  /* > */ 0x3e: \"&gt;\",\n  /* & */ 0x26: \"&amp;\",\n  /* \" */ 0x22: \"&quot;\",\n  /* ' */ 0x27: \"&apos;\",\n};\n\nfunction encodeToXmlString(str) {\n  const buffer = [];\n  let start = 0;\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.codePointAt(i);\n    if (0x20 <= char && char <= 0x7e) {\n      // ascii\n      const entity = XMLEntities[char];\n      if (entity) {\n        if (start < i) {\n          buffer.push(str.substring(start, i));\n        }\n        buffer.push(entity);\n        start = i + 1;\n      }\n    } else {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n      buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n      if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n        // char is represented by two u16\n        i++;\n      }\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n  return buffer.join(\"\");\n}\n\nfunction validateCSSFont(cssFontInfo) {\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n  const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n  const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n  const CSS_FONT_WEIGHT_VALUES = new Set([\n    \"100\",\n    \"200\",\n    \"300\",\n    \"400\",\n    \"500\",\n    \"600\",\n    \"700\",\n    \"800\",\n    \"900\",\n    \"1000\",\n    \"normal\",\n    \"bold\",\n    \"bolder\",\n    \"lighter\",\n  ]);\n\n  const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n  if (/^\".*\"$/.test(fontFamily)) {\n    if (/[^\\\\]\"/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n      warn(`XFA - FontFamily contains some unescaped \": ${fontFamily}.`);\n      return false;\n    }\n  } else if (/^'.*'$/.test(fontFamily)) {\n    if (/[^\\\\]'/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n      warn(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);\n      return false;\n    }\n  } else {\n    // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n    for (const ident of fontFamily.split(/[ \\t]+/)) {\n      if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n        warn(\n          `XFA - FontFamily contains some invalid <custom-ident>: ${fontFamily}.`\n        );\n        return false;\n      }\n    }\n  }\n\n  const weight = fontWeight ? fontWeight.toString() : \"\";\n  cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n    ? weight\n    : DEFAULT_CSS_FONT_WEIGHT;\n\n  const angle = parseFloat(italicAngle);\n  cssFontInfo.italicAngle =\n    isNaN(angle) || angle < -90 || angle > 90\n      ? DEFAULT_CSS_FONT_OBLIQUE\n      : italicAngle.toString();\n\n  return true;\n}\n\nfunction recoverJsURL(str) {\n  // Attempt to recover valid URLs from `JS` entries with certain\n  // white-listed formats:\n  //  - window.open('http://example.com')\n  //  - app.launchURL('http://example.com', true)\n  //  - xfa.host.gotoURL('http://example.com')\n  const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n  const regex = new RegExp(\n    \"^\\\\s*(\" +\n      URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") +\n      \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n    \"i\"\n  );\n\n  const jsUrl = regex.exec(str);\n  if (jsUrl && jsUrl[2]) {\n    const url = jsUrl[2];\n    let newWindow = false;\n\n    if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n      newWindow = true;\n    }\n    return { url, newWindow };\n  }\n\n  return null;\n}\n\nfunction numberToString(value) {\n  if (Number.isInteger(value)) {\n    return value.toString();\n  }\n\n  const roundedValue = Math.round(value * 100);\n  if (roundedValue % 100 === 0) {\n    return (roundedValue / 100).toString();\n  }\n\n  if (roundedValue % 10 === 0) {\n    return value.toFixed(1);\n  }\n\n  return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n  if (!annotationStorage) {\n    return null;\n  }\n  const newAnnotationsByPage = new Map();\n  // The concept of page in a XFA is very different, so\n  // editing is just not implemented.\n  for (const [key, value] of annotationStorage) {\n    if (!key.startsWith(AnnotationEditorPrefix)) {\n      continue;\n    }\n    let annotations = newAnnotationsByPage.get(value.pageIndex);\n    if (!annotations) {\n      annotations = [];\n      newAnnotationsByPage.set(value.pageIndex, annotations);\n    }\n    annotations.push(value);\n  }\n  return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\nexport {\n  collectActions,\n  DocStats,\n  encodeToXmlString,\n  escapePDFName,\n  getArrayLookupTableFactory,\n  getInheritableProperty,\n  getLookupTableFactory,\n  getNewAnnotationsMap,\n  isWhiteSpace,\n  log2,\n  MissingDataException,\n  numberToString,\n  ParserEOFException,\n  parseXFAPath,\n  readInt8,\n  readUint16,\n  readUint32,\n  recoverJsURL,\n  toRomanNumerals,\n  validateCSSFont,\n  XRefEntryException,\n  XRefParseException,\n};\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\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nconst Name = (function NameClosure() {\n  let nameCache = Object.create(null);\n\n  // eslint-disable-next-line no-shadow\n  class Name {\n    constructor(name) {\n      if (\n        (typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n        typeof name !== \"string\"\n      ) {\n        unreachable('Name: The \"name\" must be a string.');\n      }\n      this.name = name;\n    }\n\n    static get(name) {\n      // eslint-disable-next-line no-restricted-syntax\n      return nameCache[name] || (nameCache[name] = new Name(name));\n    }\n\n    static _clearCache() {\n      nameCache = Object.create(null);\n    }\n  }\n\n  return Name;\n})();\n\nconst Cmd = (function CmdClosure() {\n  let cmdCache = Object.create(null);\n\n  // eslint-disable-next-line no-shadow\n  class Cmd {\n    constructor(cmd) {\n      if (\n        (typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n        typeof cmd !== \"string\"\n      ) {\n        unreachable('Cmd: The \"cmd\" must be a string.');\n      }\n      this.cmd = cmd;\n    }\n\n    static get(cmd) {\n      // eslint-disable-next-line no-restricted-syntax\n      return cmdCache[cmd] || (cmdCache[cmd] = new Cmd(cmd));\n    }\n\n    static _clearCache() {\n      cmdCache = Object.create(null);\n    }\n  }\n\n  return Cmd;\n})();\n\nconst nonSerializable = function nonSerializableClosure() {\n  return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n  constructor(xref = null) {\n    // Map should only be used internally, use functions below to access.\n    this._map = Object.create(null);\n    this.xref = xref;\n    this.objId = null;\n    this.suppressEncryption = false;\n    this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n  }\n\n  assignXref(newXref) {\n    this.xref = newXref;\n  }\n\n  get size() {\n    return Object.keys(this._map).length;\n  }\n\n  // Automatically dereferences Ref objects.\n  get(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" ||\n            PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetch(value, this.suppressEncryption);\n    }\n    return value;\n  }\n\n  // Same as get(), but returns a promise and uses fetchIfRefAsync().\n  async getAsync(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" ||\n            PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetchAsync(value, this.suppressEncryption);\n    }\n    return value;\n  }\n\n  // Same as get(), but dereferences all elements if the result is an Array.\n  getArray(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" ||\n            PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      value = this.xref.fetch(value, this.suppressEncryption);\n    }\n\n    if (Array.isArray(value)) {\n      value = value.slice(); // Ensure that we don't modify the Dict data.\n      for (let i = 0, ii = value.length; i < ii; i++) {\n        if (value[i] instanceof Ref && this.xref) {\n          value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n        }\n      }\n    }\n    return value;\n  }\n\n  // No dereferencing.\n  getRaw(key) {\n    return this._map[key];\n  }\n\n  getKeys() {\n    return Object.keys(this._map);\n  }\n\n  // No dereferencing.\n  getRawValues() {\n    return Object.values(this._map);\n  }\n\n  set(key, value) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      if (typeof key !== \"string\") {\n        unreachable('Dict.set: The \"key\" must be a string.');\n      } else if (value === undefined) {\n        unreachable('Dict.set: The \"value\" cannot be undefined.');\n      }\n    }\n    this._map[key] = value;\n  }\n\n  has(key) {\n    return this._map[key] !== undefined;\n  }\n\n  forEach(callback) {\n    for (const key in this._map) {\n      callback(key, this.get(key));\n    }\n  }\n\n  static get empty() {\n    const emptyDict = new Dict(null);\n\n    emptyDict.set = (key, value) => {\n      unreachable(\"Should not call `set` on the empty dictionary.\");\n    };\n    return shadow(this, \"empty\", emptyDict);\n  }\n\n  static merge({ xref, dictArray, mergeSubDicts = false }) {\n    const mergedDict = new Dict(xref),\n      properties = new Map();\n\n    for (const dict of dictArray) {\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n      for (const [key, value] of Object.entries(dict._map)) {\n        let property = properties.get(key);\n        if (property === undefined) {\n          property = [];\n          properties.set(key, property);\n        } else if (!mergeSubDicts || !(value instanceof Dict)) {\n          // Ignore additional entries, if either:\n          //  - This is a \"shallow\" merge, where only the first element matters.\n          //  - The value is *not* a `Dict`, since other types cannot be merged.\n          continue;\n        }\n        property.push(value);\n      }\n    }\n    for (const [name, values] of properties) {\n      if (values.length === 1 || !(values[0] instanceof Dict)) {\n        mergedDict._map[name] = values[0];\n        continue;\n      }\n      const subDict = new Dict(xref);\n\n      for (const dict of values) {\n        for (const [key, value] of Object.entries(dict._map)) {\n          if (subDict._map[key] === undefined) {\n            subDict._map[key] = value;\n          }\n        }\n      }\n      if (subDict.size > 0) {\n        mergedDict._map[name] = subDict;\n      }\n    }\n    properties.clear();\n\n    return mergedDict.size > 0 ? mergedDict : Dict.empty;\n  }\n}\n\nconst Ref = (function RefClosure() {\n  let refCache = Object.create(null);\n\n  // eslint-disable-next-line no-shadow\n  class Ref {\n    constructor(num, gen) {\n      this.num = num;\n      this.gen = gen;\n    }\n\n    toString() {\n      // This function is hot, so we make the string as compact as possible.\n      // |this.gen| is almost always zero, so we treat that case specially.\n      if (this.gen === 0) {\n        return `${this.num}R`;\n      }\n      return `${this.num}R${this.gen}`;\n    }\n\n    static get(num, gen) {\n      const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n      // eslint-disable-next-line no-restricted-syntax\n      return refCache[key] || (refCache[key] = new Ref(num, gen));\n    }\n\n    static _clearCache() {\n      refCache = Object.create(null);\n    }\n  }\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.\nclass RefSet {\n  constructor(parent = null) {\n    if (\n      (typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n      parent &&\n      !(parent instanceof RefSet)\n    ) {\n      unreachable('RefSet: Invalid \"parent\" value.');\n    }\n    this._set = new Set(parent && parent._set);\n  }\n\n  has(ref) {\n    return this._set.has(ref.toString());\n  }\n\n  put(ref) {\n    this._set.add(ref.toString());\n  }\n\n  remove(ref) {\n    this._set.delete(ref.toString());\n  }\n\n  [Symbol.iterator]() {\n    return this._set.values();\n  }\n\n  clear() {\n    this._set.clear();\n  }\n}\n\nclass RefSetCache {\n  constructor() {\n    this._map = new Map();\n  }\n\n  get size() {\n    return this._map.size;\n  }\n\n  get(ref) {\n    return this._map.get(ref.toString());\n  }\n\n  has(ref) {\n    return this._map.has(ref.toString());\n  }\n\n  put(ref, obj) {\n    this._map.set(ref.toString(), obj);\n  }\n\n  putAlias(ref, aliasRef) {\n    this._map.set(ref.toString(), this.get(aliasRef));\n  }\n\n  [Symbol.iterator]() {\n    return this._map.values();\n  }\n\n  clear() {\n    this._map.clear();\n  }\n}\n\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n  return (\n    v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n  );\n}\n\nfunction isRefsEqual(v1, v2) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(\n      v1 instanceof Ref && v2 instanceof Ref,\n      \"isRefsEqual: Both parameters should be `Ref`s.\"\n    );\n  }\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction clearPrimitiveCaches() {\n  Cmd._clearCache();\n  Name._clearCache();\n  Ref._clearCache();\n}\n\nexport {\n  CIRCULAR_REF,\n  clearPrimitiveCaches,\n  Cmd,\n  Dict,\n  EOF,\n  isCmd,\n  isDict,\n  isName,\n  isRefsEqual,\n  Name,\n  Ref,\n  RefSet,\n  RefSetCache,\n};\n","/* Copyright 2021 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\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n  constructor() {\n    if (this.constructor === BaseStream) {\n      unreachable(\"Cannot initialize BaseStream.\");\n    }\n  }\n\n  // eslint-disable-next-line getter-return\n  get length() {\n    unreachable(\"Abstract getter `length` accessed\");\n  }\n\n  // eslint-disable-next-line getter-return\n  get isEmpty() {\n    unreachable(\"Abstract getter `isEmpty` accessed\");\n  }\n\n  get isDataLoaded() {\n    return shadow(this, \"isDataLoaded\", true);\n  }\n\n  getByte() {\n    unreachable(\"Abstract method `getByte` called\");\n  }\n\n  getBytes(length) {\n    unreachable(\"Abstract method `getBytes` called\");\n  }\n\n  peekByte() {\n    const peekedByte = this.getByte();\n    if (peekedByte !== -1) {\n      this.pos--;\n    }\n    return peekedByte;\n  }\n\n  peekBytes(length) {\n    const bytes = this.getBytes(length);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n\n  getUint16() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    if (b0 === -1 || b1 === -1) {\n      return -1;\n    }\n    return (b0 << 8) + b1;\n  }\n\n  getInt32() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    const b2 = this.getByte();\n    const b3 = this.getByte();\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  getByteRange(begin, end) {\n    unreachable(\"Abstract method `getByteRange` called\");\n  }\n\n  getString(length) {\n    return bytesToString(this.getBytes(length));\n  }\n\n  skip(n) {\n    this.pos += n || 1;\n  }\n\n  reset() {\n    unreachable(\"Abstract method `reset` called\");\n  }\n\n  moveStart() {\n    unreachable(\"Abstract method `moveStart` called\");\n  }\n\n  makeSubStream(start, length, dict = null) {\n    unreachable(\"Abstract method `makeSubStream` called\");\n  }\n\n  /**\n   * @returns {Array | null}\n   */\n  getBaseStreams() {\n    return null;\n  }\n}\n\nexport { BaseStream };\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// Table C-2\nconst 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/**\n * This class implements the QM Coder decoding as defined in\n *   JPEG 2000 Part I Final Committee Draft Version 1.0\n *   Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n  // C.3.5 Initialisation of the decoder (INITDEC)\n  constructor(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  // C.3.4 Compressed data input (BYTEIN)\n  byteIn() {\n    const data = this.data;\n    let bp = this.bp;\n\n    if (data[bp] === 0xff) {\n      if (data[bp + 1] > 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\n  // C.3.2 Decoding a decision (DECODE)\n  readBit(contexts, pos) {\n    // Contexts are packed into 1 byte:\n    // highest 7 bits carry cx.index, lowest bit carries cx.mps\n    let cx_index = contexts[pos] >> 1,\n      cx_mps = contexts[pos] & 1;\n    const qeTableIcx = QeTable[cx_index];\n    const qeIcx = qeTableIcx.qe;\n    let d;\n    let a = this.a - qeIcx;\n\n    if (this.chigh < qeIcx) {\n      // exchangeLps\n      if (a < qeIcx) {\n        a = qeIcx;\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      } else {\n        a = qeIcx;\n        d = 1 ^ cx_mps;\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n        cx_index = qeTableIcx.nlps;\n      }\n    } else {\n      this.chigh -= qeIcx;\n      if ((a & 0x8000) !== 0) {\n        this.a = a;\n        return cx_mps;\n      }\n      // exchangeMps\n      if (a < qeIcx) {\n        d = 1 ^ cx_mps;\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n        cx_index = qeTableIcx.nlps;\n      } else {\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      }\n    }\n    // C.3.3 renormD;\n    do {\n      if (this.ct === 0) {\n        this.byteIn();\n      }\n\n      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 ((a & 0x8000) === 0);\n    this.a = a;\n\n    contexts[pos] = (cx_index << 1) | cx_mps;\n    return d;\n  }\n}\n\nexport { ArithmeticDecoder };\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/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n *   or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst 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// prettier-ignore\nconst 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// prettier-ignore\nconst 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// prettier-ignore\nconst 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// prettier-ignore\nconst 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// prettier-ignore\nconst 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/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n  constructor(source, options = {}) {\n    if (!source || typeof source.next !== \"function\") {\n      throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n    }\n    this.source = source;\n    this.eof = false;\n\n    this.encoding = options.K || 0;\n    this.eoline = options.EndOfLine || false;\n    this.byteAlign = options.EncodedByteAlign || false;\n    this.columns = options.Columns || 1728;\n    this.rows = options.Rows || 0;\n    let eoblock = options.EndOfBlock;\n    if (eoblock === null || eoblock === undefined) {\n      eoblock = true;\n    }\n    this.eoblock = eoblock;\n    this.black = options.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.rowsDone = false;\n\n    let 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\n  readNextChar() {\n    if (this.eof) {\n      return -1;\n    }\n    const refLine = this.refLine;\n    const codingLine = this.codingLine;\n    const columns = this.columns;\n\n    let refPos, blackPixels, bits, i;\n\n    if (this.outputBits === 0) {\n      if (this.rowsDone) {\n        this.eof = true;\n      }\n      if (this.eof) {\n        return -1;\n      }\n      this.err = false;\n\n      let code1, code2, code3;\n      if (this.nextLine2D) {\n        for (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              }\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] + code1, blackPixels);\n              if (codingLine[this.codingPos] < columns) {\n                this._addPixels(\n                  codingLine[this.codingPos] + code2,\n                  blackPixels ^ 1\n                );\n              }\n              while (\n                refLine[refPos] <= codingLine[this.codingPos] &&\n                refLine[refPos] < columns\n              ) {\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 (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\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 (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\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 (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\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 (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\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                }\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\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                }\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\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 (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case ccittEOF:\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      let gotEOL = false;\n\n      if (this.byteAlign) {\n        this.inputBits &= ~7;\n      }\n\n      if (!this.eoblock && this.row === this.rows - 1) {\n        this.rowsDone = true;\n      } else {\n        code1 = this._lookBits(12);\n        if (this.eoline) {\n          while (code1 !== ccittEOF && code1 !== 1) {\n            this._eatBits(1);\n            code1 = this._lookBits(12);\n          }\n        } else {\n          while (code1 === 0) {\n            this._eatBits(1);\n            code1 = this._lookBits(12);\n          }\n        }\n        if (code1 === 1) {\n          this._eatBits(12);\n          gotEOL = true;\n        } else if (code1 === ccittEOF) {\n          this.eof = true;\n        }\n      }\n\n      if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n        this.nextLine2D = !this._lookBits(1);\n        this._eatBits(1);\n      }\n\n      if (this.eoblock && gotEOL && this.byteAlign) {\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 (i = 0; i < 4; ++i) {\n              code1 = this._lookBits(12);\n              if (code1 !== 1) {\n                info(\"bad rtc code: \" + code1);\n              }\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 === ccittEOF) {\n            this.eof = true;\n            return -1;\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      }\n      this.row++;\n    }\n\n    let c;\n    if (this.outputBits >= 8) {\n      c = this.codingPos & 1 ? 0 : 0xff;\n      this.outputBits -= 8;\n      if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n        this.codingPos++;\n        this.outputBits =\n          codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n      }\n    } else {\n      bits = 8;\n      c = 0;\n      do {\n        if (typeof this.outputBits !== \"number\") {\n          throw new FormatError(\n            'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n          );\n        }\n\n        if (this.outputBits > bits) {\n          c <<= bits;\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> (8 - bits);\n          }\n          this.outputBits -= bits;\n          bits = 0;\n        } else {\n          c <<= this.outputBits;\n          if (!(this.codingPos & 1)) {\n            c |= 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 =\n              codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n          } else if (bits > 0) {\n            c <<= bits;\n            bits = 0;\n          }\n        }\n      } while (bits);\n    }\n    if (this.black) {\n      c ^= 0xff;\n    }\n    return c;\n  }\n\n  /**\n   * @private\n   */\n  _addPixels(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        info(\"row is wrong length\");\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  /**\n   * @private\n   */\n  _addPixelsNeg(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        info(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n      if ((codingPos & 1) ^ blackPixels) {\n        ++codingPos;\n      }\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      }\n      codingLine[codingPos] = a1;\n    }\n\n    this.codingPos = codingPos;\n  }\n\n  /**\n   * This function 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   * @private\n   */\n  _findTableCode(start, end, table, limit) {\n    const limitValue = limit || 0;\n    for (let i = start; i <= end; ++i) {\n      let code = this._lookBits(i);\n      if (code === ccittEOF) {\n        return [true, 1, false];\n      }\n      if (i < end) {\n        code <<= end - i;\n      }\n      if (!limitValue || code >= limitValue) {\n        const 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  /**\n   * @private\n   */\n  _getTwoDimCode() {\n    let code = 0;\n    let 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      const result = this._findTableCode(1, 7, twoDimTable);\n      if (result[0] && result[2]) {\n        return result[1];\n      }\n    }\n    info(\"Bad two dim code\");\n    return ccittEOF;\n  }\n\n  /**\n   * @private\n   */\n  _getWhiteCode() {\n    let code = 0;\n    let p;\n    if (this.eoblock) {\n      code = this._lookBits(12);\n      if (code === ccittEOF) {\n        return 1;\n      }\n\n      if (code >> 5 === 0) {\n        p = whiteTable1[code];\n      } else {\n        p = whiteTable2[code >> 3];\n      }\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(1, 9, whiteTable2);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(11, 12, whiteTable1);\n      if (result[0]) {\n        return result[1];\n      }\n    }\n    info(\"bad white code\");\n    this._eatBits(1);\n    return 1;\n  }\n\n  /**\n   * @private\n   */\n  _getBlackCode() {\n    let code, p;\n    if (this.eoblock) {\n      code = this._lookBits(13);\n      if (code === ccittEOF) {\n        return 1;\n      }\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\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(2, 6, blackTable3);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(7, 12, blackTable2, 64);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(10, 13, blackTable1);\n      if (result[0]) {\n        return result[1];\n      }\n    }\n    info(\"bad black code\");\n    this._eatBits(1);\n    return 1;\n  }\n\n  /**\n   * @private\n   */\n  _lookBits(n) {\n    let c;\n    while (this.inputBits < n) {\n      if ((c = this.source.next()) === -1) {\n        if (this.inputBits === 0) {\n          return ccittEOF;\n        }\n        return (this.inputBuf << (n - this.inputBits)) & (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  /**\n   * @private\n   */\n  _eatBits(n) {\n    if ((this.inputBits -= n) < 0) {\n      this.inputBits = 0;\n    }\n  }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2014 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\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n  constructor(msg) {\n    super(`JPEG error: ${msg}`, \"JpegError\");\n  }\n}\n\nclass DNLMarkerError extends BaseException {\n  constructor(message, scanLines) {\n    super(message, \"DNLMarkerError\");\n    this.scanLines = scanLines;\n  }\n}\n\nclass EOIMarkerError extends BaseException {\n  constructor(msg) {\n    super(msg, \"EOIMarkerError\");\n  }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\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\n *   Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n *   (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\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\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n  let k = 0,\n    i,\n    j,\n    length = 16;\n  while (length > 0 && !codeLengths[length - 1]) {\n    length--;\n  }\n  const code = [{ children: [], index: 0 }];\n  let p = code[0],\n    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\nfunction getBlockBufferOffset(component, row, col) {\n  return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n  data,\n  offset,\n  frame,\n  components,\n  resetInterval,\n  spectralStart,\n  spectralEnd,\n  successivePrev,\n  successive,\n  parseDNLMarker = false\n) {\n  const mcusPerLine = frame.mcusPerLine;\n  const progressive = frame.progressive;\n\n  const startOffset = offset;\n  let bitsData = 0,\n    bitsCount = 0;\n\n  function readBit() {\n    if (bitsCount > 0) {\n      bitsCount--;\n      return (bitsData >> bitsCount) & 1;\n    }\n    bitsData = data[offset++];\n    if (bitsData === 0xff) {\n      const nextByte = data[offset++];\n      if (nextByte) {\n        if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n          offset += 2; // Skip marker length.\n\n          const scanLines = readUint16(data, offset);\n          offset += 2;\n          if (scanLines > 0 && scanLines !== frame.scanLines) {\n            throw new DNLMarkerError(\n              \"Found DNL marker (0xFFDC) while parsing scan data\",\n              scanLines\n            );\n          }\n        } else if (nextByte === /* EOI = */ 0xd9) {\n          if (parseDNLMarker) {\n            // NOTE: only 8-bit JPEG images are supported in this decoder.\n            const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n            // Heuristic to attempt to handle corrupt JPEG images with too\n            // large `scanLines` parameter, by falling back to the currently\n            // parsed number of scanLines when it's at least (approximately)\n            // one order of magnitude smaller than expected (fixes\n            // issue10880.pdf and issue10989.pdf).\n            if (\n              maybeScanLines > 0 &&\n              Math.round(frame.scanLines / maybeScanLines) >= 10\n            ) {\n              throw new DNLMarkerError(\n                \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n                  \"possibly caused by incorrect `scanLines` parameter\",\n                maybeScanLines\n              );\n            }\n          }\n          throw new EOIMarkerError(\n            \"Found EOI marker (0xFFD9) while parsing scan data\"\n          );\n        }\n        throw new JpegError(\n          `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n        );\n      }\n      // unstuff 0\n    }\n    bitsCount = 7;\n    return bitsData >>> 7;\n  }\n\n  function decodeHuffman(tree) {\n    let node = tree;\n    while (true) {\n      node = node[readBit()];\n      switch (typeof node) {\n        case \"number\":\n          return node;\n        case \"object\":\n          continue;\n      }\n      throw new JpegError(\"invalid huffman sequence\");\n    }\n  }\n\n  function receive(length) {\n    let n = 0;\n    while (length > 0) {\n      n = (n << 1) | readBit();\n      length--;\n    }\n    return n;\n  }\n\n  function receiveAndExtend(length) {\n    if (length === 1) {\n      return readBit() === 1 ? 1 : -1;\n    }\n    const n = receive(length);\n    if (n >= 1 << (length - 1)) {\n      return n;\n    }\n    return n + (-1 << length) + 1;\n  }\n\n  function decodeBaseline(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t);\n    component.blockData[blockOffset] = component.pred += diff;\n    let k = 1;\n    while (k < 64) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n        r = rs >> 4;\n      if (s === 0) {\n        if (r < 15) {\n          break;\n        }\n        k += 16;\n        continue;\n      }\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s);\n      k++;\n    }\n  }\n\n  function decodeDCFirst(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n    component.blockData[blockOffset] = component.pred += diff;\n  }\n\n  function decodeDCSuccessive(component, blockOffset) {\n    component.blockData[blockOffset] |= readBit() << successive;\n  }\n\n  let eobrun = 0;\n  function decodeACFirst(component, blockOffset) {\n    if (eobrun > 0) {\n      eobrun--;\n      return;\n    }\n    let k = spectralStart;\n    const e = spectralEnd;\n    while (k <= e) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n        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      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] =\n        receiveAndExtend(s) * (1 << successive);\n      k++;\n    }\n  }\n\n  let successiveACState = 0,\n    successiveACNextValue;\n  function decodeACSuccessive(component, blockOffset) {\n    let k = spectralStart;\n    const e = spectralEnd;\n    let r = 0;\n    let s;\n    let rs;\n    while (k <= e) {\n      const offsetZ = blockOffset + dctZigZag[k];\n      const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n      switch (successiveACState) {\n        case 0: // initial state\n          rs = decodeHuffman(component.huffmanTableAC);\n          s = rs & 15;\n          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 new JpegError(\"invalid ACn encoding\");\n            }\n            successiveACNextValue = receiveAndExtend(s);\n            successiveACState = r ? 2 : 3;\n          }\n          continue;\n        case 1: // skipping r zero items\n        case 2:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            r--;\n            if (r === 0) {\n              successiveACState = successiveACState === 2 ? 3 : 0;\n            }\n          }\n          break;\n        case 3: // set value for a zero item\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            component.blockData[offsetZ] = successiveACNextValue << successive;\n            successiveACState = 0;\n          }\n          break;\n        case 4: // eob\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          }\n          break;\n      }\n      k++;\n    }\n    if (successiveACState === 4) {\n      eobrun--;\n      if (eobrun === 0) {\n        successiveACState = 0;\n      }\n    }\n  }\n\n  let blockRow = 0;\n  function decodeMcu(component, decode, mcu, row, col) {\n    const mcuRow = (mcu / mcusPerLine) | 0;\n    const mcuCol = mcu % mcusPerLine;\n    blockRow = mcuRow * component.v + row;\n    const blockCol = mcuCol * component.h + col;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  function decodeBlock(component, decode, mcu) {\n    blockRow = (mcu / component.blocksPerLine) | 0;\n    const blockCol = mcu % component.blocksPerLine;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  const componentsLength = components.length;\n  let component, i, j, k, n;\n  let decodeFn;\n  if (progressive) {\n    if (spectralStart === 0) {\n      decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n    } else {\n      decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n    }\n  } else {\n    decodeFn = decodeBaseline;\n  }\n\n  let mcu = 0,\n    fileMarker;\n  let mcuExpected;\n  if (componentsLength === 1) {\n    mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n  } else {\n    mcuExpected = mcusPerLine * frame.mcusPerColumn;\n  }\n\n  let h, v;\n  while (mcu <= mcuExpected) {\n    // reset interval stuff\n    const mcuToRead = resetInterval\n      ? Math.min(mcuExpected - mcu, resetInterval)\n      : mcuExpected;\n\n    // The `mcuToRead === 0` case should only occur when all of the expected\n    // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n    // some corrupt JPEG images contain more data than intended and we thus\n    // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n    if (mcuToRead > 0) {\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n      eobrun = 0;\n\n      if (componentsLength === 1) {\n        component = components[0];\n        for (n = 0; n < mcuToRead; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < mcuToRead; 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\n    // find marker\n    bitsCount = 0;\n    fileMarker = findNextFileMarker(data, offset);\n    if (!fileMarker) {\n      break; // Reached the end of the image data without finding any marker.\n    }\n    if (fileMarker.invalid) {\n      // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n      // past those to attempt to find a valid marker (fixes issue4090.pdf).\n      const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n      warn(\n        `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n      );\n      offset = fileMarker.offset;\n    }\n    if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n      // RSTx\n      offset += 2;\n    } else {\n      break;\n    }\n  }\n\n  return offset - startOffset;\n}\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.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n  const qt = component.quantizationTable,\n    blockData = component.blockData;\n  let v0, v1, v2, v3, v4, v5, v6, v7;\n  let p0, p1, p2, p3, p4, p5, p6, p7;\n  let t;\n\n  if (!qt) {\n    throw new JpegError(\"missing required Quantization Table.\");\n  }\n\n  // inverse DCT on rows\n  for (let row = 0; row < 64; row += 8) {\n    // gather block data\n    p0 = blockData[blockBufferOffset + row];\n    p1 = blockData[blockBufferOffset + row + 1];\n    p2 = blockData[blockBufferOffset + row + 2];\n    p3 = blockData[blockBufferOffset + row + 3];\n    p4 = blockData[blockBufferOffset + row + 4];\n    p5 = blockData[blockBufferOffset + row + 5];\n    p6 = blockData[blockBufferOffset + row + 6];\n    p7 = blockData[blockBufferOffset + row + 7];\n\n    // dequant p0\n    p0 *= qt[row];\n\n    // check for all-zero AC coefficients\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = (dctSqrt2 * p0 + 512) >> 10;\n      p[row] = t;\n      p[row + 1] = t;\n      p[row + 2] = t;\n      p[row + 3] = t;\n      p[row + 4] = t;\n      p[row + 5] = t;\n      p[row + 6] = t;\n      p[row + 7] = t;\n      continue;\n    }\n    // dequant p1 ... p7\n    p1 *= qt[row + 1];\n    p2 *= qt[row + 2];\n    p3 *= qt[row + 3];\n    p4 *= qt[row + 4];\n    p5 *= qt[row + 5];\n    p6 *= qt[row + 6];\n    p7 *= qt[row + 7];\n\n    // stage 4\n    v0 = (dctSqrt2 * p0 + 128) >> 8;\n    v1 = (dctSqrt2 * p4 + 128) >> 8;\n    v2 = p2;\n    v3 = p6;\n    v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n    v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n    v5 = p3 << 4;\n    v6 = p5 << 4;\n\n    // stage 3\n    v0 = (v0 + v1 + 1) >> 1;\n    v1 = v0 - v1;\n    t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n    v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n    v3 = t;\n    v4 = (v4 + v6 + 1) >> 1;\n    v6 = v4 - v6;\n    v7 = (v7 + v5 + 1) >> 1;\n    v5 = v7 - v5;\n\n    // stage 2\n    v0 = (v0 + v3 + 1) >> 1;\n    v3 = v0 - v3;\n    v1 = (v1 + v2 + 1) >> 1;\n    v2 = v1 - v2;\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[row] = v0 + v7;\n    p[row + 7] = v0 - v7;\n    p[row + 1] = v1 + v6;\n    p[row + 6] = v1 - v6;\n    p[row + 2] = v2 + v5;\n    p[row + 5] = v2 - v5;\n    p[row + 3] = v3 + v4;\n    p[row + 4] = v3 - v4;\n  }\n\n  // inverse DCT on columns\n  for (let col = 0; col < 8; ++col) {\n    p0 = p[col];\n    p1 = p[col + 8];\n    p2 = p[col + 16];\n    p3 = p[col + 24];\n    p4 = p[col + 32];\n    p5 = p[col + 40];\n    p6 = p[col + 48];\n    p7 = p[col + 56];\n\n    // check for all-zero AC coefficients\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = (dctSqrt2 * p0 + 8192) >> 14;\n      // Convert to 8-bit.\n      if (t < -2040) {\n        t = 0;\n      } else if (t >= 2024) {\n        t = 255;\n      } else {\n        t = (t + 2056) >> 4;\n      }\n      blockData[blockBufferOffset + col] = t;\n      blockData[blockBufferOffset + col + 8] = t;\n      blockData[blockBufferOffset + col + 16] = t;\n      blockData[blockBufferOffset + col + 24] = t;\n      blockData[blockBufferOffset + col + 32] = t;\n      blockData[blockBufferOffset + col + 40] = t;\n      blockData[blockBufferOffset + col + 48] = t;\n      blockData[blockBufferOffset + col + 56] = t;\n      continue;\n    }\n\n    // stage 4\n    v0 = (dctSqrt2 * p0 + 2048) >> 12;\n    v1 = (dctSqrt2 * p4 + 2048) >> 12;\n    v2 = p2;\n    v3 = p6;\n    v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n    v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n    v5 = p3;\n    v6 = p5;\n\n    // stage 3\n    // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n    // converting to UInt8 range later.\n    v0 = ((v0 + v1 + 1) >> 1) + 4112;\n    v1 = v0 - v1;\n    t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n    v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n    v3 = t;\n    v4 = (v4 + v6 + 1) >> 1;\n    v6 = v4 - v6;\n    v7 = (v7 + v5 + 1) >> 1;\n    v5 = v7 - v5;\n\n    // stage 2\n    v0 = (v0 + v3 + 1) >> 1;\n    v3 = v0 - v3;\n    v1 = (v1 + v2 + 1) >> 1;\n    v2 = v1 - v2;\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    p0 = v0 + v7;\n    p7 = v0 - v7;\n    p1 = v1 + v6;\n    p6 = v1 - v6;\n    p2 = v2 + v5;\n    p5 = v2 - v5;\n    p3 = v3 + v4;\n    p4 = v3 - v4;\n\n    // Convert to 8-bit integers.\n    if (p0 < 16) {\n      p0 = 0;\n    } else if (p0 >= 4080) {\n      p0 = 255;\n    } else {\n      p0 >>= 4;\n    }\n    if (p1 < 16) {\n      p1 = 0;\n    } else if (p1 >= 4080) {\n      p1 = 255;\n    } else {\n      p1 >>= 4;\n    }\n    if (p2 < 16) {\n      p2 = 0;\n    } else if (p2 >= 4080) {\n      p2 = 255;\n    } else {\n      p2 >>= 4;\n    }\n    if (p3 < 16) {\n      p3 = 0;\n    } else if (p3 >= 4080) {\n      p3 = 255;\n    } else {\n      p3 >>= 4;\n    }\n    if (p4 < 16) {\n      p4 = 0;\n    } else if (p4 >= 4080) {\n      p4 = 255;\n    } else {\n      p4 >>= 4;\n    }\n    if (p5 < 16) {\n      p5 = 0;\n    } else if (p5 >= 4080) {\n      p5 = 255;\n    } else {\n      p5 >>= 4;\n    }\n    if (p6 < 16) {\n      p6 = 0;\n    } else if (p6 >= 4080) {\n      p6 = 255;\n    } else {\n      p6 >>= 4;\n    }\n    if (p7 < 16) {\n      p7 = 0;\n    } else if (p7 >= 4080) {\n      p7 = 255;\n    } else {\n      p7 >>= 4;\n    }\n\n    // store block data\n    blockData[blockBufferOffset + col] = p0;\n    blockData[blockBufferOffset + col + 8] = p1;\n    blockData[blockBufferOffset + col + 16] = p2;\n    blockData[blockBufferOffset + col + 24] = p3;\n    blockData[blockBufferOffset + col + 32] = p4;\n    blockData[blockBufferOffset + col + 40] = p5;\n    blockData[blockBufferOffset + col + 48] = p6;\n    blockData[blockBufferOffset + col + 56] = p7;\n  }\n}\n\nfunction buildComponentData(frame, component) {\n  const blocksPerLine = component.blocksPerLine;\n  const blocksPerColumn = component.blocksPerColumn;\n  const computationBuffer = new Int16Array(64);\n\n  for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n    for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n      const offset = getBlockBufferOffset(component, blockRow, blockCol);\n      quantizeAndInverse(component, offset, computationBuffer);\n    }\n  }\n  return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n  const maxPos = data.length - 1;\n  let newPos = startPos < currentPos ? startPos : currentPos;\n\n  if (currentPos >= maxPos) {\n    return null; // Don't attempt to read non-existent data and just return.\n  }\n  const currentMarker = readUint16(data, currentPos);\n  if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n    return {\n      invalid: null,\n      marker: currentMarker,\n      offset: currentPos,\n    };\n  }\n  let newMarker = readUint16(data, newPos);\n  while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n    if (++newPos >= maxPos) {\n      return null; // Don't attempt to read non-existent data and just return.\n    }\n    newMarker = readUint16(data, newPos);\n  }\n  return {\n    invalid: currentMarker.toString(16),\n    marker: newMarker,\n    offset: newPos,\n  };\n}\n\nclass JpegImage {\n  constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n\n  parse(data, { dnlScanLines = null } = {}) {\n    function readDataBlock() {\n      const length = readUint16(data, offset);\n      offset += 2;\n      let endOffset = offset + length - 2;\n\n      const fileMarker = findNextFileMarker(data, endOffset, offset);\n      if (fileMarker && fileMarker.invalid) {\n        warn(\n          \"readDataBlock - incorrect length, current marker is: \" +\n            fileMarker.invalid\n        );\n        endOffset = fileMarker.offset;\n      }\n\n      const array = data.subarray(offset, endOffset);\n      offset += array.length;\n      return array;\n    }\n\n    function prepareComponents(frame) {\n      const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n      const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n      for (let i = 0, ii = frame.components.length; i < ii; i++) {\n        const component = frame.components[i];\n        const blocksPerLine = Math.ceil(\n          (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n        );\n        const blocksPerColumn = Math.ceil(\n          (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n        );\n        const blocksPerLineForMcu = mcusPerLine * component.h;\n        const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n        const blocksBufferSize =\n          64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n        component.blockData = new Int16Array(blocksBufferSize);\n        component.blocksPerLine = blocksPerLine;\n        component.blocksPerColumn = blocksPerColumn;\n      }\n      frame.mcusPerLine = mcusPerLine;\n      frame.mcusPerColumn = mcusPerColumn;\n    }\n\n    let offset = 0;\n    let jfif = null;\n    let adobe = null;\n    let frame, resetInterval;\n    let numSOSMarkers = 0;\n    const quantizationTables = [];\n    const huffmanTablesAC = [],\n      huffmanTablesDC = [];\n\n    let fileMarker = readUint16(data, offset);\n    offset += 2;\n    if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n    fileMarker = readUint16(data, offset);\n    offset += 2;\n\n    markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n      let 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          const appData = readDataBlock();\n\n          if (fileMarker === 0xffe0) {\n            // 'JFIF\\x00'\n            if (\n              appData[0] === 0x4a &&\n              appData[1] === 0x46 &&\n              appData[2] === 0x49 &&\n              appData[3] === 0x46 &&\n              appData[4] === 0\n            ) {\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(\n                  14,\n                  14 + 3 * appData[12] * appData[13]\n                ),\n              };\n            }\n          }\n          // TODO APP1 - Exif\n          if (fileMarker === 0xffee) {\n            // 'Adobe'\n            if (\n              appData[0] === 0x41 &&\n              appData[1] === 0x64 &&\n              appData[2] === 0x6f &&\n              appData[3] === 0x62 &&\n              appData[4] === 0x65\n            ) {\n              adobe = {\n                version: (appData[5] << 8) | 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          const quantizationTablesLength = readUint16(data, offset);\n          offset += 2;\n          const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n          let z;\n          while (offset < quantizationTablesEnd) {\n            const quantizationTableSpec = data[offset++];\n            const tableData = new Uint16Array(64);\n            if (quantizationTableSpec >> 4 === 0) {\n              // 8 bit values\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = data[offset++];\n              }\n            } else if (quantizationTableSpec >> 4 === 1) {\n              // 16 bit values\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = readUint16(data, offset);\n                offset += 2;\n              }\n            } else {\n              throw new JpegError(\"DQT - invalid table spec\");\n            }\n            quantizationTables[quantizationTableSpec & 15] = tableData;\n          }\n          break;\n\n        case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n        case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n        case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n          if (frame) {\n            throw new JpegError(\"Only single frame JPEGs supported\");\n          }\n          offset += 2; // Skip marker length.\n\n          frame = {};\n          frame.extended = fileMarker === 0xffc1;\n          frame.progressive = fileMarker === 0xffc2;\n          frame.precision = data[offset++];\n          const sofScanLines = readUint16(data, offset);\n          offset += 2;\n          frame.scanLines = dnlScanLines || sofScanLines;\n          frame.samplesPerLine = readUint16(data, offset);\n          offset += 2;\n          frame.components = [];\n          frame.componentIds = {};\n          const componentsCount = data[offset++];\n          let maxH = 0,\n            maxV = 0;\n          for (i = 0; i < componentsCount; i++) {\n            const componentId = data[offset];\n            const h = data[offset + 1] >> 4;\n            const v = data[offset + 1] & 15;\n            if (maxH < h) {\n              maxH = h;\n            }\n            if (maxV < v) {\n              maxV = v;\n            }\n            const qId = data[offset + 2];\n            l = frame.components.push({\n              h,\n              v,\n              quantizationId: qId,\n              quantizationTable: null, // See comment below.\n            });\n            frame.componentIds[componentId] = l - 1;\n            offset += 3;\n          }\n          frame.maxH = maxH;\n          frame.maxV = maxV;\n          prepareComponents(frame);\n          break;\n\n        case 0xffc4: // DHT (Define Huffman Tables)\n          const huffmanLength = readUint16(data, offset);\n          offset += 2;\n          for (i = 2; i < huffmanLength; ) {\n            const huffmanTableSpec = data[offset++];\n            const codeLengths = new Uint8Array(16);\n            let codeLengthSum = 0;\n            for (j = 0; j < 16; j++, offset++) {\n              codeLengthSum += codeLengths[j] = data[offset];\n            }\n            const huffmanValues = new Uint8Array(codeLengthSum);\n            for (j = 0; j < codeLengthSum; j++, offset++) {\n              huffmanValues[j] = data[offset];\n            }\n            i += 17 + codeLengthSum;\n\n            (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n              huffmanTableSpec & 15\n            ] = buildHuffmanTable(codeLengths, huffmanValues);\n          }\n          break;\n\n        case 0xffdd: // DRI (Define Restart Interval)\n          offset += 2; // Skip marker length.\n\n          resetInterval = readUint16(data, offset);\n          offset += 2;\n          break;\n\n        case 0xffda: // SOS (Start of Scan)\n          // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n          // of the first scan segment and may only occur once in an image.\n          // Furthermore, to prevent an infinite loop, do *not* attempt to\n          // parse DNL markers during re-parsing of the JPEG scan data.\n          const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n          offset += 2; // Skip marker length.\n\n          const selectorsCount = data[offset++],\n            components = [];\n          for (i = 0; i < selectorsCount; i++) {\n            const index = data[offset++];\n            const componentIndex = frame.componentIds[index];\n            const component = frame.components[componentIndex];\n            component.index = index;\n            const tableSpec = data[offset++];\n            component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n            component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n            components.push(component);\n          }\n          const spectralStart = data[offset++],\n            spectralEnd = data[offset++],\n            successiveApproximation = data[offset++];\n          try {\n            const processed = decodeScan(\n              data,\n              offset,\n              frame,\n              components,\n              resetInterval,\n              spectralStart,\n              spectralEnd,\n              successiveApproximation >> 4,\n              successiveApproximation & 15,\n              parseDNLMarker\n            );\n            offset += processed;\n          } catch (ex) {\n            if (ex instanceof DNLMarkerError) {\n              warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n              return this.parse(data, { dnlScanLines: ex.scanLines });\n            } else if (ex instanceof EOIMarkerError) {\n              warn(`${ex.message} -- ignoring the rest of the image data.`);\n              break markerLoop;\n            }\n            throw ex;\n          }\n          break;\n\n        case 0xffdc: // DNL (Define Number of Lines)\n          // Ignore the marker, since it's being handled in `decodeScan`.\n          offset += 4;\n          break;\n\n        case 0xffff: // Fill bytes\n          if (data[offset] !== 0xff) {\n            // Avoid skipping a valid marker.\n            offset--;\n          }\n          break;\n\n        default:\n          // Could be incorrect encoding -- the last 0xFF byte of the previous\n          // block could have been eaten by the encoder, hence we fallback to\n          // `startPos = offset - 3` when looking for the next valid marker.\n          const nextFileMarker = findNextFileMarker(\n            data,\n            /* currentPos = */ offset - 2,\n            /* startPos = */ offset - 3\n          );\n          if (nextFileMarker && nextFileMarker.invalid) {\n            warn(\n              \"JpegImage.parse - unexpected data, current marker is: \" +\n                nextFileMarker.invalid\n            );\n            offset = nextFileMarker.offset;\n            break;\n          }\n          if (!nextFileMarker || offset >= data.length - 1) {\n            warn(\n              \"JpegImage.parse - reached the end of the image data \" +\n                \"without finding an EOI marker (0xFFD9).\"\n            );\n            break markerLoop;\n          }\n          throw new JpegError(\n            \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n          );\n      }\n      fileMarker = readUint16(data, offset);\n      offset += 2;\n    }\n\n    this.width = frame.samplesPerLine;\n    this.height = frame.scanLines;\n    this.jfif = jfif;\n    this.adobe = adobe;\n    this.components = [];\n    for (let i = 0, ii = frame.components.length; i < ii; i++) {\n      const component = frame.components[i];\n\n      // Prevent errors when DQT markers are placed after SOF{n} markers,\n      // by assigning the `quantizationTable` entry after the entire image\n      // has been parsed (fixes issue7406.pdf).\n      const quantizationTable = quantizationTables[component.quantizationId];\n      if (quantizationTable) {\n        component.quantizationTable = quantizationTable;\n      }\n\n      this.components.push({\n        index: component.index,\n        output: buildComponentData(frame, component),\n        scaleX: component.h / frame.maxH,\n        scaleY: component.v / frame.maxV,\n        blocksPerLine: component.blocksPerLine,\n        blocksPerColumn: component.blocksPerColumn,\n      });\n    }\n    this.numComponents = this.components.length;\n    return undefined;\n  }\n\n  _getLinearizedBlockData(width, height, isSourcePDF = false) {\n    const scaleX = this.width / width,\n      scaleY = this.height / height;\n\n    let component, componentScaleX, componentScaleY, blocksPerScanline;\n    let x, y, i, j, k;\n    let index;\n    let offset = 0;\n    let output;\n    const numComponents = this.components.length;\n    const dataLength = width * height * numComponents;\n    const data = new Uint8ClampedArray(dataLength);\n    const xScaleBlockOffset = new Uint32Array(width);\n    const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n    let lastComponentScaleX;\n\n    for (i = 0; i < numComponents; i++) {\n      component = this.components[i];\n      componentScaleX = component.scaleX * scaleX;\n      componentScaleY = component.scaleY * scaleY;\n      offset = i;\n      output = component.output;\n      blocksPerScanline = (component.blocksPerLine + 1) << 3;\n      // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n      // component data, that's only necessary when `componentScaleX` changes.\n      if (componentScaleX !== lastComponentScaleX) {\n        for (x = 0; x < width; x++) {\n          j = 0 | (x * componentScaleX);\n          xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n        }\n        lastComponentScaleX = componentScaleX;\n      }\n      // linearize the blocks of the component\n      for (y = 0; y < height; y++) {\n        j = 0 | (y * componentScaleY);\n        index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n        for (x = 0; x < width; x++) {\n          data[offset] = output[index + xScaleBlockOffset[x]];\n          offset += numComponents;\n        }\n      }\n    }\n\n    // decodeTransform contains pairs of multiplier (-256..256) and additive\n    let transform = this._decodeTransform;\n\n    // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n    // (this can be observed by extracting the raw image data).\n    // Since the conversion algorithms (see below) were written primarily for\n    // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n    // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n    //\n    // Unfortunately it's not (always) possible to tell, from the image data\n    // alone, if it needs to be inverted. Thus in an attempt to provide better\n    // out-of-box behaviour when `JpegImage` is used standalone, default to\n    // inverting JPEG (CMYK) images if and only if the image data does *not*\n    // come from a PDF file and no `decodeTransform` was passed by the user.\n    if (!isSourcePDF && numComponents === 4 && !transform) {\n      transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n    }\n\n    if (transform) {\n      for (i = 0; i < dataLength; ) {\n        for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n          data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n        }\n      }\n    }\n    return data;\n  }\n\n  get _isColorConversionNeeded() {\n    if (this.adobe) {\n      // The adobe transform marker overrides any previous setting.\n      return !!this.adobe.transformCode;\n    }\n    if (this.numComponents === 3) {\n      if (this._colorTransform === 0) {\n        // If the Adobe transform marker is not present and the image\n        // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n        // then the colours should *not* be transformed.\n        return false;\n      } else if (\n        this.components[0].index === /* \"R\" = */ 0x52 &&\n        this.components[1].index === /* \"G\" = */ 0x47 &&\n        this.components[2].index === /* \"B\" = */ 0x42\n      ) {\n        // If the three components are indexed as RGB in ASCII\n        // then the colours should *not* be transformed.\n        return false;\n      }\n      return true;\n    }\n    // `this.numComponents !== 3`\n    if (this._colorTransform === 1) {\n      // If the Adobe transform marker is not present and the image\n      // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n      // then the colours should be transformed.\n      return true;\n    }\n    return false;\n  }\n\n  _convertYccToRgb(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, length = data.length; i < length; i += 3) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = Y - 179.456 + 1.402 * Cr;\n      data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      data[i + 2] = Y - 226.816 + 1.772 * Cb;\n    }\n    return data;\n  }\n\n  _convertYcckToRgb(data) {\n    let Y, Cb, Cr, k;\n    let offset = 0;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      k = data[i + 3];\n\n      data[offset++] =\n        -122.67195406894 +\n        Cb *\n          (-6.60635669420364e-5 * Cb +\n            0.000437130475926232 * Cr -\n            5.4080610064599e-5 * Y +\n            0.00048449797120281 * k -\n            0.154362151871126) +\n        Cr *\n          (-0.000957964378445773 * Cr +\n            0.000817076911346625 * Y -\n            0.00477271405408747 * k +\n            1.53380253221734) +\n        Y *\n          (0.000961250184130688 * Y -\n            0.00266257332283933 * k +\n            0.48357088451265) +\n        k * (-0.000336197177618394 * k + 0.484791561490776);\n\n      data[offset++] =\n        107.268039397724 +\n        Cb *\n          (2.19927104525741e-5 * Cb -\n            0.000640992018297945 * Cr +\n            0.000659397001245577 * Y +\n            0.000426105652938837 * k -\n            0.176491792462875) +\n        Cr *\n          (-0.000778269941513683 * Cr +\n            0.00130872261408275 * Y +\n            0.000770482631801132 * k -\n            0.151051492775562) +\n        Y *\n          (0.00126935368114843 * Y -\n            0.00265090189010898 * k +\n            0.25802910206845) +\n        k * (-0.000318913117588328 * k - 0.213742400323665);\n\n      data[offset++] =\n        -20.810012546947 +\n        Cb *\n          (-0.000570115196973677 * Cb -\n            2.63409051004589e-5 * Cr +\n            0.0020741088115012 * Y -\n            0.00288260236853442 * k +\n            0.814272968359295) +\n        Cr *\n          (-1.53496057440975e-5 * Cr -\n            0.000132689043961446 * Y +\n            0.000560833691242812 * k -\n            0.195152027534049) +\n        Y *\n          (0.00174418132927582 * Y -\n            0.00255243321439347 * k +\n            0.116935020465145) +\n        k * (-0.000343531996510555 * k + 0.24165260232407);\n    }\n    // Ensure that only the converted RGB data is returned.\n    return data.subarray(0, offset);\n  }\n\n  _convertYcckToCmyk(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = 434.456 - Y - 1.402 * Cr;\n      data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n      data[i + 2] = 481.816 - Y - 1.772 * Cb;\n      // K in data[i + 3] is unchanged\n    }\n    return data;\n  }\n\n  _convertCmykToRgb(data) {\n    let c, m, y, k;\n    let offset = 0;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      c = data[i];\n      m = data[i + 1];\n      y = data[i + 2];\n      k = data[i + 3];\n\n      data[offset++] =\n        255 +\n        c *\n          (-0.00006747147073602441 * c +\n            0.0008379262121013727 * m +\n            0.0002894718188643294 * y +\n            0.003264231057537806 * k -\n            1.1185611867203937) +\n        m *\n          (0.000026374107616089405 * m -\n            0.00008626949158638572 * y -\n            0.0002748769067499491 * k -\n            0.02155688794978967) +\n        y *\n          (-0.00003878099212869363 * y -\n            0.0003267808279485286 * k +\n            0.0686742238595345) -\n        k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n      data[offset++] =\n        255 +\n        c *\n          (0.00013596372813588848 * c +\n            0.000924537132573585 * m +\n            0.00010567359618683593 * y +\n            0.0004791864687436512 * k -\n            0.3109689587515875) +\n        m *\n          (-0.00023545346108370344 * m +\n            0.0002702845253534714 * y +\n            0.0020200308977307156 * k -\n            0.7488052167015494) +\n        y *\n          (0.00006834815998235662 * y +\n            0.00015168452363460973 * k -\n            0.09751927774728933) -\n        k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n      data[offset++] =\n        255 +\n        c *\n          (0.000013598650411385307 * c +\n            0.00012423956175490851 * m +\n            0.0004751985097583589 * y -\n            0.0000036729317476630422 * k -\n            0.05562186980264034) +\n        m *\n          (0.00016141380598724676 * m +\n            0.0009692239130725186 * y +\n            0.0007782692450036253 * k -\n            0.44015232367526463) +\n        y *\n          (5.068882914068769e-7 * y +\n            0.0017778369011375071 * k -\n            0.7591454649749609) -\n        k * (0.0003435319965105553 * k + 0.7063770186160144);\n    }\n    // Ensure that only the converted RGB data is returned.\n    return data.subarray(0, offset);\n  }\n\n  getData({ width, height, forceRGB = false, isSourcePDF = false }) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        isSourcePDF === true,\n        'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n      );\n    }\n    if (this.numComponents > 4) {\n      throw new JpegError(\"Unsupported color mode\");\n    }\n    // Type of data: Uint8ClampedArray(width * height * numComponents)\n    const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n    if (this.numComponents === 1 && forceRGB) {\n      const dataLength = data.length;\n      const rgbData = new Uint8ClampedArray(dataLength * 3);\n      let offset = 0;\n      for (let i = 0; i < dataLength; i++) {\n        const grayColor = data[i];\n        rgbData[offset++] = grayColor;\n        rgbData[offset++] = grayColor;\n        rgbData[offset++] = grayColor;\n      }\n      return rgbData;\n    } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n      return this._convertYccToRgb(data);\n    } else if (this.numComponents === 4) {\n      if (this._isColorConversionNeeded) {\n        if (forceRGB) {\n          return this._convertYcckToRgb(data);\n        }\n        return this._convertYcckToCmyk(data);\n      } else if (forceRGB) {\n        return this._convertCmykToRgb(data);\n      }\n    }\n    return data;\n  }\n}\n\nexport { JpegImage };\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\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n  constructor(msg) {\n    super(`JPX error: ${msg}`, \"JpxError\");\n  }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n  LL: 0,\n  LH: 1,\n  HL: 1,\n  HH: 2,\n};\n\nclass JpxImage {\n  constructor() {\n    this.failOnCorruptedImage = false;\n  }\n\n  parse(data) {\n    const head = readUint16(data, 0);\n    // No box header, immediate start of codestream (SOC)\n    if (head === 0xff4f) {\n      this.parseCodestream(data, 0, data.length);\n      return;\n    }\n\n    const length = data.length;\n    let position = 0;\n    while (position < length) {\n      let headerSize = 8;\n      let lbox = readUint32(data, position);\n      const tbox = readUint32(data, position + 4);\n      position += headerSize;\n      if (lbox === 1) {\n        // XLBox: read UInt64 according to spec.\n        // JavaScript's int precision of 53 bit should be sufficient here.\n        lbox =\n          readUint32(data, position) * 4294967296 +\n          readUint32(data, position + 4);\n        position += 8;\n        headerSize += 8;\n      }\n      if (lbox === 0) {\n        lbox = length - position + headerSize;\n      }\n      if (lbox < headerSize) {\n        throw new JpxError(\"Invalid box field size\");\n      }\n      const dataLength = lbox - headerSize;\n      let jumpDataLength = true;\n      switch (tbox) {\n        case 0x6a703268: // 'jp2h'\n          jumpDataLength = false; // parsing child boxes\n          break;\n        case 0x636f6c72: // 'colr'\n          // Colorspaces are not used, the CS from the PDF is used.\n          const method = data[position];\n          if (method === 1) {\n            // enumerated colorspace\n            const colorspace = readUint32(data, position + 3);\n            switch (colorspace) {\n              case 16: // this indicates a sRGB colorspace\n              case 17: // this indicates a grayscale colorspace\n              case 18: // this indicates a YUV colorspace\n                break;\n              default:\n                warn(\"Unknown colorspace \" + colorspace);\n                break;\n            }\n          } else if (method === 2) {\n            info(\"ICC profile not supported\");\n          }\n          break;\n        case 0x6a703263: // 'jp2c'\n          this.parseCodestream(data, position, position + dataLength);\n          break;\n        case 0x6a502020: // 'jP\\024\\024'\n          if (readUint32(data, position) !== 0x0d0a870a) {\n            warn(\"Invalid JP2 signature\");\n          }\n          break;\n        // The following header types are valid but currently not used:\n        case 0x6a501a1a: // 'jP\\032\\032'\n        case 0x66747970: // 'ftyp'\n        case 0x72726571: // 'rreq'\n        case 0x72657320: // 'res '\n        case 0x69686472: // 'ihdr'\n          break;\n        default:\n          const headerType = String.fromCharCode(\n            (tbox >> 24) & 0xff,\n            (tbox >> 16) & 0xff,\n            (tbox >> 8) & 0xff,\n            tbox & 0xff\n          );\n          warn(`Unsupported header type ${tbox} (${headerType}).`);\n          break;\n      }\n      if (jumpDataLength) {\n        position += dataLength;\n      }\n    }\n  }\n\n  parseImageProperties(stream) {\n    let newByte = stream.getByte();\n    while (newByte >= 0) {\n      const oldByte = newByte;\n      newByte = stream.getByte();\n      const code = (oldByte << 8) | newByte;\n      // Image and tile size (SIZ)\n      if (code === 0xff51) {\n        stream.skip(4);\n        const Xsiz = stream.getInt32() >>> 0; // Byte 4\n        const Ysiz = stream.getInt32() >>> 0; // Byte 8\n        const XOsiz = stream.getInt32() >>> 0; // Byte 12\n        const YOsiz = stream.getInt32() >>> 0; // Byte 16\n        stream.skip(16);\n        const Csiz = stream.getUint16(); // Byte 36\n        this.width = Xsiz - XOsiz;\n        this.height = Ysiz - YOsiz;\n        this.componentsCount = Csiz;\n        // Results are always returned as `Uint8ClampedArray`s.\n        this.bitsPerComponent = 8;\n        return;\n      }\n    }\n    throw new JpxError(\"No size marker found in JPX stream\");\n  }\n\n  parseCodestream(data, start, end) {\n    const context = {};\n    let doNotRecover = false;\n    try {\n      let position = start;\n      while (position + 1 < end) {\n        const code = readUint16(data, position);\n        position += 2;\n\n        let length = 0,\n          j,\n          sqcd,\n          spqcds,\n          spqcdSize,\n          scalarExpounded,\n          tile;\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            const 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            const componentsCount = readUint16(data, position + 36);\n            siz.Csiz = componentsCount;\n            const components = [];\n            j = position + 38;\n            for (let i = 0; i < componentsCount; i++) {\n              const component = {\n                precision: (data[j] & 0x7f) + 1,\n                isSigned: !!(data[j] & 0x80),\n                XRsiz: data[j + 1],\n                YRsiz: data[j + 2],\n              };\n              j += 3;\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            const qcd = {};\n            j = position + 2;\n            sqcd = data[j++];\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 new Error(\"Invalid SQcd value \" + sqcd);\n            }\n            qcd.noQuantization = spqcdSize === 8;\n            qcd.scalarExpounded = scalarExpounded;\n            qcd.guardBits = sqcd >> 5;\n            spqcds = [];\n            while (j < length + position) {\n              const 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            const qcc = {};\n            j = position + 2;\n            let cqcc;\n            if (context.SIZ.Csiz < 257) {\n              cqcc = data[j++];\n            } else {\n              cqcc = readUint16(data, j);\n              j += 2;\n            }\n            sqcd = data[j++];\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 new Error(\"Invalid SQcd value \" + sqcd);\n            }\n            qcc.noQuantization = spqcdSize === 8;\n            qcc.scalarExpounded = scalarExpounded;\n            qcc.guardBits = sqcd >> 5;\n            spqcds = [];\n            while (j < length + position) {\n              const 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            }\n            break;\n          case 0xff52: // Coding style default (COD)\n            length = readUint16(data, position);\n            const cod = {};\n            j = position + 2;\n            const scod = data[j++];\n            cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n            cod.sopMarkerUsed = !!(scod & 2);\n            cod.ephMarkerUsed = !!(scod & 4);\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            const blockStyle = data[j++];\n            cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n            cod.resetContextProbabilities = !!(blockStyle & 2);\n            cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n            cod.verticallyStripe = !!(blockStyle & 8);\n            cod.predictableTermination = !!(blockStyle & 16);\n            cod.segmentationSymbolUsed = !!(blockStyle & 32);\n            cod.reversibleTransformation = data[j++];\n            if (cod.entropyCoderWithCustomPrecincts) {\n              const precinctsSizes = [];\n              while (j < length + position) {\n                const precinctsSize = data[j++];\n                precinctsSizes.push({\n                  PPx: precinctsSize & 0xf,\n                  PPy: precinctsSize >> 4,\n                });\n              }\n              cod.precinctsSizes = precinctsSizes;\n            }\n            const unsupported = [];\n            if (cod.selectiveArithmeticCodingBypass) {\n              unsupported.push(\"selectiveArithmeticCodingBypass\");\n            }\n            if (cod.terminationOnEachCodingPass) {\n              unsupported.push(\"terminationOnEachCodingPass\");\n            }\n            if (cod.verticallyStripe) {\n              unsupported.push(\"verticallyStripe\");\n            }\n            if (cod.predictableTermination) {\n              unsupported.push(\"predictableTermination\");\n            }\n            if (unsupported.length > 0) {\n              doNotRecover = true;\n              warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\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            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            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            parseTilePackets(context, data, position, length);\n            break;\n          case 0xff53: // Coding style component (COC)\n            warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n          /* falls through */\n          case 0xff55: // Tile-part lengths, main header (TLM)\n          case 0xff57: // Packet length, main header (PLM)\n          case 0xff58: // Packet length, tile-part header (PLT)\n          case 0xff64: // Comment (COM)\n            length = readUint16(data, position);\n            // skipping content\n            break;\n          default:\n            throw new Error(\"Unknown codestream code: \" + code.toString(16));\n        }\n        position += length;\n      }\n    } catch (e) {\n      if (doNotRecover || this.failOnCorruptedImage) {\n        throw new JpxError(e.message);\n      } else {\n        warn(`JPX: Trying to recover from: \"${e.message}\".`);\n      }\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\nfunction 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}\nfunction calculateTileGrids(context, components) {\n  const siz = context.SIZ;\n  // Section B.3 Division into tile and tile-components\n  const tiles = [];\n  let tile;\n  const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n  const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n  for (let q = 0; q < numYtiles; q++) {\n    for (let p = 0; p < numXtiles; p++) {\n      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  const componentsCount = siz.Csiz;\n  for (let i = 0, ii = componentsCount; i < ii; i++) {\n    const component = components[i];\n    for (let j = 0, jj = tiles.length; j < jj; j++) {\n      const tileComponent = {};\n      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}\nfunction getBlocksDimensions(context, component, r) {\n  const codOrCoc = component.codingStyleParameters;\n  const 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_ =\n    r > 0\n      ? Math.min(codOrCoc.xcb, result.PPx - 1)\n      : Math.min(codOrCoc.xcb, result.PPx);\n  result.ycb_ =\n    r > 0\n      ? Math.min(codOrCoc.ycb, result.PPy - 1)\n      : Math.min(codOrCoc.ycb, result.PPy);\n  return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n  // Section B.6 Division resolution to precincts\n  const precinctWidth = 1 << dimensions.PPx;\n  const precinctHeight = 1 << dimensions.PPy;\n  // Jasper introduces codeblock groups for mapping each subband codeblocks\n  // to precincts. Precinct partition divides a resolution according to width\n  // and height parameters. The subband that belongs to the resolution level\n  // has a different size than the level, unless it is the zero resolution.\n\n  // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n  // The precinct partitioning for a particular subband is derived from a\n  // partitioning of its parent LL band (i.e., the LL band at the next higher\n  // resolution level)... The LL band associated with each resolution level is\n  // divided into precincts... Each of the resulting precinct regions is then\n  // mapped into its child subbands (if any) at the next lower resolution\n  // level. This is accomplished by using the coordinate transformation\n  // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n  // coordinates of a point in the LL band and child subband, respectively.\n  const isZeroRes = resolution.resLevel === 0;\n  const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n  const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n  const numprecinctswide =\n    resolution.trx1 > resolution.trx0\n      ? Math.ceil(resolution.trx1 / precinctWidth) -\n        Math.floor(resolution.trx0 / precinctWidth)\n      : 0;\n  const numprecinctshigh =\n    resolution.try1 > resolution.try0\n      ? Math.ceil(resolution.try1 / precinctHeight) -\n        Math.floor(resolution.try0 / precinctHeight)\n      : 0;\n  const numprecincts = numprecinctswide * numprecinctshigh;\n\n  resolution.precinctParameters = {\n    precinctWidth,\n    precinctHeight,\n    numprecinctswide,\n    numprecinctshigh,\n    numprecincts,\n    precinctWidthInSubband,\n    precinctHeightInSubband,\n  };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n  // Section B.7 Division sub-band into code-blocks\n  const xcb_ = dimensions.xcb_;\n  const ycb_ = dimensions.ycb_;\n  const codeblockWidth = 1 << xcb_;\n  const codeblockHeight = 1 << ycb_;\n  const cbx0 = subband.tbx0 >> xcb_;\n  const cby0 = subband.tby0 >> ycb_;\n  const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n  const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n  const precinctParameters = subband.resolution.precinctParameters;\n  const codeblocks = [];\n  const precincts = [];\n  let i, j, codeblock, precinctNumber;\n  for (j = cby0; j < cby1; j++) {\n    for (i = cbx0; i < cbx1; i++) {\n      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\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\n      // Calculate precinct number for this codeblock, codeblock position\n      // should be relative to its subband, use actual dimension and position\n      // See comment about codeblock group width and height\n      const pi = Math.floor(\n        (codeblock.tbx0_ - subband.tbx0) /\n          precinctParameters.precinctWidthInSubband\n      );\n      const pj = Math.floor(\n        (codeblock.tby0_ - subband.tby0) /\n          precinctParameters.precinctHeightInSubband\n      );\n      precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n      codeblock.precinctNumber = precinctNumber;\n      codeblock.subbandType = subband.type;\n      codeblock.Lblock = 3;\n\n      if (\n        codeblock.tbx1_ <= codeblock.tbx0_ ||\n        codeblock.tby1_ <= codeblock.tby0_\n      ) {\n        continue;\n      }\n      codeblocks.push(codeblock);\n      // building precinct for the sub-band\n      let precinct = precincts[precinctNumber];\n      if (precinct !== undefined) {\n        if (i < precinct.cbxMin) {\n          precinct.cbxMin = i;\n        } else if (i > precinct.cbxMax) {\n          precinct.cbxMax = i;\n        }\n        if (j < precinct.cbyMin) {\n          precinct.cbxMin = j;\n        } else if (j > precinct.cbyMax) {\n          precinct.cbyMax = j;\n        }\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 - cby0 + 1,\n  };\n  subband.codeblocks = codeblocks;\n  subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n  const precinctCodeblocks = [];\n  // Section B.10.8 Order of info in packet\n  const subbands = resolution.subbands;\n  // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n  for (let i = 0, ii = subbands.length; i < ii; i++) {\n    const subband = subbands[i];\n    const codeblocks = subband.codeblocks;\n    for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n      const codeblock = codeblocks[j];\n      if (codeblock.precinctNumber !== precinctNumber) {\n        continue;\n      }\n      precinctCodeblocks.push(codeblock);\n    }\n  }\n  return {\n    layerNumber,\n    codeblocks: precinctCodeblocks,\n  };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      tile.components[q].codingStyleParameters.decompositionLevelsCount\n    );\n  }\n\n  let l = 0,\n    r = 0,\n    i = 0,\n    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          const component = tile.components[i];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          for (; k < numprecincts; ) {\n            const 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 new JpxError(\"Out of packets\");\n  };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      tile.components[q].codingStyleParameters.decompositionLevelsCount\n    );\n  }\n\n  let r = 0,\n    l = 0,\n    i = 0,\n    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          const component = tile.components[i];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          for (; k < numprecincts; ) {\n            const 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 new JpxError(\"Out of packets\");\n  };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let l, r, c, p;\n  let maxDecompositionLevelsCount = 0;\n  for (c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      component.codingStyleParameters.decompositionLevelsCount\n    );\n  }\n  const maxNumPrecinctsInLevel = new Int32Array(\n    maxDecompositionLevelsCount + 1\n  );\n  for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n    let maxNumPrecincts = 0;\n    for (c = 0; c < componentsCount; ++c) {\n      const resolutions = tile.components[c].resolutions;\n      if (r < resolutions.length) {\n        maxNumPrecincts = Math.max(\n          maxNumPrecincts,\n          resolutions[r].precinctParameters.numprecincts\n        );\n      }\n    }\n    maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n  }\n  l = 0;\n  r = 0;\n  c = 0;\n  p = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.3 Resolution-position-component-layer\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; p < maxNumPrecinctsInLevel[r]; p++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          if (p >= numprecincts) {\n            continue;\n          }\n          for (; l < layersCount; ) {\n            const packet = createPacket(resolution, p, l);\n            l++;\n            return packet;\n          }\n          l = 0;\n        }\n        c = 0;\n      }\n      p = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  const precinctsIterationSizes = precinctsSizes;\n  let l = 0,\n    r = 0,\n    c = 0,\n    px = 0,\n    py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.4 Position-component-resolution-layer\n    for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n      for (; px < precinctsIterationSizes.maxNumWide; px++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n          const decompositionLevelsCount =\n            component.codingStyleParameters.decompositionLevelsCount;\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale =\n              precinctsSizes.components[c].resolutions[r];\n            const k = getPrecinctIndexIfExist(\n              px,\n              py,\n              sizeInImageScale,\n              precinctsIterationSizes,\n              resolution\n            );\n            if (k === null) {\n              continue;\n            }\n            for (; l < layersCount; ) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n            l = 0;\n          }\n          r = 0;\n        }\n        c = 0;\n      }\n      px = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  let l = 0,\n    r = 0,\n    c = 0,\n    px = 0,\n    py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.5 Component-position-resolution-layer\n    for (; c < componentsCount; ++c) {\n      const component = tile.components[c];\n      const precinctsIterationSizes = precinctsSizes.components[c];\n      const decompositionLevelsCount =\n        component.codingStyleParameters.decompositionLevelsCount;\n      for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n        for (; px < precinctsIterationSizes.maxNumWide; px++) {\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n            const k = getPrecinctIndexIfExist(\n              px,\n              py,\n              sizeInImageScale,\n              precinctsIterationSizes,\n              resolution\n            );\n            if (k === null) {\n              continue;\n            }\n            for (; l < layersCount; ) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n            l = 0;\n          }\n          r = 0;\n        }\n        px = 0;\n      }\n      py = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction getPrecinctIndexIfExist(\n  pxIndex,\n  pyIndex,\n  sizeInImageScale,\n  precinctIterationSizes,\n  resolution\n) {\n  const posX = pxIndex * precinctIterationSizes.minWidth;\n  const posY = pyIndex * precinctIterationSizes.minHeight;\n  if (\n    posX % sizeInImageScale.width !== 0 ||\n    posY % sizeInImageScale.height !== 0\n  ) {\n    return null;\n  }\n  const startPrecinctRowIndex =\n    (posY / sizeInImageScale.width) *\n    resolution.precinctParameters.numprecinctswide;\n  return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n  const componentsCount = tile.components.length;\n  let minWidth = Number.MAX_VALUE;\n  let minHeight = Number.MAX_VALUE;\n  let maxNumWide = 0;\n  let maxNumHigh = 0;\n  const sizePerComponent = new Array(componentsCount);\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount =\n      component.codingStyleParameters.decompositionLevelsCount;\n    const sizePerResolution = new Array(decompositionLevelsCount + 1);\n    let minWidthCurrentComponent = Number.MAX_VALUE;\n    let minHeightCurrentComponent = Number.MAX_VALUE;\n    let maxNumWideCurrentComponent = 0;\n    let maxNumHighCurrentComponent = 0;\n    let scale = 1;\n    for (let r = decompositionLevelsCount; r >= 0; --r) {\n      const resolution = component.resolutions[r];\n      const widthCurrentResolution =\n        scale * resolution.precinctParameters.precinctWidth;\n      const heightCurrentResolution =\n        scale * resolution.precinctParameters.precinctHeight;\n      minWidthCurrentComponent = Math.min(\n        minWidthCurrentComponent,\n        widthCurrentResolution\n      );\n      minHeightCurrentComponent = Math.min(\n        minHeightCurrentComponent,\n        heightCurrentResolution\n      );\n      maxNumWideCurrentComponent = Math.max(\n        maxNumWideCurrentComponent,\n        resolution.precinctParameters.numprecinctswide\n      );\n      maxNumHighCurrentComponent = Math.max(\n        maxNumHighCurrentComponent,\n        resolution.precinctParameters.numprecinctshigh\n      );\n      sizePerResolution[r] = {\n        width: widthCurrentResolution,\n        height: heightCurrentResolution,\n      };\n      scale <<= 1;\n    }\n    minWidth = Math.min(minWidth, minWidthCurrentComponent);\n    minHeight = Math.min(minHeight, minHeightCurrentComponent);\n    maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n    maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n    sizePerComponent[c] = {\n      resolutions: sizePerResolution,\n      minWidth: minWidthCurrentComponent,\n      minHeight: minHeightCurrentComponent,\n      maxNumWide: maxNumWideCurrentComponent,\n      maxNumHigh: maxNumHighCurrentComponent,\n    };\n  }\n  return {\n    components: sizePerComponent,\n    minWidth,\n    minHeight,\n    maxNumWide,\n    maxNumHigh,\n  };\n}\nfunction buildPackets(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const componentsCount = siz.Csiz;\n  // Creating resolutions and sub-bands for each component\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount =\n      component.codingStyleParameters.decompositionLevelsCount;\n    // Section B.5 Resolution levels and sub-bands\n    const resolutions = [];\n    const subbands = [];\n    for (let r = 0; r <= decompositionLevelsCount; r++) {\n      const blocksDimensions = getBlocksDimensions(context, component, r);\n      const resolution = {};\n      const 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      resolution.resLevel = r;\n      buildPrecincts(context, resolution, blocksDimensions);\n      resolutions.push(resolution);\n\n      let 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        const bscale = 1 << (decompositionLevelsCount - r + 1);\n        const 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  const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n  switch (progressionOrder) {\n    case 0:\n      tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n        context\n      );\n      break;\n    case 1:\n      tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n        context\n      );\n      break;\n    case 2:\n      tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n        context\n      );\n      break;\n    case 3:\n      tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n        context\n      );\n      break;\n    case 4:\n      tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n        context\n      );\n      break;\n    default:\n      throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n  }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n  let position = 0;\n  let buffer,\n    bufferSize = 0,\n    skipNextBit = false;\n  function readBits(count) {\n    while (bufferSize < count) {\n      const 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 skipMarkerIfEqual(value) {\n    if (\n      data[offset + position - 1] === 0xff &&\n      data[offset + position] === value\n    ) {\n      skipBytes(1);\n      return true;\n    } else if (\n      data[offset + position] === 0xff &&\n      data[offset + position + 1] === value\n    ) {\n      skipBytes(2);\n      return true;\n    }\n    return false;\n  }\n  function skipBytes(count) {\n    position += count;\n  }\n  function alignToByte() {\n    bufferSize = 0;\n    if (skipNextBit) {\n      position++;\n      skipNextBit = false;\n    }\n  }\n  function readCodingpasses() {\n    if (readBits(1) === 0) {\n      return 1;\n    }\n    if (readBits(1) === 0) {\n      return 2;\n    }\n    let value = readBits(2);\n    if (value < 3) {\n      return value + 3;\n    }\n    value = readBits(5);\n    if (value < 31) {\n      return value + 6;\n    }\n    value = readBits(7);\n    return value + 37;\n  }\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const sopMarkerUsed = context.COD.sopMarkerUsed;\n  const ephMarkerUsed = context.COD.ephMarkerUsed;\n  const packetsIterator = tile.packetsIterator;\n  while (position < dataLength) {\n    alignToByte();\n    if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n      // Skip also marker segment length and packet sequence ID\n      skipBytes(4);\n    }\n    const packet = packetsIterator.nextPacket();\n    if (!readBits(1)) {\n      continue;\n    }\n    const layerNumber = packet.layerNumber,\n      queue = [];\n    let codeblock;\n    for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n      codeblock = packet.codeblocks[i];\n      let precinct = codeblock.precinct;\n      const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n      const codeblockRow = codeblock.cby - precinct.cbyMin;\n      let codeblockIncluded = false;\n      let firstTimeInclusion = false;\n      let valueReady, zeroBitPlanesTree;\n      if (codeblock.included !== undefined) {\n        codeblockIncluded = !!readBits(1);\n      } else {\n        // reading inclusion tree\n        precinct = codeblock.precinct;\n        let inclusionTree;\n        if (precinct.inclusionTree !== undefined) {\n          inclusionTree = precinct.inclusionTree;\n        } else {\n          // building inclusion and zero bit-planes trees\n          const width = precinct.cbxMax - precinct.cbxMin + 1;\n          const 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          for (let l = 0; l < layerNumber; l++) {\n            if (readBits(1) !== 0) {\n              throw new JpxError(\"Invalid tag tree\");\n            }\n          }\n        }\n\n        if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n          while (true) {\n            if (readBits(1)) {\n              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      }\n      if (firstTimeInclusion) {\n        zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n        zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n        while (true) {\n          if (readBits(1)) {\n            valueReady = !zeroBitPlanesTree.nextLevel();\n            if (valueReady) {\n              break;\n            }\n          } else {\n            zeroBitPlanesTree.incrementValue();\n          }\n        }\n        codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n      }\n      const codingpasses = readCodingpasses();\n      while (readBits(1)) {\n        codeblock.Lblock++;\n      }\n      const codingpassesLog2 = log2(codingpasses);\n      // rounding down log2\n      const bits =\n        (codingpasses < 1 << codingpassesLog2\n          ? codingpassesLog2 - 1\n          : codingpassesLog2) + codeblock.Lblock;\n      const codedDataLength = readBits(bits);\n      queue.push({\n        codeblock,\n        codingpasses,\n        dataLength: codedDataLength,\n      });\n    }\n    alignToByte();\n    if (ephMarkerUsed) {\n      skipMarkerIfEqual(0x92);\n    }\n    while (queue.length > 0) {\n      const packetItem = queue.shift();\n      codeblock = packetItem.codeblock;\n      if (codeblock.data === undefined) {\n        codeblock.data = [];\n      }\n      codeblock.data.push({\n        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}\nfunction copyCoefficients(\n  coefficients,\n  levelWidth,\n  levelHeight,\n  subband,\n  delta,\n  mb,\n  reversible,\n  segmentationSymbolUsed,\n  resetContextProbabilities\n) {\n  const x0 = subband.tbx0;\n  const y0 = subband.tby0;\n  const width = subband.tbx1 - subband.tbx0;\n  const codeblocks = subband.codeblocks;\n  const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n  const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n  for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n    const codeblock = codeblocks[i];\n    const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n    const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n    if (blockWidth === 0 || blockHeight === 0) {\n      continue;\n    }\n    if (codeblock.data === undefined) {\n      continue;\n    }\n\n    const bitModel = new BitModel(\n      blockWidth,\n      blockHeight,\n      codeblock.subbandType,\n      codeblock.zeroBitPlanes,\n      mb\n    );\n    let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n    // collect data\n    const data = codeblock.data;\n    let totalLength = 0,\n      codingpasses = 0;\n    let j, jj, dataItem;\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      totalLength += dataItem.end - dataItem.start;\n      codingpasses += dataItem.codingpasses;\n    }\n    const encodedData = new Uint8Array(totalLength);\n    let position = 0;\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n      encodedData.set(chunk, position);\n      position += chunk.length;\n    }\n    // decoding the item\n    const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n    bitModel.setDecoder(decoder);\n\n    for (j = 0; j < codingpasses; j++) {\n      switch (currentCodingpassType) {\n        case 0:\n          bitModel.runSignificancePropagationPass();\n          break;\n        case 1:\n          bitModel.runMagnitudeRefinementPass();\n          break;\n        case 2:\n          bitModel.runCleanupPass();\n          if (segmentationSymbolUsed) {\n            bitModel.checkSegmentationSymbol();\n          }\n          break;\n      }\n\n      if (resetContextProbabilities) {\n        bitModel.reset();\n      }\n\n      currentCodingpassType = (currentCodingpassType + 1) % 3;\n    }\n\n    let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n    const sign = bitModel.coefficentsSign;\n    const magnitude = bitModel.coefficentsMagnitude;\n    const bitsDecoded = bitModel.bitsDecoded;\n    const magnitudeCorrection = reversible ? 0 : 0.5;\n    let k, n, nb;\n    position = 0;\n    // Do the interleaving of Section F.3.3 here, so we do not need\n    // to copy later. LL level is not interleaved, just copied.\n    const interleave = subband.type !== \"LL\";\n    for (j = 0; j < blockHeight; j++) {\n      const row = (offset / width) | 0; // row in the non-interleaved subband\n      const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n      for (k = 0; k < blockWidth; k++) {\n        n = magnitude[position];\n        if (n !== 0) {\n          n = (n + magnitudeCorrection) * delta;\n          if (sign[position] !== 0) {\n            n = -n;\n          }\n          nb = bitsDecoded[position];\n          const pos = interleave ? levelOffset + (offset << 1) : offset;\n          if (reversible && nb >= mb) {\n            coefficients[pos] = n;\n          } else {\n            coefficients[pos] = n * (1 << (mb - nb));\n          }\n        }\n        offset++;\n        position++;\n      }\n      offset += width - blockWidth;\n    }\n  }\n}\nfunction transformTile(context, tile, c) {\n  const component = tile.components[c];\n  const codingStyleParameters = component.codingStyleParameters;\n  const quantizationParameters = component.quantizationParameters;\n  const decompositionLevelsCount =\n    codingStyleParameters.decompositionLevelsCount;\n  const spqcds = quantizationParameters.SPqcds;\n  const scalarExpounded = quantizationParameters.scalarExpounded;\n  const guardBits = quantizationParameters.guardBits;\n  const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n  const resetContextProbabilities =\n    codingStyleParameters.resetContextProbabilities;\n  const precision = context.components[c].precision;\n\n  const reversible = codingStyleParameters.reversibleTransformation;\n  const transform = reversible\n    ? new ReversibleTransform()\n    : new IrreversibleTransform();\n\n  const subbandCoefficients = [];\n  let b = 0;\n  for (let i = 0; i <= decompositionLevelsCount; i++) {\n    const resolution = component.resolutions[i];\n\n    const width = resolution.trx1 - resolution.trx0;\n    const height = resolution.try1 - resolution.try0;\n    // Allocate space for the whole sublevel.\n    const coefficients = new Float32Array(width * height);\n\n    for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n      let 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        b++;\n      }\n\n      const subband = resolution.subbands[j];\n      const gainLog2 = SubbandsGainLog2[subband.type];\n\n      // calculate quantization coefficient (Section E.1.1.1)\n      const delta = reversible\n        ? 1\n        : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n      const mb = guardBits + epsilon - 1;\n\n      // In the first resolution level, copyCoefficients will fill the\n      // whole array with coefficients. In the succeeding passes,\n      // copyCoefficients will consecutively fill in the values that belong\n      // to the interleaved positions of the HL, LH, and HH coefficients.\n      // The LL coefficients will then be interleaved in Transform.iterate().\n      copyCoefficients(\n        coefficients,\n        width,\n        height,\n        subband,\n        delta,\n        mb,\n        reversible,\n        segmentationSymbolUsed,\n        resetContextProbabilities\n      );\n    }\n    subbandCoefficients.push({\n      width,\n      height,\n      items: coefficients,\n    });\n  }\n\n  const result = transform.calculate(\n    subbandCoefficients,\n    component.tcx0,\n    component.tcy0\n  );\n  return {\n    left: component.tcx0,\n    top: component.tcy0,\n    width: result.width,\n    height: result.height,\n    items: result.items,\n  };\n}\nfunction transformComponents(context) {\n  const siz = context.SIZ;\n  const components = context.components;\n  const componentsCount = siz.Csiz;\n  const resultImages = [];\n  for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n    const tile = context.tiles[i];\n    const transformedTiles = [];\n    for (let c = 0; c < componentsCount; c++) {\n      transformedTiles[c] = transformTile(context, tile, c);\n    }\n    const tile0 = transformedTiles[0];\n    const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n    const result = {\n      left: tile0.left,\n      top: tile0.top,\n      width: tile0.width,\n      height: tile0.height,\n      items: out,\n    };\n\n    // Section G.2.2 Inverse multi component transform\n    let shift, offset;\n    let pos = 0,\n      j,\n      jj,\n      y0,\n      y1,\n      y2;\n    if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n      const fourComponents = componentsCount === 4;\n      const y0items = transformedTiles[0].items;\n      const y1items = transformedTiles[1].items;\n      const y2items = transformedTiles[2].items;\n      const y3items = fourComponents ? transformedTiles[3].items : null;\n\n      // HACK: The multiple component transform formulas below assume that\n      // all components have the same precision. With this in mind, we\n      // compute shift and offset only once.\n      shift = components[0].precision - 8;\n      offset = (128 << shift) + 0.5;\n\n      const component0 = tile.components[0];\n      const alpha01 = componentsCount - 3;\n      jj = y0items.length;\n      if (!component0.codingStyleParameters.reversibleTransformation) {\n        // inverse irreversible multiple component transform\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          out[pos++] = (y0 + 1.402 * y2) >> shift;\n          out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n          out[pos++] = (y0 + 1.772 * y1) >> shift;\n        }\n      } else {\n        // inverse reversible multiple component transform\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          const g = y0 - ((y2 + y1) >> 2);\n\n          out[pos++] = (g + y2) >> shift;\n          out[pos++] = g >> shift;\n          out[pos++] = (g + y1) >> shift;\n        }\n      }\n      if (fourComponents) {\n        for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n          out[pos] = (y3items[j] + offset) >> shift;\n        }\n      }\n    } else {\n      // no multi-component transform\n      for (let c = 0; c < componentsCount; c++) {\n        const items = transformedTiles[c].items;\n        shift = components[c].precision - 8;\n        offset = (128 << shift) + 0.5;\n        for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n          out[pos] = (items[j] + offset) >> shift;\n          pos += componentsCount;\n        }\n      }\n    }\n    resultImages.push(result);\n  }\n  return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n  const siz = context.SIZ;\n  const componentsCount = siz.Csiz;\n  const tile = context.tiles[tileIndex];\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const qcdOrQcc =\n      context.currentTile.QCC[c] !== undefined\n        ? context.currentTile.QCC[c]\n        : context.currentTile.QCD;\n    component.quantizationParameters = qcdOrQcc;\n    const codOrCoc =\n      context.currentTile.COC[c] !== undefined\n        ? context.currentTile.COC[c]\n        : context.currentTile.COD;\n    component.codingStyleParameters = codOrCoc;\n  }\n  tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n  constructor(width, height) {\n    const levelsLength = log2(Math.max(width, height)) + 1;\n    this.levels = [];\n    for (let i = 0; i < levelsLength; i++) {\n      const level = {\n        width,\n        height,\n        items: [],\n      };\n      this.levels.push(level);\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j) {\n    let currentLevel = 0,\n      value = 0,\n      level;\n    while (currentLevel < this.levels.length) {\n      level = this.levels[currentLevel];\n      const index = i + j * level.width;\n      if (level.items[index] !== undefined) {\n        value = level.items[index];\n        break;\n      }\n      level.index = index;\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n    currentLevel--;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    this.currentLevel = currentLevel;\n    delete this.value;\n  }\n\n  incrementValue() {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index]++;\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const 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    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n}\n\nclass InclusionTree {\n  constructor(width, height, defaultValue) {\n    const levelsLength = log2(Math.max(width, height)) + 1;\n    this.levels = [];\n    for (let i = 0; i < levelsLength; i++) {\n      const items = new Uint8Array(width * height);\n      for (let j = 0, jj = items.length; j < jj; j++) {\n        items[j] = defaultValue;\n      }\n\n      const level = {\n        width,\n        height,\n        items,\n      };\n      this.levels.push(level);\n\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j, stopValue) {\n    let currentLevel = 0;\n    while (currentLevel < this.levels.length) {\n      const level = this.levels[currentLevel];\n      const index = i + j * level.width;\n      level.index = index;\n      const value = level.items[index];\n\n      if (value === 0xff) {\n        break;\n      }\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\n  incrementValue(stopValue) {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index] = stopValue + 1;\n    this.propagateValues();\n  }\n\n  propagateValues() {\n    let levelIndex = this.currentLevel;\n    let level = this.levels[levelIndex];\n    const currentValue = level.items[level.index];\n    while (--levelIndex >= 0) {\n      level = this.levels[levelIndex];\n      level.items[level.index] = currentValue;\n    }\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    level.items[level.index] = 0xff;\n    currentLevel--;\n    if (currentLevel < 0) {\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n}\n\n// Section D. Coefficient bit modeling\nconst BitModel = (function BitModelClosure() {\n  const UNIFORM_CONTEXT = 17;\n  const RUNLENGTH_CONTEXT = 18;\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  const 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  const 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  const 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  // eslint-disable-next-line no-shadow\n  class BitModel {\n    constructor(width, height, subband, zeroBitPlanes, mb) {\n      this.width = width;\n      this.height = height;\n\n      let contextLabelTable;\n      if (subband === \"HH\") {\n        contextLabelTable = HHContextLabel;\n      } else if (subband === \"HL\") {\n        contextLabelTable = HLContextLabel;\n      } else {\n        contextLabelTable = LLAndLHContextsLabel;\n      }\n      this.contextLabelTable = contextLabelTable;\n\n      const 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      let coefficentsMagnitude;\n      if (mb > 14) {\n        coefficentsMagnitude = new Uint32Array(coefficientCount);\n      } else if (mb > 6) {\n        coefficentsMagnitude = new Uint16Array(coefficientCount);\n      } else {\n        coefficentsMagnitude = new Uint8Array(coefficientCount);\n      }\n      this.coefficentsMagnitude = coefficentsMagnitude;\n      this.processingFlags = new Uint8Array(coefficientCount);\n\n      const bitsDecoded = new Uint8Array(coefficientCount);\n      if (zeroBitPlanes !== 0) {\n        for (let i = 0; i < coefficientCount; i++) {\n          bitsDecoded[i] = zeroBitPlanes;\n        }\n      }\n      this.bitsDecoded = bitsDecoded;\n\n      this.reset();\n    }\n\n    setDecoder(decoder) {\n      this.decoder = decoder;\n    }\n\n    reset() {\n      // We have 17 contexts that are accessed via context labels,\n      // plus the uniform and runlength context.\n      this.contexts = new Int8Array(19);\n\n      // Contexts are packed into 1 byte:\n      // highest 7 bits carry the index, lowest bit carries mps\n      this.contexts[0] = (4 << 1) | 0;\n      this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0;\n      this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n    }\n\n    setNeighborsSignificance(row, column, index) {\n      const neighborsSignificance = this.neighborsSignificance;\n      const width = this.width,\n        height = this.height;\n      const left = column > 0;\n      const right = column + 1 < width;\n      let i;\n\n      if (row > 0) {\n        i = index - width;\n        if (left) {\n          neighborsSignificance[i - 1] += 0x10;\n        }\n        if (right) {\n          neighborsSignificance[i + 1] += 0x10;\n        }\n        neighborsSignificance[i] += 0x04;\n      }\n\n      if (row + 1 < height) {\n        i = index + width;\n        if (left) {\n          neighborsSignificance[i - 1] += 0x10;\n        }\n        if (right) {\n          neighborsSignificance[i + 1] += 0x10;\n        }\n        neighborsSignificance[i] += 0x04;\n      }\n\n      if (left) {\n        neighborsSignificance[index - 1] += 0x01;\n      }\n      if (right) {\n        neighborsSignificance[index + 1] += 0x01;\n      }\n      neighborsSignificance[index] |= 0x80;\n    }\n\n    runSignificancePropagationPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n        height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      const neighborsSignificance = this.neighborsSignificance;\n      const processingFlags = this.processingFlags;\n      const contexts = this.contexts;\n      const labels = this.contextLabelTable;\n      const bitsDecoded = this.bitsDecoded;\n      const processedInverseMask = ~1;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n\n      for (let i0 = 0; i0 < height; i0 += 4) {\n        for (let j = 0; j < width; j++) {\n          let index = i0 * width + j;\n          for (let i1 = 0; i1 < 4; i1++, index += width) {\n            const i = i0 + i1;\n            if (i >= height) {\n              break;\n            }\n            // clear processed flag first\n            processingFlags[index] &= processedInverseMask;\n\n            if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n              continue;\n            }\n\n            const contextLabel = labels[neighborsSignificance[index]];\n            const decision = decoder.readBit(contexts, contextLabel);\n            if (decision) {\n              const sign = this.decodeSignBit(i, j, index);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j, index);\n              processingFlags[index] |= firstMagnitudeBitMask;\n            }\n            bitsDecoded[index]++;\n            processingFlags[index] |= processedMask;\n          }\n        }\n      }\n    }\n\n    decodeSignBit(row, column, index) {\n      const width = this.width,\n        height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      let contribution, sign0, sign1, significance1;\n      let contextLabel, decoded;\n\n      // calculate horizontal contribution\n      significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n      if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n        sign1 = coefficentsSign[index + 1];\n        if (significance1) {\n          sign0 = coefficentsSign[index - 1];\n          contribution = 1 - sign1 - sign0;\n        } else {\n          contribution = 1 - sign1 - sign1;\n        }\n      } else if (significance1) {\n        sign0 = coefficentsSign[index - 1];\n        contribution = 1 - sign0 - sign0;\n      } else {\n        contribution = 0;\n      }\n      const horizontalContribution = 3 * contribution;\n\n      // calculate vertical contribution and combine with the horizontal\n      significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n      if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n        sign1 = coefficentsSign[index + width];\n        if (significance1) {\n          sign0 = coefficentsSign[index - width];\n          contribution = 1 - sign1 - sign0 + horizontalContribution;\n        } else {\n          contribution = 1 - sign1 - sign1 + horizontalContribution;\n        }\n      } else if (significance1) {\n        sign0 = coefficentsSign[index - width];\n        contribution = 1 - sign0 - sign0 + horizontalContribution;\n      } else {\n        contribution = horizontalContribution;\n      }\n\n      if (contribution >= 0) {\n        contextLabel = 9 + contribution;\n        decoded = this.decoder.readBit(this.contexts, contextLabel);\n      } else {\n        contextLabel = 9 - contribution;\n        decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n      }\n      return decoded;\n    }\n\n    runMagnitudeRefinementPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n        height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const neighborsSignificance = this.neighborsSignificance;\n      const contexts = this.contexts;\n      const bitsDecoded = this.bitsDecoded;\n      const processingFlags = this.processingFlags;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n      const length = width * height;\n      const width4 = width * 4;\n\n      for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n        indexNext = Math.min(length, index0 + width4);\n        for (let j = 0; j < width; j++) {\n          for (let index = index0 + j; index < indexNext; index += width) {\n            // significant but not those that have just become\n            if (\n              !coefficentsMagnitude[index] ||\n              (processingFlags[index] & processedMask) !== 0\n            ) {\n              continue;\n            }\n\n            let contextLabel = 16;\n            if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n              processingFlags[index] ^= firstMagnitudeBitMask;\n              // first refinement\n              const significance = neighborsSignificance[index] & 127;\n              contextLabel = significance === 0 ? 15 : 14;\n            }\n\n            const bit = decoder.readBit(contexts, contextLabel);\n            coefficentsMagnitude[index] =\n              (coefficentsMagnitude[index] << 1) | bit;\n            bitsDecoded[index]++;\n            processingFlags[index] |= processedMask;\n          }\n        }\n      }\n    }\n\n    runCleanupPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n        height = this.height;\n      const neighborsSignificance = this.neighborsSignificance;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      const contexts = this.contexts;\n      const labels = this.contextLabelTable;\n      const bitsDecoded = this.bitsDecoded;\n      const processingFlags = this.processingFlags;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n      const oneRowDown = width;\n      const twoRowsDown = width * 2;\n      const threeRowsDown = width * 3;\n      let iNext;\n      for (let i0 = 0; i0 < height; i0 = iNext) {\n        iNext = Math.min(i0 + 4, height);\n        const indexBase = i0 * width;\n        const checkAllEmpty = i0 + 3 < height;\n        for (let j = 0; j < width; j++) {\n          const index0 = indexBase + j;\n          // using the property: labels[neighborsSignificance[index]] === 0\n          // when neighborsSignificance[index] === 0\n          const allEmpty =\n            checkAllEmpty &&\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          let i1 = 0,\n            index = index0;\n          let i = i0,\n            sign;\n          if (allEmpty) {\n            const hasSignificantCoefficent = decoder.readBit(\n              contexts,\n              RUNLENGTH_CONTEXT\n            );\n            if (!hasSignificantCoefficent) {\n              bitsDecoded[index0]++;\n              bitsDecoded[index0 + oneRowDown]++;\n              bitsDecoded[index0 + twoRowsDown]++;\n              bitsDecoded[index0 + threeRowsDown]++;\n              continue; // next column\n            }\n            i1 =\n              (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n              decoder.readBit(contexts, UNIFORM_CONTEXT);\n            if (i1 !== 0) {\n              i = i0 + i1;\n              index += i1 * width;\n            }\n\n            sign = this.decodeSignBit(i, j, index);\n            coefficentsSign[index] = sign;\n            coefficentsMagnitude[index] = 1;\n            this.setNeighborsSignificance(i, j, index);\n            processingFlags[index] |= firstMagnitudeBitMask;\n\n            index = index0;\n            for (let i2 = i0; i2 <= i; i2++, index += width) {\n              bitsDecoded[index]++;\n            }\n\n            i1++;\n          }\n          for (i = i0 + i1; i < iNext; i++, index += width) {\n            if (\n              coefficentsMagnitude[index] ||\n              (processingFlags[index] & processedMask) !== 0\n            ) {\n              continue;\n            }\n\n            const contextLabel = labels[neighborsSignificance[index]];\n            const decision = decoder.readBit(contexts, contextLabel);\n            if (decision === 1) {\n              sign = this.decodeSignBit(i, j, index);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j, index);\n              processingFlags[index] |= firstMagnitudeBitMask;\n            }\n            bitsDecoded[index]++;\n          }\n        }\n      }\n    }\n\n    checkSegmentationSymbol() {\n      const decoder = this.decoder;\n      const contexts = this.contexts;\n      const symbol =\n        (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) |\n        (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |\n        (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n        decoder.readBit(contexts, UNIFORM_CONTEXT);\n      if (symbol !== 0xa) {\n        throw new JpxError(\"Invalid segmentation symbol\");\n      }\n    }\n  }\n\n  return BitModel;\n})();\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n  constructor() {\n    if (this.constructor === Transform) {\n      unreachable(\"Cannot initialize Transform.\");\n    }\n  }\n\n  calculate(subbands, u0, v0) {\n    let ll = subbands[0];\n    for (let i = 1, ii = subbands.length; i < ii; i++) {\n      ll = this.iterate(ll, subbands[i], u0, v0);\n    }\n    return ll;\n  }\n\n  extend(buffer, offset, size) {\n    // Section F.3.7 extending... using max extension of 4\n    let i1 = offset - 1,\n      j1 = offset + 1;\n    let i2 = offset + size - 2,\n      j2 = offset + size;\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\n  filter(x, offset, length) {\n    unreachable(\"Abstract method `filter` called\");\n  }\n\n  iterate(ll, hl_lh_hh, u0, v0) {\n    const llWidth = ll.width,\n      llHeight = ll.height;\n    let llItems = ll.items;\n    const width = hl_lh_hh.width;\n    const height = hl_lh_hh.height;\n    const items = hl_lh_hh.items;\n    let i, j, k, l, u, v;\n\n    // Interleave LL according to Section F.3.3\n    for (k = 0, i = 0; i < llHeight; i++) {\n      l = i * 2 * width;\n      for (j = 0; j < llWidth; j++, k++, l += 2) {\n        items[l] = llItems[k];\n      }\n    }\n    // The LL band is not needed anymore.\n    llItems = ll.items = null;\n\n    const bufferPadding = 4;\n    const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n    // Section F.3.4 HOR_SR\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        for (v = 0, k = 0; v < height; v++, k += width) {\n          items[k] *= 0.5;\n        }\n      }\n    } else {\n      for (v = 0, k = 0; v < height; v++, k += width) {\n        rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n        this.extend(rowBuffer, bufferPadding, width);\n        this.filter(rowBuffer, bufferPadding, width);\n\n        items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n      }\n    }\n\n    // Accesses to the items array can take long, because it may not fit into\n    // CPU cache and has to be fetched from main memory. Since subsequent\n    // accesses to the items array are not local when reading columns, we\n    // have a cache miss every time. To reduce cache misses, get up to\n    // 'numBuffers' items at a time and store them into the individual\n    // buffers. The colBuffers should be small enough to fit into CPU cache.\n    let numBuffers = 16;\n    const colBuffers = [];\n    for (i = 0; i < numBuffers; i++) {\n      colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n    }\n    let b,\n      currentBuffer = 0;\n    ll = bufferPadding + height;\n\n    // Section F.3.5 VER_SR\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        for (u = 0; u < width; u++) {\n          items[u] *= 0.5;\n        }\n      }\n    } else {\n      for (u = 0; u < width; u++) {\n        // if we ran out of buffers, copy several image columns at once\n        if (currentBuffer === 0) {\n          numBuffers = Math.min(width - u, numBuffers);\n          for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              colBuffers[b][l] = items[k + b];\n            }\n          }\n          currentBuffer = numBuffers;\n        }\n\n        currentBuffer--;\n        const buffer = colBuffers[currentBuffer];\n        this.extend(buffer, bufferPadding, height);\n        this.filter(buffer, bufferPadding, height);\n\n        // If this is last buffer in this group of buffers, flush all buffers.\n        if (currentBuffer === 0) {\n          k = u - numBuffers + 1;\n          for (l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              items[k + b] = colBuffers[b][l];\n            }\n          }\n        }\n      }\n    }\n\n    return { width, height, items };\n  }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n, current, next;\n\n    const alpha = -1.586134342059924;\n    const beta = -0.052980118572961;\n    const gamma = 0.882911075530934;\n    const delta = 0.443506852043971;\n    const K = 1.230174104914001;\n    const K_ = 1 / K;\n\n    // step 1 is combined with step 3\n\n    // step 2\n    j = offset - 3;\n    for (n = len + 4; n--; j += 2) {\n      x[j] *= K_;\n    }\n\n    // step 1 & 3\n    j = offset - 2;\n    current = delta * x[j - 1];\n    for (n = len + 3; n--; j += 2) {\n      next = delta * x[j + 1];\n      x[j] = K * x[j] - current - next;\n      if (n--) {\n        j += 2;\n        current = delta * x[j + 1];\n        x[j] = K * x[j] - current - next;\n      } else {\n        break;\n      }\n    }\n\n    // step 4\n    j = offset - 1;\n    current = gamma * x[j - 1];\n    for (n = len + 2; n--; j += 2) {\n      next = gamma * x[j + 1];\n      x[j] -= current + next;\n      if (n--) {\n        j += 2;\n        current = gamma * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    // step 5\n    j = offset;\n    current = beta * x[j - 1];\n    for (n = len + 1; n--; j += 2) {\n      next = beta * x[j + 1];\n      x[j] -= current + next;\n      if (n--) {\n        j += 2;\n        current = beta * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    // step 6\n    if (len !== 0) {\n      j = offset + 1;\n      current = alpha * x[j - 1];\n      for (n = len; n--; j += 2) {\n        next = alpha * x[j + 1];\n        x[j] -= current + next;\n        if (n--) {\n          j += 2;\n          current = alpha * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n    }\n  }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n;\n\n    for (j = offset, n = len + 1; n--; j += 2) {\n      x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n    }\n\n    for (j = offset + 1, n = len; n--; j += 2) {\n      x[j] += (x[j - 1] + x[j + 1]) >> 1;\n    }\n  }\n}\n\nexport { JpxImage };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/* Copyright 2018 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\nimport { getVerbosityLevel, setVerbosityLevel } from \"./shared/util.js\";\nimport { Jbig2Image } from \"./core/jbig2.js\";\nimport { JpegImage } from \"./core/jpg.js\";\nimport { JpxImage } from \"./core/jpx.js\";\n\n// To ensure that the standalone PDF.js image decoders have the same\n// browser/environment compatibility as the regular PDF.js library,\n// the standard set of polyfills are thus included in this build as well.\n//\n// Given that the (current) image decoders don't use all of the features\n// of the complete PDF.js library, e.g. they are completely synchronous,\n// some of the larger polyfills are thus unnecessary.\n//\n// In an attempt to reduce the size of the standalone PDF.js image decoders,\n// the following polyfills are currently being excluded:\n//  - ReadableStream\n//  - Promise\n//  - URL\n\n// eslint-disable-next-line no-unused-vars\nconst pdfjsVersion = PDFJSDev.eval(\"BUNDLE_VERSION\");\n// eslint-disable-next-line no-unused-vars\nconst pdfjsBuild = PDFJSDev.eval(\"BUNDLE_BUILD\");\n\nexport {\n  getVerbosityLevel,\n  Jbig2Image,\n  JpegImage,\n  JpxImage,\n  setVerbosityLevel,\n};\n"],"names":["IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","LINE_FACTOR","LINE_DESCENT_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","INK","AnnotationEditorParamsType","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","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","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","log","warn","unreachable","Error","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","ex","absoluteUrl","URL","shadow","obj","prop","value","Object","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","message","name","constructor","prototype","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","status","FormatError","AbortException","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","i","chunkEnd","Math","min","chunk","subarray","push","join","stringToBytes","str","Uint8Array","charCodeAt","arrayByteLength","arr","byteLength","arraysToBytes","resultLength","pos","data","item","itemLength","set","string32","objectSize","keys","objectFromMap","map","create","key","isLittleEndian","buffer8","view32","Uint32Array","buffer","isEvalSupported","Function","e","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","hexNumbers","Array","n","toString","padStart","Util","makeHexColor","r","g","b","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","xt","yt","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","slice","p3","p4","max","inverseTransform","apply3dTransform","v","singularValueDecompose2dScale","transpose","a","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","stringToPDFString","encoding","decoder","TextDecoder","fatal","decode","ii","charAt","escapeString","replace","isAscii","test","stringToUTF16BEString","buf","char","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","createPromiseCapability","capability","isSettled","get","promise","Promise","resolve","reject","reason","globalThis","_pdfjsCompatibilityChecked","checkNodeBtoa","btoa","isNodeJS","chars","Buffer","from","checkNodeAtob","atob","input","checkDOMMatrix","DOMMatrix","__non_webpack_require__","checkReadableStream","ReadableStream","checkArrayAt","at","require","checkTypedArrayAt","checkStructuredClone","process","versions","nw","electron","type","entryUnbind","module","exports","$","toObject","lengthOfArrayLike","toIntegerOrInfinity","addToUnscopables","target","proto","index","len","relativeIndex","k","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","defineBuiltIn","defineGlobalProperty","copyConstructorProperties","isForced","source","TARGET","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","descriptor","dontCallGetSet","forced","sham","check","it","window","self","DESCRIPTORS","call","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","P","error","fails","exec","NATIVE_BIND","bind","arguments","hasOwnProperty","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","bitmap","IndexedObject","requireObjectCoercible","uncurryThis","classof","$Object","split","FunctionPrototype","fn","stringSlice","$TypeError","TypeError","toPrimitive","isSymbol","argument","isObject","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","pref","exoticToPrim","result","isCallable","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","aFunction","namespace","method","NATIVE_SYMBOL","Symbol","iterator","V8_VERSION","getOwnPropertySymbols","symbol","userAgent","Deno","version","v8","aCallable","func","tryToString","$String","val","valueOf","shared","uid","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","IS_PURE","store","mode","copyright","license","SHARED","id","postfix","random","createElement","document","EXISTS","definePropertyModule","object","V8_PROTOTYPE_DEFINE_BUG","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","makeBuiltIn","simple","unsafe","nonConfigurable","nonWritable","CONFIGURABLE_FUNCTION_NAME","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","state","getDescriptor","PROPER","something","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","has","getterFor","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","ownKeys","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","internalObjectKeys","enumBugKeys","getOwnPropertyNames","indexOf","names","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","integer","trunc","number","ceil","floor","x","toLength","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","UNSCOPABLES","ArrayPrototype","definePropertiesModule","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","NullProtoObject","ActiveXObject","domain","Properties","objectKeys","defineProperties","props","CONSTRUCTOR","METHOD","ArrayBufferViewCore","aTypedArray","exportTypedArrayMethod","NATIVE_ARRAY_BUFFER","getPrototypeOf","setPrototypeOf","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","NAME","Constructor","Prototype","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","klass","getTypedArrayConstructor","isTypedArray","aTypedArrayConstructor","KEY","property","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","ArrayBuffer","DataView","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","CORRECT_PROTOTYPE_GETTER","aPossiblePrototype","CORRECT_SETTER","__proto__","Jbig2Error","ContextCache","getContexts","DecodingContext","start","end","ArithmeticDecoder","contextCache","cache","decodeInteger","procedure","contexts","prev","readBits","bit","readBit","sign","decodeIAID","codeLength","SegmentTypes","CodingTemplates","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","width","height","decodingContext","contextLabel","pixel","row","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","skip","Reader","decodeMMRBitmap","useskip","template","sort","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","shift","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","log2","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","bitmapSize","tableBitmapSize","byteAlign","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","position","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","flags","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","readUint32","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","readUint16","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","args","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","readInt8","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","imgData","q","mask","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","offset","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSegment","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","buildTree","node","decodeNode","reader","htOffset","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","table","currentByte","numBits","next","getCustomHuffmanTable","currentIndex","numberOfSymbols","codes","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","params","Columns","Rows","BlackIs1","EndOfBlock","CCITTFaxDecoder","eof","readNextChar","lookForEOFLimit","Jbig2Image","parseChunks","parse","getLookupTableFactory","initializer","lookup","getArrayLookupTableFactory","MissingDataException","begin","ParserEOFException","XRefEntryException","XRefParseException","DocStats","handler","_handler","_streamTypes","Set","_fontTypes","_send","streamTypes","fontTypes","send","addStreamType","add","addFontType","getInheritableProperty","dict","getArray","stopWhenFound","values","visited","RefSet","Dict","objId","put","ROMAN_NUMBER_MAP","toRomanNumerals","lowerCase","romanBuf","romanStr","isWhiteSpace","ch","parseXFAPath","path","positionPattern","component","parseInt","escapePDFName","substring","_collectJS","entry","xref","list","parents","parent","Ref","fetch","isArray","element","isName","js","BaseStream","getString","getRaw","remove","collectActions","eventType","actions","additionalActionsDicts","additionalActions","getKeys","action","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontFamily","fontWeight","italicAngle","ident","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","RegExp","jsUrl","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","Map","annotations","pageIndex","size","CIRCULAR_REF","EOF","Name","NameClosure","nameCache","_clearCache","Cmd","CmdClosure","cmdCache","cmd","nonSerializable","nonSerializableClosure","_map","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","getAsync","fetchAsync","getRawValues","forEach","callback","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","properties","entries","subDict","clear","RefClosure","refCache","num","gen","_set","ref","delete","RefSetCache","putAlias","aliasRef","isCmd","isDict","isRefsEqual","v1","v2","clearPrimitiveCaches","isEmpty","isDataLoaded","getByte","getBytes","peekByte","peekedByte","peekBytes","getUint16","b0","b1","getInt32","b2","b3","getByteRange","reset","moveStart","makeSubStream","getBaseStreams","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","eoline","EndOfLine","EncodedByteAlign","columns","rows","eoblock","black","codingLine","refLine","codingPos","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","refPos","blackPixels","bits","err","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","limit","limitValue","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","pop","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","s","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","endOffset","array","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","l","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","dataLength","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","getData","forceRGB","rgbData","grayColor","JpxError","SubbandsGainLog2","LL","LH","HL","HH","JpxImage","failOnCorruptedImage","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","colorspace","headerType","parseImageProperties","stream","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","bitsPerComponent","context","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","tiles","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","jj","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","scale","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","bufferSize","skipNextBit","count","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","totalLength","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","items","calculate","left","top","resultImages","transformedTiles","tile0","out","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","qcdOrQcc","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","BitModelClosure","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","extend","j1","j2","filter","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","alpha","beta","gamma","K_","pdfjsVersion","pdfjsBuild"],"sourceRoot":""}