1 |
- {"version":3,"sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/global_scope.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/has.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hide.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/not-a-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/entry-unbind.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/bind-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-function.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/array/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/array/from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iterator-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/math/log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.math.log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/number/is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.number.is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/number/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.number.is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/dom-iterables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-promise-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/web/url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/punycode-to-ascii.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url-search-params.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url.to-json.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/weak-map/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection-weak.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-species-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/weak-set/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/symbol/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.concat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-method-has-species-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/wrapped-well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.description.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.has-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.match.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.match-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.replace.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.search.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.split.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.math.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.json.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-pad.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-repeat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/webkit-string-pad-bug.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-array.js","webpack://pdfjs-dist/build/pdf/src/shared/streams_polyfill.js","webpack://pdfjs-dist/build/pdf/node_modules/web-streams-polyfill/dist/ponyfill.mjs","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/node_modules/webpack/buildin/module.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/api_compatibility.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/xml_parser.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/webgl.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js"],"names":["pdfjsVersion","pdfjsBuild","pdfjsSharedUtil","require","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDisplayUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","params","PDFNetworkStream","PDFFetchStream","exports","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","NativeImageDecoding","NONE","DECODE","DISPLAY","PermissionFlag","PRINT","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","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","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","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","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","smask","shadingPattern","font","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","console","unreachable","base","other","url","absoluteUrl","baseUrl","_isValidProtocol","Object","value","enumerable","configurable","writable","BaseException","constructor","NullCharactersRegExp","warn","str","assert","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","i","chunkEnd","Math","chunk","arr","resultLength","arrayByteLength","pos","data","item","stringToBytes","itemLength","x","offset","buffer8","view32","rgbBuf","m1","m2","xt","p","m","yt","d","p1","Util","p2","r","p3","p4","v","transpose","a","b","c","first","second","sx","sy","rect","orderedX","rect1","rect2","orderedY","result","PDFStringTranslateTable","code","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","element","ch","capability","isSettled","get","resolve","reject","createObjectURL","digits","forceDataSchema","URL","blob","type","buffer","ii","b1","b2","b3","d1","d2","d3","d4","globalScope","hasDOM","Buffer","Element","div","document","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","token","force","arguments","Array","module","window","global","self","process","entryUnbind","$","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","nativeStartsWith","startsWith","min","target","proto","forced","searchString","that","index","undefined","search","call","slice","getOwnPropertyDescriptor","f","hide","redefine","setGlobal","copyConstructorProperties","isForced","options","source","TARGET","GLOBAL","STATIC","stat","FORCED","key","targetProperty","sourceProperty","descriptor","prototype","noTargetGet","sham","O","check","it","globalThis","Function","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","P","error","fails","defineProperty","exec","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","V","bitmap","IndexedObject","classof","split","toString","TypeError","isObject","input","PREFERRED_STRING","fn","val","valueOf","hasOwnProperty","createElement","EXISTS","definePropertyModule","object","anObject","nativeDefineProperty","Attributes","shared","nativeFunctionToString","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","join","IS_PURE","SHARED","store","push","version","mode","copyright","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","set","getterFor","TYPE","state","wmget","wmhas","wmset","metadata","STATE","test","uid","keys","id","postfix","random","ownKeys","getOwnPropertyDescriptorModule","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertySymbols","concat","path","aFunction","variable","namespace","method","internalObjectKeys","enumBugKeys","getOwnPropertyNames","indexOf","names","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","toInteger","argument","ceil","floor","isNaN","max","integer","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isRegExp","wellKnownSymbol","MATCH","NATIVE_SYMBOL","Symbol","name","METHOD_NAME","regexp","e","bind","CONSTRUCTOR","METHOD","apply","nativeEndsWith","endsWith","endPosition","len","end","$includes","addToUnscopables","create","UNSCOPABLES","ArrayPrototype","defineProperties","html","documentCreateElement","IE_PROTO","PROTOTYPE","Empty","createDict","iframe","lt","script","gt","js","iframeDocument","style","display","appendChild","src","contentWindow","open","write","close","F","Properties","objectKeys","from","charAt","defineIterator","STRING_ITERATOR","setInternalState","iterated","next","point","done","CONVERT_TO_STRING","S","position","size","charCodeAt","codeAt","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","Iterators","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","entries","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","PrototypeOfArrayIteratorPrototype","arrayIterator","toObject","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","aPossiblePrototype","CORRECT_SETTER","setter","__proto__","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","C","argumentsLength","mapfn","mapping","iteratorMethod","step","iterator","returnMethod","propertyKey","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","assign","nativeAssign","A","B","symbol","alphabet","forEach","chr","T","j","log2","log","LN2","number","isInteger","isFinite","Promise","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ARRAY_ITERATOR","kind","Arguments","NativePromise","redefineAll","setSpecies","anInstance","iterate","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","userAgent","SPECIES","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","fetch","versions","v8","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","promise","empty","FakePromise","PromiseRejectionEvent","then","all","isThenable","notify","isReject","notified","chain","reactions","ok","reaction","handler","fail","domain","exited","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","$promiseResolve","counter","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","Result","stopped","AS_ENTRIES","IS_ITERATOR","boundFunction","iterFn","stop","defaultConstructor","location","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","defer","channel","port","run","runner","listener","post","postMessage","protocol","host","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","promiseCapability","PromiseCapability","$$resolve","$$reject","allSettled","status","real","onFinally","isFunction","USE_NATIVE_URL","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","URLSearchParams","getInternalSearchParamsState","getState","getInternalURLState","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseHost","codePoints","parseIPv6","isSpecial","percentEncode","C0ControlPercentEncodeSet","parseIPv4","parts","partsLength","numbers","part","radix","ipv4","pop","parseInt","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","swaps","swap","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","gopher","http","https","ws","wss","scheme","includesCredentials","username","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","seenAt","seenBracket","seenPasswordToken","bufferCodePoints","failure","query","fragment","codePoint","encodedCodePoints","shift","URLConstructor","urlString","baseState","searchParams","searchParamsState","updateSearchParams","updateURL","href","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","pathname","getPathname","getSearch","getSearchParams","hash","getHash","URLPrototype","output","accessorDescriptor","getter","toJSON","nativeCreateObjectURL","nativeRevokeObjectURL","revokeObjectURL","sort","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","inputLength","n","bias","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","encoded","labels","label","hasOwn","getIterator","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","RegExp","percentDecode","sequence","deserialize","find","replacer","match","serialize","parseSearchParams","attributes","attribute","entry","validateArgumentsLength","passed","required","URLSearchParamsIterator","Iterator","URLSearchParamsConstructor","init","entryIterator","URLSearchParamsPrototype","append","splice","getAll","found","entriesIndex","sliceIndex","callback","InternalMetadataModule","collection","collectionWeak","enforceIternalState","IS_IE11","ActiveXObject","isExtensible","InternalWeakMap","$WeakMap","getConstructor","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","frozen","FREEZING","METADATA","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","meta","preventExtensions","inheritIfRequired","common","IS_MAP","IS_WEAK","NativeConstructor","NativePrototype","ADDER","exported","fixMethod","nativeMethod","add","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","Wrapper","NewTarget","NewTargetPrototype","ArrayIterationModule","$has","internalStateGetterFor","findIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","define","arraySpeciesCreate","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","specificCreate","map","filter","some","every","isArray","originalArray","arg","WeakSet","codePointAt","fromCodePoint","nativeFromCodePoint","INCORRECT_LENGTH","elements","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","foo","Boolean","nativeObjectCreate","getOwnPropertyNamesExternal","wrappedWellKnownSymbolModule","defineWellKnownSymbol","$forEach","SYMBOL","TO_PRIMITIVE","$Symbol","JSON","nativeJSONStringify","stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","$replacer","windowNames","getWindowNames","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","$padStart","start","WEBKIT_BUG","padStart","repeat","IS_END","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","count","Infinity","$padEnd","padEnd","$values","TO_ENTRIES","isReadableStreamSupported","controller","SymbolPolyfill","noop","NumberIsNaN","typeIsObject","createArrayFromList","ArrayBufferCopy","dest","destOffset","srcOffset","Uint8Array","IsFiniteNonNegativeNumber","IsNonNegativeNumber","Call","CreateAlgorithmFromUnderlyingMethod","underlyingObject","methodName","algoArgCount","extraArgs","PromiseCall","fullArgs","InvokeOrNoop","TransferArrayBuffer","IsDetachedBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","MakeSizeAlgorithmFromSizeFunction","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_cursor","_size","_front","_elements","_next","_back","oldBack","newBack","oldFront","newFront","oldCursor","newCursor","peek","front","cursor","ReadableStreamCreateReadResult","forAuthorCode","obj","ReadableStreamReaderGenericInitialize","reader","stream","_forAuthorCode","_ownerReadableStream","_reader","_state","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","_storedError","ReadableStreamReaderGenericCancel","ReadableStreamCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","readerLockException","_closedPromise","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","catch","CancelSteps","PullSteps","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","ReadableStreamAddReadRequest","readRequest","_resolve","_reject","_readRequests","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadRequests","ReadableStreamHasDefaultReader","IsReadableStreamDefaultReader","IsReadableStream","IsReadableStreamLocked","defaultReaderBrandCheckException","cancel","read","ReadableStreamDefaultReaderRead","releaseLock","_disturbed","_readableStreamController","_a","AsyncIteratorPrototype","asyncIterator","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","streamAsyncIteratorBrandCheckException","_asyncIteratorReader","return","_preventCancel","AcquireReadableStreamAsyncIterator","preventCancel","rethrowAssertionErrorRejection","DequeueValue","container","pair","_queue","_queueTotalSize","EnqueueValueWithSize","PeekQueueValue","ResetQueue","AbortSteps","ErrorSteps","WritableStream","underlyingSink","strategy","InitializeWritableStream","sizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","abort","WritableStreamAbort","getWriter","AcquireWritableStreamDefaultWriter","WritableStreamDefaultWriter","CreateWritableStream","startAlgorithm","writeAlgorithm","closeAlgorithm","abortAlgorithm","WritableStreamDefaultController","SetUpWritableStreamDefaultController","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_promise","wasAlreadyErroring","_reason","_wasAlreadyErroring","WritableStreamStartErroring","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamCloseQueuedOrInFlight","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","_readyPromise","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","closeRequest","WritableStreamDefaultControllerClose","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","IsWritableStreamDefaultController","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","_strategySizeAlgorithm","_strategyHWM","_writeAlgorithm","_closeAlgorithm","WritableStreamDefaultControllerGetBackpressure","startResult","startPromise","WritableStreamDefaultControllerAdvanceQueueIfNeeded","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","desiredSize","_readyPromise_resolve","_readyPromise_reject","ReadableStreamPipeTo","preventClose","preventAbort","signal","shuttingDown","currentWrite","DOMException","actions","shutdownWithAction","action","aborted","pipeLoop","resolveLoop","rejectLoop","pipeStep","isOrBecomesErrored","shutdown","isOrBecomesClosed","destClosed_1","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","removeEventListener","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","enqueue","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","_cancelAlgorithm","ReadableStreamDefaultControllerClearAlgorithms","_controlledReadableStream","_closeRequested","ReadableStreamClose","ReadableStreamDefaultControllerCallPullIfNeeded","pendingPromise","shouldPull","ReadableStreamDefaultControllerShouldCallPull","_pulling","_pullAgain","pullPromise","_pullAlgorithm","ReadableStreamError","ReadableStreamDefaultControllerHasBackpressure","SetUpReadableStreamDefaultController","pullAlgorithm","cancelAlgorithm","SetUpReadableStreamDefaultControllerFromUnderlyingSource","underlyingSource","ReadableStreamTee","cloneForBranch2","reading","canceled1","canceled2","reason1","reason2","branch1","branch2","resolveCancelPromise","cancelPromise","readPromise","value1","value2","cancel1Algorithm","compositeReason","cancelResult","cancel2Algorithm","CreateReadableStream","NumberIsInteger","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","_view","respond","bytesWritten","_associatedReadableByteStreamController","ReadableByteStreamControllerRespond","respondWithNewView","view","ArrayBuffer","isView","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","_byobRequest","_pendingPullIntos","firstDescriptor","byteOffset","bytesFilled","byteLength","byobRequest","SetUpReadableStreamBYOBRequest","ReadableByteStreamControllerGetDesiredSize","_controlledReadableByteStream","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","ReadableByteStreamControllerClearAlgorithms","ReadableByteStreamControllerHandleQueueDrain","viewE","autoAllocateChunkSize","_autoAllocateChunkSize","bufferE","pullIntoDescriptor","elementSize","ctor","readerType","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerClearPendingPullIntos","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerPullInto","DataView","BYTES_PER_ELEMENT","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","firstPendingPullInto","transferredBuffer","transferredView","SetUpReadableByteStreamController","SetUpReadableByteStreamControllerFromUnderlyingSource","underlyingByteSource","request","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","IsReadableStreamBYOBReader","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","ReadableStream","InitializeReadableStream","typeString","streamBrandCheckException$1","getReader","pipeThrough","_b","readable","_c","isAbortSignal","pipeTo","tee","branches","sourceCancelPromise","AbortSignal","ByteLengthQueuingStrategy","CountQueuingStrategy","TransformStream","transformer","writableStrategy","readableStrategy","writableSizeFunction","writableHighWaterMark","readableSizeFunction","readableHighWaterMark","writableType","writableSizeAlgorithm","readableType","readableSizeAlgorithm","startPromise_resolve","InitializeTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","_transformStreamController","IsTransformStream","streamBrandCheckException$2","_readable","_writable","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamSetBackpressure","TransformStreamError","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException$1","readableController","_controlledTransformStream","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","terminate","TransformStreamDefaultControllerTerminate","SetUpTransformStreamDefaultController","transformAlgorithm","flushAlgorithm","_transformAlgorithm","_flushAlgorithm","transformResultE","transformMethod","TransformStreamDefaultControllerPerformTransform","transformPromise","backpressureChangePromise","flushPromise","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","isWorkerDisabled","fakeWorkerFilesLoader","useRequireEnsure","__non_webpack_require__","requirejs","fallbackWorkerSrc","dynamicLoaderSupported","worker","pdfjsFilePath","createPDFNetworkStream","isArrayBuffer","range","rangeTransport","pdfBytes","NativeImageDecoderValues","apiCompatibilityParams","setVerbosityLevel","workerParams","GlobalWorkerOptions","PDFWorker","docId","networkStream","initialData","progressiveDone","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","apiVersion","disableAutoFetch","maxImageSize","disableFontFace","disableCreateObjectURL","postMessageTransfers","docBaseUrl","nativeImageDecoderSupport","ignoreErrors","isEvalSupported","PDFDocumentLoadingTask","nextDocumentId","transportDestroyed","deprecated","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","onDataProgressiveRead","requestDataRange","getPage","getPageIndex","getDestination","pdfBug","getViewport","rotation","dontFlip","scale","viewBox","getAnnotations","intent","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","render","stats","renderingIntent","intentState","clearTimeout","canvasFactoryInstance","webGLContext","enable","fnArray","argsArray","lastChunk","pageIndex","complete","internalRenderTask","canvasContext","viewport","objs","commonObjs","operatorList","pageNumber","useRequestAnimationFrame","renderTask","transparency","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","combineTextItems","textContent","getTextContent","readableStream","pump","items","styles","waitOn","renderCompleted","resetStats","cleanup","_tryCleanup","_startRenderPage","_renderPageChunk","operatorListChunk","_pumpOperatorList","_abortOperatorList","cloned","transferable","transfers","cloneValue","pdfWorkerPorts","nextFakeWorkerId","fakeWorkerFilesLoadedCapability","mainWorkerMessageHandler","getMainThreadWorkerMessageHandler","loader","getWorkerSrc","_initializeFromPort","workerSrc","isSameOrigin","createCDNWrapper","terminateEarly","onWorkerError","sendTest","testObj","info","setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","loadingTask","onUnsupportedFeature","isCompressed","page","terminated","evt","loaded","total","sink","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","exception","updatePassword","exportedError","exportedData","fontRegistry","registerFont","pageProxy","img","releaseImageResources","MAX_IMAGE_SIZE_TO_STORE","imageData","components","width","rgbaLength","buf","tmpCanvas","tmpCtx","height","fetched","builtInCMap","_onUnsupportedFeature","pageInfo","ref","results","contentDispositionFilename","_ensureObj","resolved","InternalRenderTask","canvasInRendering","initializeGraphics","build","runtime","Op","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","generator","context","tryLocsList","makeInvokeMethod","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","genFun","__await","record","tryCatch","invoke","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","iter","doneResult","delegate","delegateResult","maybeInvokeDelegate","tryLoc","locs","Context","reset","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","finish","resetTryEntry","thrown","delegateYield","resultName","nextLoc","regeneratorRuntime","DEFAULT_LINK_REL","SVG_NS","canvas","canvasAndContext","destroy","compressionType","isFetchSupported","isValidFetchUrl","response","cMapData","XMLHttpRequest","svg","offsetX","offsetY","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","clone","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","LinkTarget","SELF","BLANK","PARENT","TOP","LinkTargetStringMap","enabled","urlNullRemoved","removeNullCharacters","link","LinkTargetValues","targetIndex","anchor","time","Date","timeEnd","out","longest","duration","Response","isString","pdfDateStringRegex","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","addNativeFontFace","insertRule","styleElement","styleSheet","nativeFontFace","featureId","rule","_queueLoadingCallback","_prepareFontLoadEvent","FontLoader","requests","nextRequestId","otherRequest","chunk1","s","chunk2","ctx","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","fonts","span","supported","navigator","shadow","getLoadTestFont","atob","IsEvalSupportedCached","translatedData","bytesToString","getPathGenerator","cmds","current","compatibilityParams","isIE","isIOSChrome","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","ad_bc","bc_ad","old","prev","cosValue","sinValue","CachedCanvases","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","imgData","width1","points","POINT_TYPES","lineSize","data0","mask","elem","j0","sum","steps","outlines","coords","p0","pp","drawOutline","o","jj","CanvasExtraState","setCurrentPoint","CanvasGraphics","EXECUTION_TIME","EXECUTION_STEPS","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","elemsInThisChunk","property","sourceCtx","destCtx","alpha","alpha_","r0","g0","b0","maskData","transferMap","layerData","y","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","composed","layer","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","stepper","fnId","objsPool","depObjId","continueCallback","endDrawing","states","beginSMaskGroup","activeSMask","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","copyCtxState","suspendSMaskGroup","composeSMask","deltaTransform","resumeSMaskGroup","endSMaskGroup","ops","xw","yh","consumePath","strokeColor","fillColor","isPatternFill","needRestore","paths","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","lineWidth","glyph","isNum","restoreNeeded","spacing","character","accent","vmetric","vx","vy","scaledX","scaledY","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","getShadingPatternFromIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","bounds","canvasBounds","scaleX","scaleY","startTransformInverse","domImage","objId","left","top","w","h","maskCanvas","putBinaryImageMask","positions","images","image","widthScale","heightScale","imgToPaint","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getSinglePixelWidth","inverse","getCanvasPosition","ShadingIRs","region","fromIR","raw","colorStops","r1","getPattern","applyBoundingBox","grad","createMeshCanvas","colors","rowSize","tmp","c1","c2","c3","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","drawTriangle","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinesScale","paddedWidth","paddedHeight","backgroundColor","figures","cachedCanvases","drawFigure","owner","matrixScale","temporaryPatternCanvas","shadingIR","TilingPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","curMatrixScale","combinedScale","dimx","dimy","graphics","getSizeAndScale","maxSize","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","ERROR","PULL","PULL_COMPLETE","START_COMPLETE","callbacksCapabilities","ah","callbackId","wrapReason","sourceName","targetName","comObj","isReply","MessageHandler","on","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","pullCall","cancelCall","isClosed","pull","pullCapability","cancelCapability","_createStreamSink","streamSink","lastDesiredSize","sinkCapability","onPull","onCancel","isCancelled","success","_processStreamMessage","deleteStreamController","parser","xmlDocument","_repair","chars","_parse","rdf","nodeName","children","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","_resolveEntities","entity","_parseContent","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","pi","q2","complexDoctype","doctypeContent","content","text","onResolveEntity","onPi","onComment","onCdata","onDoctype","onText","onBeginElement","onEndElement","onError","childNodes","child","parseFromString","documentElement","isWhitespaceString","lastElement","begin","_onReceiveData","_onProgress","firstReader","_removeRangeReader","queuedChunks","getRangeReader","cancelAllRequests","readers","_enqueue","requestCapability","requestsCapability","WebGLUtils","drawFigures","shader","gl","compiled","errorMsg","loadShader","program","shaders","linked","texture","currentCanvas","currentGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","generateGL","vertexShader","createVertexShader","fragmentShader","createFragmentShader","cache","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","initSmaskGL","createTexture","maskTexture","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","tryInitGL","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","textDiv","textDivProperties","angle","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","isAllWhitespace","geom","tx","fontHeight","fontAscent","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivs","textDivsLength","expanded","expandBounds","divProperties","ts","findPositiveMin","boxScale","box","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","maxXNew","horizonPart","affectedBoundary","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","TextLayerRenderTask","_processItems","appendText","_layoutText","fontFamily","_render","styleCache","textItems","textStyles","expandTextDivs","expand","NO_PADDING","transformBuf","paddingBuf","divProps","padding","renderParameters","textContentStream","enhanceTextSelection","parameters","fieldType","isRenderable","ignoreBorder","_createContainer","horizontalRadius","verticalRadius","radius","_createPopup","trigger","popupElement","title","modificationDate","contents","hideWrapper","popup","addLinkAttributes","linkService","rel","_bindLink","_bindNamedAction","TEXT_ALIGNMENT","fieldWidth","combWidth","_setTextStyle","fallbackName","selectElement","optionElement","option","IGNORE_TYPES","selector","parentElement","parentLeft","parseFloat","parentWidth","BACKGROUND_ENLIGHT","g","dateObject","PDFDateString","date","_formatContents","lines","line","pin","_show","unpin","_hide","borderWidth","square","circle","coordinate","polyline","getFilenameFromUrl","stringToPDFString","filename","downloadManager","imageResourcesPath","svgFactory","SVGGraphics","opTree","opListElement","pf","SVG_DEFAULTS","fontStyle","fontWeight","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","body","crc32","deflateSyncUncompressed","level","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","clipCount","maskCount","shadingCount","loadDependencies","transformMatrix","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opListToTree","executeOpTree","opTreeElement","lineWidthScale","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeTilingPattern","tilingId","txstep","tystep","tiling","tx1","ty1","_makeShadingPattern","shadingId","point0","point1","gradient","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","op","clipId","clipPath","clipElement","_setStrokeAttributes","dashArray","imgObj","imgEl","imgSrc","cliprect","_initialize","definitions","rootGroup","clipGroup","fs","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","auth","headers","handleResponse","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","quotindex","encodingend","extvalue","encoding","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","requestRange","listeners","requestFull","xhrId","pendingRequest","onProgress","onStateChange","xhrStatus","ok_response_on_range_request","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","_onRangeRequestReaderClosed","onHeadersReceived","onDone","manager","fullRequestXhrId","fullRequestXhr","_onDone","_onError","createResponseStatusError","abortController","credentials","redirect","createFetchOptions","validateResponseStatus"],"mappings":"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","file":"pdf.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/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__w_pdfjs_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__w_pdfjs_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__w_pdfjs_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\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/* eslint-disable no-unused-vars */\n\n'use strict';\n\nvar pdfjsVersion =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_VERSION') : void 0;\nvar pdfjsBuild =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_BUILD') : void 0;\n\nvar pdfjsSharedUtil = require('./shared/util.js');\nvar pdfjsDisplayAPI = require('./display/api.js');\nvar pdfjsDisplayTextLayer = require('./display/text_layer.js');\nvar pdfjsDisplayAnnotationLayer = require('./display/annotation_layer.js');\nvar pdfjsDisplayDisplayUtils = require('./display/display_utils.js');\nvar pdfjsDisplaySVG = require('./display/svg.js');\nlet pdfjsDisplayWorkerOptions = require('./display/worker_options.js');\nlet pdfjsDisplayAPICompatibility = require('./display/api_compatibility.js');\n\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n const isNodeJS = require('./shared/is_node.js');\n if (isNodeJS()) {\n let PDFNodeStream = require('./display/node_stream.js').PDFNodeStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n return new PDFNodeStream(params);\n });\n } else {\n let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n let PDFFetchStream;\n if (pdfjsDisplayDisplayUtils.isFetchSupported()) {\n PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n if (PDFFetchStream &&\n pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n }\n} else if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n let PDFFetchStream;\n let isChromeWithFetchCredentials = function() {\n // fetch does not include credentials until Chrome 61.0.3138.0 and later.\n // https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707\n try {\n // Indexed properties on window are read-only in Chrome 61.0.3151.0+\n // https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190\n window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.\n delete window[999];\n return false;\n } catch (e) {\n return true;\n }\n };\n if (pdfjsDisplayDisplayUtils.isFetchSupported() &&\n isChromeWithFetchCredentials()) {\n PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n if (PDFFetchStream &&\n pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n}\n\nexports.build = pdfjsDisplayAPI.build;\nexports.version = pdfjsDisplayAPI.version;\nexports.getDocument = pdfjsDisplayAPI.getDocument;\nexports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\nexports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\nexports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\nexports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\nexports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\nexports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\nexports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\nexports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\nexports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\nexports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\nexports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\nexports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\nexports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\nexports.UnexpectedResponseException =\n pdfjsSharedUtil.UnexpectedResponseException;\nexports.OPS = pdfjsSharedUtil.OPS;\nexports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\nexports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\nexports.createObjectURL = pdfjsSharedUtil.createObjectURL;\nexports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\nexports.shadow = pdfjsSharedUtil.shadow;\nexports.Util = pdfjsSharedUtil.Util;\nexports.ReadableStream = pdfjsSharedUtil.ReadableStream;\nexports.RenderingCancelledException =\n pdfjsDisplayDisplayUtils.RenderingCancelledException;\nexports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;\nexports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;\nexports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;\nexports.loadScript = pdfjsDisplayDisplayUtils.loadScript;\nexports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;\nexports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\nexports.apiCompatibilityParams =\n pdfjsDisplayAPICompatibility.apiCompatibilityParams;\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/* eslint no-var: error */\n\nimport './compatibility';\nimport { ReadableStream } from './streams_polyfill';\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display',\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 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 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 beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\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 unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font',\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 have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted 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 * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) { /* `new URL()` will throw on incorrect data. */ }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, { value,\n enumerable: true,\n configurable: true,\n writable: false, });\n return value;\n}\n\nconst BaseException = (function BaseExceptionClosure() {\n function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable('Cannot initialize BaseException.');\n }\n this.message = message;\n this.name = this.constructor.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);\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException { }\n\nclass MissingPDFException extends BaseException { }\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException { }\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException { }\n\nconst NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === 'object' &&\n bytes.length !== undefined, 'Invalid argument for bytesToString');\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 assert(typeof str === 'string', 'Invalid argument for stringToBytes');\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|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (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 return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,\n (value >> 8) & 0xff, value & 0xff);\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, start) {\n return (data[start] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16) |\n (data[offset + 2] << 8) | data[offset + 3]) >>> 0;\n}\n\n// Lazy test the endianness of the platform\n// NOTE: This will be 'true' for simulated TypedArrays\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\nconst rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\nclass Util {\n // makeCssRgb() can be called thousands of times. Using ´rgbBuf` avoids\n // creating many intermediate strings.\n static makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\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 [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\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) * (a + d) - 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 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\n const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n const result = [];\n\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n // Y: first and second points belong to different rectangles?\n if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\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,\n 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n const length = str.length, strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n // UTF16BE BOM\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(\n (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));\n }\n } else {\n for (let i = 0; i < length; ++i) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join('');\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (let key in obj) {\n return false;\n }\n return true;\n}\n\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\n\nfunction isNum(v) {\n return typeof v === 'number';\n}\n\nfunction isString(v) {\n return typeof v === 'string';\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 return arr1.every(function(element, index) {\n return element === arr2[index];\n });\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isSpace(ch) {\n return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A);\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} 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 * @return {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\nconst createObjectURL = (function createObjectURLClosure() {\n // Blob/createObjectURL is not available, falling back to data schema.\n const digits =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], { type: contentType, });\n return URL.createObjectURL(blob);\n }\n\n let buffer = `data:${contentType};base64,`;\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xFF;\n const b2 = data[i + 1] & 0xFF;\n const b3 = data[i + 2] & 0xFF;\n const d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);\n const d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;\n const d4 = i + 2 < ii ? (b3 & 0x3F) : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n})();\n\nexport {\n BaseException,\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n OPS,\n VerbosityLevel,\n UNSUPPORTED_FEATURES,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n FontType,\n ImageKind,\n CMapCompressionType,\n AbortException,\n InvalidPDFException,\n MissingPDFException,\n NativeImageDecoding,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n StreamType,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n Util,\n FormatError,\n arrayByteLength,\n arraysToBytes,\n assert,\n bytesToString,\n createPromiseCapability,\n createObjectURL,\n getVerbosityLevel,\n info,\n isArrayBuffer,\n isArrayEqual,\n isBool,\n isEmptyObj,\n isNum,\n isString,\n isSpace,\n isSameOrigin,\n createValidAbsoluteUrl,\n isLittleEndian,\n isEvalSupported,\n log2,\n readInt8,\n readUint16,\n readUint32,\n removeNullCharacters,\n ReadableStream,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n utf8StringToString,\n warn,\n unreachable,\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\nconst globalScope = require('./global_scope');\n\n// Skip compatibility checks for the extensions and if we already ran\n// this module.\nif ((typeof PDFJSDev === 'undefined' ||\n !PDFJSDev.test('FIREFOX || MOZCENTRAL')) &&\n !globalScope._pdfjsCompatibilityChecked) {\n\nglobalScope._pdfjsCompatibilityChecked = true;\n\nconst isNodeJS = require('./is_node');\n\nconst hasDOM = typeof window === 'object' && typeof document === 'object';\n\n// Support: Node.js\n(function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n globalScope.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\n(function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n globalScope.atob = function(input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, 'base64').toString('binary');\n };\n})();\n\n// Provides support for ChildNode.remove in legacy browsers.\n// Support: IE.\n(function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n // eslint-disable-next-line mozilla/avoid-removeChild\n this.parentNode.removeChild(this);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.{add, remove}, with more than\n// one parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListAddRemove() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n div.classList.add('testOne', 'testTwo');\n\n if (div.classList.contains('testOne') === true &&\n div.classList.contains('testTwo') === true) {\n return;\n }\n const OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n const OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n DOMTokenList.prototype.add = function(...tokens) {\n for (let token of tokens) {\n OriginalDOMTokenListAdd.call(this, token);\n }\n };\n DOMTokenList.prototype.remove = function(...tokens) {\n for (let token of tokens) {\n OriginalDOMTokenListRemove.call(this, token);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.toggle, with the optional\n// \"force\" parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n\n DOMTokenList.prototype.toggle = function(token) {\n let force = (arguments.length > 1 ? !!arguments[1] : !this.contains(token));\n return (this[force ? 'add' : 'remove'](token), force);\n };\n})();\n\n// Provides support for String.prototype.startsWith in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringStartsWith() {\n if (String.prototype.startsWith) {\n return;\n }\n require('core-js/es/string/starts-with');\n})();\n\n// Provides support for String.prototype.endsWith in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringEndsWith() {\n if (String.prototype.endsWith) {\n return;\n }\n require('core-js/es/string/ends-with');\n})();\n\n// Provides support for String.prototype.includes in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n require('core-js/es/string/includes');\n})();\n\n// Provides support for Array.prototype.includes in legacy browsers.\n// Support: IE, Chrome<47\n(function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n require('core-js/es/array/includes');\n})();\n\n// Provides support for Array.from in legacy browsers.\n// Support: IE\n(function checkArrayFrom() {\n if (Array.from) {\n return;\n }\n require('core-js/es/array/from');\n})();\n\n// Provides support for Object.assign in legacy browsers.\n// Support: IE\n(function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n require('core-js/es/object/assign');\n})();\n\n// Provides support for Math.log2 in legacy browsers.\n// Support: IE, Chrome<38\n(function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = require('core-js/es/math/log2');\n})();\n\n// Provides support for Number.isNaN in legacy browsers.\n// Support: IE.\n(function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = require('core-js/es/number/is-nan');\n})();\n\n// Provides support for Number.isInteger in legacy browsers.\n// Support: IE, Chrome<34\n(function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = require('core-js/es/number/is-integer');\n})();\n\n// Support: IE, Safari<11, Chrome<63\n(function checkPromise() {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalScope.Promise && (globalScope.Promise.prototype &&\n globalScope.Promise.prototype.finally)) {\n return;\n }\n globalScope.Promise = require('core-js/es/promise/index');\n})();\n\n// Support: IE\n(function checkURL() {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n // The current image decoders don't use the `URL` constructor, so it\n // doesn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (typeof PDFJSDev !== 'undefined' && !PDFJSDev.test('GENERIC')) {\n // The `URL` constructor is assumed to be available in the extension builds.\n return;\n }\n globalScope.URL = require('core-js/web/url');\n})();\n\n// Support: IE<11, Safari<8, Chrome<36\n(function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n globalScope.WeakMap = require('core-js/es/weak-map/index');\n})();\n\n// Support: IE11\n(function checkWeakSet() {\n if (globalScope.WeakSet) {\n return;\n }\n globalScope.WeakSet = require('core-js/es/weak-set/index');\n})();\n\n// Provides support for String.codePointAt in legacy browsers.\n// Support: IE11.\n(function checkStringCodePointAt() {\n if (String.prototype.codePointAt) {\n return;\n }\n require('core-js/es/string/code-point-at');\n})();\n\n// Provides support for String.fromCodePoint in legacy browsers.\n// Support: IE11.\n(function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = require('core-js/es/string/from-code-point');\n})();\n\n// Support: IE\n(function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n require('core-js/es/symbol/index');\n})();\n\n// Provides support for String.prototype.padStart in legacy browsers.\n// Support: IE, Chrome<57\n(function checkStringPadStart() {\n if (String.prototype.padStart) {\n return;\n }\n require('core-js/es/string/pad-start');\n})();\n\n// Provides support for String.prototype.padEnd in legacy browsers.\n// Support: IE, Chrome<57\n(function checkStringPadEnd() {\n if (String.prototype.padEnd) {\n return;\n }\n require('core-js/es/string/pad-end');\n})();\n\n// Provides support for Object.values in legacy browsers.\n// Support: IE, Chrome<54\n(function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = require('core-js/es/object/values');\n})();\n\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 module */\n\nmodule.exports =\n (typeof window !== 'undefined' && window.Math === Math) ? window :\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global.Math === Math) ? global :\n (typeof self !== 'undefined' && self.Math === Math) ? self : {};\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 module, process */\n\nmodule.exports = function isNodeJS() {\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://electronjs.org/docs/api/process#processversionselectron\n return typeof process === 'object' &&\n process + '' === '[object process]' &&\n !process.versions['nw'] && !process.versions['electron'];\n};\n","require('../../modules/es.string.starts-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'startsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('startsWith') }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\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.noTargetGet - prevent calling a getter on target\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] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\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 hide(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var O = 'object';\nvar 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 no-undef\n check(typeof globalThis == O && globalThis) ||\n check(typeof window == O && window) ||\n check(typeof self == O && self) ||\n check(typeof global == O && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\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 fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.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\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/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 isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\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 anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(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 isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else hide(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\nvar IS_PURE = require('../internals/is-pure');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.2.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar hide = require('../internals/hide');\n\nmodule.exports = function (key, value) {\n try {\n hide(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","module.exports = false;\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar hide = require('../internals/hide');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\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) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n hide(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(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 nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(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","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var has = require('../internals/has');\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) {\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 (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\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\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 ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","module.exports = require('../internals/global');\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.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\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) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\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 = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\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.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\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(length, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\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","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\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 : typeof detection == 'function' ? 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 isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/bind-context');\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","require('../../modules/es.string.ends-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'endsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('endsWith') }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return nativeEndsWith\n ? nativeEndsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","require('../../modules/es.string.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","require('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar hide = require('../internals/hide');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n hide(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = 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');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\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++], Properties[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.github.io/ecma262/#sec-object.keys\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","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n hide(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n hide(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\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 ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","module.exports = {};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(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.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar bind = require('../internals/bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iteratorMethod = getIteratorMethod(O);\n var length, result, step, iterator;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n result = new C();\n for (;!(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping\n ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)\n : step.value\n );\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\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 = 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' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !nativeAssign || fails(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","require('../../modules/es.math.log2');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.log2;\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.github.io/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: function log2(x) {\n return log(x) / LN2;\n }\n});\n","require('../../modules/es.number.is-nan');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isNaN;\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","require('../../modules/es.number.is-integer');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isInteger;\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isInteger\n});\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\nvar ObjectPrototype = Object.prototype;\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (toString !== ObjectPrototype.toString) {\n redefine(ObjectPrototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar classof = require('../internals/classof');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = String(test) !== '[object z]' ? function toString() {\n return '[object ' + classof(this) + ']';\n} : test.toString;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar hide = require('../internals/hide');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n hide(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar userAgent = require('../internals/user-agent');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = global.fetch;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n // correct subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var empty = function () { /* empty */ };\n var FakePromise = (promise.constructor = {})[SPECIES] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !((IS_NODE || typeof PromiseRejectionEvent == 'function')\n && (!IS_PURE || promise['finally'])\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = path[PROMISE];\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n while (!(step = iterator.next()).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar userAgent = require('../internals/user-agent');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","require('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+\\-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?e=1', 'http://a');\n var searchParams = url.searchParams;\n url.pathname = 'c%20d';\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?e=1'\n || searchParams.get('e') !== '1'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1';\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/bind-context');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, step, entryIterator, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n while (!(step = iterator.next()).done) {\n entryIterator = getIterator(anObject(step.value));\n if (\n (first = entryIterator.next()).done ||\n (second = entryIterator.next()).done ||\n !entryIterator.next().done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-map');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakMap;\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak, true, true);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common, IS_MAP, IS_WEAK) {\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var ADDER = IS_MAP ? 'set' : 'add';\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","var bind = require('../internals/bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-set');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakSet;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.github.io/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (get) {\n return function WeakSet() { return get(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak, false, true);\n","require('../../modules/es.string.code-point-at');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'codePointAt');\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","require('../../modules/es.string.from-code-point');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.fromCodePoint;\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.json.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\nvar IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n return !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar JSON = global.JSON;\nvar nativeJSONStringify = JSON && JSON.stringify;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = NATIVE_SYMBOL && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nJSON && $({ target: 'JSON', stat: true, forced: !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return nativeJSONStringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || nativeJSONStringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || nativeJSONStringify(Object(symbol)) != '{}';\n}) }, {\n stringify: function stringify(it) {\n var args = [it];\n var index = 1;\n var replacer, $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return nativeJSONStringify.apply(JSON, args);\n }\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","exports.f = require('../internals/well-known-symbol');\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","require('../../modules/es.string.pad-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padStart');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/webkit-string-pad-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","require('../../modules/es.string.pad-end');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padEnd');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/webkit-string-pad-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\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/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('MOZCENTRAL')) {\n if (typeof ReadableStream === 'undefined') {\n throw new Error('Please enable ReadableStream support by resetting the ' +\n '\"javascript.options.streams\" preference to \"true\" in about:config.');\n }\n exports.ReadableStream = ReadableStream;\n} else {\n let isReadableStreamSupported = false;\n if (typeof ReadableStream !== 'undefined') {\n // MS Edge may say it has ReadableStream but they are not up to spec yet.\n try {\n // eslint-disable-next-line no-new\n new ReadableStream({\n start(controller) {\n controller.close();\n },\n });\n isReadableStreamSupported = true;\n } catch (e) {\n // The ReadableStream constructor cannot be used.\n }\n }\n if (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n } else if (typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyReadableStream {\n constructor() {\n throw new Error('The current image decoders are synchronous, ' +\n 'hence `ReadableStream` shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.ReadableStream = DummyReadableStream;\n } else {\n exports.ReadableStream =\n require('web-streams-polyfill/dist/ponyfill').ReadableStream;\n }\n}\n","/**\n * web-streams-polyfill v2.0.4\n */\n/// <reference lib=\"es2015.symbol\" />\r\nvar SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\r\n Symbol :\r\n function (description) { return \"Symbol(\" + description + \")\"; };\n\n/// <reference lib=\"dom\" />\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/// <reference lib=\"es2015.core\" />\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\r\nvar NumberIsNaN = Number.isNaN || function (x) {\r\n // eslint-disable-next-line no-self-compare\r\n return x !== x;\r\n};\n\nfunction typeIsObject(x) {\r\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\r\n}\r\nfunction createArrayFromList(elements) {\r\n // We use arrays to represent lists, so this is basically a no-op.\r\n // Do a slice though just in case we happen to depend on the unique-ness.\r\n return elements.slice();\r\n}\r\nfunction ArrayBufferCopy(dest, destOffset, src, srcOffset, n) {\r\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\r\n}\r\nfunction IsFiniteNonNegativeNumber(v) {\r\n if (IsNonNegativeNumber(v) === false) {\r\n return false;\r\n }\r\n if (v === Infinity) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction IsNonNegativeNumber(v) {\r\n if (typeof v !== 'number') {\r\n return false;\r\n }\r\n if (NumberIsNaN(v)) {\r\n return false;\r\n }\r\n if (v < 0) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction Call(F, V, args) {\r\n if (typeof F !== 'function') {\r\n throw new TypeError('Argument is not a function');\r\n }\r\n return Function.prototype.apply.call(F, V, args);\r\n}\r\nfunction CreateAlgorithmFromUnderlyingMethod(underlyingObject, methodName, algoArgCount, extraArgs) {\r\n var method = underlyingObject[methodName];\r\n if (method !== undefined) {\r\n if (typeof method !== 'function') {\r\n throw new TypeError(method + \" is not a method\");\r\n }\r\n switch (algoArgCount) {\r\n case 0: {\r\n return function () {\r\n return PromiseCall(method, underlyingObject, extraArgs);\r\n };\r\n }\r\n case 1: {\r\n return function (arg) {\r\n var fullArgs = [arg].concat(extraArgs);\r\n return PromiseCall(method, underlyingObject, fullArgs);\r\n };\r\n }\r\n }\r\n }\r\n return function () { return Promise.resolve(); };\r\n}\r\nfunction InvokeOrNoop(O, P, args) {\r\n var method = O[P];\r\n if (method === undefined) {\r\n return undefined;\r\n }\r\n return Call(method, O, args);\r\n}\r\nfunction PromiseCall(F, V, args) {\r\n try {\r\n return Promise.resolve(Call(F, V, args));\r\n }\r\n catch (value) {\r\n return Promise.reject(value);\r\n }\r\n}\r\n// Not implemented correctly\r\nfunction TransferArrayBuffer(O) {\r\n return O;\r\n}\r\n// Not implemented correctly\r\nfunction IsDetachedBuffer(O) {\r\n return false;\r\n}\r\nfunction ValidateAndNormalizeHighWaterMark(highWaterMark) {\r\n highWaterMark = Number(highWaterMark);\r\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\r\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\r\n }\r\n return highWaterMark;\r\n}\r\nfunction MakeSizeAlgorithmFromSizeFunction(size) {\r\n if (size === undefined) {\r\n return function () { return 1; };\r\n }\r\n if (typeof size !== 'function') {\r\n throw new TypeError('size property of a queuing strategy must be a function');\r\n }\r\n return function (chunk) { return size(chunk); };\r\n}\n\n// Original from Chromium\r\n// https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\r\nvar QUEUE_MAX_ARRAY_SIZE = 16384;\r\n/**\r\n * Simple queue structure.\r\n *\r\n * Avoids scalability issues with using a packed array directly by using\r\n * multiple arrays in a linked list and keeping the array size bounded.\r\n */\r\nvar SimpleQueue = /** @class */ (function () {\r\n function SimpleQueue() {\r\n this._cursor = 0;\r\n this._size = 0;\r\n // _front and _back are always defined.\r\n this._front = {\r\n _elements: [],\r\n _next: undefined\r\n };\r\n this._back = this._front;\r\n // The cursor is used to avoid calling Array.shift().\r\n // It contains the index of the front element of the array inside the\r\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\r\n this._cursor = 0;\r\n // When there is only one node, size === elements.length - cursor.\r\n this._size = 0;\r\n }\r\n Object.defineProperty(SimpleQueue.prototype, \"length\", {\r\n get: function () {\r\n return this._size;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n // For exception safety, this method is structured in order:\r\n // 1. Read state\r\n // 2. Calculate required state mutations\r\n // 3. Perform state mutations\r\n SimpleQueue.prototype.push = function (element) {\r\n var oldBack = this._back;\r\n var newBack = oldBack;\r\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\r\n newBack = {\r\n _elements: [],\r\n _next: undefined\r\n };\r\n }\r\n // push() is the mutation most likely to throw an exception, so it\r\n // goes first.\r\n oldBack._elements.push(element);\r\n if (newBack !== oldBack) {\r\n this._back = newBack;\r\n oldBack._next = newBack;\r\n }\r\n ++this._size;\r\n };\r\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\r\n // exception safety.\r\n SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\r\n var oldFront = this._front;\r\n var newFront = oldFront;\r\n var oldCursor = this._cursor;\r\n var newCursor = oldCursor + 1;\r\n var elements = oldFront._elements;\r\n var element = elements[oldCursor];\r\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\r\n newFront = oldFront._next;\r\n newCursor = 0;\r\n }\r\n // No mutations before this point.\r\n --this._size;\r\n this._cursor = newCursor;\r\n if (oldFront !== newFront) {\r\n this._front = newFront;\r\n }\r\n // Permit shifted element to be garbage collected.\r\n elements[oldCursor] = undefined;\r\n return element;\r\n };\r\n // The tricky thing about forEach() is that it can be called\r\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\r\n // see that push() within the callback has no negative effects since the end\r\n // of the queue is checked for on every iteration. If shift() is called\r\n // repeatedly within the callback then the next iteration may return an\r\n // element that has been removed. In this case the callback will be called\r\n // with undefined values until we either \"catch up\" with elements that still\r\n // exist or reach the back of the queue.\r\n SimpleQueue.prototype.forEach = function (callback) {\r\n var i = this._cursor;\r\n var node = this._front;\r\n var elements = node._elements;\r\n while (i !== elements.length || node._next !== undefined) {\r\n if (i === elements.length) {\r\n node = node._next;\r\n elements = node._elements;\r\n i = 0;\r\n if (elements.length === 0) {\r\n break;\r\n }\r\n }\r\n callback(elements[i]);\r\n ++i;\r\n }\r\n };\r\n // Return the element that would be returned if shift() was called now,\r\n // without modifying the queue.\r\n SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\r\n var front = this._front;\r\n var cursor = this._cursor;\r\n return front._elements[cursor];\r\n };\r\n return SimpleQueue;\r\n}());\n\nfunction ReadableStreamCreateReadResult(value, done, forAuthorCode) {\r\n var prototype = null;\r\n if (forAuthorCode === true) {\r\n prototype = Object.prototype;\r\n }\r\n var obj = Object.create(prototype);\r\n obj.value = value;\r\n obj.done = done;\r\n return obj;\r\n}\r\nfunction ReadableStreamReaderGenericInitialize(reader, stream) {\r\n reader._forAuthorCode = true;\r\n reader._ownerReadableStream = stream;\r\n stream._reader = reader;\r\n if (stream._state === 'readable') {\r\n defaultReaderClosedPromiseInitialize(reader);\r\n }\r\n else if (stream._state === 'closed') {\r\n defaultReaderClosedPromiseInitializeAsResolved(reader);\r\n }\r\n else {\r\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\r\n }\r\n}\r\n// A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\r\n// check.\r\nfunction ReadableStreamReaderGenericCancel(reader, reason) {\r\n var stream = reader._ownerReadableStream;\r\n return ReadableStreamCancel(stream, reason);\r\n}\r\nfunction ReadableStreamReaderGenericRelease(reader) {\r\n if (reader._ownerReadableStream._state === 'readable') {\r\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\r\n }\r\n else {\r\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\r\n }\r\n reader._ownerReadableStream._reader = undefined;\r\n reader._ownerReadableStream = undefined;\r\n}\r\n// Helper functions for the readers.\r\nfunction readerLockException(name) {\r\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\r\n}\r\n// Helper functions for the ReadableStreamDefaultReader.\r\nfunction defaultReaderClosedPromiseInitialize(reader) {\r\n reader._closedPromise = new Promise(function (resolve, reject) {\r\n reader._closedPromise_resolve = resolve;\r\n reader._closedPromise_reject = reject;\r\n });\r\n}\r\nfunction defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\r\n defaultReaderClosedPromiseInitialize(reader);\r\n defaultReaderClosedPromiseReject(reader, reason);\r\n}\r\nfunction defaultReaderClosedPromiseInitializeAsResolved(reader) {\r\n defaultReaderClosedPromiseInitialize(reader);\r\n defaultReaderClosedPromiseResolve(reader);\r\n}\r\nfunction defaultReaderClosedPromiseReject(reader, reason) {\r\n reader._closedPromise.catch(noop);\r\n reader._closedPromise_reject(reason);\r\n reader._closedPromise_resolve = undefined;\r\n reader._closedPromise_reject = undefined;\r\n}\r\nfunction defaultReaderClosedPromiseResetToRejected(reader, reason) {\r\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\r\n}\r\nfunction defaultReaderClosedPromiseResolve(reader) {\r\n reader._closedPromise_resolve(undefined);\r\n reader._closedPromise_resolve = undefined;\r\n reader._closedPromise_reject = undefined;\r\n}\n\nvar CancelSteps = SymbolPolyfill('[[CancelSteps]]');\r\nvar PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n// Abstract operations for the ReadableStream.\r\nfunction AcquireReadableStreamDefaultReader(stream, forAuthorCode) {\r\n if (forAuthorCode === void 0) { forAuthorCode = false; }\r\n var reader = new ReadableStreamDefaultReader(stream);\r\n reader._forAuthorCode = forAuthorCode;\r\n return reader;\r\n}\r\n// ReadableStream API exposed for controllers.\r\nfunction ReadableStreamAddReadRequest(stream) {\r\n var promise = new Promise(function (resolve, reject) {\r\n var readRequest = {\r\n _resolve: resolve,\r\n _reject: reject\r\n };\r\n stream._reader._readRequests.push(readRequest);\r\n });\r\n return promise;\r\n}\r\nfunction ReadableStreamFulfillReadRequest(stream, chunk, done) {\r\n var reader = stream._reader;\r\n var readRequest = reader._readRequests.shift();\r\n readRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));\r\n}\r\nfunction ReadableStreamGetNumReadRequests(stream) {\r\n return stream._reader._readRequests.length;\r\n}\r\nfunction ReadableStreamHasDefaultReader(stream) {\r\n var reader = stream._reader;\r\n if (reader === undefined) {\r\n return false;\r\n }\r\n if (!IsReadableStreamDefaultReader(reader)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar ReadableStreamDefaultReader = /** @class */ (function () {\r\n function ReadableStreamDefaultReader(stream) {\r\n if (IsReadableStream(stream) === false) {\r\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\r\n }\r\n if (IsReadableStreamLocked(stream) === true) {\r\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\r\n }\r\n ReadableStreamReaderGenericInitialize(this, stream);\r\n this._readRequests = new SimpleQueue();\r\n }\r\n Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\r\n get: function () {\r\n if (!IsReadableStreamDefaultReader(this)) {\r\n return Promise.reject(defaultReaderBrandCheckException('closed'));\r\n }\r\n return this._closedPromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStreamDefaultReader.prototype.cancel = function (reason) {\r\n if (!IsReadableStreamDefaultReader(this)) {\r\n return Promise.reject(defaultReaderBrandCheckException('cancel'));\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return Promise.reject(readerLockException('cancel'));\r\n }\r\n return ReadableStreamReaderGenericCancel(this, reason);\r\n };\r\n ReadableStreamDefaultReader.prototype.read = function () {\r\n if (!IsReadableStreamDefaultReader(this)) {\r\n return Promise.reject(defaultReaderBrandCheckException('read'));\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return Promise.reject(readerLockException('read from'));\r\n }\r\n return ReadableStreamDefaultReaderRead(this);\r\n };\r\n ReadableStreamDefaultReader.prototype.releaseLock = function () {\r\n if (!IsReadableStreamDefaultReader(this)) {\r\n throw defaultReaderBrandCheckException('releaseLock');\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return;\r\n }\r\n if (this._readRequests.length > 0) {\r\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\r\n }\r\n ReadableStreamReaderGenericRelease(this);\r\n };\r\n return ReadableStreamDefaultReader;\r\n}());\r\n// Abstract operations for the readers.\r\nfunction IsReadableStreamDefaultReader(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction ReadableStreamDefaultReaderRead(reader) {\r\n var stream = reader._ownerReadableStream;\r\n stream._disturbed = true;\r\n if (stream._state === 'closed') {\r\n return Promise.resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));\r\n }\r\n if (stream._state === 'errored') {\r\n return Promise.reject(stream._storedError);\r\n }\r\n return stream._readableStreamController[PullSteps]();\r\n}\r\n// Helper functions for the ReadableStreamDefaultReader.\r\nfunction defaultReaderBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\r\n}\n\n/// <reference lib=\"es2018.asynciterable\" />\r\nvar _a;\r\nvar AsyncIteratorPrototype;\r\nif (typeof SymbolPolyfill.asyncIterator === 'symbol') {\r\n // We're running inside a ES2018+ environment, but we're compiling to an older syntax.\r\n // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\r\n AsyncIteratorPrototype = (_a = {},\r\n // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\r\n // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\r\n _a[SymbolPolyfill.asyncIterator] = function () {\r\n return this;\r\n },\r\n _a);\r\n Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\r\n}\n\n/// <reference lib=\"es2018.asynciterable\" />\r\nvar ReadableStreamAsyncIteratorPrototype = {\r\n next: function () {\r\n if (IsReadableStreamAsyncIterator(this) === false) {\r\n return Promise.reject(streamAsyncIteratorBrandCheckException('next'));\r\n }\r\n var reader = this._asyncIteratorReader;\r\n if (reader._ownerReadableStream === undefined) {\r\n return Promise.reject(readerLockException('iterate'));\r\n }\r\n return ReadableStreamDefaultReaderRead(reader).then(function (result) {\r\n var done = result.done;\r\n if (done) {\r\n ReadableStreamReaderGenericRelease(reader);\r\n }\r\n var value = result.value;\r\n return ReadableStreamCreateReadResult(value, done, true);\r\n });\r\n },\r\n return: function (value) {\r\n if (IsReadableStreamAsyncIterator(this) === false) {\r\n return Promise.reject(streamAsyncIteratorBrandCheckException('next'));\r\n }\r\n var reader = this._asyncIteratorReader;\r\n if (reader._ownerReadableStream === undefined) {\r\n return Promise.reject(readerLockException('finish iterating'));\r\n }\r\n if (reader._readRequests.length > 0) {\r\n return Promise.reject(new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'));\r\n }\r\n if (this._preventCancel === false) {\r\n var result = ReadableStreamReaderGenericCancel(reader, value);\r\n ReadableStreamReaderGenericRelease(reader);\r\n return result.then(function () { return ReadableStreamCreateReadResult(value, true, true); });\r\n }\r\n ReadableStreamReaderGenericRelease(reader);\r\n return Promise.resolve(ReadableStreamCreateReadResult(value, true, true));\r\n }\r\n};\r\nif (AsyncIteratorPrototype !== undefined) {\r\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\r\n}\r\nObject.defineProperty(ReadableStreamAsyncIteratorPrototype, 'next', { enumerable: false });\r\nObject.defineProperty(ReadableStreamAsyncIteratorPrototype, 'return', { enumerable: false });\r\n// Abstract operations for the ReadableStream.\r\nfunction AcquireReadableStreamAsyncIterator(stream, preventCancel) {\r\n if (preventCancel === void 0) { preventCancel = false; }\r\n var reader = AcquireReadableStreamDefaultReader(stream);\r\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\r\n iterator._asyncIteratorReader = reader;\r\n iterator._preventCancel = Boolean(preventCancel);\r\n return iterator;\r\n}\r\nfunction IsReadableStreamAsyncIterator(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorReader')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n// Helper functions for the ReadableStream.\r\nfunction streamAsyncIteratorBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\r\n}\n\nvar rethrowAssertionErrorRejection = noop;\n\nfunction DequeueValue(container) {\r\n var pair = container._queue.shift();\r\n container._queueTotalSize -= pair.size;\r\n if (container._queueTotalSize < 0) {\r\n container._queueTotalSize = 0;\r\n }\r\n return pair.value;\r\n}\r\nfunction EnqueueValueWithSize(container, value, size) {\r\n size = Number(size);\r\n if (!IsFiniteNonNegativeNumber(size)) {\r\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\r\n }\r\n container._queue.push({ value: value, size: size });\r\n container._queueTotalSize += size;\r\n}\r\nfunction PeekQueueValue(container) {\r\n var pair = container._queue.peek();\r\n return pair.value;\r\n}\r\nfunction ResetQueue(container) {\r\n container._queue = new SimpleQueue();\r\n container._queueTotalSize = 0;\r\n}\n\nvar AbortSteps = SymbolPolyfill('[[AbortSteps]]');\r\nvar ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\r\nvar WritableStream = /** @class */ (function () {\r\n function WritableStream(underlyingSink, strategy) {\r\n if (underlyingSink === void 0) { underlyingSink = {}; }\r\n if (strategy === void 0) { strategy = {}; }\r\n InitializeWritableStream(this);\r\n var size = strategy.size;\r\n var highWaterMark = strategy.highWaterMark;\r\n var type = underlyingSink.type;\r\n if (type !== undefined) {\r\n throw new RangeError('Invalid type is specified');\r\n }\r\n var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);\r\n if (highWaterMark === undefined) {\r\n highWaterMark = 1;\r\n }\r\n highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\r\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\r\n }\r\n Object.defineProperty(WritableStream.prototype, \"locked\", {\r\n get: function () {\r\n if (IsWritableStream(this) === false) {\r\n throw streamBrandCheckException('locked');\r\n }\r\n return IsWritableStreamLocked(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WritableStream.prototype.abort = function (reason) {\r\n if (IsWritableStream(this) === false) {\r\n return Promise.reject(streamBrandCheckException('abort'));\r\n }\r\n if (IsWritableStreamLocked(this) === true) {\r\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\r\n }\r\n return WritableStreamAbort(this, reason);\r\n };\r\n WritableStream.prototype.getWriter = function () {\r\n if (IsWritableStream(this) === false) {\r\n throw streamBrandCheckException('getWriter');\r\n }\r\n return AcquireWritableStreamDefaultWriter(this);\r\n };\r\n return WritableStream;\r\n}());\r\n// Abstract operations for the WritableStream.\r\nfunction AcquireWritableStreamDefaultWriter(stream) {\r\n return new WritableStreamDefaultWriter(stream);\r\n}\r\n// Throws if and only if startAlgorithm throws.\r\nfunction CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\r\n if (highWaterMark === void 0) { highWaterMark = 1; }\r\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\r\n var stream = Object.create(WritableStream.prototype);\r\n InitializeWritableStream(stream);\r\n var controller = Object.create(WritableStreamDefaultController.prototype);\r\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\r\n return stream;\r\n}\r\nfunction InitializeWritableStream(stream) {\r\n stream._state = 'writable';\r\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\r\n // 'erroring' or 'errored'. May be set to an undefined value.\r\n stream._storedError = undefined;\r\n stream._writer = undefined;\r\n // Initialize to undefined first because the constructor of the controller checks this\r\n // variable to validate the caller.\r\n stream._writableStreamController = undefined;\r\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\r\n // producer without waiting for the queued writes to finish.\r\n stream._writeRequests = new SimpleQueue();\r\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\r\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\r\n stream._inFlightWriteRequest = undefined;\r\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\r\n // has been detached.\r\n stream._closeRequest = undefined;\r\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\r\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\r\n stream._inFlightCloseRequest = undefined;\r\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\r\n stream._pendingAbortRequest = undefined;\r\n // The backpressure signal set by the controller.\r\n stream._backpressure = false;\r\n}\r\nfunction IsWritableStream(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction IsWritableStreamLocked(stream) {\r\n if (stream._writer === undefined) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction WritableStreamAbort(stream, reason) {\r\n var state = stream._state;\r\n if (state === 'closed' || state === 'errored') {\r\n return Promise.resolve(undefined);\r\n }\r\n if (stream._pendingAbortRequest !== undefined) {\r\n return stream._pendingAbortRequest._promise;\r\n }\r\n var wasAlreadyErroring = false;\r\n if (state === 'erroring') {\r\n wasAlreadyErroring = true;\r\n // reason will not be used, so don't keep a reference to it.\r\n reason = undefined;\r\n }\r\n var promise = new Promise(function (resolve, reject) {\r\n stream._pendingAbortRequest = {\r\n _promise: undefined,\r\n _resolve: resolve,\r\n _reject: reject,\r\n _reason: reason,\r\n _wasAlreadyErroring: wasAlreadyErroring\r\n };\r\n });\r\n stream._pendingAbortRequest._promise = promise;\r\n if (wasAlreadyErroring === false) {\r\n WritableStreamStartErroring(stream, reason);\r\n }\r\n return promise;\r\n}\r\n// WritableStream API exposed for controllers.\r\nfunction WritableStreamAddWriteRequest(stream) {\r\n var promise = new Promise(function (resolve, reject) {\r\n var writeRequest = {\r\n _resolve: resolve,\r\n _reject: reject\r\n };\r\n stream._writeRequests.push(writeRequest);\r\n });\r\n return promise;\r\n}\r\nfunction WritableStreamDealWithRejection(stream, error) {\r\n var state = stream._state;\r\n if (state === 'writable') {\r\n WritableStreamStartErroring(stream, error);\r\n return;\r\n }\r\n WritableStreamFinishErroring(stream);\r\n}\r\nfunction WritableStreamStartErroring(stream, reason) {\r\n var controller = stream._writableStreamController;\r\n stream._state = 'erroring';\r\n stream._storedError = reason;\r\n var writer = stream._writer;\r\n if (writer !== undefined) {\r\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\r\n }\r\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\r\n WritableStreamFinishErroring(stream);\r\n }\r\n}\r\nfunction WritableStreamFinishErroring(stream) {\r\n stream._state = 'errored';\r\n stream._writableStreamController[ErrorSteps]();\r\n var storedError = stream._storedError;\r\n stream._writeRequests.forEach(function (writeRequest) {\r\n writeRequest._reject(storedError);\r\n });\r\n stream._writeRequests = new SimpleQueue();\r\n if (stream._pendingAbortRequest === undefined) {\r\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\r\n return;\r\n }\r\n var abortRequest = stream._pendingAbortRequest;\r\n stream._pendingAbortRequest = undefined;\r\n if (abortRequest._wasAlreadyErroring === true) {\r\n abortRequest._reject(storedError);\r\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\r\n return;\r\n }\r\n var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\r\n promise.then(function () {\r\n abortRequest._resolve();\r\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\r\n }, function (reason) {\r\n abortRequest._reject(reason);\r\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\r\n });\r\n}\r\nfunction WritableStreamFinishInFlightWrite(stream) {\r\n stream._inFlightWriteRequest._resolve(undefined);\r\n stream._inFlightWriteRequest = undefined;\r\n}\r\nfunction WritableStreamFinishInFlightWriteWithError(stream, error) {\r\n stream._inFlightWriteRequest._reject(error);\r\n stream._inFlightWriteRequest = undefined;\r\n WritableStreamDealWithRejection(stream, error);\r\n}\r\nfunction WritableStreamFinishInFlightClose(stream) {\r\n stream._inFlightCloseRequest._resolve(undefined);\r\n stream._inFlightCloseRequest = undefined;\r\n var state = stream._state;\r\n if (state === 'erroring') {\r\n // The error was too late to do anything, so it is ignored.\r\n stream._storedError = undefined;\r\n if (stream._pendingAbortRequest !== undefined) {\r\n stream._pendingAbortRequest._resolve();\r\n stream._pendingAbortRequest = undefined;\r\n }\r\n }\r\n stream._state = 'closed';\r\n var writer = stream._writer;\r\n if (writer !== undefined) {\r\n defaultWriterClosedPromiseResolve(writer);\r\n }\r\n}\r\nfunction WritableStreamFinishInFlightCloseWithError(stream, error) {\r\n stream._inFlightCloseRequest._reject(error);\r\n stream._inFlightCloseRequest = undefined;\r\n // Never execute sink abort() after sink close().\r\n if (stream._pendingAbortRequest !== undefined) {\r\n stream._pendingAbortRequest._reject(error);\r\n stream._pendingAbortRequest = undefined;\r\n }\r\n WritableStreamDealWithRejection(stream, error);\r\n}\r\n// TODO(ricea): Fix alphabetical order.\r\nfunction WritableStreamCloseQueuedOrInFlight(stream) {\r\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction WritableStreamHasOperationMarkedInFlight(stream) {\r\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction WritableStreamMarkCloseRequestInFlight(stream) {\r\n stream._inFlightCloseRequest = stream._closeRequest;\r\n stream._closeRequest = undefined;\r\n}\r\nfunction WritableStreamMarkFirstWriteRequestInFlight(stream) {\r\n stream._inFlightWriteRequest = stream._writeRequests.shift();\r\n}\r\nfunction WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\r\n if (stream._closeRequest !== undefined) {\r\n stream._closeRequest._reject(stream._storedError);\r\n stream._closeRequest = undefined;\r\n }\r\n var writer = stream._writer;\r\n if (writer !== undefined) {\r\n defaultWriterClosedPromiseReject(writer, stream._storedError);\r\n }\r\n}\r\nfunction WritableStreamUpdateBackpressure(stream, backpressure) {\r\n var writer = stream._writer;\r\n if (writer !== undefined && backpressure !== stream._backpressure) {\r\n if (backpressure === true) {\r\n defaultWriterReadyPromiseReset(writer);\r\n }\r\n else {\r\n defaultWriterReadyPromiseResolve(writer);\r\n }\r\n }\r\n stream._backpressure = backpressure;\r\n}\r\nvar WritableStreamDefaultWriter = /** @class */ (function () {\r\n function WritableStreamDefaultWriter(stream) {\r\n if (IsWritableStream(stream) === false) {\r\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\r\n }\r\n if (IsWritableStreamLocked(stream) === true) {\r\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\r\n }\r\n this._ownerWritableStream = stream;\r\n stream._writer = this;\r\n var state = stream._state;\r\n if (state === 'writable') {\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\r\n defaultWriterReadyPromiseInitialize(this);\r\n }\r\n else {\r\n defaultWriterReadyPromiseInitializeAsResolved(this);\r\n }\r\n defaultWriterClosedPromiseInitialize(this);\r\n }\r\n else if (state === 'erroring') {\r\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\r\n defaultWriterClosedPromiseInitialize(this);\r\n }\r\n else if (state === 'closed') {\r\n defaultWriterReadyPromiseInitializeAsResolved(this);\r\n defaultWriterClosedPromiseInitializeAsResolved(this);\r\n }\r\n else {\r\n var storedError = stream._storedError;\r\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\r\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\r\n }\r\n }\r\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\r\n get: function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return Promise.reject(defaultWriterBrandCheckException('closed'));\r\n }\r\n return this._closedPromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\r\n get: function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n throw defaultWriterBrandCheckException('desiredSize');\r\n }\r\n if (this._ownerWritableStream === undefined) {\r\n throw defaultWriterLockException('desiredSize');\r\n }\r\n return WritableStreamDefaultWriterGetDesiredSize(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\r\n get: function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return Promise.reject(defaultWriterBrandCheckException('ready'));\r\n }\r\n return this._readyPromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WritableStreamDefaultWriter.prototype.abort = function (reason) {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return Promise.reject(defaultWriterBrandCheckException('abort'));\r\n }\r\n if (this._ownerWritableStream === undefined) {\r\n return Promise.reject(defaultWriterLockException('abort'));\r\n }\r\n return WritableStreamDefaultWriterAbort(this, reason);\r\n };\r\n WritableStreamDefaultWriter.prototype.close = function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return Promise.reject(defaultWriterBrandCheckException('close'));\r\n }\r\n var stream = this._ownerWritableStream;\r\n if (stream === undefined) {\r\n return Promise.reject(defaultWriterLockException('close'));\r\n }\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\r\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\r\n }\r\n return WritableStreamDefaultWriterClose(this);\r\n };\r\n WritableStreamDefaultWriter.prototype.releaseLock = function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n throw defaultWriterBrandCheckException('releaseLock');\r\n }\r\n var stream = this._ownerWritableStream;\r\n if (stream === undefined) {\r\n return;\r\n }\r\n WritableStreamDefaultWriterRelease(this);\r\n };\r\n WritableStreamDefaultWriter.prototype.write = function (chunk) {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return Promise.reject(defaultWriterBrandCheckException('write'));\r\n }\r\n if (this._ownerWritableStream === undefined) {\r\n return Promise.reject(defaultWriterLockException('write to'));\r\n }\r\n return WritableStreamDefaultWriterWrite(this, chunk);\r\n };\r\n return WritableStreamDefaultWriter;\r\n}());\r\n// Abstract operations for the WritableStreamDefaultWriter.\r\nfunction IsWritableStreamDefaultWriter(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n// A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\r\nfunction WritableStreamDefaultWriterAbort(writer, reason) {\r\n var stream = writer._ownerWritableStream;\r\n return WritableStreamAbort(stream, reason);\r\n}\r\nfunction WritableStreamDefaultWriterClose(writer) {\r\n var stream = writer._ownerWritableStream;\r\n var state = stream._state;\r\n if (state === 'closed' || state === 'errored') {\r\n return Promise.reject(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\r\n }\r\n var promise = new Promise(function (resolve, reject) {\r\n var closeRequest = {\r\n _resolve: resolve,\r\n _reject: reject\r\n };\r\n stream._closeRequest = closeRequest;\r\n });\r\n if (stream._backpressure === true && state === 'writable') {\r\n defaultWriterReadyPromiseResolve(writer);\r\n }\r\n WritableStreamDefaultControllerClose(stream._writableStreamController);\r\n return promise;\r\n}\r\nfunction WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\r\n var stream = writer._ownerWritableStream;\r\n var state = stream._state;\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\r\n return Promise.resolve();\r\n }\r\n if (state === 'errored') {\r\n return Promise.reject(stream._storedError);\r\n }\r\n return WritableStreamDefaultWriterClose(writer);\r\n}\r\nfunction WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\r\n if (writer._closedPromiseState === 'pending') {\r\n defaultWriterClosedPromiseReject(writer, error);\r\n }\r\n else {\r\n defaultWriterClosedPromiseResetToRejected(writer, error);\r\n }\r\n}\r\nfunction WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\r\n if (writer._readyPromiseState === 'pending') {\r\n defaultWriterReadyPromiseReject(writer, error);\r\n }\r\n else {\r\n defaultWriterReadyPromiseResetToRejected(writer, error);\r\n }\r\n}\r\nfunction WritableStreamDefaultWriterGetDesiredSize(writer) {\r\n var stream = writer._ownerWritableStream;\r\n var state = stream._state;\r\n if (state === 'errored' || state === 'erroring') {\r\n return null;\r\n }\r\n if (state === 'closed') {\r\n return 0;\r\n }\r\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\r\n}\r\nfunction WritableStreamDefaultWriterRelease(writer) {\r\n var stream = writer._ownerWritableStream;\r\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\r\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\r\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\r\n // rejected until afterwards. This means that simply testing state will not work.\r\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\r\n stream._writer = undefined;\r\n writer._ownerWritableStream = undefined;\r\n}\r\nfunction WritableStreamDefaultWriterWrite(writer, chunk) {\r\n var stream = writer._ownerWritableStream;\r\n var controller = stream._writableStreamController;\r\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\r\n if (stream !== writer._ownerWritableStream) {\r\n return Promise.reject(defaultWriterLockException('write to'));\r\n }\r\n var state = stream._state;\r\n if (state === 'errored') {\r\n return Promise.reject(stream._storedError);\r\n }\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\r\n return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\r\n }\r\n if (state === 'erroring') {\r\n return Promise.reject(stream._storedError);\r\n }\r\n var promise = WritableStreamAddWriteRequest(stream);\r\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\r\n return promise;\r\n}\r\nvar WritableStreamDefaultController = /** @class */ (function () {\r\n /** @internal */\r\n function WritableStreamDefaultController() {\r\n throw new TypeError('WritableStreamDefaultController cannot be constructed explicitly');\r\n }\r\n WritableStreamDefaultController.prototype.error = function (e) {\r\n if (IsWritableStreamDefaultController(this) === false) {\r\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\r\n }\r\n var state = this._controlledWritableStream._state;\r\n if (state !== 'writable') {\r\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\r\n // just treat it as a no-op.\r\n return;\r\n }\r\n WritableStreamDefaultControllerError(this, e);\r\n };\r\n /** @internal */\r\n WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\r\n var result = this._abortAlgorithm(reason);\r\n WritableStreamDefaultControllerClearAlgorithms(this);\r\n return result;\r\n };\r\n /** @internal */\r\n WritableStreamDefaultController.prototype[ErrorSteps] = function () {\r\n ResetQueue(this);\r\n };\r\n return WritableStreamDefaultController;\r\n}());\r\n// Abstract operations implementing interface required by the WritableStream.\r\nfunction IsWritableStreamDefaultController(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\r\n controller._controlledWritableStream = stream;\r\n stream._writableStreamController = controller;\r\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\r\n controller._queue = undefined;\r\n controller._queueTotalSize = undefined;\r\n ResetQueue(controller);\r\n controller._started = false;\r\n controller._strategySizeAlgorithm = sizeAlgorithm;\r\n controller._strategyHWM = highWaterMark;\r\n controller._writeAlgorithm = writeAlgorithm;\r\n controller._closeAlgorithm = closeAlgorithm;\r\n controller._abortAlgorithm = abortAlgorithm;\r\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\r\n WritableStreamUpdateBackpressure(stream, backpressure);\r\n var startResult = startAlgorithm();\r\n var startPromise = Promise.resolve(startResult);\r\n startPromise.then(function () {\r\n controller._started = true;\r\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\r\n }, function (r) {\r\n controller._started = true;\r\n WritableStreamDealWithRejection(stream, r);\r\n }).catch(rethrowAssertionErrorRejection);\r\n}\r\nfunction SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\r\n var controller = Object.create(WritableStreamDefaultController.prototype);\r\n function startAlgorithm() {\r\n return InvokeOrNoop(underlyingSink, 'start', [controller]);\r\n }\r\n var writeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'write', 1, [controller]);\r\n var closeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'close', 0, []);\r\n var abortAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'abort', 1, []);\r\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\r\n}\r\n// ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\r\nfunction WritableStreamDefaultControllerClearAlgorithms(controller) {\r\n controller._writeAlgorithm = undefined;\r\n controller._closeAlgorithm = undefined;\r\n controller._abortAlgorithm = undefined;\r\n controller._strategySizeAlgorithm = undefined;\r\n}\r\nfunction WritableStreamDefaultControllerClose(controller) {\r\n EnqueueValueWithSize(controller, 'close', 0);\r\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\r\n}\r\nfunction WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\r\n try {\r\n return controller._strategySizeAlgorithm(chunk);\r\n }\r\n catch (chunkSizeE) {\r\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\r\n return 1;\r\n }\r\n}\r\nfunction WritableStreamDefaultControllerGetDesiredSize(controller) {\r\n return controller._strategyHWM - controller._queueTotalSize;\r\n}\r\nfunction WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\r\n var writeRecord = { chunk: chunk };\r\n try {\r\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\r\n }\r\n catch (enqueueE) {\r\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\r\n return;\r\n }\r\n var stream = controller._controlledWritableStream;\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\r\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\r\n WritableStreamUpdateBackpressure(stream, backpressure);\r\n }\r\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\r\n}\r\n// Abstract operations for the WritableStreamDefaultController.\r\nfunction WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\r\n var stream = controller._controlledWritableStream;\r\n if (controller._started === false) {\r\n return;\r\n }\r\n if (stream._inFlightWriteRequest !== undefined) {\r\n return;\r\n }\r\n var state = stream._state;\r\n if (state === 'erroring') {\r\n WritableStreamFinishErroring(stream);\r\n return;\r\n }\r\n if (controller._queue.length === 0) {\r\n return;\r\n }\r\n var writeRecord = PeekQueueValue(controller);\r\n if (writeRecord === 'close') {\r\n WritableStreamDefaultControllerProcessClose(controller);\r\n }\r\n else {\r\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\r\n }\r\n}\r\nfunction WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\r\n if (controller._controlledWritableStream._state === 'writable') {\r\n WritableStreamDefaultControllerError(controller, error);\r\n }\r\n}\r\nfunction WritableStreamDefaultControllerProcessClose(controller) {\r\n var stream = controller._controlledWritableStream;\r\n WritableStreamMarkCloseRequestInFlight(stream);\r\n DequeueValue(controller);\r\n var sinkClosePromise = controller._closeAlgorithm();\r\n WritableStreamDefaultControllerClearAlgorithms(controller);\r\n sinkClosePromise.then(function () {\r\n WritableStreamFinishInFlightClose(stream);\r\n }, function (reason) {\r\n WritableStreamFinishInFlightCloseWithError(stream, reason);\r\n }).catch(rethrowAssertionErrorRejection);\r\n}\r\nfunction WritableStreamDefaultControllerProcessWrite(controller, chunk) {\r\n var stream = controller._controlledWritableStream;\r\n WritableStreamMarkFirstWriteRequestInFlight(stream);\r\n var sinkWritePromise = controller._writeAlgorithm(chunk);\r\n sinkWritePromise.then(function () {\r\n WritableStreamFinishInFlightWrite(stream);\r\n var state = stream._state;\r\n DequeueValue(controller);\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\r\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\r\n WritableStreamUpdateBackpressure(stream, backpressure);\r\n }\r\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\r\n }, function (reason) {\r\n if (stream._state === 'writable') {\r\n WritableStreamDefaultControllerClearAlgorithms(controller);\r\n }\r\n WritableStreamFinishInFlightWriteWithError(stream, reason);\r\n }).catch(rethrowAssertionErrorRejection);\r\n}\r\nfunction WritableStreamDefaultControllerGetBackpressure(controller) {\r\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\r\n return desiredSize <= 0;\r\n}\r\n// A client of WritableStreamDefaultController may use these functions directly to bypass state check.\r\nfunction WritableStreamDefaultControllerError(controller, error) {\r\n var stream = controller._controlledWritableStream;\r\n WritableStreamDefaultControllerClearAlgorithms(controller);\r\n WritableStreamStartErroring(stream, error);\r\n}\r\n// Helper functions for the WritableStream.\r\nfunction streamBrandCheckException(name) {\r\n return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\r\n}\r\n// Helper functions for the WritableStreamDefaultWriter.\r\nfunction defaultWriterBrandCheckException(name) {\r\n return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\r\n}\r\nfunction defaultWriterLockException(name) {\r\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\r\n}\r\nfunction defaultWriterClosedPromiseInitialize(writer) {\r\n writer._closedPromise = new Promise(function (resolve, reject) {\r\n writer._closedPromise_resolve = resolve;\r\n writer._closedPromise_reject = reject;\r\n writer._closedPromiseState = 'pending';\r\n });\r\n}\r\nfunction defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\r\n defaultWriterClosedPromiseInitialize(writer);\r\n defaultWriterClosedPromiseReject(writer, reason);\r\n}\r\nfunction defaultWriterClosedPromiseInitializeAsResolved(writer) {\r\n defaultWriterClosedPromiseInitialize(writer);\r\n defaultWriterClosedPromiseResolve(writer);\r\n}\r\nfunction defaultWriterClosedPromiseReject(writer, reason) {\r\n writer._closedPromise.catch(noop);\r\n writer._closedPromise_reject(reason);\r\n writer._closedPromise_resolve = undefined;\r\n writer._closedPromise_reject = undefined;\r\n writer._closedPromiseState = 'rejected';\r\n}\r\nfunction defaultWriterClosedPromiseResetToRejected(writer, reason) {\r\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\r\n}\r\nfunction defaultWriterClosedPromiseResolve(writer) {\r\n writer._closedPromise_resolve(undefined);\r\n writer._closedPromise_resolve = undefined;\r\n writer._closedPromise_reject = undefined;\r\n writer._closedPromiseState = 'resolved';\r\n}\r\nfunction defaultWriterReadyPromiseInitialize(writer) {\r\n writer._readyPromise = new Promise(function (resolve, reject) {\r\n writer._readyPromise_resolve = resolve;\r\n writer._readyPromise_reject = reject;\r\n });\r\n writer._readyPromiseState = 'pending';\r\n}\r\nfunction defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\r\n defaultWriterReadyPromiseInitialize(writer);\r\n defaultWriterReadyPromiseReject(writer, reason);\r\n}\r\nfunction defaultWriterReadyPromiseInitializeAsResolved(writer) {\r\n defaultWriterReadyPromiseInitialize(writer);\r\n defaultWriterReadyPromiseResolve(writer);\r\n}\r\nfunction defaultWriterReadyPromiseReject(writer, reason) {\r\n writer._readyPromise.catch(noop);\r\n writer._readyPromise_reject(reason);\r\n writer._readyPromise_resolve = undefined;\r\n writer._readyPromise_reject = undefined;\r\n writer._readyPromiseState = 'rejected';\r\n}\r\nfunction defaultWriterReadyPromiseReset(writer) {\r\n defaultWriterReadyPromiseInitialize(writer);\r\n}\r\nfunction defaultWriterReadyPromiseResetToRejected(writer, reason) {\r\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\r\n}\r\nfunction defaultWriterReadyPromiseResolve(writer) {\r\n writer._readyPromise_resolve(undefined);\r\n writer._readyPromise_resolve = undefined;\r\n writer._readyPromise_reject = undefined;\r\n writer._readyPromiseState = 'fulfilled';\r\n}\n\nfunction ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\r\n var reader = AcquireReadableStreamDefaultReader(source);\r\n var writer = AcquireWritableStreamDefaultWriter(dest);\r\n var shuttingDown = false;\r\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\r\n var currentWrite = Promise.resolve();\r\n return new Promise(function (resolve, reject) {\r\n var abortAlgorithm;\r\n if (signal !== undefined) {\r\n abortAlgorithm = function () {\r\n var error = new DOMException('Aborted', 'AbortError');\r\n var actions = [];\r\n if (preventAbort === false) {\r\n actions.push(function () {\r\n if (dest._state === 'writable') {\r\n return WritableStreamAbort(dest, error);\r\n }\r\n return Promise.resolve();\r\n });\r\n }\r\n if (preventCancel === false) {\r\n actions.push(function () {\r\n if (source._state === 'readable') {\r\n return ReadableStreamCancel(source, error);\r\n }\r\n return Promise.resolve();\r\n });\r\n }\r\n shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\r\n };\r\n if (signal.aborted === true) {\r\n abortAlgorithm();\r\n return;\r\n }\r\n signal.addEventListener('abort', abortAlgorithm);\r\n }\r\n // Using reader and writer, read all chunks from this and write them to dest\r\n // - Backpressure must be enforced\r\n // - Shutdown must stop all activity\r\n function pipeLoop() {\r\n return new Promise(function (resolveLoop, rejectLoop) {\r\n function next(done) {\r\n if (done) {\r\n resolveLoop();\r\n }\r\n else {\r\n pipeStep().then(next, rejectLoop);\r\n }\r\n }\r\n next(false);\r\n });\r\n }\r\n function pipeStep() {\r\n if (shuttingDown === true) {\r\n return Promise.resolve(true);\r\n }\r\n return writer._readyPromise.then(function () {\r\n return ReadableStreamDefaultReaderRead(reader).then(function (_a) {\r\n var value = _a.value, done = _a.done;\r\n if (done === true) {\r\n return true;\r\n }\r\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(noop);\r\n return false;\r\n });\r\n });\r\n }\r\n // Errors must be propagated forward\r\n isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\r\n if (preventAbort === false) {\r\n shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\r\n }\r\n else {\r\n shutdown(true, storedError);\r\n }\r\n });\r\n // Errors must be propagated backward\r\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\r\n if (preventCancel === false) {\r\n shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\r\n }\r\n else {\r\n shutdown(true, storedError);\r\n }\r\n });\r\n // Closing must be propagated forward\r\n isOrBecomesClosed(source, reader._closedPromise, function () {\r\n if (preventClose === false) {\r\n shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\r\n }\r\n else {\r\n shutdown();\r\n }\r\n });\r\n // Closing must be propagated backward\r\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\r\n var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\r\n if (preventCancel === false) {\r\n shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\r\n }\r\n else {\r\n shutdown(true, destClosed_1);\r\n }\r\n }\r\n pipeLoop().catch(rethrowAssertionErrorRejection);\r\n function waitForWritesToFinish() {\r\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\r\n // for that too.\r\n var oldCurrentWrite = currentWrite;\r\n return currentWrite.then(function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\r\n }\r\n function isOrBecomesErrored(stream, promise, action) {\r\n if (stream._state === 'errored') {\r\n action(stream._storedError);\r\n }\r\n else {\r\n promise.catch(action).catch(rethrowAssertionErrorRejection);\r\n }\r\n }\r\n function isOrBecomesClosed(stream, promise, action) {\r\n if (stream._state === 'closed') {\r\n action();\r\n }\r\n else {\r\n promise.then(action).catch(rethrowAssertionErrorRejection);\r\n }\r\n }\r\n function shutdownWithAction(action, originalIsError, originalError) {\r\n if (shuttingDown === true) {\r\n return;\r\n }\r\n shuttingDown = true;\r\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\r\n waitForWritesToFinish().then(doTheRest);\r\n }\r\n else {\r\n doTheRest();\r\n }\r\n function doTheRest() {\r\n action().then(function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); }).catch(rethrowAssertionErrorRejection);\r\n }\r\n }\r\n function shutdown(isError, error) {\r\n if (shuttingDown === true) {\r\n return;\r\n }\r\n shuttingDown = true;\r\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\r\n waitForWritesToFinish().then(function () { return finalize(isError, error); }).catch(rethrowAssertionErrorRejection);\r\n }\r\n else {\r\n finalize(isError, error);\r\n }\r\n }\r\n function finalize(isError, error) {\r\n WritableStreamDefaultWriterRelease(writer);\r\n ReadableStreamReaderGenericRelease(reader);\r\n if (signal !== undefined) {\r\n signal.removeEventListener('abort', abortAlgorithm);\r\n }\r\n if (isError) {\r\n reject(error);\r\n }\r\n else {\r\n resolve(undefined);\r\n }\r\n }\r\n });\r\n}\n\nvar ReadableStreamDefaultController = /** @class */ (function () {\r\n /** @internal */\r\n function ReadableStreamDefaultController() {\r\n throw new TypeError();\r\n }\r\n Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\r\n get: function () {\r\n if (IsReadableStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException('desiredSize');\r\n }\r\n return ReadableStreamDefaultControllerGetDesiredSize(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStreamDefaultController.prototype.close = function () {\r\n if (IsReadableStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException('close');\r\n }\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {\r\n throw new TypeError('The stream is not in a state that permits close');\r\n }\r\n ReadableStreamDefaultControllerClose(this);\r\n };\r\n ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\r\n if (IsReadableStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException('enqueue');\r\n }\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {\r\n throw new TypeError('The stream is not in a state that permits enqueue');\r\n }\r\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\r\n };\r\n ReadableStreamDefaultController.prototype.error = function (e) {\r\n if (IsReadableStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException('error');\r\n }\r\n ReadableStreamDefaultControllerError(this, e);\r\n };\r\n /** @internal */\r\n ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\r\n ResetQueue(this);\r\n var result = this._cancelAlgorithm(reason);\r\n ReadableStreamDefaultControllerClearAlgorithms(this);\r\n return result;\r\n };\r\n /** @internal */\r\n ReadableStreamDefaultController.prototype[PullSteps] = function () {\r\n var stream = this._controlledReadableStream;\r\n if (this._queue.length > 0) {\r\n var chunk = DequeueValue(this);\r\n if (this._closeRequested === true && this._queue.length === 0) {\r\n ReadableStreamDefaultControllerClearAlgorithms(this);\r\n ReadableStreamClose(stream);\r\n }\r\n else {\r\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\r\n }\r\n return Promise.resolve(ReadableStreamCreateReadResult(chunk, false, stream._reader._forAuthorCode));\r\n }\r\n var pendingPromise = ReadableStreamAddReadRequest(stream);\r\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\r\n return pendingPromise;\r\n };\r\n return ReadableStreamDefaultController;\r\n}());\r\n// Abstract operations for the ReadableStreamDefaultController.\r\nfunction IsReadableStreamDefaultController(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\r\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\r\n if (shouldPull === false) {\r\n return;\r\n }\r\n if (controller._pulling === true) {\r\n controller._pullAgain = true;\r\n return;\r\n }\r\n controller._pulling = true;\r\n var pullPromise = controller._pullAlgorithm();\r\n pullPromise.then(function () {\r\n controller._pulling = false;\r\n if (controller._pullAgain === true) {\r\n controller._pullAgain = false;\r\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\r\n }\r\n }, function (e) {\r\n ReadableStreamDefaultControllerError(controller, e);\r\n }).catch(rethrowAssertionErrorRejection);\r\n}\r\nfunction ReadableStreamDefaultControllerShouldCallPull(controller) {\r\n var stream = controller._controlledReadableStream;\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) === false) {\r\n return false;\r\n }\r\n if (controller._started === false) {\r\n return false;\r\n }\r\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\r\n return true;\r\n }\r\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\r\n if (desiredSize > 0) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction ReadableStreamDefaultControllerClearAlgorithms(controller) {\r\n controller._pullAlgorithm = undefined;\r\n controller._cancelAlgorithm = undefined;\r\n controller._strategySizeAlgorithm = undefined;\r\n}\r\n// A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\r\nfunction ReadableStreamDefaultControllerClose(controller) {\r\n var stream = controller._controlledReadableStream;\r\n controller._closeRequested = true;\r\n if (controller._queue.length === 0) {\r\n ReadableStreamDefaultControllerClearAlgorithms(controller);\r\n ReadableStreamClose(stream);\r\n }\r\n}\r\nfunction ReadableStreamDefaultControllerEnqueue(controller, chunk) {\r\n var stream = controller._controlledReadableStream;\r\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\r\n ReadableStreamFulfillReadRequest(stream, chunk, false);\r\n }\r\n else {\r\n var chunkSize = void 0;\r\n try {\r\n chunkSize = controller._strategySizeAlgorithm(chunk);\r\n }\r\n catch (chunkSizeE) {\r\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\r\n throw chunkSizeE;\r\n }\r\n try {\r\n EnqueueValueWithSize(controller, chunk, chunkSize);\r\n }\r\n catch (enqueueE) {\r\n ReadableStreamDefaultControllerError(controller, enqueueE);\r\n throw enqueueE;\r\n }\r\n }\r\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\r\n}\r\nfunction ReadableStreamDefaultControllerError(controller, e) {\r\n var stream = controller._controlledReadableStream;\r\n if (stream._state !== 'readable') {\r\n return;\r\n }\r\n ResetQueue(controller);\r\n ReadableStreamDefaultControllerClearAlgorithms(controller);\r\n ReadableStreamError(stream, e);\r\n}\r\nfunction ReadableStreamDefaultControllerGetDesiredSize(controller) {\r\n var stream = controller._controlledReadableStream;\r\n var state = stream._state;\r\n if (state === 'errored') {\r\n return null;\r\n }\r\n if (state === 'closed') {\r\n return 0;\r\n }\r\n return controller._strategyHWM - controller._queueTotalSize;\r\n}\r\n// This is used in the implementation of TransformStream.\r\nfunction ReadableStreamDefaultControllerHasBackpressure(controller) {\r\n if (ReadableStreamDefaultControllerShouldCallPull(controller) === true) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\r\n var state = controller._controlledReadableStream._state;\r\n if (controller._closeRequested === false && state === 'readable') {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\r\n controller._controlledReadableStream = stream;\r\n controller._queue = undefined;\r\n controller._queueTotalSize = undefined;\r\n ResetQueue(controller);\r\n controller._started = false;\r\n controller._closeRequested = false;\r\n controller._pullAgain = false;\r\n controller._pulling = false;\r\n controller._strategySizeAlgorithm = sizeAlgorithm;\r\n controller._strategyHWM = highWaterMark;\r\n controller._pullAlgorithm = pullAlgorithm;\r\n controller._cancelAlgorithm = cancelAlgorithm;\r\n stream._readableStreamController = controller;\r\n var startResult = startAlgorithm();\r\n Promise.resolve(startResult).then(function () {\r\n controller._started = true;\r\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\r\n }, function (r) {\r\n ReadableStreamDefaultControllerError(controller, r);\r\n }).catch(rethrowAssertionErrorRejection);\r\n}\r\nfunction SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\r\n var controller = Object.create(ReadableStreamDefaultController.prototype);\r\n function startAlgorithm() {\r\n return InvokeOrNoop(underlyingSource, 'start', [controller]);\r\n }\r\n var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'pull', 0, [controller]);\r\n var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'cancel', 1, []);\r\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\r\n}\r\n// Helper functions for the ReadableStreamDefaultController.\r\nfunction defaultControllerBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\r\n}\n\nfunction ReadableStreamTee(stream, cloneForBranch2) {\r\n var reader = AcquireReadableStreamDefaultReader(stream);\r\n var reading = false;\r\n var canceled1 = false;\r\n var canceled2 = false;\r\n var reason1;\r\n var reason2;\r\n var branch1;\r\n var branch2;\r\n var resolveCancelPromise;\r\n var cancelPromise = new Promise(function (resolve) {\r\n resolveCancelPromise = resolve;\r\n });\r\n function pullAlgorithm() {\r\n if (reading === true) {\r\n return Promise.resolve();\r\n }\r\n reading = true;\r\n var readPromise = ReadableStreamDefaultReaderRead(reader).then(function (result) {\r\n reading = false;\r\n var done = result.done;\r\n if (done === true) {\r\n if (canceled1 === false) {\r\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\r\n }\r\n if (canceled2 === false) {\r\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\r\n }\r\n return;\r\n }\r\n var value = result.value;\r\n var value1 = value;\r\n var value2 = value;\r\n // There is no way to access the cloning code right now in the reference implementation.\r\n // If we add one then we'll need an implementation for serializable objects.\r\n // if (canceled2 === false && cloneForBranch2 === true) {\r\n // value2 = StructuredDeserialize(StructuredSerialize(value2));\r\n // }\r\n if (canceled1 === false) {\r\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, value1);\r\n }\r\n if (canceled2 === false) {\r\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, value2);\r\n }\r\n });\r\n readPromise.catch(rethrowAssertionErrorRejection);\r\n return Promise.resolve();\r\n }\r\n function cancel1Algorithm(reason) {\r\n canceled1 = true;\r\n reason1 = reason;\r\n if (canceled2 === true) {\r\n var compositeReason = createArrayFromList([reason1, reason2]);\r\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\r\n resolveCancelPromise(cancelResult);\r\n }\r\n return cancelPromise;\r\n }\r\n function cancel2Algorithm(reason) {\r\n canceled2 = true;\r\n reason2 = reason;\r\n if (canceled1 === true) {\r\n var compositeReason = createArrayFromList([reason1, reason2]);\r\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\r\n resolveCancelPromise(cancelResult);\r\n }\r\n return cancelPromise;\r\n }\r\n function startAlgorithm() { }\r\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\r\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\r\n reader._closedPromise.catch(function (r) {\r\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\r\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\r\n });\r\n return [branch1, branch2];\r\n}\n\n/// <reference lib=\"es2015.core\" />\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger#Polyfill\r\nvar NumberIsInteger = Number.isInteger || function (value) {\r\n return typeof value === 'number' &&\r\n isFinite(value) &&\r\n Math.floor(value) === value;\r\n};\n\nvar ReadableStreamBYOBRequest = /** @class */ (function () {\r\n /** @internal */\r\n function ReadableStreamBYOBRequest() {\r\n throw new TypeError('ReadableStreamBYOBRequest cannot be used directly');\r\n }\r\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\r\n get: function () {\r\n if (IsReadableStreamBYOBRequest(this) === false) {\r\n throw byobRequestBrandCheckException('view');\r\n }\r\n return this._view;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\r\n if (IsReadableStreamBYOBRequest(this) === false) {\r\n throw byobRequestBrandCheckException('respond');\r\n }\r\n if (this._associatedReadableByteStreamController === undefined) {\r\n throw new TypeError('This BYOB request has been invalidated');\r\n }\r\n if (IsDetachedBuffer(this._view.buffer) === true) ;\r\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\r\n };\r\n ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\r\n if (IsReadableStreamBYOBRequest(this) === false) {\r\n throw byobRequestBrandCheckException('respond');\r\n }\r\n if (this._associatedReadableByteStreamController === undefined) {\r\n throw new TypeError('This BYOB request has been invalidated');\r\n }\r\n if (!ArrayBuffer.isView(view)) {\r\n throw new TypeError('You can only respond with array buffer views');\r\n }\r\n if (IsDetachedBuffer(view.buffer) === true) ;\r\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\r\n };\r\n return ReadableStreamBYOBRequest;\r\n}());\r\nvar ReadableByteStreamController = /** @class */ (function () {\r\n /** @internal */\r\n function ReadableByteStreamController() {\r\n throw new TypeError('ReadableByteStreamController constructor cannot be used directly');\r\n }\r\n Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\r\n get: function () {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('byobRequest');\r\n }\r\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\r\n var firstDescriptor = this._pendingPullIntos.peek();\r\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\r\n var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\r\n SetUpReadableStreamBYOBRequest(byobRequest, this, view);\r\n this._byobRequest = byobRequest;\r\n }\r\n return this._byobRequest;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\r\n get: function () {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('desiredSize');\r\n }\r\n return ReadableByteStreamControllerGetDesiredSize(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableByteStreamController.prototype.close = function () {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('close');\r\n }\r\n if (this._closeRequested === true) {\r\n throw new TypeError('The stream has already been closed; do not close it again!');\r\n }\r\n var state = this._controlledReadableByteStream._state;\r\n if (state !== 'readable') {\r\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\r\n }\r\n ReadableByteStreamControllerClose(this);\r\n };\r\n ReadableByteStreamController.prototype.enqueue = function (chunk) {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('enqueue');\r\n }\r\n if (this._closeRequested === true) {\r\n throw new TypeError('stream is closed or draining');\r\n }\r\n var state = this._controlledReadableByteStream._state;\r\n if (state !== 'readable') {\r\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\r\n }\r\n if (!ArrayBuffer.isView(chunk)) {\r\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\r\n }\r\n if (IsDetachedBuffer(chunk.buffer) === true) ;\r\n ReadableByteStreamControllerEnqueue(this, chunk);\r\n };\r\n ReadableByteStreamController.prototype.error = function (e) {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('error');\r\n }\r\n ReadableByteStreamControllerError(this, e);\r\n };\r\n /** @internal */\r\n ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\r\n if (this._pendingPullIntos.length > 0) {\r\n var firstDescriptor = this._pendingPullIntos.peek();\r\n firstDescriptor.bytesFilled = 0;\r\n }\r\n ResetQueue(this);\r\n var result = this._cancelAlgorithm(reason);\r\n ReadableByteStreamControllerClearAlgorithms(this);\r\n return result;\r\n };\r\n /** @internal */\r\n ReadableByteStreamController.prototype[PullSteps] = function () {\r\n var stream = this._controlledReadableByteStream;\r\n if (this._queueTotalSize > 0) {\r\n var entry = this._queue.shift();\r\n this._queueTotalSize -= entry.byteLength;\r\n ReadableByteStreamControllerHandleQueueDrain(this);\r\n var view = void 0;\r\n try {\r\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\r\n }\r\n catch (viewE) {\r\n return Promise.reject(viewE);\r\n }\r\n return Promise.resolve(ReadableStreamCreateReadResult(view, false, stream._reader._forAuthorCode));\r\n }\r\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\r\n if (autoAllocateChunkSize !== undefined) {\r\n var buffer = void 0;\r\n try {\r\n buffer = new ArrayBuffer(autoAllocateChunkSize);\r\n }\r\n catch (bufferE) {\r\n return Promise.reject(bufferE);\r\n }\r\n var pullIntoDescriptor = {\r\n buffer: buffer,\r\n byteOffset: 0,\r\n byteLength: autoAllocateChunkSize,\r\n bytesFilled: 0,\r\n elementSize: 1,\r\n ctor: Uint8Array,\r\n readerType: 'default'\r\n };\r\n this._pendingPullIntos.push(pullIntoDescriptor);\r\n }\r\n var promise = ReadableStreamAddReadRequest(stream);\r\n ReadableByteStreamControllerCallPullIfNeeded(this);\r\n return promise;\r\n };\r\n return ReadableByteStreamController;\r\n}());\r\n// Abstract operations for the ReadableByteStreamController.\r\nfunction IsReadableByteStreamController(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction IsReadableStreamBYOBRequest(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction ReadableByteStreamControllerCallPullIfNeeded(controller) {\r\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\r\n if (shouldPull === false) {\r\n return;\r\n }\r\n if (controller._pulling === true) {\r\n controller._pullAgain = true;\r\n return;\r\n }\r\n controller._pulling = true;\r\n // TODO: Test controller argument\r\n var pullPromise = controller._pullAlgorithm();\r\n pullPromise.then(function () {\r\n controller._pulling = false;\r\n if (controller._pullAgain === true) {\r\n controller._pullAgain = false;\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n }\r\n }, function (e) {\r\n ReadableByteStreamControllerError(controller, e);\r\n }).catch(rethrowAssertionErrorRejection);\r\n}\r\nfunction ReadableByteStreamControllerClearPendingPullIntos(controller) {\r\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\r\n controller._pendingPullIntos = new SimpleQueue();\r\n}\r\nfunction ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\r\n var done = false;\r\n if (stream._state === 'closed') {\r\n done = true;\r\n }\r\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\r\n if (pullIntoDescriptor.readerType === 'default') {\r\n ReadableStreamFulfillReadRequest(stream, filledView, done);\r\n }\r\n else {\r\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\r\n }\r\n}\r\nfunction ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\r\n var bytesFilled = pullIntoDescriptor.bytesFilled;\r\n var elementSize = pullIntoDescriptor.elementSize;\r\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\r\n}\r\nfunction ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\r\n controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\r\n controller._queueTotalSize += byteLength;\r\n}\r\nfunction ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\r\n var elementSize = pullIntoDescriptor.elementSize;\r\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\r\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\r\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\r\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\r\n var totalBytesToCopyRemaining = maxBytesToCopy;\r\n var ready = false;\r\n if (maxAlignedBytes > currentAlignedBytes) {\r\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\r\n ready = true;\r\n }\r\n var queue = controller._queue;\r\n while (totalBytesToCopyRemaining > 0) {\r\n var headOfQueue = queue.peek();\r\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\r\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\r\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\r\n if (headOfQueue.byteLength === bytesToCopy) {\r\n queue.shift();\r\n }\r\n else {\r\n headOfQueue.byteOffset += bytesToCopy;\r\n headOfQueue.byteLength -= bytesToCopy;\r\n }\r\n controller._queueTotalSize -= bytesToCopy;\r\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\r\n totalBytesToCopyRemaining -= bytesToCopy;\r\n }\r\n return ready;\r\n}\r\nfunction ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\r\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\r\n pullIntoDescriptor.bytesFilled += size;\r\n}\r\nfunction ReadableByteStreamControllerHandleQueueDrain(controller) {\r\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\r\n ReadableByteStreamControllerClearAlgorithms(controller);\r\n ReadableStreamClose(controller._controlledReadableByteStream);\r\n }\r\n else {\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n }\r\n}\r\nfunction ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\r\n if (controller._byobRequest === undefined) {\r\n return;\r\n }\r\n controller._byobRequest._associatedReadableByteStreamController = undefined;\r\n controller._byobRequest._view = undefined;\r\n controller._byobRequest = undefined;\r\n}\r\nfunction ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\r\n while (controller._pendingPullIntos.length > 0) {\r\n if (controller._queueTotalSize === 0) {\r\n return;\r\n }\r\n var pullIntoDescriptor = controller._pendingPullIntos.peek();\r\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\r\n ReadableByteStreamControllerShiftPendingPullInto(controller);\r\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\r\n }\r\n }\r\n}\r\nfunction ReadableByteStreamControllerPullInto(controller, view) {\r\n var stream = controller._controlledReadableByteStream;\r\n var elementSize = 1;\r\n if (view.constructor !== DataView) {\r\n elementSize = view.constructor.BYTES_PER_ELEMENT;\r\n }\r\n var ctor = view.constructor;\r\n var buffer = TransferArrayBuffer(view.buffer);\r\n var pullIntoDescriptor = {\r\n buffer: buffer,\r\n byteOffset: view.byteOffset,\r\n byteLength: view.byteLength,\r\n bytesFilled: 0,\r\n elementSize: elementSize,\r\n ctor: ctor,\r\n readerType: 'byob'\r\n };\r\n if (controller._pendingPullIntos.length > 0) {\r\n controller._pendingPullIntos.push(pullIntoDescriptor);\r\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\r\n // - No change happens on desiredSize\r\n // - The source has already been notified of that there's at least 1 pending read(view)\r\n return ReadableStreamAddReadIntoRequest(stream);\r\n }\r\n if (stream._state === 'closed') {\r\n var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\r\n return Promise.resolve(ReadableStreamCreateReadResult(emptyView, true, stream._reader._forAuthorCode));\r\n }\r\n if (controller._queueTotalSize > 0) {\r\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\r\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\r\n ReadableByteStreamControllerHandleQueueDrain(controller);\r\n return Promise.resolve(ReadableStreamCreateReadResult(filledView, false, stream._reader._forAuthorCode));\r\n }\r\n if (controller._closeRequested === true) {\r\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\r\n ReadableByteStreamControllerError(controller, e);\r\n return Promise.reject(e);\r\n }\r\n }\r\n controller._pendingPullIntos.push(pullIntoDescriptor);\r\n var promise = ReadableStreamAddReadIntoRequest(stream);\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n return promise;\r\n}\r\nfunction ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\r\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\r\n var stream = controller._controlledReadableByteStream;\r\n if (ReadableStreamHasBYOBReader(stream) === true) {\r\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\r\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\r\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\r\n }\r\n }\r\n}\r\nfunction ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\r\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\r\n throw new RangeError('bytesWritten out of range');\r\n }\r\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\r\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\r\n // TODO: Figure out whether we should detach the buffer or not here.\r\n return;\r\n }\r\n ReadableByteStreamControllerShiftPendingPullInto(controller);\r\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\r\n if (remainderSize > 0) {\r\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\r\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\r\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\r\n }\r\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\r\n pullIntoDescriptor.bytesFilled -= remainderSize;\r\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\r\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\r\n}\r\nfunction ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\r\n var firstDescriptor = controller._pendingPullIntos.peek();\r\n var stream = controller._controlledReadableByteStream;\r\n if (stream._state === 'closed') {\r\n if (bytesWritten !== 0) {\r\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\r\n }\r\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\r\n }\r\n else {\r\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\r\n }\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n}\r\nfunction ReadableByteStreamControllerShiftPendingPullInto(controller) {\r\n var descriptor = controller._pendingPullIntos.shift();\r\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\r\n return descriptor;\r\n}\r\nfunction ReadableByteStreamControllerShouldCallPull(controller) {\r\n var stream = controller._controlledReadableByteStream;\r\n if (stream._state !== 'readable') {\r\n return false;\r\n }\r\n if (controller._closeRequested === true) {\r\n return false;\r\n }\r\n if (controller._started === false) {\r\n return false;\r\n }\r\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\r\n return true;\r\n }\r\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\r\n return true;\r\n }\r\n var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\r\n if (desiredSize > 0) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction ReadableByteStreamControllerClearAlgorithms(controller) {\r\n controller._pullAlgorithm = undefined;\r\n controller._cancelAlgorithm = undefined;\r\n}\r\n// A client of ReadableByteStreamController may use these functions directly to bypass state check.\r\nfunction ReadableByteStreamControllerClose(controller) {\r\n var stream = controller._controlledReadableByteStream;\r\n if (controller._queueTotalSize > 0) {\r\n controller._closeRequested = true;\r\n return;\r\n }\r\n if (controller._pendingPullIntos.length > 0) {\r\n var firstPendingPullInto = controller._pendingPullIntos.peek();\r\n if (firstPendingPullInto.bytesFilled > 0) {\r\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\r\n ReadableByteStreamControllerError(controller, e);\r\n throw e;\r\n }\r\n }\r\n ReadableByteStreamControllerClearAlgorithms(controller);\r\n ReadableStreamClose(stream);\r\n}\r\nfunction ReadableByteStreamControllerEnqueue(controller, chunk) {\r\n var stream = controller._controlledReadableByteStream;\r\n var buffer = chunk.buffer;\r\n var byteOffset = chunk.byteOffset;\r\n var byteLength = chunk.byteLength;\r\n var transferredBuffer = TransferArrayBuffer(buffer);\r\n if (ReadableStreamHasDefaultReader(stream) === true) {\r\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\r\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\r\n }\r\n else {\r\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\r\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\r\n }\r\n }\r\n else if (ReadableStreamHasBYOBReader(stream) === true) {\r\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\r\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\r\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\r\n }\r\n else {\r\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\r\n }\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n}\r\nfunction ReadableByteStreamControllerError(controller, e) {\r\n var stream = controller._controlledReadableByteStream;\r\n if (stream._state !== 'readable') {\r\n return;\r\n }\r\n ReadableByteStreamControllerClearPendingPullIntos(controller);\r\n ResetQueue(controller);\r\n ReadableByteStreamControllerClearAlgorithms(controller);\r\n ReadableStreamError(stream, e);\r\n}\r\nfunction ReadableByteStreamControllerGetDesiredSize(controller) {\r\n var stream = controller._controlledReadableByteStream;\r\n var state = stream._state;\r\n if (state === 'errored') {\r\n return null;\r\n }\r\n if (state === 'closed') {\r\n return 0;\r\n }\r\n return controller._strategyHWM - controller._queueTotalSize;\r\n}\r\nfunction ReadableByteStreamControllerRespond(controller, bytesWritten) {\r\n bytesWritten = Number(bytesWritten);\r\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\r\n throw new RangeError('bytesWritten must be a finite');\r\n }\r\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\r\n}\r\nfunction ReadableByteStreamControllerRespondWithNewView(controller, view) {\r\n var firstDescriptor = controller._pendingPullIntos.peek();\r\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\r\n throw new RangeError('The region specified by view does not match byobRequest');\r\n }\r\n if (firstDescriptor.byteLength !== view.byteLength) {\r\n throw new RangeError('The buffer of view has different capacity than byobRequest');\r\n }\r\n firstDescriptor.buffer = view.buffer;\r\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\r\n}\r\nfunction SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\r\n controller._controlledReadableByteStream = stream;\r\n controller._pullAgain = false;\r\n controller._pulling = false;\r\n controller._byobRequest = undefined;\r\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\r\n controller._queue = controller._queueTotalSize = undefined;\r\n ResetQueue(controller);\r\n controller._closeRequested = false;\r\n controller._started = false;\r\n controller._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\r\n controller._pullAlgorithm = pullAlgorithm;\r\n controller._cancelAlgorithm = cancelAlgorithm;\r\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\r\n controller._pendingPullIntos = new SimpleQueue();\r\n stream._readableStreamController = controller;\r\n var startResult = startAlgorithm();\r\n Promise.resolve(startResult).then(function () {\r\n controller._started = true;\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n }, function (r) {\r\n ReadableByteStreamControllerError(controller, r);\r\n }).catch(rethrowAssertionErrorRejection);\r\n}\r\nfunction SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\r\n var controller = Object.create(ReadableByteStreamController.prototype);\r\n function startAlgorithm() {\r\n return InvokeOrNoop(underlyingByteSource, 'start', [controller]);\r\n }\r\n var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'pull', 0, [controller]);\r\n var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'cancel', 1, []);\r\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\r\n if (autoAllocateChunkSize !== undefined) {\r\n autoAllocateChunkSize = Number(autoAllocateChunkSize);\r\n if (NumberIsInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\r\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\r\n }\r\n }\r\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\r\n}\r\nfunction SetUpReadableStreamBYOBRequest(request, controller, view) {\r\n request._associatedReadableByteStreamController = controller;\r\n request._view = view;\r\n}\r\n// Helper functions for the ReadableStreamBYOBRequest.\r\nfunction byobRequestBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\r\n}\r\n// Helper functions for the ReadableByteStreamController.\r\nfunction byteStreamControllerBrandCheckException(name) {\r\n return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\r\n}\n\n// Abstract operations for the ReadableStream.\r\nfunction AcquireReadableStreamBYOBReader(stream, forAuthorCode) {\r\n if (forAuthorCode === void 0) { forAuthorCode = false; }\r\n var reader = new ReadableStreamBYOBReader(stream);\r\n reader._forAuthorCode = forAuthorCode;\r\n return reader;\r\n}\r\n// ReadableStream API exposed for controllers.\r\nfunction ReadableStreamAddReadIntoRequest(stream) {\r\n var promise = new Promise(function (resolve, reject) {\r\n var readIntoRequest = {\r\n _resolve: resolve,\r\n _reject: reject\r\n };\r\n stream._reader._readIntoRequests.push(readIntoRequest);\r\n });\r\n return promise;\r\n}\r\nfunction ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\r\n var reader = stream._reader;\r\n var readIntoRequest = reader._readIntoRequests.shift();\r\n readIntoRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));\r\n}\r\nfunction ReadableStreamGetNumReadIntoRequests(stream) {\r\n return stream._reader._readIntoRequests.length;\r\n}\r\nfunction ReadableStreamHasBYOBReader(stream) {\r\n var reader = stream._reader;\r\n if (reader === undefined) {\r\n return false;\r\n }\r\n if (!IsReadableStreamBYOBReader(reader)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar ReadableStreamBYOBReader = /** @class */ (function () {\r\n function ReadableStreamBYOBReader(stream) {\r\n if (!IsReadableStream(stream)) {\r\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' +\r\n 'byte source');\r\n }\r\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\r\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\r\n 'source');\r\n }\r\n if (IsReadableStreamLocked(stream)) {\r\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\r\n }\r\n ReadableStreamReaderGenericInitialize(this, stream);\r\n this._readIntoRequests = new SimpleQueue();\r\n }\r\n Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\r\n get: function () {\r\n if (!IsReadableStreamBYOBReader(this)) {\r\n return Promise.reject(byobReaderBrandCheckException('closed'));\r\n }\r\n return this._closedPromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStreamBYOBReader.prototype.cancel = function (reason) {\r\n if (!IsReadableStreamBYOBReader(this)) {\r\n return Promise.reject(byobReaderBrandCheckException('cancel'));\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return Promise.reject(readerLockException('cancel'));\r\n }\r\n return ReadableStreamReaderGenericCancel(this, reason);\r\n };\r\n ReadableStreamBYOBReader.prototype.read = function (view) {\r\n if (!IsReadableStreamBYOBReader(this)) {\r\n return Promise.reject(byobReaderBrandCheckException('read'));\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return Promise.reject(readerLockException('read from'));\r\n }\r\n if (!ArrayBuffer.isView(view)) {\r\n return Promise.reject(new TypeError('view must be an array buffer view'));\r\n }\r\n if (IsDetachedBuffer(view.buffer) === true) ;\r\n if (view.byteLength === 0) {\r\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\r\n }\r\n return ReadableStreamBYOBReaderRead(this, view);\r\n };\r\n ReadableStreamBYOBReader.prototype.releaseLock = function () {\r\n if (!IsReadableStreamBYOBReader(this)) {\r\n throw byobReaderBrandCheckException('releaseLock');\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return;\r\n }\r\n if (this._readIntoRequests.length > 0) {\r\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\r\n }\r\n ReadableStreamReaderGenericRelease(this);\r\n };\r\n return ReadableStreamBYOBReader;\r\n}());\r\n// Abstract operations for the readers.\r\nfunction IsReadableStreamBYOBReader(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction ReadableStreamBYOBReaderRead(reader, view) {\r\n var stream = reader._ownerReadableStream;\r\n stream._disturbed = true;\r\n if (stream._state === 'errored') {\r\n return Promise.reject(stream._storedError);\r\n }\r\n // Controllers must implement this.\r\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\r\n}\r\n// Helper functions for the ReadableStreamBYOBReader.\r\nfunction byobReaderBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\r\n}\n\nvar ReadableStream = /** @class */ (function () {\r\n function ReadableStream(underlyingSource, strategy) {\r\n if (underlyingSource === void 0) { underlyingSource = {}; }\r\n if (strategy === void 0) { strategy = {}; }\r\n InitializeReadableStream(this);\r\n var size = strategy.size;\r\n var highWaterMark = strategy.highWaterMark;\r\n var type = underlyingSource.type;\r\n var typeString = String(type);\r\n if (typeString === 'bytes') {\r\n if (size !== undefined) {\r\n throw new RangeError('The strategy for a byte stream cannot have a size function');\r\n }\r\n if (highWaterMark === undefined) {\r\n highWaterMark = 0;\r\n }\r\n highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\r\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\r\n }\r\n else if (type === undefined) {\r\n var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);\r\n if (highWaterMark === undefined) {\r\n highWaterMark = 1;\r\n }\r\n highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\r\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\r\n }\r\n else {\r\n throw new RangeError('Invalid type is specified');\r\n }\r\n }\r\n Object.defineProperty(ReadableStream.prototype, \"locked\", {\r\n get: function () {\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('locked');\r\n }\r\n return IsReadableStreamLocked(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStream.prototype.cancel = function (reason) {\r\n if (IsReadableStream(this) === false) {\r\n return Promise.reject(streamBrandCheckException$1('cancel'));\r\n }\r\n if (IsReadableStreamLocked(this) === true) {\r\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\r\n }\r\n return ReadableStreamCancel(this, reason);\r\n };\r\n ReadableStream.prototype.getReader = function (_a) {\r\n var mode = (_a === void 0 ? {} : _a).mode;\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('getReader');\r\n }\r\n if (mode === undefined) {\r\n return AcquireReadableStreamDefaultReader(this, true);\r\n }\r\n mode = String(mode);\r\n if (mode === 'byob') {\r\n return AcquireReadableStreamBYOBReader(this, true);\r\n }\r\n throw new RangeError('Invalid mode is specified');\r\n };\r\n ReadableStream.prototype.pipeThrough = function (_a, _b) {\r\n var writable = _a.writable, readable = _a.readable;\r\n var _c = _b === void 0 ? {} : _b, preventClose = _c.preventClose, preventAbort = _c.preventAbort, preventCancel = _c.preventCancel, signal = _c.signal;\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('pipeThrough');\r\n }\r\n if (IsWritableStream(writable) === false) {\r\n throw new TypeError('writable argument to pipeThrough must be a WritableStream');\r\n }\r\n if (IsReadableStream(readable) === false) {\r\n throw new TypeError('readable argument to pipeThrough must be a ReadableStream');\r\n }\r\n preventClose = Boolean(preventClose);\r\n preventAbort = Boolean(preventAbort);\r\n preventCancel = Boolean(preventCancel);\r\n if (signal !== undefined && !isAbortSignal(signal)) {\r\n throw new TypeError('ReadableStream.prototype.pipeThrough\\'s signal option must be an AbortSignal');\r\n }\r\n if (IsReadableStreamLocked(this) === true) {\r\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\r\n }\r\n if (IsWritableStreamLocked(writable) === true) {\r\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\r\n }\r\n var promise = ReadableStreamPipeTo(this, writable, preventClose, preventAbort, preventCancel, signal);\r\n promise.catch(noop);\r\n return readable;\r\n };\r\n ReadableStream.prototype.pipeTo = function (dest, _a) {\r\n var _b = _a === void 0 ? {} : _a, preventClose = _b.preventClose, preventAbort = _b.preventAbort, preventCancel = _b.preventCancel, signal = _b.signal;\r\n if (IsReadableStream(this) === false) {\r\n return Promise.reject(streamBrandCheckException$1('pipeTo'));\r\n }\r\n if (IsWritableStream(dest) === false) {\r\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\r\n }\r\n preventClose = Boolean(preventClose);\r\n preventAbort = Boolean(preventAbort);\r\n preventCancel = Boolean(preventCancel);\r\n if (signal !== undefined && !isAbortSignal(signal)) {\r\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s signal option must be an AbortSignal'));\r\n }\r\n if (IsReadableStreamLocked(this) === true) {\r\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\r\n }\r\n if (IsWritableStreamLocked(dest) === true) {\r\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\r\n }\r\n return ReadableStreamPipeTo(this, dest, preventClose, preventAbort, preventCancel, signal);\r\n };\r\n ReadableStream.prototype.tee = function () {\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('tee');\r\n }\r\n var branches = ReadableStreamTee(this);\r\n return createArrayFromList(branches);\r\n };\r\n ReadableStream.prototype.getIterator = function (_a) {\r\n var _b = (_a === void 0 ? {} : _a).preventCancel, preventCancel = _b === void 0 ? false : _b;\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('getIterator');\r\n }\r\n return AcquireReadableStreamAsyncIterator(this, preventCancel);\r\n };\r\n return ReadableStream;\r\n}());\r\nif (typeof SymbolPolyfill.asyncIterator === 'symbol') {\r\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\r\n value: ReadableStream.prototype.getIterator,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n}\r\n// Abstract operations for the ReadableStream.\r\n// Throws if and only if startAlgorithm throws.\r\nfunction CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\r\n if (highWaterMark === void 0) { highWaterMark = 1; }\r\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\r\n var stream = Object.create(ReadableStream.prototype);\r\n InitializeReadableStream(stream);\r\n var controller = Object.create(ReadableStreamDefaultController.prototype);\r\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\r\n return stream;\r\n}\r\nfunction InitializeReadableStream(stream) {\r\n stream._state = 'readable';\r\n stream._reader = undefined;\r\n stream._storedError = undefined;\r\n stream._disturbed = false;\r\n}\r\nfunction IsReadableStream(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction IsReadableStreamLocked(stream) {\r\n if (stream._reader === undefined) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n// ReadableStream API exposed for controllers.\r\nfunction ReadableStreamCancel(stream, reason) {\r\n stream._disturbed = true;\r\n if (stream._state === 'closed') {\r\n return Promise.resolve(undefined);\r\n }\r\n if (stream._state === 'errored') {\r\n return Promise.reject(stream._storedError);\r\n }\r\n ReadableStreamClose(stream);\r\n var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\r\n return sourceCancelPromise.then(function () { return undefined; });\r\n}\r\nfunction ReadableStreamClose(stream) {\r\n stream._state = 'closed';\r\n var reader = stream._reader;\r\n if (reader === undefined) {\r\n return;\r\n }\r\n if (IsReadableStreamDefaultReader(reader)) {\r\n reader._readRequests.forEach(function (readRequest) {\r\n readRequest._resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));\r\n });\r\n reader._readRequests = new SimpleQueue();\r\n }\r\n defaultReaderClosedPromiseResolve(reader);\r\n}\r\nfunction ReadableStreamError(stream, e) {\r\n stream._state = 'errored';\r\n stream._storedError = e;\r\n var reader = stream._reader;\r\n if (reader === undefined) {\r\n return;\r\n }\r\n if (IsReadableStreamDefaultReader(reader)) {\r\n reader._readRequests.forEach(function (readRequest) {\r\n readRequest._reject(e);\r\n });\r\n reader._readRequests = new SimpleQueue();\r\n }\r\n else {\r\n reader._readIntoRequests.forEach(function (readIntoRequest) {\r\n readIntoRequest._reject(e);\r\n });\r\n reader._readIntoRequests = new SimpleQueue();\r\n }\r\n defaultReaderClosedPromiseReject(reader, e);\r\n}\r\n// Helper functions for the ReadableStream.\r\nfunction isAbortSignal(value) {\r\n if (typeof value !== 'object' || value === null) {\r\n return false;\r\n }\r\n // Use the brand check to distinguish a real AbortSignal from a fake one.\r\n var aborted = Object.getOwnPropertyDescriptor(AbortSignal.prototype, 'aborted').get;\r\n try {\r\n aborted.call(value);\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\nfunction streamBrandCheckException$1(name) {\r\n return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\r\n}\n\nvar ByteLengthQueuingStrategy = /** @class */ (function () {\r\n function ByteLengthQueuingStrategy(_a) {\r\n var highWaterMark = _a.highWaterMark;\r\n this.highWaterMark = highWaterMark;\r\n }\r\n ByteLengthQueuingStrategy.prototype.size = function (chunk) {\r\n return chunk.byteLength;\r\n };\r\n return ByteLengthQueuingStrategy;\r\n}());\n\nvar CountQueuingStrategy = /** @class */ (function () {\r\n function CountQueuingStrategy(_a) {\r\n var highWaterMark = _a.highWaterMark;\r\n this.highWaterMark = highWaterMark;\r\n }\r\n CountQueuingStrategy.prototype.size = function () {\r\n return 1;\r\n };\r\n return CountQueuingStrategy;\r\n}());\n\n// Class TransformStream\r\nvar TransformStream = /** @class */ (function () {\r\n function TransformStream(transformer, writableStrategy, readableStrategy) {\r\n if (transformer === void 0) { transformer = {}; }\r\n if (writableStrategy === void 0) { writableStrategy = {}; }\r\n if (readableStrategy === void 0) { readableStrategy = {}; }\r\n var writableSizeFunction = writableStrategy.size;\r\n var writableHighWaterMark = writableStrategy.highWaterMark;\r\n var readableSizeFunction = readableStrategy.size;\r\n var readableHighWaterMark = readableStrategy.highWaterMark;\r\n var writableType = transformer.writableType;\r\n if (writableType !== undefined) {\r\n throw new RangeError('Invalid writable type specified');\r\n }\r\n var writableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(writableSizeFunction);\r\n if (writableHighWaterMark === undefined) {\r\n writableHighWaterMark = 1;\r\n }\r\n writableHighWaterMark = ValidateAndNormalizeHighWaterMark(writableHighWaterMark);\r\n var readableType = transformer.readableType;\r\n if (readableType !== undefined) {\r\n throw new RangeError('Invalid readable type specified');\r\n }\r\n var readableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(readableSizeFunction);\r\n if (readableHighWaterMark === undefined) {\r\n readableHighWaterMark = 0;\r\n }\r\n readableHighWaterMark = ValidateAndNormalizeHighWaterMark(readableHighWaterMark);\r\n var startPromise_resolve;\r\n var startPromise = new Promise(function (resolve) {\r\n startPromise_resolve = resolve;\r\n });\r\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\r\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\r\n var startResult = InvokeOrNoop(transformer, 'start', [this._transformStreamController]);\r\n startPromise_resolve(startResult);\r\n }\r\n Object.defineProperty(TransformStream.prototype, \"readable\", {\r\n get: function () {\r\n if (IsTransformStream(this) === false) {\r\n throw streamBrandCheckException$2('readable');\r\n }\r\n return this._readable;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TransformStream.prototype, \"writable\", {\r\n get: function () {\r\n if (IsTransformStream(this) === false) {\r\n throw streamBrandCheckException$2('writable');\r\n }\r\n return this._writable;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TransformStream;\r\n}());\r\nfunction InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\r\n function startAlgorithm() {\r\n return startPromise;\r\n }\r\n function writeAlgorithm(chunk) {\r\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\r\n }\r\n function abortAlgorithm(reason) {\r\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\r\n }\r\n function closeAlgorithm() {\r\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\r\n }\r\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\r\n function pullAlgorithm() {\r\n return TransformStreamDefaultSourcePullAlgorithm(stream);\r\n }\r\n function cancelAlgorithm(reason) {\r\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\r\n return Promise.resolve();\r\n }\r\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\r\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\r\n stream._backpressure = undefined;\r\n stream._backpressureChangePromise = undefined;\r\n stream._backpressureChangePromise_resolve = undefined;\r\n TransformStreamSetBackpressure(stream, true);\r\n // Used by IsWritableStream() which is called by SetUpTransformStreamDefaultController().\r\n stream._transformStreamController = undefined;\r\n}\r\nfunction IsTransformStream(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n// This is a no-op if both sides are already errored.\r\nfunction TransformStreamError(stream, e) {\r\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\r\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\r\n}\r\nfunction TransformStreamErrorWritableAndUnblockWrite(stream, e) {\r\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\r\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\r\n if (stream._backpressure === true) {\r\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\r\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\r\n // _backpressure is set.\r\n TransformStreamSetBackpressure(stream, false);\r\n }\r\n}\r\nfunction TransformStreamSetBackpressure(stream, backpressure) {\r\n // Passes also when called during construction.\r\n if (stream._backpressureChangePromise !== undefined) {\r\n stream._backpressureChangePromise_resolve();\r\n }\r\n stream._backpressureChangePromise = new Promise(function (resolve) {\r\n stream._backpressureChangePromise_resolve = resolve;\r\n });\r\n stream._backpressure = backpressure;\r\n}\r\nvar TransformStreamDefaultController = /** @class */ (function () {\r\n /** @internal */\r\n function TransformStreamDefaultController() {\r\n throw new TypeError('TransformStreamDefaultController instances cannot be created directly');\r\n }\r\n Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\r\n get: function () {\r\n if (IsTransformStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException$1('desiredSize');\r\n }\r\n var readableController = this._controlledTransformStream._readable._readableStreamController;\r\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TransformStreamDefaultController.prototype.enqueue = function (chunk) {\r\n if (IsTransformStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException$1('enqueue');\r\n }\r\n TransformStreamDefaultControllerEnqueue(this, chunk);\r\n };\r\n TransformStreamDefaultController.prototype.error = function (reason) {\r\n if (IsTransformStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException$1('error');\r\n }\r\n TransformStreamDefaultControllerError(this, reason);\r\n };\r\n TransformStreamDefaultController.prototype.terminate = function () {\r\n if (IsTransformStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException$1('terminate');\r\n }\r\n TransformStreamDefaultControllerTerminate(this);\r\n };\r\n return TransformStreamDefaultController;\r\n}());\r\n// Transform Stream Default Controller Abstract Operations\r\nfunction IsTransformStreamDefaultController(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\r\n controller._controlledTransformStream = stream;\r\n stream._transformStreamController = controller;\r\n controller._transformAlgorithm = transformAlgorithm;\r\n controller._flushAlgorithm = flushAlgorithm;\r\n}\r\nfunction SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\r\n var controller = Object.create(TransformStreamDefaultController.prototype);\r\n var transformAlgorithm = function (chunk) {\r\n try {\r\n TransformStreamDefaultControllerEnqueue(controller, chunk);\r\n return Promise.resolve();\r\n }\r\n catch (transformResultE) {\r\n return Promise.reject(transformResultE);\r\n }\r\n };\r\n var transformMethod = transformer.transform;\r\n if (transformMethod !== undefined) {\r\n if (typeof transformMethod !== 'function') {\r\n throw new TypeError('transform is not a method');\r\n }\r\n transformAlgorithm = function (chunk) { return PromiseCall(transformMethod, transformer, [chunk, controller]); };\r\n }\r\n var flushAlgorithm = CreateAlgorithmFromUnderlyingMethod(transformer, 'flush', 0, [controller]);\r\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\r\n}\r\nfunction TransformStreamDefaultControllerClearAlgorithms(controller) {\r\n controller._transformAlgorithm = undefined;\r\n controller._flushAlgorithm = undefined;\r\n}\r\nfunction TransformStreamDefaultControllerEnqueue(controller, chunk) {\r\n var stream = controller._controlledTransformStream;\r\n var readableController = stream._readable._readableStreamController;\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === false) {\r\n throw new TypeError('Readable side is not in a state that permits enqueue');\r\n }\r\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\r\n // accept TransformStreamDefaultControllerEnqueue() calls.\r\n try {\r\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\r\n }\r\n catch (e) {\r\n // This happens when readableStrategy.size() throws.\r\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\r\n throw stream._readable._storedError;\r\n }\r\n var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\r\n if (backpressure !== stream._backpressure) {\r\n TransformStreamSetBackpressure(stream, true);\r\n }\r\n}\r\nfunction TransformStreamDefaultControllerError(controller, e) {\r\n TransformStreamError(controller._controlledTransformStream, e);\r\n}\r\nfunction TransformStreamDefaultControllerPerformTransform(controller, chunk) {\r\n var transformPromise = controller._transformAlgorithm(chunk);\r\n return transformPromise.catch(function (r) {\r\n TransformStreamError(controller._controlledTransformStream, r);\r\n throw r;\r\n });\r\n}\r\nfunction TransformStreamDefaultControllerTerminate(controller) {\r\n var stream = controller._controlledTransformStream;\r\n var readableController = stream._readable._readableStreamController;\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {\r\n ReadableStreamDefaultControllerClose(readableController);\r\n }\r\n var error = new TypeError('TransformStream terminated');\r\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\r\n}\r\n// TransformStreamDefaultSink Algorithms\r\nfunction TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\r\n var controller = stream._transformStreamController;\r\n if (stream._backpressure === true) {\r\n var backpressureChangePromise = stream._backpressureChangePromise;\r\n return backpressureChangePromise.then(function () {\r\n var writable = stream._writable;\r\n var state = writable._state;\r\n if (state === 'erroring') {\r\n throw writable._storedError;\r\n }\r\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\r\n });\r\n }\r\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\r\n}\r\nfunction TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\r\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\r\n // errored.\r\n TransformStreamError(stream, reason);\r\n return Promise.resolve();\r\n}\r\nfunction TransformStreamDefaultSinkCloseAlgorithm(stream) {\r\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\r\n var readable = stream._readable;\r\n var controller = stream._transformStreamController;\r\n var flushPromise = controller._flushAlgorithm();\r\n TransformStreamDefaultControllerClearAlgorithms(controller);\r\n // Return a promise that is fulfilled with undefined on success.\r\n return flushPromise.then(function () {\r\n if (readable._state === 'errored') {\r\n throw readable._storedError;\r\n }\r\n var readableController = readable._readableStreamController;\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {\r\n ReadableStreamDefaultControllerClose(readableController);\r\n }\r\n }).catch(function (r) {\r\n TransformStreamError(stream, r);\r\n throw readable._storedError;\r\n });\r\n}\r\n// TransformStreamDefaultSource Algorithms\r\nfunction TransformStreamDefaultSourcePullAlgorithm(stream) {\r\n // Invariant. Enforced by the promises returned by start() and pull().\r\n TransformStreamSetBackpressure(stream, false);\r\n // Prevent the next pull() call until there is backpressure.\r\n return stream._backpressureChangePromise;\r\n}\r\n// Helper functions for the TransformStreamDefaultController.\r\nfunction defaultControllerBrandCheckException$1(name) {\r\n return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\r\n}\r\n// Helper functions for the TransformStream.\r\nfunction streamBrandCheckException$2(name) {\r\n return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\r\n}\n\nexport { ByteLengthQueuingStrategy, CountQueuingStrategy, ReadableStream, TransformStream, WritableStream };\n//# sourceMappingURL=ponyfill.mjs.map\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals requirejs, __non_webpack_require__ */\n/* eslint no-var: error */\n\nimport {\n AbortException, assert, createPromiseCapability, getVerbosityLevel, info,\n InvalidPDFException, isArrayBuffer, isSameOrigin, MissingPDFException,\n NativeImageDecoding, PasswordException, setVerbosityLevel, shadow,\n stringToBytes, UnexpectedResponseException, UnknownErrorException,\n unreachable, warn\n} from '../shared/util';\nimport {\n deprecated, DOMCanvasFactory, DOMCMapReaderFactory, DummyStatTimer,\n loadScript, PageViewport, releaseImageResources, RenderingCancelledException,\n StatTimer\n} from './display_utils';\nimport { FontFaceObject, FontLoader } from './font_loader';\nimport { apiCompatibilityParams } from './api_compatibility';\nimport { CanvasGraphics } from './canvas';\nimport globalScope from '../shared/global_scope';\nimport { GlobalWorkerOptions } from './worker_options';\nimport { MessageHandler } from '../shared/message_handler';\nimport { Metadata } from './metadata';\nimport { PDFDataTransportStream } from './transport_stream';\nimport { WebGLContext } from './webgl';\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\nlet isWorkerDisabled = false;\nlet fallbackWorkerSrc;\n\nlet fakeWorkerFilesLoader = null;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n let useRequireEnsure = false;\n // For GENERIC build we need to add support for different fake file loaders\n // for different frameworks.\n if (typeof window === 'undefined') {\n // node.js - disable worker and set require.ensure.\n isWorkerDisabled = true;\n if (typeof __non_webpack_require__.ensure === 'undefined') {\n __non_webpack_require__.ensure = __non_webpack_require__('node-ensure');\n }\n useRequireEnsure = true;\n } else if (typeof __non_webpack_require__ !== 'undefined' &&\n typeof __non_webpack_require__.ensure === 'function') {\n useRequireEnsure = true;\n }\n if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n }\n const dynamicLoaderSupported =\n typeof requirejs !== 'undefined' && requirejs.load;\n fakeWorkerFilesLoader = useRequireEnsure ? (function() {\n return new Promise(function(resolve, reject) {\n __non_webpack_require__.ensure([], function() {\n try {\n let worker;\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('LIB')) {\n worker = __non_webpack_require__('../pdf.worker.js');\n } else {\n worker = __non_webpack_require__('./pdf.worker.js');\n }\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject, 'pdfjsWorker');\n });\n }) : dynamicLoaderSupported ? (function() {\n return new Promise(function(resolve, reject) {\n requirejs(['pdfjs-dist/build/pdf.worker'], function(worker) {\n try {\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n });\n }) : null;\n\n if (!fallbackWorkerSrc && typeof document === 'object' &&\n 'currentScript' in document) {\n const pdfjsFilePath = document.currentScript && document.currentScript.src;\n if (pdfjsFilePath) {\n fallbackWorkerSrc =\n pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n }\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params The document initialization\n * parameters. The \"url\" key is always present.\n * @return {IPDFStream}\n */\n\n/** @type IPDFStreamFactory */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates a IPDFStream as an alternative PDF data\n * transport.\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - the factory function\n * that takes document initialization parameters (including a \"url\") and returns\n * an instance of IPDFStream.\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string} url - The URL of the PDF.\n * @property {TypedArray|Array|string} data - Binary PDF data. Use typed arrays\n * (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded,\n * use atob() to convert it to a binary string first.\n * @property {Object} httpHeaders - Basic authentication headers.\n * @property {boolean} withCredentials - Indicates whether or not cross-site\n * Access-Control requests should be made using credentials such as cookies\n * or authorization headers. The default is false.\n * @property {string} password - For decrypting password-protected PDFs.\n * @property {TypedArray} initialData - A typed array with the first portion or\n * all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} length - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} range\n * @property {number} rangeChunkSize - Optional parameter to specify\n * maximum number of bytes fetched per range request. The default value is\n * 2^16 = 65536.\n * @property {PDFWorker} worker - (optional) The worker that will be used for\n * the loading and parsing of the PDF data.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n * @property {string} docBaseUrl - (optional) The base URL of the document,\n * used when attempting to recover valid absolute URLs for annotations, and\n * outline items, that (incorrectly) only specify relative URLs.\n * @property {string} nativeImageDecoderSupport - (optional) Strategy for\n * decoding certain (simple) JPEG images in the browser. This is useful for\n * environments without DOM image and canvas support, such as e.g. Node.js.\n * Valid values are 'decode', 'display' or 'none'; where 'decode' is intended\n * for browsers with full image/canvas support, 'display' for environments\n * with limited image support through stubs (useful for SVG conversion),\n * and 'none' where JPEG images will be decoded entirely by PDF.js.\n * The default value is 'decode'.\n * @property {string} cMapUrl - (optional) The URL where the predefined\n * Adobe CMaps are located. Include trailing slash.\n * @property {boolean} cMapPacked - (optional) Specifies if the Adobe CMaps are\n * binary packed.\n * @property {Object} CMapReaderFactory - (optional) The factory that will be\n * used when reading built-in CMap files. Providing a custom factory is useful\n * for environments without `XMLHttpRequest` support, such as e.g. Node.js.\n * The default value is {DOMCMapReaderFactory}.\n * @property {boolean} stopAtErrors - (optional) Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} maxImageSize - (optional) The maximum allowed image size\n * in total pixels, i.e. width * height. Images above this value will not be\n * rendered. Use -1 for no limit, which is also the default value.\n * @property {boolean} isEvalSupported - (optional) Determines if we can eval\n * strings as JS. Primarily used to improve performance of font rendering,\n * and when parsing PDF functions. The default value is `true`.\n * @property {boolean} disableFontFace - (optional) By default fonts are\n * converted to OpenType fonts and loaded via font face rules. If disabled,\n * fonts will be rendered using a built-in font renderer that constructs the\n * glyphs with primitive path commands. The default value is `false`.\n * @property {boolean} disableRange - (optional) Disable range request loading\n * of PDF files. When enabled, and if the server supports partial content\n * requests, then the PDF will be fetched in chunks.\n * The default value is `false`.\n * @property {boolean} disableStream - (optional) Disable streaming of PDF file\n * data. By default PDF.js attempts to load PDFs in chunks.\n * The default value is `false`.\n * @property {boolean} disableAutoFetch - (optional) Disable pre-fetching of PDF\n * file data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n * NOTE: It is also necessary to disable streaming, see above,\n * in order for disabling of pre-fetching to work correctly.\n * @property {boolean} disableCreateObjectURL - (optional) Disable the use of\n * `URL.createObjectURL`, for compatibility with older browsers.\n * The default value is `false`.\n * @property {boolean} pdfBug - (optional) Enables special hooks for debugging\n * PDF.js (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef {Object} PDFDocumentStats\n * @property {Object} streamTypes - Used stream types in the document (an item\n * is set to true if specific stream ID was used in the document).\n * @property {Object} fontTypes - Used font types in the document (an item\n * is set to true if specific font ID was used in the document).\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)\n * is used, which means it must follow the same origin rules that any XHR does\n * e.g. No cross domain requests without CORS.\n *\n * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src\n * Can be a url to where a PDF is located, a typed array (Uint8Array)\n * already populated with data or parameter object.\n *\n * @return {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === 'string') {\n source = { url: src, };\n } else if (isArrayBuffer(src)) {\n source = { data: src, };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src, };\n } else {\n if (typeof src !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' +\n 'need either Uint8Array, string or a parameter object');\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n 'Invalid parameter object: need either .data, .range or .url');\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null, worker = null;\n\n for (const key in source) {\n if (key === 'url' && typeof window !== 'undefined') {\n // The full path is required in the 'url' field.\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === 'range') {\n rangeTransport = source[key];\n continue;\n } else if (key === 'worker') {\n worker = source[key];\n continue;\n } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {\n // Converting string or array-like data to Uint8Array.\n const pdfBytes = source[key];\n if (typeof pdfBytes === 'string') {\n params[key] = stringToBytes(pdfBytes);\n } else if (typeof pdfBytes === 'object' && pdfBytes !== null &&\n !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if (isArrayBuffer(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error('Invalid PDF binary data: either typed array, ' +\n 'string or array-like object is expected in the ' +\n 'data property.');\n }\n continue;\n }\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n\n const NativeImageDecoderValues = Object.values(NativeImageDecoding);\n if (params.nativeImageDecoderSupport === undefined ||\n !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport =\n (apiCompatibilityParams.nativeImageDecoderSupport ||\n NativeImageDecoding.DECODE);\n }\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.isEvalSupported !== 'boolean') {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== 'boolean') {\n params.disableFontFace = apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== 'boolean') {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== 'boolean') {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== 'boolean') {\n params.disableAutoFetch = false;\n }\n if (typeof params.disableCreateObjectURL !== 'boolean') {\n params.disableCreateObjectURL =\n apiCompatibilityParams.disableCreateObjectURL || false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) :\n new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise.then(function() {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n return _fetchDocument(worker, params, rangeTransport, docId).then(\n function(workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n\n const messageHandler = new MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream,\n params);\n task._transport = transport;\n messageHandler.send('Ready', null);\n });\n }).catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId Unique document id, used as MessageHandler id.\n * @returns {Promise} The promise, which is resolved when worker id of\n * MessageHandler is known.\n * @private\n */\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n }\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId,\n apiVersion: typeof PDFJSDev !== 'undefined' && !PDFJSDev.test('TESTING') ?\n PDFJSDev.eval('BUNDLE_VERSION') : null,\n source: { // Only send the required properties, and *not* the entire object.\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n disableCreateObjectURL: source.disableCreateObjectURL,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n }).then(function(workerId) {\n if (worker.destroyed) {\n throw new Error('Worker was destroyed');\n }\n return workerId;\n });\n}\n\n/**\n * PDF document loading operation.\n * @class\n * @alias PDFDocumentLoadingTask\n */\nconst PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n /** @constructs PDFDocumentLoadingTask */\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique document loading task id -- used in MessageHandlers.\n * @type {string}\n */\n this.docId = 'd' + (nextDocumentId++);\n\n /**\n * Shows if loading task is destroyed.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if wrong or no password was provided.\n * The callback receives two parameters: function that needs to be called\n * with new password and reason (see {PasswordResponses}).\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar). The callback receives\n * an {Object} with the properties: {number} loaded and {number} total.\n */\n this.onProgress = null;\n\n /**\n * Callback to when unsupported feature is used. The callback receives\n * an {UNSUPPORTED_FEATURES} argument.\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * @return {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Aborts all network requests and destroys worker.\n * @return {Promise} A promise that is resolved after destruction activity\n * is completed.\n */\n destroy() {\n this.destroyed = true;\n\n const transportDestroyed = !this._transport ? Promise.resolve() :\n this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n });\n }\n\n /**\n * Registers callbacks to indicate the document loading completion.\n *\n * @param {function} onFulfilled The callback for the loading completion.\n * @param {function} onRejected The callback for the loading failure.\n * @return {Promise} A promise that is resolved after the onFulfilled or\n * onRejected callback.\n */\n then(onFulfilled, onRejected) {\n deprecated('PDFDocumentLoadingTask.then method, ' +\n 'use the `promise` getter instead.');\n return this.promise.then.apply(this.promise, arguments);\n }\n }\n return PDFDocumentLoadingTask;\n})();\n\n/**\n * Abstract class to support range requests file loading.\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} progressiveDone\n */\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable('Abstract method PDFDataRangeTransport.requestDataRange');\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a PDFDocument in the worker thread. Also, contains commonly used\n * properties that can be read synchronously.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n /**\n * @return {number} Total number of pages the PDF contains.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @return {string} A (not guaranteed to be) unique ID to identify a PDF.\n */\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @return {Promise} A promise that is resolved with a {@link PDFPageProxy}\n * object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {{num: number, gen: number}} ref - The page reference. Must have\n * the `num` and `gen` properties.\n * @return {Promise} A promise that is resolved with the page index that is\n * associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named destinations to reference numbers.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @return {Promise} A promise that is resolved with all information\n * of the given named destination.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} containing\n * the page labels that correspond to the page indexes, or `null` when\n * no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {string} containing\n * the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {string} containing\n * the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Object} containing\n * the viewer preferences.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} containing the\n * destination, or `null` when no open action is present in the PDF file.\n */\n getOpenActionDestination() {\n return this._transport.getOpenActionDestination();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} of all the\n * JavaScript strings in the name tree, or `null` if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} that is a\n * tree outline (if it has one) of the PDF. The tree is in the format of:\n * [\n * {\n * title: string,\n * bold: boolean,\n * italic: boolean,\n * color: rgb Uint8ClampedArray,\n * count: integer or undefined,\n * dest: dest obj,\n * url: string,\n * items: array of more items like this\n * },\n * ...\n * ]\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} that contains\n * the permission flags for the PDF document, or `null` when\n * no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Object} that has\n * `info` and `metadata` properties. `info` is an {Object} filled with\n * anything available in the information dictionary and similarly\n * `metadata` is a {Metadata} object with information from the metadata\n * section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {TypedArray} that has\n * the raw data from the PDF.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @return {Promise} A promise that is resolved when the document's data\n * is loaded. It is resolved with an {Object} that contains the `length`\n * property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * @return {Promise} A promise this is resolved with current statistics about\n * document structures (see {@link PDFDocumentStats}).\n */\n getStats() {\n return this._transport.getStats();\n }\n\n /**\n * Cleans up resources allocated by the document, e.g. created `@font-face`.\n */\n cleanup() {\n this._transport.startCleanup();\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @return {Object} A subset of the current {DocumentInitParameters},\n * which are either needed in the viewer and/or whose default values\n * may be affected by the `apiCompatibilityParams`.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @return {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} rotation - (optional) The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {boolean} dontFlip - (optional) If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - replaces all occurrences of\n * whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {array} items - array of {@link TextItem}\n * @property {Object} styles - {@link TextStyle} objects, indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - text content.\n * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {array} transform - transformation matrix.\n * @property {number} width - width in device space.\n * @property {number} height - height in device space.\n * @property {string} fontName - font name used by pdf.js for converted font.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - font ascent.\n * @property {number} descent - font descent.\n * @property {boolean} vertical - text is in vertical mode.\n * @property {string} fontFamily - possible font family\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} intent - Determines the annotations that will be fetched,\n * can be either 'display' (viewable annotations) or 'print'\n * (printable annotations).\n * If the parameter is omitted, all annotations are fetched.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by\n * calling the `PDFPageProxy.getViewport` method.\n * @property {string} intent - Rendering intent, can be 'display' or 'print'\n * (default value is 'display').\n * @property {boolean} enableWebGL - (optional) Enables WebGL accelerated\n * rendering for some operations. The default value is `false`.\n * @property {boolean} renderInteractiveForms - (optional) Whether or not\n * interactive form elements are rendered in the display\n * layer. If so, we do not render them on canvas as well.\n * @property {Array} transform - (optional) Additional transform, applied\n * just before viewport transform.\n * @property {Object} imageLayer - (optional) An object that has beginLayout,\n * endLayout and appendImage functions.\n * @property {Object} canvasFactory - (optional) The factory that will be used\n * when creating canvases. The default value is\n * {DOMCanvasFactory}.\n * @property {Object} background - (optional) Background to use for the canvas.\n * Can use any valid canvas.fillStyle: A DOMString parsed as\n * CSS <color> value, a CanvasGradient object (a linear or\n * radial gradient) or a CanvasPattern object (a repetitive\n * image). The default value is 'rgb(255,255,255)'.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a PDFPage in the worker thread.\n * @alias PDFPageProxy\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this.pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = (pdfBug ? new StatTimer() : DummyStatTimer);\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n /**\n * @return {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this.pageIndex + 1;\n }\n\n /**\n * @return {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @return {Object} The reference that points to this page. It has 'num' and\n * 'gen' properties.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @return {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @return {Array} An array of the visible portion of the PDF page in the\n * user space units - [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @return {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({ scale, rotation = this.rotate, dontFlip = false, } = {}) {\n if ((typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) &&\n (arguments.length > 1 || typeof arguments[0] === 'number')) {\n deprecated('getViewport is called with obsolete arguments.');\n scale = arguments[0];\n rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate;\n dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false;\n }\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @return {Promise} A promise that is resolved with an {Array} of the\n * annotation objects.\n */\n getAnnotations({ intent = null, } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this.pageIndex,\n intent);\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n * @param {RenderParameters} params Page render parameters.\n * @return {RenderTask} An object that contains the promise, which\n * is resolved when the page finishes rendering.\n */\n render({ canvasContext, viewport, intent = 'display', enableWebGL = false,\n renderInteractiveForms = false, transform = null, imageLayer = null,\n canvasFactory = null, background = null, }) {\n const stats = this._stats;\n stats.time('Overall');\n\n const renderingIntent = (intent === 'print' ? 'print' : 'display');\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DOMCanvasFactory();\n const webGLContext = new WebGLContext({\n enable: enableWebGL,\n });\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n stats.time('Page Request');\n this._pumpOperatorList({\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n });\n }\n\n const complete = (error) => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || renderingIntent === 'print') {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error,\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n stats.timeEnd('Rendering');\n stats.timeEnd('Overall');\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: { // Include the required properties, and *not* the entire object.\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageNumber: this.pageNumber,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== 'print',\n pdfBug: this._pdfBug,\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n intentState.displayReadyCapability.promise.then((transparency) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n\n return renderTask;\n }\n\n /**\n * @return {Promise} A promise resolved with an {@link PDFOperatorList}\n * object that represents page's operator list.\n */\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n const i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = 'oplist';\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = createPromiseCapability();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n this._stats.time('Page Request');\n this._pumpOperatorList({\n pageIndex: this.pageIndex,\n intent: renderingIntent,\n });\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {ReadableStream} ReadableStream to read textContent chunks.\n */\n streamTextContent({ normalizeWhitespace = false,\n disableCombineTextItems = false, } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream('GetTextContent', {\n pageIndex: this.pageNumber - 1,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n });\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {Promise} That is resolved a {@link TextContent}\n * object that represent the page text content.\n */\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function(resolve, reject) {\n function pump() {\n reader.read().then(function({ value, done, }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * Destroys page object.\n */\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this.pageIndex] = null;\n\n const waitOn = [];\n Object.keys(this.intentStates).forEach((intent) => {\n const intentState = this.intentStates[intent];\n this._abortOperatorList({\n intentState,\n reason: new Error('Page was destroyed.'),\n force: true,\n });\n\n if (intent === 'oplist') {\n // Avoid errors below, since the renderTasks are just stubs.\n return;\n }\n intentState.renderTasks.forEach(function(renderTask) {\n const renderCompleted = renderTask.capability.promise.\n catch(function() {}); // ignoring failures\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n });\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n * @param {boolean} resetStats - (optional) Reset page stats, if enabled.\n * The default value is `false`.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n this._tryCleanup(resetStats);\n }\n\n /**\n * For internal use only. Attempts to clean up if rendering is in a state\n * where that's possible.\n * @ignore\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup ||\n Object.keys(this.intentStates).some((intent) => {\n const intentState = this.intentStates[intent];\n return (intentState.renderTasks.length !== 0 ||\n !intentState.operatorList.lastChunk);\n })) {\n return;\n }\n\n Object.keys(this.intentStates).forEach((intent) => {\n delete this.intentStates[intent];\n });\n this.objs.clear();\n this.annotationsPromise = null;\n if (resetStats && this._stats instanceof StatTimer) {\n this._stats = new StatTimer();\n }\n this.pendingCleanup = false;\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _startRenderPage(transparency, intent) {\n const intentState = this.intentStates[intent];\n if (!intentState) {\n return; // Rendering was cancelled.\n }\n this._stats.timeEnd('Page Request');\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _renderPageChunk(operatorListChunk, intentState) {\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(\n operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _pumpOperatorList(args) {\n assert(args.intent,\n 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.');\n\n const readableStream =\n this._transport.messageHandler.sendWithStream('GetOperatorList', args);\n const reader = readableStream.getReader();\n\n const intentState = this.intentStates[args.intent];\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(({ value, done, }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, (reason) => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n pump();\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _abortOperatorList({ intentState, reason, force = false, }) {\n assert(reason instanceof Error,\n 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.');\n\n if (!intentState.streamReader) {\n return;\n }\n if (!force) {\n // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n // multiple render() calls on the same canvas, won't break all rendering.\n if (intentState.renderTasks.length !== 0) {\n return;\n }\n // Don't immediately abort parsing on the worker-thread when rendering is\n // cancelled, since that will unnecessarily delay re-rendering when (for\n // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n if (reason instanceof RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({ intentState, reason, force: true, });\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n intentState.streamReader.cancel(\n new AbortException(reason && reason.message));\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Remove the current `intentState`, since a cancelled `getOperatorList`\n // call on the worker-thread cannot be re-started...\n Object.keys(this.intentStates).some((intent) => {\n if (this.intentStates[intent] === intentState) {\n delete this.intentStates[intent];\n return true;\n }\n return false;\n });\n // ... and force clean-up to ensure that any old state is always removed.\n this.cleanup();\n }\n\n /**\n * @return {Object} Returns page stats, if enabled.\n */\n get stats() {\n return (this._stats instanceof StatTimer ? this._stats : null);\n }\n}\n\nclass LoopbackPort {\n constructor(defer = true) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n // Trying to perform a structured clone close to the spec, including\n // transfers.\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (cloned.has(value)) { // already cloned the object\n return cloned.get(value);\n }\n let buffer, result;\n if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n // We found object with ArrayBuffer (typed array).\n const transferable = transfers && transfers.includes(buffer);\n if (value === buffer) {\n // Special case when we are faking typed arrays in compatibility.js.\n result = value;\n } else if (transferable) {\n result = new value.constructor(buffer, value.byteOffset,\n value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n cloned.set(value, result);\n return result;\n }\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result); // adding to cache now for cyclic references\n // Cloning all value and object properties, however ignoring properties\n // defined via getter.\n for (const i in value) {\n let desc, p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === 'undefined') {\n continue;\n }\n if (typeof desc.value === 'function') {\n if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n throw new Error(\n `LoopbackPort.postMessage - cannot clone: ${value[i]}`);\n }\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach((listener) => {\n listener.call(this, { data: obj, });\n });\n return;\n }\n\n const cloned = new WeakMap();\n const e = { data: cloneValue(obj), };\n this._deferred.then(() => {\n this._listeners.forEach((listener) => {\n listener.call(this, e);\n });\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} name - (optional) The name of the worker.\n * @property {Object} port - (optional) The `workerPort`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n */\n\n/**\n * PDF.js web worker abstraction, it controls instantiation of PDF documents and\n * WorkerTransport for them. If creation of a web worker is not possible,\n * a \"fake\" worker will be used instead.\n * @class\n */\nconst PDFWorker = (function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let nextFakeWorkerId = 0;\n let fakeWorkerFilesLoadedCapability;\n\n function getWorkerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (typeof fallbackWorkerSrc !== 'undefined') {\n return fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n try {\n if (typeof window !== 'undefined') {\n return (window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler);\n }\n } catch (ex) { }\n return null;\n }\n\n // Loads worker code into main thread.\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n fakeWorkerFilesLoadedCapability = createPromiseCapability();\n\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using a `<script>` tag.\n fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n // In the developer build load worker_loader.js which in turn loads all the\n // other files and resolves the promise. In production only the\n // pdf.worker.js file is needed.\n if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {\n if (typeof SystemJS === 'object') {\n SystemJS.import('pdfjs/core/worker').then((worker) => {\n fakeWorkerFilesLoadedCapability.resolve(worker.WorkerMessageHandler);\n }).catch(fakeWorkerFilesLoadedCapability.reject);\n } else if (typeof require === 'function') {\n try {\n const worker = require('../core/worker.js');\n fakeWorkerFilesLoadedCapability.resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n fakeWorkerFilesLoadedCapability.reject(ex);\n }\n } else {\n fakeWorkerFilesLoadedCapability.reject(new Error(\n 'SystemJS or CommonJS must be used to load fake worker.'));\n }\n } else {\n const loader = fakeWorkerFilesLoader || function() {\n return loadScript(getWorkerSrc()).then(function() {\n return window.pdfjsWorker.WorkerMessageHandler;\n });\n };\n loader().then(fakeWorkerFilesLoadedCapability.resolve,\n fakeWorkerFilesLoadedCapability.reject);\n }\n return fakeWorkerFilesLoadedCapability.promise;\n }\n\n function createCDNWrapper(url) {\n // We will rely on blob URL's property to specify origin.\n // We want this function to fail in case if createObjectURL or Blob do not\n // exist or fail for some reason -- our Worker creation will fail anyway.\n const wrapper = 'importScripts(\\'' + url + '\\');';\n return URL.createObjectURL(new Blob([wrapper]));\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\n class PDFWorker {\n constructor({ name = null, port = null,\n verbosity = getVerbosityLevel(), } = {}) {\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error('Cannot use more than one PDFWorker per port');\n }\n\n this.name = name;\n this.destroyed = false;\n this.postMessageTransfers = true;\n this.verbosity = verbosity;\n\n this._readyCapability = createPromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\n\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler('main', 'worker', port);\n this._messageHandler.on('ready', function() {\n // Ignoring 'ready' event -- MessageHandler shall be already initialized\n // and ready to accept the messages.\n });\n this._readyCapability.resolve();\n }\n\n _initialize() {\n // If worker support isn't disabled explicit and the browser has worker\n // support, create a new web worker and test if it/the browser fulfills\n // all requirements to run parts of pdf.js in a web worker.\n // Right now, the requirement is, that an Uint8Array is still an\n // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n if (typeof Worker !== 'undefined' && !isWorkerDisabled &&\n !getMainThreadWorkerMessageHandler()) {\n let workerSrc = getWorkerSrc();\n\n try {\n // Wraps workerSrc path into blob URL, if the former does not belong\n // to the same origin.\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC') &&\n !isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(\n new URL(workerSrc, window.location).href);\n }\n\n // Some versions of FF can't create a worker on localhost, see:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n const worker = new Worker(workerSrc);\n const messageHandler = new MessageHandler('main', 'worker', worker);\n const terminateEarly = () => {\n worker.removeEventListener('error', onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error('Worker was destroyed'));\n } else {\n // Fall back to fake worker if the termination is caused by an\n // error (e.g. NetworkError / SecurityError).\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n // Worker failed to initialize due to an error. Clean up and fall\n // back to the fake worker.\n terminateEarly();\n }\n };\n worker.addEventListener('error', onWorkerError);\n\n messageHandler.on('test', (data) => {\n worker.removeEventListener('error', onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n if (data) { // supportTypedArray\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n if (!data.supportTransfers) {\n this.postMessageTransfers = false;\n }\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send('configure', {\n verbosity: this.verbosity,\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n\n messageHandler.on('ready', (data) => {\n worker.removeEventListener('error', onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n try {\n sendTest();\n } catch (e) {\n // We need fallback to a faked worker.\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n let testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);\n // Some versions of Opera throw a DATA_CLONE_ERR on serializing the\n // typed array. Also, checking if we can use transfers.\n try {\n messageHandler.send('test', testObj, [testObj.buffer]);\n } catch (ex) {\n warn('Cannot use postMessage transfers.');\n testObj[0] = 0;\n messageHandler.send('test', testObj);\n }\n };\n\n // It might take time for worker to initialize (especially when AMD\n // loader is used). We will try to send test immediately, and then\n // when 'ready' message will arrive. The worker shall process only\n // first received 'test'.\n sendTest();\n return;\n } catch (e) {\n info('The worker has been disabled.');\n }\n }\n // Either workers are disabled, not supported or have thrown an exception.\n // Thus, we fallback to a faked worker.\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!isWorkerDisabled) {\n warn('Setting up fake worker.');\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then((WorkerMessageHandler) => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error('Worker was destroyed'));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n\n // All fake workers use the same port, making id unique.\n const id = 'fake' + (nextFakeWorkerId++);\n\n // If the main thread is our worker, setup the handling for the\n // messages -- the main thread sends to it self.\n const workerHandler = new MessageHandler(id + '_worker', id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n\n const messageHandler = new MessageHandler(id, id + '_worker', port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n }).catch((reason) => {\n this._readyCapability.reject(\n new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n /**\n * Destroys the worker instance.\n */\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n // We need to terminate only web worker created resource.\n this._webWorker.terminate();\n this._webWorker = null;\n }\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization\n * parameters.\n */\n static fromPort(params) {\n if (!params || !params.port) {\n throw new Error('PDFWorker.fromPort - invalid method signature.');\n }\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n\n static getWorkerSrc() {\n return getWorkerSrc();\n }\n }\n return PDFWorker;\n})();\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n });\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked,\n });\n\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = createPromiseCapability();\n\n this.setupMessageHandler();\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = createPromiseCapability();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(\n new Error('Worker was destroyed during onPassword callback'));\n }\n\n const waitOn = [];\n // We need to wait for all renderings to be completed, e.g.\n // timeout/rAF can take a long time.\n this.pageCache.forEach(function(page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache.length = 0;\n this.pagePromises.length = 0;\n // We also need to wait for the worker to finish its long running tasks.\n const terminated = this.messageHandler.sendWithPromise('Terminate', null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.fontLoader.clear();\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(\n new AbortException('Worker was terminated.'));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const { messageHandler, loadingTask, } = this;\n\n messageHandler.on('GetReader', (data, sink) => {\n assert(this._networkStream);\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = (evt) => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total,\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function({ value, done, }) {\n if (done) {\n sink.close();\n return;\n }\n assert(isArrayBuffer(value));\n // Enqueue data chunk into sink, and transfer it\n // to other side as `Transferable` object.\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch((reason) => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = (reason) => {\n this._fullReader.cancel(reason);\n };\n });\n\n messageHandler.on('ReaderHeadersReady', (data) => {\n const headersCapability = createPromiseCapability();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n // If stream or range are disabled, it's our only way to report\n // loading progress.\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(this._lastProgress);\n }\n fullReader.onProgress = (evt) => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total,\n });\n }\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength,\n });\n }, headersCapability.reject);\n\n return headersCapability.promise;\n });\n\n messageHandler.on('GetRangeReader', (data, sink) => {\n assert(this._networkStream);\n const rangeReader =\n this._networkStream.getRangeReader(data.begin, data.end);\n\n // When streaming is enabled, it's possible that the data requested here\n // has already been fetched via the `_fullRequestReader` implementation.\n // However, given that the PDF data is loaded asynchronously on the\n // main-thread and then sent via `postMessage` to the worker-thread,\n // it may not have been available during parsing (hence the attempt to\n // use range requests here).\n //\n // To avoid wasting time and resources here, we'll thus *not* dispatch\n // range requests if the data was already loaded but has not been sent to\n // the worker-thread yet (which will happen via the `_fullRequestReader`).\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function({ value, done, }) {\n if (done) {\n sink.close();\n return;\n }\n assert(isArrayBuffer(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch((reason) => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = (reason) => {\n rangeReader.cancel(reason);\n };\n });\n\n messageHandler.on('GetDoc', ({ pdfInfo, }) => {\n this._numPages = pdfInfo.numPages;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n\n messageHandler.on('PasswordRequest', (exception) => {\n this._passwordCapability = createPromiseCapability();\n\n if (loadingTask.onPassword) {\n const updatePassword = (password) => {\n this._passwordCapability.resolve({\n password,\n });\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(\n new PasswordException(exception.message, exception.code));\n }\n return this._passwordCapability.promise;\n });\n\n messageHandler.on('PasswordException', function(exception) {\n loadingTask._capability.reject(\n new PasswordException(exception.message, exception.code));\n });\n\n messageHandler.on('InvalidPDF', function(exception) {\n loadingTask._capability.reject(\n new InvalidPDFException(exception.message));\n });\n\n messageHandler.on('MissingPDF', function(exception) {\n loadingTask._capability.reject(\n new MissingPDFException(exception.message));\n });\n\n messageHandler.on('UnexpectedResponse', function(exception) {\n loadingTask._capability.reject(\n new UnexpectedResponseException(exception.message, exception.status));\n });\n\n messageHandler.on('UnknownError', function(exception) {\n loadingTask._capability.reject(\n new UnknownErrorException(exception.message, exception.details));\n });\n\n messageHandler.on('DataLoaded', (data) => {\n // For consistency: Ensure that progress is always reported when the\n // entire PDF file has been loaded, regardless of how it was fetched.\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length,\n });\n }\n this.downloadInfoCapability.resolve(data);\n });\n\n messageHandler.on('StartRenderPage', (data) => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const page = this.pageCache[data.pageIndex];\n page._startRenderPage(data.transparency, data.intent);\n });\n\n messageHandler.on('commonobj', (data) => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const [id, type, exportedData] = data;\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case 'Font':\n const params = this._params;\n\n if ('error' in exportedData) {\n const exportedError = exportedData.error;\n warn(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n if (params.pdfBug && globalScope.FontInspector &&\n globalScope.FontInspector.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalScope['FontInspector'].fontAdded(font, url);\n },\n };\n }\n const font = new FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry,\n });\n\n this.fontLoader.bind(font).then(() => {\n this.commonObjs.resolve(id, font);\n }, (reason) => {\n messageHandler.sendWithPromise('FontFallback', {\n id,\n }).finally(() => {\n this.commonObjs.resolve(id, font);\n });\n });\n break;\n case 'FontPath':\n case 'FontType3Res':\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n\n messageHandler.on('obj', (data) => {\n if (this.destroyed) {\n // Ignore any pending requests if the worker was terminated.\n return undefined;\n }\n\n const [id, pageIndex, type, imageData] = data;\n const pageProxy = this.pageCache[pageIndex];\n if (pageProxy.objs.has(id)) {\n return undefined;\n }\n\n switch (type) {\n case 'JpegStream':\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = function() {\n resolve(img);\n };\n img.onerror = function() {\n // Note that when the browser image loading/decoding fails,\n // we'll fallback to the built-in PDF.js JPEG decoder; see\n // `PartialEvaluator.buildPaintImageXObject` in the\n // `src/core/evaluator.js` file.\n reject(new Error('Error during JPEG image loading'));\n\n // Always remember to release the image data if errors occurred.\n releaseImageResources(img);\n };\n img.src = imageData;\n }).then((img) => {\n pageProxy.objs.resolve(id, img);\n });\n case 'Image':\n pageProxy.objs.resolve(id, imageData);\n\n // Heuristic that will allow us not to store large data.\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n if (imageData && 'data' in imageData &&\n imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n return undefined;\n });\n\n messageHandler.on('DocProgress', (data) => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total,\n });\n }\n });\n\n messageHandler.on('UnsupportedFeature',\n this._onUnsupportedFeature.bind(this));\n\n messageHandler.on('JpegDecode', (data) => {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n if (typeof document === 'undefined') {\n // Make sure that this code is not executing in node.js, as\n // it's using DOM image, and there is no library to support that.\n return Promise.reject(new Error('\"document\" is not defined.'));\n }\n\n const [imageUrl, components] = data;\n if (components !== 3 && components !== 1) {\n return Promise.reject(\n new Error('Only 3 components or 1 component can be returned'));\n }\n\n return new Promise(function(resolve, reject) {\n const img = new Image();\n img.onload = function() {\n const { width, height, } = img;\n const size = width * height;\n const rgbaLength = size * 4;\n const buf = new Uint8ClampedArray(size * components);\n let tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n let tmpCtx = tmpCanvas.getContext('2d');\n tmpCtx.drawImage(img, 0, 0);\n const data = tmpCtx.getImageData(0, 0, width, height).data;\n\n if (components === 3) {\n for (let i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n buf[j] = data[i];\n buf[j + 1] = data[i + 1];\n buf[j + 2] = data[i + 2];\n }\n } else if (components === 1) {\n for (let i = 0, j = 0; i < rgbaLength; i += 4, j++) {\n buf[j] = data[i];\n }\n }\n resolve({ data: buf, width, height, });\n\n // Immediately release the image data once decoding has finished.\n releaseImageResources(img);\n // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n tmpCanvas.width = 0;\n tmpCanvas.height = 0;\n tmpCanvas = null;\n tmpCtx = null;\n };\n img.onerror = function() {\n reject(new Error('JpegDecode failed to load image'));\n\n // Always remember to release the image data if errors occurred.\n releaseImageResources(img);\n };\n img.src = imageUrl;\n });\n });\n\n messageHandler.on('FetchBuiltInCMap', (data, sink) => {\n if (this.destroyed) {\n sink.error(new Error('Worker was destroyed'));\n return;\n }\n let fetched = false;\n\n sink.onPull = () => {\n if (fetched) {\n sink.close();\n return;\n }\n fetched = true;\n\n this.CMapReaderFactory.fetch(data).then(function(builtInCMap) {\n sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n }).catch(function(reason) {\n sink.error(reason);\n });\n };\n });\n }\n\n _onUnsupportedFeature({ featureId, }) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n\n getData() {\n return this.messageHandler.sendWithPromise('GetData', null);\n }\n\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) ||\n pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error('Invalid page request'));\n }\n\n const pageIndex = pageNumber - 1;\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n const promise = this.messageHandler.sendWithPromise('GetPage', {\n pageIndex,\n }).then((pageInfo) => {\n if (this.destroyed) {\n throw new Error('Transport destroyed');\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this,\n this._params.pdfBug);\n this.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n\n getPageIndex(ref) {\n return this.messageHandler.sendWithPromise('GetPageIndex', {\n ref,\n }).catch(function(reason) {\n return Promise.reject(new Error(reason));\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise('GetAnnotations', {\n pageIndex,\n intent,\n });\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise('GetDestinations', null);\n }\n\n getDestination(id) {\n if (typeof id !== 'string') {\n return Promise.reject(new Error('Invalid destination request.'));\n }\n return this.messageHandler.sendWithPromise('GetDestination', {\n id,\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise('GetPageLabels', null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise('GetPageLayout', null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise('GetPageMode', null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise('GetViewerPreferences', null);\n }\n\n getOpenActionDestination() {\n return this.messageHandler.sendWithPromise('GetOpenActionDestination',\n null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise('GetAttachments', null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise('GetJavaScript', null);\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise('GetOutline', null);\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise('GetPermissions', null);\n }\n\n getMetadata() {\n return this.messageHandler.sendWithPromise('GetMetadata', null).\n then((results) => {\n return {\n info: results[0],\n metadata: (results[1] ? new Metadata(results[1]) : null),\n contentDispositionFilename: (this._fullReader ?\n this._fullReader.filename : null),\n };\n });\n }\n\n getStats() {\n return this.messageHandler.sendWithPromise('GetStats', null);\n }\n\n startCleanup() {\n this.messageHandler.sendWithPromise('Cleanup', null).then(() => {\n for (let i = 0, ii = this.pageCache.length; i < ii; i++) {\n const page = this.pageCache[i];\n if (page) {\n page.cleanup();\n }\n }\n this.commonObjs.clear();\n this.fontLoader.clear();\n });\n }\n\n get loadingParams() {\n const params = this._params;\n return shadow(this, 'loadingParams', {\n disableAutoFetch: params.disableAutoFetch,\n disableCreateObjectURL: params.disableCreateObjectURL,\n disableFontFace: params.disableFontFace,\n nativeImageDecoderSupport: params.nativeImageDecoderSupport,\n });\n }\n}\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects for\n * fonts, images, rendering code, etc. These objects may get processed inside of\n * a worker. This class implements some basic methods to manage these objects.\n * @ignore\n */\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n /**\n * Ensures there is an object defined for `objId`.\n * @private\n */\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n return this._objs[objId] = {\n capability: createPromiseCapability(),\n data: null,\n resolved: false,\n };\n }\n\n /**\n * If called *without* callback, this returns the data of `objId` but the\n * object needs to be resolved. If it isn't, this method throws.\n *\n * If called *with* a callback, the callback is called with the data of the\n * object once the object is resolved. That means, if you call this method\n * and the object is already resolved, the callback gets called right away.\n */\n get(objId, callback = null) {\n // If there is a callback, then the get can be async and the object is\n // not required to be resolved right now.\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n return null;\n }\n // If there isn't a callback, the user expects to get the resolved data\n // directly.\n const obj = this._objs[objId];\n // If there isn't an object yet or the object isn't resolved, then the\n // data isn't ready yet!\n if (!obj || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n\n has(objId) {\n const obj = this._objs[objId];\n return (obj ? obj.resolved : false);\n }\n\n /**\n * Resolves the object `objId` with optional `data`.\n */\n resolve(objId, data) {\n const obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n\n clear() {\n for (const objId in this._objs) {\n const { data, } = this._objs[objId];\n\n if (typeof Image !== 'undefined' && data instanceof Image) {\n // Always release the image data when clearing out the cached objects.\n releaseImageResources(data);\n }\n }\n this._objs = Object.create(null);\n }\n}\n\n/**\n * Allows controlling of the rendering tasks.\n * @alias RenderTask\n */\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n\n /**\n * Callback for incremental rendering -- a function that will be called\n * each time the rendering is paused. To continue rendering call the\n * function that is the first argument to the callback.\n * @type {function}\n */\n this.onContinue = null;\n }\n\n /**\n * Promise for rendering task completion.\n * @return {Promise}\n */\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n /**\n * Cancels the rendering task. If the task is currently rendering it will\n * not be cancelled until graphics pauses with a timeout. The promise that\n * this object extends will be rejected when cancelled.\n */\n cancel() {\n this._internalRenderTask.cancel();\n }\n\n /**\n * Registers callbacks to indicate the rendering task completion.\n *\n * @param {function} onFulfilled The callback for the rendering completion.\n * @param {function} onRejected The callback for the rendering failure.\n * @return {Promise} A promise that is resolved after the onFulfilled or\n * onRejected callback.\n */\n then(onFulfilled, onRejected) {\n deprecated('RenderTask.then method, use the `promise` getter instead.');\n return this.promise.then.apply(this.promise, arguments);\n }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nconst InternalRenderTask = (function InternalRenderTaskClosure() {\n const canvasInRendering = new WeakSet();\n\n class InternalRenderTask {\n constructor({ callback, params, objs, commonObjs, operatorList, pageNumber,\n canvasFactory, webGLContext, useRequestAnimationFrame = false,\n pdfBug = false, }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this.pageNumber = pageNumber;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this._pdfBug = pdfBug;\n\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = (useRequestAnimationFrame === true &&\n typeof window !== 'undefined');\n this.cancelled = false;\n this.capability = createPromiseCapability();\n this.task = new RenderTask(this);\n // caching this-bound methods\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n initializeGraphics(transparency = false) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error(\n 'Cannot use the same canvas during multiple render() operations. ' +\n 'Use different canvas or ensure previous operations were ' +\n 'cancelled or completed.');\n }\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && globalScope.StepperManager &&\n globalScope.StepperManager.enabled) {\n this.stepper = globalScope.StepperManager.create(this.pageNumber - 1);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext, viewport, transform, imageLayer, background,\n } = this.params;\n\n this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs,\n this.canvasFactory, this.webGLContext,\n imageLayer);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background,\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n this.callback(error || new RenderingCancelledException(\n `Rendering cancelled, page ${this.pageNumber}`, 'canvas'));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n this._continue();\n }\n\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this.cancel.bind(this));\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList,\n this.operatorListIdx,\n this._continueBound,\n this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n this.callback();\n }\n }\n }\n }\n return InternalRenderTask;\n})();\n\nconst version = (typeof PDFJSDev !== 'undefined' ?\n PDFJSDev.eval('BUNDLE_VERSION') : null);\nconst build = (typeof PDFJSDev !== 'undefined' ?\n PDFJSDev.eval('BUNDLE_BUILD') : null);\n\nexport {\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFWorker,\n PDFDocumentProxy,\n PDFPageProxy,\n setPDFNetworkStreamFactory,\n version,\n build,\n};\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/* Copyright 2015 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/* eslint no-var: error */\n\nimport {\n assert, BaseException, CMapCompressionType, isString, removeNullCharacters,\n stringToBytes, unreachable, Util, warn\n} from '../shared/util';\n\nconst DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nconst SVG_NS = 'http://www.w3.org/2000/svg';\n\nclass DOMCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error('Invalid canvas size');\n }\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context,\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error('Canvas is not specified');\n }\n if (width <= 0 || height <= 0) {\n throw new Error('Invalid canvas size');\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error('Canvas is not specified');\n }\n // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n}\n\nclass DOMCMapReaderFactory {\n constructor({ baseUrl = null, isCompressed = false, }) {\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({ name, }) {\n if (!this.baseUrl) {\n throw new Error(\n 'The CMap \"baseUrl\" parameter must be specified, ensure that ' +\n 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n if (!name) {\n throw new Error('CMap name must be specified.');\n }\n const url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : '');\n const compressionType = (this.isCompressed ? CMapCompressionType.BINARY :\n CMapCompressionType.NONE);\n\n if ((typeof PDFJSDev !== 'undefined' && PDFJSDev.test('MOZCENTRAL')) ||\n (isFetchSupported() && isValidFetchUrl(url, document.baseURI))) {\n return fetch(url).then(async (response) => {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n let cMapData;\n if (this.isCompressed) {\n cMapData = new Uint8Array(await response.arrayBuffer());\n } else {\n cMapData = stringToBytes(await response.text());\n }\n return { cMapData, compressionType, };\n }).catch((reason) => {\n throw new Error(`Unable to load ${this.isCompressed ? 'binary ' : ''}` +\n `CMap at: ${url}`);\n });\n }\n\n // The Fetch API is not supported.\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open('GET', url, true);\n\n if (this.isCompressed) {\n request.responseType = 'arraybuffer';\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let cMapData;\n if (this.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n cMapData = stringToBytes(request.responseText);\n }\n if (cMapData) {\n resolve({ cMapData, compressionType, });\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n }).catch((reason) => {\n throw new Error(`Unable to load ${this.isCompressed ? 'binary ' : ''}` +\n `CMap at: ${url}`);\n });\n }\n}\n\nclass DOMSVGFactory {\n create(width, height) {\n assert(width > 0 && height > 0, 'Invalid SVG dimensions');\n\n const svg = document.createElementNS(SVG_NS, 'svg:svg');\n svg.setAttribute('version', '1.1');\n svg.setAttribute('width', width + 'px');\n svg.setAttribute('height', height + 'px');\n svg.setAttribute('preserveAspectRatio', 'none');\n svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);\n\n return svg;\n }\n\n createElement(type) {\n assert(typeof type === 'string', 'Invalid SVG element type');\n\n return document.createElementNS(SVG_NS, type);\n }\n}\n\n/**\n * @typedef {Object} PageViewportParameters\n * @property {Array} viewBox - The xMin, yMin, xMax and yMax coordinates.\n * @property {number} scale - The scale of the viewport.\n * @property {number} rotation - The rotation, in degrees, of the viewport.\n * @property {number} offsetX - (optional) The horizontal, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} offsetY - (optional) The vertical, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} dontFlip - (optional) If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * @typedef {Object} PageViewportCloneParameters\n * @property {number} scale - (optional) The scale, overriding the one in the\n * cloned viewport. The default value is `this.scale`.\n * @property {number} rotation - (optional) The rotation, in degrees, overriding\n * the one in the cloned viewport. The default value is `this.rotation`.\n * @property {boolean} dontFlip - (optional) If true, the x-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n */\nclass PageViewport {\n /**\n * @param {PageViewportParameters}\n */\n constructor({ viewBox, scale, rotation, offsetX = 0, offsetY = 0,\n dontFlip = false, }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n // creating transform to convert pdf coordinate system to the normal\n // canvas like coordinates taking in account scale and rotation\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n switch (rotation) {\n case 180:\n rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1;\n break;\n case 90:\n rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0;\n break;\n case 270:\n rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0;\n break;\n // case 0:\n default:\n rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1;\n break;\n }\n\n if (dontFlip) {\n rotateC = -rotateC; rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n // creating transform for the following operations:\n // translate(-centerX, -centerY), rotate and flip vertically,\n // scale, and translate(offsetCanvasX, offsetCanvasY)\n this.transform = [\n rotateA * scale,\n rotateB * scale,\n rotateC * scale,\n rotateD * scale,\n offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY\n ];\n\n this.width = width;\n this.height = height;\n }\n\n /**\n * Clones viewport, with optional additional properties.\n * @param {PageViewportCloneParameters} - (optional)\n * @return {PageViewport} Cloned viewport.\n */\n clone({ scale = this.scale, rotation = this.rotation,\n dontFlip = false, } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n dontFlip,\n });\n }\n\n /**\n * Converts PDF point to the viewport coordinates. For examples, useful for\n * converting PDF location into canvas pixel coordinates.\n * @param {number} x - The x-coordinate.\n * @param {number} y - The y-coordinate.\n * @return {Object} Object containing `x` and `y` properties of the\n * point in the viewport coordinate space.\n * @see {@link convertToPdfPoint}\n * @see {@link convertToViewportRectangle}\n */\n convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n }\n\n /**\n * Converts PDF rectangle to the viewport coordinates.\n * @param {Array} rect - The xMin, yMin, xMax and yMax coordinates.\n * @return {Array} Array containing corresponding coordinates of the rectangle\n * in the viewport coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToViewportRectangle(rect) {\n const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n /**\n * Converts viewport coordinates to the PDF location. For examples, useful\n * for converting canvas pixel location into PDF one.\n * @param {number} x - The x-coordinate.\n * @param {number} y - The y-coordinate.\n * @return {Object} Object containing `x` and `y` properties of the\n * point in the PDF coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n}\n\nclass RenderingCancelledException extends BaseException {\n constructor(msg, type) {\n super(msg);\n this.type = type;\n }\n}\n\nconst LinkTarget = {\n NONE: 0, // Default value.\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4,\n};\n\nconst LinkTargetStringMap = [\n '',\n '_self',\n '_blank',\n '_parent',\n '_top',\n];\n\n/**\n * @typedef ExternalLinkParameters\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} target - (optional) The link target.\n * The default value is `LinkTarget.NONE`.\n * @property {string} rel - (optional) The link relationship.\n * The default value is `DEFAULT_LINK_REL`.\n * @property {boolean} enabled - (optional) Whether the link should be enabled.\n * The default value is true.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLLinkElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, enabled = true, } = {}) {\n assert(url && typeof url === 'string',\n 'addLinkAttributes: A valid \"url\" parameter must provided.');\n\n const urlNullRemoved = removeNullCharacters(url);\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = '';\n link.title = `Disabled: ${urlNullRemoved}`;\n link.onclick = () => {\n return false;\n };\n }\n\n const LinkTargetValues = Object.values(LinkTarget);\n const targetIndex =\n LinkTargetValues.includes(target) ? target : LinkTarget.NONE;\n link.target = LinkTargetStringMap[targetIndex];\n\n link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);\n}\n\n// Gets the file name from a given URL.\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf('#');\n const query = url.indexOf('?');\n const end = Math.min(anchor > 0 ? anchor : url.length,\n query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf('/', end) + 1, end);\n}\n\nclass StatTimer {\n constructor(enable = true) {\n this.enabled = !!enable;\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (!this.enabled) {\n return;\n }\n if (name in this.started) {\n warn('Timer is already running for ' + name);\n }\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!this.enabled) {\n return;\n }\n if (!(name in this.started)) {\n warn('Timer has not been started for ' + name);\n }\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now(),\n });\n // Remove timer from started so it can be called again.\n delete this.started[name];\n }\n\n toString() {\n // Find the longest name for padding purposes.\n let out = '', longest = 0;\n for (const time of this.times) {\n const name = time.name;\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (const time of this.times) {\n const duration = time.end - time.start;\n out += `${time.name.padEnd(longest)} ${duration}ms\\n`;\n }\n return out;\n }\n}\n\n/**\n * Helps avoid having to initialize {StatTimer} instances, e.g. one for every\n * page, in cases where the collected stats are not actually being used.\n * This (dummy) class can thus, since all its methods are `static`, be directly\n * shared between multiple call-sites without the need to be initialized first.\n *\n * NOTE: This must implement the same interface as {StatTimer}.\n */\nclass DummyStatTimer {\n constructor() {\n unreachable('Cannot initialize DummyStatTimer.');\n }\n\n static time(name) {}\n\n static timeEnd(name) {}\n\n static toString() {\n return '';\n }\n}\n\nfunction isFetchSupported() {\n return (typeof fetch !== 'undefined' &&\n typeof Response !== 'undefined' && 'body' in Response.prototype &&\n // eslint-disable-next-line no-restricted-globals\n typeof ReadableStream !== 'undefined');\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const { protocol, } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n // The Fetch API only supports the http/https protocols, and not file/ftp.\n return (protocol === 'http:' || protocol === 'https:');\n } catch (ex) {\n return false; // `new URL()` will throw on incorrect data.\n }\n}\n\nfunction loadScript(src) {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = src;\n\n script.onload = resolve;\n script.onerror = function() {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\nfunction deprecated(details) {\n console.log('Deprecated API usage: ' + details);\n}\n\nfunction releaseImageResources(img) {\n assert(img instanceof Image, 'Invalid `img` parameter.');\n\n const url = img.src;\n if (typeof url === 'string' && url.startsWith('blob:') &&\n URL.revokeObjectURL) {\n URL.revokeObjectURL(url);\n }\n img.removeAttribute('src');\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n /**\n * Convert a PDF date string to a JavaScript `Date` object.\n *\n * The PDF date string format is described in section 7.9.4 of the official\n * PDF 32000-1:2008 specification. However, in the PDF 1.7 reference (sixth\n * edition) Adobe describes the same format including a trailing apostrophe.\n * This syntax in incorrect, but Adobe Acrobat creates PDF files that contain\n * them. We ignore all apostrophes as they are not necessary for date parsing.\n *\n * Moreover, Adobe Acrobat doesn't handle changing the date to universal time\n * and doesn't use the user's time zone (effectively ignoring the HH' and mm'\n * parts of the date string).\n *\n * @param {string} input\n * @return {Date|null}\n */\n static toDateObject(input) {\n if (!input || !isString(input)) {\n return null;\n }\n\n // Lazily initialize the regular expression.\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\n '^D:' + // Prefix (required)\n '(\\\\d{4})' + // Year (required)\n '(\\\\d{2})?' + // Month (optional)\n '(\\\\d{2})?' + // Day (optional)\n '(\\\\d{2})?' + // Hour (optional)\n '(\\\\d{2})?' + // Minute (optional)\n '(\\\\d{2})?' + // Second (optional)\n '([Z|+|-])?' + // Universal time relation (optional)\n '(\\\\d{2})?' + // Offset hour (optional)\n '\\'?' + // Splitting apostrophe (optional)\n '(\\\\d{2})?' + // Offset minute (optional)\n '\\'?' // Trailing apostrophe (optional)\n );\n }\n\n // Optional fields that don't satisfy the requirements from the regular\n // expression (such as incorrect digit counts or numbers that are out of\n // range) will fall back the defaults from the specification.\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n\n // JavaScript's `Date` object expects the month to be between 0 and 11\n // instead of 1 and 12, so we have to correct for that.\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = (month >= 1 && month <= 12) ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = (day >= 1 && day <= 31) ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = (hour >= 0 && hour <= 23) ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = (minute >= 0 && minute <= 59) ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = (second >= 0 && second <= 59) ? second : 0;\n const universalTimeRelation = matches[7] || 'Z';\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = (offsetHour >= 0 && offsetHour <= 23) ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = (offsetMinute >= 0 && offsetMinute <= 59) ? offsetMinute : 0;\n\n // Universal time relation 'Z' means that the local time is equal to the\n // universal time, whereas the relations '+'/'-' indicate that the local\n // time is later respectively earlier than the universal time. Every date\n // is normalized to universal time.\n if (universalTimeRelation === '-') {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === '+') {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\n\nexport {\n PageViewport,\n RenderingCancelledException,\n addLinkAttributes,\n getFilenameFromUrl,\n LinkTarget,\n DEFAULT_LINK_REL,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMSVGFactory,\n StatTimer,\n DummyStatTimer,\n isFetchSupported,\n isValidFetchUrl,\n loadScript,\n deprecated,\n releaseImageResources,\n PDFDateString,\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 {\n assert, bytesToString, isEvalSupported, shadow, string32, unreachable,\n UNSUPPORTED_FEATURES, warn\n} from '../shared/util';\n\nclass BaseFontLoader {\n constructor({ docId, onUnsupportedFeature, }) {\n if (this.constructor === BaseFontLoader) {\n unreachable('Cannot initialize BaseFontLoader.');\n }\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n if (!styleElement) {\n styleElement = this.styleElement = document.createElement('style');\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n document.documentElement.getElementsByTagName('head')[0].appendChild(\n styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n this.nativeFontFaces.forEach(function(nativeFontFace) {\n document.fonts.delete(nativeFontFace);\n });\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n // Note: ChildNode.remove doesn't throw if the parentNode is undefined.\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n // Add the font to the DOM only once; skip if the font is already loaded.\n if (font.attached || font.missingFile) {\n return undefined;\n }\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({ featureId: UNSUPPORTED_FEATURES.font, });\n warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n\n // When font loading failed, fall back to the built-in font renderer.\n font.disableFontFace = true;\n throw ex;\n }\n }\n return undefined; // The font was, asynchronously, loaded.\n }\n\n // !this.isFontLoadingAPISupported\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return undefined; // The font was, synchronously, loaded.\n }\n return new Promise((resolve) => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent([rule], [font], request);\n });\n }\n return undefined;\n }\n\n _queueLoadingCallback(callback) {\n unreachable('Abstract method `_queueLoadingCallback`.');\n }\n\n get isFontLoadingAPISupported() {\n unreachable('Abstract method `isFontLoadingAPISupported`.');\n }\n\n get isSyncFontLoadingSupported() {\n unreachable('Abstract method `isSyncFontLoadingSupported`.');\n }\n\n get _loadTestFont() {\n unreachable('Abstract method `_loadTestFont`.');\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n unreachable('Abstract method `_prepareFontLoadEvent`.');\n }\n}\n\nlet FontLoader;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('MOZCENTRAL')) {\n\nFontLoader = class MozcentralFontLoader extends BaseFontLoader {\n get isFontLoadingAPISupported() {\n return shadow(this, 'isFontLoadingAPISupported',\n typeof document !== 'undefined' && !!document.fonts);\n }\n\n get isSyncFontLoadingSupported() {\n return shadow(this, 'isSyncFontLoadingSupported', true);\n }\n};\n\n} else { // PDFJSDev.test('CHROME || GENERIC')\n\nFontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(docId) {\n super(docId);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0,\n };\n this.loadTestFontId = 0;\n }\n\n get isFontLoadingAPISupported() {\n let supported = (typeof document !== 'undefined' && !!document.fonts);\n\n if ((typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) &&\n (supported && typeof navigator !== 'undefined')) {\n // The Firefox Font Loading API does not work with `mozPrintCallback`\n // prior to version 63; see https://bugzilla.mozilla.org/show_bug.cgi?id=1473742\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n if (m && m[1] < 63) {\n supported = false;\n }\n }\n return shadow(this, 'isFontLoadingAPISupported', supported);\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) {\n if (typeof navigator === 'undefined') {\n // Node.js - we can pretend that sync font loading is supported.\n supported = true;\n } else {\n // User agent string sniffing is bad, but there is no reliable way to\n // tell if the font is fully loaded and ready to be used with canvas.\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n if (m && m[1] >= 14) {\n supported = true;\n }\n // TODO - other browsers...\n }\n }\n return shadow(this, 'isSyncFontLoadingSupported', supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n assert(!request.done, 'completeRequest() cannot be called twice.');\n request.done = true;\n\n // Sending all completed requests in order of how they were queued.\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback,\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function() {\n // This is a CFF font with 1 glyph for '.' that fills its entire width and\n // height.\n return atob(\n 'T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' +\n 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' +\n 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' +\n 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' +\n 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' +\n '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' +\n 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' +\n 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' +\n 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' +\n 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' +\n 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' +\n 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' +\n 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' +\n 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' +\n 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' +\n 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' +\n 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');\n };\n return shadow(this, '_loadTestFont', getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n /** Hack begin */\n // There's currently no event when a font has finished downloading so the\n // following code is a dirty hack to 'guess' when a font is ready.\n // It's assumed fonts are loaded in order, so add a known test font after\n // the desired fonts and then test for the loading of that test font.\n\n function int32(data, offset) {\n return (data.charCodeAt(offset) << 24) |\n (data.charCodeAt(offset + 1) << 16) |\n (data.charCodeAt(offset + 2) << 8) |\n (data.charCodeAt(offset + 3) & 0xff);\n }\n function spliceString(s, offset, remove, insert) {\n let chunk1 = s.substring(0, offset);\n let chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n\n // The temporary canvas is used to determine if fonts are loaded.\n let canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n let ctx = canvas.getContext('2d');\n\n let called = 0;\n function isFontReady(name, callback) {\n called++;\n // With setTimeout clamping this gives the font ~100ms to load.\n if (called > 30) {\n warn('Load test font never loaded.');\n callback();\n return;\n }\n ctx.font = '30px ' + name;\n ctx.fillText('.', 0, 20);\n let imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n // Chromium seems to cache fonts based on a hash of the actual font data,\n // so the font must be modified for each load test else it will appear to\n // be loaded already.\n // TODO: This could maybe be made faster by avoiding the btoa of the full\n // font by splitting it in chunks before hand and padding the font id.\n let data = this._loadTestFont;\n let COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length,\n loadTestFontId);\n // CFF checksum is important for IE, adjusting it\n let CFF_CHECKSUM_OFFSET = 16;\n let XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n }\n if (i < loadTestFontId.length) { // align to 4 bytes boundary\n checksum = (checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i)) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n\n let names = [];\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n names.push(loadTestFontId);\n\n let div = document.createElement('div');\n div.setAttribute('style', 'visibility: hidden;' +\n 'width: 10px; height: 10px;' +\n 'position: absolute; top: 0px; left: 0px;');\n for (i = 0, ii = names.length; i < ii; ++i) {\n let span = document.createElement('span');\n span.textContent = 'Hi';\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n document.body.appendChild(div);\n\n isFontReady(loadTestFontId, function() {\n document.body.removeChild(div);\n request.complete();\n });\n /** Hack end */\n }\n};\n\n} // End of PDFJSDev.test('CHROME || GENERIC')\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, 'value', isEvalSupported());\n },\n};\n\nclass FontFaceObject {\n constructor(translatedData, { isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature = null,\n fontRegistry = null, }) {\n this.compiledGlyphs = Object.create(null);\n // importing translated data\n for (let i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = bytesToString(new Uint8Array(this.data));\n // Add the @font-face rule to the document.\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds, current;\n try {\n cmds = objs.get(this.loadedName + '_path_' + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({ featureId: UNSUPPORTED_FEATURES.font, });\n }\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n\n return this.compiledGlyphs[character] = function(c, size) {\n // No-op function, to allow rendering to continue.\n };\n }\n\n // If we can, compile cmds into JS for MAXIMUM SPEED...\n if (this.isEvalSupported && IsEvalSupportedCached.value) {\n let args, js = '';\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.args !== undefined) {\n args = current.args.join(',');\n } else {\n args = '';\n }\n js += 'c.' + current.cmd + '(' + args + ');\\n';\n }\n // eslint-disable-next-line no-new-func\n return this.compiledGlyphs[character] = new Function('c', 'size', js);\n }\n // ... but fall back on using Function.prototype.apply() if we're\n // blocked from using eval() for whatever reason (like CSP policies).\n return this.compiledGlyphs[character] = function(c, size) {\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.cmd === 'scale') {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n}\n\nexport {\n FontFaceObject,\n FontLoader,\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\nlet compatibilityParams = Object.create(null);\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n const isNodeJS = require('../shared/is_node');\n\n const userAgent =\n (typeof navigator !== 'undefined' && navigator.userAgent) || '';\n const isIE = /Trident/.test(userAgent);\n const isIOSChrome = /CriOS/.test(userAgent);\n\n // Checks if possible to use URL.createObjectURL()\n // Support: IE, Chrome on iOS\n (function checkOnBlobSupport() {\n // Sometimes IE and Chrome on iOS losing the data created with\n // createObjectURL(), see issues #3977 and #8081.\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n\n // Support: Node.js\n (function checkFontFaceAndImage() {\n // Node.js is missing native support for `@font-face` and `Image`.\n if (isNodeJS()) {\n compatibilityParams.disableFontFace = true;\n compatibilityParams.nativeImageDecoderSupport = 'none';\n }\n })();\n}\n\nexports.apiCompatibilityParams = Object.freeze(compatibilityParams);\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 {\n FONT_IDENTITY_MATRIX, IDENTITY_MATRIX, ImageKind, info, isLittleEndian, isNum,\n OPS, shadow, TextRenderingMode, unreachable, Util, warn\n} from '../shared/util';\nimport { getShadingPatternFromIR, TilingPattern } from './pattern_helper';\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n\n// Minimal font size that would be used during canvas fillText operations.\nvar MIN_FONT_SIZE = 16;\n// Maximum font size that would be used during canvas fillText operations.\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\n\n// Heuristic value used when enforcing minimum line widths.\nvar MIN_WIDTH_FACTOR = 0.65;\n\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\n\nvar FULL_CHUNK_HEIGHT = 16;\n\nvar IsLittleEndianCached = {\n get value() {\n return shadow(IsLittleEndianCached, 'value', isLittleEndian());\n },\n};\n\nfunction addContextCurrentTransform(ctx) {\n // If the context doesn't expose a `mozCurrentTransform`, add a JS based one.\n if (!ctx.mozCurrentTransform) {\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n\n Object.defineProperty(ctx, 'mozCurrentTransform', {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n },\n });\n\n Object.defineProperty(ctx, 'mozCurrentTransformInverse', {\n get: function getCurrentTransformInverse() {\n // Calculation done using WolframAlpha:\n // http://www.wolframalpha.com/input/?\n // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}\n\n var m = this._transformMatrix;\n var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5];\n\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n\n return [\n d / ad_bc,\n b / bc_ad,\n c / bc_ad,\n a / ad_bc,\n (d * e - c * f) / bc_ad,\n (b * e - a * f) / ad_bc\n ];\n },\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n this._transformStack.push(old);\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n if (prev) {\n this._transformMatrix = prev;\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n var m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n var m = this._transformMatrix;\n m[0] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = m[3] * y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n var m = this._transformMatrix;\n this._transformMatrix = [\n m[0] * a + m[2] * b,\n m[1] * a + m[3] * b,\n m[0] * c + m[2] * d,\n m[1] * c + m[3] * d,\n m[0] * e + m[2] * f + m[4],\n m[1] * e + m[3] * f + m[5]\n ];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.rotate = function ctxRotate(angle) {\n var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n\n var m = this._transformMatrix;\n this._transformMatrix = [\n m[0] * cosValue + m[2] * sinValue,\n m[1] * cosValue + m[3] * sinValue,\n m[0] * (-sinValue) + m[2] * cosValue,\n m[1] * (-sinValue) + m[3] * cosValue,\n m[4],\n m[5]\n ];\n\n this._originalRotate(angle);\n };\n }\n}\n\nvar CachedCanvases = (function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height,\n trackTransform) {\n var canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n // reset canvas transform for emulated mozCurrentTransform, if needed\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n return canvasEntry;\n },\n clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n },\n };\n return CachedCanvases;\n})();\n\nfunction compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n\n var width = imgData.width, height = imgData.height;\n var i, j, j0, width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES =\n new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n\n // decodes bit-packed mask data\n var lineSize = (width + 7) & ~7, data0 = imgData.data;\n var data = new Uint8Array(lineSize * height), pos = 0, ii;\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128, elem = data0[i];\n while (mask > 0) {\n data[pos++] = (elem & mask) ? 0 : 255;\n mask >>= 1;\n }\n }\n\n // finding interesting points: every point is located between mask pixels,\n // so there will be points of the (width + 1)x(height + 1) grid. Every point\n // will have flags assigned based on neighboring mask pixels:\n // 4 | 8\n // --P--\n // 2 | 1\n // We are interested only in points with the flags:\n // - outside corners: 1, 2, 4, 8;\n // - inside corners: 7, 11, 13, 14;\n // - and, intersections: 5, 10.\n var count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n // 'sum' is the position of the current pixel configuration in the 'TYPES'\n // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) +\n (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n // building outlines\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n var coords = [p % width1, i];\n\n var type = points[p], p0 = p, pp;\n do {\n var step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n if (pp !== 5 && pp !== 10) {\n // set new direction\n type = pp;\n // delete mark\n points[p] = 0;\n } else { // type is 5 or 10, ie, a crossing\n // set new direction\n type = pp & ((0x33 * type) >> 4);\n // set new type for \"future hit\"\n points[p] &= (type >> 2 | type << 2);\n }\n\n coords.push(p % width1);\n coords.push((p / width1) | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function(c) {\n c.save();\n // the path shall be painted in [0..1]x[0..1] space\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n for (var i = 0, ii = outlines.length; i < ii; i++) {\n var o = outlines[i];\n c.moveTo(o[0], o[1]);\n for (var j = 2, jj = o.length; j < jj; j += 2) {\n c.lineTo(o[j], o[j + 1]);\n }\n }\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nvar CanvasExtraState = (function CanvasExtraStateClosure() {\n function CanvasExtraState() {\n // Are soft masks and alpha values shapes or opacities?\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n // Current point (in user coordinates)\n this.x = 0;\n this.y = 0;\n // Start of text line (in text coordinates)\n this.lineX = 0;\n this.lineY = 0;\n // Character and word spacing\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textRise = 0;\n // Default fore and background colors\n this.fillColor = '#000000';\n this.strokeColor = '#000000';\n this.patternFill = false;\n // Note: fill alpha applies to all non-stroking operations\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null; // nonclonable field (see the save method below)\n }\n\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n },\n };\n return CanvasExtraState;\n})();\n\nvar CanvasGraphics = (function CanvasGraphicsClosure() {\n // Defines the time the executeOperatorList is going to be executing\n // before it stops and shedules a continue of execution.\n var EXECUTION_TIME = 15;\n // Defines the number of steps before checking the execution time\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory,\n webGLContext, imageLayer) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n // Patterns are painted relative to the initial page/form transform, see pdf\n // spec 8.7.2 NOTE 1.\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n if (canvasCtx) {\n // NOTE: if mozCurrentTransform is polyfilled, then the current state of\n // the transformation must already be set in canvasCtx._transformMatrix.\n addContextCurrentTransform(canvasCtx);\n }\n this._cachedGetSinglePixelWidth = null;\n }\n\n function putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n // Put the image data to the canvas in chunks, rather than putting the\n // whole image at once. This saves JS memory, because the ImageData object\n // is smaller. It also possibly saves C++ memory within the implementation\n // of putImageData(). (E.g. in Firefox we make two short-lived copies of\n // the data passed to putImageData()). |n| shouldn't be too small, however,\n // because too many putImageData() calls will slow things down.\n //\n // Note: as written, if the last chunk is partial, the putImageData() call\n // will (conceptually) put pixels past the bounds of the canvas. But\n // that's ok; any such pixels are ignored.\n\n var height = imgData.height, width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0, destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n\n // There are multiple forms in which the pixel data can be passed, and\n // imgData.kind tells us which one this is.\n if (imgData.kind === ImageKind.GRAYSCALE_1BPP) {\n // Grayscale, 1 bit per pixel (i.e. black-and-white).\n var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = (width + 7) >> 3;\n var white = 0xFFFFFFFF;\n var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight =\n (i < fullChunks) ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n var k = 0;\n var kEnd = (srcDiff > fullSrcDiff) ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = (srcByte & 128) ? white : black;\n dest32[destPos++] = (srcByte & 64) ? white : black;\n dest32[destPos++] = (srcByte & 32) ? white : black;\n dest32[destPos++] = (srcByte & 16) ? white : black;\n dest32[destPos++] = (srcByte & 8) ? white : black;\n dest32[destPos++] = (srcByte & 4) ? white : black;\n dest32[destPos++] = (srcByte & 2) ? white : black;\n dest32[destPos++] = (srcByte & 1) ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = (srcByte & mask) ? white : black;\n mask >>= 1;\n }\n }\n // We ran out of input. Make all remaining pixels transparent.\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === ImageKind.RGBA_32BPP) {\n // RGBA, 32-bits per pixel.\n\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n\n } else if (imgData.kind === ImageKind.RGB_24BPP) {\n // RGB, 24-bits per pixel.\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n var height = imgData.height, width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight =\n (i < fullChunks) ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n\n // Expand the mask so it can be used by the canvas. Any required\n // inversion has already been handled.\n var destPos = 3; // alpha component offset\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n dest[destPos] = (elem & mask) ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n\n function copyCtxState(sourceCtx, destCtx) {\n var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha',\n 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit',\n 'globalCompositeOperation', 'font'];\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = '#000000';\n ctx.fillStyle = '#000000';\n ctx.fillRule = 'nonzero';\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = 'source-over';\n ctx.font = '10px sans-serif';\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n var alpha_ = 255 - alpha;\n bytes[i - 3] = (bytes[i - 3] * alpha + r0 * alpha_) >> 8;\n bytes[i - 2] = (bytes[i - 2] * alpha + g0 * alpha_) >> 8;\n bytes[i - 1] = (bytes[i - 1] * alpha + b0 * alpha_) >> 8;\n }\n }\n }\n\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = (layerData[i] * alpha * scale) | 0;\n }\n }\n\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n for (var i = 3; i < length; i += 4) {\n var y = (maskData[i - 3] * 77) + // * 0.3 / 255 * 0x10000\n (maskData[i - 2] * 152) + // * 0.59 ....\n (maskData[i - 1] * 28); // * 0.11 ....\n layerData[i] = transferMap ?\n (layerData[i] * transferMap[y >> 8]) >> 8 :\n (layerData[i] * y) >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height,\n subtype, backdrop, transferMap) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n\n var composeFn;\n if (subtype === 'Luminosity') {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n // processing image in chunks to save memory\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n var mask = smask.canvas;\n var maskCtx = smask.context;\n\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY,\n smask.offsetX, smask.offsetY);\n\n var backdrop = smask.backdrop || null;\n if (!smask.transferMap && webGLContext.isEnabled) {\n let composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask,\n properties: {\n subtype: smask.subtype,\n backdrop,\n },\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height,\n smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n\n var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n var NORMAL_CLIP = {};\n var EO_CLIP = {};\n\n CanvasGraphics.prototype = {\n\n beginDrawing({ transform, viewport, transparency = false,\n background = null, }) {\n // For pdfs that use blend modes we have to clear the canvas else certain\n // blend modes can look wrong since we'd be blending with a white\n // backdrop. The problem with a transparent backdrop though is we then\n // don't get sub pixel anti aliasing on text, creating temporary\n // transparent canvas when we have blend modes.\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n\n this.ctx.save();\n this.ctx.fillStyle = background || 'rgb(255, 255, 255)';\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n var transparentCanvas = this.cachedCanvases.getCanvas(\n 'transparent', width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n // The transform can be applied before rendering, transferring it to\n // the new canvas.\n this.ctx.transform.apply(this.ctx,\n this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n this.ctx.transform.apply(this.ctx, viewport.transform);\n\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n\n executeOperatorList: function CanvasGraphics_executeOperatorList(\n operatorList,\n executionStartIdx, continueCallback,\n stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n // Sometimes the OperatorList to execute is empty.\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = (argsArrayLen - i > EXECUTION_STEPS &&\n typeof continueCallback === 'function');\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith('g_') ? commonObjs : objs;\n\n // If the promise isn't resolved yet, add the continueCallback\n // to the promise and bail out.\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n // If the entire operatorList was executed, stop as were done.\n if (i === argsArrayLen) {\n return i;\n }\n\n // If the execution took longer then a certain amount of time and\n // `continueCallback` is specified, interrupt the execution.\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n\n // If the operatorList isn't executed completely yet OR the execution\n // time was short enough, do another execution round.\n }\n },\n\n endDrawing: function CanvasGraphics_endDrawing() {\n // Finishing all opened operations such as SMask group painting.\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0); // Avoid apply transform twice\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.webGLContext.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n },\n\n // Graphics state\n setLineWidth: function CanvasGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n },\n setLineCap: function CanvasGraphics_setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function CanvasGraphics_setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n },\n setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n var ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n setRenderingIntent(intent) {\n // This operation is ignored since we haven't found a use case for it yet.\n },\n setFlatness(flatness) {\n // This operation is ignored since we haven't found a use case for it yet.\n },\n setGState: function CanvasGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n case 'LC':\n this.setLineCap(value);\n break;\n case 'LJ':\n this.setLineJoin(value);\n break;\n case 'ML':\n this.setMiterLimit(value);\n break;\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n case 'RI':\n this.setRenderingIntent(value);\n break;\n case 'FL':\n this.setFlatness(value);\n break;\n case 'Font':\n this.setFont(value[0], value[1]);\n break;\n case 'CA':\n this.current.strokeAlpha = state[1];\n break;\n case 'ca':\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n case 'BM':\n this.ctx.globalCompositeOperation = value;\n break;\n case 'SMask':\n if (this.current.activeSMask) {\n // If SMask is currrenly used, it needs to be suspended or\n // finished. Suspend only makes sense when at least one save()\n // was performed and state needs to be reverted on restore().\n if (this.stateStack.length > 0 &&\n (this.stateStack[this.stateStack.length - 1].activeSMask ===\n this.current.activeSMask)) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n this.current.activeSMask = value ? this.tempSMask : null;\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n\n var activeSMask = this.current.activeSMask;\n var drawnWidth = activeSMask.canvas.width;\n var drawnHeight = activeSMask.canvas.height;\n var cacheId = 'smaskGroupAt' + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(\n cacheId, drawnWidth, drawnHeight, true);\n\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([\n ['BM', 'source-over'],\n ['ca', 1],\n ['CA', 1]\n ]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n // Similar to endSMaskGroup, the intermediate canvas has to be composed\n // and future ctx state restored.\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n\n composeSMask(this.ctx, this.current.activeSMask, groupCtx,\n this.webGLContext);\n this.ctx.restore();\n this.ctx.save(); // save is needed since SMask will be resumed.\n copyCtxState(groupCtx, this.ctx);\n\n // Saving state for resuming.\n this.current.resumeSMaskCtx = groupCtx;\n // Transform was changed in the SMask canvas, reflecting this change on\n // this.ctx.\n var deltaTransform = Util.transform(\n this.current.activeSMask.startTransformInverse,\n groupCtx.mozCurrentTransform);\n this.ctx.transform.apply(this.ctx, deltaTransform);\n\n // SMask was composed, the results at the groupCtx can be cleared.\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n },\n resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n // Resuming state saved by suspendSMaskGroup. We don't need to restore\n // any groupCtx state since restore() command (the only caller) will do\n // that for us. See also beginSMaskGroup.\n var groupCtx = this.current.resumeSMaskCtx;\n var currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n\n composeSMask(this.ctx, this.current.activeSMask, groupCtx,\n this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n // Transform was changed in the SMask canvas, reflecting this change on\n // this.ctx.\n var deltaTransform = Util.transform(\n this.current.activeSMask.startTransformInverse,\n groupCtx.mozCurrentTransform);\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n // SMask was suspended, we just need to resume it.\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n // SMask has to be finished once there is no states that are using the\n // same SMask.\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 ||\n this.stateStack[this.stateStack.length - 1].activeSMask !==\n this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n\n // Ensure that the clipping path is reset (fixes issue6413.pdf).\n this.pendingClip = null;\n\n this._cachedGetSinglePixelWidth = null;\n }\n },\n transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n\n this._cachedGetSinglePixelWidth = null;\n },\n\n // Path\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x, y = current.y;\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\n var xw = x + width;\n var yh = y + height;\n this.ctx.moveTo(x, y);\n this.ctx.lineTo(xw, y);\n this.ctx.lineTo(xw, yh);\n this.ctx.lineTo(x, yh);\n this.ctx.lineTo(x, y);\n this.ctx.closePath();\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n case OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3],\n x, y);\n j += 6;\n break;\n case OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1],\n args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n case OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_stroke(consumePath) {\n consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n // For stroke we want to temporarily change the global alpha to the\n // stroking alpha.\n ctx.globalAlpha = this.current.strokeAlpha;\n if (strokeColor && strokeColor.hasOwnProperty('type') &&\n strokeColor.type === 'Pattern') {\n // for patterns, we transform to pattern space, calculate\n // the pattern, call stroke, and restore to user space\n ctx.save();\n // The current transform will be replaced while building the pattern,\n // but the line width needs to be adjusted by the current transform, so\n // we must scale it. To properly fix this we should be using a pattern\n // transform instead (see #10955).\n let transform = ctx.mozCurrentTransform;\n const scale = Util.singularValueDecompose2dScale(transform)[0];\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR,\n this.current.lineWidth * scale);\n ctx.stroke();\n ctx.restore();\n } else {\n // Prevent drawing too thin lines by enforcing a minimum line width.\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR,\n this.current.lineWidth);\n ctx.stroke();\n }\n if (consumePath) {\n this.consumePath();\n }\n // Restore the global alpha to the fill alpha\n ctx.globalAlpha = this.current.fillAlpha;\n },\n closeStroke: function CanvasGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n fill: function CanvasGraphics_fill(consumePath) {\n consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.pendingEOFill) {\n ctx.fill('evenodd');\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n\n this.consumePath();\n },\n eoFillStroke: function CanvasGraphics_eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n },\n closeFillStroke: function CanvasGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n },\n endPath: function CanvasGraphics_endPath() {\n this.consumePath();\n },\n\n // Clipping\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n\n // Text\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n endText: function CanvasGraphics_endText() {\n var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n },\n setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = (fontObj.fontMatrix ?\n fontObj.fontMatrix : FONT_IDENTITY_MATRIX);\n\n // A valid matrix needs all main diagonal elements to be non-zero\n // This also ensures we bypass FF bugzilla bug #719844.\n if (current.fontMatrix[0] === 0 ||\n current.fontMatrix[3] === 0) {\n warn('Invalid font matrix for font ' + fontRefName);\n }\n\n // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n // and in some docs this can be negative (inverted x-y axes).\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return; // we don't need ctx.font for Type3 fonts\n }\n\n var name = fontObj.loadedName || 'sans-serif';\n var bold = fontObj.black ? '900' : (fontObj.bold ? 'bold' : 'normal');\n var italic = fontObj.italic ? 'italic' : 'normal';\n var typeface = `\"${name}\", ${fontObj.fallbackName}`;\n\n // Some font backends cannot handle fonts below certain size.\n // Keeping the font at minimal size and using the fontSizeScale to change\n // the current transformation matrix before the fillText/strokeText.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE :\n size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;\n this.current.fontSizeScale = size / browserFontSize;\n\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n },\n setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n },\n setTextRise: function CanvasGraphics_setTextRise(rise) {\n this.current.textRise = rise;\n },\n moveText: function CanvasGraphics_moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n },\n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n nextLine: function CanvasGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n\n paintChar(character, x, y, patternTransform) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode &\n TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode &\n TextRenderingMode.ADD_TO_PATH_FLAG);\n let patternFill = current.patternFill && font.data;\n\n var addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n if (fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath,\n });\n }\n },\n\n get isFontSubpixelAAEnabled() {\n // Checks if anti-aliasing is enabled when scaled text is painted.\n // On Windows GDI scaled fonts looks bad.\n const { context: ctx, } =\n this.cachedCanvases.getCanvas('isFontSubpixelAAEnabled', 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText('I', 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return shadow(this, 'isFontSubpixelAAEnabled', enabled);\n },\n\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n var simpleFillText =\n current.textRenderingMode === TextRenderingMode.FILL &&\n !font.disableFontFace && !current.patternFill;\n\n ctx.save();\n let patternTransform;\n if (current.patternFill) {\n // TODO: Patterns are not applied correctly to text if a non-embedded\n // font is used. E.g. issue 8111 and ShowText-ShadingPattern.pdf.\n ctx.save();\n let pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode &\n TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n\n var x = 0, i;\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n if (isNum(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n vy = vmetric[2] * widthAdvanceScale;\n\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n // Some standard fonts may not have the exact width: rescale per\n // character if measured width is greater than expected glyph width\n // and subpixel-aa is enabled, otherwise just center the glyph.\n var measuredWidth = ctx.measureText(character).width * 1000 /\n fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 *\n fontSize / fontSizeScale;\n }\n }\n\n // Only attempt to draw the glyph if it is actually in the embedded font\n // file or if there isn't a font file so the fallback font is shown.\n if (glyph.isInFont || font.missingFile) {\n if (simpleFillText && !accent) {\n // common case\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY,\n patternTransform);\n }\n }\n }\n\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n },\n\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n // Type3 fonts - each glyph is a \"mini-PDF\"\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible =\n current.textRenderingMode === TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedGetSinglePixelWidth = null;\n\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (isNum(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n\n var transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n },\n\n // Type3 fonts\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {\n // We can safely ignore this since the width should be the same\n // as the width in the Widths array.\n },\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth,\n yWidth,\n llx,\n lly,\n urx,\n ury) {\n // TODO According to the spec we're also suppose to ignore any operators\n // that set color or include images while processing this type3 font.\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n\n // Color\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var pattern;\n if (IR[0] === 'TilingPattern') {\n var color = IR[1];\n var baseTransform = this.baseTransform ||\n this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: (ctx) => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs,\n this.canvasFactory, this.webGLContext);\n },\n };\n pattern = new TilingPattern(IR, color, this.ctx, canvasGraphicsFactory,\n baseTransform);\n } else {\n pattern = getShadingPatternFromIR(IR);\n }\n return pattern;\n },\n setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n },\n setFillColorN: function CanvasGraphics_setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n },\n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n var color = Util.makeCssRgb(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = Util.makeCssRgb(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n var ctx = this.ctx;\n\n this.save();\n var pattern = getShadingPatternFromIR(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n\n var inv = ctx.mozCurrentTransformInverse;\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = Util.applyTransform([0, 0], inv);\n var br = Util.applyTransform([0, height], inv);\n var ul = Util.applyTransform([width, 0], inv);\n var ur = Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n // HACK to draw the gradient onto an infinite rectangle.\n // PDF gradients are drawn across the entire image while\n // Canvas only allows gradients to be drawn in a rectangle\n // The following bug should allow us to remove this.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n\n // Images\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n unreachable('Should not call beginInlineImage');\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n unreachable('Should not call beginImageData');\n },\n\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix,\n bbox) {\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n },\n\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n\n beginGroup: function CanvasGraphics_beginGroup(group) {\n this.save();\n var currentCtx = this.ctx;\n // TODO non-isolated groups - according to Rik at adobe non-isolated\n // group results aren't usually that different and they even have tools\n // that ignore this setting. Notes from Rik on implementing:\n // - When you encounter an transparency group, create a new canvas with\n // the dimensions of the bbox\n // - copy the content from the previous canvas to the new canvas\n // - draw as usual\n // - remove the backdrop alpha:\n // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n // value of your transparency group and 'alphaBackdrop' the alpha of the\n // backdrop\n // - remove background color:\n // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n if (!group.isolated) {\n info('TODO: Support non-isolated groups.');\n }\n\n // TODO knockout - supposedly possible with the clever use of compositing\n // modes.\n if (group.knockout) {\n warn('Knockout groups not supported.');\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n if (!group.bbox) {\n throw new Error('Bounding box is required.');\n }\n\n // Based on the current transform figure out how big the bounding box\n // will actually be.\n var bounds = Util.getAxialAlignedBoundingBox(\n group.bbox,\n currentCtx.mozCurrentTransform);\n // Clip the bounding box to the current canvas.\n var canvasBounds = [0,\n 0,\n currentCtx.canvas.width,\n currentCtx.canvas.height];\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n // Use ceil in case we're between sizes so we don't create canvas that is\n // too small and make the canvas at least 1x1 pixels.\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var scaleX = 1, scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n var cacheId = 'groupAt' + this.groupLevel;\n if (group.smask) {\n // Using two cache entries is case if masks are used one after another.\n cacheId += '_smask_' + ((this.smaskCounter++) % 2);\n }\n var scratchCanvas = this.cachedCanvases.getCanvas(\n cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n\n // Since we created a new canvas that is just the size of the bounding box\n // we have to translate the group ctx.\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n // Saving state and cached mask to be used in setGState.\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null, // used during suspend operation\n });\n } else {\n // Setup the current ctx so when the group is popped we draw it at the\n // right location.\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n // The transparency group inherits all off the current graphics state\n // except the blend mode, soft mask, and alpha constants.\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([\n ['BM', 'source-over'],\n ['ca', 1],\n ['CA', 1]\n ]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n\n // Reseting mask state, masks will be applied on restore of the group.\n this.current.activeSMask = null;\n },\n\n endGroup: function CanvasGraphics_endGroup(group) {\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n // Turn off image smoothing to avoid sub pixel interpolation which can\n // look kind of blurry for some pdfs.\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n this.restore();\n },\n\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform,\n matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n },\n\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n\n paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {\n const domImage = this.processingType3 ? this.commonObjs.get(objId) :\n this.objs.get(objId);\n if (!domImage) {\n warn('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.save();\n\n var ctx = this.ctx;\n // scale the image to the unit square\n ctx.scale(1 / w, -1 / h);\n\n ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height,\n 0, -h, w, h);\n if (this.imageLayer) {\n var currentTransform = ctx.mozCurrentTransformInverse;\n var position = this.getCanvasPosition(0, 0);\n this.imageLayer.appendImage({\n objId,\n left: position[0],\n top: position[1],\n width: w / currentTransform[0],\n height: h / currentTransform[3],\n });\n }\n this.restore();\n },\n\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n var ctx = this.ctx;\n var width = img.width, height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n var glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled =\n compileType3Glyph({ data: img.data, width, height, });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas',\n width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n\n putBinaryImageMask(maskCtx, img);\n\n maskCtx.globalCompositeOperation = 'source-in';\n\n maskCtx.fillStyle = isPatternFill ?\n fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n\n paintImageMaskXObjectRepeat:\n function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX,\n scaleY, positions) {\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas',\n width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n\n putBinaryImageMask(maskCtx, imgData);\n\n maskCtx.globalCompositeOperation = 'source-in';\n\n maskCtx.fillStyle = isPatternFill ?\n fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n var ctx = this.ctx;\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height,\n 0, -1, 1, 1);\n ctx.restore();\n }\n },\n\n paintImageMaskXObjectGroup:\n function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n var ctx = this.ctx;\n\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width, height = image.height;\n\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas',\n width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n\n putBinaryImageMask(maskCtx, image);\n\n maskCtx.globalCompositeOperation = 'source-in';\n\n maskCtx.fillStyle = isPatternFill ?\n fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height,\n 0, -1, 1, 1);\n ctx.restore();\n }\n },\n\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n const imgData = this.processingType3 ? this.commonObjs.get(objId) :\n this.objs.get(objId);\n if (!imgData) {\n warn('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n\n paintImageXObjectRepeat:\n function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY,\n positions) {\n const imgData = this.processingType3 ? this.commonObjs.get(objId) :\n this.objs.get(objId);\n if (!imgData) {\n warn('Dependent image isn\\'t ready yet');\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({ transform: [scaleX, 0, 0, scaleY, positions[i],\n positions[i + 1]], x: 0, y: 0, w: width, h: height, });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n\n paintInlineImageXObject:\n function CanvasGraphics_paintInlineImageXObject(imgData) {\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n\n this.save();\n // scale the image to the unit square\n ctx.scale(1 / width, -1 / height);\n\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0], b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2], d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n\n var imgToPaint, tmpCanvas;\n // typeof check is needed due to node.js support, see issue #8489\n if ((typeof HTMLElement === 'function' &&\n imgData instanceof HTMLElement) || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas('inlineImage',\n width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width, paintHeight = height;\n var tmpCanvasId = 'prescale1';\n // Vertial or horizontal scaling shall not be more than 2 to not loose the\n // pixels during drawImage operation, painting on the temporary canvas(es)\n // that are twice smaller in size\n while ((widthScale > 2 && paintWidth > 1) ||\n (heightScale > 2 && paintHeight > 1)) {\n var newWidth = paintWidth, newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId,\n newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,\n 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';\n }\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,\n 0, -height, width, height);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3],\n });\n }\n this.restore();\n },\n\n paintInlineImageXObjectGroup:\n function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n\n var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h,\n 0, -1, 1, 1);\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h,\n });\n }\n ctx.restore();\n }\n },\n\n paintSolidColorImageMask:\n function CanvasGraphics_paintSolidColorImageMask() {\n this.ctx.fillRect(0, 0, 1, 1);\n },\n\n paintXObject: function CanvasGraphics_paintXObject() {\n warn('Unsupported \\'paintXObject\\' command.');\n },\n\n // Marked content\n\n markPoint: function CanvasGraphics_markPoint(tag) {\n // TODO Marked content.\n },\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {\n // TODO Marked content.\n },\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n // TODO Marked content.\n },\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(\n tag, properties) {\n // TODO Marked content.\n },\n endMarkedContent: function CanvasGraphics_endMarkedContent() {\n // TODO Marked content.\n },\n\n // Compatibility\n\n beginCompat: function CanvasGraphics_beginCompat() {\n // TODO ignore undefined operators (should we do that anyway?)\n },\n endCompat: function CanvasGraphics_endCompat() {\n // TODO stop ignoring undefined operators\n },\n\n // Helper functions\n\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip('evenodd');\n } else {\n ctx.clip();\n }\n this.pendingClip = null;\n }\n ctx.beginPath();\n },\n getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n const inverse = this.ctx.mozCurrentTransformInverse;\n // max of the current horizontal and vertical scale\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(\n (inverse[0] * inverse[0] + inverse[1] * inverse[1]),\n (inverse[2] * inverse[2] + inverse[3] * inverse[3])));\n }\n return this._cachedGetSinglePixelWidth;\n },\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [\n transform[0] * x + transform[2] * y + transform[4],\n transform[1] * x + transform[3] * y + transform[5]\n ];\n },\n };\n\n for (var op in OPS) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n})();\n\nexport {\n CanvasGraphics,\n};\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 { FormatError, info, Util } from '../shared/util';\n\nvar ShadingIRs = {};\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === 'undefined') {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var bbox = raw[2];\n var colorStops = raw[3];\n var p0 = raw[4];\n var p1 = raw[5];\n var r0 = raw[6];\n var r1 = raw[7];\n return {\n type: 'Pattern',\n getPattern: function RadialAxial_getPattern(ctx) {\n applyBoundingBox(ctx, bbox);\n var grad;\n if (type === 'axial') {\n grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n } else if (type === 'radial') {\n grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n }\n\n for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n return grad;\n },\n };\n },\n};\n\nvar createMeshCanvas = (function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n // Very basic Gouraud-shaded triangle rasterization algorithm.\n var coords = context.coords, colors = context.colors;\n var bytes = data.data, rowSize = data.width * 4;\n var tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2; p2 = p3; p3 = tmp; tmp = c2; c2 = c3; c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp;\n }\n var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n var c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2];\n var c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2];\n var c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2];\n\n var minY = Math.round(y1), maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n var k;\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n k = k < 0 ? 0 : k > 1 ? 1 : k;\n bytes[j++] = (car - (car - cbr) * k) | 0;\n bytes[j++] = (cag - (cag - cbg) * k) | 0;\n bytes[j++] = (cab - (cab - cbb) * k) | 0;\n bytes[j++] = 255;\n }\n }\n }\n\n function drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n switch (figure.type) {\n case 'lattice':\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context,\n ps[q], ps[q + 1], ps[q + verticesPerRow],\n cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context,\n ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow],\n cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case 'triangles':\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context,\n ps[i], ps[i + 1], ps[i + 2],\n cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error('illegal figure');\n }\n }\n\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures,\n backgroundColor, cachedCanvases, webGLContext) {\n // we will increase scale on some weird factor to let antialiasing take\n // care of \"rough\" edges\n var EXPECTED_SCALE = 1.1;\n // MAX_PATTERN_SIZE is used to avoid OOM situation.\n var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n // We need to keep transparent border around our pattern for fill():\n // createPattern with 'no-repeat' will bleed edges across entire area.\n var BORDER_SIZE = 2;\n\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] *\n EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] *\n EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n\n var context = {\n coords,\n colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY,\n };\n\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n\n var canvas, tmpCanvas, i, ii;\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context,\n });\n // https://bugzilla.mozilla.org/show_bug.cgi?id=972126\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight,\n false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight,\n false);\n var tmpCtx = tmpCanvas.context;\n\n var data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n var bytes = data.data;\n for (i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY,\n };\n }\n return createMeshCanvas;\n})();\n\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n // var type = raw[1];\n var coords = raw[2];\n var colors = raw[3];\n var figures = raw[4];\n var bounds = raw[5];\n var matrix = raw[6];\n var bbox = raw[7];\n var background = raw[8];\n return {\n type: 'Pattern',\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n applyBoundingBox(ctx, bbox);\n var scale;\n if (shadingFill) {\n scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n // Obtain scale from matrix and current transformation matrix.\n scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n if (matrix) {\n var matrixScale = Util.singularValueDecompose2dScale(matrix);\n scale = [scale[0] * matrixScale[0],\n scale[1] * matrixScale[1]];\n }\n }\n\n // Rasterizing on the main thread since sending/queue large canvases\n // might cause OOM.\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords,\n colors, figures, shadingFill ? null : background,\n owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX,\n temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX,\n temporaryPatternCanvas.scaleY);\n\n return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');\n },\n };\n },\n};\n\nShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n type: 'Pattern',\n getPattern: function Dummy_fromIR_getPattern() {\n return 'hotpink';\n },\n };\n },\n};\n\nfunction getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n if (!shadingIR) {\n throw new Error(`Unknown IR type: ${raw[0]}`);\n }\n return shadingIR.fromIR(raw);\n}\n\nvar TilingPattern = (function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2,\n };\n\n var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n\n function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.type = 'Pattern';\n this.ctx = ctx;\n }\n\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n\n info('TilingType: ' + tilingType);\n\n // A tiling pattern as defined by PDF spec 8.7.2 is a cell whose size is\n // described by bbox, and may repeat regularly by shifting the cell by\n // xstep and ystep.\n // Because the HTML5 canvas API does not support pattern repetition with\n // gaps in between, we use the xstep/ystep instead of the bbox's size.\n //\n // This has the following consequences (similarly for ystep):\n //\n // - If xstep is the same as bbox, then there is no observable difference.\n //\n // - If xstep is larger than bbox, then the pattern canvas is partially\n // empty: the area bounded by bbox is painted, the outside area is void.\n //\n // - If xstep is smaller than bbox, then the pixels between xstep and the\n // bbox boundary will be missing. This is INCORRECT behavior.\n // \"Figures on adjacent tiles should not overlap\" (PDF spec 8.7.3.1),\n // but overlapping cells without common pixels are still valid.\n // TODO: Fix the implementation, to allow this scenario to be painted\n // correctly.\n\n var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3];\n\n // Obtain scale from matrix and current transformation matrix.\n var matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n var curMatrixScale = Util.singularValueDecompose2dScale(\n this.baseTransform);\n var combinedScale = [matrixScale[0] * curMatrixScale[0],\n matrixScale[1] * curMatrixScale[1]];\n\n // Use width and height values that are as close as possible to the end\n // result when the pattern is used. Too low value makes the pattern look\n // blurry. Too large value makes it look too crispy.\n var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width,\n combinedScale[0]);\n var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height,\n combinedScale[1]);\n\n var tmpCanvas = owner.cachedCanvases.getCanvas('pattern',\n dimx.size, dimy.size, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n\n // transform coordinates to pattern space\n graphics.transform(1, 0, 0, 1, -x0, -y0);\n\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n\n graphics.executeOperatorList(operatorList);\n\n this.ctx.transform(1, 0, 0, 1, x0, y0);\n\n // Rescale canvas so that the ctx.createPattern call generates a pattern\n // with the desired size.\n this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n return tmpCanvas.canvas;\n },\n\n getSizeAndScale:\n function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {\n // xstep / ystep may be negative -- normalize.\n step = Math.abs(step);\n // MAX_PATTERN_SIZE is used to avoid OOM situation.\n // Use the destination canvas's size if it is bigger than the hard-coded\n // limit of MAX_PATTERN_SIZE to avoid clipping patterns that cover the\n // whole canvas.\n var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);\n var size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return { scale, size, };\n },\n\n clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n },\n\n setFillAndStrokeStyleToContext:\n function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n let context = graphics.ctx, current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n var ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n var cssColor = Util.makeCssRgb(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n // Set color needed by image masks (fixes issues 3226 and 8741).\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n },\n\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n ctx = this.ctx;\n // PDF spec 8.7.2 NOTE 1: pattern's matrix is relative to initial matrix.\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n return ctx.createPattern(temporaryPatternCanvas, 'repeat');\n },\n };\n\n return TilingPattern;\n})();\n\nexport {\n getShadingPatternFromIR,\n TilingPattern,\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\nconst GlobalWorkerOptions = Object.create(null);\n\n/**\n * Defines global port for worker process. Overrides the `workerSrc` option.\n * @var {Object}\n */\nGlobalWorkerOptions.workerPort = (GlobalWorkerOptions.workerPort === undefined ?\n null : GlobalWorkerOptions.workerPort);\n\n/**\n * Path and filename of the worker file. Required when workers are enabled in\n * development mode. If unspecified in production builds, the worker will be\n * loaded based on the location of the `pdf.js` file.\n *\n * NOTE: The `workerSrc` should always be set in custom applications, in order\n * to prevent issues caused by third-party frameworks and libraries.\n * @var {string}\n */\nGlobalWorkerOptions.workerSrc = (GlobalWorkerOptions.workerSrc === undefined ?\n '' : GlobalWorkerOptions.workerSrc);\n\nexport {\n GlobalWorkerOptions,\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 {\n AbortException, assert, createPromiseCapability, MissingPDFException,\n ReadableStream, UnexpectedResponseException, UnknownErrorException\n} from './util';\n\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n if (typeof reason !== 'object') {\n return reason;\n }\n switch (reason.name) {\n case 'AbortException':\n return new AbortException(reason.message);\n case 'MissingPDFException':\n return new MissingPDFException(reason.message);\n case 'UnexpectedResponseException':\n return new UnexpectedResponseException(reason.message, reason.status);\n case 'UnknownErrorException':\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nfunction MessageHandler(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n let callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n let ah = this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = (event) => {\n let data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n } else if (data.isReply) {\n let callbackId = data.callbackId;\n if (data.callbackId in callbacksCapabilities) {\n let callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\n if ('reason' in data) {\n callback.reject(wrapReason(data.reason));\n } else {\n callback.resolve(data.data);\n }\n } else {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n } else if (data.action in ah) {\n let action = ah[data.action];\n if (data.callbackId) {\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n new Promise(function(resolve) {\n resolve(action(data.data));\n }).then(function(result) {\n comObj.postMessage({\n sourceName,\n targetName,\n isReply: true,\n callbackId: data.callbackId,\n data: result,\n });\n }, function(reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n isReply: true,\n callbackId: data.callbackId,\n reason: wrapReason(reason),\n });\n });\n } else if (data.streamId) {\n this._createStreamSink(data);\n } else {\n action(data.data);\n }\n } else {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n };\n comObj.addEventListener('message', this._onComObjOnMessage);\n}\n\nMessageHandler.prototype = {\n on(actionName, handler) {\n var ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers\n */\n send(actionName, data, transfers) {\n this.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n }, transfers);\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var capability = createPromiseCapability();\n this.callbacksCapabilities[callbackId] = capability;\n try {\n this.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data,\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers.\n * @return {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n let streamId = this.streamId++;\n let sourceName = this.sourceName;\n let targetName = this.targetName;\n const comObj = this.comObj;\n\n return new ReadableStream({\n start: (controller) => {\n let startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false,\n };\n this.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n }, transfers);\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: (controller) => {\n let pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: (reason) => {\n assert(reason instanceof Error, 'cancel must have a valid reason');\n let cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason),\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n }, queueingStrategy);\n },\n\n _createStreamSink(data) {\n let self = this;\n let action = this.actionHandler[data.action];\n let streamId = data.streamId;\n let desiredSize = data.desiredSize;\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n let capability = createPromiseCapability();\n const comObj = this.comObj;\n\n let streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n let lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n self.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk,\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId,\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n assert(reason instanceof Error, 'error must have a valid reason');\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason),\n });\n },\n\n sinkCapability: capability,\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function(resolve) {\n resolve(action(data.data, streamSink));\n }).then(function() {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true,\n });\n }, function(reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n });\n },\n\n _processStreamMessage(data) {\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n const streamId = data.streamId;\n const comObj = this.comObj;\n\n let deleteStreamController = () => {\n // Delete the `streamController` only when the start, pull, and cancel\n // capabilities have settled, to prevent `TypeError`s.\n Promise.all([\n this.streamControllers[streamId].startCall,\n this.streamControllers[streamId].pullCall,\n this.streamControllers[streamId].cancelCall\n ].map(function(capability) {\n return capability && capability.promise.catch(function() { });\n })).then(() => {\n delete this.streamControllers[streamId];\n });\n };\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].startCall.resolve();\n } else {\n this.streamControllers[streamId].startCall.reject(\n wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(\n wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!this.streamSinks[streamId]) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n break;\n }\n // Pull increases the desiredSize property of sink,\n // so when it changes from negative to positive,\n // set ready property as resolved promise.\n if (this.streamSinks[streamId].desiredSize <= 0 &&\n data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const { onPull, } = this.streamSinks[data.streamId];\n new Promise(function(resolve) {\n resolve(onPull && onPull());\n }).then(function() {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n }, function(reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n });\n break;\n case StreamKind.ENQUEUE:\n assert(this.streamControllers[streamId],\n 'enqueue should have stream controller');\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(this.streamControllers[streamId],\n 'close should have stream controller');\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n deleteStreamController();\n break;\n case StreamKind.ERROR:\n assert(this.streamControllers[streamId],\n 'error should have stream controller');\n this.streamControllers[streamId].controller.error(\n wrapReason(data.reason));\n deleteStreamController();\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(\n wrapReason(data.reason));\n }\n deleteStreamController();\n break;\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n const { onCancel, } = this.streamSinks[data.streamId];\n new Promise(function(resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function() {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true,\n });\n }, function(reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n });\n this.streamSinks[streamId].sinkCapability.reject(\n wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error('Unexpected stream case');\n }\n },\n\n /**\n * Sends raw message to the comObj.\n * @private\n * @param {Object} message - Raw message.\n * @param transfers List of transfers/ArrayBuffers, or undefined.\n */\n postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n },\n\n destroy() {\n this.comObj.removeEventListener('message', this._onComObjOnMessage);\n },\n};\n\nexport {\n MessageHandler,\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 } from '../shared/util';\nimport { SimpleXMLParser } from './xml_parser';\n\nclass Metadata {\n constructor(data) {\n assert(typeof data === 'string', 'Metadata: input is not a string');\n\n // Ghostscript may produce invalid metadata, so try to repair that first.\n data = this._repair(data);\n\n // Convert the string to an XML document.\n let parser = new SimpleXMLParser();\n const xmlDocument = parser.parseFromString(data);\n\n this._metadata = Object.create(null);\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n // Start by removing any \"junk\" before the first tag (see issue 10395).\n return data.replace(/^([^<]+)/, '').replace(/>\\\\376\\\\377([^<]+)/g,\n function(all, codes) {\n let bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g,\n function(code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n }).replace(/&(amp|apos|gt|lt|quot);/g, function(str, name) {\n switch (name) {\n case 'amp':\n return '&';\n case 'apos':\n return '\\'';\n case 'gt':\n return '>';\n case 'lt':\n return '<';\n case 'quot':\n return '\\\"';\n }\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n\n let chars = '';\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n let code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 &&\n code !== 38) {\n chars += String.fromCharCode(code);\n } else {\n chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';';\n }\n }\n\n return '>' + chars;\n });\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { // Wrapped in <xmpmeta>\n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.nextSibling;\n }\n }\n\n let nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {\n return;\n }\n\n let children = rdf.childNodes;\n for (let i = 0, ii = children.length; i < ii; i++) {\n let desc = children[i];\n if (desc.nodeName.toLowerCase() !== 'rdf:description') {\n continue;\n }\n\n for (let j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') {\n let entry = desc.childNodes[j];\n let name = entry.nodeName.toLowerCase();\n\n this._metadata[name] = entry.textContent.trim();\n }\n }\n }\n }\n\n get(name) {\n const data = this._metadata[name];\n return (typeof data !== 'undefined' ? data : null);\n }\n\n getAll() {\n return this._metadata;\n }\n\n has(name) {\n return typeof this._metadata[name] !== 'undefined';\n }\n}\n\nexport {\n Metadata,\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\n// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === ' ' || ch === '\\n' || ch === '\\r' || ch === '\\t';\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === '#x') {\n return String.fromCharCode(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === '#') {\n return String.fromCharCode(parseInt(entity.substring(1), 10));\n }\n switch (entity) {\n case 'lt':\n return '<';\n case 'gt':\n return '>';\n case 'amp':\n return '&';\n case 'quot':\n return '\\\"';\n }\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n let pos = start, name, attributes = [];\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) &&\n s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n name = s.substring(start, pos);\n skipWs();\n while (pos < s.length && s[pos] !== '>' &&\n s[pos] !== '/' && s[pos] !== '?') {\n skipWs();\n let attrName = '', attrValue = '';\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== '=') {\n return null;\n }\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n if (attrEndChar !== '\\\"' && attrEndChar !== '\\'') {\n return null;\n }\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue),\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name,\n attributes,\n parsed: pos - start,\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start, name, value;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) &&\n s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {\n ++pos;\n }\n value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start,\n };\n }\n\n parseXml(s) {\n let i = 0;\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n if (ch === '<') {\n ++j;\n const ch2 = s[j];\n let q;\n switch (ch2) {\n case '/':\n ++j;\n q = s.indexOf('>', j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case '?':\n ++j;\n const pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case '!':\n if (s.substring(j + 1, j + 3) === '--') {\n q = s.indexOf('-->', j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === '[CDATA[') {\n q = s.indexOf(']]>', j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {\n const q2 = s.indexOf('[', j + 8);\n let complexDoctype = false;\n q = s.indexOf('>', j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(']>', j + 8);\n if (q < 0) {\n this.onError(\n XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n complexDoctype = true;\n }\n const doctypeContent =\n s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n break;\n default:\n const content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n let isClosed = false;\n if (s.substring(j + content.parsed,\n j + content.parsed + 2) === '/>') {\n isClosed = true;\n } else if (s.substring(j + content.parsed,\n j + content.parsed + 1) !== '>') {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== '<') {\n j++;\n }\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) { }\n\n onComment(text) { }\n\n onCdata(text) { }\n\n onDoctype(doctypeContent) { }\n\n onText(text) { }\n\n onBeginElement(name, attributes, isEmpty) { }\n\n onEndElement(name) { }\n\n onError(code) { }\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, 'parentNode', { value: null, writable: true, });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n if (!childNodes) {\n return undefined;\n }\n const index = childNodes.indexOf(this);\n if (index === -1) {\n return undefined;\n }\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || '';\n }\n return this.childNodes.map(function(child) {\n return child.textContent;\n }).join('');\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor() {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined; // return undefined on error\n }\n\n // We should only have one root.\n const [documentElement] = this._currentFragment;\n if (!documentElement) {\n return undefined; // Return undefined if no root was found.\n }\n return { documentElement, };\n }\n\n onResolveEntity(name) {\n switch (name) {\n case 'apos':\n return '\\'';\n }\n return super.onResolveEntity(name);\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n const node = new SimpleDOMNode('#text', text);\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode('#text', text);\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n if (!lastElement) {\n return;\n }\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport {\n SimpleXMLParser,\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/* eslint no-var: error */\n\nimport { assert, createPromiseCapability } from '../shared/util';\n\n/** @implements {IPDFStream} */\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n assert(pdfDataRangeTransport);\n\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n\n const initialData = params.initialData;\n if (initialData && initialData.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({ begin, chunk, });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({ loaded, total, });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener((chunk) => {\n this._onReceiveData({ chunk, });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function(rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n assert(found);\n }\n }\n\n get _progressiveDataLength() {\n return (this._fullRequestReader ? this._fullRequestReader._loaded : 0);\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n // Reporting to first range reader, if it exists.\n const firstReader = this._rangeReaders[0];\n if (firstReader && firstReader.onProgress) {\n firstReader.onProgress({ loaded: evt.loaded, });\n }\n } else {\n const fullReader = this._fullRequestReader;\n if (fullReader && fullReader.onProgress) {\n fullReader.onProgress({ loaded: evt.loaded, total: evt.total, });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n assert(!this._fullRequestReader);\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks,\n this._progressiveDone);\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n const readers = this._rangeReaders.slice(0);\n readers.forEach(function(rangeReader) {\n rangeReader.cancel(reason);\n });\n this._pdfDataRangeTransport.abort();\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return; // Ignore new data.\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false, });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return { value: chunk, done: false, };\n }\n if (this._done) {\n return { value: undefined, done: true, };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n this._requests.forEach(function(requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return; // ignore new data\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({ value: chunk, done: false, });\n this._requests.forEach(function(requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return { value: chunk, done: false, };\n }\n if (this._done) {\n return { value: undefined, done: true, };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n this._requests.forEach(function(requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n this._stream._removeRangeReader(this);\n }\n}\n\nexport {\n PDFDataTransportStream,\n};\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/* eslint-disable no-multi-str */\n\nimport { shadow } from '../shared/util';\n\nclass WebGLContext {\n constructor({ enable = false, }) {\n this._enabled = enable === true;\n }\n\n get isEnabled() {\n let enabled = this._enabled;\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n return shadow(this, 'isEnabled', enabled);\n }\n\n composeSMask({ layer, mask, properties, }) {\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n\n drawFigures({ width, height, backgroundColor, figures, context, }) {\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures,\n context);\n }\n\n clear() {\n WebGLUtils.cleanup();\n }\n}\n\nvar WebGLUtils = (function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error('Error during shader compilation: ' + errorMsg);\n }\n return shader;\n }\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error('Error during program linking: ' + errorMsg);\n }\n return program;\n }\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n\n // Set the parameters so we can render any size image.\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\n // Upload the image into the texture.\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n var currentGL, currentCanvas;\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n // The temporary canvas is used in the WebGL context.\n currentCanvas = document.createElement('canvas');\n currentGL = currentCanvas.getContext('webgl',\n { premultipliedalpha: false, });\n }\n\n var smaskVertexShaderCode = '\\\n attribute vec2 a_position; \\\n attribute vec2 a_texCoord; \\\n \\\n uniform vec2 u_resolution; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_texCoord = a_texCoord; \\\n } ';\n\n var smaskFragmentShaderCode = '\\\n precision mediump float; \\\n \\\n uniform vec4 u_backdrop; \\\n uniform int u_subtype; \\\n uniform sampler2D u_image; \\\n uniform sampler2D u_mask; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec4 imageColor = texture2D(u_image, v_texCoord); \\\n vec4 maskColor = texture2D(u_mask, v_texCoord); \\\n if (u_backdrop.a > 0.0) { \\\n maskColor.rgb = maskColor.rgb * maskColor.a + \\\n u_backdrop.rgb * (1.0 - maskColor.a); \\\n } \\\n float lum; \\\n if (u_subtype == 0) { \\\n lum = maskColor.a; \\\n } else { \\\n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \\\n maskColor.b * 0.11; \\\n } \\\n imageColor.a *= lum; \\\n imageColor.rgb *= imageColor.a; \\\n gl_FragColor = imageColor; \\\n } ';\n\n var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n\n // setup a GLSL program\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');\n cache.positionLocation = gl.getAttribLocation(program, 'a_position');\n cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');\n cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');\n\n var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');\n var texLayerLocation = gl.getUniformLocation(program, 'u_image');\n var texMaskLocation = gl.getUniformLocation(program, 'u_mask');\n\n // provide texture coordinates for the rectangle.\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n 0.0, 0.0,\n 1.0, 0.0,\n 0.0, 1.0,\n 0.0, 1.0,\n 1.0, 0.0,\n 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width, height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n var cache = smaskCache, canvas = cache.canvas, gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n if (properties.backdrop) {\n gl.uniform4f(cache.resolutionLocation, properties.backdrop[0],\n properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n gl.uniform1i(cache.subtypeLocation,\n properties.subtype === 'Luminosity' ? 1 : 0);\n\n // Create a textures\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n\n // Create a buffer and put a single clipspace rectangle in\n // it (2 triangles)\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n 0, 0,\n width, 0,\n 0, height,\n 0, height,\n width, 0,\n width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n // draw\n gl.clearColor(0, 0, 0, 0);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n gl.flush();\n\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n\n return canvas;\n }\n\n var figuresVertexShaderCode = '\\\n attribute vec2 a_position; \\\n attribute vec3 a_color; \\\n \\\n uniform vec2 u_resolution; \\\n uniform vec2 u_scale; \\\n uniform vec2 u_offset; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n vec2 position = (a_position + u_offset) * u_scale; \\\n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_color = vec4(a_color / 255.0, 1.0); \\\n } ';\n\n var figuresFragmentShaderCode = '\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } ';\n\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n\n // setup a GLSL program\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');\n cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');\n cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');\n cache.positionLocation = gl.getAttribLocation(program, 'a_position');\n cache.colorLocation = gl.getAttribLocation(program, 'a_color');\n\n figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n var cache = figuresCache, canvas = cache.canvas, gl = cache.gl;\n\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n // count triangle points\n var count = 0;\n var i, ii, rows;\n for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case 'lattice':\n rows = (figures[i].coords.length / figures[i].verticesPerRow) | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n case 'triangles':\n count += figures[i].coords.length;\n break;\n }\n }\n // transfer data\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords, colorsMap = context.colors;\n var pIndex = 0, cIndex = 0;\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i], ps = figure.coords, cs = figure.colors;\n switch (figure.type) {\n case 'lattice':\n var cols = figure.verticesPerRow;\n rows = (ps.length / cols) | 0;\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n for (var col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n break;\n case 'triangles':\n for (var j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n break;\n }\n }\n\n // draw\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255,\n backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n var coordsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n var colorsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.colorLocation);\n gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false,\n 0, 0);\n\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n\n gl.drawArrays(gl.TRIANGLES, 0, count);\n\n gl.flush();\n\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n\n return canvas;\n }\n\n return {\n tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) { }\n return false;\n },\n\n composeSMask,\n\n drawFigures,\n\n cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n smaskCache = null;\n figuresCache = null;\n },\n };\n})();\n\nexport {\n WebGLContext,\n};\n","/* Copyright 2015 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 { AbortException, createPromiseCapability, Util } from '../shared/util';\nimport globalScope from '../shared/global_scope';\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {TextContent} textContent - (optional) Text content to render\n * (the object is returned by the page's getTextContent() method).\n * @property {ReadableStream} textContentStream - (optional) Text content\n * stream to render (the stream is returned by the page's\n * streamTextContent() method).\n * @property {HTMLElement} container - HTML element that will contain text runs.\n * @property {PageViewport} viewport - The target viewport to properly\n * layout the text runs.\n * @property {Array} textDivs - (optional) HTML elements that are correspond\n * the text items of the textContent input. This is output and shall be\n * initially be set to empty array.\n * @property {Array} textContentItemsStr - (optional) Strings that correspond\n * the `str` property of the text items of textContent input. This is output\n * and shall be initially be set to empty array.\n * @property {number} timeout - (optional) Delay in milliseconds before\n * rendering of the text runs occurs.\n * @property {boolean} enhanceTextSelection - (optional) Whether to turn on the\n * text selection enhancement.\n */\nvar renderTextLayer = (function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n function appendText(task, geom, styles) {\n // Initialize all used properties to keep the caches monomorphic.\n var textDiv = document.createElement('span');\n var textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n isWhitespace: false,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1,\n };\n\n task._textDivs.push(textDiv);\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n task._textDivProperties.set(textDiv, textDivProperties);\n return;\n }\n\n var tx = Util.transform(task._viewport.transform, geom.transform);\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n var fontHeight = Math.sqrt((tx[2] * tx[2]) + (tx[3] * tx[3]));\n var fontAscent = fontHeight;\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + (fontAscent * Math.sin(angle));\n top = tx[5] - (fontAscent * Math.cos(angle));\n }\n // Setting the style properties individually, rather than all at once,\n // should be OK since the `textDiv` isn't appended to the document yet.\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n\n textDiv.textContent = geom.str;\n // `fontName` is only used by the FontInspector, and we only use `dataset`\n // here to make the font name available in the debugger.\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n // We don't bother scaling single-char text divs, because it has very\n // little effect on text highlighting. This makes scrolling on docs with\n // lots of such divs a lot faster.\n if (geom.str.length > 1) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1, angleSin = 0;\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n var divWidth = (style.vertical ? geom.height : geom.width) *\n task._viewport.scale;\n var divHeight = fontHeight;\n\n var m, b;\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m,\n });\n }\n }\n\n function render(task) {\n if (task._canceled) {\n return;\n }\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\n // No point in rendering many divs as it would make the browser\n // unusable even after the divs are rendered.\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n }\n\n function expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n var divProperties = task._textDivProperties.get(div);\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n task._textDivProperties.set(div, divProperties);\n continue;\n }\n // Box is rotated -- trying to find padding so rotated div will not\n // exceed its expanded bounds.\n var e = expanded[i], b = bounds[i];\n var m = b.m, c = m[0], s = m[1];\n // Finding intersections with expanded box.\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n points.forEach(function (p, i) {\n var t = Util.applyTransform(p, m);\n ts[i + 0] = c && (e.left - t[0]) / c;\n ts[i + 4] = s && (e.top - t[1]) / s;\n ts[i + 8] = c && (e.right - t[0]) / c;\n ts[i + 12] = s && (e.bottom - t[1]) / s;\n\n ts[i + 16] = s && (e.left - t[0]) / -s;\n ts[i + 20] = c && (e.top - t[1]) / c;\n ts[i + 24] = s && (e.right - t[0]) / -s;\n ts[i + 28] = c && (e.bottom - t[1]) / c;\n\n ts[i + 32] = c && (e.left - t[0]) / -c;\n ts[i + 36] = s && (e.top - t[1]) / -s;\n ts[i + 40] = c && (e.right - t[0]) / -c;\n ts[i + 44] = s && (e.bottom - t[1]) / -s;\n\n ts[i + 48] = s && (e.left - t[0]) / s;\n ts[i + 52] = c && (e.top - t[1]) / -c;\n ts[i + 56] = s && (e.right - t[0]) / s;\n ts[i + 60] = c && (e.bottom - t[1]) / -c;\n });\n var findPositiveMin = function (ts, offset, count) {\n var result = 0;\n for (var i = 0; i < count; i++) {\n var t = ts[offset++];\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n return result;\n };\n // Not based on math, but to simplify calculations, using cos and sin\n // absolute values to not exceed the box (it can but insignificantly).\n var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n task._textDivProperties.set(div, divProperties);\n }\n }\n\n function expandBounds(width, height, boxes) {\n var bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined,\n };\n });\n expandBoundsLTR(width, bounds);\n var expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0,\n };\n });\n\n // Rotating on 90 degrees and extending extended boxes. Reusing the bounds\n // array and objects.\n boxes.map(function (box, i) {\n var e = expanded[i], b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n });\n return expanded;\n }\n\n function expandBoundsLTR(width, bounds) {\n // Sorting by x1 coordinate and walk by the bounds in the same order.\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n\n // First we see on the horizon is a fake boundary.\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0,\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary,\n }];\n\n bounds.forEach(function (boundary) {\n // Searching for the affected part of horizon.\n // TODO red-black tree or simple binary search\n var i = 0;\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n var j = horizon.length - 1;\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q, k, maxXNew = -Infinity;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n if (affectedBoundary.x2 > boundary.x1) {\n // In the middle of the previous element, new x shall be at the\n // boundary start. Extending if further if the affected boundary\n // placed on top of the current one.\n xNew = affectedBoundary.index > boundary.index ?\n affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n // We have some space in between, new x in middle will be a fair\n // choice.\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n // Affected boundary has x2new set, using it as new x.\n xNew = affectedBoundary.x2New;\n }\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n // Set new x1 for current boundary.\n boundary.x1New = maxXNew;\n\n // Adjusts new x2 for the affected boundaries.\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n // Was not set yet, choosing new x if possible.\n if (affectedBoundary.x2 > boundary.x1) {\n // Current and affected boundaries intersect. If affected boundary\n // is placed on top of the current, shrinking the affected.\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n // Affected boundary is touching new x, pushing it back.\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n // Fixing the horizon.\n var changedHorizon = [], lastBoundary = null;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n // Checking which boundary will be visible.\n var useBoundary = affectedBoundary.x2 > boundary.x2 ?\n affectedBoundary : boundary;\n if (lastBoundary === useBoundary) {\n // Merging with previous.\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary,\n });\n lastBoundary = useBoundary;\n }\n }\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary,\n });\n }\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary,\n });\n }\n\n // Set x2 new of boundary that is no longer visible (see overlapping case\n // above).\n // TODO more efficient, e.g. via reference counting.\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n var used = false;\n for (k = i - 1; !used && k >= 0 &&\n horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = j + 1; !used && k < horizon.length &&\n horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon,\n [i, j - i + 1].concat(changedHorizon));\n });\n\n // Set new x2 for all unset boundaries.\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n /**\n * Text layer rendering task.\n *\n * @param {TextContent} textContent\n * @param {HTMLElement} container\n * @param {PageViewport} viewport\n * @param {Array} textDivs\n * @param {boolean} enhanceTextSelection\n * @private\n */\n function TextLayerRenderTask({ textContent, textContentStream, container,\n viewport, textDivs, textContentItemsStr,\n enhanceTextSelection, }) {\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!(globalScope.FontInspector &&\n globalScope.FontInspector.enabled);\n\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = createPromiseCapability();\n this._renderTimer = null;\n this._bounds = [];\n\n // Always clean-up the temporary canvas once rendering is no longer pending.\n this._capability.promise.finally(() => {\n if (this._layoutTextCtx) {\n // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => { /* Avoid \"Uncaught promise\" messages in the console. */ });\n }\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader.cancel(new AbortException('TextLayer task cancelled.'));\n this._reader = null;\n }\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n this._capability.reject(new Error('TextLayer task cancelled.'));\n },\n\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n appendText(this, items[i], styleCache);\n }\n },\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n let transform = '';\n if (textDivProperties.canvasWidth !== 0) {\n const { fontSize, fontFamily, } = textDiv.style;\n\n // Only build font string and set to context if different from last.\n if (fontSize !== this._layoutTextLastFontSize ||\n fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n // Only measure the width for multi-char text divs, see `appendText`.\n const { width, } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = `scaleX(${textDivProperties.scale})`;\n }\n }\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n textDiv.style.transform = transform;\n }\n this._textDivProperties.set(textDiv, textDivProperties);\n this._container.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\n let capability = createPromiseCapability();\n let styleCache = Object.create(null);\n\n // The temporary canvas is used to measure text length in the DOM.\n let canvas = document.createElement('canvas');\n if (typeof PDFJSDev === 'undefined' ||\n PDFJSDev.test('FIREFOX || MOZCENTRAL || GENERIC')) {\n canvas.mozOpaque = true;\n }\n this._layoutTextCtx = canvas.getContext('2d', { alpha: false, });\n\n if (this._textContent) {\n let textItems = this._textContent.items;\n let textStyles = this._textContent.styles;\n this._processItems(textItems, textStyles);\n capability.resolve();\n } else if (this._textContentStream) {\n let pump = () => {\n this._reader.read().then(({ value, done, }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' +\n ' parameters specified.');\n }\n\n capability.promise.then(() => {\n styleCache = null;\n if (!timeout) { // Render right away\n render(this);\n } else { // Schedule\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n const NO_PADDING = '0 0 0 0';\n const transformBuf = [], paddingBuf = [];\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n const divProps = this._textDivProperties.get(div);\n\n if (divProps.isWhitespace) {\n continue;\n }\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(\n `translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n const padding = paddingBuf.join(' ');\n if (padding !== NO_PADDING) {\n div.style.padding = padding;\n }\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(' ');\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n },\n };\n\n /**\n * Starts rendering of the text layer.\n *\n * @param {TextLayerRenderParameters} renderParameters\n * @returns {TextLayerRenderTask}\n */\n function renderTextLayer(renderParameters) {\n var task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection,\n });\n task._render(renderParameters.timeout);\n return task;\n }\n\n return renderTextLayer;\n})();\n\nexport {\n renderTextLayer,\n};\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/* eslint no-var: error */\n\nimport {\n addLinkAttributes, DOMSVGFactory, getFilenameFromUrl, LinkTarget,\n PDFDateString\n} from './display_utils';\nimport {\n AnnotationBorderStyleType, AnnotationType, stringToPDFString, unreachable,\n Util, warn\n} from '../shared/util';\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {PDFPage} page\n * @property {PageViewport} viewport\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {string} imageResourcesPath - (optional) Path for image resources,\n * mainly for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n * @property {Object} svgFactory\n */\n\nclass AnnotationElementFactory {\n /**\n * @param {AnnotationElementParameters} parameters\n * @returns {AnnotationElement}\n */\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotationElement(parameters);\n case 'Btn':\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case 'Ch':\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n\n case AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\n\nclass AnnotationElement {\n constructor(parameters, isRenderable = false, ignoreBorder = false) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n }\n\n /**\n * Create an empty container for the annotation's HTML element.\n *\n * @private\n * @param {boolean} ignoreBorder\n * @memberof AnnotationElement\n * @returns {HTMLSectionElement}\n */\n _createContainer(ignoreBorder = false) {\n const data = this.data, page = this.page, viewport = this.viewport;\n const container = document.createElement('section');\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n\n container.setAttribute('data-annotation-id', data.id);\n\n // Do *not* modify `data.rect`, since that will corrupt the annotation\n // position on subsequent calls to `_createContainer` (see issue 6804).\n const rect = Util.normalizeRect([\n data.rect[0],\n page.view[3] - data.rect[1] + page.view[1],\n data.rect[2],\n page.view[3] - data.rect[3] + page.view[1]\n ]);\n\n container.style.transform = `matrix(${viewport.transform.join(',')})`;\n container.style.transformOrigin = `-${rect[0]}px -${rect[1]}px`;\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) {\n // Underline styles only have a bottom border, so we do not need\n // to adjust for all borders. This yields a similar result as\n // Adobe Acrobat/Reader.\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = 'solid';\n break;\n\n case AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = 'dashed';\n break;\n\n case AnnotationBorderStyleType.BEVELED:\n warn('Unimplemented border style: beveled');\n break;\n\n case AnnotationBorderStyleType.INSET:\n warn('Unimplemented border style: inset');\n break;\n\n case AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = 'solid';\n break;\n\n default:\n break;\n }\n\n if (data.color) {\n container.style.borderColor = Util.makeCssRgb(data.color[0] | 0,\n data.color[1] | 0,\n data.color[2] | 0);\n } else {\n // Transparent (invisible) border, so do not draw it at all.\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${rect[0]}px`;\n container.style.top = `${rect[1]}px`;\n container.style.width = `${width}px`;\n container.style.height = `${height}px`;\n return container;\n }\n\n /**\n * Create a popup for the annotation's HTML element. This is used for\n * annotations that do not have a Popup entry in the dictionary, but\n * are of a type that works with popups (such as Highlight annotations).\n *\n * @private\n * @param {HTMLSectionElement} container\n * @param {HTMLDivElement|HTMLImageElement|null} trigger\n * @param {Object} data\n * @memberof AnnotationElement\n */\n _createPopup(container, trigger, data) {\n // If no trigger element is specified, create it.\n if (!trigger) {\n trigger = document.createElement('div');\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n title: data.title,\n modificationDate: data.modificationDate,\n contents: data.contents,\n hideWrapper: true,\n });\n const popup = popupElement.render();\n\n // Position the popup next to the annotation's container.\n popup.style.left = container.style.width;\n\n container.appendChild(popup);\n }\n\n /**\n * Render the annotation's HTML element in the empty container.\n *\n * @public\n * @memberof AnnotationElement\n */\n render() {\n unreachable('Abstract method `AnnotationElement.render` called');\n }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.url || parameters.data.dest ||\n parameters.data.action);\n super(parameters, isRenderable);\n }\n\n /**\n * Render the link annotation's HTML element in the empty container.\n *\n * @public\n * @memberof LinkAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'linkAnnotation';\n\n const { data, linkService, } = this;\n const link = document.createElement('a');\n\n if (data.url) {\n addLinkAttributes(link, {\n url: data.url,\n target: (data.newWindow ?\n LinkTarget.BLANK : linkService.externalLinkTarget),\n rel: linkService.externalLinkRel,\n enabled: linkService.externalLinkEnabled,\n });\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n\n /**\n * Bind internal links to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} destination\n * @memberof LinkAnnotationElement\n */\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.navigateTo(destination);\n }\n return false;\n };\n if (destination) {\n link.className = 'internalLink';\n }\n }\n\n /**\n * Bind named actions to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} action\n * @memberof LinkAnnotationElement\n */\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl('');\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n link.className = 'internalLink';\n }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n /**\n * Render the text annotation's HTML element in the empty container.\n *\n * @public\n * @memberof TextAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'textAnnotation';\n\n const image = document.createElement('img');\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + 'annotation-' +\n this.data.name.toLowerCase() + '.svg';\n image.alt = '[{{type}} Annotation]';\n image.dataset.l10nId = 'text_annotation_type';\n image.dataset.l10nArgs = JSON.stringify({ type: this.data.name, });\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n /**\n * Render the widget annotation's HTML element in the empty container.\n *\n * @public\n * @memberof WidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n // Show only the container for unsupported field types.\n return this.container;\n }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderInteractiveForms ||\n (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n super(parameters, isRenderable);\n }\n\n /**\n * Render the text widget annotation's HTML element in the empty container.\n *\n * @public\n * @memberof TextWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n const TEXT_ALIGNMENT = ['left', 'center', 'right'];\n\n this.container.className = 'textWidgetAnnotation';\n\n let element = null;\n if (this.renderInteractiveForms) {\n // NOTE: We cannot set the values using `element.value` below, since it\n // prevents the AnnotationLayer rasterizer in `test/driver.js`\n // from parsing the elements correctly for the reference tests.\n if (this.data.multiLine) {\n element = document.createElement('textarea');\n element.textContent = this.data.fieldValue;\n } else {\n element = document.createElement('input');\n element.type = 'text';\n element.setAttribute('value', this.data.fieldValue);\n }\n\n element.disabled = this.data.readOnly;\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n\n element.classList.add('comb');\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement('div');\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = 'middle';\n element.style.display = 'table-cell';\n\n let font = null;\n if (this.data.fontRefName &&\n this.page.commonObjs.has(this.data.fontRefName)) {\n font = this.page.commonObjs.get(this.data.fontRefName);\n }\n this._setTextStyle(element, font);\n }\n\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n /**\n * Apply text styles to the text in the element.\n *\n * @private\n * @param {HTMLDivElement} element\n * @param {Object} font\n * @memberof TextWidgetAnnotationElement\n */\n _setTextStyle(element, font) {\n // TODO: This duplicates some of the logic in CanvasGraphics.setFont().\n const style = element.style;\n style.fontSize = `${this.data.fontSize}px`;\n style.direction = (this.data.fontDirection < 0 ? 'rtl' : 'ltr');\n\n if (!font) {\n return;\n }\n\n style.fontWeight = (font.black ?\n (font.bold ? '900' : 'bold') :\n (font.bold ? 'bold' : 'normal'));\n style.fontStyle = (font.italic ? 'italic' : 'normal');\n\n // Use a reasonable default font if the font doesn't specify a fallback.\n const fontFamily = font.loadedName ? `\"${font.loadedName}\", ` : '';\n const fallbackName = font.fallbackName || 'Helvetica, sans-serif';\n style.fontFamily = fontFamily + fallbackName;\n }\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n /**\n * Render the checkbox widget annotation's HTML element\n * in the empty container.\n *\n * @public\n * @memberof CheckboxWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'buttonWidgetAnnotation checkBox';\n\n const element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'checkbox';\n if (this.data.fieldValue && this.data.fieldValue !== 'Off') {\n element.setAttribute('checked', true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n /**\n * Render the radio button widget annotation's HTML element\n * in the empty container.\n *\n * @public\n * @memberof RadioButtonWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'buttonWidgetAnnotation radioButton';\n\n const element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'radio';\n element.name = this.data.fieldName;\n if (this.data.fieldValue === this.data.buttonValue) {\n element.setAttribute('checked', true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n /**\n * Render the push button widget annotation's HTML element\n * in the empty container.\n *\n * @public\n * @memberof PushButtonWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n // The rendering and functionality of a push button widget annotation is\n // equal to that of a link annotation, but may have more functionality, such\n // as performing actions on form fields (resetting, submitting, et cetera).\n const container = super.render();\n container.className = 'buttonWidgetAnnotation pushButton';\n return container;\n }\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n /**\n * Render the choice widget annotation's HTML element in the empty\n * container.\n *\n * @public\n * @memberof ChoiceWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'choiceWidgetAnnotation';\n\n const selectElement = document.createElement('select');\n selectElement.disabled = this.data.readOnly;\n\n if (!this.data.combo) {\n // List boxes have a size and (optionally) multiple selection.\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n // Insert the options into the choice field.\n for (const option of this.data.options) {\n const optionElement = document.createElement('option');\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (this.data.fieldValue.includes(option.displayValue)) {\n optionElement.setAttribute('selected', true);\n }\n selectElement.appendChild(optionElement);\n }\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n /**\n * Render the popup annotation's HTML element in the empty container.\n *\n * @public\n * @memberof PopupAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n // Do not render popup annotations for parent elements with these types as\n // they create the popups themselves (because of custom trigger divs).\n const IGNORE_TYPES = [\n 'Line',\n 'Square',\n 'Circle',\n 'PolyLine',\n 'Polygon',\n 'Ink',\n ];\n\n this.container.className = 'popupAnnotation';\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElement = this.layer.querySelector(selector);\n if (!parentElement) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n modificationDate: this.data.modificationDate,\n contents: this.data.contents,\n });\n\n // Position the popup next to the parent annotation's container.\n // PDF viewers ignore a popup annotation's rectangle.\n const parentLeft = parseFloat(parentElement.style.left);\n const parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin =\n `-${parentLeft + parentWidth}px -${parentElement.style.top}`;\n this.container.style.left = `${parentLeft + parentWidth}px`;\n\n this.container.appendChild(popup.render());\n return this.container;\n }\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.title = parameters.title;\n this.modificationDate = parameters.modificationDate;\n this.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n\n this.pinned = false;\n }\n\n /**\n * Render the popup's HTML element.\n *\n * @public\n * @memberof PopupElement\n * @returns {HTMLSectionElement}\n */\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n\n const wrapper = document.createElement('div');\n wrapper.className = 'popupWrapper';\n\n // For Popup annotations we hide the entire section because it contains\n // only the popup. However, for Text annotations without a separate Popup\n // annotation, we cannot hide the entire container as the image would\n // disappear too. In that special case, hiding the wrapper suffices.\n this.hideElement = (this.hideWrapper ? wrapper : this.container);\n this.hideElement.setAttribute('hidden', true);\n\n const popup = document.createElement('div');\n popup.className = 'popup';\n\n const color = this.color;\n if (color) {\n // Enlighten the color.\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = Util.makeCssRgb(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement('h1');\n title.textContent = this.title;\n popup.appendChild(title);\n\n // The modification date is shown in the popup instead of the creation\n // date if it is available and can be parsed correctly, which is\n // consistent with other viewers such as Adobe Acrobat.\n const dateObject = PDFDateString.toDateObject(this.modificationDate);\n if (dateObject) {\n const modificationDate = document.createElement('span');\n modificationDate.textContent = '{{date}}, {{time}}';\n modificationDate.dataset.l10nId = 'annotation_date_string';\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString(),\n });\n popup.appendChild(modificationDate);\n }\n\n const contents = this._formatContents(this.contents);\n popup.appendChild(contents);\n\n // Attach the event listeners to the trigger element.\n this.trigger.addEventListener('click', this._toggle.bind(this));\n this.trigger.addEventListener('mouseover', this._show.bind(this, false));\n this.trigger.addEventListener('mouseout', this._hide.bind(this, false));\n popup.addEventListener('click', this._hide.bind(this, true));\n\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n /**\n * Format the contents of the popup by adding newlines where necessary.\n *\n * @private\n * @param {string} contents\n * @memberof PopupElement\n * @returns {HTMLParagraphElement}\n */\n _formatContents(contents) {\n const p = document.createElement('p');\n const lines = contents.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.appendChild(document.createTextNode(line));\n if (i < (ii - 1)) {\n p.appendChild(document.createElement('br'));\n }\n }\n return p;\n }\n\n /**\n * Toggle the visibility of the popup.\n *\n * @private\n * @memberof PopupElement\n */\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n /**\n * Show the popup.\n *\n * @private\n * @param {boolean} pin\n * @memberof PopupElement\n */\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n if (this.hideElement.hasAttribute('hidden')) {\n this.hideElement.removeAttribute('hidden');\n this.container.style.zIndex += 1;\n }\n }\n\n /**\n * Hide the popup.\n *\n * @private\n * @param {boolean} unpin\n * @memberof PopupElement\n */\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n if (!this.hideElement.hasAttribute('hidden') && !this.pinned) {\n this.hideElement.setAttribute('hidden', true);\n this.container.style.zIndex -= 1;\n }\n }\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the free text annotation's HTML element in the empty container.\n *\n * @public\n * @memberof FreeTextAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'freeTextAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the line annotation's HTML element in the empty container.\n *\n * @public\n * @memberof LineAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'lineAnnotation';\n\n // Create an invisible line with the same starting and ending coordinates\n // that acts as the trigger for the popup. Only the line itself should\n // trigger the popup, not the entire container.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n // PDF coordinates are calculated from a bottom left origin, so transform\n // the line coordinates to a top left origin for the SVG element.\n const line = this.svgFactory.createElement('svg:line');\n line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute('stroke-width', data.borderStyle.width);\n line.setAttribute('stroke', 'transparent');\n\n svg.appendChild(line);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the line instead\n // of to the entire container (which is the default).\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the square annotation's HTML element in the empty container.\n *\n * @public\n * @memberof SquareAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'squareAnnotation';\n\n // Create an invisible square with the same rectangle that acts as the\n // trigger for the popup. Only the square itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n // The browser draws half of the borders inside the square and half of\n // the borders outside the square by default. This behavior cannot be\n // changed programmatically, so correct for that here.\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement('svg:rect');\n square.setAttribute('x', borderWidth / 2);\n square.setAttribute('y', borderWidth / 2);\n square.setAttribute('width', width - borderWidth);\n square.setAttribute('height', height - borderWidth);\n square.setAttribute('stroke-width', borderWidth);\n square.setAttribute('stroke', 'transparent');\n square.setAttribute('fill', 'none');\n\n svg.appendChild(square);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the square instead\n // of to the entire container (which is the default).\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the circle annotation's HTML element in the empty container.\n *\n * @public\n * @memberof CircleAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'circleAnnotation';\n\n // Create an invisible circle with the same ellipse that acts as the\n // trigger for the popup. Only the circle itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n // The browser draws half of the borders inside the circle and half of\n // the borders outside the circle by default. This behavior cannot be\n // changed programmatically, so correct for that here.\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement('svg:ellipse');\n circle.setAttribute('cx', width / 2);\n circle.setAttribute('cy', height / 2);\n circle.setAttribute('rx', (width / 2) - (borderWidth / 2));\n circle.setAttribute('ry', (height / 2) - (borderWidth / 2));\n circle.setAttribute('stroke-width', borderWidth);\n circle.setAttribute('stroke', 'transparent');\n circle.setAttribute('fill', 'none');\n\n svg.appendChild(circle);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the circle instead\n // of to the entire container (which is the default).\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n\n this.containerClassName = 'polylineAnnotation';\n this.svgElementName = 'svg:polyline';\n }\n\n /**\n * Render the polyline annotation's HTML element in the empty container.\n *\n * @public\n * @memberof PolylineAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = this.containerClassName;\n\n // Create an invisible polyline with the same points that acts as the\n // trigger for the popup. Only the polyline itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n // Convert the vertices array to a single points string that the SVG\n // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n // calculated from a bottom left origin, so transform the polyline\n // coordinates to a top left origin for the SVG element.\n let points = [];\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + ',' + y);\n }\n points = points.join(' ');\n\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', data.borderStyle.width);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n\n svg.appendChild(polyline);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the polyline\n // instead of to the entire container (which is the default).\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(parameters);\n\n this.containerClassName = 'polygonAnnotation';\n this.svgElementName = 'svg:polygon';\n }\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the caret annotation's HTML element in the empty container.\n *\n * @public\n * @memberof CaretAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'caretAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n\n this.containerClassName = 'inkAnnotation';\n\n // Use the polyline SVG element since it allows us to use coordinates\n // directly and to draw both straight lines and curves.\n this.svgElementName = 'svg:polyline';\n }\n\n /**\n * Render the ink annotation's HTML element in the empty container.\n *\n * @public\n * @memberof InkAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = this.containerClassName;\n\n // Create an invisible polyline with the same points that acts as the\n // trigger for the popup.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n for (const inkList of data.inkLists) {\n // Convert the ink list to a single points string that the SVG\n // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n // calculated from a bottom left origin, so transform the polyline\n // coordinates to a top left origin for the SVG element.\n let points = [];\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n points = points.join(' ');\n\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', data.borderStyle.width);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n\n // Create the popup ourselves so that we can bind it to the polyline\n // instead of to the entire container (which is the default).\n this._createPopup(this.container, polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the highlight annotation's HTML element in the empty container.\n *\n * @public\n * @memberof HighlightAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'highlightAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the underline annotation's HTML element in the empty container.\n *\n * @public\n * @memberof UnderlineAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'underlineAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the squiggly annotation's HTML element in the empty container.\n *\n * @public\n * @memberof SquigglyAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'squigglyAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the strikeout annotation's HTML element in the empty container.\n *\n * @public\n * @memberof StrikeOutAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'strikeoutAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the stamp annotation's HTML element in the empty container.\n *\n * @public\n * @memberof StampAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'stampAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, /* isRenderable = */ true);\n\n const { filename, content, } = this.data.file;\n this.filename = getFilenameFromUrl(filename);\n this.content = content;\n\n if (this.linkService.eventBus) {\n this.linkService.eventBus.dispatch('fileattachmentannotation', {\n source: this,\n id: stringToPDFString(filename),\n filename,\n content,\n });\n }\n }\n\n /**\n * Render the file attachment annotation's HTML element in the empty\n * container.\n *\n * @public\n * @memberof FileAttachmentAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'fileAttachmentAnnotation';\n\n const trigger = document.createElement('div');\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener('dblclick', this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(this.container, trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n /**\n * Download the file attachment associated with this annotation.\n *\n * @private\n * @memberof FileAttachmentAnnotationElement\n */\n _download() {\n if (!this.downloadManager) {\n warn('Download cannot be started due to unavailable download manager');\n return;\n }\n this.downloadManager.downloadData(this.content, this.filename, '');\n }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPage} page\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {string} imageResourcesPath - (optional) Path for image resources,\n * mainly for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n */\n\nclass AnnotationLayer {\n /**\n * Render a new annotation layer with all annotation elements.\n *\n * @public\n * @param {AnnotationLayerParameters} parameters\n * @memberof AnnotationLayer\n */\n static render(parameters) {\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n const element = AnnotationElementFactory.create({\n data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || '',\n renderInteractiveForms: parameters.renderInteractiveForms || false,\n svgFactory: new DOMSVGFactory(),\n });\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n\n /**\n * Update the annotation elements on existing annotation layer.\n *\n * @public\n * @param {AnnotationLayerParameters} parameters\n * @memberof AnnotationLayer\n */\n static update(parameters) {\n for (const data of parameters.annotations) {\n const element = parameters.div.querySelector(\n `[data-annotation-id=\"${data.id}\"]`);\n if (element) {\n element.style.transform =\n `matrix(${parameters.viewport.transform.join(',')})`;\n }\n }\n parameters.div.removeAttribute('hidden');\n }\n}\n\nexport {\n AnnotationLayer,\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/* globals __non_webpack_require__ */\n/* eslint no-var: error */\n\nimport {\n createObjectURL, FONT_IDENTITY_MATRIX, IDENTITY_MATRIX, ImageKind, isNum, OPS,\n TextRenderingMode, Util, warn\n} from '../shared/util';\nimport { DOMSVGFactory } from './display_utils';\nimport isNodeJS from '../shared/is_node';\n\nlet SVGGraphics = function() {\n throw new Error('Not implemented: SVGGraphics');\n};\n\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n\nconst SVG_DEFAULTS = {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fillColor: '#000000',\n};\nconst XML_NS = 'http://www.w3.org/XML/1998/namespace';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\nconst LINE_CAP_STYLES = ['butt', 'round', 'square'];\nconst LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n\nconst convertImgDataToPng = (function() {\n const PNG_HEADER =\n new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n\n const crcTable = new Int32Array(256);\n for (let i = 0; i < 256; i++) {\n let c = i;\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedB88320 ^ ((c >> 1) & 0x7fffffff);\n } else {\n c = (c >> 1) & 0x7fffffff;\n }\n }\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = (crc >>> 8) ^ b;\n }\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n\n data.set(body, p);\n p += body.length;\n\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return (b << 16) | a;\n }\n\n /**\n * @param {Uint8Array} literals The input data.\n * @returns {Uint8Array} The DEFLATE-compressed data stream in zlib format.\n * This is the required format for compressed streams in the PNG format:\n * http://www.libpng.org/pub/png/spec/1.2/PNG-Compression.html\n */\n function deflateSync(literals) {\n if (!isNodeJS()) {\n // zlib is certainly not available outside of Node.js. We can either use\n // the pako library for client-side DEFLATE compression, or use the canvas\n // API of the browser to obtain a more optimal PNG file.\n return deflateSyncUncompressed(literals);\n }\n try {\n // NOTE: This implementation is far from perfect, but already way better\n // than not applying any compression.\n //\n // A better algorithm will try to choose a good predictor/filter and\n // then choose a suitable zlib compression strategy (e.g. 3,Z_RLE).\n //\n // Node v0.11.12 zlib.deflateSync is introduced (and returns a Buffer).\n // Node v3.0.0 Buffer inherits from Uint8Array.\n // Node v8.0.0 zlib.deflateSync accepts Uint8Array as input.\n let input;\n // eslint-disable-next-line no-undef\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n // eslint-disable-next-line no-undef\n input = new Buffer(literals);\n }\n const output = __non_webpack_require__('zlib')\n .deflateSync(input, { level: 9, });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n warn('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n // An implementation of DEFLATE with compression level 0 (Z_NO_COMPRESSION).\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xFFFF;\n\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78; // compression method and flags\n idat[pi++] = 0x9c; // flags\n\n let pos = 0;\n while (len > maxBlockLength) {\n // writing non-final DEFLATE blocks type 0 and length of 65535\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n // writing non-final DEFLATE blocks type 0\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = (~len & 0xffff) & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n\n const adler = adler32(literals, 0, literals.length); // checksum\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = (width + 7) >> 3;\n break;\n case ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error('invalid format');\n }\n\n // prefix every row with predictor 0\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0, offsetBytes = 0;\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0; // no prediction\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize),\n offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === ImageKind.GRAYSCALE_1BPP && isMask) {\n // inverting for image masks\n offsetLiterals = 0;\n for (let y = 0; y < height; y++) {\n offsetLiterals++; // skipping predictor\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xFF;\n }\n }\n }\n\n const ihdr = new Uint8Array([\n width >> 24 & 0xff,\n width >> 16 & 0xff,\n width >> 8 & 0xff,\n width & 0xff,\n height >> 24 & 0xff,\n height >> 16 & 0xff,\n height >> 8 & 0xff,\n height & 0xff,\n bitDepth, // bit depth\n colorType, // color type\n 0x00, // compression method\n 0x00, // filter method\n 0x00 // interlace method\n ]);\n const idat = deflateSync(literals);\n\n // PNG consists of: header, IHDR+data, IDAT+data, and IEND.\n const pngLength = PNG_HEADER.length + (CHUNK_WRAPPER_SIZE * 3) +\n ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk('IHDR', ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk('IDATA', idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk('IEND', new Uint8Array(0), data, offset);\n\n return createObjectURL(data, 'image/png', forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = (imgData.kind === undefined ?\n ImageKind.GRAYSCALE_1BPP : imgData.kind);\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n})();\n\nclass SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n\n this.textMatrix = IDENTITY_MATRIX;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n\n // Current point (in user coordinates)\n this.x = 0;\n this.y = 0;\n\n // Start of text line (in text coordinates)\n this.lineX = 0;\n this.lineY = 0;\n\n // Character and word spacing\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n\n // Default foreground and background colors\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = '#000000';\n\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = '';\n this.lineCap = '';\n this.miterLimit = 0;\n\n this.dashArray = [];\n this.dashPhase = 0;\n\n this.dependencies = [];\n\n // Clipping\n this.activeClipUrl = null;\n this.clipGroup = null;\n\n this.maskId = '';\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n}\n\n// eslint-disable-next-line no-inner-declarations\nfunction opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === 'save') {\n opTree.push({ 'fnId': 92, 'fn': 'group', 'items': [], });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === 'restore') {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n return opTree;\n}\n\n/**\n * Format a float number as a string.\n *\n * @param value {number} - The float number to format.\n * @returns {string}\n */\n// eslint-disable-next-line no-inner-declarations\nfunction pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n const s = value.toFixed(10);\n let i = s.length - 1;\n if (s[i] !== '0') {\n return s;\n }\n\n // Remove trailing zeros.\n do {\n i--;\n } while (s[i] === '0');\n return s.substring(0, s[i] === '.' ? i : i + 1);\n}\n\n/**\n * Format a transform matrix as a string. The standard rotation, scale and\n * translation matrices are replaced by their shorter forms, and for\n * identity matrices an empty string is returned to save memory.\n *\n * @param m {Array} - The transform matrix to format.\n * @returns {string}\n */\n// eslint-disable-next-line no-inner-declarations\nfunction pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return '';\n }\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` +\n `${pf(m[5])})`;\n}\n\n// The counts below are relevant for all pages, so they have to be global\n// instead of being members of `SVGGraphics` (which is recreated for\n// each page).\nlet clipCount = 0;\nlet maskCount = 0;\nlet shadingCount = 0;\n\nSVGGraphics = class SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema) {\n this.svgFactory = new DOMSVGFactory();\n\n this.current = new SVGExtraState();\n this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n\n // In `src/shared/util.js` the operator names are mapped to IDs.\n // The list below represents the reverse of that, i.e., it maps IDs\n // to operator names.\n this._operatorIdMapping = [];\n for (const op in OPS) {\n this._operatorIdMapping[OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith('g_') ? this.commonObjs : this.objs;\n const promise = new Promise((resolve) => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = Util.transform(this.transformMatrix,\n transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n 'fnId': fnId,\n 'fn': operatorIdMapping[fnId],\n 'args': argsArray[i],\n });\n }\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case OPS.beginText:\n this.beginText();\n break;\n case OPS.dependency:\n // Handled in `loadDependencies`, so no warning should be shown.\n break;\n case OPS.setLeading:\n this.setLeading(args);\n break;\n case OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case OPS.setFont:\n this.setFont(args);\n break;\n case OPS.showText:\n this.showText(args[0]);\n break;\n case OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case OPS.endText:\n this.endText();\n break;\n case OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2],\n args[3], args[4], args[5]);\n break;\n case OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n case OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n case OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n case OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n case OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n case OPS.setGState:\n this.setGState(args[0]);\n break;\n case OPS.fill:\n this.fill();\n break;\n case OPS.eoFill:\n this.eoFill();\n break;\n case OPS.stroke:\n this.stroke();\n break;\n case OPS.fillStroke:\n this.fillStroke();\n break;\n case OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case OPS.clip:\n this.clip('nonzero');\n break;\n case OPS.eoClip:\n this.clip('evenodd');\n break;\n case OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case OPS.paintJpegXObject:\n this.paintJpegXObject(args[0], args[1], args[2]);\n break;\n case OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case OPS.closePath:\n this.closePath();\n break;\n case OPS.closeStroke:\n this.closeStroke();\n break;\n case OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case OPS.nextLine:\n this.nextLine();\n break;\n case OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTreeElement.items);\n break;\n default:\n warn(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.sqrt(a * a + b * b);\n\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size',\n `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n\n current.txtElement = this.svgFactory.createElement('svg:text');\n current.txtElement.appendChild(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = IDENTITY_MATRIX;\n current.lineMatrix = IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.txtElement = this.svgFactory.createElement('svg:text');\n current.txtgrp = this.svgFactory.createElement('svg:g');\n current.xcoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size',\n `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n let x = 0;\n for (const glyph of glyphs) {\n if (glyph === null) {\n // Word break\n x += fontDirection * wordSpacing;\n continue;\n } else if (isNum(glyph)) {\n x += -glyph * fontSize * 0.001;\n continue;\n }\n\n const width = glyph.width;\n const character = glyph.fontChar;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const charWidth = width * widthAdvanceScale + spacing * fontDirection;\n\n if (!glyph.isInFont && !font.missingFile) {\n x += charWidth;\n // TODO: To assist with text selection, we should replace the missing\n // character with a space character if charWidth is not zero.\n // But we cannot just do \"character = ' '\", because the ' ' character\n // might actually map to a different glyph.\n continue;\n }\n current.xcoords.push(current.x + x * textHScale);\n current.tspan.textContent += character;\n x += charWidth;\n }\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, 'x',\n current.xcoords.map(pf).join(' '));\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size',\n `${pf(current.fontSize)}px`);\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode &\n TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, 'fill', current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n }\n } else if (current.textRenderingMode === TextRenderingMode.ADD_TO_PATH) {\n // Workaround for Firefox: We must set fill=\"transparent\" because\n // fill=\"none\" would generate an empty clipping path.\n current.tspan.setAttributeNS(null, 'fill', 'transparent');\n } else {\n current.tspan.setAttributeNS(null, 'fill', 'none');\n }\n\n if (fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n // Include the text rise in the text matrix since the `pm` function\n // creates the SVG element's `translate` entry (work on a copy to avoid\n // altering the original text matrix).\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, 'transform',\n `${pm(textMatrix)} scale(1, -1)`);\n current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement('svg:style');\n this.cssStyle.setAttributeNS(null, 'type', 'text/css');\n this.defs.appendChild(this.cssStyle);\n }\n\n const url = createObjectURL(fontObj.data, fontObj.mimetype,\n this.forceDataSchema);\n this.cssStyle.textContent +=\n `@font-face { font-family: \"${fontObj.loadedName}\";` +\n ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && fontObj.data &&\n !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = (fontObj.fontMatrix ?\n fontObj.fontMatrix : FONT_IDENTITY_MATRIX);\n\n const bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') :\n (fontObj.bold ? 'bold' : 'normal');\n const italic = fontObj.italic ? 'italic' : 'normal';\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.xcoords = [];\n }\n\n endText() {\n const current = this.current;\n if ((current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG) &&\n current.txtElement && current.txtElement.hasChildNodes()) {\n // If no glyphs are shown (i.e. no child nodes), no clipping occurs.\n current.element = current.txtElement;\n this.clip('nonzero');\n this.endPath();\n }\n }\n\n // Path properties\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = Util.makeCssRgb(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = Util.makeCssRgb(r, g, b);\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.xcoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n const inv = Util.inverseTransform(this.transformMatrix);\n const bl = Util.applyTransform([0, 0], inv);\n const br = Util.applyTransform([0, height], inv);\n const ul = Util.applyTransform([width, 0], inv);\n const ur = Util.applyTransform([width, height], inv);\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n const rect = this.svgFactory.createElement('svg:rect');\n rect.setAttributeNS(null, 'x', x0);\n rect.setAttributeNS(null, 'y', y0);\n rect.setAttributeNS(null, 'width', x1 - x0);\n rect.setAttributeNS(null, 'height', y1 - y0);\n rect.setAttributeNS(null, 'fill', this._makeShadingPattern(args));\n this._ensureTransformGroup().appendChild(rect);\n }\n\n /**\n * @private\n */\n _makeColorN_Pattern(args) {\n if (args[0] === 'TilingPattern') {\n return this._makeTilingPattern(args);\n }\n return this._makeShadingPattern(args);\n }\n\n /**\n * @private\n */\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n\n const tilingId = `shading${shadingCount++}`;\n const [tx0, ty0] = Util.applyTransform([x0, y0], matrix);\n const [tx1, ty1] = Util.applyTransform([x1, y1], matrix);\n const [xscale, yscale] = Util.singularValueDecompose2dScale(matrix);\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n\n const tiling = this.svgFactory.createElement('svg:pattern');\n tiling.setAttributeNS(null, 'id', tilingId);\n tiling.setAttributeNS(null, 'patternUnits', 'userSpaceOnUse');\n tiling.setAttributeNS(null, 'width', txstep);\n tiling.setAttributeNS(null, 'height', tystep);\n tiling.setAttributeNS(null, 'x', `${tx0}`);\n tiling.setAttributeNS(null, 'y', `${ty0}`);\n\n // Save current state.\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n if (paintType === 2) {\n const cssColor = Util.makeCssRgb(...color);\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n this.executeOpTree(this.convertOpList(operatorList));\n\n // Restore saved state.\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\n\n /**\n * @private\n */\n _makeShadingPattern(args) {\n switch (args[0]) {\n case 'RadialAxial':\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[2];\n let gradient;\n\n switch (args[1]) {\n case 'axial':\n const point0 = args[3];\n const point1 = args[4];\n gradient = this.svgFactory.createElement('svg:linearGradient');\n gradient.setAttributeNS(null, 'id', shadingId);\n gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse');\n gradient.setAttributeNS(null, 'x1', point0[0]);\n gradient.setAttributeNS(null, 'y1', point0[1]);\n gradient.setAttributeNS(null, 'x2', point1[0]);\n gradient.setAttributeNS(null, 'y2', point1[1]);\n break;\n case 'radial':\n const focalPoint = args[3];\n const circlePoint = args[4];\n const focalRadius = args[5];\n const circleRadius = args[6];\n gradient = this.svgFactory.createElement('svg:radialGradient');\n gradient.setAttributeNS(null, 'id', shadingId);\n gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse');\n gradient.setAttributeNS(null, 'cx', circlePoint[0]);\n gradient.setAttributeNS(null, 'cy', circlePoint[1]);\n gradient.setAttributeNS(null, 'r', circleRadius);\n gradient.setAttributeNS(null, 'fx', focalPoint[0]);\n gradient.setAttributeNS(null, 'fy', focalPoint[1]);\n gradient.setAttributeNS(null, 'fr', focalRadius);\n break;\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement('svg:stop');\n stop.setAttributeNS(null, 'offset', colorStop[0]);\n stop.setAttributeNS(null, 'stop-color', colorStop[1]);\n gradient.appendChild(stop);\n }\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n case 'Mesh':\n warn('Unimplemented pattern Mesh');\n return null;\n case 'Dummy':\n return 'hotpink';\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x, y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh),\n 'L', pf(x), pf(yh), 'Z');\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push('M', pf(x), pf(y));\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push('L', pf(x), pf(y));\n break;\n case OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]),\n pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n case OPS.curveTo2:\n x = args[j + 2];\n y = args[j + 3];\n d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]),\n pf(args[j + 2]), pf(args[j + 3]));\n j += 4;\n break;\n case OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y),\n pf(x), pf(y));\n j += 4;\n break;\n case OPS.closePath:\n d.push('Z');\n break;\n }\n }\n\n d = d.join(' ');\n\n if (current.path && ops.length > 0 && ops[0] !== OPS.rectangle &&\n ops[0] !== OPS.moveTo) {\n // If a path does not start with an OPS.rectangle or OPS.moveTo, it has\n // probably been divided into two OPS.constructPath operators by\n // OperatorList. Append the commands to the previous path element.\n d = current.path.getAttributeNS(null, 'd') + d;\n } else {\n current.path = this.svgFactory.createElement('svg:path');\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, 'd', d);\n current.path.setAttributeNS(null, 'fill', 'none');\n\n // Saving a reference in current.element so that it can be addressed\n // in 'fill' and 'stroke'\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n\n // Painting operators end a path.\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n // Add the current path to a clipping path.\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement('svg:clipPath');\n clipPath.setAttributeNS(null, 'id', clipId);\n clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n\n // A deep clone is needed when text is used as a clipping path.\n const clipElement = current.element.cloneNode(true);\n if (this.pendingClip === 'evenodd') {\n clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');\n } else {\n clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');\n }\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n // The previous clipping group content can go out of order -- resetting\n // cached clipGroups.\n current.clipGroup = null;\n this.extraStack.forEach(function(prev) {\n prev.clipGroup = null;\n });\n // Intersect with the previous clipping path.\n clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);\n }\n current.activeClipUrl = `url(#${clipId})`;\n\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, 'd')}Z`;\n current.path.setAttributeNS(null, 'd', d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setFlatness(flatness) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n case 'LC':\n this.setLineCap(value);\n break;\n case 'LJ':\n this.setLineJoin(value);\n break;\n case 'ML':\n this.setMiterLimit(value);\n break;\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n case 'RI':\n this.setRenderingIntent(value);\n break;\n case 'FL':\n this.setFlatness(value);\n break;\n case 'Font':\n this.setFont(value);\n break;\n case 'CA':\n this.setStrokeAlpha(value);\n break;\n case 'ca':\n this.setFillAlpha(value);\n break;\n default:\n warn(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, 'fill', current.fillColor);\n current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, 'fill', 'none');\n this.endPath();\n }\n }\n\n /**\n * @private\n */\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function(value) {\n return lineWidthScale * value;\n });\n }\n element.setAttributeNS(null, 'stroke', current.strokeColor);\n element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha);\n element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit));\n element.setAttributeNS(null, 'stroke-linecap', current.lineCap);\n element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin);\n element.setAttributeNS(null, 'stroke-width',\n pf(lineWidthScale * current.lineWidth) + 'px');\n element.setAttributeNS(null, 'stroke-dasharray',\n dashArray.map(pf).join(' '));\n element.setAttributeNS(null, 'stroke-dashoffset',\n pf(lineWidthScale * current.dashPhase) + 'px');\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n this.fill();\n }\n\n fillStroke() {\n // Order is important since stroke wants fill to be none.\n // First stroke, then if fill needed, it will be overwritten.\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement('svg:rect');\n rect.setAttributeNS(null, 'x', '0');\n rect.setAttributeNS(null, 'y', '0');\n rect.setAttributeNS(null, 'width', '1px');\n rect.setAttributeNS(null, 'height', '1px');\n rect.setAttributeNS(null, 'fill', this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n paintJpegXObject(objId, w, h) {\n const imgObj = this.objs.get(objId);\n const imgEl = this.svgFactory.createElement('svg:image');\n imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);\n imgEl.setAttributeNS(null, 'width', pf(w));\n imgEl.setAttributeNS(null, 'height', pf(h));\n imgEl.setAttributeNS(null, 'x', '0');\n imgEl.setAttributeNS(null, 'y', pf(-h));\n imgEl.setAttributeNS(null, 'transform',\n `scale(${pf(1 / w)} ${pf(-1 / h)})`);\n\n this._ensureTransformGroup().appendChild(imgEl);\n }\n\n paintImageXObject(objId) {\n const imgData = this.objs.get(objId);\n if (!imgData) {\n warn(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement('svg:rect');\n cliprect.setAttributeNS(null, 'x', '0');\n cliprect.setAttributeNS(null, 'y', '0');\n cliprect.setAttributeNS(null, 'width', pf(width));\n cliprect.setAttributeNS(null, 'height', pf(height));\n this.current.element = cliprect;\n this.clip('nonzero');\n\n const imgEl = this.svgFactory.createElement('svg:image');\n imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc);\n imgEl.setAttributeNS(null, 'x', '0');\n imgEl.setAttributeNS(null, 'y', pf(-height));\n imgEl.setAttributeNS(null, 'width', pf(width) + 'px');\n imgEl.setAttributeNS(null, 'height', pf(height) + 'px');\n imgEl.setAttributeNS(null, 'transform',\n `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement('svg:mask');\n mask.setAttributeNS(null, 'id', current.maskId);\n\n const rect = this.svgFactory.createElement('svg:rect');\n rect.setAttributeNS(null, 'x', '0');\n rect.setAttributeNS(null, 'y', '0');\n rect.setAttributeNS(null, 'width', pf(width));\n rect.setAttributeNS(null, 'height', pf(height));\n rect.setAttributeNS(null, 'fill', fillColor);\n rect.setAttributeNS(null, 'mask', `url(#${current.maskId})`);\n\n this.defs.appendChild(mask);\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2],\n matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n\n const cliprect = this.svgFactory.createElement('svg:rect');\n cliprect.setAttributeNS(null, 'x', bbox[0]);\n cliprect.setAttributeNS(null, 'y', bbox[1]);\n cliprect.setAttributeNS(null, 'width', pf(width));\n cliprect.setAttributeNS(null, 'height', pf(height));\n this.current.element = cliprect;\n this.clip('nonzero');\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n /**\n * @private\n */\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n\n // Create the definitions element.\n const definitions = this.svgFactory.createElement('svg:defs');\n svg.appendChild(definitions);\n this.defs = definitions;\n\n // Create the root group element, which acts a container for all other\n // groups and applies the viewport transform.\n const rootGroup = this.svgFactory.createElement('svg:g');\n rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));\n svg.appendChild(rootGroup);\n\n // For the construction of the SVG image we are only interested in the\n // root group, so we expose it as the entry point of the SVG image for\n // the other code in this class.\n this.svg = rootGroup;\n\n return svg;\n }\n\n /**\n * @private\n */\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement('svg:g');\n clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n }\n\n /**\n * @private\n */\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement('svg:g');\n this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n return this.tgrp;\n }\n};\n\n}\n\nexport {\n SVGGraphics,\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/* globals __non_webpack_require__ */\n\nlet fs = __non_webpack_require__('fs');\nlet http = __non_webpack_require__('http');\nlet https = __non_webpack_require__('https');\nlet url = __non_webpack_require__('url');\n\nimport {\n AbortException, assert, createPromiseCapability, MissingPDFException\n} from '../shared/util';\nimport {\n extractFilenameFromHeader, validateRangeRequestCapabilities\n} from './network_utils';\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n let parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === 'file:' || parsedUrl.host) {\n return parsedUrl;\n }\n // Prepending 'file:///' to Windows absolute path.\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n // Changes protocol to 'file:' if url refers to filesystem.\n if (!parsedUrl.host) {\n parsedUrl.protocol = 'file:';\n }\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === 'http:' ||\n this.url.protocol === 'https:';\n // Check if url refers to filesystem.\n this.isFsUrl = this.url.protocol === 'file:';\n this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return (this._fullRequestReader ? this._fullRequestReader._loaded : 0);\n }\n\n getFullReader() {\n assert(!this._fullRequestReader);\n this._fullRequestReader = this.isFsUrl ?\n new PDFNodeStreamFsFullReader(this) :\n new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n let rangeReader = this.isFsUrl ?\n new PDFNodeStreamFsRangeReader(this, start, end) :\n new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n let readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function(reader) {\n reader.cancel(reason);\n });\n }\n}\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n let source = stream.source;\n this._contentLength = source.length; // optional\n this._loaded = 0;\n this._filename = null;\n\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n\n this._readableStream = null;\n this._readCapability = createPromiseCapability();\n this._headersCapability = createPromiseCapability();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return { value: undefined, done: true, };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n\n let chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = createPromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength,\n });\n }\n // Ensure that `read()` method returns ArrayBuffer.\n let buffer = new Uint8Array(chunk).buffer;\n return { value: buffer, done: false, };\n }\n\n cancel(reason) {\n // Call `this._error()` method when cancel is called\n // before _readableStream is set.\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on('readable', () => {\n this._readCapability.resolve();\n });\n\n readableStream.on('end', () => {\n // Destroy readable to minimize resource usage.\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n\n readableStream.on('error', (reason) => {\n this._error(reason);\n });\n\n // We need to stop reading when range is supported and streaming is\n // disabled.\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new AbortException('streaming is disabled'));\n }\n\n // Destroy ReadableStream if already in errored state.\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = createPromiseCapability();\n let source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return { value: undefined, done: true, };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n\n let chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = createPromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded, });\n }\n // Ensure that `read()` method returns ArrayBuffer.\n let buffer = new Uint8Array(chunk).buffer;\n return { value: buffer, done: false, };\n }\n\n cancel(reason) {\n // Call `this._error()` method when cancel is called\n // before _readableStream is set.\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on('readable', () => {\n this._readCapability.resolve();\n });\n\n readableStream.on('end', () => {\n // Destroy readableStream to minimize resource usage.\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n\n readableStream.on('error', (reason) => {\n this._error(reason);\n });\n\n // Destroy readableStream if already in errored state.\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\n\nfunction createRequestOptions(url, headers) {\n return {\n protocol: url.protocol,\n auth: url.auth,\n host: url.hostname,\n port: url.port,\n path: url.path,\n method: 'GET',\n headers,\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n let handleResponse = (response) => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n\n const getResponseHeader = (name) => {\n // Make sure that headers name are in lower case, as mentioned\n // here: https://nodejs.org/api/http.html#http_message_headers.\n return this._readableStream.headers[name.toLowerCase()];\n };\n let { allowRangeRequests, suggestedLength, } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n this._isRangeSupported = allowRangeRequests;\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n };\n\n this._request = null;\n if (this._url.protocol === 'http:') {\n this._request = http.request(\n createRequestOptions(this._url, stream.httpHeaders),\n handleResponse);\n } else {\n this._request = https.request(\n createRequestOptions(this._url, stream.httpHeaders),\n handleResponse);\n }\n\n this._request.on('error', (reason) => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n // Note: `request.end(data)` is used to write `data` to request body\n // and notify end of request. But one should always call `request.end()`\n // even if there is no data to write -- (to notify the end of request).\n this._request.end();\n }\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n\n this._httpHeaders = {};\n for (let property in stream.httpHeaders) {\n let value = stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders['Range'] = `bytes=${start}-${end - 1}`;\n\n let handleResponse = (response) => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n\n this._request = null;\n if (this._url.protocol === 'http:') {\n this._request = http.request(\n createRequestOptions(this._url, this._httpHeaders),\n handleResponse);\n } else {\n this._request = https.request(\n createRequestOptions(this._url, this._httpHeaders),\n handleResponse);\n }\n\n this._request.on('error', (reason) => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n let path = decodeURIComponent(this._url.path);\n\n // Remove the extra slash to get right path from url like `file:///C:/`\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, '');\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === 'ENOENT') {\n error = new MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n // Setting right content length.\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n\n let path = decodeURIComponent(this._url.path);\n\n // Remove the extra slash to get right path from url like `file:///C:/`\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, '');\n }\n\n this._setReadableStream(\n fs.createReadStream(path, { start, end: end - 1, }));\n }\n}\n\nexport {\n PDFNodeStream,\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 {\n assert, MissingPDFException, UnexpectedResponseException\n} from '../shared/util';\nimport {\n getFilenameFromContentDispositionHeader\n} from './content_disposition';\n\nfunction validateRangeRequestCapabilities({ getResponseHeader, isHttp,\n rangeChunkSize, disableRange, }) {\n assert(rangeChunkSize > 0, 'Range chunk size must be larger than zero');\n let returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined,\n };\n\n let length = parseInt(getResponseHeader('Content-Length'), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n // The file size is smaller than the size of two chunks, so it does not\n // make any sense to abort the request and retry with a range request.\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader('Accept-Ranges') !== 'bytes') {\n return returnValues;\n }\n\n let contentEncoding = getResponseHeader('Content-Encoding') || 'identity';\n if (contentEncoding !== 'identity') {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader('Content-Disposition');\n if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (filename.includes('%')) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && /^file:/.test(url)) {\n return new MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new UnexpectedResponseException(\n 'Unexpected server response (' + status +\n ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\nexport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n validateResponseStatus,\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\n// This getFilenameFromContentDispositionHeader function is adapted from\n// https://github.com/Rob--W/open-in-browser/blob/7e2e35a38b8b4e981b11da7b2f01df0149049e92/extension/content-disposition.js\n// with the following changes:\n// - Modified to conform to PDF.js's coding style.\n// - Support UTF-8 decoding when TextDecoder is unsupported.\n// - Move return to the end of the function to prevent Babel from dropping the\n// function declarations.\n\n/**\n * Extract file name from the Content-Disposition HTTP response header.\n *\n * @param {string} contentDisposition\n * @return {string} Filename, if found in the Content-Disposition header.\n */\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n\n // filename*=ext-value (\"ext-value\" from RFC 5987, referenced by RFC 6266).\n let tmp = toParamRegExp('filename\\\\*', 'i').exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n // Continuations (RFC 2231 section 3, referenced by RFC 5987 section 3.1).\n // filename*n*=part\n // filename*n=part\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n // RFC 2047, section\n let filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n // filename=value (RFC 5987, section 4.1).\n tmp = toParamRegExp('filename', 'i').exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n // After this line there are only function declarations. We cannot put\n // \"return\" here for readability because babel would then drop the function\n // declarations...\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\n '(?:^|;)\\\\s*' + attributePattern + '\\\\s*=\\\\s*' +\n // Captures: value = token | quoted-string\n // (RFC 2616, section 3.6 and referenced by RFC 6266 4.1)\n '(' +\n '[^\";\\\\s][^;\\\\s]*' +\n '|' +\n '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' +\n ')', flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n let decoder = new TextDecoder(encoding, { fatal: true, });\n let bytes = Array.from(value, function(ch) {\n return ch.charCodeAt(0) & 0xFF;\n });\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n // TextDecoder constructor threw - unrecognized encoding.\n // Or TextDecoder API is not available (in IE / Edge).\n if (/^utf-?8$/i.test(encoding)) {\n // UTF-8 is commonly used, try to support it in another way:\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {\n }\n }\n }\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n // Maybe multi-byte UTF-8.\n value = textdecode('utf-8', value);\n if (needsEncodingFixup) {\n // Try iso-8859-1 encoding.\n value = textdecode('iso-8859-1', value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDisposition) {\n let matches = [], match;\n // Iterate over all filename*n= and filename*n*= with n being an integer\n // of at least zero. Any non-zero number must not start with '0'.\n let iter = toParamRegExp('filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)', 'ig');\n while ((match = iter.exec(contentDisposition)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n // Ignore anything after the invalid second filename*0.\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n let parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n // Numbers must be consecutive. Truncate when there is a hole.\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join('');\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n let parts = value.slice(1).split('\\\\\"');\n // Find the first unescaped \" and terminate there.\n for (let i = 0; i < parts.length; ++i) {\n let quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1; // Truncates and stop the iteration.\n }\n parts[i] = parts[i].replace(/\\\\(.)/g, '$1');\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n // Decodes \"ext-value\" from RFC 5987.\n let encodingend = extvalue.indexOf('\\'');\n if (encodingend === -1) {\n // Some servers send \"filename*=\" without encoding 'language' prefix,\n // e.g. in https://github.com/Rob--W/open-in-browser/issues/26\n // Let's accept the value like Firefox (57) (Chrome 62 rejects it).\n return extvalue;\n }\n let encoding = extvalue.slice(0, encodingend);\n let langvalue = extvalue.slice(encodingend + 1);\n // Ignore language (RFC 5987 section 3.2.1, and RFC 6266 section 4.1 ).\n let value = langvalue.replace(/^[^']*'/, '');\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n // RFC 2047-decode the result. Firefox tried to drop support for it, but\n // backed out because some servers use it - https://bugzil.la/875615\n // Firefox's condition for decoding is here: https://searchfox.org/mozilla-central/rev/4a590a5a15e35d88a3b23dd6ac3c471cf85b04a8/netwerk/mime/nsMIMEHeaderParamImpl.cpp#742-748\n\n // We are more strict and only recognize RFC 2047-encoding if the value\n // starts with \"=?\", since then it is likely that the full value is\n // RFC 2047-encoded.\n\n // Firefox also decodes words even where RFC 2047 section 5 states:\n // \"An 'encoded-word' MUST NOT appear within a 'quoted-string'.\"\n if (!value.startsWith('=?') || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n // RFC 2047, section 2.4\n // encoded-word = \"=?\" charset \"?\" encoding \"?\" encoded-text \"?=\"\n // charset = token (but let's restrict to characters that denote a\n // possibly valid encoding).\n // encoding = q or b\n // encoded-text = any printable ASCII character other than ? or space.\n // ... but Firefox permits ? and space.\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g,\n function(_, charset, encoding, text) {\n if (encoding === 'q' || encoding === 'Q') {\n // RFC 2047 section 4.2.\n text = text.replace(/_/g, ' ');\n text = text.replace(/=([0-9a-fA-F]{2})/g, function(_, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n } // else encoding is b or B - base64 (RFC 2047 section 4.1)\n try {\n text = atob(text);\n } catch (e) {\n }\n return textdecode(charset, text);\n });\n }\n\n return '';\n}\n\nexport {\n getFilenameFromContentDispositionHeader,\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/* eslint no-var: error */\n\nimport { assert, createPromiseCapability, stringToBytes } from '../shared/util';\nimport {\n createResponseStatusError, extractFilenameFromHeader,\n validateRangeRequestCapabilities\n} from './network_utils';\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('FIREFOX || MOZCENTRAL')) {\n throw new Error('Module \"./network\" shall not ' +\n 'be used with FIREFOX or MOZCENTRAL build.');\n}\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== 'string') {\n return data;\n }\n const array = stringToBytes(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args) {\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = (this.isHttp && args.httpHeaders) || {};\n this.withCredentials = args.withCredentials || false;\n this.getXhr = args.getXhr ||\n function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end,\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr,\n };\n\n xhr.open('GET', this.url);\n xhr.withCredentials = this.withCredentials;\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && 'begin' in args && 'end' in args) {\n xhr.setRequestHeader('Range', `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = 'arraybuffer';\n\n if (args.onError) {\n xhr.onerror = function(evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n\n xhr.send(null);\n\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n // Maybe abortRequest was called...\n return;\n }\n\n if (pendingRequest.onProgress) {\n pendingRequest.onProgress(evt);\n }\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n // Maybe abortRequest was called...\n return;\n }\n\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n // The XHR request might have been aborted in onHeadersReceived()\n // callback, in which case we should abort request.\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n // Success status == 0 can be on ftp, file and other protocols.\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n\n // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2:\n // \"A server MAY ignore the Range header\". This means it's possible to\n // get a 200 rather than a 206 response from a range request.\n const ok_response_on_range_request =\n xhrStatus === OK_RESPONSE &&\n pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request &&\n xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader('Content-Range');\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk,\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk,\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n }\n\n hasPendingRequests() {\n for (const xhrId in this.pendingRequests) {\n return true;\n }\n return false;\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortAllRequests() {\n for (const xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\n\n/** @implements {IPDFStream} */\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials,\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n assert(!this._fullRequestReader);\n this._fullRequestReader =\n new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager,\n begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n const readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function(reader) {\n reader.cancel(reason);\n });\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this),\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = createPromiseCapability();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length; // Optional\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = (name) => {\n return fullRequestXhr.getResponseHeader(name);\n };\n const { allowRangeRequests, suggestedLength, } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n\n if (this._isRangeSupported) {\n // NOTE: by cancelling the full request, and then issuing range\n // requests, there will be an issue for sites where you can only\n // request the pdf once. However, if this is the case, then the\n // server should not be returning that it can support range requests.\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(args) {\n if (args) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: args.chunk, done: false, });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n this._requests.forEach(function(requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n }\n\n _onError(status) {\n const url = this._url;\n const exception = createResponseStatusError(status, url);\n this._storedError = exception;\n this._headersReceivedCapability.reject(exception);\n this._requests.forEach(function(requestCapability) {\n requestCapability.reject(exception);\n });\n this._requests = [];\n this._cachedChunks = [];\n }\n\n _onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength,\n });\n }\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return { value: chunk, done: false, };\n }\n if (this._done) {\n return { value: undefined, done: true, };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this),\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false, });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n this._requests.forEach(function(requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n this._close();\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded,\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return { value: chunk, done: false, };\n }\n if (this._done) {\n return { value: undefined, done: true, };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\nexport {\n PDFNetworkStream,\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/* eslint no-var: error */\n\nimport {\n AbortException, assert, createPromiseCapability\n} from '../shared/util';\nimport {\n createResponseStatusError, extractFilenameFromHeader,\n validateRangeRequestCapabilities, validateResponseStatus\n} from './network_utils';\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: 'GET',\n headers,\n signal: abortController && abortController.signal,\n mode: 'cors',\n credentials: withCredentials ? 'include' : 'same-origin',\n redirect: 'follow',\n };\n}\n\n/** @implements {IPDFStream} */\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return (this._fullRequestReader ? this._fullRequestReader._loaded : 0);\n }\n\n getFullReader() {\n assert(!this._fullRequestReader);\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n const readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function(reader) {\n reader.cancel(reason);\n });\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = createPromiseCapability();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n\n this._headers = new Headers();\n for (const property in this._stream.httpHeaders) {\n const value = this._stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._headers.append(property, value);\n }\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials,\n this._abortController)).then((response) => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n\n const getResponseHeader = (name) => {\n return response.headers.get(name);\n };\n const { allowRangeRequests, suggestedLength, } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n this._isRangeSupported = allowRangeRequests;\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n\n // We need to stop reading when range is supported and streaming is\n // disabled.\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException('Streaming is disabled.'));\n }\n }).catch(this._headersCapability.reject);\n\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const { value, done, } = await this._reader.read();\n if (done) {\n return { value, done, };\n }\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength,\n });\n }\n const buffer = new Uint8Array(value).buffer;\n return { value: buffer, done: false, };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = createPromiseCapability();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n\n this._headers = new Headers();\n for (const property in this._stream.httpHeaders) {\n const value = this._stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._headers.append(property, value);\n }\n this._headers.append('Range', `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials,\n this._abortController)).then((response) => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n });\n\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const { value, done, } = await this._reader.read();\n if (done) {\n return { value, done, };\n }\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded, });\n }\n const buffer = new Uint8Array(value).buffer;\n return { value: buffer, done: false, };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n}\n\nexport {\n PDFFetchStream,\n};\n"],"sourceRoot":""}
|