{"version":3,"mappings":"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","names":["ae","Tt","pn","HowlerGlobal","this","init","prototype","self","Howler","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","window","navigator","masterGain","noAudio","usingWebAudio","autoSuspend","ctx","autoUnlock","_setup","volume","vol","parseFloat","setupAudioContext","gain","setValueAtTime","currentTime","i","length","_webAudio","ids","_getSoundIds","j","sound","_soundById","_node","mute","muted","stop","unload","close","codecs","ext","replace","state","_autoSuspend","Audio","oncanplaythrough","e","_setupCodecs","audioTest","err","canPlayType","mpegTest","ua","userAgent","checkOpera","match","isOldOpera","parseInt","split","checkSafari","indexOf","safariVersion","isOldSafari","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","createBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","load","_autoResume","source","createBufferSource","buffer","connect","destination","start","noteOn","resume","onended","disconnect","document","removeEventListener","_emit","addEventListener","_obtainHtml5Audio","pop","testPlay","play","Promise","then","catch","console","warn","audio","push","suspend","_sounds","_paused","_suspendTimer","clearTimeout","setTimeout","handleSuspension","_resumeAfterSuspend","Howl","o","src","error","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","pool","_preload","preload","_rate","rate","_sprite","sprite","_src","undefined","_xhr","method","xhr","headers","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","fn","_onfade","onfade","_onload","onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","event","action","url","str","exec","toLowerCase","location","protocol","slice","Sound","loadBuffer","internal","id","num","_ended","_id","_inactiveSound","soundId","_loadQueue","seek","Math","max","_seek","duration","timeout","abs","setParams","_start","_stop","node","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","Infinity","bind","once","_clearTimer","playHtml5","playbackRate","se","f","paused","loadedNoReadyState","ejecta","readyState","isCocoonJS","listener","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","isNaN","arguments","_clearSound","_interval","C","args","index","apply","u","fade","from","to","len","min","end","linearRampToValueAtTime","_startFadeInterval","isGroup","diff","steps","stepLen","lastTick","Date","now","_fadeTo","setInterval","tick","round","y","clearInterval","cancelScheduledValues","loopStart","loopEnd","playing","seekAndEmit","realTime","rateSeek","emitSeek","sounds","_errorFn","_loadFn","_endFn","splice","remCache","cache","on","off","events","isId","keys","Object","Array","isArray","msg","call","task","shift","ended","_drain","reset","limit","cnt","_panner","isIOS","vendor","test","howl","_parent","parent","create","createGain","createGainNode","_errorListener","_loadListener","_endListener","code","ceil","__default","loadSound","data","atob","dataView","Uint8Array","charCodeAt","decodeAudioData","XMLHttpRequest","open","responseType","forEach","key","setRequestHeader","status","response","onerror","safeXhrSend","send","arraybuffer","success","AudioContext","webkitAudioContext","iOS","platform","appVersion","version","safari","exports","global","_super","_pos","_orientation","stereo","pan","pos","x","z","positionX","setTargetAtTime","positionY","positionZ","setPosition","orientation","xUp","yUp","zUp","or","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","setupPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","d","type","createPanner","module","modules","installedModules","moduleId","l","__w_pdfjs_require__","m","c","name","getter","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","n","default","object","property","hasOwnProperty","p","s","pdfjsSharedUtil","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDisplayUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","setPDFNetworkStreamFactory","params","PDFFetchStream","PDFNetworkStream","isFetchSupported","isValidFetchUrl","build","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","renderTextLayer","AnnotationLayer","createPromiseCapability","PasswordResponses","InvalidPDFException","MissingPDFException","SVGGraphics","NativeImageDecoding","CMapCompressionType","PermissionFlag","UnexpectedResponseException","OPS","VerbosityLevel","UNSUPPORTED_FEATURES","createValidAbsoluteUrl","createObjectURL","removeNullCharacters","shadow","Util","ReadableStream","URL","RenderingCancelledException","getFilenameFromUrl","LinkTarget","addLinkAttributes","loadScript","PDFDateString","GlobalWorkerOptions","apiCompatibilityParams","arrayByteLength","arraysToBytes","arr","item","itemLength","resultLength","ii","stringToBytes","byteLength","set","assert","bytesToString","bytes","_typeof","String","fromCharCode","strBuf","chunkEnd","chunk","subarray","join","capability","isSettled","promise","resolve","reject","reason","getVerbosityLevel","verbosity","info","INFOS","log","isArrayBuffer","v","isArrayEqual","arr1","arr2","every","element","isBool","isEmptyObj","obj","isNum","isString","isSpace","ch","isSameOrigin","baseUrl","otherUrl","base","_url_polyfill","origin","other","absoluteUrl","_isValidProtocol","ex","isLittleEndian","buffer8","Uint32Array","isEvalSupported","Function","log2","readInt8","readUint16","offset","readUint32","NullCharactersRegExp","setVerbosityLevel","level","Number","isInteger","prop","configurable","writable","string32","stringToPDFString","PDFStringTranslateTable","charAt","stringToUTF8String","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","unreachable","_streams_polyfill","FormatError","UnknownErrorException","TextRenderingMode","StreamType","PasswordException","AbortException","ImageKind","FontType","AnnotationType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","iterator","constructor","NONE","DECODE","DISPLAY","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","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","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","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","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","BINARY","STREAM","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","unknown","forms","javaScript","smask","shadingPattern","font","NEED_PASSWORD","INCORRECT_PASSWORD","Error","cond","message","details","rgbBuf","makeCssRgb","g","b","m1","m2","applyTransform","applyInverseTransform","getAxialAlignedBoundingBox","p1","p2","p3","p4","inverseTransform","apply3dTransform","singularValueDecompose2dScale","transpose","a","first","second","sqrt","sy","normalizeRect","rect","intersect","rect1","rect2","orderedX","sort","compare","orderedY","result","digits","contentType","blob","Blob","b1","b2","b3","globalScope","_pdfjsCompatibilityChecked","hasDOM","btoa","chars","Buffer","toString","input","Element","remove","parentNode","removeChild","div","createElement","classList","add","contains","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","_len","tokens","_key","_i","_tokens","_len2","_key2","_i2","_tokens2","toggle","token","force","startsWith","endsWith","includes","assign","finally","WeakMap","WeakSet","codePointAt","fromCodePoint","padStart","padEnd","values","process","versions","nw","electron","$export","toLength","context","STARTS_WITH","$startsWith","P","F","searchString","that","search","core","hide","redefine","PROTOTYPE","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_PROTO","IS_BIND","B","target","S","expProto","U","W","R","__g","__e","dP","createDesc","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","TypeError","isObject","it","is","val","valueOf","bitmap","has","SRC","$toString","TO_STRING","TPL","inspectSource","safe","isFunction","Z","px","random","concat","SHARED","store","copyright","aFunction","toInteger","floor","isRegExp","defined","NAME","cof","MATCH","uid","_Symbol","USE_SYMBOL","KEY","re","ENDS_WITH","$endsWith","endPosition","INCLUDES","$includes","el","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","IObject","propertyIsEnumerable","UNSCOPABLES","ArrayProto","$at","iterated","_t","point","done","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","N","$anyNative","entries","descriptor","dPs","enumBugKeys","IE_PROTO","Empty","_createDict","iframeDocument","iframe","style","display","appendChild","contentWindow","write","lt","Properties","getKeys","defineProperties","$keys","arrayIndexOf","names","shared","documentElement","def","tag","stat","toObject","ObjectProto","isArrayIter","createProperty","getIterFn","iter","arrayLike","step","aLen","mapfn","mapping","iterFn","ret","return","$defineProperty","classof","getIteratorMethod","ARG","T","tryGet","callee","SAFE_CLOSING","riter","skipClosing","DESCRIPTORS","gOPS","pIE","$assign","A","K","k","getSymbols","isEnum","getOwnPropertySymbols","LN2","number","isFinite","$iterators","wks","TO_STRING_TAG","ArrayValues","DOMIterables","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","collections","explicit","Collection","addToUnscopables","_k","Arguments","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","speciesConstructor","microtask","newPromiseCapabilityModule","perform","promiseResolve","PROMISE","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","exited","handler","fail","domain","_h","onHandleUnhandled","enter","exit","ve","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","executor","onFulfilled","onRejected","$$reject","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","_exports","SPECIES","D","defer","channel","port","invoke","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","nextTick","port2","port1","onmessage","postMessage","importScripts","clear","un","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","standalone","createTextNode","observe","characterData","$$resolve","PromiseCapability","promiseCapability","onFinally","try","callbackfn","InternalMap","each","meta","weak","validate","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","ufstore","$WeakMap","getConstructor","NEED","_f","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","res","original","arg","META","setDesc","FREEZE","preventExtensions","setMeta","w","fastKey","onFreeze","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","_l","UncaughtFrozenStore","findUncaughtFrozen","entry","delete","ADDER","fails","$iterDetect","inheritIfRequired","common","IS_WEAK","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","setPrototypeOf","check","buggy","X","__proto__","gOPD","getOwnPropertyDescriptor","COLLECTION","of","cb","mapFn","nextItem","WEAK_SET","$fromCodePoint","RangeError","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$Symbol","$JSON","JSON","_stringify","stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","getOwnPropertyNames","FAILS_ON_PRIMITIVES","replacer","$replacer","symbols","windowNames","getWindowNames","hiddenKeys","$pad","WEBKIT_BUG","maxLength","repeat","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","count","$values","isEntries","isReadableStreamSupported","controller","_typeof2","argument","V","typeIsObject","createDataProperty","createArrayFromList","elements","ArrayBufferCopy","dest","destOffset","srcOffset","CreateIterResultObject","IsFiniteNonNegativeNumber","InvokeOrNoop","IsPropertyKey","Call","PromiseInvokeOrNoop","returnValueE","PromiseInvokeOrPerformFallback","argsF","methodE","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","ValidateAndNormalizeQueuingStrategy","size","stack","AssertionError","rethrowAssertionErrorRejection","_createClass","props","protoProps","staticProps","_require","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref","_ref$highWaterMark","_classCallCheck","_storedError","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","WritableStreamDefaultController","__startSteps","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","AcquireWritableStreamDefaultWriter","stream","WritableStreamDefaultWriter","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","__errorSteps","storedError","abortRequest","WritableStreamRejectCloseAndClosedPromiseIfNeeded","__abortSteps","_closedPromise_resolve","_closedPromise_reject","_closedPromiseState","defaultWriterClosedPromiseResolve","defaultWriterClosedPromiseReject","_closedPromise","backpressure","WritableStreamCloseQueuedOrInFlight","_readyPromise_resolve","_readyPromise_reject","_readyPromise","_readyPromiseState","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","_ownerWritableStream","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultControllerGetDesiredSize","WritableStreamDefaultWriterGetDesiredSize","WritableStreamDefaultControllerAdvanceQueueIfNeeded","WritableStreamDefaultControllerClose","defaultWriterClosedPromiseResetToRejected","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","releasedError","WritableStreamDefaultWriterEnsureClosedPromiseRejected","chunkSize","strategySize","_strategySize","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","WritableStreamDefaultControllerGetChunkSize","WritableStreamAddWriteRequest","WritableStreamDefaultControllerWrite","writeRecord","enqueueE","_controlledWritableStream","WritableStreamUpdateBackpressure","WritableStreamDefaultControllerGetBackpressure","_underlyingSink","_queueTotalSize","normalizedStrategy","_strategyHWM","IsWritableStreamDefaultController","_this","startResult","WritableStreamDealWithRejection","WritableStreamMarkCloseRequestInFlight","WritableStreamFinishInFlightClose","WritableStreamFinishInFlightCloseWithError","WritableStreamDefaultControllerProcessClose","WritableStreamMarkFirstWriteRequestInFlight","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamDefaultControllerProcessWrite","container","pair","_require4","_require5","underlyingSource","_reader","_disturbed","_readableStreamController","ReadableByteStreamController","ReadableStreamDefaultController","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","_ref3","options","readable","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","pipeTo","_ref4","preventClose","preventAbort","preventCancel","Boolean","reader","shuttingDown","currentWrite","isOrBecomesErrored","shutdownWithAction","shutdown","destClosed","oldCurrentWrite","waitForWritesToFinish","originalIsError","originalError","finalize","newError","De","doTheRest","isError","ReadableStreamReaderGenericRelease","gn","ReadableStreamDefaultReaderRead","_ref5","pipeLoop","branches","cloneForBranch2","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","branch1","_branch1","branch2","_branch2","_teeState","ReadableStreamDefaultControllerClose","value2","ReadableStreamDefaultControllerEnqueue","create_ReadableStreamTeePullFunction","_cloneForBranch2","cancel1","_stream","cancelResult","create_ReadableStreamTeeBranch1CancelFunction","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","ReadableStreamDefaultControllerError","ReadableStreamTee","ReadableStreamBYOBReader","ReadableStreamDefaultReader","IsReadableStreamBYOBReader","_readIntoRequests","IsReadableStreamDefaultReader","_readRequests","ReadableStreamClose","__cancelSteps","defaultReaderClosedPromiseResolve","defaultReaderClosedPromiseReject","IsReadableStreamDisturbed","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","_ownerReadableStream","readerLockException","ReadableStreamReaderGenericCancel","IsReadableByteStreamController","byobReaderBrandCheckException","view","ArrayBuffer","isView","_controlledReadableStream","elementSize","DataView","BYTES_PER_ELEMENT","pullIntoDescriptor","byteOffset","bytesFilled","ctor","readerType","_pendingPullIntos","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableByteStreamControllerHandleQueueDrain","_closeRequested","ReadableByteStreamControllerError","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerPullInto","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","__pullSteps","_underlyingSource","_pullAgain","_pulling","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","ReadableStreamAddReadRequest","ReadableStreamGetNumReadRequests","ReadableStreamDefaultControllerShouldCallPull","ReadableStreamFulfillReadRequest","ReadableStreamError","ReadableStreamBYOBRequest","_associatedReadableByteStreamController","_view","bytesWritten","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespondInternal","ReadableByteStreamControllerRespond","firstDescriptor","ReadableByteStreamControllerRespondWithNewView","underlyingByteSource","_underlyingByteSource","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","_autoAllocateChunkSize","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","transferredBuffer","ReadableStreamHasDefaultReader","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableStreamHasBYOBReader","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerEnqueue","viewE","bufferE","_byobRequest","ReadableByteStreamControllerGetDesiredSize","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableStreamFulfillReadIntoRequest","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","Kn","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerCommitPullIntoDescriptor","ReadableByteStreamControllerRespondInClosedState","remainderSize","remainder","ReadableByteStreamControllerRespondInReadableState","transformStream","readableStream","writableStream","TransformStream","_errored","_readableClosed","_readableController","TransformStreamErrorIfNeeded","TransformStreamSetBackpressure","TransformStreamErrorInternal","_writableDone","_writableController","_backpressureChangePromise","_backpressureChangePromise_resolve","resolution","transformStreamController","TransformStreamEnqueueToReadable","_controlledTransformStream","TransformStreamSink","startPromise","_transformStream","_startPromise","TransformStreamReadableReadyPromise","_transforming","_transformStreamController","_transformer","TransformStreamDefaultTransform","TransformStreamTransform","TransformStreamCloseReadableInternal","TransformStreamSource","TransformStreamDefaultController","IsTransformStream","IsTransformStreamDefaultController","TransformStreamCloseReadable","TransformStreamError","transformer","readableStrategy","writableStrategy","startPromise_resolve","_readable","sink","_writable","isURLSupported","pathname","href","PolyfillURL","OriginalURL","revokeObjectURL","relative","ftp","file","gopher","http","https","ws","wss","relativePathDotMapping","scheme","_isInvalid","h","invalid","unicode","EOF","ALPHA","ALPHANUMERIC","stateOverride","errors","cursor","seenAt","seenBracket","_scheme","isRelativeScheme","_isRelative","_query","_fragment","_schemeData","percentEscape","_host","_port","_path","_username","_password","nextC","nextNextC","cp","tempC","IDNAToASCII","temp","tmp","percentEscapeQuery","JURL","_url","parse","authority","host","_","PDFDocumentLoadingTask","_util","range","rangeTransport","worker","pdfBytes","rangeChunkSize","CMapReaderFactory","_display_utils","DOMCMapReaderFactory","ignoreErrors","stopAtErrors","pdfBug","NativeImageDecoderValues","nativeImageDecoderSupport","_api_compatibility","maxImageSize","disableFontFace","disableRange","disableStream","disableAutoFetch","disableCreateObjectURL","workerParams","postMessageTransfers","_worker_options","workerPort","fromPort","_worker","docId","destroyed","pdfDataRangeTransport","initialData","progressiveDone","messageHandler","sendWithPromise","apiVersion","password","docBaseUrl","workerId","_fetchDocument","networkStream","_transport_stream","PDFDataTransportStream","createPDFNetworkStream","httpHeaders","_message_handler","MessageHandler","transport","WorkerTransport","_transport","_capability","pdfNetworkStreamFactory","PDFPageProxy","PDFDocumentProxy","_regenerator","_interopRequireDefault","_font_loader","_canvas","_global_scope","_metadata","_webgl","gen","_next","_throw","_arrayWithHoles","_arr","_e","_iterableToArrayLimit","_nonIterableRest","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_defineProperties","fallbackWorkerSrc","fakeWorkerFilesLoader","isWorkerDisabled","requirejs","toUrl","require","WorkerMessageHandler","pdfjsFilePath","currentScript","nextDocumentId","onPassword","onProgress","onUnsupportedFeature","destroy","deprecated","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","begin","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","loaded","total","_this2","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_this3","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_this4","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","pdfInfo","_pdfInfo","pageNumber","getPage","ref","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenActionDestination","getAttachments","getJavaScript","getOutline","getPermissions","getMetadata","getData","downloadInfoCapability","getStats","startCleanup","loadingTask","numPages","fingerprint","loadingParams","pageIndex","pageInfo","_pageInfo","_stats","StatTimer","DummyStatTimer","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","intentStates","scale","_ref$rotation","rotation","rotate","_ref$dontFlip","dontFlip","PageViewport","viewBox","_ref2$intent","intent","annotationsPromise","annotationsIntent","getAnnotations","_this5","canvasContext","viewport","_ref3$intent","_ref3$enableWebGL","enableWebGL","_ref3$renderInteracti","renderInteractiveForms","_ref3$transform","_ref3$imageLayer","imageLayer","_ref3$canvasFactory","canvasFactory","_ref3$background","background","stats","time","renderingIntent","canvasFactoryInstance","DOMCanvasFactory","webGLContext","WebGLContext","enable","intentState","displayReadyCapability","receivingOperatorList","operatorList","fnArray","argsArray","lastChunk","complete","renderTasks","internalRenderTask","_tryCleanup","yt","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","renderTask","transparency","initializeGraphics","operatorListChanged","opListTask","opListReadCapability","_ref4$normalizeWhites","normalizeWhitespace","_ref4$disableCombineT","disableCombineTextItems","sendWithStream","combineTextItems","textContent","items","streamTextContent","getReader","styles","read","_textContent$items","_toConsumableArray","pump","pageCache","waitOn","renderCompleted","cancel","resetStats","some","operatorListChunk","userUnit","_listeners","_defer","_deferred","transfers","_this6","cloned","transferable","Te","desc","cloneValue","fakeWorkerFilesLoadedCapability","pdfWorkerPorts","nextFakeWorkerId","workerSrc","pdfjsWorker","_ref6","_ref6$name","_ref6$port","_ref6$postMessageTran","_ref6$verbosity","_webWorker","_messageHandler","_initializeFromPort","_initialize","_this7","Worker","getMainThreadWorkerMessageHandler","_getWorkerSrc","createCDNWrapper","terminateEarly","onWorkerError","terminate","_setupFakeWorker","supportTypedArray","supportTransfers","sendTest","testObj","_this8","mainWorkerMessageHandler","setupFakeWorkerGlobal","workerHandler","setup","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapUrl","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_this9","page","_destroy","terminated","cancelAllRequests","_this10","getFullReader","evt","onPull","_ref7","enqueue","onCancel","_this11","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_ref8","_ref9","_numPages","exception","_this12","_startRenderPage","_renderPageChunk","_this13","_data","_slicedToArray","exportedData","exportedError","fontRegistry","FontInspector","enabled","registerFont","fontAdded","FontFaceObject","_data2","imageData","pageProxy","img","Image","releaseImageResources","_data3","imageUrl","components","width","height","rgbaLength","buf","Uint8ClampedArray","tmpCanvas","tmpCtx","getContext","drawImage","getImageData","_j","fetch","_ref10","featureId","_this14","_this15","results","metadata","Metadata","contentDispositionFilename","filename","_this16","cleanup","_objs","objId","resolved","_ensureObj","RenderTask","_internalRenderTask","onContinue","canvasInRendering","_ref11","_ref11$useRequestAnim","_ref11$pdfBug","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","canvas","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","_this$params","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","_this17","requestAnimationFrame","mark","_context","prev","abrupt","executeOperatorList","_callee","_next2","asyncGeneratorStep","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","generator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","pushTryEntry","iteratorMethod","GeneratorFunction","displayName","isGeneratorFunction","genFun","awrap","defineIteratorMethods","AsyncIterator","async","reverse","skipTempReset","resetTryEntry","rootRecord","rval","loc","caught","handle","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","webpackPolyfill","deprecate","paths","children","link","rel","title","targetIndex","LinkTargetStringMap","DEFAULT_LINK_REL","anchor","query","substring","lastIndexOf","script","removeAttribute","DOMSVGFactory","SVG_NS","canvasAndContext","_ref$baseUrl","_ref$isCompressed","_fetch","_x","_asyncToGenerator","_ref2","compressionType","_context2","baseURI","cMapData","statusText","t0","arrayBuffer","t1","t2","text","t3","_x3","request","onreadystatechange","DONE","responseText","_callee2","_x2","svg","createElementNS","setAttribute","_ref5$offsetX","offsetX","_ref5$offsetY","offsetY","_ref5$dontFlip","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","centerX","centerY","_ref6$scale","_ref6$rotation","_ref6$dontFlip","topLeft","bottomRight","SELF","BLANK","PARENT","TOP","pdfDateStringRegex","Response","started","times","longest","_time","RegExp","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","Q","UTC","ReferenceError","_assertThisInitialized","_getPrototypeOf","subClass","superClass","_setPrototypeOf","BaseFontLoader","nativeFontFaces","styleElement","nativeFontFace","fonts","rule","getElementsByTagName","styleSheet","sheet","insertRule","cssRules","_bind","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","rules","fontsToLoad","_BaseFontLoader","GenericFontLoader","_possibleConstructorReturn","loadingContext","requests","nextRequestId","loadTestFontId","_inherits","otherRequest","insert","called","_loadTestFont","XXXX_VALUE","checksum","int32","spliceString","loadedName","span","fontFamily","body","fillText","isFontReady","supported","IsEvalSupportedCached","translatedData","_ref2$isEvalSupported","_ref2$disableFontFace","_ref2$ignoreErrors","_ref2$onUnsupportedFe","_ref2$fontRegistry","compiledGlyphs","FontFace","mimetype","character","cmds","current","js","cmd","_ii","compatibilityParams","isIE","isIOSChrome","freeze","_pattern_helper","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","ad_bc","bc_ad","old","angle","cosValue","cos","sinValue","sin","CachedCanvases","getCanvas","trackTransform","canvasEntry","addContextCurrentTransform","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","clone","setCurrentPoint","canvasCtx","stateStack","pendingClip","pendingEOFill","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","cachedCanvases","_cachedGetSinglePixelWidth","imgData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","mask","srcByte","elem","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","r0","g0","b0","alpha","alpha_","maskData","layerData","transferMap","layerCtx","maskCtx","scaleX","scaleY","backdrop","isEnabled","composed","composeSMask","layer","subtype","composeFn","hasBackdrop","composeSMaskLuminosity","composeSMaskAlpha","row","chunkHeight","composeSMaskBackdrop","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","op","_ref$transparency","_ref$background","fillRect","transparentCanvas","compositeCtx","resetCtxToDefault","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","breakIt","depObjId","objsPool","endSMaskGroup","endLayout","dashArray","dashPhase","flatness","states","suspendSMaskGroup","beginSMaskGroup","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","copyCtxState","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","bezierCurveTo","consumePath","getPattern","needRestore","pendingTextPaths","beginPath","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","getPathGenerator","strokeText","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","$","glyph","scaledX","scaledY","vmetric","vx","restoreNeeded","fontChar","accent","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","spacingLength","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","TilingPattern","createCanvasGraphics","getShadingPatternFromIR","patternIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","isolated","knockout","bounds","drawnWidth","drawnHeight","cacheId","imageSmoothingEnabled","mozImageSmoothingEnabled","domImage","position","getCanvasPosition","appendImage","top","isPatternFill","compiled","j0","width1","points","POINT_TYPES","lineSize","data0","sum","Int32Array","outlines","pp","coords","p0","jj","compileType3Glyph","maskCanvas","putBinaryImageMask","positions","images","image","map","imgToPaint","widthScale","heightScale","HTMLElement","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","inverse","raw","shadingIR","ShadingIRs","fromIR","colorStops","r1","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","c1","c2","c3","colors","rowSize","x2","y2","x3","y3","xa","car","cag","cab","xb","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","x1_","x2_","figure","ps","cs","verticesPerRow","rows","cols","q","drawTriangle","combinesScale","figures","backgroundColor","boundsWidth","boundsHeight","paddedWidth","BORDER_SIZE","paddedHeight","drawFigures","drawFigure","Mesh","owner","matrixScale","temporaryPatternCanvas","createPattern","Dummy","PaintType","canvasGraphicsFactory","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","combinedScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","maxSize","cssColor","_resolveCall","thisArg","_args","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbacksCapabilities","ah","actionHandler","_onComObjOnMessage","_processStreamMessage","isReply","wrapReason","_sourceName","_targetName","makeReasonSerializable","_createStreamSink","actionName","scope","queueingStrategy","startCapability","startCall","isClosed","desiredSize","pullCapability","pullCall","cancelCapability","cancelCall","sendStreamRequest","streamSink","isCancelled","lastDesiredSize","sinkCapability","resolveCall","sendStreamResponse","deleteStreamController","resolveOrReject","_xml_parser","_repair","xmlDocument","SimpleXMLParser","parseFromString","_parse","codes","d1","d2","d3","rdf","nodeName","firstChild","nextSibling","hasChildNodes","childNodes","trim","receiver","_get","Reflect","_superPropBase","XMLParserErrorCode","XMLParserBase","entity","onResolveEntity","attributes","isWhitespace","skipWs","attrValue","attrName","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","ch2","onError","onEndElement","pi","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","content","_parseContent","onBeginElement","onText","isEmpty","SimpleDOMNode","nodeValue","child","_XMLParserBase","_currentFragment","_stack","_errorCode","parseXml","isWhitespaceString","lastElement","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","found","_begin","firstReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","requestDataRange","abort","_loaded","_done","_filename","_requests","_headersReady","_read","requestCapability","_end","_queuedChunk","_removeRangeReader","_read2","_ref$enable","_enabled","WebGLUtils","tryInitGL","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","loadShader","VERTEX_SHADER","FRAGMENT_SHADER","shaders","program","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","textureId","activeTexture","texture","createTexture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","currentGL","currentCanvas","premultipliedalpha","smaskCache","figuresCache","generateGL","createVertexShader","createFragmentShader","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","initSmaskGL","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","deleteTexture","deleteBuffer","scaleLocation","offsetLocation","colorLocation","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","NonWhitespaceRegexp","styleBuf","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","isAllWhitespace","_textDivProperties","tx","_viewport","atan2","fontName","PI","fontHeight","fontAscent","ascent","descent","_fontInspectorEnabled","dataset","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","right","bottom","_canceled","textDivs","textDivsLength","_renderingDone","expanded","boxes","box","x1New","x2New","expandBoundsLTR","expandBounds","divProperties","ts","Float64Array","findPositiveMin","boxScale","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","TextLayerRenderTask","_processItems","styleCache","appendText","textLayerFrag","_render","mozOpaque","render","expandTextDivs","expandDivs","expand","padding","renderParameters","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","linkService","downloadManager","imageResourcesPath","svgFactory","_createContainer","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","borderRadius","borderBottomStyle","borderColor","trigger","popup","PopupElement","modificationDate","contents","hideWrapper","_AnnotationElement","className","newWindow","externalLinkTarget","externalLinkRel","_bindNamedAction","_bindLink","getDestinationHash","onclick","navigateTo","getAnchorUrl","executeNamedAction","_AnnotationElement2","hasPopup","alt","l10nId","l10nArgs","_createPopup","_AnnotationElement3","_WidgetAnnotationElem","hasAppearance","fieldValue","multiLine","disabled","readOnly","maxLen","comb","combWidth","letterSpacing","verticalAlign","_setTextStyle","textAlignment","textAlign","direction","fontWeight","fontStyle","_WidgetAnnotationElem2","_WidgetAnnotationElem3","fieldName","buttonValue","_LinkAnnotationElemen","_WidgetAnnotationElem4","selectElement","combo","multiSelect","multiple","option","optionElement","displayValue","exportValue","_AnnotationElement4","parentType","parentElement","querySelector","parentId","parentLeft","parentWidth","pinned","hideElement","dateObject","toDateObject","date","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","lines","hasAttribute","zIndex","_AnnotationElement5","_AnnotationElement6","line","lineCoordinates","append","_AnnotationElement7","square","_AnnotationElement8","circle","_AnnotationElement9","containerClassName","svgElementName","vertices","polyline","_PolylineAnnotationEl","_AnnotationElement10","_AnnotationElement11","inkLists","inkList","_AnnotationElement12","_AnnotationElement13","_AnnotationElement14","_AnnotationElement15","_AnnotationElement16","_AnnotationElement17","_this6$data$file","eventBus","dispatch","_download","downloadData","annotations","_is_node","pf","toFixed","pm","acos","SVG_DEFAULTS","XLINK_NS","convertImgDataToPng","PNG_HEADER","crcTable","crc","crc32","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","forceDataSchema","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","_y","_i3","ihdr","deflateSyncUncompressed","output","deflateSync","CHUNK_WRAPPER_SIZE","writePngChunk","encode","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","svgElement","loadDependencies","convertOpList","operatorIdMapping","opList","opTree","opListElement","opListToTree","opTreeElement","lineMatrix","xcoords","tspan","setAttributeNS","txtElement","txtgrp","charWidth","M","_setStrokeAttributes","_ensureTransformGroup","defs","addFontStyle","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","_args$","tilingId","_Util$applyTransform2","tx0","ty0","_Util$applyTransform4","tx1","ty1","_Util$singularValueDe2","txstep","tystep","tiling","gradient","shadingId","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","colorStop","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","getAttributeNS","clipId","clipPath","clipElement","cloneNode","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","_step7$value","setStrokeAlpha","setFillAlpha","lineWidthScale","imgObj","imgEl","imgSrc","cliprect","definitions","rootGroup","_ensureClipGroup","_network_utils","fs","fileUriRegex","sourceUrl","parsedUrl","parseUrl","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","auth","hostname","_BaseFullReader","handleResponse","statusCode","_setReadableStream","getResponseHeader","_validateRangeRequest","validateRangeRequestCapabilities","suggestedLength","allowRangeRequests","extractFilenameFromHeader","_request","createRequestOptions","_BaseRangeReader","_httpHeaders","Range","_BaseFullReader2","lstat","createReadStream","_BaseRangeReader2","createResponseStatusError","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","returnValues","validateResponseStatus","needsEncodingFixup","toParamRegExp","rfc2616unquote","fixupEncoding","rfc2047decode","rfc5987decode","_match2","quot","part","parts","_matches$n","rfc2231getparam","_filename2","attributePattern","flags","encoding","decoder","TextDecoder","fatal","decode","textdecode","quotindex","extvalue","encodingend","charset","hex","NetworkManager","getXhr","currXhrId","pendingRequests","listeners","xhrId","pendingRequest","expectedStatus","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","getArrayBuffer","rangeHeader","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","lengthComputable","isPendingRequest","_requestId","requestRange","_close","abortController","signal","credentials","redirect","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","Headers","createFetchOptions","_annotation_layer_builder","AnnotationLayerBuilder","DefaultAnnotationLayerFactory","_text_layer_builder","DefaultTextLayerFactory","TextLayerBuilder","_ui_utils","EventBus","NullL10n","ProgressBar","_pdf_link_service","PDFLinkService","SimpleLinkService","_download_manager","DownloadManager","_genericl10n","GenericL10n","_pdf_find_controller","PDFFindController","_pdf_history","PDFHistory","_pdf_page_view","PDFPageView","_pdf_single_page_viewer","PDFSinglePageViewer","_pdf_viewer","PDFViewer","getGlobalEventBus","_pdfjsLib","pageDiv","pdfPage","_ref$imageResourcesPa","_ref$renderInteractiv","_ref$l10n","l10n","_cancelled","update","pdfjsLib","isValidRotation","isValidScrollMode","ScrollMode","isValidSpreadMode","SpreadMode","isPortraitOrientation","globalEventBus","dispatchToDOM","getPDFFileNameFromURL","defaultFilename","isDataSchema","reFilename","splitURI","suggestedFilename","noContextMenuHandler","preventDefault","parseQueryString","param","backtrackBeforeAllVisibleElements","getVisibleElements","scrollEl","views","sortByVisibility","horizontal","scrollTop","clientHeight","scrollLeft","clientWidth","offsetTop","clientTop","offsetLeft","clientLeft","visible","numViews","firstVisibleElementInd","binarySearchFirstItem","isElementRightAfterViewLeft","isElementBottomAfterViewTop","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","percent","pc","roundToDivide","getPageSizeInches","changeOrientation","approximateFraction","xinv","x_","getOutputScale","pixelRatio","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","sx","scaled","scrollIntoView","spot","skipOverflowHiddenElements","offsetParent","scrollHeight","scrollWidth","getComputedStyle","overflow","_scaleY","_scaleX","watchScroll","viewAreaElement","debounceScroll","rAF","currentX","lastX","currentY","lastY","down","_eventHandler","normalizeWheelEventDelta","delta","deltaX","deltaY","deltaMode","MOUSE_PIXELS_PER_LINE","waitOnEventOrTimeout","_ref2$delay","delay","eventHandler","WaitOnType","EVENT","timeoutHandler","TIMEOUT","moveToEndOfArray","condition","moved","animationStarted","TextLayerMode","RendererType","PresentationModeState","VERTICAL_PADDING","SCROLLBAR_PADDING","MAX_AUTO_SCALE","UNKNOWN_SCALE","MAX_SCALE","MIN_SCALE","DEFAULT_SCALE","DEFAULT_SCALE_VALUE","CSS_UNITS","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","ODD","EVEN","getLanguage","_getLanguage","getDirection","_getDirection","fallback","_context3","formatL10nValue","_callee3","_translate","_context4","_callee4","_x4","minIndex","maxIndex","currentIndex","elt","pageTop","_ref3$dispatchToDOM","_dispatchToDOM","eventName","eventListeners","_dispatchDOMEvent","_args5","createEvent","initCustomEvent","dispatchEvent","units","bar","_indeterminate","_percent","viewer","scrollbarWidth","offsetWidth","clamp","_updateBar","_ref$externalLinkTarg","_ref$externalLinkRel","pdfDocument","pdfViewer","pdfHistory","_pagesRefCache","goToDestination","namedDest","explicitDest","destRef","_cachedPageNumber","cachePageRef","pagesCount","pushCurrentPosition","scrollPageIntoView","destArray","hash","phraseSearch","phrase","nameddest","zoomArgs","zoom","zoomArg","zoomArgNumber","allowNegativeOffset","pagemode","destLength","allowNull","isValidExplicitDestination","back","forward","pageNum","pageRef","isPageVisible","currentPageNumber","pagesRotation","textLayerDiv","_ref$findController","findController","_ref$enhanceTextSelec","renderingDone","pageIdx","textLayerRenderTask","_onUpdateTextLayerMatches","_bindMouse","endOfContent","numTextDivs","createDocumentFragment","_finishRendering","_updateMatches","matchesLength","iIndex","queryLen","mm","matchIdx","divIdx","I","isSelectedPage","selected","selectedMatchIdx","prevEnd","infinity","i0","i1","highlightAll","isSelected","highlightSuffix","scrollMatchIntoView","matchIndex","appendTextToDiv","n0","n1","fromOffset","toOffset","clearedUntilDivIdx","highlightMatches","_convertMatches","pageMatches","pageMatchesLength","_renderMatches","expandDivsTimer","adjustTop","getPropertyValue","divBounds","getBoundingClientRect","pageY","DISABLE_CREATE_OBJECT_URL","blobUrl","click","download","_ref$disableCreateObj","msSaveBlob","downloadUrl","webL10n","lang","_lang","_ready","setLanguage","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","evtObject","initEvent","language","onSuccess","onFailure","overrideMimeType","ontimeout","successCallback","failureCallback","baseURL","xhrLoadText","parsedPropertiesCallback","dictionary","reBlank","reComment","reSection","reImport","reSplit","rawText","extendedSyntax","parsedRawLinesCallback","currentLang","genericLang","skipLang","loadImport","nextEntry","evalString","parseRawLines","parseProperties","langLinks","querySelectorAll","langCount","dict","innerHTML","getL10nDictionary","locales","default_locale","defaultLocale","anyCaseLang","fireL10nReadyEvent","onResourceLoaded","gResourceCount","parseResource","L10nResourceLink","rv","substArguments","substIndexes","reMatch","macroName","paramName","macro","matched_text","getAttribute","getL10nAttributes","getL10nData","childElementCount","nodeType","getChildElementCount","textNode","insertBefore","plural","_pluralRules","list","pluralRules","isBetween","isIn","af","ak","am","ar","asa","az","be","bem","bez","bg","bh","bm","bn","bo","brx","bs","ca","cgg","chr","cy","da","de","dv","dz","ee","en","eo","es","et","eu","fa","ff","fi","fil","fo","fr","fur","fy","ga","gd","gsw","gu","guw","gv","ha","haw","he","hi","hr","hu","ig","iu","ja","jmc","jv","ka","kab","kaj","kcg","kde","kea","kk","kl","km","kn","ko","ksb","ksh","ku","kw","lag","lb","lg","ln","lo","lv","mas","mg","mk","ml","mn","mo","mr","ms","mt","my","nah","naq","nb","nd","ne","nl","nn","no","nr","nso","ny","nyn","om","pap","pl","pt","rm","ro","rof","ru","rwk","sah","saq","seh","ses","sg","sh","shi","sk","sl","sma","smi","smj","smn","sms","sn","so","sq","sr","ss","ssy","st","sv","sw","syr","ta","te","teo","th","ti","tig","tk","tl","tn","tr","tzm","uk","vi","vun","wa","wae","wo","xh","xog","yo","zh","zu","getPluralRules","fallbackString","getText","loadLocale","shortCode","getTranslatableChildren","elementCount","translateElement","getReadyState","FindState","_pdf_find_utils","FOUND","NOT_FOUND","PENDING","CHARACTERS_TO_NORMALIZE","normalizationRegex","_ref$eventBus","_linkService","_eventBus","_reset","_onFindBarClose","_pdfDocument","_firstPageCapability","_shouldDirtyMatch","_dirtyMatch","_updateUIState","_extractText","findbarClosed","_highlightMatches","pendingTimeout","_findTimeout","_nextMatch","_updateAllPages","_ref2$element","_ref2$pageIndex","_ref2$matchIndex","_scrollMatches","_selected","_pageMatches","_pageMatchesLength","_offset","wrapped","_extractTextPromises","_pageContents","_matchesCountTotal","_pagesToSearch","_pendingFindMatches","_resumePageIdx","matchesWithLength","currentElem","skipped","prevElem","matchLength","isSubTerm","startIdx","getCharacterType","endIdx","_limit","pageContent","entireWord","_isEntireWord","queryArray","subquery","subqueryLen","_prepareMatches","_this$_state","caseSensitive","_calculatePhraseMatch","_calculateWordMatch","_updatePage","_nextPageMatch","pageMatchesCount","_updateUIResultsCount","extractTextCapability","getTextContent","textItems","normalize","previous","findPrevious","currentPageIndex","_calculateMatch","_updateMatch","_advanceOffsetPage","numMatches","_matchesReady","previousPage","_this$_selected","matchesCount","_requestMatchesCount","_rawQuery","_normalizedQuery","charCode","isAlphabeticalScript","isAscii","isAsciiSpace","CharacterType","SPACE","isAsciiAlpha","isAsciiDigit","ALPHA_LETTER","PUNCT","isThai","THAI_LETTER","isHan","HAN_LETTER","isKatakana","KATAKANA_LETTER","isHiragana","HIRAGANA_LETTER","isHalfwidthKatakana","HALFWIDTH_KATAKANA_LETTER","isDestHashesEqual","isDestArraysEqual","getCurrentHash","destHash","pushHash","firstDest","secondDest","isEntryEqual","initialized","initialBookmark","initialRotation","_boundEvents","_isViewerInPresentationMode","_isPagesLoaded","active","switchInProgress","_ref2$resetHistory","resetHistory","_ref2$updateUrl","updateUrl","reInitialized","_updateUrl","_bindEvents","history","_popStateInProgress","_blockHashChange","_currentHash","_numPositionUpdates","_uid","_maxUid","_destination","_position","_isValidState","_parseCurrentHash","parseCurrentHash","_pushOrReplaceState","_updateInternalState","_ref3$namedDest","forceReplace","_tryPushCurrentPosition","newUrl","shouldReplace","newState","replaceState","pushState","temporary","perfEntry","performance","getEntriesByType","removeTemporary","_updateViewareaTimeout","pdfOpenParams","newHash","hashChanged","setHash","_parseCurrentHash2","updateViewarea","_updateViewarea","popState","_popState","pageHide","_pdf_rendering_queue","MAX_CANVAS_PIXELS","viewerCompatibilityParams","maxCanvasPixels","defaultViewport","renderingId","pageLabel","pdfPageRotate","hasRestrictedScaling","textLayerMode","useOnlyCssZoom","renderingQueue","textLayerFactory","annotationLayerFactory","renderer","paintTask","paintedViewportMap","renderingState","RenderingStates","INITIAL","onBeforeDraw","onAfterDraw","annotationLayer","textLayer","zoomLayer","getViewport","removeFromDOM","zoomLayerCanvas","keepZoomLayer","keepAnnotations","cancelRendering","currentZoomLayerNode","currentAnnotationNode","_resetZoomLayer","loadingIconDiv","cssTransform","isScalingRestricted","outputScale","redrawAnnotations","relativeRotation","absRotation","textLayerViewport","textAbsRotation","transX","transY","convertToPdfPoint","FINISHED","RUNNING","canvasWrapper","createTextLayerBuilder","renderContinueCallback","cont","isHighestPriority","PAUSED","finishPaintTask","paintOnSvg","paintOnCanvas","onRenderContinue","resultPromise","setTextContentStream","createAnnotationLayerBuilder","renderCapability","isCanvasHidden","showCanvas","actualSizeViewport","maxScale","sfx","sfy","ensureNotCancelled","getOperatorList","getSVG","label","PDFRenderingQueue","pdfThumbnailViewer","onIdle","highestPriorityPage","idleTimeout","printing","isThumbnailViewEnabled","currentlyVisiblePages","forceRendering","scrolledDown","visibleViews","numVisible","isViewFinished","nextPageIndex","previousPageIndex","draw","renderHighestPriority","isAndroid","_base_viewer","_BaseViewer","_ensurePageViewVisible","_previousPageNumber","_shadowViewer","_updateScrollDown","pageView","_pages","_currentPageNumber","previousPageView","viewerNodes","_ref$pageSpot","pageSpot","_ref$pageNumber","_setCurrentPageNumber","scroll","_getCurrentVisiblePage","visiblePages","BaseViewer","resize","newSize","pagesToKeep","pageIdsToKeep","Set","iMax","oldScale","newScale","_name","firstElementChild","removePageBorders","enablePrintAutoRotate","defaultRenderingQueue","setViewer","_scrollUpdate","presentationModeState","_resetView","resetCurrentPageView","_resetCurrentPageView","_pageLabels","_cancelRendering","setDocument","pagesCapability","pagesPromise","_pageViewsReady","onePageRenderedCapability","onePageRendered","bindOnAfterAndBeforeDraw","_buffer","settled","firstPagePromise","currentScale","_setDocumentViewerElement","_spreadMode","_updateSpreadMode","getPagesLeft","_pageNum","setPdfPage","labels","setPageLabel","_currentScale","_currentScaleValue","PDFPageViewBuffer","_location","_pagesRotation","_pagesRequests","_scrollMode","_updateScrollMode","newValue","noScroll","preset","isSameScale","presetValue","isInPresentationMode","isChangingPresentationMode","_setScaleUpdatePages","currentPage","noPadding","hPadding","vPadding","_isScrollModeHorizontal","pageWidthScale","pageHeightScale","horizontalScale","_setScale","_scrollIntoView","_ref3$destArray","_ref3$allowNegativeOf","pageWidth","pageHeight","currentScaleValue","boundingRect","convertToViewportPoint","firstPage","normalizedScaleValue","getPagePoint","intLeft","intTop","_getVisiblePages","numVisiblePages","newCacheSize","_updateHelper","_updateLocation","focus","getHighestPriority","_ensurePdfPageLoaded","renderView","pagesOverview","isFirstPagePortrait","scrollMode","pages","parity","spread","_iMax","firstPageView","_this$container","currentId","stillFullyVisible","qs","sep","eq","regexp","maxKeys","kstr","vstr","idx","substr","stringifyPrimitive","ks","root","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","array","string","extra","codePoint","digit","flag","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","basicToDigit","adapt","ucs2encode","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","ucs2decode","digitToBasic","ucs2","toASCII","mapDomain","toUnicode","define","util","slashes","urlParse","resolveObject","Url","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","querystring","slashesDenoteHost","queryIndex","splitter","uSplit","rest","simplePath","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","esc","qm","tkeys","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","hasTrailingSlash","up","isAbsolute","_enable_super_gross_mode_that_will_cause_bad_things","config","closed","hostReportError","UnsubscriptionError","UnsubscriptionErrorImpl","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","Subscription","flattenUnsubscriptionErrors","sub","teardown","subscription","EMPTY","subscriptions","subscriptionIndex","reduce","errs","rxSubscriber","destinationOrNext","super","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","emptyObserver","Subscriber","SafeSubscriber","rxSubscriberSymbol","subscriber","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","__tryOrSetError","__tryOrUnsub","useDeprecatedSynchronousErrorHandling","wrappedComplete","observable","Observable","subscribe","_isScalar","_subscribe","lift","operator","nextOrObserver","toSubscriber","_trySubscribe","observer","canReportError","promiseCtor","getPromiseCtor","Symbol_observable","pipe","operations","fns","identity","pipeFromArray","toPromise","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","subject","observers","subscriberIndex","Subject","hasError","thrownError","SubjectSubscriber","AnonymousSubject","copy","SubjectSubscription","asObservable","schedule","project","MapOperator","MapSubscriber","subscribeToArray","isArrayLike","subscribeTo","obs","subscribeToObservable","isPromise","subscribeToPromise","Symbol_iterator","subscribeToIterable","scheduler","isInteropObservable","scheduleObservable","schedulePromise","scheduleArray","isIterable","scheduleIterable","scheduled","notifyNext","notifyError","notifyComplete","innerValue","innerSubscriber","resultSelector","concurrent","POSITIVE_INFINITY","mergeMap","MergeMapOperator","MergeMapSubscriber","SimpleOuterSubscriber","hasCompleted","_tryNext","_innerSub","ish","SimpleInnerSubscriber","innerSubscription","innerSubscribe","flatMap","observables","mergeAll","fromArray","RefCountOperator","connectable","_refCount","refCounter","RefCountSubscriber","connection","refCount","sharedConnection","_connection","subjectFactory","_isComplete","getSubject","_subject","ConnectableSubscriber","higherOrderRefCount","connectableObservableDescriptor","connectableProto","ConnectableObservable","subjectOrSubjectFactory","selector","multicast","shareSubjectFactory","objWithPropertyToExtract","getClosureSafeProperty","overriddenName","newLineIndex","before","after","__forward_ref__","forwardRefFn","forwardRef","isForwardRef","formatRuntimeError","renderStringify","injectorName","injectorDetails","RuntimeError","stringifyForError","actual","expected","comparison","throwError","opts","providedIn","factory","providers","imports","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","field","NG_INJ_DEF","NG_INJECTOR_DEF","ɵprov","ɵinj","ngInjectableDef","ngInjectorDef","InjectFlags","Default","Host","Self","SkipSelf","Optional","_injectImplementation","impl","notFoundValue","injectableDef","getInjectableDef","throwProviderNotFoundError","ChangeDetectionStrategy","OnPush","ViewEncapsulation","Emulated","None","ShadowDom","__globalThis","globalThis","__window","__self","WorkerGlobalScope","_global","EMPTY_OBJ","EMPTY_ARRAY","NG_COMP_DEF","ɵcmp","NG_DIR_DEF","ɵdir","NG_PIPE_DEF","ɵpipe","NG_MOD_DEF","ɵmod","NG_LOC_ID_DEF","ɵloc","NG_FACTORY_DEF","ɵfac","NG_ELEMENT_ID","__NG_ELEMENT_ID__","_renderCompCount","componentDefinition","noSideEffects","declaredInputs","providersResolver","decls","vars","template","consts","ngContentSelectors","hostBindings","hostVars","hostAttrs","contentQueries","inputs","outputs","exportAs","onPush","changeDetection","directiveDefs","pipeDefs","selectors","viewQuery","features","encapsulation","setInput","schemas","tView","directiveTypes","directives","feature","pipeTypes","pipes","invertObject","extractDirectiveDef","extractPipeDef","getComponentDef","getDirectiveDef","getPipeDef","autoRegisterModuleById","bootstrap","declarations","transitiveCompileScopes","secondary","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","ɵɵdefineComponent","pipeDef","pure","onDestroy","ngOnDestroy","throwNotFound","ngModuleDef","tNode","previousValue","firstChange","isFirstChange","NgOnChangesFeatureImpl","definition","ngOnChanges","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","privateName","SIMPLE_CHANGES_STORE","setSimpleChangesStore","previousChange","SimpleChange","ɵɵNgOnChangesFeature","ngInherit","SVG_NAMESPACE","DOCUMENT","listen","domRendererFactory3","createRenderer","hostElement","rendererType","lView","unwrapRNode","nodeIndex","hostView","slotValue","isLView","lContainer","amount","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","isInCheckNoChangesMode","viewToRestore","contextLView","currentTNode","getCurrentTNodePlaceholderOk","isParent","bindingRootIndex","bindingStartIndex","bindingIndex","currentDirectiveIndex","setCurrentDirectiveIndex","currentQueryIndex","declTNode","parentTNode","parentLView","getDeclarationTNode","allocLFrame","newView","newLFrame","inI18n","currentLFrame","childLFrame","selectedIndex","elementDepthCount","currentNamespace","oldLFrame","leaveDI","leaveViewLight","getTNode","directiveStart","directiveEnd","lifecycleHooks","directiveDef","ngAfterContentInit","ngAfterContentChecked","ngAfterViewInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","hooks","callHooks","initPhase","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","isInitHook","hook","directive","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","native","attrs","isProc","isProceduralRenderer","namespaceURI","attrVal","isAnimationProp","setProperty","marker","dst","srcMarker","mergeHostAttribute","key1","key2","markerInsertPosition","dstValue","parentLocation","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","oldValue","nextNgElementId","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","hasParentInjector","parentIndex","getParentInjectorIndex","getParentInjectorView","parentData","footer","declarationViewOffset","lViewCursor","tViewType","bloomHash","bloomAdd","moduleInjector","previousInjectImplementation","setInjectImplementation","injectRootLimpMode","notFoundValueOrThrow","tokenId","createNodeInjector","bloomHashBitOrFactory","enterDI","lookupTokenUsingModuleInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","NodeInjector","getCurrentTNode","getLView","currentTView","injectableIdx","locateDirectiveOrProvider","isComponentHost","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","endIndex","providerTokenOrDef","dirDef","isComponentDef","tData","NodeInjectorFactory","isFactory","throwCyclicDependencyError","previousIncludeViewProviders","setIncludeViewProviders","directiveIndex","ngOnInit","ngDoCheck","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","registerPreOrderHooks","injectorView","isFirstHostTNode","_tNode","_lView","getOrCreateInjectable","ownConstructor","ownFactory","getFactoryOf","objectPrototype","resolveForwardRef","getFactoryDef","attrNameToInject","classes","attrsLength","isNameOnlyAttributeMarker","injectAttributeImpl","PARAMETERS","PROP_METADATA","propName","parentClass","metaCtor","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","cls","unusedKey","ngMetadataName","annotationCls","additionalProcessing","PropDecoratorFactory","decoratorInstance","_desc","ɵɵdefineInjectable","ViewChild","makePropDecorator","isViewQuery","descendants","Query","flatten","deepForEach","keyValueArray","keyValueArrayIndexOf","value1","arrayInsert2","middle","_arrayIndexOfSorted","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","USE_VALUE","provide","useValue","_currentInjector","injector","former","injectInjectorOnly","inject","ɵɵinject","types","getInjectFlag","decorator","injectorErrorName","tokenPath","formatError","NG_TOKEN_PATH","Inject","attachInjectFlag","makeParamDecorator","policy","policy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","getPolicy","getPolicy$1","changingThisBreaksApplicationSecurity","SafeValueImpl","getTypeName","actualType","getSanitizationBypassType","inertDocumentHelper","getInertBodyElement","DOMParser","trustedHTMLFromString","defaultDoc","inertDocument","implementation","createHTMLDocument","inertHtml","inertBodyElement","templateEl","inertBody","documentMode","stripCustomNsAttrs","elAttrs","childNode","Node","ELEMENT_NODE","SAFE_URL_PATTERN","DATA_URL_PATTERN","srcset","_sanitizeUrl","tags","sets","VOID_ELEMENTS","tagSet","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","merge","URI_ATTRS","SRCSET_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","sanitizedSomething","sanitizeChildren","traverseContent","startElement","TEXT_NODE","endElement","checkClobberedElement","tagName","elAttr","lower","sanitizeSrcset","encodeEntities","nextNode","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","outerHTML","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","unsafeHtmlInput","InertDocumentHelper","isDOMParserAvailable","DOMParserHelper","getInertBodyHelper","unsafeHtml","mXSSAttempts","parsedHtml","sanitizer","SanitizingHtmlSerializer","getTemplateContent","safeHtml","isTemplateElement","SecurityContext","HTML","STYLE","SCRIPT","RESOURCE_URL","getSanitizer","trustedHTMLFromStringBypass","sanitize","allowSanitizationBypassAndThrow","unwrapSafeValue","_sanitizeHtml","unsafeUrl","MONKEY_PATCH_KEY_NAME","readPatchedData","ERROR_ORIGINAL_ERROR","_console","handleError","_findOriginalError","_findContext","errorLogger","ERROR_LOGGER","defaultErrorLogger","getErrorLogger","ERROR_DEBUG_CONTEXT","getDebugContext","getOriginalError","defaultScheduler","ownerDocument","defaultView","RendererStyleFlags2","Important","DashCase","tIcuContainerNode","_icuContainerIterate","isLContainer","getNearestLContainer","lNodeToHandle","beforeNode","isComponent","rNode","nativeAppendChild","nativeInsertBefore","isHostElement","nativeParent","nativeParentNode","nativeRemoveChild","nativeRemoveNode","destroyNode","parentRElement","applyToElementOrContainer","applyView","applyContainer","namespace","declarationContainer","movedViews","declarationViewIndex","insertionLContainer","updateTransplantedViewCount","removeIndex","indexInContainer","viewToDetach","declarationLContainer","detachMovedView","removedLView","removeFromArray","removeViewFromContainer","lQueries","detachView","rootView","lViewOrLContainer","cleanUpView","firstView","destroyViewTree","toCall","callContext","executeOnDestroys","tCleanup","lCleanup","lastLCleanupIndex","idxOrTargetGetter","useCaptureOrSubIdx","processCleanups","getNativeByTNode","getClosestRElement","isMove","_getInsertInFrontOfRNodeWithI18n","childRNode","childTNode","parentRNode","getParentRElement","anchorNode","getInsertInFrontOfRNode","nativeAppendOrInsertBefore","tNodeType","getBeforeNodeForView","elIcuContainerChild","getFirstNativeNode","rNodeOrLContainer","nextRNode","projectionNodes","getProjectionNodes","getLViewParent","componentView","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","isProjection","rawSlotValue","attachPatchData","applyNodes","icuContainerIterate","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","componentNode","cssText","classToSearch","startingIndex","foundIndex","NG_TEMPLATE_SELECTOR","cssClassToMatch","isProjectionMode","classIndexOf","currentSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","hasTagAndTypeMatch","isPositive","selectorAttrValue","isCssClassMatching","attrIndexInNode","findAttrIndexInNode","isInlineTemplate","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","attr","matchTemplateAttribute","isNodeMatchingSelector","selectorListLoop","currentSelectorInList","isNegativeMode","currentChunk","valueOrMarker","maybeWrapInNotSelector","NO_CHANGE","selectIndexInternal","getTView","getSelectedIndex","checkNoChangesMode","executeCheckHooks","executeInitAndCheckHooks","setSelectedIndex","tStylingRange","queryStartIdx","directiveDefIdx","setCurrentQueryIndex","tHostNode","rendererFactory","resetPreOrderHookFlags","isCurrentTNodeParent","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","mergedAttrs","localNames","initialInputs","tViews","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","createTNode","createTNodeAtIndex","getCurrentParentTNode","setCurrentTNode","numSlotsToAlloc","initialValue","allocIdx","enterView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","refreshContentQueries","staticViewQueries","hostLView","renderComponent","renderChildComponents","incompleteFirstPass","leaveView","isInCheckNoChangesPass","setBindingIndex","hooksInitPhaseCompleted","incrementInitPhaseFlags","getFirstLContainer","getNextLContainer","movedLView","markTransplantedViewsForRefresh","embeddedLView","embeddedTView","viewAttachedToChangeDetector","refreshView","refreshEmbeddedViews","hostBindingOpCodes","opCode","directiveIdx","bindingRootIndx","hostBindingFn","setBindingRootForHostBindings","processHostBindingOpCodes","refreshComponent","refreshChildComponents","firstUpdatePass","normalExecutionPath","creationModeIsActive","isCreationMode","rf","prevSelectedIndex","isUpdatePhase","isContentQueryHost","getBindingsEnabled","getOrCreateNodeInjectorForNode","addComponentLogic","setInputsFromAttrs","getComponentLViewByIndex","instantiateAllDirectives","elementIndex","dirIndex","invokeHostBindingsInCreationMode","invokeDirectivesHostBindings","viewData","localRefExtractor","localIndex","createTView","constsOrFactory","initialViewLength","createViewBlueprint","queries","expandoStartIndex","directiveRegistry","pipeRegistry","cleanupFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","inputAliasMap","propStore","internalName","nativeOnly","dataValue","inputData","setInputsForProperty","viewIndex","childComponentLView","markDirtyIfOnPush","mapPropName","localRefs","hasDirectives","registry","isNodeMatchingSelectorList","diPublicInInjector","markAsComponentHost","findDirectiveDefMatches","exportsMap","initTNodeFlags","preOrderHooksFound","preOrderCheckHooksFound","allocExpando","mergeHostAttrs","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","directiveInputs","generateInitialInputs","generatePropertyAliases","initializeInputAndOutputAliases","cacheMatchingLocalNames","directiveVarsIdx","elementIndx","lastSelectedElementIdx","hostTNode","numberOfDirectives","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","getOrCreateTComponentView","addToViewTree","createLView","strValue","setElementAttribute","initialInputData","inputsToStore","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","syncViewWithBlueprint","isRootView","rootContext","rootComponent","readPatchedLView","renderComponentOrTemplate","tickRootContext","viewQueryFn","component","CLEAN_PROMISE","errorHandler","ErrorHandler","getNativeByIndex","setValue","updateTextNode","writeToHost","concatStringsWithSpace","INJECTOR$1","InjectionToken","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR","NullInjector","defType","additionalProviders","R3Injector","getNullInjector","records","Map","injectorDefTypes","_destroyed","dedupStack","provider","processProvider","injectorDef","processInjectorType","makeRecord","assertNotDestroyed","service","previousInjector","setCurrentInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","_resolveInjectorDefTypes","defOrWrappedDef","parents","getInjectorDef","ngModule","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","ngModuleType","isTypeProvider","isValueProvider","providerToFactory","providerToRecord","multi","multiRecord","injectArgs","hasOnDestroy","paramLength","newArray","inheritedInjectableDef","typeName","getInheritedInjectableDef","getUndecoratedInjectableFactory","unwrappedProvider","useFactory","isFactoryProvider","deps","useExisting","isExistingProvider","classRef","useClass","hasDeps","INJECTOR_IMPL","createInjectorWithoutInjectorInstances","createInjector","Injector","NULL","registerPostOrderHooks","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","fillProperties","animation","defData","ɵɵInheritDefinitionFeature","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","_symbolIterator","WrappedValue","isWrapped","isJsObject","getSymbolIterator","exp1","exp2","different","bindingUpdated","nextBindingIndex","elementAttributeInternal","getSelectedTNode","ɵɵattribute","attrsIndex","localRefsIndex","adjustedIndex","tViewConsts","getOrCreateTNode","getConstant","resolveDirectives","templateFirstCreatePass","comment","createComment","createLContainer","isDirectiveHost","createDirectivesInstances","saveResolvedLocalsInData","elementPropertyInternal","ɵɵproperty","isClassBased","createElementNode","computeStaticStyling","elementStart","elementStartFirstCreatePass","setUpAttributes","writeDirectClass","writeDirectStyle","executeContentQueries","setCurrentTNodeAsNotParent","elementEnd","hasClassInput","setDirectiveInputsWhichShadowsStyling","hasStyleInput","ɵɵelementStart","ɵɵelementEnd","elementContainerStartFirstCreatePass","isObservable","isSubscribable","listenerFn","useCapture","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","existingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","findExistingListener","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","propsLength","directiveInstance","ɵɵlistener","profiler","wrapWithPreventDefault","markViewDirty","executeListenerWithErrorHandling","nextListenerFn","wrapListenerIn_markDirtyAndPreventDefault","returnValue","nestingLevel","walkUpViews","nextContextImpl","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","ngProjectAsAttrIdx","getProjectAsAttrValue","isSelectorInSelectorList","projectionHeads","tails","componentChild","slotIndex","matchingProjectionSlotIndex","selectorIndex","applyProjection","prefix","v0","v1","suffix","interpolatedValue","bindingUpdated2","getBindingIndex","incrementBindingIndex","interpolation2","ɵɵpropertyInterpolate2","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","getTStylingRangePrev","getTStylingRangeNext","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","setTStylingRangeNextDuplicate","setTStylingRangePrevDuplicate","tStylingKeyCursor","checkStylingProperty","ɵɵstyleProp","ɵɵclassProp","isHostBindings","isInHostBindings","hasStylingInputShadow","stylingKey","hostDirectiveDef","getCurrentDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","bindings","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","wrapInStaticStylingKey","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","staticKeyValueArray","previousNode","toTStylingRange","setTStylingRangeNext","setTStylingRangePrev","markDuplicates","markDuplicateOfResidualStyling","insertTStylingBinding","stylingFirstUpdatePass","tRange","isStylingValuePresent","getTStylingRangeNextDuplicate","findStylingValue","getTStylingRangePrevDuplicate","isProcedural","addClass","removeClass","removeStyle","removeProperty","isImportant","setStyle","applyStyling","updateStyling","normalizeSuffix","currentDirective","desiredMarker","currentMarker","keyValueArraySet","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","keyValueArrayGet","textNative","createText","ɵɵtextInterpolate1","ɵɵtextInterpolate","interpolated","interpolation1","textBindingInternal","ɵɵhostProperty","localeEn","LOCALE_DATA","normalizedLocale","ng","LocaleDataIndex","LocaleId","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","Eras","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","DateTimeFormat","NumberSymbols","NumberFormats","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","Directionality","PluralCase","ExtraData","DEFAULT_LOCALE_ID","LOCALE_ID","localeId","assertDefined","lInjectablesBlueprint","resolveProvider$1","providerFactory","beginIndex","ɵɵdirectiveInject","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesProvidersFactoryExist","doesViewProvidersFactoryExist","factoryFn","componentProviders","multiFactoryAdd","multiFactory","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","viewProviders","processProvidersFn","ERROR_COMPONENT","resolveComponentFactory","noComponentFactoryError","ComponentFactoryResolver","_NullComponentFactoryResolver","ElementRef","SWITCH_ELEMENT_REF_FACTORY","createElementRef","nativeElement","Renderer2","SWITCH_RENDERER2_FACTORY","nodeAtIndex","getOrCreateRenderer2","Sanitizer","full","major","minor","patch","VERSION","Version","supports","isListLikeIterable","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","_trackByFn","forEachItem","forEachOperation","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","previousIndex","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","forEachAddedItem","_nextAdded","forEachMovedItem","_nextMoved","forEachRemovedItem","forEachIdentityChange","_nextIdentityChange","collection","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","put","toIndex","_prevDup","_nextDup","_head","_tail","atOrAfterIndex","duplicates","_DuplicateItemRecordList","recordList","moveOffset","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","forEachChangedItem","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","IterableDiffers","DefaultIterableDifferFactory","copied","defaultIterableDiffersFactory","find","getTypeNameForDebugging","KeyValueDiffers","DefaultKeyValueDifferFactory","defaultKeyValueDiffersFactory","kv","lNode","lViewInAContainer","lViewFirstChildTNode","collectNativeNodes","nodesInSlot","_cdRefInjectingView","_appRef","_attachedToViewContainer","CONTEXT","viewRefs","destroyLView","storeCleanupWithContext","markForCheck","detach","reattach","detectChanges","detectChangesInternal","checkNoChanges","setIsInCheckNoChangesMode","checkNoChangesInternal","attachToViewContainerRef","detachFromAppRef","renderDetachView","attachToAppRef","appRef","ViewRef","detectChangesInRootView","checkNoChangesInRootView","SWITCH_CHANGE_DETECTOR_REF_FACTORY","isPipe","createViewRef","ChangeDetectorRef","keyValDiff","defaultIterableDiffers","defaultKeyValueDiffers","SWITCH_TEMPLATE_REF_FACTORY","createTemplateRef","TemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","elementRef","createEmbeddedView","declarationViewLQueries","SWITCH_VIEW_CONTAINER_REF_FACTORY","createContainerRef","ViewContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","templateRef","viewRef","createComponent","componentFactory","projectableNodes","ngModuleRef","contextInjector","parentInjector","NgModuleRef","componentRef","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","containerLength","addToArray","declaredComponentLView","insertedLContainer","trackMovedView","insertView","parentNativeNode","addViewToContainer","getOrCreateViewRefs","move","newIndex","viewRefsArr","detachedView","commentNode","nativeNextSibling","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","componentDef","ComponentFactory$1","nonMinified","templateName","SCHEDULER","ComponentFactory","componentType","selectorList","stringifyCSSSelector","stringifyCSSSelectorList","isBoundToModule","toRefArray","rootSelectorOrNode","rootViewInjector","createChainedInjector","RendererFactory2","hostRenderer","elementName","hostRNode","elementOrSelector","selectRootElement","rElement","locateHostElement","getNamespace$1","rootFlags","playerHandler","clean","createRootContext","rootTView","rootLView","tElementNode","viewRenderer","createRootComponentView","extractAttrsAndClassesFromSelector","nodesforSlot","hostFeatures","rootTNode","instantiateRootComponent","createRootComponent","LifecycleHooksFeature","ComponentRef$1","_rootLView","changeDetectorRef","RootViewRef","_bootstrapComponents","destroyCbs","componentFactoryResolver","ComponentFactoryResolver$1","getNgModuleDef","ngLocaleIdDef","getNgLocaleIdDef","setLocaleId","maybeUnwrapFn","_r3Injector","injectFlags","moduleType","visited","incoming","assertSameOrNotExisting","recurse","registerNgModuleType","NgModuleRef$1","slotOffset","pureFn","pureFunction1Internal","getBindingRoot","returnValueIndex","lastReturnValue","bindingRoot","updateBinding","getPureFunctionReturnValue","pipeName","getPipeDef$1","pipeFactory","pipeInstance","unwrapValue$1","isPure","v2","pureFunction2Internal","unwrap","EventEmitter","isAsync","__isAsync","_b","nextFn","errorFn","completeFn","_wrapInTimeout","_results","_emitDistinctChangesOnly","dirty","_changesDetected","_changes","symbol","QueryList","symbolIterator","filter","toArray","resultsTree","identityAccessor","newResultFlat","valueA","valueB","arrayEquals","notifyOnChanges","setDirty","changes","queryList","LQuery_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","LQueries_","dirtyQueriesWithMatches","getTQuery","predicate","queriesForTemplateRef","childQueryIndex","tqueryClone","TQueries_","track","tquery","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","TQuery_","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchingIdx","createResultByTNodeType","createSpecialToken","lQuery","tQueryMatches","matchedNodeIdx","createResultForNode","lViewResults","materializeViewResults","collectQueryResults","embeddedLViews","getCurrentQueryIndex","unwrapElementRef","createTQuery","TQueryMetadata_","createLQuery","tViewContentQueries","saveContentQueryAndDirectiveIndex","loadQueryInternal","Input","bindingPropertyName","Output","HostListener","APP_INITIALIZER","ApplicationInitStatus","appInits","noop","donePromise","rej","runInitializers","asyncInitPromises","initResult","observableAsPromise","APP_ID","APP_ID_RANDOM_PROVIDER","_randomChar","PLATFORM_INITIALIZER","PLATFORM_ID","APP_BOOTSTRAP_LISTENER","Console","LOCALE_ID$1","DEFAULT_CURRENCY_CODE","ngModuleFactory","componentFactories","Compiler_compileModuleSync__POST_R3__","NgModuleFactory$1","Compiler_compileModuleSync","Compiler_compileModuleAsync","Compiler_compileModuleAndAllComponentsSync__POST_R3__","declaration","ModuleWithComponentFactories","Compiler_compileModuleAndAllComponentsSync","Compiler_compileModuleAndAllComponentsAsync","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","getModuleId","Zone","scheduleMicroTask","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","fork","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","nativeCancelAnimationFrame","cancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","getNativeRequestAnimationFrame","zone","delayChangeDetectionForEventsDelegate","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","delayChangeDetectionForEvents","isAngularZone","onInvokeTask","applyThis","applyArgs","onEnter","invokeTask","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","change","_hasPendingMicrotasks","microTask","macroTask","onHandleError","runOutsideAngular","forkInnerZoneWithAngularBehavior","assertInAngularZone","NgZone","isInAngularZone","runTask","EMPTY_PAYLOAD","cancelTask","runGuarded","Testability","_ngZone","_pendingCount","_isZoneStable","_didWork","_callbacks","taskTrackingZone","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","timeoutId","doneCb","pending","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","getPendingRequestCount","findProviders","using","exactMatch","TestabilityRegistry","_applications","_testabilityGetter","addToWindow","registerApplication","testability","unregisterApplication","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","_NoopGetTestability","_devMode","_runModeLocked","_platform","ALLOW_MULTIPLE_PLATFORMS","parentPlatformFactory","extraProviders","getPlatform","injectedProviders","PlatformRef","inits","createPlatform","requiredToken","assertPlatform","_injector","_modules","_destroyListeners","bootstrapModuleFactory","moduleFactory","ngZone","ngZoneOption","NoopNgZone","isDevMode","ngZoneEventCoalescing","ngZoneRunCoalescing","getNgZone","ngZoneInjector","moduleRef","exceptionHandler","_callAndReportToErrorHandler","initStatus","_moduleDoBootstrap","bootstrapModule","compilerOptions","optionsReducer","compileNgModuleFactory","ApplicationRef","ngDoBootstrap","_zone","_exceptionHandler","_componentFactoryResolver","_initStatus","_bootstrapListeners","_views","_runningTick","_stable","componentTypes","_onMicrotaskEmptySubscription","isCurrentlyStable","stableSub","unstableSub","merge$1","share","componentOrFactory","cf","compRef","testabilityRegistry","_loadComponent","attachView","platformCore","createPlatformFactory","APPLICATION_MODULE_PROVIDERS","locale","$localize","ApplicationModule","ɵɵdefineNgModule","ɵɵdefineInjector","_DOM","PlatformLocation","historyGo","relativePosition","useBrowserPlatformLocation","BrowserPlatformLocation","_doc","_init","_history","getBaseHrefFromDOM","getDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","newPath","supportsState","go","getState","ɵngcc0","createBrowserPlatformLocation","pathEndIdx","LocationStrategy","provideLocationStrategy","platformLocation","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","joinWithSlash","includeHash","normalizeQueryParams","queryParams","externalUrl","Location","platformStrategy","_urlChangeListeners","_platformStrategy","browserBaseHref","stripTrailingSlash","_stripIndexHtml","ev","isCurrentPathEqualTo","baseHref","_stripBaseHref","_notifyUrlChangeListeners","onUrlChange","_urlChangeSubscription","onNext","onThrow","onReturn","createLocation","Plural","Zero","One","Two","Few","Many","Other","getLocalePluralCase","normalizeLocale","getLocaleData","parentLocale","findLocaleData","NgLocaleLocalization","NgLocalization","getPluralCategory","cookieStr","cookie","eqIndex","cookieName","cookieValue","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","_renderer","_iterableDiffer","_keyValueDiffer","_initialClasses","_rawClass","_removeClasses","_applyClasses","ɵisListLikeIterable","iterableChanges","_applyIterableChanges","keyValueChanges","_applyKeyValueChanges","_toggleClass","ɵstringify","rawClassVal","klass","ngClass","$implicit","ngForOf","even","NgForOf","_viewContainer","_template","_differs","_ngForOf","_ngForOfDirty","_differ","ngForTrackBy","_applyChanges","insertTuples","adjustedPreviousIndex","NgForOfContext","tuple","RecordViewTuple","_perViewChange","ilen","dir","ngForTemplate","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","_updateView","assertTemplate","ngIfThen","ngIfElse","_viewContainerRef","_templateRef","_created","enforceState","created","NgSwitch","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_defaultViews","_matchCase","matched","useDefault","ngSwitch","NgSwitchCase","viewContainer","SwitchView","ngSwitchCase","NgStyle","_ngStyle","_setStyle","nameAndUnit","unit","ngStyle","createSubscription","updateLatestValue","dispose","_promiseStrategy","PromiseStrategy","_subscribableStrategy","SubscribableStrategy","AsyncPipe","_latestValue","_subscription","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","invalidPipeArgumentError","CommonModule","PLATFORM_BROWSER_ID","supportsDOMEvents","makeCurrent","adapter","ɵsetRootDomAdapter","BrowserDomAdapter","onAndCancel","doc","getDefaultDocument","createHtmlDocument","isElementNode","isShadowRoot","DocumentFragment","baseElement","urlParsingNode","pathName","relativePath","resetBaseElement","getUserAgent","getCookie","ɵparseCookieValue","TRANSITION_ID","SERVER_TRANSITION_PROVIDERS","transitionId","dom","ɵgetDOM","setTestabilityGetter","BrowserGetTestability","ɵglobal","testabilities","didWork","decrement","didWork_","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","plugins","_eventNameToPlugin","_plugins","plugin","_findPluginFor","addGlobalEventListener","getZone","SharedStylesHost","_stylesSet","addStyles","additions","onStylesAdded","getAllStyles","DomSharedStylesHost","_hostNodes","_addStylesToHost","styleNodes","styleEl","addHost","hostNode","removeHost","styleNode","NAMESPACE_URIS","xhtml","xlink","xml","xmlns","COMPONENT_REGEX","compId","flattenStyles","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","DefaultDomRenderer2","EmulatedEncapsulationDomRenderer2","applyToHost","ShadowDomRenderer","newChild","refChild","oldChild","selectorOrNode","preserveContent","namespaceUri","removeAttributeNS","decoratePreventDefault","contentAttr","componentShortId","shimContentAttribute","hostAttr","shimHostAttribute","hostEl","shadowRoot","attachShadow","nodeOrShadowRoot","DomEventsPlugin","EventManagerPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","_chromeNumKeyPadMap","H","J","MODIFIER_KEY_GETTERS","altKey","control","ctrlKey","metaKey","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","modifierName","keyIdentifier","getEventKey","modifierGetter","getEventFullKey","keyName","DomSanitizer","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵgetSanitizationBypassType","ɵ_sanitizeUrl","bypassSecurityTrustHtml","trustedHtml","SafeHtmlImpl","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","trustedStyle","SafeStyleImpl","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","trustedScript","SafeScriptImpl","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","trustedUrl","SafeUrlImpl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","trustedResourceUrl","SafeResourceUrlImpl","ɵbypassSanitizationTrustResourceUrl","domSanitizerImplFactory","INJECTOR","platformBrowser","ɵPLATFORM_BROWSER_ID","ɵsetDocument","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","XhrFactory","BrowserModule","parentModule","work","Action","recycleAsyncId","requestAsyncId","execute","_execute","errorValue","errored","actions","Scheduler","SchedulerAction","AsyncScheduler","AsyncAction","emptyScheduled","isScheduler","hasValue","do","accept","toObservable","Notification","undefinedValueNotification","completeNotification","notification","scheduleMessage","ObserveOnSubscriber","ObserveOnMessage","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","switchMap","SwitchMapOperator","SwitchMapSubscriber","taskFn","scheduleBeforeRender","_matches","defaultIndex","matchingIndex","isElement","elProto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ComponentNgElementStrategy","eventEmitters","ReplaySubject","emitters","viewChangeDetectorRef","inputChanges","hasInputChanges","implementsOnChanges","scheduledChangeDetectionFn","scheduledDestroyFn","initialInputValues","unchangedInputs","elementZone","runInZone","initializeComponent","getInputValue","setInputValue","strictEquals","recordInputChange","scheduleDetectChanges","childInjector","nodes","wildcardIndex","ngContentIndex","findMatchingIndex","extractProjectableNodes","initializeInputs","initializeOutputs","applicationRef","emitter","callNgOnChanges","markViewForCheck","pendingChange","ngElementEventsSubscription","getComponentInputs","strategyFactory","ComponentNgElementStrategyFactory","attributeToPropertyInputs","char","camelToDashCase","getDefaultAttributeToPropertyInputs","NgElement","_ngElementStrategy","strategy","attributeChangedCallback","ngElementStrategy","connectedCallback","subscribedToEvents","subscribeToEvents","disconnectedCallback","customEvent","detail","CustomEvent","bubbles","cancelable","createCustomEvent","NgElementImpl","observedAttributes","sources","forkJoinInternal","completed","emitted","BaseControlValueAccessor","_elementRef","onChange","onTouched","registerOnTouched","registerOnChange","setDisabledState","isDisabled","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","NG_VALUE_ACCESSOR","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","writeValue","_handleInput","_compositionStart","_compositionEnd","$event","NG_VALIDATORS","NG_ASYNC_VALIDATORS","ɵisObservable","arrayOfErrors","validators","validator","isValidatorFn","presentValidators","isPresent","mergeErrors","executeValidators","compose","normalizeValidators","forkJoin","composeAsync","controlValidators","dirValidator","_rawValidators","_rawAsyncValidators","currentValidators","makeValidatorsArray","validatorsToAdd","hasValidator","AbstractControlDirective","_onDestroyCallbacks","valid","pristine","touched","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","composeValidators","_setAsyncValidators","_composedAsyncValidatorFn","composeAsyncValidators","_registerOnDestroy","_invokeOnDestroyCallbacks","errorCode","getError","ControlContainer","formDirective","ɵControlContainer_BaseFactory","valueAccessor","NgControlStatus","cd","_cd","submitted","NgControl","setUpValidators","_pendingValue","_pendingChange","_pendingDirty","updateOn","updateControl","setUpViewChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpModelChangePipeline","_pendingTouched","markAsTouched","setUpBlurPipeline","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","setUpDisabledChangeHandler","validateControlPresenceOnChange","cleanUpValidators","_registerOnCollectionChange","registerOnValidatorChange","getControlValidators","setValidators","mergeValidators","asyncValidators","getControlAsyncValidators","asyncValidator","setAsyncValidators","onValidatorChange","updateValueAndValidity","isControlUpdated","updatedValidators","updatedAsyncValidators","markAsDirty","emitModelToViewChange","form","_syncPendingControls","VALID","INVALID","DISABLED","validatorOrOpts","isOptionsObj","_hasOwnPendingAsyncValidator","_onCollectionChange","_onDisabledChange","coerceToValidator","coerceToAsyncValidator","validatorFn","asyncValidatorFn","_updateOn","addValidators","addAsyncValidators","removeValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","onlySelf","markAllAsTouched","_forEachChild","markAsUntouched","_updateTouched","markAsPristine","_updatePristine","markAsPending","emitEvent","disable","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","setParent","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","delimiter","controlToFind","FormGroup","controls","FormArray","at","_find","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_isBoxedValue","formState","_setUpdateStrategy","AbstractControl","pickValidators","pickAsyncValidators","_onChange","_applyFormState","emitViewToModelChange","patchValue","removeListItem","_setUpControls","registerControl","addControl","removeControl","setControl","controlName","_checkAllValuesPresent","_throwIfControlMissing","getRawValue","_reduceChildren","acc","FormControl","subtreeUpdated","updated","_reduceValue","initValue","_registerControl","removeAt","formDirectiveProvider","NgForm","resolvedPromise","_directives","ngSubmit","_findContainer","setUpControl","getControl","addFormGroup","setUpFormContainer","removeFormGroup","getFormGroup","updateModel","onSubmit","syncPendingControls","onReset","resetForm","RadioControlRegistryModule","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding$1","FormControlDirective","valueAccessors","_ngModelWarningConfig","_ngModelWarningSent","defaultAccessor","builtinAccessor","customAccessor","EH","selectValueAccessor","_isControlChanged","previousForm","cleanUpControl","viewModel","model","isPropertyUpdated","_ngModelWarningSentOnce","formDirectiveProvider$1","FormGroupDirective","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","cleanUpFormContainer","ɵInternalFormsSharedModule","ReactiveFormsModule","withConfig","warnOnNgModelWithFormControl","_value","getValue","modifiers","modifier","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","dueTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","lastValue","clearDebounce","dispatchNext","debouncedNext","FilterOperator","FilterSubscriber","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","TakeOperator","TakeSubscriber","SkipOperator","SkipSubscriber","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","notifier","TakeUntilOperator","takeUntilSubscriber","TakeUntilSubscriber","notifierSubscription","seenValue","fallbackValue","_isNumberValue","elementOrRef","hasV8BreakIterator","Intl","v8BreakIterator","supportedInputTypes","Platform","_platformId","isBrowser","platformId","isPlatformBrowser","EDGE","TRIDENT","BLINK","chrome","CSS","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","PlatformModule","candidateInputTypes","featureTestInput","supportsPassiveEvents","scrollBehaviorSupported","shadowDomIsSupported","supportsPassiveEventListeners","capture","scrollToFunction","scrollTo","createShadowRoot","_supportsShadowDom","rootNode","getRootNode","ShadowRoot","composedPath","__karma__","jasmine","jest","Mocha","MutationObserverFactory","ContentObserver","_mutationObserverFactory","_observedElements","_cleanupObserver","coerceElement","_observeElement","_unobserveElement","mutations","childList","subtree","CdkObserveContent","_contentObserver","_disabled","_currentSubscription","coerceBooleanProperty","_debounce","coerceNumberProperty","debounce","debounceTime","ObserversModule","_items","_activeItemIndex","_activeItem","_wrap","_letterKeyStream","_typeaheadSubscription","_vertical","_allowedModifierKeys","_homeAndEnd","_skipPredicateFn","_pressedLetters","tabOut","newItems","itemArray","skipPredicate","withWrap","shouldWrap","withVerticalOrientation","withHorizontalOrientation","_horizontal","withAllowedModifierKeys","withTypeAhead","debounceInterval","tap","letter","inputString","_getItemsArray","getLabel","toUpperCase","setActiveItem","withHomeAndEnd","previousActiveItem","updateActiveItem","onKeydown","keyCode","isModifierAllowed","setNextItemActive","setPreviousItemActive","setFirstItemActive","setLastItemActive","hasModifierKey","toLocaleUpperCase","isTyping","_setActiveItemByIndex","_setActiveItemByDelta","activeItem","_setActiveInWrapMode","_setActiveInDefaultMode","fallbackDelta","setInactiveStyles","setActiveStyles","touch","touches","changedTouches","identifier","radiusX","radiusY","INPUT_MODALITY_DETECTOR_OPTIONS","INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS","ignoreKeys","modalityEventListenerOptions","normalizePassiveListenerOptions","passive","InputModalityDetector","_mostRecentTarget","_modality","BehaviorSubject","_lastTouchMs","_onKeydown","_options","_getEventTarget","_onMousedown","isFakeMousedownFromScreenReader","_onTouchstart","isFakeTouchstartFromScreenReader","modalityDetected","skip","modalityChanged","distinctUntilChanged","ɵngcc1","i2","FOCUS_MONITOR_DEFAULT_OPTIONS","captureEventListenerOptions","FocusMonitor","_inputModalityDetector","_origin","_windowFocused","_originFromTouchInteraction","_elementInfo","_monitoredElementCount","_rootNodeFocusListenerCount","_windowFocusListener","_windowFocusTimeoutId","_stopInputModalityDetector","_rootNodeFocusAndBlurListener","_onFocus","_onBlur","_document","_detectionMode","detectionMode","monitor","checkChildren","_getShadowRoot","_getDocument","cachedInfo","_registerGlobalListeners","stopMonitoring","elementInfo","_setClasses","_removeGlobalListeners","focusVia","activeElement","_getClosestElementsInfo","currentElement","_originChanged","_setOrigin","_info","_getWindow","shouldSet","_getFocusOrigin","focusEventTarget","_shouldBeAttributedToTouch","_lastFocusOrigin","isFromInteraction","_originTimeoutId","relatedTarget","_emitOrigin","rootNodeFocusListeners","takeUntil","modality","BLACK_ON_WHITE_CSS_CLASS","WHITE_ON_BLACK_CSS_CLASS","HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS","HighContrastModeDetector","getHighContrastMode","testElement","documentWindow","computedStyle","computedColor","_applyBodyHighContrastModeCssClasses","_hasCheckedHighContrastMode","bodyClasses","DIR_DOCUMENT","htmlDir","BidiModule","concatAll","AUTO_STYLE","timings","stateChangeExpr","expr","_onDoneFns","_onStartFns","_onDestroyFns","_finished","parentPlayer","totalTime","_onFinish","onStart","hasStarted","_onStart","triggerMicrotask","restart","getPosition","triggerCallback","phaseName","_players","players","doneCount","destroyCount","startCount","player","_onDestroy","timeAtPosition","longestPlayer","longestSoFar","newPlayerIsLongest","beforeDestroy","NoopAnimationPlayer","ɵAnimationGroupPlayer","driver","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","normalizeStyleValue","LINE_START","copyAnimationEvent","makeAnimationEvent","triggerName","fromState","toState","defaultValue","command","separatorPos","_contains","elm1","elm2","_isNode","elems","elm","_CACHED_BODY","_IS_WEBKIT","containsVendorPrefix","matchesElement","containsElement","invokeQuery","newObj","newProp","NoopAnimationDriver","validateStyleProperty","computeStyle","animate","easing","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","_convertTimeValueToMS","ONE_SECOND","allowNegativeValues","delayMatch","easingVal","containsErrors","startIndex","parseTimeExpression","readPrototype","copyObj","styleAttrValue","getStyleAttributeString","camelCaseToDashCase","formerStyles","camelProp","dashCaseToCamelCase","writeStyleAttribute","sequence","PARAM_REGEX","lastIndex","varName","localVal","DASH_CASE_REGEXP","previousStyles","previousStyleProps","startingKeyframe","missingStyleProps","visitor","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","transitionValue","expressions","eventStr","alias","parseAnimationAlias","separator","makeLambdaFromStates","parseInnerTransitionStr","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","visitDslNode","normalizeAnimationEntry","currentQuerySelector","collectedStyles","queryCount","depCount","transitions","stateDef","transition","styleAst","astParams","containsDynamicStyles","missingSubs","stylesObj","extractStyleParams","missingSubsArr","iteratorToArray","matchers","parseTransitionExpr","normalizeAnimationOptions","furthestTime","innerAst","timingAst","makeTimingAst","resolveTiming","ast","dynamic","constructTimingAst","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","styleTuple","collectedEasing","styleData","styleMap","startTime","collectedEntry","updateCollectedStyle","validateStyleParams","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","generatedOffset","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","hasAmpersand","normalizeSelector","getOrSetAsInMap","optional","originalSelector","currentTransition","normalizeParams","preStyleProps","postStyleProps","subTimeline","_map","consume","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","ElementInstructionMap","AnimationTimelineContext","currentTimeline","setStyles","timelines","timeline","containsAnimation","allowOnlyTimelineStyles","createTimelineInstruction","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","resolveTimingValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","delayNextStep","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","interpolateParams","incrementTime","getCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","parentContext","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_localTimelineStyles","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","allStyles","allProperties","copyStyles","getFinalKeyframe","details0","details1","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","decimalPoints","mult","pow","AnimationStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","DIMENSIONAL_PROP_MAP","valAndSuffixMatch","makeBooleanMap","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","_triggerName","_stateStyles","currentState","nextState","matchFns","oneOrMoreTransitionsMatch","buildStyles","stateName","backupStateStyler","stateStyler","backupStyles","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","buildAnimationTimelines","createTransitionInstruction","queriedElementsList","defaultParams","combinedParams","styleObj","_normalizer","transitionFactories","AnimationStateStyles","balanceProperties","AnimationTransitionFactory","fallbackTransition","createFallbackTransition","matchTransition","matchStyles","EMPTY_INSTRUCTION_MAP","bodyNode","_animations","_playersById","register","buildAnimationAst","_buildPlayer","normalizeKeyframes","autoStylesMap","inst","optimizeGroupPlayer","_getPlayer","baseEvent","listenOnPlayer","QUEUED_CLASSNAME","DISABLED_CLASSNAME","DISABLED_SELECTOR","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","StateValue","_engine","_triggers","_elementListeners","_hostClassName","phase","isTriggerEventValid","triggersWithStates","statesByElement","afterFlush","_getTrigger","defaultToFallback","TransitionAnimationPlayer","k1","k2","objEquals","reportError","eraseStyles","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","deregister","stateMap","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","removeNode","engine","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","markedForDestroy","d0","elementContainsData","containsData","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","onRemovalComplete","createNamespace","AnimationTransitionNamespace","_balanceNamespaceList","collectEnterElement","registerTrigger","_fetchNamespace","nsId","markElementAsDisabled","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","cleanupFns","_flushAnimations","quietFns","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","Ft","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","nodeIsOrphaned","stringMap","setVal","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","post","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","finalPlayers","_flattenGroupPlayersRecur","flattenGroupPlayers","wrappedPlayer","currentValues","deleteOrUnsetInMap","_player","_containsRealPlayer","_queuedCallbacks","_queueEvent","valuesMap","elementPropsMap","defaultStyle","cloakVals","cloakElement","failedElements","roots","rootMap","nodeSet","localRootMap","getRoot","CLASSES_CACHE_KEY","postEntry","preEntry","_triggerCache","_transitionEngine","TransitionAnimationEngine","_timelineEngine","TimelineAnimationEngine","componentId","cacheKey","AnimationTrigger","buildTrigger","onInsert","onRemove","disableAnimations","parseTimelineCommand","eventPhase","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","_element","_startStyles","_endStyles","initialStyles","initialStylesByElement","_initialStyles","isNonAnimatableStyle","ANIMATION_PROP","ANIMATIONEND_EVENT","_delay","_easing","_fillMode","_onDoneFn","_startTime","_eventFn","_handleCallback","anim","getAnimationStyle","countChars","setAnimationStyle","applyKeyframeAnimation","addRemoveAnimationEvent","playPauseAnimation","findIndexForAnimation","timestamp","_ngTestManualTimestamp","elapsedTime","animationName","findMatchingTokenIndex","removeKeyframeAnimation","searchToken","doRemove","_finalStyles","_specialStyles","currentSnapshot","_buildStyler","_styler","_flushStartFns","_flushDoneFns","ElementAnimationStyleHandler","finished","_startingStyles","__initialized","_styles","hypenatePropsObject","_count","buildKeyframeElement","keyframeStr","tab","kfElm","previousCssKeyframePlayers","CssKeyframesPlayer","allowPreviousPlayerStylesMerge","flatKeyframes","flattenKeyframesIntoStyles","balancePreviousStylesIntoKeyframes","DirectStylePlayer","findNodeToAppendKeyframeElement","specialStyles","packageNonAnimatableStyles","removeElement","_initialized","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","_resetDomPlayerState","_isNativeImpl","getElementAnimateFn","_cssKeyframesDriver","CssKeyframesDriver","overrideWebAnimationsSupport","playerOptions","previousWebAnimationPlayers","WebAnimationsPlayer","BrowserAnimationBuilder","AnimationBuilder","rootRenderer","_nextAnimationId","issueAnimationCommand","BrowserAnimationFactory","RendererAnimationPlayer","_command","_listen","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","BaseAnimationRenderer","animationTriggers","AnimationRenderer","_scheduleCountTask","scheduleListenerCallback","resolveElementFromTarget","dotIndex","parseTriggerCallbackName","InjectableAnimationEngine","ɵAnimationEngine","ANIMATION_MODULE_TYPE","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ɵCssKeyframesDriver","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","ctx_r0","ctx_r1","_c2","MATERIAL_SANITY_CHECKS","SUPPORTS_INTL_API","MatCommonModule","highContrastModeDetector","sanityChecks","_hasDoneGlobalChecks","_sanityChecks","_checkDoctypeIsDefined","_checkThemeIsPresent","_checkCdkVersionMatch","_checkIsEnabled","_isTestEnvironment","doctype","VERSION$2","defaultColor","_color","colorPalette","_disableRipple","defaultTabIndex","_tabIndex","stateChanges","errorState","updateErrorState","oldState","errorStateMatcher","_defaultErrorStateMatcher","isErrorState","ngControl","_parentFormGroup","_parentForm","ErrorStateMatcher","MatLineModule","fadeOut","fadeOutRipple","defaultRippleAnimationConfig","enterDuration","exitDuration","passiveEventOptions","pointerDownEvents","pointerUpEvents","_target","elementOrElementRef","_isPointerDown","_activeRipples","_pointerUpEventsRegistered","_containerElement","fadeInRipple","containerRect","_containerRect","animationConfig","centered","radius","distX","distY","distanceToFurthestCorner","ripple","transitionDuration","enforceStyleRecalculation","rippleRef","RippleRef","persistent","_mostRecentTransientRipple","_runTimeoutOutsideZone","isMostRecentTransientRipple","wasActive","rippleEl","opacity","fadeOutAll","fadeOutAllNonPersistent","setupTriggerEvents","_triggerElement","_removeTriggerEvents","_registerEvents","handleEvent","_onTouchStart","_onPointerUp","isFakeMousedown","isSyntheticEvent","_lastTouchStartEvent","rippleDisabled","clientX","clientY","rippleConfig","terminateOnPointerUp","eventTypes","MAT_RIPPLE_GLOBAL_OPTIONS","MatRipple","globalOptions","_animationMode","_isInitialized","_globalOptions","_rippleRenderer","RippleRenderer","_setupTriggerEventsIfEnabled","_trigger","launch","configOrX","ɵngcc2","unbounded","MatRippleModule","MatPseudoCheckbox","MatPseudoCheckboxModule","MAT_OPTION_PARENT_COMPONENT","_MatOptgroupMixinBase","mixinDisabled","_uniqueOptgroupIdCounter","_MatOptgroupBase","_labelId","_inert","inertGroups","MAT_OPTGROUP","_uniqueIdCounter","isUserInput","_MatOptionBase","_changeDetectorRef","_active","_mostRecentViewValue","onSelectionChange","_stateChanges","disableRipple","_getHostElement","select","_emitSelectionChangeEvent","deselect","viewValue","_handleKeydown","_selectViaInteraction","_getAriaSelected","_getTabIndex","MatOptionSelectionChange","MatOption","MatOption_mat_pseudo_checkbox_0_Template","MatOption_span_3_Template","ɵngcc3","MatOptionModule","fromEvent","setupSubscription","sourceObj","isEventTarget","isJQueryStyleEventEmitter","addListener","removeListener","isNodeStyleEventEmitter","nextHandle","RESOLVED","activeHandles","Immediate","findAndClearHandle","durationSelector","AuditSubscriber","throttled","clearThrottle","periodOrScheduler","period","isNumeric","due","AuditOperator","audit","timer","UniqueSelectionDispatcher","registered","ScrollDispatcher","_scrolled","_globalSubscription","_scrolledCount","scrollContainers","scrollable","elementScrolled","scrollableReference","scrolled","auditTimeInMs","_addGlobalListener","auditTime","_removeGlobalListener","ancestorScrolled","ancestors","getAncestorScrollContainers","scrollingContainers","_scrollableContainsElement","scrollableElement","getElementRef","ViewportRuler","_change","_changeListener","_viewportSize","getViewportSize","_updateViewportSize","getViewportRect","scrollPosition","getViewportScrollPosition","documentRect","scrollY","scrollX","throttleTime","innerWidth","innerHeight","CdkScrollableModule","ScrollingModule","attach","_attachedHost","setAttachedHost","Portal","viewContainerRef","_isDisposed","attachDomPortal","hasAttached","_attachedPortal","portal","ComponentPortal","attachComponentPortal","TemplatePortal","attachTemplatePortal","DomPortal","_invokeDisposeFn","setDisposeFn","_disposeFn","BasePortalOutlet","outletElement","_defaultInjector","replaceChild","_getComponentRootNode","rootNodes","CdkPortalOutlet","_getRootNode","_attachedRef","PortalModule","supportsScrollBehavior","_viewportRuler","_previousHTMLStyles","_isEnabled","_canBeEnabled","_previousScrollPosition","coerceCssPixelValue","htmlStyle","bodyStyle","previousHtmlScrollBehavior","scrollBehavior","previousBodyScrollBehavior","_scrollDispatcher","_config","_scrollSubscription","_detach","_overlayRef","overlayRef","threshold","_initialScrollPosition","updatePosition","containerBounds","scrollContainerRect","scrollThrottle","autoClose","overlayRect","overlayElement","isElementScrolledOutsideView","ScrollStrategyOptions","NoopScrollStrategy","CloseScrollStrategy","block","BlockScrollStrategy","reposition","RepositionScrollStrategy","i1$1","scrollStrategy","panelClass","backdropClass","disposeOnNavigation","configKeys","overlay","originX","originY","overlayX","overlayY","connectionPair","scrollableViewProperties","BaseOverlayDispatcher","_attachedOverlays","OverlayKeyboardDispatcher","_keydownListener","overlays","_keydownEvents","_isAttached","OverlayOutsideClickDispatcher","_cursorStyleIsSet","_pointerDownListener","_pointerDownEventTarget","_clickListener","_outsidePointerEvents","_cursorOriginalValue","OverlayContainer","getContainerElement","containerClass","oppositePlatformContainers","Tg","_portalOutlet","_pane","_keyboardDispatcher","_outsideClickDispatcher","_backdropElement","_backdropClick","_attachments","_detachments","_locationChanges","_backdropClickHandler","_scrollStrategy","_positionStrategy","positionStrategy","attachResult","_previousHostParent","_updateStackingOrder","_updateElementSize","_updateElementDirection","take","_togglePointerEvents","_attachBackdrop","_toggleClasses","detachBackdrop","detachmentResult","_detachContentWhenStable","isAttached","_disposeScrollStrategy","_disposeBackdrop","backdropClick","attachments","detachments","keydownEvents","outsidePointerEvents","getConfig","updatePositionStrategy","updateSize","sizeConfig","setDirection","addPanelClass","removePanelClass","updateScrollStrategy","minWidth","minHeight","maxWidth","maxHeight","enablePointer","pointerEvents","showingClass","backdropToDetach","finishDetach","cssClasses","isAdd","coerceArray","cssClass","boundingBoxClass","cssUnitPattern","connectedTo","_overlayContainer","_lastBoundingBoxSize","_isPushed","_canPush","_growAfterOpen","_hasFlexibleDimensions","_positionLocked","_viewportMargin","_scrollables","_preferredPositions","_positionChanges","_resizeSubscription","_offsetX","_offsetY","_appliedPanelClasses","positionChanges","setOrigin","_validatePositions","_boundingBox","_isInitialRender","_lastPosition","reapplyLastPosition","_clearPanelClasses","_resetOverlayElementStyles","_resetBoundingBoxStyles","_viewportRect","_getNarrowedViewportRect","_originRect","_getOriginRect","_overlayRect","originRect","viewportRect","flexibleFits","originPoint","_getOriginPoint","overlayPoint","_getOverlayPoint","overlayFit","_getOverlayFit","isCompletelyWithinViewport","_applyPosition","_canFitWithFlexibleDimensions","boundingBoxRect","_calculateBoundingBoxRect","visibleArea","bestFit","bestScore","fit","score","weight","_previousPushAmount","extendStyles","alignItems","justifyContent","lastPosition","withScrollableContainers","scrollables","withPositions","withViewportMargin","margin","withFlexibleDimensions","flexibleDimensions","withGrowAfterOpen","growAfterOpen","withPush","canPush","withLockedPosition","isLocked","withDefaultOffsetX","withDefaultOffsetY","withTransformOriginOn","_transformOriginSelector","startX","_isRtl","endX","overlayStartX","overlayStartY","rawOverlayRect","getRoundedBoundingClientRect","_getOffset","topOverflow","bottomOverflow","visibleWidth","_subtractOverflows","visibleHeight","fitsInViewportVertically","fitsInViewportHorizontally","availableHeight","availableWidth","getPixelValue","horizontalFit","_pushOverlayOnScreen","overflowRight","overflowBottom","overflowTop","overflowLeft","pushX","pushY","_setTransformOrigin","_setOverlayElementStyles","_setBoundingBoxStyles","_addPanelClasses","_getScrollVisibility","changeEvent","ConnectedOverlayPositionChange","xOrigin","yOrigin","isRtl","smallestDistanceToViewportEdge","previousHeight","previousWidth","_hasExactPosition","hasExactPosition","hasFlexibleDimensions","_getExactOverlayY","_getExactOverlayX","transformString","virtualKeyboardOffset","horizontalStyleProperty","originBounds","overlayBounds","scrollContainerBounds","isOriginClipped","isElementClippedByScrolling","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","overflows","currentOverflow","axis","clientRect","originPos","overlayPos","viewportRuler","overlayContainer","FlexibleConnectedPositionStrategy","withFallbackPosition","onPositionChange","_direction","recalculateLastPosition","ConnectionPositionPair","withDirection","withOffsetX","withOffsetY","wrapperClass","_cssPosition","_topOffset","_bottomOffset","_leftOffset","_rightOffset","_alignItems","_justifyContent","_width","_height","centerHorizontally","centerVertically","parentStyles","shouldBeFlushHorizontally","shouldBeFlushVertically","marginLeft","marginTop","marginBottom","marginRight","OverlayPositionBuilder","GlobalPositionStrategy","ConnectedPositionStrategy","flexibleConnectedTo","nextUniqueId","Overlay","scrollStrategies","_positionBuilder","_directionality","_createHostElement","pane","_createPaneElement","portalOutlet","_createPortalOutlet","overlayConfig","OverlayConfig","OverlayRef","DomPortalOutlet","ɵngcc4","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","OverlayModule","_c0","_c1","_c3","ctx_r10","_control","placeholder","_r14","ctx_r13","updateOutlineGap","MatFormField_label_9_ng_container_2_Template","MatFormField_label_9_ng_content_3_Template","MatFormField_label_9_span_4_Template","ctx_r4","_shouldAlwaysFloat","appearance","_hasLabel","hideRequiredMarker","required","ctx_r6","_subscriptAnimationState","ctx_r16","_hintLabelId","hintLabel","MatFormField_div_14_div_1_Template","ctx_r8","_c4","_c5","MAT_ERROR","matFormFieldAnimations","transitionMessages","MatFormFieldControl","_MAT_HINT","MatLabel","MatPlaceholder","MAT_PREFIX","MAT_SUFFIX","_MatFormFieldBase","mixinColor","MAT_FORM_FIELD_DEFAULT_OPTIONS","MAT_FORM_FIELD","MatFormField","_labelOptions","_dir","_defaults","_outlineGapCalculationNeededImmediately","_outlineGapCalculationNeededOnStable","_showAlwaysAnimate","_hintLabel","floatLabel","_getDefaultFloatLabelState","_animationsEnabled","_hideRequiredMarker","_appearance","_canLabelFloat","_processHints","_floatLabel","_explicitFormFieldControl","_controlNonStatic","_controlStatic","getLabelId","_hasFloatingLabel","getConnectedOverlayOrigin","_connectionContainerRef","_validateControlChild","controlType","startWith","_validatePlaceholders","_syncDescribedByIds","_prefixChildren","_suffixChildren","_hintChildren","_errorChildren","_shouldForward","_hasPlaceholder","_placeholderChild","_labelChildNonStatic","_labelChildStatic","_shouldLabelFloat","shouldLabelFloat","_hideControlPlaceholder","_getDisplayedMessages","_animateAndLockLabel","_label","_validateHints","userAriaDescribedBy","startHint","hint","align","endHint","setDescribedByIds","labelEl","_isAttachedToDOM","startWidth","gapWidth","startEls","gapEls","containerStart","_getStartEnd","labelChildren","labelStart","labelWidth","outlineGapPadding","underlineRef","_inputContainerRef","autofilled","focused","onContainerClick","MatFormField_ng_container_3_Template","MatFormField_div_4_Template","MatFormField_label_9_Template","MatFormField_div_10_Template","MatFormField_div_11_Template","MatFormField_div_13_Template","MatFormField_div_14_Template","MatFormFieldModule","DelaySubscriber","_schedule","scheduleNotification","DelayMessage","formFieldId_r1","_classList","ariaLabel","_getPanelAriaLabelledby","_uniqueAutocompleteIdCounter","_MatAutocompleteMixinBase","mixinDisableRipple","MAT_AUTOCOMPLETE_DEFAULT_OPTIONS","autoActiveFirstOption","_MatAutocompleteBase","defaults","_activeOptionChanges","showPanel","_isOpen","displayWith","optionSelected","opened","optionActivated","_autoActiveFirstOption","sourceValues","sourceValue","trimmedString","coerceStringArray","_setVisibilityClasses","_keyManager","ActiveDescendantKeyManager","isOpen","_setVisibility","_setScrollTop","panel","_getScrollTop","_emitSelectEvent","MatAutocompleteSelectedEvent","labelId","ariaLabelledby","_visibleClass","_hiddenClass","panelWidth","MatAutocomplete","ɵMatAutocomplete_BaseFactory","optionGroups","MatAutocomplete_ng_template_0_Template","MAT_AUTOCOMPLETE_SCROLL_STRATEGY","MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER","MAT_AUTOCOMPLETE_VALUE_ACCESSOR","MatAutocompleteTrigger","_MatAutocompleteTriggerBase","_overlay","_formField","_componentDestroyed","_autocompleteDisabled","_manuallyFloatingLabel","_viewportSubscription","_canOpenOnNextFocus","_closeKeyEventStream","_windowBlurHandler","panelOpen","_onTouched","autocompleteAttribute","_overlayAttached","optionSelections","observableFactory","autocomplete","_setStrategyPositions","_destroyPanel","openPanel","_attachOverlay","closePanel","_resetLabel","_closingActionsSubscription","_getOutsideClickStream","clickTarget","formField","customOrigin","_setTriggerValue","activeOption","_resetActiveItem","prevActiveItem","isArrowKey","_canOpen","_scrollToOption","activeItemIndex","_previousValue","_handleFocus","shouldAnimate","_subscribeToClosingActions","delayFor","absoluteDelay","DelayOperator","wasOpen","panelClosingActions","_setValueAndClose","toDisplay","inputValue","_clearPreviousSelectedOption","_getConnectedElement","_getPanelWidth","_portal","_getOverlayConfig","stopPropagation","_getOverlayPosition","overlayPanelClass","belowPositions","_aboveClass","abovePositions","_getHostWidth","labelCount","optionIndex","optionsArray","groups","groupCounter","_countGroupLabelsBeforeOption","newScrollPosition","optionOffset","optionHeight","currentScrollPosition","panelHeight","_getOptionScrollPosition","offsetHeight","ɵngcc5","autocompleteDisabled","ɵMatAutocompleteTrigger_BaseFactory","MatAutocompleteModule","BUTTON_HOST_ATTRIBUTES","_MatButtonBase","MatButton","_focusMonitor","isRoundButton","_hasHostAttributes","isIconButton","_isRippleDisabled","attribute","MatButtonModule","CatchOperator","CatchSubscriber","err2","FinallySubscriber","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","getAll","lcName","HttpHeaders","copyFrom","applyUpdate","toDelete","existing","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","updates","cloneFrom","encoder","HttpUrlEncodingCodec","fromString","fromObject","rawParams","codec","eqIdx","paramParser","appendAll","eKey","HttpParams","valueToString","FormData","third","fourth","reportProgress","u8","HttpContext","urlWithParams","qIdx","serializeBody","isBlob","isFormData","URLSearchParams","isUrlSearchParams","detectContentTypeHeader","setHeaders","HttpRequest","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","User","defaultStatus","defaultStatusText","HttpResponseBase","HttpHeaderResponse","HttpResponse","HttpClient","req","events$","concatMap","res$","jsonp","callbackParam","addBody","HttpHandler","interceptor","intercept","HTTP_INTERCEPTORS","NoopInterceptor","XSSI_PREFIX","HttpXhrBackend","xhrFactory","detectedType","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","responseURL","getResponseUrl","onLoad","originalBody","HttpErrorResponse","sentHeaders","onDownProgress","progressEvent","partialText","onUpProgress","progress","upload","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfCookieExtractor","lastCookieString","lastToken","parseCount","getToken","cookieString","HttpXsrfInterceptor","tokenService","headerName","lcUrl","HttpXsrfTokenExtractor","HttpInterceptingHandler","backend","interceptors","reduceRight","HttpInterceptorHandler","HttpBackend","HttpClientXsrfModule","HttpClientModule","withOptions","iconName","literal","svgText","MatIconRegistry","_httpClient","_sanitizer","_errorHandler","_svgIconConfigs","_iconSetConfigs","_cachedIconsByUrl","_inProgressUrlFetches","_fontCssClassesByAlias","_resolvers","_defaultFontSetClass","addSvgIcon","addSvgIconInNamespace","addSvgIconLiteral","addSvgIconLiteralInNamespace","_addSvgIconConfig","SvgIconConfig","addSvgIconResolver","resolver","cleanLiteral","getMatIconFailedToSanitizeLiteralError","addSvgIconSet","addSvgIconSetInNamespace","addSvgIconSetLiteral","addSvgIconSetLiteralInNamespace","_addSvgIconSetConfig","registerFontClassAlias","classNameForFontAlias","setDefaultFontSetClass","getDefaultFontSetClass","getSvgIconFromUrl","safeUrl","getMatIconFailedToSanitizeUrlError","cachedIcon","cloneSvg","_loadSvgIconFromConfig","getNamedSvgIcon","iconKey","_getSvgFromConfig","_getIconConfigFromResolvers","iconSetConfigs","_getSvgFromIconSetConfigs","getMatIconNameNotFoundError","_svgElementFromConfig","namedIcon","_extractIconWithNameFromAnySet","iconSetConfig","_loadSvgIconSetFromConfig","catchError","errorMessage","foundIcon","_extractSvgIconFromSet","_fetchIcon","iconSet","iconSource","iconElement","_setSvgAttributes","_toSvgElement","_svgElementFromString","iconConfig","inProgressFetch","FinallyOperator","configNamespace","isSafeUrlWithOptions","i3","_MatIconBase","MAT_ICON_LOCATION","getPathname","funcIriAttributes","funcIriAttributeSelector","funcIriPattern","MatIcon","_iconRegistry","ariaHidden","_inline","_currentIconFetch","inline","_svgIcon","_updateSvgIcon","_clearSvgElement","_fontSet","_cleanupFontValue","_updateFontIconClasses","_fontIcon","_splitIconName","cachedElements","_elementsWithExternalReferences","_previousPath","_prependPathToReferences","_usingFontIcon","svgIcon","_setSvgElement","styleTags","_cacheChildrenWithExternalReferences","layoutElement","childCount","fontSetClass","fontSet","_previousFontSetClass","fontIcon","_previousFontIconClass","elementsWithFuncIri","elementWithReference","rawName","_svgNamespace","_svgName","MatIconModule","listenerOptions","AutofillMonitor","_monitoredElements","isAutofilled","unlisten","TextFieldModule","MAT_INPUT_VALUE_ACCESSOR","MAT_INPUT_INVALID_TYPES","_MatInputBase","mixinErrorState","MatInput","inputValueAccessor","_autofillMonitor","_required","_type","_readonly","_neverEmptyInputTypes","getSupportedInputTypes","_inputValueAccessor","_previousNativeValue","selectionStart","selectionEnd","setSelectionRange","_isServer","_isNativeSelect","_isTextarea","_isInFormField","_validateType","_dirtyCheckNativeValue","_dirtyCheckPlaceholder","_focusChanged","isFocused","_onInput","_previousPlaceholder","_isNeverEmpty","_isBadInput","validity","badInput","firstOption","_isInlineSelect","readonly","MatInputModule","MatDivider","_inset","inset","MatDividerModule","MatListIconCssMatStyler","MatListModule","MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER","MatMenuModule","_MatProgressBarBase","MAT_PROGRESS_BAR_LOCATION","progressbarId","MatProgressBar","_isNoopAnimation","_bufferValue","animationEnd","_animationEndSubscription","_rectangleFillValue","_primaryTransform","_bufferTransform","bufferValue","_primaryValueBar","MatProgressBarModule","_spinnerAnimationLabel","_getStrokeDashOffset","_getStrokeCircumference","_getCircleStrokeWidth","_getCircleRadius","_MatProgressSpinnerBase","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS","diameter","animationMode","_diameter","_fallbackAnimation","trackedDiameters","MatProgressSpinner","_diameters","_getSpinnerAnimationLabel","_noopAnimations","_forceAnimations","strokeWidth","_styleRoot","_attachStyleNode","_strokeWidth","_getViewBox","styleRoot","currentDiameter","diameters","diametersForElement","styleTag","_getAnimationText","strokeCircumference","MatProgressSpinner__svg_circle_1_Template","MatProgressSpinner__svg_circle_2_Template","MatSpinner","MatSpinner__svg_circle_1_Template","MatSpinner__svg_circle_2_Template","MatProgressSpinnerModule","_MatSlideToggleRequiredValidatorModule","MatSlideToggleModule","activeEventOptions","MAT_SLIDER_VALUE_ACCESSOR","MatSlider","_MatSliderBase","mixinTabIndex","tabIndex","_invert","_max","_min","_thumbLabel","_tickInterval","valueChange","_isSliding","_isActive","_tickIntervalPercent","_sliderDimensions","_controlValueAccessorChangeFn","_dirChangeSubscription","_pointerDown","isTouchEvent","button","_touchId","sliderHost","getTouchIdForSlider","pointerPosition","getPointerPositionOnPage","_lastPointerEvent","_focusHostElement","_onMouseenter","_bindGlobalEvents","_updateValueFromPosition","_valueOnSlideStart","_emitInputEvent","_pointerMove","_pointerUp","findMatchingTouch","_removeGlobalEvents","_emitChangeEvent","_windowBlur","_calculatePercentage","_roundToDecimal","blur","_blurHostElement","_clamp","_shouldInvertAxis","invert","_isMinValue","_getThumbGap","thumbLabel","_getTrackBackgroundStyles","_shouldInvertMouseCoords","_getTrackFillStyles","_getTicksContainerStyles","_getTicksStyles","tickSize","backgroundSize","shouldInvertAxis","side","_getThumbContainerStyles","_getSliderDimensions","_updateTickIntervalPercent","_increment","_onKeyup","triggerEvent","isTouch","endEventName","numSteps","exactValue","_calculateValue","closestValue","_createChangeEvent","tickInterval","trackSize","pixelsPerTick","stepsPerTick","MatSliderChange","percentage","_sliderWrapper","valueText","MatSliderModule","CDK_ACCORDION","nextId","CdkAccordionItem","accordion","_expansionDispatcher","_openCloseAllSubscription","expandedChange","_expanded","_removeUniqueSelectionListener","accordionId","_subscribeToOpenCloseAllActions","_openCloseAllActions","CdkAccordionModule","_getExpandedState","MAT_ACCORDION","EXPANSION_PANEL_ANIMATION_TIMING","matExpansionAnimations","indicatorRotate","bodyExpansion","visibility","MatExpansionPanelContent","uniqueId","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","MatExpansionPanel","_uniqueSelectionDispatcher","defaultOptions","_hideToggle","afterExpand","afterCollapse","_inputChanges","_headerId","_bodyAnimationDone","hideToggle","_togglePosition","togglePosition","_hasSpacing","displayMode","_lazyContent","_containsFocus","_body","focusedElement","bodyElement","MatExpansionPanel_ng_template_5_Template","_MatExpansionPanelHeaderMixinBase","MatExpansionPanelHeaderBase","MatExpansionPanelHeader","_parentChangeSubscription","accordionHideToggleChange","expandedHeight","collapsedHeight","_isExpanded","_getPanelId","_getTogglePosition","_showToggle","_getHeaderHeight","isExpanded","_keydown","_handleHeaderKeydown","_handleHeaderFocus","MatExpansionPanelHeader_span_4_Template","MatExpansionPanelTitle","MatExpansionModule","createEventBus","pdfJsViewer","attachDOMEventsToEventBus","attachmentsCount","outerContainer","outlineCount","PdfViewerComponent_1","PDFJS","PDFJSViewer","isSSR","RenderTextMode","ENABLED","ENHANCED","PdfViewerComponent","isVisible","_cMapsUrl","_renderText","_renderTextMode","_stickToPage","_originalSize","_page","_zoom","_rotation","_showAll","_canAutoResize","_fitToPage","_externalLinkTarget","_showBorders","isInitialized","afterLoadComplete","pageRendered","textLayerRendered","pageChange","pdfWorkerSrc","cMapsUrl","_pdf","getValidPageNumber","renderText","renderTextMode","originalSize","linkTarget","getLinkTarget","pdfViewerContainer","setupMultiPageViewer","setupSinglePageViewer","onPageResize","resizeTimeout","pdfMultiPageLinkService","pdfSinglePageLinkService","getCurrentViewer","pdfMultiPageFindController","pdfSinglePageFindController","loadPDF","resetPdfDocument","_latestScrolledPage","currentViewer","viewportWidth","stickToPage","getScale","pdfMultiPageViewer","pdfSinglePageViewer","disableTextLayer","setExternalLinkTarget","pageScrollTimeout","pdfOptions","getDocumentParams","srcType","lastLoaded","progressData","pdf","pdfContainerWidth","BORDER_WIDTH","pdfFindController","showAll","autoresize","fitToPage","showBorders","ctorParameters","__decorate","PdfViewerModule","outerValue","outerIndex","innerIndex","innerSub","outerSubscriber","InnerSubscriber","CombineLatestSubscriber","OuterSubscriber","toRespond","subscribeToResult","unused","_outerValue","_tryResultSelector","mediaQueriesForWebkitCompatibility","mediaQueryStyleNode","MediaMatcher","_matchMedia","matchMedia","noopMatchMedia","createEmptyStyleRule","media","BreakpointObserver","_mediaMatcher","_queries","_destroySubject","isMatched","splitQueries","mediaQuery","_registerQuery","mql","stateObservable","CombineLatestOperator","combineLatest","breakpointStates","breakpoints","a1","a2","Breakpoints","HighlighterPipe","regex","DocumentSearchComponent","breakpointObserver","cdr","environment","_breakpointObserver","_cdr","apiBase","observableOf","mobileScreen","displayOption","TradeName","HasHtml","hideAutocompletePanel","auto","MinuteSecondsPipe","minutes","seconds","AudioPlaybackService","minSec","loading","sliderMaxTime","timePassed","initialVolumeLevel","stateChange","updateStateEvents","timeSource","currentime","soundURL","playedHowls","onVolumeChange","killSubscriptions","resetState","seekTo","updateCurrentTime","AudioControlComponent","audioService","currentStateChange","playbackState","unscribeSubscriptions","onSliderChangeEnd","_http","getDocumentMeta","Identifier","showNotFound","smallScreen","pdfData","busy","callBackFn","ScrollSpyService","spyOn","intersectionObserver","IntersectionObserver","rootMargin","isIntersecting","DocumentNavigationComponent","scrollSpy","_scrollSpy","onWindowScroll","updateBrowseProgress","allHeadings","cmiVersion","headings","toLocaleLowerCase","toc","heading","innerText","sectionElement","pageYOffset","viewPortHeight","documentHeight","stickyHeader","headerHeight","sanitizePercentage","AppModule","custom1","createCustomElement","customElements","custom2","custom3","custom4","enableProdMode","__NgCli_bootstrap_1"],"sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./node_modules/howler/dist/howler.js","./node_modules/pdfjs-dist/build/pdf.js","./node_modules/pdfjs-dist/web/pdf_viewer.js","./node_modules/querystring/decode.js","./node_modules/querystring/encode.js","./node_modules/querystring/index.js","./node_modules/url/node_modules/punycode/punycode.js","./node_modules/url/url.js","./node_modules/url/util.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js","./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js","./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/@angular/elements/__ivy_ngcc__/fesm2015/elements.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/keycodes.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/skip.js","./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/@angular/cdk/fesm2015/coercion.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/platform.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/observers.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/a11y.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/bidi.js","./node_modules/@angular/cdk/fesm2015/cdk.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/@angular/animations/__ivy_ngcc__/fesm2015/animations.js","./node_modules/@angular/animations/__ivy_ngcc__/fesm2015/browser.js","./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/core.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/_esm2015/internal/util/Immediate.js","./node_modules/rxjs/_esm2015/internal/scheduler/asap.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js","./node_modules/rxjs/_esm2015/internal/operators/audit.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/operators/auditTime.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/collections.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/scrolling.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/portal.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/overlay.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/form-field.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/autocomplete.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/button.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/icon.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/text-field.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/input.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/divider.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/list.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/menu.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/progress-bar.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/progress-spinner.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/slide-toggle.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/slider.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/accordion.js","./node_modules/@angular/material/__ivy_ngcc__/fesm2015/expansion.js","./node_modules/tslib/tslib.es6.js","./node_modules/ng2-pdf-viewer/__ivy_ngcc__/fesm2015/ng2-pdf-viewer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/layout.js","./src/app/document-search/highlighter.ts","./src/app/document-search/document-search.component.html","./src/app/document-search/document-search.component.ts","./src/app/audio-control/time-format.pipe.ts","./src/app/audio-control/audio-playback.service.ts","./src/app/audio-control/audio-control.component.html","./src/app/audio-control/audio-control.component.ts","./src/app/pdf-viewer/pdf-viewer.component.html","./src/app/pdf-viewer/pdf-viewer.component.ts","./src/environments/environment.prod.ts","./src/app/document-navigation/scroll-spy.service.ts","./src/app/document-navigation/document-navigation.component.html","./src/app/document-navigation/document-navigation.component.ts","./src/app/app.module.ts","./src/main.ts"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 255;\nmodule.exports = webpackEmptyAsyncContext;","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n}\n\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\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new _url_polyfill.URL(baseUrl);\n\n if (!base.origin || base.origin === 'null') {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n var other = new _url_polyfill.URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\n\nvar PasswordException = function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n return PasswordException;\n}();\n\nexports.PasswordException = PasswordException;\n\nvar UnknownErrorException = function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n return UnknownErrorException;\n}();\n\nexports.UnknownErrorException = UnknownErrorException;\n\nvar InvalidPDFException = function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n return InvalidPDFException;\n}();\n\nexports.InvalidPDFException = InvalidPDFException;\n\nvar MissingPDFException = function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n return MissingPDFException;\n}();\n\nexports.MissingPDFException = MissingPDFException;\n\nvar UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n return UnexpectedResponseException;\n}();\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nvar FormatError = function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n return FormatError;\n}();\n\nexports.FormatError = FormatError;\n\nvar AbortException = function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n return AbortException;\n}();\n\nexports.AbortException = AbortException;\nvar 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\n return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n var strBuf = [];\n\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join('');\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n if (arr.length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n var resultLength = 0;\n var i,\n ii = arr.length;\n var item, itemLength;\n\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n\n var pos = 0;\n var data = new Uint8Array(resultLength);\n\n for (i = 0; i < ii; i++) {\n item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\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 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n try {\n new Function('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar Util = function UtilClosure() {\n function Util() {}\n\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n\n Util.transform = function Util_transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n };\n\n Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var 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 Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n };\n\n Util.inverseTransform = function Util_inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n };\n\n Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {\n var transpose = [m[0], m[2], m[1], m[3]];\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n };\n\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n\n return result;\n };\n\n return Util;\n}();\n\nexports.Util = Util;\nvar PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\nfunction stringToPDFString(str) {\n var i,\n n = str.length,\n strBuf = [];\n\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\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 (var key in obj) {\n return false;\n }\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\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction isSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n}\n\nfunction createPromiseCapability() {\n var capability = Object.create(null);\n var isSettled = false;\n Object.defineProperty(capability, 'settled', {\n get: function 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\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nvar createObjectURL = function createObjectURLClosure() {\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n return function createObjectURL(data, contentType) {\n var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {\n var blob = new Blob([data], {\n type: contentType\n });\n return _url_polyfill.URL.createObjectURL(blob);\n }\n\n var buffer = 'data:' + contentType + ';base64,';\n\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < ii ? b3 & 0x3F : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n };\n}();\n\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar globalScope = __w_pdfjs_require__(3);\n\nif (!globalScope._pdfjsCompatibilityChecked) {\n globalScope._pdfjsCompatibilityChecked = true;\n\n var isNodeJS = __w_pdfjs_require__(4);\n\n var hasDOM = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object';\n\n (function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n\n globalScope.btoa = function (chars) {\n return Buffer.from(chars, 'binary').toString('base64');\n };\n })();\n\n (function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n\n globalScope.atob = function (input) {\n return Buffer.from(input, 'base64').toString('binary');\n };\n })();\n\n (function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n })();\n\n (function checkDOMTokenListAddRemove() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n\n var div = document.createElement('div');\n div.classList.add('testOne', 'testTwo');\n\n if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) {\n return;\n }\n\n var OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n DOMTokenList.prototype.add = function () {\n for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) {\n tokens[_key] = arguments[_key];\n }\n\n for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) {\n var token = _tokens[_i];\n OriginalDOMTokenListAdd.call(this, token);\n }\n };\n\n DOMTokenList.prototype.remove = function () {\n for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n tokens[_key2] = arguments[_key2];\n }\n\n for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) {\n var token = _tokens2[_i2];\n OriginalDOMTokenListRemove.call(this, token);\n }\n };\n })();\n\n (function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n\n var div = document.createElement('div');\n\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n\n DOMTokenList.prototype.toggle = function (token) {\n var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token);\n return this[force ? 'add' : 'remove'](token), force;\n };\n })();\n\n (function checkStringStartsWith() {\n if (String.prototype.startsWith) {\n return;\n }\n\n __w_pdfjs_require__(5);\n })();\n\n (function checkStringEndsWith() {\n if (String.prototype.endsWith) {\n return;\n }\n\n __w_pdfjs_require__(36);\n })();\n\n (function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n\n __w_pdfjs_require__(38);\n })();\n\n (function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n\n __w_pdfjs_require__(40);\n })();\n\n (function checkArrayFrom() {\n if (Array.from) {\n return;\n }\n\n __w_pdfjs_require__(47);\n })();\n\n (function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n\n __w_pdfjs_require__(70);\n })();\n\n (function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n\n Math.log2 = __w_pdfjs_require__(75);\n })();\n\n (function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n\n Number.isNaN = __w_pdfjs_require__(77);\n })();\n\n (function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n\n Number.isInteger = __w_pdfjs_require__(79);\n })();\n\n (function checkPromise() {\n if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype[\"finally\"]) {\n return;\n }\n\n globalScope.Promise = __w_pdfjs_require__(82);\n })();\n\n (function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n\n globalScope.WeakMap = __w_pdfjs_require__(102);\n })();\n\n (function checkWeakSet() {\n if (globalScope.WeakSet) {\n return;\n }\n\n globalScope.WeakSet = __w_pdfjs_require__(119);\n })();\n\n (function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n\n String.codePointAt = __w_pdfjs_require__(123);\n })();\n\n (function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n\n String.fromCodePoint = __w_pdfjs_require__(125);\n })();\n\n (function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n\n __w_pdfjs_require__(127);\n })();\n\n (function checkStringPadStart() {\n if (String.prototype.padStart) {\n return;\n }\n\n __w_pdfjs_require__(134);\n })();\n\n (function checkStringPadEnd() {\n if (String.prototype.padEnd) {\n return;\n }\n\n __w_pdfjs_require__(138);\n })();\n\n (function checkObjectValues() {\n if (Object.values) {\n return;\n }\n\n Object.values = __w_pdfjs_require__(140);\n })();\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function isNodeJS() {\n return (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'] && !process.versions['electron'];\n};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(6);\n\nmodule.exports = __w_pdfjs_require__(9).String.startsWith;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar toLength = __w_pdfjs_require__(28);\n\nvar context = __w_pdfjs_require__(30);\n\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n$export($export.P + $export.F * __w_pdfjs_require__(35)(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search;\n }\n});\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\n\nvar core = __w_pdfjs_require__(9);\n\nvar hide = __w_pdfjs_require__(10);\n\nvar redefine = __w_pdfjs_require__(20);\n\nvar ctx = __w_pdfjs_require__(26);\n\nvar PROTOTYPE = 'prototype';\n\nvar $export = function $export(type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n\n for (key in source) {\n own = !IS_FORCED && target && target[key] !== undefined;\n out = (own ? target : source)[key];\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if (target) redefine(target, key, out, type & $export.U);\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\n\nglobal.core = core;\n$export.F = 1;\n$export.G = 2;\n$export.S = 4;\n$export.P = 8;\n$export.B = 16;\n$export.W = 32;\n$export.U = 64;\n$export.R = 128;\nmodule.exports = $export;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif (typeof __g == 'number') __g = global;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = module.exports = {\n version: '2.6.9'\n};\nif (typeof __e == 'number') __e = core;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(11);\n\nvar createDesc = __w_pdfjs_require__(19);\n\nmodule.exports = __w_pdfjs_require__(15) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(14);\n\nvar toPrimitive = __w_pdfjs_require__(18);\n\nvar dP = Object.defineProperty;\nexports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) {}\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\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function (it) {\n return _typeof(it) === 'object' ? it !== null : typeof it === 'function';\n};\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () {\n return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(16)(function () {\n return Object.defineProperty({}, 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar document = __w_pdfjs_require__(8).document;\n\nvar is = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\n\nvar hide = __w_pdfjs_require__(10);\n\nvar has = __w_pdfjs_require__(21);\n\nvar SRC = __w_pdfjs_require__(22)('src');\n\nvar $toString = __w_pdfjs_require__(23);\n\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__w_pdfjs_require__(9).inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar id = 0;\nvar px = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(24)('native-function-to-string', Function.toString);\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = __w_pdfjs_require__(9);\n\nvar global = __w_pdfjs_require__(8);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __w_pdfjs_require__(25) ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = false;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(27);\n\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n\n switch (length) {\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n\n return function () {\n return fn.apply(that, arguments);\n };\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(29);\n\nvar min = Math.min;\n\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n};\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isRegExp = __w_pdfjs_require__(31);\n\nvar defined = __w_pdfjs_require__(34);\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar cof = __w_pdfjs_require__(32);\n\nvar MATCH = __w_pdfjs_require__(33)('match');\n\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar store = __w_pdfjs_require__(24)('wks');\n\nvar uid = __w_pdfjs_require__(22);\n\nvar _Symbol = __w_pdfjs_require__(8).Symbol;\n\nvar USE_SYMBOL = typeof _Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar MATCH = __w_pdfjs_require__(33)('match');\n\nmodule.exports = function (KEY) {\n var re = /./;\n\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) {}\n }\n\n return true;\n};\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(37);\n\nmodule.exports = __w_pdfjs_require__(9).String.endsWith;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar toLength = __w_pdfjs_require__(28);\n\nvar context = __w_pdfjs_require__(30);\n\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n$export($export.P + $export.F * __w_pdfjs_require__(35)(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;\n }\n});\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(39);\n\nmodule.exports = __w_pdfjs_require__(9).String.includes;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar context = __w_pdfjs_require__(30);\n\nvar INCLUDES = 'includes';\n$export($export.P + $export.F * __w_pdfjs_require__(35)(INCLUDES), 'String', {\n includes: function includes(searchString) {\n return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(41);\n\nmodule.exports = __w_pdfjs_require__(9).Array.includes;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar $includes = __w_pdfjs_require__(42)(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__w_pdfjs_require__(46)('includes');\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toIObject = __w_pdfjs_require__(43);\n\nvar toLength = __w_pdfjs_require__(28);\n\nvar toAbsoluteIndex = __w_pdfjs_require__(45);\n\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n if (value != value) return true;\n } else for (; length > index; index++) {\n if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n }\n }\n return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar IObject = __w_pdfjs_require__(44);\n\nvar defined = __w_pdfjs_require__(34);\n\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(32);\n\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(29);\n\nvar max = Math.max;\nvar min = Math.min;\n\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar UNSCOPABLES = __w_pdfjs_require__(33)('unscopables');\n\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {});\n\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(48);\n\n__w_pdfjs_require__(63);\n\nmodule.exports = __w_pdfjs_require__(9).Array.from;\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $at = __w_pdfjs_require__(49)(true);\n\n__w_pdfjs_require__(50)(String, 'String', function (iterated) {\n this._t = String(iterated);\n this._i = 0;\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return {\n value: undefined,\n done: true\n };\n point = $at(O, index);\n this._i += point.length;\n return {\n value: point,\n done: false\n };\n});\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(29);\n\nvar defined = __w_pdfjs_require__(34);\n\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(25);\n\nvar $export = __w_pdfjs_require__(7);\n\nvar redefine = __w_pdfjs_require__(20);\n\nvar hide = __w_pdfjs_require__(10);\n\nvar Iterators = __w_pdfjs_require__(51);\n\nvar $iterCreate = __w_pdfjs_require__(52);\n\nvar setToStringTag = __w_pdfjs_require__(60);\n\nvar getPrototypeOf = __w_pdfjs_require__(61);\n\nvar ITERATOR = __w_pdfjs_require__(33)('iterator');\n\nvar BUGGY = !([].keys && 'next' in [].keys());\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function returnThis() {\n return this;\n};\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n\n var getMethod = function getMethod(kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n\n switch (kind) {\n case KEYS:\n return function keys() {\n return new Constructor(this, kind);\n };\n\n case VALUES:\n return function values() {\n return new Constructor(this, kind);\n };\n }\n\n return function entries() {\n return new Constructor(this, kind);\n };\n };\n\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n setToStringTag(IteratorPrototype, TAG, true);\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n\n $default = function values() {\n return $native.call(this);\n };\n }\n\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n\n return methods;\n};\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {};\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar create = __w_pdfjs_require__(53);\n\nvar descriptor = __w_pdfjs_require__(19);\n\nvar setToStringTag = __w_pdfjs_require__(60);\n\nvar IteratorPrototype = {};\n\n__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(33)('iterator'), function () {\n return this;\n});\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, {\n next: descriptor(1, next)\n });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar dPs = __w_pdfjs_require__(54);\n\nvar enumBugKeys = __w_pdfjs_require__(58);\n\nvar IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO');\n\nvar Empty = function Empty() {};\n\nvar PROTOTYPE = 'prototype';\n\nvar _createDict = function createDict() {\n var iframe = __w_pdfjs_require__(17)('iframe');\n\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n\n __w_pdfjs_require__(59).appendChild(iframe);\n\n iframe.src = 'javascript:';\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\n while (i--) {\n delete _createDict[PROTOTYPE][enumBugKeys[i]];\n }\n\n return _createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else result = _createDict();\n\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(11);\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar getKeys = __w_pdfjs_require__(55);\n\nmodule.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n\n while (length > i) {\n dP.f(O, P = keys[i++], Properties[P]);\n }\n\n return O;\n};\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(56);\n\nvar enumBugKeys = __w_pdfjs_require__(58);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(21);\n\nvar toIObject = __w_pdfjs_require__(43);\n\nvar arrayIndexOf = __w_pdfjs_require__(42)(false);\n\nvar IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) {\n if (key != IE_PROTO) has(O, key) && result.push(key);\n }\n\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n }\n\n return result;\n};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar shared = __w_pdfjs_require__(24)('keys');\n\nvar uid = __w_pdfjs_require__(22);\n\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar document = __w_pdfjs_require__(8).document;\n\nmodule.exports = document && document.documentElement;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar def = __w_pdfjs_require__(11).f;\n\nvar has = __w_pdfjs_require__(21);\n\nvar TAG = __w_pdfjs_require__(33)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n configurable: true,\n value: tag\n });\n};\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(21);\n\nvar toObject = __w_pdfjs_require__(62);\n\nvar IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO');\n\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n\n return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar defined = __w_pdfjs_require__(34);\n\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(26);\n\nvar $export = __w_pdfjs_require__(7);\n\nvar toObject = __w_pdfjs_require__(62);\n\nvar call = __w_pdfjs_require__(64);\n\nvar isArrayIter = __w_pdfjs_require__(65);\n\nvar toLength = __w_pdfjs_require__(28);\n\nvar createProperty = __w_pdfjs_require__(66);\n\nvar getIterFn = __w_pdfjs_require__(67);\n\n$export($export.S + $export.F * !__w_pdfjs_require__(69)(function (iter) {\n Array.from(iter);\n}), 'Array', {\n from: function from(arrayLike) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n\n result.length = index;\n return result;\n }\n});\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\n\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar Iterators = __w_pdfjs_require__(51);\n\nvar ITERATOR = __w_pdfjs_require__(33)('iterator');\n\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $defineProperty = __w_pdfjs_require__(11);\n\nvar createDesc = __w_pdfjs_require__(19);\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;\n};\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(68);\n\nvar ITERATOR = __w_pdfjs_require__(33)('iterator');\n\nvar Iterators = __w_pdfjs_require__(51);\n\nmodule.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(32);\n\nvar TAG = __w_pdfjs_require__(33)('toStringTag');\n\nvar ARG = cof(function () {\n return arguments;\n}()) == 'Arguments';\n\nvar tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (e) {}\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ITERATOR = __w_pdfjs_require__(33)('iterator');\n\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n\n riter['return'] = function () {\n SAFE_CLOSING = true;\n };\n\n Array.from(riter, function () {\n throw 2;\n });\n} catch (e) {}\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n\n iter.next = function () {\n return {\n done: safe = true\n };\n };\n\n arr[ITERATOR] = function () {\n return iter;\n };\n\n exec(arr);\n } catch (e) {}\n\n return safe;\n};\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(71);\n\nmodule.exports = __w_pdfjs_require__(9).Object.assign;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\n$export($export.S + $export.F, 'Object', {\n assign: __w_pdfjs_require__(72)\n});\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar DESCRIPTORS = __w_pdfjs_require__(15);\n\nvar getKeys = __w_pdfjs_require__(55);\n\nvar gOPS = __w_pdfjs_require__(73);\n\nvar pIE = __w_pdfjs_require__(74);\n\nvar toObject = __w_pdfjs_require__(62);\n\nvar IObject = __w_pdfjs_require__(44);\n\nvar $assign = Object.assign;\nmodule.exports = !$assign || __w_pdfjs_require__(16)(function () {\n var A = {};\n var B = {};\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) {\n B[k] = k;\n });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) {\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n }\n\n return T;\n} : $assign;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = {}.propertyIsEnumerable;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(76);\n\nmodule.exports = __w_pdfjs_require__(9).Math.log2;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(78);\n\nmodule.exports = __w_pdfjs_require__(9).Number.isNaN;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n return number != number;\n }\n});\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(80);\n\nmodule.exports = __w_pdfjs_require__(9).Number.isInteger;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\n$export($export.S, 'Number', {\n isInteger: __w_pdfjs_require__(81)\n});\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar floor = Math.floor;\n\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(83);\n\n__w_pdfjs_require__(48);\n\n__w_pdfjs_require__(84);\n\n__w_pdfjs_require__(87);\n\n__w_pdfjs_require__(100);\n\n__w_pdfjs_require__(101);\n\nmodule.exports = __w_pdfjs_require__(9).Promise;\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(68);\n\nvar test = {};\ntest[__w_pdfjs_require__(33)('toStringTag')] = 'z';\n\nif (test + '' != '[object z]') {\n __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $iterators = __w_pdfjs_require__(85);\n\nvar getKeys = __w_pdfjs_require__(55);\n\nvar redefine = __w_pdfjs_require__(20);\n\nvar global = __w_pdfjs_require__(8);\n\nvar hide = __w_pdfjs_require__(10);\n\nvar Iterators = __w_pdfjs_require__(51);\n\nvar wks = __w_pdfjs_require__(33);\n\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\nvar DOMIterables = {\n CSSRuleList: true,\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true,\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true,\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) {\n if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n }\n}\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar addToUnscopables = __w_pdfjs_require__(46);\n\nvar step = __w_pdfjs_require__(86);\n\nvar Iterators = __w_pdfjs_require__(51);\n\nvar toIObject = __w_pdfjs_require__(43);\n\nmodule.exports = __w_pdfjs_require__(50)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated);\n this._i = 0;\n this._k = kind;\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\nIterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (done, value) {\n return {\n value: value,\n done: !!done\n };\n};\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(25);\n\nvar global = __w_pdfjs_require__(8);\n\nvar ctx = __w_pdfjs_require__(26);\n\nvar classof = __w_pdfjs_require__(68);\n\nvar $export = __w_pdfjs_require__(7);\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar aFunction = __w_pdfjs_require__(27);\n\nvar anInstance = __w_pdfjs_require__(88);\n\nvar forOf = __w_pdfjs_require__(89);\n\nvar speciesConstructor = __w_pdfjs_require__(90);\n\nvar task = __w_pdfjs_require__(91).set;\n\nvar microtask = __w_pdfjs_require__(93)();\n\nvar newPromiseCapabilityModule = __w_pdfjs_require__(94);\n\nvar perform = __w_pdfjs_require__(95);\n\nvar userAgent = __w_pdfjs_require__(96);\n\nvar promiseResolve = __w_pdfjs_require__(97);\n\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\n\nvar empty = function empty() {};\n\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\nvar USE_NATIVE = !!function () {\n try {\n var promise = $Promise.resolve(1);\n\n var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(33)('species')] = function (exec) {\n exec(empty, empty);\n };\n\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) {}\n}();\n\nvar isThenable = function isThenable(it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function notify(promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n\n var run = function run(reaction) {\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\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n\n if (handler === true) result = value;else {\n if (domain) domain.enter();\n result = handler(value);\n\n if (domain) {\n domain.exit();\n exited = true;\n }\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 (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n\n while (chain.length > i) {\n run(chain[i++]);\n }\n\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\n\nvar onUnhandled = function onUnhandled(promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({\n promise: promise,\n reason: value\n });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n }\n\n promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\n\nvar isUnhandled = function isUnhandled(promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\n\nvar onHandleUnhandled = function onHandleUnhandled(promise) {\n task.call(global, function () {\n var handler;\n\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({\n promise: promise,\n reason: promise._v\n });\n }\n });\n};\n\nvar $reject = function $reject(value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise;\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\n\nvar $resolve = function $resolve(value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise;\n\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = {\n _w: promise,\n _d: false\n };\n\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({\n _w: promise,\n _d: false\n }, e);\n }\n};\n\nif (!USE_NATIVE) {\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n\n Internal = function Promise(executor) {\n this._c = [];\n this._a = undefined;\n this._s = 0;\n this._d = false;\n this._v = undefined;\n this._h = 0;\n this._n = false;\n };\n\n Internal.prototype = __w_pdfjs_require__(98)($Promise.prototype, {\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n\n this._c.push(reaction);\n\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n 'catch': function _catch(onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n\n OwnPromiseCapability = function OwnPromiseCapability() {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {\n return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {\n Promise: $Promise\n});\n\n__w_pdfjs_require__(60)($Promise, PROMISE);\n\n__w_pdfjs_require__(99)(PROMISE);\n\nWrapper = __w_pdfjs_require__(9)[PROMISE];\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(69)(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\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 values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(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.e) reject(result.v);\n return capability.promise;\n },\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 forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {\n throw TypeError(name + ': incorrect invocation!');\n }\n\n return it;\n};\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(26);\n\nvar call = __w_pdfjs_require__(64);\n\nvar isArrayIter = __w_pdfjs_require__(65);\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar toLength = __w_pdfjs_require__(28);\n\nvar getIterFn = __w_pdfjs_require__(67);\n\nvar BREAK = {};\nvar RETURN = {};\n\nvar _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () {\n return iterable;\n } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\n\n_exports.BREAK = BREAK;\n_exports.RETURN = RETURN;\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar aFunction = __w_pdfjs_require__(27);\n\nvar SPECIES = __w_pdfjs_require__(33)('species');\n\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(26);\n\nvar invoke = __w_pdfjs_require__(92);\n\nvar html = __w_pdfjs_require__(59);\n\nvar cel = __w_pdfjs_require__(17);\n\nvar global = __w_pdfjs_require__(8);\n\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function run() {\n var id = +this;\n\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar listener = function listener(event) {\n run.call(event.data);\n};\n\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }\n\n queue[++counter] = function () {\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n\n defer(counter);\n return counter;\n };\n\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n\n if (__w_pdfjs_require__(32)(process) == 'process') {\n defer = function defer(id) {\n process.nextTick(ctx(run, id, 1));\n };\n } else if (Dispatch && Dispatch.now) {\n defer = function defer(id) {\n Dispatch.now(ctx(run, id, 1));\n };\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function defer(id) {\n global.postMessage(id + '', '*');\n };\n\n global.addEventListener('message', listener, false);\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function defer(id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n } else {\n defer = function defer(id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\n\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n\n switch (args.length) {\n case 0:\n return un ? fn() : fn.call(that);\n\n case 1:\n return un ? fn(args[0]) : fn.call(that, args[0]);\n\n case 2:\n return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);\n\n case 3:\n return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);\n\n case 4:\n return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);\n }\n\n return fn.apply(that, args);\n};\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\n\nvar macrotask = __w_pdfjs_require__(91).set;\n\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __w_pdfjs_require__(32)(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function flush() {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n\n while (head) {\n fn = head.fn;\n head = head.next;\n\n try {\n fn();\n } catch (e) {\n if (head) notify();else last = undefined;\n throw e;\n }\n }\n\n last = undefined;\n if (parent) parent.enter();\n };\n\n if (isNode) {\n notify = function notify() {\n process.nextTick(flush);\n };\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, {\n characterData: true\n });\n\n notify = function notify() {\n node.data = toggle = !toggle;\n };\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve(undefined);\n\n notify = function notify() {\n promise.then(flush);\n };\n } else {\n notify = function notify() {\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last) last.next = task;\n\n if (!head) {\n head = task;\n notify();\n }\n\n last = task;\n };\n};\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(27);\n\nfunction PromiseCapability(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\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (exec) {\n try {\n return {\n e: false,\n v: exec()\n };\n } catch (e) {\n return {\n e: true,\n v: e\n };\n }\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\n\nvar navigator = global.navigator;\nmodule.exports = navigator && navigator.userAgent || '';\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar newPromiseCapability = __w_pdfjs_require__(94);\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\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefine = __w_pdfjs_require__(20);\n\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n redefine(target, key, src[key], safe);\n }\n\n return target;\n};\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\n\nvar dP = __w_pdfjs_require__(11);\n\nvar DESCRIPTORS = __w_pdfjs_require__(15);\n\nvar SPECIES = __w_pdfjs_require__(33)('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function get() {\n return this;\n }\n });\n};\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar core = __w_pdfjs_require__(9);\n\nvar global = __w_pdfjs_require__(8);\n\nvar speciesConstructor = __w_pdfjs_require__(90);\n\nvar promiseResolve = __w_pdfjs_require__(97);\n\n$export($export.P + $export.R, 'Promise', {\n 'finally': function _finally(onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () {\n return x;\n });\n } : onFinally, isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () {\n throw e;\n });\n } : onFinally);\n }\n});\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar newPromiseCapability = __w_pdfjs_require__(94);\n\nvar perform = __w_pdfjs_require__(95);\n\n$export($export.S, 'Promise', {\n 'try': function _try(callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n }\n});\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(83);\n\n__w_pdfjs_require__(84);\n\n__w_pdfjs_require__(103);\n\n__w_pdfjs_require__(115);\n\n__w_pdfjs_require__(117);\n\nmodule.exports = __w_pdfjs_require__(9).WeakMap;\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\n\nvar each = __w_pdfjs_require__(104)(0);\n\nvar redefine = __w_pdfjs_require__(20);\n\nvar meta = __w_pdfjs_require__(108);\n\nvar assign = __w_pdfjs_require__(72);\n\nvar weak = __w_pdfjs_require__(109);\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar validate = __w_pdfjs_require__(110);\n\nvar NATIVE_WEAK_MAP = __w_pdfjs_require__(110);\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function wrapper(get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\nvar $WeakMap = module.exports = __w_pdfjs_require__(111)(WEAK_MAP, wrapper, methods, weak, true, true);\n\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n\n var result = this._f[key](a, b);\n\n return key == 'set' ? this : result;\n }\n\n return method.call(this, a, b);\n });\n });\n}\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(26);\n\nvar IObject = __w_pdfjs_require__(44);\n\nvar toObject = __w_pdfjs_require__(62);\n\nvar toLength = __w_pdfjs_require__(28);\n\nvar asc = __w_pdfjs_require__(105);\n\nmodule.exports = function (TYPE, $create) {\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 var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n\n if (TYPE) {\n if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {\n case 3:\n return true;\n\n case 5:\n return val;\n\n case 6:\n return index;\n\n case 2:\n result.push(val);\n } else if (IS_EVERY) return false;\n }\n }\n }\n\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar speciesConstructor = __w_pdfjs_require__(106);\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar isArray = __w_pdfjs_require__(107);\n\nvar SPECIES = __w_pdfjs_require__(33)('species');\n\nmodule.exports = function (original) {\n var C;\n\n if (isArray(original)) {\n C = original.constructor;\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n\n return C === undefined ? Array : C;\n};\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(32);\n\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar META = __w_pdfjs_require__(22)('meta');\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar has = __w_pdfjs_require__(21);\n\nvar setDesc = __w_pdfjs_require__(11).f;\n\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar FREEZE = !__w_pdfjs_require__(16)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\n\nvar setMeta = function setMeta(it) {\n setDesc(it, META, {\n value: {\n i: 'O' + ++id,\n w: {}\n }\n });\n};\n\nvar fastKey = function fastKey(it, create) {\n if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\n if (!has(it, META)) {\n if (!isExtensible(it)) return 'F';\n if (!create) return 'E';\n setMeta(it);\n }\n\n return it[META].i;\n};\n\nvar getWeak = function getWeak(it, create) {\n if (!has(it, META)) {\n if (!isExtensible(it)) return true;\n if (!create) return false;\n setMeta(it);\n }\n\n return it[META].w;\n};\n\nvar onFreeze = function onFreeze(it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\n\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefineAll = __w_pdfjs_require__(98);\n\nvar getWeak = __w_pdfjs_require__(108).getWeak;\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar anInstance = __w_pdfjs_require__(88);\n\nvar forOf = __w_pdfjs_require__(89);\n\nvar createArrayMethod = __w_pdfjs_require__(104);\n\nvar $has = __w_pdfjs_require__(21);\n\nvar validate = __w_pdfjs_require__(110);\n\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\nvar uncaughtFrozenStore = function uncaughtFrozenStore(that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function UncaughtFrozenStore() {\n this.a = [];\n};\n\nvar findUncaughtFrozen = function findUncaughtFrozen(store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function get(key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function has(key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function set(key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;else this.a.push([key, value]);\n },\n 'delete': function _delete(key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\nmodule.exports = {\n getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME;\n that._i = id++;\n that._l = undefined;\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n 'delete': function _delete(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function def(that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\n\nvar $export = __w_pdfjs_require__(7);\n\nvar redefine = __w_pdfjs_require__(20);\n\nvar redefineAll = __w_pdfjs_require__(98);\n\nvar meta = __w_pdfjs_require__(108);\n\nvar forOf = __w_pdfjs_require__(89);\n\nvar anInstance = __w_pdfjs_require__(88);\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar fails = __w_pdfjs_require__(16);\n\nvar $iterDetect = __w_pdfjs_require__(69);\n\nvar setToStringTag = __w_pdfjs_require__(60);\n\nvar inheritIfRequired = __w_pdfjs_require__(112);\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n\n var fixMethod = function fixMethod(KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY, KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) {\n fn.call(this, a === 0 ? 0 : a);\n return this;\n } : function set(a, b) {\n fn.call(this, a === 0 ? 0 : a, b);\n return this;\n });\n };\n\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n var THROWS_ON_PRIMITIVES = fails(function () {\n instance.has(1);\n });\n var ACCEPT_ITERABLES = $iterDetect(function (iter) {\n new C(iter);\n });\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n var $instance = new C();\n var index = 5;\n\n while (index--) {\n $instance[ADDER](index, index);\n }\n\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\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 if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n return C;\n};\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar setPrototypeOf = __w_pdfjs_require__(113).set;\n\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n }\n\n return that;\n};\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar check = function check(O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\n\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {\n try {\n set = __w_pdfjs_require__(26)(Function.call, __w_pdfjs_require__(114).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) {\n buggy = true;\n }\n\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pIE = __w_pdfjs_require__(74);\n\nvar createDesc = __w_pdfjs_require__(19);\n\nvar toIObject = __w_pdfjs_require__(43);\n\nvar toPrimitive = __w_pdfjs_require__(18);\n\nvar has = __w_pdfjs_require__(21);\n\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(14);\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nexports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) {}\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(116)('WeakMap');\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, {\n of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n\n while (length--) {\n A[length] = arguments[length];\n }\n\n return new this(A);\n }\n });\n};\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(118)('WeakMap');\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar aFunction = __w_pdfjs_require__(27);\n\nvar ctx = __w_pdfjs_require__(26);\n\nvar forOf = __w_pdfjs_require__(89);\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, {\n from: function from(source) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n\n return new this(A);\n }\n });\n};\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(83);\n\n__w_pdfjs_require__(84);\n\n__w_pdfjs_require__(120);\n\n__w_pdfjs_require__(121);\n\n__w_pdfjs_require__(122);\n\nmodule.exports = __w_pdfjs_require__(9).WeakSet;\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar weak = __w_pdfjs_require__(109);\n\nvar validate = __w_pdfjs_require__(110);\n\nvar WEAK_SET = 'WeakSet';\n\n__w_pdfjs_require__(111)(WEAK_SET, function (get) {\n return function WeakSet() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n}, {\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(116)('WeakSet');\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(118)('WeakSet');\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(124);\n\nmodule.exports = __w_pdfjs_require__(9).String.codePointAt;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar $at = __w_pdfjs_require__(49)(false);\n\n$export($export.P, 'String', {\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(126);\n\nmodule.exports = __w_pdfjs_require__(9).String.fromCodePoint;\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar toAbsoluteIndex = __w_pdfjs_require__(45);\n\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n fromCodePoint: function fromCodePoint(x) {\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));\n }\n\n return res.join('');\n }\n});\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(128);\n\n__w_pdfjs_require__(83);\n\nmodule.exports = __w_pdfjs_require__(9).Symbol;\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar global = __w_pdfjs_require__(8);\n\nvar has = __w_pdfjs_require__(21);\n\nvar DESCRIPTORS = __w_pdfjs_require__(15);\n\nvar $export = __w_pdfjs_require__(7);\n\nvar redefine = __w_pdfjs_require__(20);\n\nvar META = __w_pdfjs_require__(108).KEY;\n\nvar $fails = __w_pdfjs_require__(16);\n\nvar shared = __w_pdfjs_require__(24);\n\nvar setToStringTag = __w_pdfjs_require__(60);\n\nvar uid = __w_pdfjs_require__(22);\n\nvar wks = __w_pdfjs_require__(33);\n\nvar wksExt = __w_pdfjs_require__(129);\n\nvar wksDefine = __w_pdfjs_require__(130);\n\nvar enumKeys = __w_pdfjs_require__(131);\n\nvar isArray = __w_pdfjs_require__(107);\n\nvar anObject = __w_pdfjs_require__(12);\n\nvar isObject = __w_pdfjs_require__(13);\n\nvar toObject = __w_pdfjs_require__(62);\n\nvar toIObject = __w_pdfjs_require__(43);\n\nvar toPrimitive = __w_pdfjs_require__(18);\n\nvar createDesc = __w_pdfjs_require__(19);\n\nvar _create = __w_pdfjs_require__(53);\n\nvar gOPNExt = __w_pdfjs_require__(132);\n\nvar $GOPD = __w_pdfjs_require__(114);\n\nvar $GOPS = __w_pdfjs_require__(73);\n\nvar $DP = __w_pdfjs_require__(11);\n\nvar $keys = __w_pdfjs_require__(55);\n\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\n\nvar _stringify = $JSON && $JSON.stringify;\n\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function get() {\n return dP(this, 'a', {\n value: 7\n }).a;\n }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function wrap(tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {\n return _typeof(it) == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, {\n enumerable: createDesc(0, false)\n });\n }\n\n return setSymbolDesc(it, key, D);\n }\n\n return dP(it, key, D);\n};\n\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n\n while (l > i) {\n $defineProperty(it, key = keys[i++], P[key]);\n }\n\n return it;\n};\n\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n }\n\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n }\n\n return result;\n};\n\nif (!USE_NATIVE) {\n $Symbol = function _Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n\n var $set = function $set(value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: $set\n });\n return wrap(tag);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __w_pdfjs_require__(133).f = gOPNExt.f = $getOwnPropertyNames;\n __w_pdfjs_require__(74).f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__w_pdfjs_require__(25)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {\n Symbol: $Symbol\n});\n\nfor (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {\n wks(es6Symbols[j++]);\n}\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {\n wksDefine(wellKnownSymbols[k++]);\n}\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n 'for': function _for(key) {\n return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);\n },\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n\n for (var key in SymbolRegistry) {\n if (SymbolRegistry[key] === sym) return key;\n }\n },\n useSetter: function useSetter() {\n setter = true;\n },\n useSimple: function useSimple() {\n setter = false;\n }\n});\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n create: $create,\n defineProperty: $defineProperty,\n defineProperties: $defineProperties,\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n getOwnPropertyNames: $getOwnPropertyNames,\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\nvar FAILS_ON_PRIMITIVES = $fails(function () {\n $GOPS.f(1);\n});\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n return _stringify([S]) != '[null]' || _stringify({\n a: S\n }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }\n\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return;\n if (!isArray(replacer)) replacer = function replacer(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 _stringify.apply($JSON, args);\n }\n});\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\nsetToStringTag($Symbol, 'Symbol');\nsetToStringTag(Math, 'Math', true);\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = __w_pdfjs_require__(33);\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\n\nvar core = __w_pdfjs_require__(9);\n\nvar LIBRARY = __w_pdfjs_require__(25);\n\nvar wksExt = __w_pdfjs_require__(129);\n\nvar defineProperty = __w_pdfjs_require__(11).f;\n\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {\n value: wksExt.f(name)\n });\n};\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(55);\n\nvar gOPS = __w_pdfjs_require__(73);\n\nvar pIE = __w_pdfjs_require__(74);\n\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n\n while (symbols.length > i) {\n if (isEnum.call(it, key = symbols[i++])) result.push(key);\n }\n }\n\n return result;\n};\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar toIObject = __w_pdfjs_require__(43);\n\nvar gOPN = __w_pdfjs_require__(133).f;\n\nvar toString = {}.toString;\nvar windowNames = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function getWindowNames(it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(56);\n\nvar hiddenKeys = __w_pdfjs_require__(58).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(135);\n\nmodule.exports = __w_pdfjs_require__(9).String.padStart;\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar $pad = __w_pdfjs_require__(136);\n\nvar userAgent = __w_pdfjs_require__(96);\n\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toLength = __w_pdfjs_require__(28);\n\nvar repeat = __w_pdfjs_require__(137);\n\nvar defined = __w_pdfjs_require__(34);\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(29);\n\nvar defined = __w_pdfjs_require__(34);\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n\n for (; n > 0; (n >>>= 1) && (str += str)) {\n if (n & 1) res += str;\n }\n\n return res;\n};\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(139);\n\nmodule.exports = __w_pdfjs_require__(9).String.padEnd;\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar $pad = __w_pdfjs_require__(136);\n\nvar userAgent = __w_pdfjs_require__(96);\n\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padEnd: function padEnd(maxLength) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(141);\n\nmodule.exports = __w_pdfjs_require__(9).Object.values;\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n\nvar $values = __w_pdfjs_require__(142)(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar DESCRIPTORS = __w_pdfjs_require__(15);\n\nvar getKeys = __w_pdfjs_require__(55);\n\nvar toIObject = __w_pdfjs_require__(43);\n\nvar isEnum = __w_pdfjs_require__(74).f;\n\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n\n while (length > i) {\n key = keys[i++];\n\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n\n return result;\n };\n};\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n{\n var isReadableStreamSupported = false;\n\n if (typeof ReadableStream !== 'undefined') {\n try {\n new ReadableStream({\n start: function start(controller) {\n controller.close();\n }\n });\n isReadableStreamSupported = true;\n } catch (e) {}\n }\n\n if (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n } else {\n exports.ReadableStream = __w_pdfjs_require__(144).ReadableStream;\n }\n}\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (e, a) {\n for (var i in a) {\n e[i] = a[i];\n }\n})(exports, function (modules) {\n var installedModules = {};\n\n function __w_pdfjs_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: false,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n module.l = true;\n return module.exports;\n }\n\n __w_pdfjs_require__.m = modules;\n __w_pdfjs_require__.c = installedModules;\n\n __w_pdfjs_require__.i = function (value) {\n return value;\n };\n\n __w_pdfjs_require__.d = function (exports, name, getter) {\n if (!__w_pdfjs_require__.o(exports, name)) {\n Object.defineProperty(exports, name, {\n configurable: false,\n enumerable: true,\n get: getter\n });\n }\n };\n\n __w_pdfjs_require__.n = function (module) {\n var getter = module && module.__esModule ? function getDefault() {\n return module['default'];\n } : function getModuleExports() {\n return module;\n };\n\n __w_pdfjs_require__.d(getter, 'a', getter);\n\n return getter;\n };\n\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n\n __w_pdfjs_require__.p = \"\";\n return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n}([function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\n function IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n }\n\n exports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n };\n\n exports.createDataProperty = function (o, p, v) {\n assert(exports.typeIsObject(o));\n Object.defineProperty(o, p, {\n value: v,\n writable: true,\n enumerable: true,\n configurable: true\n });\n };\n\n exports.createArrayFromList = function (elements) {\n return elements.slice();\n };\n\n exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n };\n\n exports.CreateIterResultObject = function (value, done) {\n assert(typeof done === 'boolean');\n var obj = {};\n Object.defineProperty(obj, 'value', {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n });\n Object.defineProperty(obj, 'done', {\n value: done,\n enumerable: true,\n writable: true,\n configurable: true\n });\n return obj;\n };\n\n exports.IsFiniteNonNegativeNumber = function (v) {\n if (Number.isNaN(v)) {\n return false;\n }\n\n if (v === Infinity) {\n return false;\n }\n\n if (v < 0) {\n return false;\n }\n\n return true;\n };\n\n function Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n\n return Function.prototype.apply.call(F, V, args);\n }\n\n exports.InvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n var method = O[P];\n\n if (method === undefined) {\n return undefined;\n }\n\n return Call(method, O, args);\n };\n\n exports.PromiseInvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n\n try {\n return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n } catch (returnValueE) {\n return Promise.reject(returnValueE);\n }\n };\n\n exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n assert(Array.isArray(argsF));\n var method = void 0;\n\n try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n exports.TransferArrayBuffer = function (O) {\n return O.slice();\n };\n\n exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n highWaterMark = Number(highWaterMark);\n\n if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n }\n\n return highWaterMark;\n };\n\n exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n if (size !== undefined && typeof size !== 'function') {\n throw new TypeError('size property of a queuing strategy must be a function');\n }\n\n highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n return {\n size: size,\n highWaterMark: highWaterMark\n };\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n function rethrowAssertionErrorRejection(e) {\n if (e && e.constructor === AssertionError) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n\n function AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n }\n\n AssertionError.prototype = Object.create(Error.prototype);\n AssertionError.prototype.constructor = AssertionError;\n\n function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n }\n\n module.exports = {\n rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n AssertionError: AssertionError,\n assert: assert\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n\n var _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n\n var WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n _ref$highWaterMark = _ref.highWaterMark,\n highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n\n _classCallCheck(this, WritableStream);\n\n this._state = 'writable';\n this._storedError = undefined;\n this._writer = undefined;\n this._writableStreamController = undefined;\n this._writeRequests = [];\n this._inFlightWriteRequest = undefined;\n this._closeRequest = undefined;\n this._inFlightCloseRequest = undefined;\n this._pendingAbortRequest = undefined;\n this._backpressure = false;\n var type = underlyingSink.type;\n\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n\n this._writableStreamController.__startSteps();\n }\n\n _createClass(WritableStream, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('abort'));\n }\n\n if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n }\n\n return WritableStreamAbort(this, reason);\n }\n }, {\n key: 'getWriter',\n value: function getWriter() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('getWriter');\n }\n\n return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsWritableStreamLocked(this);\n }\n }]);\n\n return WritableStream;\n }();\n\n module.exports = {\n AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n IsWritableStream: IsWritableStream,\n IsWritableStreamLocked: IsWritableStreamLocked,\n WritableStream: WritableStream,\n WritableStreamAbort: WritableStreamAbort,\n WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n };\n\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n\n return true;\n }\n\n function IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n\n if (stream._writer === undefined) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamAbort(stream, reason) {\n var state = stream._state;\n\n if (state === 'closed') {\n return Promise.resolve(undefined);\n }\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n var error = new TypeError('Requested to abort');\n\n if (stream._pendingAbortRequest !== undefined) {\n return Promise.reject(error);\n }\n\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n var wasAlreadyErroring = false;\n\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n reason = undefined;\n }\n\n var promise = new Promise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n\n if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n\n return promise;\n }\n\n function WritableStreamAddWriteRequest(stream) {\n assert(IsWritableStreamLocked(stream) === true);\n assert(stream._state === 'writable');\n var promise = new Promise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\n }\n\n function WritableStreamStartErroring(stream, reason) {\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n assert(stream._state === 'writable', 'state must be writable');\n var controller = stream._writableStreamController;\n assert(controller !== undefined, 'controller must not be undefined');\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\n }\n }\n\n function WritableStreamFinishErroring(stream) {\n assert(stream._state === 'erroring', 'stream._state === erroring');\n assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n stream._state = 'errored';\n\n stream._writableStreamController.__errorSteps();\n\n var storedError = stream._storedError;\n\n for (var i = 0; i < stream._writeRequests.length; i++) {\n var writeRequest = stream._writeRequests[i];\n\n writeRequest._reject(storedError);\n }\n\n stream._writeRequests = [];\n\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n\n promise.then(function () {\n abortRequest._resolve();\n\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n\n function WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n\n stream._inFlightWriteRequest._resolve(undefined);\n\n stream._inFlightWriteRequest = undefined;\n }\n\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n\n stream._inFlightWriteRequest._reject(error);\n\n stream._inFlightWriteRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n WritableStreamDealWithRejection(stream, error);\n }\n\n function WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n\n stream._inFlightCloseRequest._resolve(undefined);\n\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n\n if (state === 'erroring') {\n stream._storedError = undefined;\n\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n\n stream._pendingAbortRequest = undefined;\n }\n }\n\n stream._state = 'closed';\n var writer = stream._writer;\n\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n }\n\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n\n stream._inFlightCloseRequest._reject(error);\n\n stream._inFlightCloseRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n\n stream._pendingAbortRequest = undefined;\n }\n\n WritableStreamDealWithRejection(stream, error);\n }\n\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamMarkCloseRequestInFlight(stream) {\n assert(stream._inFlightCloseRequest === undefined);\n assert(stream._closeRequest !== undefined);\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n\n stream._closeRequest._reject(stream._storedError);\n\n stream._closeRequest = undefined;\n }\n\n var writer = stream._writer;\n\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n\n writer._closedPromise[\"catch\"](function () {});\n }\n }\n\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var writer = stream._writer;\n\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure === true) {\n defaultWriterReadyPromiseReset(writer);\n } else {\n assert(backpressure === false);\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n\n stream._backpressure = backpressure;\n }\n\n var WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n }\n\n if (IsWritableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n\n this._readyPromise[\"catch\"](function () {});\n\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n } else {\n assert(state === 'errored', 'state must be errored');\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n\n this._readyPromise[\"catch\"](function () {});\n\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n\n this._closedPromise[\"catch\"](function () {});\n }\n }\n\n _createClass(WritableStreamDefaultWriter, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('abort'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\n }\n\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('close'));\n }\n\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\n }\n\n return WritableStreamDefaultWriterClose(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return;\n }\n\n assert(stream._writer !== undefined);\n WritableStreamDefaultWriterRelease(this);\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('write'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n }, {\n key: 'ready',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('ready'));\n }\n\n return this._readyPromise;\n }\n }]);\n\n return WritableStreamDefaultWriter;\n }();\n\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n return WritableStreamAbort(stream, reason);\n }\n\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n\n if (state === 'closed' || state === 'errored') {\n return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n }\n\n assert(state === 'writable' || state === 'erroring');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var promise = new Promise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n\n if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable' || state === 'erroring');\n return WritableStreamDefaultWriterClose(writer);\n }\n\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n\n writer._closedPromise[\"catch\"](function () {});\n }\n\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n\n writer._readyPromise[\"catch\"](function () {});\n }\n\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n assert(stream._writer === writer);\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n\n if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n\n var state = stream._state;\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n\n if (state === 'erroring') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable');\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n\n var WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n }\n\n this._controlledWritableStream = stream;\n this._underlyingSink = underlyingSink;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n _createClass(WritableStreamDefaultController, [{\n key: 'error',\n value: function error(e) {\n if (IsWritableStreamDefaultController(this) === false) {\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n }\n\n var state = this._controlledWritableStream._state;\n\n if (state !== 'writable') {\n return;\n }\n\n WritableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__abortSteps',\n value: function __abortSteps(reason) {\n return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n }\n }, {\n key: '__errorSteps',\n value: function __errorSteps() {\n ResetQueue(this);\n }\n }, {\n key: '__startSteps',\n value: function __startSteps() {\n var _this = this;\n\n var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n var stream = this._controlledWritableStream;\n Promise.resolve(startResult).then(function () {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n }, function (r) {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDealWithRejection(stream, r);\n })[\"catch\"](rethrowAssertionErrorRejection);\n }\n }]);\n\n return WritableStreamDefaultController;\n }();\n\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n\n if (strategySize === undefined) {\n return 1;\n }\n\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = {\n chunk: chunk\n };\n\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n\n var stream = controller._controlledWritableStream;\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n\n if (controller._started === false) {\n return;\n }\n\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n\n var state = stream._state;\n\n if (state === 'closed' || state === 'errored') {\n return;\n }\n\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n\n if (controller._queue.length === 0) {\n return;\n }\n\n var writeRecord = PeekQueueValue(controller);\n\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n }\n\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n sinkClosePromise.then(function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n })[\"catch\"](rethrowAssertionErrorRejection);\n }\n\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n sinkWritePromise.then(function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n DequeueValue(controller);\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n })[\"catch\"](rethrowAssertionErrorRejection);\n }\n\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n assert(stream._state === 'writable');\n WritableStreamStartErroring(stream, error);\n }\n\n function streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n }\n\n function defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n }\n\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = new Promise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n writer._closedPromise = Promise.resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n\n function defaultWriterClosedPromiseReject(writer, reason) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n writer._closedPromise_reject(reason);\n\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromiseState = 'rejected';\n }\n\n function defaultWriterClosedPromiseResolve(writer) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n writer._closedPromise_resolve(undefined);\n\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n writer._readyPromise = Promise.resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n function defaultWriterReadyPromiseReject(writer, reason) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_reject(reason);\n\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n\n function defaultWriterReadyPromiseReset(writer) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromiseState = 'rejected';\n }\n\n function defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_resolve(undefined);\n\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _require = __w_pdfjs_require__(0),\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\n\n exports.DequeueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n\n var pair = container._queue.shift();\n\n container._queueTotalSize -= pair.size;\n\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n\n return pair.value;\n };\n\n exports.EnqueueValueWithSize = function (container, value, size) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n size = Number(size);\n\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n\n container._queue.push({\n value: value,\n size: size\n });\n\n container._queueTotalSize += size;\n };\n\n exports.PeekQueueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n var pair = container._queue[0];\n return pair.value;\n };\n\n exports.ResetQueue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n container._queue = [];\n container._queueTotalSize = 0;\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _require = __w_pdfjs_require__(0),\n ArrayBufferCopy = _require.ArrayBufferCopy,\n CreateIterResultObject = _require.CreateIterResultObject,\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n TransferArrayBuffer = _require.TransferArrayBuffer,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n\n var _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n\n var _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n\n var _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\n\n var _require5 = __w_pdfjs_require__(2),\n AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n IsWritableStream = _require5.IsWritableStream,\n IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n WritableStreamAbort = _require5.WritableStreamAbort,\n WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n\n var ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n\n _classCallCheck(this, ReadableStream);\n\n this._state = 'readable';\n this._reader = undefined;\n this._storedError = undefined;\n this._disturbed = false;\n this._readableStreamController = undefined;\n var type = underlyingSource.type;\n var typeString = String(type);\n\n if (typeString === 'bytes') {\n if (highWaterMark === undefined) {\n highWaterMark = 0;\n }\n\n this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n } else if (type === undefined) {\n if (highWaterMark === undefined) {\n highWaterMark = 1;\n }\n\n this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n } else {\n throw new RangeError('Invalid type is specified');\n }\n }\n\n _createClass(ReadableStream, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('cancel'));\n }\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n\n return ReadableStreamCancel(this, reason);\n }\n }, {\n key: 'getReader',\n value: function getReader() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mode = _ref2.mode;\n\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n\n mode = String(mode);\n\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\n }\n\n throw new RangeError('Invalid mode is specified');\n }\n }, {\n key: 'pipeThrough',\n value: function pipeThrough(_ref3, options) {\n var writable = _ref3.writable,\n readable = _ref3.readable;\n var promise = this.pipeTo(writable, options);\n ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n return readable;\n }\n }, {\n key: 'pipeTo',\n value: function pipeTo(dest) {\n var _this = this;\n\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('pipeTo'));\n }\n\n if (IsWritableStream(dest) === false) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n }\n\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n\n if (IsWritableStreamLocked(dest) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n\n var reader = AcquireReadableStreamDefaultReader(this);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n var shuttingDown = false;\n var currentWrite = Promise.resolve();\n return new Promise(function (resolve, reject) {\n function pipeLoop() {\n currentWrite = Promise.resolve();\n\n if (shuttingDown === true) {\n return Promise.resolve();\n }\n\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n\n if (done === true) {\n return;\n }\n\n currentWrite = WritableStreamDefaultWriterWrite(writer, value)[\"catch\"](function () {});\n });\n }).then(pipeLoop);\n }\n\n isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n if (preventAbort === false) {\n shutdownWithAction(function () {\n return WritableStreamAbort(dest, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesClosed(_this, reader._closedPromise, function () {\n if (preventClose === false) {\n shutdownWithAction(function () {\n return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n });\n } else {\n shutdown();\n }\n });\n\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n\n pipeLoop()[\"catch\"](function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n\n function waitForWritesToFinish() {\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\n }\n\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n } else {\n promise[\"catch\"](action)[\"catch\"](rethrowAssertionErrorRejection);\n }\n }\n\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action)[\"catch\"](rethrowAssertionErrorRejection);\n }\n }\n\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\n }\n\n function doTheRest() {\n action().then(function () {\n return finalize(originalIsError, originalError);\n }, function (newError) {\n return finalize(true, newError);\n })[\"catch\"](rethrowAssertionErrorRejection);\n }\n }\n\n function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(function () {\n return finalize(isError, error);\n })[\"catch\"](rethrowAssertionErrorRejection);\n } else {\n finalize(isError, error);\n }\n }\n\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n\n if (isError) {\n reject(error);\n } else {\n resolve(undefined);\n }\n }\n });\n }\n }, {\n key: 'tee',\n value: function tee() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('tee');\n }\n\n var branches = ReadableStreamTee(this, false);\n return createArrayFromList(branches);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsReadableStreamLocked(this);\n }\n }]);\n\n return ReadableStream;\n }();\n\n module.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n };\n\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n\n return true;\n }\n\n function IsReadableStreamDisturbed(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n return stream._disturbed;\n }\n\n function IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n\n if (stream._reader === undefined) {\n return false;\n }\n\n return true;\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n assert(IsReadableStream(stream) === true);\n assert(typeof cloneForBranch2 === 'boolean');\n var reader = AcquireReadableStreamDefaultReader(stream);\n var teeState = {\n closedOrErrored: false,\n canceled1: false,\n canceled2: false,\n reason1: undefined,\n reason2: undefined\n };\n teeState.promise = new Promise(function (resolve) {\n teeState._resolve = resolve;\n });\n var pull = create_ReadableStreamTeePullFunction();\n pull._reader = reader;\n pull._teeState = teeState;\n pull._cloneForBranch2 = cloneForBranch2;\n var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n cancel1._stream = stream;\n cancel1._teeState = teeState;\n var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n cancel2._stream = stream;\n cancel2._teeState = teeState;\n var underlyingSource1 = Object.create(Object.prototype);\n createDataProperty(underlyingSource1, 'pull', pull);\n createDataProperty(underlyingSource1, 'cancel', cancel1);\n var branch1Stream = new ReadableStream(underlyingSource1);\n var underlyingSource2 = Object.create(Object.prototype);\n createDataProperty(underlyingSource2, 'pull', pull);\n createDataProperty(underlyingSource2, 'cancel', cancel2);\n var branch2Stream = new ReadableStream(underlyingSource2);\n pull._branch1 = branch1Stream._readableStreamController;\n pull._branch2 = branch2Stream._readableStreamController;\n\n reader._closedPromise[\"catch\"](function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n\n return [branch1Stream, branch2Stream];\n }\n\n function create_ReadableStreamTeePullFunction() {\n function f() {\n var reader = f._reader,\n branch1 = f._branch1,\n branch2 = f._branch2,\n teeState = f._teeState;\n return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n assert(typeIsObject(result));\n var value = result.value;\n var done = result.done;\n assert(typeof done === 'boolean');\n\n if (done === true && teeState.closedOrErrored === false) {\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerClose(branch1);\n }\n\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerClose(branch2);\n }\n\n teeState.closedOrErrored = true;\n }\n\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n var value1 = value;\n var value2 = value;\n\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n\n return f;\n }\n\n function create_ReadableStreamTeeBranch1CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled1 = true;\n teeState.reason1 = reason;\n\n if (teeState.canceled2 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n\n teeState._resolve(cancelResult);\n }\n\n return teeState.promise;\n }\n\n return f;\n }\n\n function create_ReadableStreamTeeBranch2CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled2 = true;\n teeState.reason2 = reason;\n\n if (teeState.canceled1 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n\n teeState._resolve(cancelResult);\n }\n\n return teeState.promise;\n }\n\n return f;\n }\n\n function ReadableStreamAddReadIntoRequest(stream) {\n assert(IsReadableStreamBYOBReader(stream._reader) === true);\n assert(stream._state === 'readable' || stream._state === 'closed');\n var promise = new Promise(function (resolve, reject) {\n var readIntoRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readIntoRequests.push(readIntoRequest);\n });\n return promise;\n }\n\n function ReadableStreamAddReadRequest(stream) {\n assert(IsReadableStreamDefaultReader(stream._reader) === true);\n assert(stream._state === 'readable');\n var promise = new Promise(function (resolve, reject) {\n var readRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readRequests.push(readRequest);\n });\n return promise;\n }\n\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n ReadableStreamClose(stream);\n\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n }\n\n function ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n stream._state = 'closed';\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n\n _resolve(CreateIterResultObject(undefined, true));\n }\n\n reader._readRequests = [];\n }\n\n defaultReaderClosedPromiseResolve(reader);\n return undefined;\n }\n\n function ReadableStreamError(stream, e) {\n assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n assert(stream._state === 'readable', 'state must be readable');\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var readRequest = reader._readRequests[i];\n\n readRequest._reject(e);\n }\n\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n\n readIntoRequest._reject(e);\n }\n\n reader._readIntoRequests = [];\n }\n\n defaultReaderClosedPromiseReject(reader, e);\n\n reader._closedPromise[\"catch\"](function () {});\n }\n\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readIntoRequests.length > 0);\n\n var readIntoRequest = reader._readIntoRequests.shift();\n\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n }\n\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readRequests.length > 0);\n\n var readRequest = reader._readRequests.shift();\n\n readRequest._resolve(CreateIterResultObject(chunk, done));\n }\n\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n\n return true;\n }\n\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n\n return true;\n }\n\n var ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n }\n\n if (IsReadableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = [];\n }\n\n _createClass(ReadableStreamDefaultReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('read'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n return ReadableStreamDefaultReaderRead(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsReadableStreamDefaultReader(this) === false) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n\n if (this._ownerReadableStream === undefined) {\n return;\n }\n\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamDefaultReader;\n }();\n\n var ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n\n if (!IsReadableStream(stream)) {\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n }\n\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n }\n\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = [];\n }\n\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('read'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\n }\n\n return ReadableStreamBYOBReaderRead(this, view);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n\n if (this._ownerReadableStream === undefined) {\n return;\n }\n\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamBYOBReader;\n }();\n\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n\n return true;\n }\n\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n\n return true;\n }\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n } else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n } else {\n assert(stream._state === 'errored', 'state must be errored');\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n\n reader._closedPromise[\"catch\"](function () {});\n }\n }\n\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n }\n\n function ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\n\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n } else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n }\n\n reader._closedPromise[\"catch\"](function () {});\n\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n\n function ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n }\n\n function ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(stream._state === 'readable');\n return stream._readableStreamController.__pullSteps();\n }\n\n var ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n }\n\n this._controlledReadableStream = stream;\n this._underlyingSource = underlyingSource;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n this._closeRequested = false;\n this._pullAgain = false;\n this._pulling = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var controller = this;\n var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n })[\"catch\"](rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n\n var state = this._controlledReadableStream._state;\n\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n\n ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n\n var state = this._controlledReadableStream._state;\n\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n\n var stream = this._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n\n ReadableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n\n return Promise.resolve(CreateIterResultObject(chunk, false));\n }\n\n var pendingPromise = ReadableStreamAddReadRequest(stream);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n return pendingPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableStreamDefaultController;\n }();\n\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n\n return true;\n }\n\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n\n return undefined;\n }, function (e) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n })[\"catch\"](rethrowAssertionErrorRejection);\n return undefined;\n }\n\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n\n if (desiredSize > 0) {\n return true;\n }\n\n return false;\n }\n\n function ReadableStreamDefaultControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n controller._closeRequested = true;\n\n if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n }\n\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n\n if (controller._strategySize !== undefined) {\n var strategySize = controller._strategySize;\n\n try {\n chunkSize = strategySize(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n throw chunkSizeE;\n }\n }\n\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n return undefined;\n }\n\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n\n function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n }\n\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n }\n\n var ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n }, {\n key: 'respondWithNewView',\n value: function respondWithNewView(view) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n\n return ReadableStreamBYOBRequest;\n }();\n\n var ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n }\n\n this._controlledReadableStream = stream;\n this._underlyingByteSource = underlyingByteSource;\n this._pullAgain = false;\n this._pulling = false;\n ReadableByteStreamControllerClearPendingPullIntos(this);\n this._queue = this._queueTotalSize = undefined;\n ResetQueue(this);\n this._closeRequested = false;\n this._started = false;\n this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n\n if (autoAllocateChunkSize !== undefined) {\n if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\n }\n }\n\n this._autoAllocateChunkSize = autoAllocateChunkSize;\n this._pendingPullIntos = [];\n var controller = this;\n var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n if (stream._state === 'readable') {\n ReadableByteStreamControllerError(controller, r);\n }\n })[\"catch\"](rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n\n var state = this._controlledReadableStream._state;\n\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n\n ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n\n var state = this._controlledReadableStream._state;\n\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n }\n\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('error');\n }\n\n var stream = this._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n\n ReadableByteStreamControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n if (this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n firstDescriptor.bytesFilled = 0;\n }\n\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n assert(ReadableStreamHasDefaultReader(stream) === true);\n\n if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n\n var entry = this._queue.shift();\n\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = void 0;\n\n try {\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n } catch (viewE) {\n return Promise.reject(viewE);\n }\n\n return Promise.resolve(CreateIterResultObject(view, false));\n }\n\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n return Promise.reject(bufferE);\n }\n\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n ctor: Uint8Array,\n readerType: 'default'\n };\n\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n\n var promise = ReadableStreamAddReadRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n return promise;\n }\n }, {\n key: 'byobRequest',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n }\n\n return this._byobRequest;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableByteStreamController;\n }();\n\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n\n return true;\n }\n\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n\n return true;\n }\n\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableByteStreamControllerError(controller, e);\n }\n })[\"catch\"](rethrowAssertionErrorRejection);\n return undefined;\n }\n\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n }\n\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n var done = false;\n\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\n\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n } else {\n assert(pullIntoDescriptor.readerType === 'byob');\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n assert(bytesFilled <= pullIntoDescriptor.byteLength);\n assert(bytesFilled % elementSize === 0);\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength\n });\n\n controller._queueTotalSize += byteLength;\n }\n\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n\n var queue = controller._queue;\n\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue[0];\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n\n if (ready === false) {\n assert(controller._queueTotalSize === 0, 'queue must be empty');\n assert(pullIntoDescriptor.bytesFilled > 0);\n assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n }\n\n return ready;\n }\n\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n }\n\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n }\n\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n }\n\n function ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n var elementSize = 1;\n\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n\n var ctor = view.constructor;\n var pullIntoDescriptor = {\n buffer: view.buffer,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n ctor: ctor,\n readerType: 'byob'\n };\n\n if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n return ReadableStreamAddReadIntoRequest(stream);\n }\n\n if (stream._state === 'closed') {\n var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n return Promise.resolve(CreateIterResultObject(emptyView, true));\n }\n\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n return Promise.resolve(CreateIterResultObject(filledView, false));\n }\n\n if (controller._closeRequested === true) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n return Promise.reject(e);\n }\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n var promise = ReadableStreamAddReadIntoRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n return promise;\n }\n\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n var stream = controller._controlledReadableStream;\n\n if (ReadableStreamHasBYOBReader(stream) === true) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n }\n\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n }\n\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n\n return false;\n }\n\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos[0];\n\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n\n ReadableStreamClose(stream);\n }\n\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n\n if (ReadableStreamHasDefaultReader(stream) === true) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n } else {\n assert(controller._queue.length === 0);\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream) === true) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n }\n\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n }\n\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n\n assert(controller._pendingPullIntos.length > 0);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n var firstDescriptor = controller._pendingPullIntos[0];\n\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n\n firstDescriptor.buffer = view.buffer;\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n }\n\n function streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n }\n\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n\n function defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n }\n\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = new Promise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n function defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_reject(reason);\n\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n assert(reader._closedPromise_resolve === undefined);\n assert(reader._closedPromise_reject === undefined);\n reader._closedPromise = Promise.reject(reason);\n }\n\n function defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_resolve(undefined);\n\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n function byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n }\n\n function defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n }\n\n function byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n }\n\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n }\n\n function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n try {\n Promise.prototype.then.call(promise, undefined, function () {});\n } catch (e) {}\n }\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var transformStream = __w_pdfjs_require__(6);\n\n var readableStream = __w_pdfjs_require__(4);\n\n var writableStream = __w_pdfjs_require__(2);\n\n exports.TransformStream = transformStream.TransformStream;\n exports.ReadableStream = readableStream.ReadableStream;\n exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\n exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\n exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\n exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\n exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\n exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\n exports.IsWritableStream = writableStream.IsWritableStream;\n exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\n exports.WritableStream = writableStream.WritableStream;\n exports.WritableStreamAbort = writableStream.WritableStreamAbort;\n exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\n exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\n exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\n exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\n var _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\n\n var _require3 = __w_pdfjs_require__(4),\n ReadableStream = _require3.ReadableStream,\n ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n\n var _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n\n function TransformStreamCloseReadable(transformStream) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n TransformStreamCloseReadableInternal(transformStream);\n }\n\n function TransformStreamEnqueueToReadable(transformStream, chunk) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n var controller = transformStream._readableController;\n\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n throw transformStream._storedError;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n TransformStreamSetBackpressure(transformStream, true);\n }\n }\n\n function TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n TransformStreamErrorInternal(transformStream, e);\n }\n\n function TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n\n transformStream._readableClosed = true;\n }\n\n function TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n }\n\n function TransformStreamErrorInternal(transformStream, e) {\n assert(transformStream._errored === false);\n transformStream._errored = true;\n transformStream._storedError = e;\n\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n }\n\n function TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n }\n\n function TransformStreamSetBackpressure(transformStream, backpressure) {\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n\n if (transformStream._backpressureChangePromise !== undefined) {\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n\n transformStream._backpressure = backpressure;\n }\n\n function TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\n }\n\n function TransformStreamTransform(transformStream, chunk) {\n assert(transformStream._errored === false);\n assert(transformStream._transforming === false);\n assert(transformStream._backpressure === false);\n transformStream._transforming = true;\n var transformer = transformStream._transformer;\n var controller = transformStream._transformStreamController;\n var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n return transformPromise.then(function () {\n transformStream._transforming = false;\n return TransformStreamReadableReadyPromise(transformStream);\n }, function (e) {\n TransformStreamErrorIfNeeded(transformStream, e);\n return Promise.reject(e);\n });\n }\n\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n\n return true;\n }\n\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n\n return true;\n }\n\n var TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSink, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._writableController = c;\n return this._startPromise.then(function () {\n return TransformStreamReadableReadyPromise(transformStream);\n });\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n var transformStream = this._transformStream;\n return TransformStreamTransform(transformStream, chunk);\n }\n }, {\n key: 'abort',\n value: function abort() {\n var transformStream = this._transformStream;\n transformStream._writableDone = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n }\n }, {\n key: 'close',\n value: function close() {\n var transformStream = this._transformStream;\n assert(transformStream._transforming === false);\n transformStream._writableDone = true;\n var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n return flushPromise.then(function () {\n if (transformStream._errored === true) {\n return Promise.reject(transformStream._storedError);\n }\n\n if (transformStream._readableClosed === false) {\n TransformStreamCloseReadableInternal(transformStream);\n }\n\n return Promise.resolve();\n })[\"catch\"](function (r) {\n TransformStreamErrorIfNeeded(transformStream, r);\n return Promise.reject(transformStream._storedError);\n });\n }\n }]);\n\n return TransformStreamSink;\n }();\n\n var TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSource, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._readableController = c;\n return this._startPromise.then(function () {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === true) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n });\n }\n }, {\n key: 'pull',\n value: function pull() {\n var transformStream = this._transformStream;\n assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n TransformStreamSetBackpressure(transformStream, false);\n return transformStream._backpressureChangePromise;\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n var transformStream = this._transformStream;\n transformStream._readableClosed = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n }\n }]);\n\n return TransformStreamSource;\n }();\n\n var TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n\n this._controlledTransformStream = transformStream;\n }\n\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n TransformStreamCloseReadable(this._controlledTransformStream);\n }\n }, {\n key: 'error',\n value: function error(reason) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n\n TransformStreamError(this._controlledTransformStream, reason);\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n\n var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n\n return TransformStreamDefaultController;\n }();\n\n var TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, TransformStream);\n\n this._transformer = transformer;\n var readableStrategy = transformer.readableStrategy,\n writableStrategy = transformer.writableStrategy;\n this._transforming = false;\n this._errored = false;\n this._storedError = undefined;\n this._writableController = undefined;\n this._readableController = undefined;\n this._transformStreamController = undefined;\n this._writableDone = false;\n this._readableClosed = false;\n this._backpressure = undefined;\n this._backpressureChangePromise = undefined;\n this._backpressureChangePromise_resolve = undefined;\n this._transformStreamController = new TransformStreamDefaultController(this);\n var startPromise_resolve = void 0;\n var startPromise = new Promise(function (resolve) {\n startPromise_resolve = resolve;\n });\n var source = new TransformStreamSource(this, startPromise);\n this._readable = new ReadableStream(source, readableStrategy);\n var sink = new TransformStreamSink(this, startPromise);\n this._writable = new WritableStream(sink, writableStrategy);\n assert(this._writableController !== undefined);\n assert(this._readableController !== undefined);\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n TransformStreamSetBackpressure(this, desiredSize <= 0);\n var transformStream = this;\n var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n startPromise_resolve(startResult);\n startPromise[\"catch\"](function (e) {\n if (transformStream._errored === false) {\n transformStream._errored = true;\n transformStream._storedError = e;\n }\n });\n }\n\n _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\n }\n\n return this._readable;\n }\n }, {\n key: 'writable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('writable');\n }\n\n return this._writable;\n }\n }]);\n\n return TransformStream;\n }();\n\n module.exports = {\n TransformStream: TransformStream\n };\n\n function defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n }\n\n function streamBrandCheckException(name) {\n return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n }\n}, function (module, exports, __w_pdfjs_require__) {\n module.exports = __w_pdfjs_require__(5);\n}]));\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n{\n var isURLSupported = false;\n\n try {\n if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {\n var u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n isURLSupported = u.href === 'http://a/c%20d';\n }\n } catch (ex) {}\n\n if (isURLSupported) {\n exports.URL = URL;\n } else {\n var PolyfillURL = __w_pdfjs_require__(146).URL;\n\n var OriginalURL = __w_pdfjs_require__(3).URL;\n\n if (OriginalURL) {\n PolyfillURL.createObjectURL = function (blob) {\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n\n PolyfillURL.revokeObjectURL = function (url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n\n exports.URL = PolyfillURL;\n }\n}\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n(function URLConstructorClosure() {\n 'use strict';\n\n var relative = Object.create(null);\n relative['ftp'] = 21;\n relative['file'] = 0;\n relative['gopher'] = 70;\n relative['http'] = 80;\n relative['https'] = 443;\n relative['ws'] = 80;\n relative['wss'] = 443;\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n\n return h.toLowerCase();\n }\n\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n\n return encodeURIComponent(c);\n }\n\n function percentEscapeQuery(c) {\n var unicode = c.charCodeAt(0);\n\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n\n return encodeURIComponent(c);\n }\n\n var EOF,\n ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {\n var c = input[cursor];\n\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase();\n state = 'scheme';\n } else if (!stateOverride) {\n buffer = '';\n state = 'no scheme';\n continue;\n } else {\n err('Invalid scheme.');\n break loop;\n }\n\n break;\n\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase();\n } else if (c === ':') {\n this._scheme = buffer;\n buffer = '';\n\n if (stateOverride) {\n break loop;\n }\n\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\n }\n\n if (this._scheme === 'file') {\n state = 'relative';\n } else if (this._isRelative && base && base._scheme === this._scheme) {\n state = 'relative or authority';\n } else if (this._isRelative) {\n state = 'authority first slash';\n } else {\n state = 'scheme data';\n }\n } else if (!stateOverride) {\n buffer = '';\n cursor = 0;\n state = 'no scheme';\n continue;\n } else if (c === EOF) {\n break loop;\n } else {\n err('Code point not allowed in scheme: ' + c);\n break loop;\n }\n\n break;\n\n case 'scheme data':\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else {\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._schemeData += percentEscape(c);\n }\n }\n\n break;\n\n case 'no scheme':\n if (!base || !isRelativeScheme(base._scheme)) {\n err('Missing scheme.');\n invalid.call(this);\n } else {\n state = 'relative';\n continue;\n }\n\n break;\n\n case 'relative or authority':\n if (c === '/' && input[cursor + 1] === '/') {\n state = 'authority ignore slashes';\n } else {\n err('Expected /, got: ' + c);\n state = 'relative';\n continue;\n }\n\n break;\n\n case 'relative':\n this._isRelative = true;\n\n if (this._scheme !== 'file') {\n this._scheme = base._scheme;\n }\n\n if (c === EOF) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._username = base._username;\n this._password = base._password;\n break loop;\n } else if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n\n state = 'relative slash';\n } else if (c === '?') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = '?';\n this._username = base._username;\n this._password = base._password;\n state = 'query';\n } else if (c === '#') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._fragment = '#';\n this._username = base._username;\n this._password = base._password;\n state = 'fragment';\n } else {\n var nextC = input[cursor + 1];\n var nextNextC = input[cursor + 2];\n\n if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' && nextNextC !== '?' && nextNextC !== '#') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n this._path = base._path.slice();\n\n this._path.pop();\n }\n\n state = 'relative path';\n continue;\n }\n\n break;\n\n case 'relative slash':\n if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n\n if (this._scheme === 'file') {\n state = 'file host';\n } else {\n state = 'authority ignore slashes';\n }\n } else {\n if (this._scheme !== 'file') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n }\n\n state = 'relative path';\n continue;\n }\n\n break;\n\n case 'authority first slash':\n if (c === '/') {\n state = 'authority second slash';\n } else {\n err('Expected \\'/\\', got: ' + c);\n state = 'authority ignore slashes';\n continue;\n }\n\n break;\n\n case 'authority second slash':\n state = 'authority ignore slashes';\n\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n\n break;\n\n case 'authority ignore slashes':\n if (c !== '/' && c !== '\\\\') {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n\n break;\n\n case 'authority':\n if (c === '@') {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n\n seenAt = true;\n\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n\n if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n err('Invalid whitespace in authority.');\n continue;\n }\n\n if (cp === ':' && this._password === null) {\n this._password = '';\n continue;\n }\n\n var tempC = percentEscape(cp);\n\n if (this._password !== null) {\n this._password += tempC;\n } else {\n this._username += tempC;\n }\n }\n\n buffer = '';\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n\n break;\n\n case 'file host':\n if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {\n state = 'relative path';\n } else if (buffer.length === 0) {\n state = 'relative path start';\n } else {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n }\n\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n\n break;\n\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\n\n if (stateOverride === 'hostname') {\n break loop;\n }\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n\n if (stateOverride) {\n break loop;\n }\n\n continue;\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n if (c === '[') {\n seenBracket = true;\n } else if (c === ']') {\n seenBracket = false;\n }\n\n buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n\n break;\n\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#' || stateOverride) {\n if (buffer !== '') {\n var temp = parseInt(buffer, 10);\n\n if (temp !== relative[this._scheme]) {\n this._port = temp + '';\n }\n\n buffer = '';\n }\n\n if (stateOverride) {\n break loop;\n }\n\n state = 'relative path start';\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid code point in port: ' + c);\n } else {\n invalid.call(this);\n }\n\n break;\n\n case 'relative path start':\n if (c === '\\\\') {\n err('\\'\\\\\\' not allowed in path.');\n }\n\n state = 'relative path';\n\n if (c !== '/' && c !== '\\\\') {\n continue;\n }\n\n break;\n\n case 'relative path':\n if (c === EOF || c === '/' || c === '\\\\' || !stateOverride && (c === '?' || c === '#')) {\n if (c === '\\\\') {\n err('\\\\ not allowed in relative path.');\n }\n\n var tmp;\n\n if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n buffer = tmp;\n }\n\n if (buffer === '..') {\n this._path.pop();\n\n if (c !== '/' && c !== '\\\\') {\n this._path.push('');\n }\n } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n this._path.push('');\n } else if (buffer !== '.') {\n if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {\n buffer = buffer[0] + ':';\n }\n\n this._path.push(buffer);\n }\n\n buffer = '';\n\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n }\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n buffer += percentEscape(c);\n }\n\n break;\n\n case 'query':\n if (!stateOverride && c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._query += percentEscapeQuery(c);\n }\n\n break;\n\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n\n break;\n }\n\n cursor++;\n }\n }\n\n function clear() {\n this._scheme = '';\n this._schemeData = '';\n this._username = '';\n this._password = null;\n this._host = '';\n this._port = '';\n this._path = [];\n this._query = '';\n this._fragment = '';\n this._isInvalid = false;\n this._isRelative = false;\n }\n\n function JURL(url, base) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\n }\n\n this._url = url;\n clear.call(this);\n var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n parse.call(this, input, null, base);\n }\n\n JURL.prototype = {\n toString: function toString() {\n return this.href;\n },\n\n get href() {\n if (this._isInvalid) {\n return this._url;\n }\n\n var authority = '';\n\n if (this._username !== '' || this._password !== null) {\n authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';\n }\n\n return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n },\n\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\n\n get protocol() {\n return this._scheme + ':';\n },\n\n set protocol(value) {\n if (this._isInvalid) {\n return;\n }\n\n parse.call(this, value + ':', 'scheme start');\n },\n\n get host() {\n return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n },\n\n set host(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n parse.call(this, value, 'host');\n },\n\n get hostname() {\n return this._host;\n },\n\n set hostname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n parse.call(this, value, 'hostname');\n },\n\n get port() {\n return this._port;\n },\n\n set port(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n parse.call(this, value, 'port');\n },\n\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n },\n\n set pathname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n this._path = [];\n parse.call(this, value, 'relative path start');\n },\n\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;\n },\n\n set search(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n this._query = '?';\n\n if (value[0] === '?') {\n value = value.slice(1);\n }\n\n parse.call(this, value, 'query');\n },\n\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;\n },\n\n set hash(value) {\n if (this._isInvalid) {\n return;\n }\n\n this._fragment = '#';\n\n if (value[0] === '#') {\n value = value.slice(1);\n }\n\n parse.call(this, value, 'fragment');\n },\n\n get origin() {\n var host;\n\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n\n case 'blob':\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {}\n\n return 'null';\n }\n\n host = this.host;\n\n if (!host) {\n return '';\n }\n\n return this._scheme + '://' + host;\n }\n\n };\n exports.URL = JURL;\n})();\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(151);\n\nvar _font_loader = __w_pdfjs_require__(152);\n\nvar _api_compatibility = __w_pdfjs_require__(153);\n\nvar _canvas = __w_pdfjs_require__(154);\n\nvar _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));\n\nvar _worker_options = __w_pdfjs_require__(156);\n\nvar _message_handler = __w_pdfjs_require__(157);\n\nvar _metadata = __w_pdfjs_require__(158);\n\nvar _transport_stream = __w_pdfjs_require__(160);\n\nvar _webgl = __w_pdfjs_require__(161);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar DEFAULT_RANGE_CHUNK_SIZE = 65536;\nvar isWorkerDisabled = false;\nvar fallbackWorkerSrc;\nvar fakeWorkerFilesLoader = null;\n{\n var useRequireEnsure = false;\n\n if (typeof window === 'undefined') {\n isWorkerDisabled = true;\n\n if (typeof require.ensure === 'undefined') {\n require.ensure = require('node-ensure');\n }\n\n useRequireEnsure = true;\n } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {\n useRequireEnsure = true;\n }\n\n if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n }\n\n var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load;\n fakeWorkerFilesLoader = useRequireEnsure ? function () {\n return new Promise(function (resolve, reject) {\n require.ensure([], function () {\n try {\n var worker;\n worker = require('./pdf.worker.js');\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 === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && 'currentScript' in document) {\n var pdfjsFilePath = document.currentScript && document.currentScript.src;\n\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n }\n}\nvar createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n var task = new PDFDocumentLoadingTask();\n var source;\n\n if (typeof src === 'string') {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (_typeof(src) !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error('Invalid parameter object: need either .data, .range or .url');\n }\n\n source = src;\n }\n\n var params = Object.create(null);\n var rangeTransport = null,\n worker = null;\n\n for (var key in source) {\n if (key === 'url' && typeof window !== 'undefined') {\n params[key] = new _util.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 var pdfBytes = source[key];\n\n if (typeof pdfBytes === 'string') {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if ((0, _util.isArrayBuffer)(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.');\n }\n\n continue;\n }\n\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);\n\n if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;\n }\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.isEvalSupported !== 'boolean') {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== 'boolean') {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== 'boolean') {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== 'boolean') {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== 'boolean') {\n params.disableAutoFetch = false;\n }\n\n if (typeof params.disableCreateObjectURL !== 'boolean') {\n params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n var workerParams = {\n postMessageTransfers: params.postMessageTransfers,\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n var docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n var networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.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 var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n var transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send('Ready', null);\n });\n })[\"catch\"](task._capability.reject);\n return task;\n}\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\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId: docId,\n apiVersion: '2.2.228',\n source: {\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\n return workerId;\n });\n}\n\nvar PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n var nextDocumentId = 0;\n\n var PDFDocumentLoadingTask =\n /*#__PURE__*/\n function () {\n function PDFDocumentLoadingTask() {\n _classCallCheck(this, PDFDocumentLoadingTask);\n\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = 'd' + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n _createClass(PDFDocumentLoadingTask, [{\n key: \"destroy\",\n value: function destroy() {\n var _this = this;\n\n this.destroyed = true;\n var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(function () {\n _this._transport = null;\n\n if (_this._worker) {\n _this._worker.destroy();\n\n _this._worker = null;\n }\n });\n }\n }, {\n key: \"then\",\n value: function then(onFulfilled, onRejected) {\n (0, _display_utils.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.');\n return this.promise.then.apply(this.promise, arguments);\n }\n }, {\n key: \"promise\",\n get: function get() {\n return this._capability.promise;\n }\n }]);\n\n return PDFDocumentLoadingTask;\n }();\n\n return PDFDocumentLoadingTask;\n}();\n\nvar PDFDataRangeTransport =\n/*#__PURE__*/\nfunction () {\n function PDFDataRangeTransport(length, initialData) {\n var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, PDFDataRangeTransport);\n\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(PDFDataRangeTransport, [{\n key: \"addRangeListener\",\n value: function addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n }, {\n key: \"addProgressListener\",\n value: function addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n }, {\n key: \"addProgressiveReadListener\",\n value: function addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n }, {\n key: \"addProgressiveDoneListener\",\n value: function addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n }, {\n key: \"onDataRange\",\n value: function onDataRange(begin, chunk) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var listener = _step.value;\n listener(begin, chunk);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: \"onDataProgress\",\n value: function onDataProgress(loaded, total) {\n var _this2 = this;\n\n this._readyCapability.promise.then(function () {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var listener = _step2.value;\n listener(loaded, total);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2[\"return\"] != null) {\n _iterator2[\"return\"]();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n });\n }\n }, {\n key: \"onDataProgressiveRead\",\n value: function onDataProgressiveRead(chunk) {\n var _this3 = this;\n\n this._readyCapability.promise.then(function () {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var listener = _step3.value;\n listener(chunk);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3[\"return\"] != null) {\n _iterator3[\"return\"]();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n });\n }\n }, {\n key: \"onDataProgressiveDone\",\n value: function onDataProgressiveDone() {\n var _this4 = this;\n\n this._readyCapability.promise.then(function () {\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var listener = _step4.value;\n listener();\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4[\"return\"] != null) {\n _iterator4[\"return\"]();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n });\n }\n }, {\n key: \"transportReady\",\n value: function transportReady() {\n this._readyCapability.resolve();\n }\n }, {\n key: \"requestDataRange\",\n value: function requestDataRange(begin, end) {\n (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange');\n }\n }, {\n key: \"abort\",\n value: function abort() {}\n }]);\n\n return PDFDataRangeTransport;\n}();\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nvar PDFDocumentProxy =\n/*#__PURE__*/\nfunction () {\n function PDFDocumentProxy(pdfInfo, transport) {\n _classCallCheck(this, PDFDocumentProxy);\n\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n _createClass(PDFDocumentProxy, [{\n key: \"getPage\",\n value: function getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n }, {\n key: \"getDestinations\",\n value: function getDestinations() {\n return this._transport.getDestinations();\n }\n }, {\n key: \"getDestination\",\n value: function getDestination(id) {\n return this._transport.getDestination(id);\n }\n }, {\n key: \"getPageLabels\",\n value: function getPageLabels() {\n return this._transport.getPageLabels();\n }\n }, {\n key: \"getPageLayout\",\n value: function getPageLayout() {\n return this._transport.getPageLayout();\n }\n }, {\n key: \"getPageMode\",\n value: function getPageMode() {\n return this._transport.getPageMode();\n }\n }, {\n key: \"getViewerPreferences\",\n value: function getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n }, {\n key: \"getOpenActionDestination\",\n value: function getOpenActionDestination() {\n return this._transport.getOpenActionDestination();\n }\n }, {\n key: \"getAttachments\",\n value: function getAttachments() {\n return this._transport.getAttachments();\n }\n }, {\n key: \"getJavaScript\",\n value: function getJavaScript() {\n return this._transport.getJavaScript();\n }\n }, {\n key: \"getOutline\",\n value: function getOutline() {\n return this._transport.getOutline();\n }\n }, {\n key: \"getPermissions\",\n value: function getPermissions() {\n return this._transport.getPermissions();\n }\n }, {\n key: \"getMetadata\",\n value: function getMetadata() {\n return this._transport.getMetadata();\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return this._transport.getData();\n }\n }, {\n key: \"getDownloadInfo\",\n value: function getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n }, {\n key: \"getStats\",\n value: function getStats() {\n return this._transport.getStats();\n }\n }, {\n key: \"cleanup\",\n value: function cleanup() {\n this._transport.startCleanup();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n return this.loadingTask.destroy();\n }\n }, {\n key: \"numPages\",\n get: function get() {\n return this._pdfInfo.numPages;\n }\n }, {\n key: \"fingerprint\",\n get: function get() {\n return this._pdfInfo.fingerprint;\n }\n }, {\n key: \"loadingParams\",\n get: function get() {\n return this._transport.loadingParams;\n }\n }, {\n key: \"loadingTask\",\n get: function get() {\n return this._transport.loadingTask;\n }\n }]);\n\n return PDFDocumentProxy;\n}();\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nvar PDFPageProxy =\n/*#__PURE__*/\nfunction () {\n function PDFPageProxy(pageIndex, pageInfo, transport) {\n var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n _classCallCheck(this, PDFPageProxy);\n\n this.pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : _display_utils.DummyStatTimer;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n _createClass(PDFPageProxy, [{\n key: \"getViewport\",\n value: function getViewport() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n scale = _ref.scale,\n _ref$rotation = _ref.rotation,\n rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation,\n _ref$dontFlip = _ref.dontFlip,\n dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip;\n\n if (arguments.length > 1 || typeof arguments[0] === 'number') {\n (0, _display_utils.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\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale: scale,\n rotation: rotation,\n dontFlip: dontFlip\n });\n }\n }, {\n key: \"getAnnotations\",\n value: function getAnnotations() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$intent = _ref2.intent,\n intent = _ref2$intent === void 0 ? null : _ref2$intent;\n\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent);\n this.annotationsIntent = intent;\n }\n\n return this.annotationsPromise;\n }\n }, {\n key: \"render\",\n value: function render(_ref3) {\n var _this5 = this;\n\n var canvasContext = _ref3.canvasContext,\n viewport = _ref3.viewport,\n _ref3$intent = _ref3.intent,\n intent = _ref3$intent === void 0 ? 'display' : _ref3$intent,\n _ref3$enableWebGL = _ref3.enableWebGL,\n enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL,\n _ref3$renderInteracti = _ref3.renderInteractiveForms,\n renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti,\n _ref3$transform = _ref3.transform,\n transform = _ref3$transform === void 0 ? null : _ref3$transform,\n _ref3$imageLayer = _ref3.imageLayer,\n imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer,\n _ref3$canvasFactory = _ref3.canvasFactory,\n canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory,\n _ref3$background = _ref3.background,\n background = _ref3$background === void 0 ? null : _ref3$background;\n var stats = this._stats;\n stats.time('Overall');\n this.pendingCleanup = false;\n var renderingIntent = intent === 'print' ? 'print' : 'display';\n var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();\n var webGLContext = new _webgl.WebGLContext({\n enable: enableWebGL\n });\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n var intentState = this.intentStates[renderingIntent];\n\n if (!intentState.displayReadyCapability) {\n intentState.receivingOperatorList = true;\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n stats.time('Page Request');\n\n this._transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true\n });\n }\n\n var complete = function complete(error) {\n var i = intentState.renderTasks.indexOf(internalRenderTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (_this5.cleanupAfterRender || renderingIntent === 'print') {\n _this5.pendingCleanup = true;\n }\n\n _this5._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n } else {\n internalRenderTask.capability.resolve();\n }\n\n stats.timeEnd('Rendering');\n stats.timeEnd('Overall');\n };\n\n var internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext: canvasContext,\n viewport: viewport,\n transform: transform,\n imageLayer: imageLayer,\n background: background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageNumber: this.pageNumber,\n canvasFactory: canvasFactoryInstance,\n webGLContext: webGLContext,\n useRequestAnimationFrame: renderingIntent !== 'print',\n pdfBug: this._pdfBug\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n\n intentState.renderTasks.push(internalRenderTask);\n var renderTask = internalRenderTask.task;\n intentState.displayReadyCapability.promise.then(function (transparency) {\n if (_this5.pendingCleanup) {\n complete();\n return;\n }\n\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n })[\"catch\"](complete);\n return renderTask;\n }\n }, {\n key: \"getOperatorList\",\n value: function getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n var i = intentState.renderTasks.indexOf(opListTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n var renderingIntent = 'oplist';\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n var intentState = this.intentStates[renderingIntent];\n var opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.receivingOperatorList = true;\n intentState.opListReadCapability = (0, _util.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\n this._transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageIndex,\n intent: renderingIntent\n });\n }\n\n return intentState.opListReadCapability.promise;\n }\n }, {\n key: \"streamTextContent\",\n value: function streamTextContent() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$normalizeWhites = _ref4.normalizeWhitespace,\n normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites,\n _ref4$disableCombineT = _ref4.disableCombineTextItems,\n disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT;\n\n var TEXT_CONTENT_CHUNK_SIZE = 100;\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: function size(textContent) {\n return textContent.items.length;\n }\n });\n }\n }, {\n key: \"getTextContent\",\n value: function getTextContent() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function (_ref5) {\n var _textContent$items;\n\n var value = _ref5.value,\n done = _ref5.done;\n\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n\n (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));\n\n pump();\n }, reject);\n }\n\n var reader = readableStream.getReader();\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this.pageIndex] = null;\n var waitOn = [];\n Object.keys(this.intentStates).forEach(function (intent) {\n if (intent === 'oplist') {\n return;\n }\n\n var intentState = this.intentStates[intent];\n intentState.renderTasks.forEach(function (renderTask) {\n var renderCompleted = renderTask.capability.promise[\"catch\"](function () {});\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n }, {\n key: \"cleanup\",\n value: function cleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.pendingCleanup = true;\n\n this._tryCleanup(resetStats);\n }\n }, {\n key: \"_tryCleanup\",\n value: function _tryCleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {\n var intentState = this.intentStates[intent];\n return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList;\n }, this)) {\n return;\n }\n\n Object.keys(this.intentStates).forEach(function (intent) {\n delete this.intentStates[intent];\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n\n if (resetStats && this._stats instanceof _display_utils.StatTimer) {\n this._stats = new _display_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n }\n }, {\n key: \"_startRenderPage\",\n value: function _startRenderPage(transparency, intent) {\n var intentState = this.intentStates[intent];\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n }, {\n key: \"_renderPageChunk\",\n value: function _renderPageChunk(operatorListChunk, intent) {\n var intentState = this.intentStates[intent];\n\n for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n for (var _i = 0; _i < intentState.renderTasks.length; _i++) {\n intentState.renderTasks[_i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n intentState.receivingOperatorList = false;\n\n this._tryCleanup();\n }\n }\n }, {\n key: \"pageNumber\",\n get: function get() {\n return this.pageIndex + 1;\n }\n }, {\n key: \"rotate\",\n get: function get() {\n return this._pageInfo.rotate;\n }\n }, {\n key: \"ref\",\n get: function get() {\n return this._pageInfo.ref;\n }\n }, {\n key: \"userUnit\",\n get: function get() {\n return this._pageInfo.userUnit;\n }\n }, {\n key: \"view\",\n get: function get() {\n return this._pageInfo.view;\n }\n }, {\n key: \"stats\",\n get: function get() {\n return this._stats instanceof _display_utils.StatTimer ? this._stats : null;\n }\n }]);\n\n return PDFPageProxy;\n}();\n\nexports.PDFPageProxy = PDFPageProxy;\n\nvar LoopbackPort =\n/*#__PURE__*/\nfunction () {\n function LoopbackPort() {\n var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _classCallCheck(this, LoopbackPort);\n\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n _createClass(LoopbackPort, [{\n key: \"postMessage\",\n value: function postMessage(obj, transfers) {\n var _this6 = this;\n\n function cloneValue(value) {\n if (_typeof(value) !== 'object' || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n var buffer, result;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n var transferable = transfers && transfers.includes(buffer);\n\n if (value === buffer) {\n result = value;\n } else if (transferable) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n\n for (var i in value) {\n var desc = void 0,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === 'undefined' || typeof desc.value === 'function') {\n continue;\n }\n\n result[i] = cloneValue(desc.value);\n }\n\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(function (listener) {\n listener.call(this, {\n data: obj\n });\n }, this);\n\n return;\n }\n\n var cloned = new WeakMap();\n var e = {\n data: cloneValue(obj)\n };\n\n this._deferred.then(function () {\n _this6._listeners.forEach(function (listener) {\n listener.call(this, e);\n }, _this6);\n });\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(name, listener) {\n var i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n }, {\n key: \"terminate\",\n value: function terminate() {\n this._listeners.length = 0;\n }\n }]);\n\n return LoopbackPort;\n}();\n\nexports.LoopbackPort = LoopbackPort;\n\nvar PDFWorker = function PDFWorkerClosure() {\n var pdfWorkerPorts = new WeakMap();\n var nextFakeWorkerId = 0;\n var fakeWorkerFilesLoadedCapability;\n\n function _getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (typeof fallbackWorkerSrc !== 'undefined') {\n return fallbackWorkerSrc;\n }\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\n return null;\n }\n\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n\n fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();\n var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (mainWorkerMessageHandler) {\n fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n\n var loader = fakeWorkerFilesLoader || function () {\n return (0, _display_utils.loadScript)(_getWorkerSrc()).then(function () {\n return window.pdfjsWorker.WorkerMessageHandler;\n });\n };\n\n loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n\n function createCDNWrapper(url) {\n var wrapper = 'importScripts(\\'' + url + '\\');';\n return _util.URL.createObjectURL(new Blob([wrapper]));\n }\n\n var PDFWorker =\n /*#__PURE__*/\n function () {\n function PDFWorker() {\n var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref6$name = _ref6.name,\n name = _ref6$name === void 0 ? null : _ref6$name,\n _ref6$port = _ref6.port,\n port = _ref6$port === void 0 ? null : _ref6$port,\n _ref6$postMessageTran = _ref6.postMessageTransfers,\n postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran,\n _ref6$verbosity = _ref6.verbosity,\n verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity;\n\n _classCallCheck(this, PDFWorker);\n\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 = postMessageTransfers !== false;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n _createClass(PDFWorker, [{\n key: \"_initializeFromPort\",\n value: function _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);\n\n this._messageHandler.on('ready', function () {});\n\n this._readyCapability.resolve();\n }\n }, {\n key: \"_initialize\",\n value: function _initialize() {\n var _this7 = this;\n\n if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n var workerSrc = _getWorkerSrc();\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href);\n }\n\n var worker = new Worker(workerSrc);\n var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);\n\n var terminateEarly = function terminateEarly() {\n worker.removeEventListener('error', onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (_this7.destroyed) {\n _this7._readyCapability.reject(new Error('Worker was destroyed'));\n } else {\n _this7._setupFakeWorker();\n }\n };\n\n var onWorkerError = function onWorkerError() {\n if (!_this7._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener('error', onWorkerError);\n messageHandler.on('test', function (data) {\n worker.removeEventListener('error', onWorkerError);\n\n if (_this7.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data && data.supportTypedArray) {\n _this7._messageHandler = messageHandler;\n _this7._port = worker;\n _this7._webWorker = worker;\n\n if (!data.supportTransfers) {\n _this7.postMessageTransfers = false;\n }\n\n _this7._readyCapability.resolve();\n\n messageHandler.send('configure', {\n verbosity: _this7.verbosity\n });\n } else {\n _this7._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on('ready', function (data) {\n worker.removeEventListener('error', onWorkerError);\n\n if (_this7.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n _this7._setupFakeWorker();\n }\n });\n\n var sendTest = function sendTest() {\n var testObj = new Uint8Array([_this7.postMessageTransfers ? 255 : 0]);\n\n try {\n messageHandler.send('test', testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.info)('Cannot use postMessage transfers');\n testObj[0] = 0;\n messageHandler.send('test', testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)('The worker has been disabled.');\n }\n }\n\n this._setupFakeWorker();\n }\n }, {\n key: \"_setupFakeWorker\",\n value: function _setupFakeWorker() {\n var _this8 = this;\n\n if (!isWorkerDisabled) {\n (0, _util.warn)('Setting up fake worker.');\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {\n if (_this8.destroyed) {\n _this8._readyCapability.reject(new Error('Worker was destroyed'));\n\n return;\n }\n\n var port = new LoopbackPort();\n _this8._port = port;\n var id = 'fake' + nextFakeWorkerId++;\n var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);\n _this8._messageHandler = messageHandler;\n\n _this8._readyCapability.resolve();\n })[\"catch\"](function (reason) {\n _this8._readyCapability.reject(new Error(\"Setting up fake worker failed: \\\"\".concat(reason.message, \"\\\".\")));\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n pdfWorkerPorts[\"delete\"](this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n }, {\n key: \"promise\",\n get: function get() {\n return this._readyCapability.promise;\n }\n }, {\n key: \"port\",\n get: function get() {\n return this._port;\n }\n }, {\n key: \"messageHandler\",\n get: function get() {\n return this._messageHandler;\n }\n }], [{\n key: \"fromPort\",\n value: function fromPort(params) {\n if (!params || !params.port) {\n throw new Error('PDFWorker.fromPort - invalid method signature.');\n }\n\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n }, {\n key: \"getWorkerSrc\",\n value: function getWorkerSrc() {\n return _getWorkerSrc();\n }\n }]);\n\n return PDFWorker;\n }();\n\n return PDFWorker;\n}();\n\nexports.PDFWorker = PDFWorker;\n\nvar WorkerTransport =\n/*#__PURE__*/\nfunction () {\n function WorkerTransport(messageHandler, loadingTask, networkStream, params) {\n _classCallCheck(this, WorkerTransport);\n\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.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 this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n _createClass(WorkerTransport, [{\n key: \"destroy\",\n value: function destroy() {\n var _this9 = this;\n\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));\n }\n\n var waitOn = [];\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 var terminated = this.messageHandler.sendWithPromise('Terminate', null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(function () {\n _this9.fontLoader.clear();\n\n if (_this9._networkStream) {\n _this9._networkStream.cancelAllRequests();\n }\n\n if (_this9.messageHandler) {\n _this9.messageHandler.destroy();\n\n _this9.messageHandler = null;\n }\n\n _this9.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n }, {\n key: \"setupMessageHandler\",\n value: function setupMessageHandler() {\n var messageHandler = this.messageHandler,\n loadingTask = this.loadingTask;\n messageHandler.on('GetReader', function (data, sink) {\n var _this10 = this;\n\n (0, _util.assert)(this._networkStream);\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = function (evt) {\n _this10._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = function () {\n _this10._fullReader.read().then(function (_ref7) {\n var value = _ref7.value,\n done = _ref7.done;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })[\"catch\"](function (reason) {\n sink.error(reason);\n });\n };\n\n sink.onCancel = function (reason) {\n _this10._fullReader.cancel(reason);\n };\n }, this);\n messageHandler.on('ReaderHeadersReady', function (data) {\n var _this11 = this;\n\n var headersCapability = (0, _util.createPromiseCapability)();\n var fullReader = this._fullReader;\n fullReader.headersReady.then(function () {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (_this11._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(_this11._lastProgress);\n }\n\n fullReader.onProgress = function (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 return headersCapability.promise;\n }, this);\n messageHandler.on('GetRangeReader', function (data, sink) {\n (0, _util.assert)(this._networkStream);\n\n var rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = function () {\n rangeReader.read().then(function (_ref8) {\n var value = _ref8.value,\n done = _ref8.done;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })[\"catch\"](function (reason) {\n sink.error(reason);\n });\n };\n\n sink.onCancel = function (reason) {\n rangeReader.cancel(reason);\n };\n }, this);\n messageHandler.on('GetDoc', function (_ref9) {\n var pdfInfo = _ref9.pdfInfo;\n this._numPages = pdfInfo.numPages;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n }, this);\n messageHandler.on('PasswordRequest', function (exception) {\n var _this12 = this;\n\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n var updatePassword = function updatePassword(password) {\n _this12._passwordCapability.resolve({\n password: password\n });\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(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n }, this);\n messageHandler.on('PasswordException', function (exception) {\n loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code));\n }, this);\n messageHandler.on('InvalidPDF', function (exception) {\n loadingTask._capability.reject(new _util.InvalidPDFException(exception.message));\n }, this);\n messageHandler.on('MissingPDF', function (exception) {\n loadingTask._capability.reject(new _util.MissingPDFException(exception.message));\n }, this);\n messageHandler.on('UnexpectedResponse', function (exception) {\n loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status));\n }, this);\n messageHandler.on('UnknownError', function (exception) {\n loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details));\n }, this);\n messageHandler.on('DataLoaded', function (data) {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n\n this.downloadInfoCapability.resolve(data);\n }, this);\n messageHandler.on('StartRenderPage', function (data) {\n if (this.destroyed) {\n return;\n }\n\n var page = this.pageCache[data.pageIndex];\n\n page._stats.timeEnd('Page Request');\n\n page._startRenderPage(data.transparency, data.intent);\n }, this);\n messageHandler.on('RenderPageChunk', function (data) {\n if (this.destroyed) {\n return;\n }\n\n var page = this.pageCache[data.pageIndex];\n\n page._renderPageChunk(data.operatorList, data.intent);\n }, this);\n messageHandler.on('commonobj', function (data) {\n var _this13 = this;\n\n if (this.destroyed) {\n return;\n }\n\n var _data = _slicedToArray(data, 3),\n id = _data[0],\n type = _data[1],\n exportedData = _data[2];\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case 'Font':\n var params = this._params;\n\n if ('error' in exportedData) {\n var exportedError = exportedData.error;\n (0, _util.warn)(\"Error during font loading: \".concat(exportedError));\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n var fontRegistry = null;\n\n if (params.pdfBug && _global_scope[\"default\"].FontInspector && _global_scope[\"default\"].FontInspector.enabled) {\n fontRegistry = {\n registerFont: function registerFont(font, url) {\n _global_scope[\"default\"]['FontInspector'].fontAdded(font, url);\n }\n };\n }\n\n var font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry: fontRegistry\n });\n this.fontLoader.bind(font).then(function () {\n _this13.commonObjs.resolve(id, font);\n }, function (reason) {\n messageHandler.sendWithPromise('FontFallback', {\n id: id\n })[\"finally\"](function () {\n _this13.commonObjs.resolve(id, font);\n });\n });\n break;\n\n case 'FontPath':\n case 'FontType3Res':\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(\"Got unknown common object type \".concat(type));\n }\n }, this);\n messageHandler.on('obj', function (data) {\n if (this.destroyed) {\n return undefined;\n }\n\n var _data2 = _slicedToArray(data, 4),\n id = _data2[0],\n pageIndex = _data2[1],\n type = _data2[2],\n imageData = _data2[3];\n\n var pageProxy = this.pageCache[pageIndex];\n\n if (pageProxy.objs.has(id)) {\n return undefined;\n }\n\n switch (type) {\n case 'JpegStream':\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onload = function () {\n resolve(img);\n };\n\n img.onerror = function () {\n reject(new Error('Error during JPEG image loading'));\n (0, _display_utils.releaseImageResources)(img);\n };\n\n img.src = imageData;\n }).then(function (img) {\n pageProxy.objs.resolve(id, img);\n });\n\n case 'Image':\n pageProxy.objs.resolve(id, imageData);\n var MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n default:\n throw new Error(\"Got unknown object type \".concat(type));\n }\n\n return undefined;\n }, this);\n messageHandler.on('DocProgress', function (data) {\n if (this.destroyed) {\n return;\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n }, this);\n messageHandler.on('PageError', function (data) {\n if (this.destroyed) {\n return;\n }\n\n var page = this.pageCache[data.pageIndex];\n var intentState = page.intentStates[data.intent];\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(new Error(data.error));\n } else {\n throw new Error(data.error);\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (var i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n }\n }, this);\n messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this);\n messageHandler.on('JpegDecode', function (data) {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n if (typeof document === 'undefined') {\n return Promise.reject(new Error('\"document\" is not defined.'));\n }\n\n var _data3 = _slicedToArray(data, 2),\n imageUrl = _data3[0],\n components = _data3[1];\n\n if (components !== 3 && components !== 1) {\n return Promise.reject(new Error('Only 3 components or 1 component can be returned'));\n }\n\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onload = function () {\n var width = img.width,\n height = img.height;\n var size = width * height;\n var rgbaLength = size * 4;\n var buf = new Uint8ClampedArray(size * components);\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n var tmpCtx = tmpCanvas.getContext('2d');\n tmpCtx.drawImage(img, 0, 0);\n var data = tmpCtx.getImageData(0, 0, width, height).data;\n\n if (components === 3) {\n for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n buf[j] = data[i];\n buf[j + 1] = data[i + 1];\n buf[j + 2] = data[i + 2];\n }\n } else if (components === 1) {\n for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) {\n buf[_j] = data[_i2];\n }\n }\n\n resolve({\n data: buf,\n width: width,\n height: height\n });\n (0, _display_utils.releaseImageResources)(img);\n tmpCanvas.width = 0;\n tmpCanvas.height = 0;\n tmpCanvas = null;\n tmpCtx = null;\n };\n\n img.onerror = function () {\n reject(new Error('JpegDecode failed to load image'));\n (0, _display_utils.releaseImageResources)(img);\n };\n\n img.src = imageUrl;\n });\n }, this);\n messageHandler.on('FetchBuiltInCMap', function (data) {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n return this.CMapReaderFactory.fetch({\n name: data.name\n });\n }, this);\n }\n }, {\n key: \"_onUnsupportedFeature\",\n value: function _onUnsupportedFeature(_ref10) {\n var featureId = _ref10.featureId;\n\n if (this.destroyed) {\n return;\n }\n\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return this.messageHandler.sendWithPromise('GetData', null);\n }\n }, {\n key: \"getPage\",\n value: function getPage(pageNumber) {\n var _this14 = this;\n\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error('Invalid page request'));\n }\n\n var pageIndex = pageNumber - 1;\n\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n\n var promise = this.messageHandler.sendWithPromise('GetPage', {\n pageIndex: pageIndex\n }).then(function (pageInfo) {\n if (_this14.destroyed) {\n throw new Error('Transport destroyed');\n }\n\n var page = new PDFPageProxy(pageIndex, pageInfo, _this14, _this14._params.pdfBug);\n _this14.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n }, {\n key: \"getPageIndex\",\n value: function getPageIndex(ref) {\n return this.messageHandler.sendWithPromise('GetPageIndex', {\n ref: ref\n })[\"catch\"](function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n }, {\n key: \"getAnnotations\",\n value: function getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise('GetAnnotations', {\n pageIndex: pageIndex,\n intent: intent\n });\n }\n }, {\n key: \"getDestinations\",\n value: function getDestinations() {\n return this.messageHandler.sendWithPromise('GetDestinations', null);\n }\n }, {\n key: \"getDestination\",\n value: function getDestination(id) {\n if (typeof id !== 'string') {\n return Promise.reject(new Error('Invalid destination request.'));\n }\n\n return this.messageHandler.sendWithPromise('GetDestination', {\n id: id\n });\n }\n }, {\n key: \"getPageLabels\",\n value: function getPageLabels() {\n return this.messageHandler.sendWithPromise('GetPageLabels', null);\n }\n }, {\n key: \"getPageLayout\",\n value: function getPageLayout() {\n return this.messageHandler.sendWithPromise('GetPageLayout', null);\n }\n }, {\n key: \"getPageMode\",\n value: function getPageMode() {\n return this.messageHandler.sendWithPromise('GetPageMode', null);\n }\n }, {\n key: \"getViewerPreferences\",\n value: function getViewerPreferences() {\n return this.messageHandler.sendWithPromise('GetViewerPreferences', null);\n }\n }, {\n key: \"getOpenActionDestination\",\n value: function getOpenActionDestination() {\n return this.messageHandler.sendWithPromise('GetOpenActionDestination', null);\n }\n }, {\n key: \"getAttachments\",\n value: function getAttachments() {\n return this.messageHandler.sendWithPromise('GetAttachments', null);\n }\n }, {\n key: \"getJavaScript\",\n value: function getJavaScript() {\n return this.messageHandler.sendWithPromise('GetJavaScript', null);\n }\n }, {\n key: \"getOutline\",\n value: function getOutline() {\n return this.messageHandler.sendWithPromise('GetOutline', null);\n }\n }, {\n key: \"getPermissions\",\n value: function getPermissions() {\n return this.messageHandler.sendWithPromise('GetPermissions', null);\n }\n }, {\n key: \"getMetadata\",\n value: function getMetadata() {\n var _this15 = this;\n\n return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: _this15._fullReader ? _this15._fullReader.filename : null\n };\n });\n }\n }, {\n key: \"getStats\",\n value: function getStats() {\n return this.messageHandler.sendWithPromise('GetStats', null);\n }\n }, {\n key: \"startCleanup\",\n value: function startCleanup() {\n var _this16 = this;\n\n this.messageHandler.sendWithPromise('Cleanup', null).then(function () {\n for (var i = 0, ii = _this16.pageCache.length; i < ii; i++) {\n var page = _this16.pageCache[i];\n\n if (page) {\n page.cleanup();\n }\n }\n\n _this16.commonObjs.clear();\n\n _this16.fontLoader.clear();\n });\n }\n }, {\n key: \"loadingParams\",\n get: function get() {\n var params = this._params;\n return (0, _util.shadow)(this, 'loadingParams', {\n disableAutoFetch: params.disableAutoFetch,\n disableCreateObjectURL: params.disableCreateObjectURL,\n disableFontFace: params.disableFontFace,\n nativeImageDecoderSupport: params.nativeImageDecoderSupport\n });\n }\n }]);\n\n return WorkerTransport;\n}();\n\nvar PDFObjects =\n/*#__PURE__*/\nfunction () {\n function PDFObjects() {\n _classCallCheck(this, PDFObjects);\n\n this._objs = Object.create(null);\n }\n\n _createClass(PDFObjects, [{\n key: \"_ensureObj\",\n value: function _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n\n return this._objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n }\n }, {\n key: \"get\",\n value: function get(objId) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n\n return null;\n }\n\n var obj = this._objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error(\"Requesting object that isn't resolved yet \".concat(objId, \".\"));\n }\n\n return obj.data;\n }\n }, {\n key: \"has\",\n value: function has(objId) {\n var obj = this._objs[objId];\n return obj ? obj.resolved : false;\n }\n }, {\n key: \"resolve\",\n value: function resolve(objId, data) {\n var obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n for (var objId in this._objs) {\n var data = this._objs[objId].data;\n\n if (typeof Image !== 'undefined' && data instanceof Image) {\n (0, _display_utils.releaseImageResources)(data);\n }\n }\n\n this._objs = Object.create(null);\n }\n }]);\n\n return PDFObjects;\n}();\n\nvar RenderTask =\n/*#__PURE__*/\nfunction () {\n function RenderTask(internalRenderTask) {\n _classCallCheck(this, RenderTask);\n\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n _createClass(RenderTask, [{\n key: \"cancel\",\n value: function cancel() {\n this._internalRenderTask.cancel();\n }\n }, {\n key: \"then\",\n value: function then(onFulfilled, onRejected) {\n (0, _display_utils.deprecated)('RenderTask.then method, use the `promise` getter instead.');\n return this.promise.then.apply(this.promise, arguments);\n }\n }, {\n key: \"promise\",\n get: function get() {\n return this._internalRenderTask.capability.promise;\n }\n }]);\n\n return RenderTask;\n}();\n\nvar InternalRenderTask = function InternalRenderTaskClosure() {\n var canvasInRendering = new WeakSet();\n\n var InternalRenderTask =\n /*#__PURE__*/\n function () {\n function InternalRenderTask(_ref11) {\n var callback = _ref11.callback,\n params = _ref11.params,\n objs = _ref11.objs,\n commonObjs = _ref11.commonObjs,\n operatorList = _ref11.operatorList,\n pageNumber = _ref11.pageNumber,\n canvasFactory = _ref11.canvasFactory,\n webGLContext = _ref11.webGLContext,\n _ref11$useRequestAnim = _ref11.useRequestAnimationFrame,\n useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim,\n _ref11$pdfBug = _ref11.pdfBug,\n pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug;\n\n _classCallCheck(this, InternalRenderTask);\n\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 this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined';\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\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 _createClass(InternalRenderTask, [{\n key: \"initializeGraphics\",\n value: function initializeGraphics() {\n var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.');\n }\n\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && _global_scope[\"default\"].StepperManager && _global_scope[\"default\"].StepperManager.enabled) {\n this.stepper = _global_scope[\"default\"].StepperManager.create(this.pageNumber - 1);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n var _this$params = this.params,\n canvasContext = _this$params.canvasContext,\n viewport = _this$params.viewport,\n transform = _this$params.transform,\n imageLayer = _this$params.imageLayer,\n background = _this$params.background;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);\n this.gfx.beginDrawing({\n transform: transform,\n viewport: viewport,\n transparency: transparency,\n background: background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n canvasInRendering[\"delete\"](this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(\"Rendering cancelled, page \".concat(this.pageNumber), 'canvas'));\n }\n }, {\n key: \"operatorListChanged\",\n value: function operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\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\n this._continue();\n }\n }, {\n key: \"_continue\",\n value: function _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n }, {\n key: \"_scheduleNext\",\n value: function _scheduleNext() {\n var _this17 = this;\n\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(function () {\n _this17._nextBound()[\"catch\"](_this17.cancel.bind(_this17));\n });\n } else {\n Promise.resolve().then(this._nextBound)[\"catch\"](this.cancel.bind(this));\n }\n }\n }, {\n key: \"_next\",\n value: function () {\n var _next2 = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee() {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this.cancelled) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n canvasInRendering[\"delete\"](this._canvas);\n }\n\n this.callback();\n }\n }\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function _next() {\n return _next2.apply(this, arguments);\n }\n\n return _next;\n }()\n }]);\n\n return InternalRenderTask;\n }();\n\n return InternalRenderTask;\n}();\n\nvar version = '2.2.228';\nexports.version = version;\nvar build = 'd7afb74a';\nexports.build = build;\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(149);\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined;\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 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap;\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\";\n\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 ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && _typeof(value) === \"object\" && 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 result.value = unwrapped;\n resolve(result);\n }, function (error) {\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 = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator;\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter : 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 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 return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n context.sent = context._sent = context.arg;\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 } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator[\"return\"]) {\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"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 context[delegate.resultName] = info.value;\n context.next = delegate.nextLoc;\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n return info;\n }\n\n context.delegate = null;\n return ContinueSentinel;\n }\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\";\n\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 = {\n tryLoc: locs[0]\n };\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 this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse();\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\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,\n 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 return next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\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 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 } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\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 complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || 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 finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n return exports;\n}(( false ? undefined : _typeof(module)) === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module)))\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = [];\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addLinkAttributes = addLinkAttributes;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.isFetchSupported = isFetchSupported;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.deprecated = deprecated;\nexports.releaseImageResources = releaseImageResources;\nexports.PDFDateString = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nexports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\nvar SVG_NS = 'http://www.w3.org/2000/svg';\n\nvar DOMCanvasFactory =\n/*#__PURE__*/\nfunction () {\n function DOMCanvasFactory() {\n _classCallCheck(this, DOMCanvasFactory);\n }\n\n _createClass(DOMCanvasFactory, [{\n key: \"create\",\n value: function create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error('Invalid canvas size');\n }\n\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = width;\n canvas.height = height;\n return {\n canvas: canvas,\n context: context\n };\n }\n }, {\n key: \"reset\",\n value: function reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error('Canvas is not specified');\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error('Invalid canvas size');\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n }, {\n key: \"destroy\",\n value: function destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error('Canvas is not specified');\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n }]);\n\n return DOMCanvasFactory;\n}();\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nvar DOMCMapReaderFactory =\n/*#__PURE__*/\nfunction () {\n function DOMCMapReaderFactory(_ref) {\n var _ref$baseUrl = _ref.baseUrl,\n baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,\n _ref$isCompressed = _ref.isCompressed,\n isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;\n\n _classCallCheck(this, DOMCMapReaderFactory);\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n _createClass(DOMCMapReaderFactory, [{\n key: \"fetch\",\n value: function (_fetch) {\n function fetch(_x) {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }(\n /*#__PURE__*/\n function () {\n var _ref3 = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2(_ref2) {\n var _this = this;\n\n var name, url, compressionType;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n name = _ref2.name;\n\n if (this.baseUrl) {\n _context2.next = 3;\n break;\n }\n\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n\n case 3:\n if (name) {\n _context2.next = 5;\n break;\n }\n\n throw new Error('CMap name must be specified.');\n\n case 5:\n url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : '');\n compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n\n if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) {\n _context2.next = 9;\n break;\n }\n\n return _context2.abrupt(\"return\", fetch(url).then(\n /*#__PURE__*/\n function () {\n var _ref4 = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee(response) {\n var cMapData;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (response.ok) {\n _context.next = 2;\n break;\n }\n\n throw new Error(response.statusText);\n\n case 2:\n if (!_this.isCompressed) {\n _context.next = 10;\n break;\n }\n\n _context.t0 = Uint8Array;\n _context.next = 6;\n return response.arrayBuffer();\n\n case 6:\n _context.t1 = _context.sent;\n cMapData = new _context.t0(_context.t1);\n _context.next = 15;\n break;\n\n case 10:\n _context.t2 = _util.stringToBytes;\n _context.next = 13;\n return response.text();\n\n case 13:\n _context.t3 = _context.sent;\n cMapData = (0, _context.t2)(_context.t3);\n\n case 15:\n return _context.abrupt(\"return\", {\n cMapData: cMapData,\n compressionType: compressionType\n });\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x3) {\n return _ref4.apply(this, arguments);\n };\n }())[\"catch\"](function (reason) {\n throw new Error(\"Unable to load \".concat(_this.isCompressed ? 'binary ' : '') + \"CMap at: \".concat(url));\n }));\n\n case 9:\n return _context2.abrupt(\"return\", new Promise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.open('GET', url, true);\n\n if (_this.isCompressed) {\n request.responseType = 'arraybuffer';\n }\n\n request.onreadystatechange = function () {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n var cMapData;\n\n if (_this.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!_this.isCompressed && request.responseText) {\n cMapData = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (cMapData) {\n resolve({\n cMapData: cMapData,\n compressionType: compressionType\n });\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n })[\"catch\"](function (reason) {\n throw new Error(\"Unable to load \".concat(_this.isCompressed ? 'binary ' : '') + \"CMap at: \".concat(url));\n }));\n\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }())\n }]);\n\n return DOMCMapReaderFactory;\n}();\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nvar DOMSVGFactory =\n/*#__PURE__*/\nfunction () {\n function DOMSVGFactory() {\n _classCallCheck(this, DOMSVGFactory);\n }\n\n _createClass(DOMSVGFactory, [{\n key: \"create\",\n value: function create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions');\n var 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 return svg;\n }\n }, {\n key: \"createElement\",\n value: function createElement(type) {\n (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type');\n return document.createElementNS(SVG_NS, type);\n }\n }]);\n\n return DOMSVGFactory;\n}();\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nvar PageViewport =\n/*#__PURE__*/\nfunction () {\n function PageViewport(_ref5) {\n var viewBox = _ref5.viewBox,\n scale = _ref5.scale,\n rotation = _ref5.rotation,\n _ref5$offsetX = _ref5.offsetX,\n offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX,\n _ref5$offsetY = _ref5.offsetY,\n offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY,\n _ref5$dontFlip = _ref5.dontFlip,\n dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip;\n\n _classCallCheck(this, PageViewport);\n\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n var centerX = (viewBox[2] + viewBox[0]) / 2;\n var centerY = (viewBox[3] + viewBox[1]) / 2;\n var rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n default:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n var offsetCanvasX, offsetCanvasY;\n var width, height;\n\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\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n _createClass(PageViewport, [{\n key: \"clone\",\n value: function clone() {\n var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref6$scale = _ref6.scale,\n scale = _ref6$scale === void 0 ? this.scale : _ref6$scale,\n _ref6$rotation = _ref6.rotation,\n rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation,\n _ref6$dontFlip = _ref6.dontFlip,\n dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip;\n\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale: scale,\n rotation: rotation,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n dontFlip: dontFlip\n });\n }\n }, {\n key: \"convertToViewportPoint\",\n value: function convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n }, {\n key: \"convertToViewportRectangle\",\n value: function convertToViewportRectangle(rect) {\n var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n }, {\n key: \"convertToPdfPoint\",\n value: function convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n }]);\n\n return PageViewport;\n}();\n\nexports.PageViewport = PageViewport;\n\nvar RenderingCancelledException = function RenderingCancelledException() {\n function RenderingCancelledException(msg, type) {\n this.message = msg;\n this.type = type;\n }\n\n RenderingCancelledException.prototype = new Error();\n RenderingCancelledException.prototype.name = 'RenderingCancelledException';\n RenderingCancelledException.constructor = RenderingCancelledException;\n return RenderingCancelledException;\n}();\n\nexports.RenderingCancelledException = RenderingCancelledException;\nvar LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\nvar LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top'];\n\nfunction addLinkAttributes(link) {\n var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n url = _ref7.url,\n target = _ref7.target,\n rel = _ref7.rel;\n\n link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : '';\n\n if (url) {\n var LinkTargetValues = Object.values(LinkTarget);\n var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE;\n link.target = LinkTargetStringMap[targetIndex];\n link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL;\n }\n}\n\nfunction getFilenameFromUrl(url) {\n var anchor = url.indexOf('#');\n var query = url.indexOf('?');\n var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf('/', end) + 1, end);\n}\n\nvar StatTimer =\n/*#__PURE__*/\nfunction () {\n function StatTimer() {\n var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _classCallCheck(this, StatTimer);\n\n this.enabled = !!enable;\n this.started = Object.create(null);\n this.times = [];\n }\n\n _createClass(StatTimer, [{\n key: \"time\",\n value: function time(name) {\n if (!this.enabled) {\n return;\n }\n\n if (name in this.started) {\n (0, _util.warn)('Timer is already running for ' + name);\n }\n\n this.started[name] = Date.now();\n }\n }, {\n key: \"timeEnd\",\n value: function timeEnd(name) {\n if (!this.enabled) {\n return;\n }\n\n if (!(name in this.started)) {\n (0, _util.warn)('Timer has not been started for ' + name);\n }\n\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now()\n });\n delete this.started[name];\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var out = '',\n longest = 0;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var time = _step.value;\n var name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _time = _step2.value;\n var duration = _time.end - _time.start;\n out += \"\".concat(_time.name.padEnd(longest), \" \").concat(duration, \"ms\\n\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2[\"return\"] != null) {\n _iterator2[\"return\"]();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return out;\n }\n }]);\n\n return StatTimer;\n}();\n\nexports.StatTimer = StatTimer;\n\nvar DummyStatTimer =\n/*#__PURE__*/\nfunction () {\n function DummyStatTimer() {\n _classCallCheck(this, DummyStatTimer);\n\n (0, _util.unreachable)('Cannot initialize DummyStatTimer.');\n }\n\n _createClass(DummyStatTimer, null, [{\n key: \"time\",\n value: function time(name) {}\n }, {\n key: \"timeEnd\",\n value: function timeEnd(name) {}\n }, {\n key: \"toString\",\n value: function toString() {\n return '';\n }\n }]);\n\n return DummyStatTimer;\n}();\n\nexports.DummyStatTimer = DummyStatTimer;\n\nfunction isFetchSupported() {\n return typeof fetch !== 'undefined' && typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined';\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n var _ref8 = baseUrl ? new _util.URL(url, baseUrl) : new _util.URL(url),\n protocol = _ref8.protocol;\n\n return protocol === 'http:' || protocol === 'https:';\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src) {\n return new Promise(function (resolve, reject) {\n var script = document.createElement('script');\n script.src = src;\n script.onload = resolve;\n\n script.onerror = function () {\n reject(new Error(\"Cannot load script at: \".concat(script.src)));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nfunction deprecated(details) {\n console.log('Deprecated API usage: ' + details);\n}\n\nfunction releaseImageResources(img) {\n (0, _util.assert)(img instanceof Image, 'Invalid `img` parameter.');\n var url = img.src;\n\n if (typeof url === 'string' && url.startsWith('blob:') && _util.URL.revokeObjectURL) {\n _util.URL.revokeObjectURL(url);\n }\n\n img.removeAttribute('src');\n}\n\nvar pdfDateStringRegex;\n\nvar PDFDateString =\n/*#__PURE__*/\nfunction () {\n function PDFDateString() {\n _classCallCheck(this, PDFDateString);\n }\n\n _createClass(PDFDateString, null, [{\n key: \"toDateObject\",\n value: function toDateObject(input) {\n if (!input || !(0, _util.isString)(input)) {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp('^D:' + '(\\\\d{4})' + '(\\\\d{2})?' + '(\\\\d{2})?' + '(\\\\d{2})?' + '(\\\\d{2})?' + '(\\\\d{2})?' + '([Z|+|-])?' + '(\\\\d{2})?' + '\\'?' + '(\\\\d{2})?' + '\\'?');\n }\n\n var matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n var year = parseInt(matches[1], 10);\n var month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n var day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n var hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n var minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n var second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n var universalTimeRelation = matches[7] || 'Z';\n var offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n var offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\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\n return PDFDateString;\n}();\n\nexports.PDFDateString = PDFDateString;\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar BaseFontLoader =\n/*#__PURE__*/\nfunction () {\n function BaseFontLoader(_ref) {\n var docId = _ref.docId,\n onUnsupportedFeature = _ref.onUnsupportedFeature;\n\n _classCallCheck(this, BaseFontLoader);\n\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)('Cannot initialize BaseFontLoader.');\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n _createClass(BaseFontLoader, [{\n key: \"addNativeFontFace\",\n value: function addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n document.fonts.add(nativeFontFace);\n }\n }, {\n key: \"insertRule\",\n value: function insertRule(rule) {\n var styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = document.createElement('style');\n styleElement.id = \"PDFJS_FONT_STYLE_TAG_\".concat(this.docId);\n document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);\n }\n\n var styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.nativeFontFaces.forEach(function (nativeFontFace) {\n document.fonts[\"delete\"](nativeFontFace);\n });\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n }, {\n key: \"bind\",\n value: function () {\n var _bind = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee(font) {\n var _this = this;\n\n var nativeFontFace, rule;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(font.attached || font.missingFile)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\", undefined);\n\n case 2:\n font.attached = true;\n\n if (!this.isFontLoadingAPISupported) {\n _context.next = 19;\n break;\n }\n\n nativeFontFace = font.createNativeFontFace();\n\n if (!nativeFontFace) {\n _context.next = 18;\n break;\n }\n\n this.addNativeFontFace(nativeFontFace);\n _context.prev = 7;\n _context.next = 10;\n return nativeFontFace.loaded;\n\n case 10:\n _context.next = 18;\n break;\n\n case 12:\n _context.prev = 12;\n _context.t0 = _context[\"catch\"](7);\n\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.font\n });\n\n (0, _util.warn)(\"Failed to load font '\".concat(nativeFontFace.family, \"': '\").concat(_context.t0, \"'.\"));\n font.disableFontFace = true;\n throw _context.t0;\n\n case 18:\n return _context.abrupt(\"return\", undefined);\n\n case 19:\n rule = font.createFontFaceRule();\n\n if (!rule) {\n _context.next = 25;\n break;\n }\n\n this.insertRule(rule);\n\n if (!this.isSyncFontLoadingSupported) {\n _context.next = 24;\n break;\n }\n\n return _context.abrupt(\"return\", undefined);\n\n case 24:\n return _context.abrupt(\"return\", new Promise(function (resolve) {\n var request = _this._queueLoadingCallback(resolve);\n\n _this._prepareFontLoadEvent([rule], [font], request);\n }));\n\n case 25:\n return _context.abrupt(\"return\", undefined);\n\n case 26:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[7, 12]]);\n }));\n\n function bind(_x) {\n return _bind.apply(this, arguments);\n }\n\n return bind;\n }()\n }, {\n key: \"_queueLoadingCallback\",\n value: function _queueLoadingCallback(callback) {\n (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.');\n }\n }, {\n key: \"_prepareFontLoadEvent\",\n value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');\n }\n }, {\n key: \"isFontLoadingAPISupported\",\n get: function get() {\n (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');\n }\n }, {\n key: \"isSyncFontLoadingSupported\",\n get: function get() {\n (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');\n }\n }, {\n key: \"_loadTestFont\",\n get: function get() {\n (0, _util.unreachable)('Abstract method `_loadTestFont`.');\n }\n }]);\n\n return BaseFontLoader;\n}();\n\nvar FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader =\n /*#__PURE__*/\n function (_BaseFontLoader) {\n _inherits(GenericFontLoader, _BaseFontLoader);\n\n function GenericFontLoader(docId) {\n var _this2;\n\n _classCallCheck(this, GenericFontLoader);\n\n _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId));\n _this2.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n _this2.loadTestFontId = 0;\n return _this2;\n }\n\n _createClass(GenericFontLoader, [{\n key: \"_queueLoadingCallback\",\n value: function _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n var otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n var context = this.loadingContext;\n var request = {\n id: \"pdfjs-font-loading-\".concat(context.nextRequestId++),\n done: false,\n complete: completeRequest,\n callback: callback\n };\n context.requests.push(request);\n return request;\n }\n }, {\n key: \"_prepareFontLoadEvent\",\n value: function _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n var chunk1 = s.substring(0, offset);\n var chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n var i, ii;\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n var called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)('Load test font never loaded.');\n callback();\n return;\n }\n\n ctx.font = '30px ' + name;\n ctx.fillText('.', 0, 20);\n var imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n var loadTestFontId = \"lt\".concat(Date.now()).concat(this.loadTestFontId++);\n var data = this._loadTestFont;\n var COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n var CFF_CHECKSUM_OFFSET = 16;\n var XXXX_VALUE = 0x58585858;\n var checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n var url = \"url(data:font/opentype;base64,\".concat(btoa(data), \");\");\n var rule = \"@font-face {font-family:\\\"\".concat(loadTestFontId, \"\\\";src:\").concat(url, \"}\");\n this.insertRule(rule);\n var names = [];\n\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n\n names.push(loadTestFontId);\n var div = document.createElement('div');\n div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');\n\n for (i = 0, ii = names.length; i < ii; ++i) {\n var span = document.createElement('span');\n span.textContent = 'Hi';\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n document.body.appendChild(div);\n isFontReady(loadTestFontId, function () {\n document.body.removeChild(div);\n request.complete();\n });\n }\n }, {\n key: \"isFontLoadingAPISupported\",\n get: function get() {\n var supported = typeof document !== 'undefined' && !!document.fonts;\n\n if (supported && typeof navigator !== 'undefined') {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m && m[1] < 63) {\n supported = false;\n }\n }\n\n return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);\n }\n }, {\n key: \"isSyncFontLoadingSupported\",\n get: function get() {\n var supported = false;\n\n if (typeof navigator === 'undefined') {\n supported = true;\n } else {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m && m[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);\n }\n }, {\n key: \"_loadTestFont\",\n get: function get() {\n var getLoadTestFont = function getLoadTestFont() {\n return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');\n };\n\n return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());\n }\n }]);\n\n return GenericFontLoader;\n }(BaseFontLoader);\n}\nvar IsEvalSupportedCached = {\n get value() {\n return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());\n }\n\n};\n\nvar FontFaceObject =\n/*#__PURE__*/\nfunction () {\n function FontFaceObject(translatedData, _ref2) {\n var _ref2$isEvalSupported = _ref2.isEvalSupported,\n isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,\n _ref2$disableFontFace = _ref2.disableFontFace,\n disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,\n _ref2$ignoreErrors = _ref2.ignoreErrors,\n ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,\n _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature,\n onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe,\n _ref2$fontRegistry = _ref2.fontRegistry,\n fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;\n\n _classCallCheck(this, FontFaceObject);\n\n this.compiledGlyphs = Object.create(null);\n\n for (var i in translatedData) {\n this[i] = translatedData[i];\n }\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 _createClass(FontFaceObject, [{\n key: \"createNativeFontFace\",\n value: function createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n var nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n }, {\n key: \"createFontFaceRule\",\n value: function createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n var data = (0, _util.bytesToString)(new Uint8Array(this.data));\n var url = \"url(data:\".concat(this.mimetype, \";base64,\").concat(btoa(data), \");\");\n var rule = \"@font-face {font-family:\\\"\".concat(this.loadedName, \"\\\";src:\").concat(url, \"}\");\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n }, {\n key: \"getPathGenerator\",\n value: function getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n var cmds, current;\n\n try {\n cmds = objs.get(this.loadedName + '_path_' + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.font\n });\n }\n\n (0, _util.warn)(\"getPathGenerator - ignoring character: \\\"\".concat(ex, \"\\\".\"));\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && IsEvalSupportedCached.value) {\n var args,\n js = '';\n\n for (var 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\n js += 'c.' + current.cmd + '(' + args + ');\\n';\n }\n\n return this.compiledGlyphs[character] = new Function('c', 'size', js);\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (var _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\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n }]);\n\n return FontFaceObject;\n}();\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar compatibilityParams = Object.create(null);\n{\n var isNodeJS = __w_pdfjs_require__(4);\n\n var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';\n var isIE = /Trident/.test(userAgent);\n var isIOSChrome = /CriOS/.test(userAgent);\n\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n\n (function checkFontFaceAndImage() {\n if (isNodeJS()) {\n compatibilityParams.disableFontFace = true;\n compatibilityParams.nativeImageDecoderSupport = 'none';\n }\n })();\n}\nexports.apiCompatibilityParams = Object.freeze(compatibilityParams);\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _pattern_helper = __w_pdfjs_require__(155);\n\nvar MIN_FONT_SIZE = 16;\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\nvar MIN_WIDTH_FACTOR = 0.65;\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\nvar FULL_CHUNK_HEIGHT = 16;\nvar IsLittleEndianCached = {\n get value() {\n return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)());\n }\n\n};\n\nfunction addContextCurrentTransform(ctx) {\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 ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n Object.defineProperty(ctx, 'mozCurrentTransform', {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, 'mozCurrentTransformInverse', {\n get: function getCurrentTransformInverse() {\n var m = this._transformMatrix;\n var a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n\n this._transformStack.push(old);\n\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\n if (prev) {\n this._transformMatrix = prev;\n\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 = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\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 var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\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\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\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\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n },\n clear: function 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 var width = imgData.width,\n height = imgData.height;\n var i,\n j,\n j0,\n width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height),\n pos = 0,\n ii;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n var count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\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\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\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\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\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\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n\n do {\n var step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\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\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function drawOutline(c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (var i = 0, ii = outlines.length; i < ii; i++) {\n var o = outlines[i];\n c.moveTo(o[0], o[1]);\n\n for (var j = 2, jj = o.length; j < jj; j += 2) {\n c.lineTo(o[j], o[j + 1]);\n }\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 this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = '#000000';\n this.strokeColor = '#000000';\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null;\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 var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, 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 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\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\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 var height = imgData.height,\n 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 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\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\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\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\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\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\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 === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\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 } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\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\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(\"bad image kind: \".concat(imgData.kind));\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n var height = imgData.height,\n 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 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 = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\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', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font'];\n\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\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\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\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n\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\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\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height, 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 var composeFn;\n\n if (subtype === 'Luminosity') {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\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\n composeFn(maskData.data, layerData.data, transferMap);\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 ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n var backdrop = smask.backdrop || null;\n\n if (!smask.transferMap && webGLContext.isEnabled) {\n var composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask: mask,\n properties: {\n subtype: smask.subtype,\n backdrop: backdrop\n }\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, 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 CanvasGraphics.prototype = {\n beginDrawing: function beginDrawing(_ref) {\n var transform = _ref.transform,\n viewport = _ref.viewport,\n _ref$transparency = _ref.transparency,\n transparency = _ref$transparency === void 0 ? false : _ref$transparency,\n _ref$background = _ref.background,\n background = _ref$background === void 0 ? null : _ref$background;\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\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('transparent', width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function';\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\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 !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = argsArray[i][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var depObjId = _step.value;\n var objsPool = depObjId.startsWith('g_') ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n },\n endDrawing: function CanvasGraphics_endDrawing() {\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);\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 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\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n setRenderingIntent: function setRenderingIntent(intent) {},\n setFlatness: function setFlatness(flatness) {},\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\n case 'LC':\n this.setLineCap(value);\n break;\n\n case 'LJ':\n this.setLineJoin(value);\n break;\n\n case 'ML':\n this.setMiterLimit(value);\n break;\n\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n\n case 'RI':\n this.setRenderingIntent(value);\n break;\n\n case 'FL':\n this.setFlatness(value);\n break;\n\n case 'Font':\n this.setFont(value[0], value[1]);\n break;\n\n case 'CA':\n this.current.strokeAlpha = state[1];\n break;\n\n case 'ca':\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case 'BM':\n this.ctx.globalCompositeOperation = value;\n break;\n\n case 'SMask':\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n\n this.current.activeSMask = value ? this.tempSMask : null;\n\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\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(cacheId, drawnWidth, drawnHeight, true);\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\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 activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\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 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 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\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 if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== 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 this.pendingClip = null;\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 this._cachedGetSinglePixelWidth = null;\n },\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n\n if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\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\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n\n case _util.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], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.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\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\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 ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n\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\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\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\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 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 clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = _util.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\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\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\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 \".concat(fontRefName));\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)('Invalid font matrix for font ' + fontRefName);\n }\n\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;\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 = \"\\\"\".concat(name, \"\\\", \").concat(fontObj.fallbackName);\n var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = \"\".concat(italic, \" \").concat(bold, \" \").concat(browserFontSize, \"px \").concat(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 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 paintChar: function 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 & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n var patternFill = current.patternFill && font.data;\n var addToPath;\n\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\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x: x,\n y: y,\n fontSize: fontSize,\n addToPath: addToPath\n });\n }\n },\n\n get isFontSubpixelAAEnabled() {\n var _this$cachedCanvases$ = this.cachedCanvases.getCanvas('isFontSubpixelAAEnabled', 10, 10),\n ctx = _this$cachedCanvases$.context;\n\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\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\n return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled);\n },\n\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n\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 var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n var patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n var pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\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\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.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 var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if ((0, _util.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\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 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 var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\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 * fontSize / fontSizeScale;\n }\n }\n\n if (glyph.isInFont || font.missingFile) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, 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\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n },\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\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 || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.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\n if (!operatorList) {\n (0, _util.warn)(\"Type3 character \\\"\".concat(glyph.operatorListId, \"\\\" is not available.\"));\n continue;\n }\n\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n\n var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n },\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var _this = this;\n\n var pattern;\n\n if (IR[0] === 'TilingPattern') {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: function createCanvasGraphics(ctx) {\n return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);\n }\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.Util.makeCssRgb(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n var ctx = this.ctx;\n this.save();\n var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n var inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.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 this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n (0, _util.unreachable)('Should not call beginInlineImage');\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n (0, _util.unreachable)('Should not call beginImageData');\n },\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, 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 paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n this.save();\n var currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)('TODO: Support non-isolated groups.');\n }\n\n if (group.knockout) {\n (0, _util.warn)('Knockout groups not supported.');\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error('Bounding box is required.');\n }\n\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\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,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\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\n if (group.smask) {\n cacheId += '_smask_' + this.smaskCounter++ % 2;\n }\n\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX: offsetX,\n offsetY: offsetY,\n scaleX: scaleX,\n scaleY: scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n },\n endGroup: function CanvasGraphics_endGroup(group) {\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, 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 endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {\n var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!domImage) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.save();\n var ctx = this.ctx;\n ctx.scale(1 / w, -1 / h);\n ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);\n\n if (this.imageLayer) {\n var currentTransform = ctx.mozCurrentTransformInverse;\n var position = this.getCanvasPosition(0, 0);\n this.imageLayer.appendImage({\n objId: objId,\n left: position[0],\n top: position[1],\n width: w / currentTransform[0],\n height: h / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\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 = compileType3Glyph({\n data: img.data,\n width: width,\n height: height\n });\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', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, 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 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n var ctx = this.ctx;\n\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, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.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\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0],\n b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2],\n d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n var imgToPaint, tmpCanvas;\n\n if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = 'prescale1';\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';\n }\n\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\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, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n },\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n this.ctx.fillRect(0, 0, 1, 1);\n },\n paintXObject: function CanvasGraphics_paintXObject() {\n (0, _util.warn)('Unsupported \\'paintXObject\\' command.');\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},\n endMarkedContent: function CanvasGraphics_endMarkedContent() {},\n beginCompat: function CanvasGraphics_beginCompat() {},\n endCompat: function CanvasGraphics_endCompat() {},\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip('evenodd');\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n ctx.beginPath();\n },\n getSinglePixelWidth: function getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n var inverse = this.ctx.mozCurrentTransformInverse;\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));\n }\n\n return this._cachedGetSinglePixelWidth;\n },\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n };\n\n for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n}();\n\nexports.CanvasGraphics = CanvasGraphics;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getShadingPatternFromIR = getShadingPatternFromIR;\nexports.TilingPattern = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar ShadingIRs = {};\nShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var colorStops = raw[2];\n var p0 = raw[3];\n var p1 = raw[4];\n var r0 = raw[5];\n var r1 = raw[6];\n return {\n type: 'Pattern',\n getPattern: function RadialAxial_getPattern(ctx) {\n var grad;\n\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\n return grad;\n }\n };\n }\n};\n\nvar createMeshCanvas = function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\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\n if (y1 >= y3) {\n return;\n }\n\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n var k;\n\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\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\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\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\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case 'triangles':\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error('illegal figure');\n }\n }\n\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\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 var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords: coords,\n colors: colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var canvas, tmpCanvas, i, ii;\n\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width: width,\n height: height,\n backgroundColor: backgroundColor,\n figures: figures,\n context: context\n });\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n var bytes = data.data;\n\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\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n\n return {\n canvas: canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n return createMeshCanvas;\n}();\n\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\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 background = raw[8];\n return {\n type: 'Pattern',\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n var scale;\n\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');\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\n if (!shadingIR) {\n throw new Error(\"Unknown IR type: \".concat(raw[0]));\n }\n\n return shadingIR.fromIR(raw);\n}\n\nvar TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\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 (0, _util.info)('TilingType: ' + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', dimx.size, dimy.size, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n graphics.transform(1, 0, 0, 1, -x0, -y0);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n this.ctx.transform(1, 0, 0, 1, x0, y0);\n this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n return tmpCanvas.canvas;\n },\n getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);\n var size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale: scale,\n size: 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 setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n var context = graphics.ctx,\n current = graphics.current;\n\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\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(\"Unsupported paint type: \".concat(paintType));\n }\n },\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n return ctx.createPattern(temporaryPatternCanvas, 'repeat');\n }\n };\n return TilingPattern;\n}();\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GlobalWorkerOptions = void 0;\nvar GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = MessageHandler;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction resolveCall(_x, _x2) {\n return _resolveCall.apply(this, arguments);\n}\n\nfunction _resolveCall() {\n _resolveCall = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee(fn, args) {\n var thisArg,\n _args = arguments;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;\n\n if (fn) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", undefined);\n\n case 3:\n return _context.abrupt(\"return\", fn.apply(thisArg, args));\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _resolveCall.apply(this, arguments);\n}\n\nfunction wrapReason(reason) {\n if (_typeof(reason) !== 'object') {\n return reason;\n }\n\n switch (reason.name) {\n case 'AbortException':\n return new _util.AbortException(reason.message);\n\n case 'MissingPDFException':\n return new _util.MissingPDFException(reason.message);\n\n case 'UnexpectedResponseException':\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.details);\n }\n}\n\nfunction makeReasonSerializable(reason) {\n if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {\n return reason;\n }\n\n return new _util.UnknownErrorException(reason.message, reason.toString());\n}\n\nfunction resolveOrReject(capability, success, reason) {\n if (success) {\n capability.resolve();\n } else {\n capability.reject(reason);\n }\n}\n\nfunction finalize(promise) {\n return Promise.resolve(promise)[\"catch\"](function () {});\n}\n\nfunction MessageHandler(sourceName, targetName, comObj) {\n var _this = this;\n\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 var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n var ah = this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = function (event) {\n var data = event.data;\n\n if (data.targetName !== _this.sourceName) {\n return;\n }\n\n if (data.stream) {\n _this._processStreamMessage(data);\n } else if (data.isReply) {\n var callbackId = data.callbackId;\n\n if (data.callbackId in callbacksCapabilities) {\n var callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\n\n if ('error' in data) {\n callback.reject(wrapReason(data.error));\n } else {\n callback.resolve(data.data);\n }\n } else {\n throw new Error(\"Cannot resolve callback \".concat(callbackId));\n }\n } else if (data.action in ah) {\n var action = ah[data.action];\n\n if (data.callbackId) {\n var _sourceName = _this.sourceName;\n var _targetName = data.sourceName;\n Promise.resolve().then(function () {\n return action[0].call(action[1], data.data);\n }).then(function (result) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n error: makeReasonSerializable(reason)\n });\n });\n } else if (data.streamId) {\n _this._createStreamSink(data);\n } else {\n action[0].call(action[1], data.data);\n }\n } else {\n throw new Error(\"Unknown action from worker: \".concat(data.action));\n }\n };\n\n comObj.addEventListener('message', this._onComObjOnMessage);\n}\n\nMessageHandler.prototype = {\n on: function on(actionName, handler, scope) {\n var ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(\"There is already an actionName called \\\"\".concat(actionName, \"\\\"\"));\n }\n\n ah[actionName] = [handler, scope];\n },\n send: function send(actionName, data, transfers) {\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data\n };\n this.postMessage(message, transfers);\n },\n sendWithPromise: function sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data,\n callbackId: callbackId\n };\n var capability = (0, _util.createPromiseCapability)();\n this.callbacksCapabilities[callbackId] = capability;\n\n try {\n this.postMessage(message, transfers);\n } catch (e) {\n capability.reject(e);\n }\n\n return capability.promise;\n },\n sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n var _this2 = this;\n\n var streamId = this.streamId++;\n var sourceName = this.sourceName;\n var targetName = this.targetName;\n return new _util.ReadableStream({\n start: function start(controller) {\n var startCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId] = {\n controller: controller,\n startCall: startCapability,\n isClosed: false\n };\n\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n action: actionName,\n streamId: streamId,\n data: data,\n desiredSize: controller.desiredSize\n });\n\n return startCapability.promise;\n },\n pull: function pull(controller) {\n var pullCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].pullCall = pullCapability;\n\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'pull',\n streamId: streamId,\n desiredSize: controller.desiredSize\n });\n\n return pullCapability.promise;\n },\n cancel: function cancel(reason) {\n var cancelCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].cancelCall = cancelCapability;\n _this2.streamControllers[streamId].isClosed = true;\n\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'cancel',\n reason: reason,\n streamId: streamId\n });\n\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n },\n _createStreamSink: function _createStreamSink(data) {\n var _this3 = this;\n\n var self = this;\n var action = this.actionHandler[data.action];\n var streamId = data.streamId;\n var desiredSize = data.desiredSize;\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var capability = (0, _util.createPromiseCapability)();\n\n var sendStreamRequest = function sendStreamRequest(_ref) {\n var stream = _ref.stream,\n chunk = _ref.chunk,\n transfers = _ref.transfers,\n success = _ref.success,\n reason = _ref.reason;\n\n _this3.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n streamId: streamId,\n chunk: chunk,\n success: success,\n reason: reason\n }, transfers);\n };\n\n var streamSink = {\n enqueue: function enqueue(chunk) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var transfers = arguments.length > 2 ? arguments[2] : undefined;\n\n if (this.isCancelled) {\n return;\n }\n\n var lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n sendStreamRequest({\n stream: 'enqueue',\n chunk: chunk,\n transfers: transfers\n });\n },\n close: function close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'close'\n });\n delete self.streamSinks[streamId];\n },\n error: function error(reason) {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'error',\n reason: reason\n });\n },\n sinkCapability: capability,\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {\n sendStreamRequest({\n stream: 'start_complete',\n success: true\n });\n }, function (reason) {\n sendStreamRequest({\n stream: 'start_complete',\n success: false,\n reason: reason\n });\n });\n },\n _processStreamMessage: function _processStreamMessage(data) {\n var _this4 = this;\n\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var streamId = data.streamId;\n\n var sendStreamResponse = function sendStreamResponse(_ref2) {\n var stream = _ref2.stream,\n success = _ref2.success,\n reason = _ref2.reason;\n\n _this4.comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n success: success,\n streamId: streamId,\n reason: reason\n });\n };\n\n var deleteStreamController = function deleteStreamController() {\n Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {\n return capability && finalize(capability.promise);\n })).then(function () {\n delete _this4.streamControllers[data.streamId];\n });\n };\n\n switch (data.stream) {\n case 'start_complete':\n resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));\n break;\n\n case 'pull_complete':\n resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));\n break;\n\n case 'pull':\n if (!this.streamSinks[data.streamId]) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n break;\n }\n\n if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[data.streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n resolveCall(this.streamSinks[data.streamId].onPull).then(function () {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: false,\n reason: reason\n });\n });\n break;\n\n case 'enqueue':\n (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');\n\n if (!this.streamControllers[data.streamId].isClosed) {\n this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n }\n\n break;\n\n case 'close':\n (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');\n\n if (this.streamControllers[data.streamId].isClosed) {\n break;\n }\n\n this.streamControllers[data.streamId].isClosed = true;\n this.streamControllers[data.streamId].controller.close();\n deleteStreamController();\n break;\n\n case 'error':\n (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');\n this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));\n deleteStreamController();\n break;\n\n case 'cancel_complete':\n resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));\n deleteStreamController();\n break;\n\n case 'cancel':\n if (!this.streamSinks[data.streamId]) {\n break;\n }\n\n resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: false,\n reason: reason\n });\n });\n this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[data.streamId].isCancelled = true;\n delete this.streamSinks[data.streamId];\n break;\n\n default:\n throw new Error('Unexpected stream case');\n }\n },\n postMessage: function postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n },\n destroy: function destroy() {\n this.comObj.removeEventListener('message', this._onComObjOnMessage);\n }\n};\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _xml_parser = __w_pdfjs_require__(159);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Metadata =\n/*#__PURE__*/\nfunction () {\n function Metadata(data) {\n _classCallCheck(this, Metadata);\n\n (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string');\n data = this._repair(data);\n var parser = new _xml_parser.SimpleXMLParser();\n var xmlDocument = parser.parseFromString(data);\n this._metadata = Object.create(null);\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _createClass(Metadata, [{\n key: \"_repair\",\n value: function _repair(data) {\n return data.replace(/^([^<]+)/, '').replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n var bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, 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\n case 'apos':\n return '\\'';\n\n case 'gt':\n return '>';\n\n case 'lt':\n return '<';\n\n case 'quot':\n return '\\\"';\n }\n\n throw new Error(\"_repair: \".concat(name, \" isn't defined.\"));\n });\n var chars = '';\n\n for (var i = 0, ii = bytes.length; i < ii; i += 2) {\n var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 && 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 key: \"_parse\",\n value: function _parse(xmlDocument) {\n var rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.nextSibling;\n }\n }\n\n var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n\n if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {\n return;\n }\n\n var children = rdf.childNodes;\n\n for (var i = 0, ii = children.length; i < ii; i++) {\n var desc = children[i];\n\n if (desc.nodeName.toLowerCase() !== 'rdf:description') {\n continue;\n }\n\n for (var j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') {\n var entry = desc.childNodes[j];\n var name = entry.nodeName.toLowerCase();\n this._metadata[name] = entry.textContent.trim();\n }\n }\n }\n }\n }, {\n key: \"get\",\n value: function get(name) {\n var data = this._metadata[name];\n return typeof data !== 'undefined' ? data : null;\n }\n }, {\n key: \"getAll\",\n value: function getAll() {\n return this._metadata;\n }\n }, {\n key: \"has\",\n value: function has(name) {\n return typeof this._metadata[name] !== 'undefined';\n }\n }]);\n\n return Metadata;\n}();\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleXMLParser = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar 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 var ch = s[index];\n return ch === ' ' || ch === '\\n' || ch === '\\r' || ch === '\\t';\n}\n\nfunction isWhitespaceString(s) {\n for (var i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n\n return true;\n}\n\nvar XMLParserBase =\n/*#__PURE__*/\nfunction () {\n function XMLParserBase() {\n _classCallCheck(this, XMLParserBase);\n }\n\n _createClass(XMLParserBase, [{\n key: \"_resolveEntities\",\n value: function _resolveEntities(s) {\n var _this = this;\n\n return s.replace(/&([^;]+);/g, function (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\n switch (entity) {\n case 'lt':\n return '<';\n\n case 'gt':\n return '>';\n\n case 'amp':\n return '&';\n\n case 'quot':\n return '\\\"';\n }\n\n return _this.onResolveEntity(entity);\n });\n }\n }, {\n key: \"_parseContent\",\n value: function _parseContent(s, start) {\n var pos = start,\n name,\n 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) && s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n\n name = s.substring(start, pos);\n skipWs();\n\n while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') {\n skipWs();\n var attrName = '',\n attrValue = '';\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {\n attrName += s[pos];\n ++pos;\n }\n\n skipWs();\n\n if (s[pos] !== '=') {\n return null;\n }\n\n ++pos;\n skipWs();\n var attrEndChar = s[pos];\n\n if (attrEndChar !== '\\\"' && attrEndChar !== '\\'') {\n return null;\n }\n\n var attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n if (attrEndIndex < 0) {\n return null;\n }\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\n return {\n name: name,\n attributes: attributes,\n parsed: pos - start\n };\n }\n }, {\n key: \"_parseProcessingInstruction\",\n value: function _parseProcessingInstruction(s, start) {\n var pos = start,\n name,\n 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) && s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n\n name = s.substring(start, pos);\n skipWs();\n var attrStart = pos;\n\n while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {\n ++pos;\n }\n\n value = s.substring(attrStart, pos);\n return {\n name: name,\n value: value,\n parsed: pos - start\n };\n }\n }, {\n key: \"parseXml\",\n value: function parseXml(s) {\n var i = 0;\n\n while (i < s.length) {\n var ch = s[i];\n var j = i;\n\n if (ch === '<') {\n ++j;\n var ch2 = s[j];\n var q = void 0;\n\n switch (ch2) {\n case '/':\n ++j;\n q = s.indexOf('>', j);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n\n case '?':\n ++j;\n\n var pi = this._parseProcessingInstruction(s, j);\n\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n\n case '!':\n if (s.substring(j + 1, j + 3) === '--') {\n q = s.indexOf('-->', j + 3);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\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\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {\n var q2 = s.indexOf('[', j + 8);\n var complexDoctype = false;\n q = s.indexOf('>', j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n if (q2 > 0 && q > q2) {\n q = s.indexOf(']>', j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n complexDoctype = true;\n }\n\n var doctypeContent = 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\n break;\n\n default:\n var content = this._parseContent(s, j);\n\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n var isClosed = false;\n\n if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') {\n isClosed = true;\n } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\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\n var text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n\n i = j;\n }\n }\n }, {\n key: \"onResolveEntity\",\n value: function onResolveEntity(name) {\n return \"&\".concat(name, \";\");\n }\n }, {\n key: \"onPi\",\n value: function onPi(name, value) {}\n }, {\n key: \"onComment\",\n value: function onComment(text) {}\n }, {\n key: \"onCdata\",\n value: function onCdata(text) {}\n }, {\n key: \"onDoctype\",\n value: function onDoctype(doctypeContent) {}\n }, {\n key: \"onText\",\n value: function onText(text) {}\n }, {\n key: \"onBeginElement\",\n value: function onBeginElement(name, attributes, isEmpty) {}\n }, {\n key: \"onEndElement\",\n value: function onEndElement(name) {}\n }, {\n key: \"onError\",\n value: function onError(code) {}\n }]);\n\n return XMLParserBase;\n}();\n\nvar SimpleDOMNode =\n/*#__PURE__*/\nfunction () {\n function SimpleDOMNode(nodeName, nodeValue) {\n _classCallCheck(this, SimpleDOMNode);\n\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n Object.defineProperty(this, 'parentNode', {\n value: null,\n writable: true\n });\n }\n\n _createClass(SimpleDOMNode, [{\n key: \"hasChildNodes\",\n value: function hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n }, {\n key: \"firstChild\",\n get: function get() {\n return this.childNodes && this.childNodes[0];\n }\n }, {\n key: \"nextSibling\",\n get: function get() {\n var childNodes = this.parentNode.childNodes;\n\n if (!childNodes) {\n return undefined;\n }\n\n var index = childNodes.indexOf(this);\n\n if (index === -1) {\n return undefined;\n }\n\n return childNodes[index + 1];\n }\n }, {\n key: \"textContent\",\n get: function get() {\n if (!this.childNodes) {\n return this.nodeValue || '';\n }\n\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join('');\n }\n }]);\n\n return SimpleDOMNode;\n}();\n\nvar SimpleXMLParser =\n/*#__PURE__*/\nfunction (_XMLParserBase) {\n _inherits(SimpleXMLParser, _XMLParserBase);\n\n function SimpleXMLParser() {\n var _this2;\n\n _classCallCheck(this, SimpleXMLParser);\n\n _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this));\n _this2._currentFragment = null;\n _this2._stack = null;\n _this2._errorCode = XMLParserErrorCode.NoError;\n return _this2;\n }\n\n _createClass(SimpleXMLParser, [{\n key: \"parseFromString\",\n value: function parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1),\n documentElement = _this$_currentFragmen[0];\n\n if (!documentElement) {\n return undefined;\n }\n\n return {\n documentElement: documentElement\n };\n }\n }, {\n key: \"onResolveEntity\",\n value: function onResolveEntity(name) {\n switch (name) {\n case 'apos':\n return '\\'';\n }\n\n return _get(_getPrototypeOf(SimpleXMLParser.prototype), \"onResolveEntity\", this).call(this, name);\n }\n }, {\n key: \"onText\",\n value: function onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n\n var node = new SimpleDOMNode('#text', text);\n\n this._currentFragment.push(node);\n }\n }, {\n key: \"onCdata\",\n value: function onCdata(text) {\n var node = new SimpleDOMNode('#text', text);\n\n this._currentFragment.push(node);\n }\n }, {\n key: \"onBeginElement\",\n value: function onBeginElement(name, attributes, isEmpty) {\n var node = new SimpleDOMNode(name);\n node.childNodes = [];\n\n this._currentFragment.push(node);\n\n if (isEmpty) {\n return;\n }\n\n this._stack.push(this._currentFragment);\n\n this._currentFragment = node.childNodes;\n }\n }, {\n key: \"onEndElement\",\n value: function onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n var lastElement = this._currentFragment[this._currentFragment.length - 1];\n\n if (!lastElement) {\n return;\n }\n\n for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n }, {\n key: \"onError\",\n value: function onError(code) {\n this._errorCode = code;\n }\n }]);\n\n return SimpleXMLParser;\n}(XMLParserBase);\n\nexports.SimpleXMLParser = SimpleXMLParser;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDataTransportStream = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PDFDataTransportStream =\n/*#__PURE__*/\nfunction () {\n function PDFDataTransportStream(params, pdfDataRangeTransport) {\n var _this = this;\n\n _classCallCheck(this, PDFDataTransportStream);\n\n (0, _util.assert)(pdfDataRangeTransport);\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n var initialData = params.initialData;\n\n if (initialData && initialData.length > 0) {\n var buffer = new Uint8Array(initialData).buffer;\n\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 this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {\n _this._onReceiveData({\n begin: begin,\n chunk: chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener(function (loaded, total) {\n _this._onProgress({\n loaded: loaded,\n total: total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {\n _this._onReceiveData({\n chunk: chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(function () {\n _this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _createClass(PDFDataTransportStream, [{\n key: \"_onReceiveData\",\n value: function _onReceiveData(args) {\n var buffer = new Uint8Array(args.chunk).buffer;\n\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 var found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found);\n }\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress(evt) {\n if (evt.total === undefined) {\n var firstReader = this._rangeReaders[0];\n\n if (firstReader && firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n var fullReader = this._fullRequestReader;\n\n if (fullReader && fullReader.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n }, {\n key: \"_onProgressiveDone\",\n value: function _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n }, {\n key: \"_removeRangeReader\",\n value: function _removeRangeReader(reader) {\n var i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n var queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone);\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeReaders.slice(0);\n\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n\n this._pdfDataRangeTransport.abort();\n }\n }, {\n key: \"_progressiveDataLength\",\n get: function get() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n }]);\n\n return PDFDataTransportStream;\n}();\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nvar PDFDataTransportStreamReader =\n/*#__PURE__*/\nfunction () {\n function PDFDataTransportStreamReader(stream, queuedChunks) {\n var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, PDFDataTransportStreamReader);\n\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this._queuedChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var chunk = _step.value;\n this._loaded += chunk.byteLength;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _createClass(PDFDataTransportStreamReader, [{\n key: \"_enqueue\",\n value: function _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n }, {\n key: \"read\",\n value: function () {\n var _read = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(this._queuedChunks.length > 0)) {\n _context.next = 3;\n break;\n }\n\n chunk = this._queuedChunks.shift();\n return _context.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 3:\n if (!this._done) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 5:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context.abrupt(\"return\", requestCapability.promise);\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n }, {\n key: \"progressiveDone\",\n value: function progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n }, {\n key: \"headersReady\",\n get: function get() {\n return this._headersReady;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._stream._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._stream._isStreamingSupported;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._stream._contentLength;\n }\n }]);\n\n return PDFDataTransportStreamReader;\n}();\n\nvar PDFDataTransportStreamRangeReader =\n/*#__PURE__*/\nfunction () {\n function PDFDataTransportStreamRangeReader(stream, begin, end) {\n _classCallCheck(this, PDFDataTransportStreamRangeReader);\n\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _createClass(PDFDataTransportStreamRangeReader, [{\n key: \"_enqueue\",\n value: function _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n var requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n }, {\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!this._queuedChunk) {\n _context2.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n this._queuedChunk = null;\n return _context2.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context2.abrupt(\"return\", requestCapability.promise);\n\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._stream._removeRangeReader(this);\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return false;\n }\n }]);\n\n return PDFDataTransportStreamRangeReader;\n}();\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLContext = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar WebGLContext =\n/*#__PURE__*/\nfunction () {\n function WebGLContext(_ref) {\n var _ref$enable = _ref.enable,\n enable = _ref$enable === void 0 ? false : _ref$enable;\n\n _classCallCheck(this, WebGLContext);\n\n this._enabled = enable === true;\n }\n\n _createClass(WebGLContext, [{\n key: \"composeSMask\",\n value: function composeSMask(_ref2) {\n var layer = _ref2.layer,\n mask = _ref2.mask,\n properties = _ref2.properties;\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n }, {\n key: \"drawFigures\",\n value: function drawFigures(_ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n backgroundColor = _ref3.backgroundColor,\n figures = _ref3.figures,\n context = _ref3.context;\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n WebGLUtils.cleanup();\n }\n }, {\n key: \"isEnabled\",\n get: function get() {\n var enabled = this._enabled;\n\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n\n return (0, _util.shadow)(this, 'isEnabled', enabled);\n }\n }]);\n\n return WebGLContext;\n}();\n\nexports.WebGLContext = WebGLContext;\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\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error('Error during shader compilation: ' + errorMsg);\n }\n\n return shader;\n }\n\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error('Error during program linking: ' + errorMsg);\n }\n\n return program;\n }\n\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\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 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n var currentGL, currentCanvas;\n\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n currentCanvas = document.createElement('canvas');\n currentGL = currentCanvas.getContext('webgl', {\n premultipliedalpha: false\n });\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 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 var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\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 var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');\n var texLayerLocation = gl.getUniformLocation(program, 'u_image');\n var texMaskLocation = gl.getUniformLocation(program, 'u_mask');\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n\n var cache = smaskCache,\n canvas = cache.canvas,\n 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], properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n\n gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0);\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\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 gl.drawArrays(gl.TRIANGLES, 0, 6);\n gl.flush();\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\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 var figuresFragmentShaderCode = '\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } ';\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\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 figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n\n var cache = figuresCache,\n canvas = cache.canvas,\n 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 var count = 0;\n var i, ii, rows;\n\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\n case 'triangles':\n count += figures[i].coords.length;\n break;\n }\n }\n\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords,\n colorsMap = context.colors;\n var pIndex = 0,\n cIndex = 0;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\n switch (figure.type) {\n case 'lattice':\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n\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 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\n break;\n\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\n break;\n }\n }\n\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n\n gl.clear(gl.COLOR_BUFFER_BIT);\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 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, 0, 0);\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n gl.drawArrays(gl.TRIANGLES, 0, count);\n gl.flush();\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n return canvas;\n }\n\n return {\n tryInitGL: function tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n\n return false;\n },\n composeSMask: composeSMask,\n drawFigures: drawFigures,\n cleanup: function cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n\n smaskCache = null;\n figuresCache = null;\n }\n };\n}();\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.renderTextLayer = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar renderTextLayer = function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';'];\n\n function appendText(task, geom, styles) {\n var textDiv = document.createElement('span');\n var textDivProperties = {\n style: null,\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\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n return;\n }\n\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n\n var left;\n var top;\n\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\n styleBuf[1] = left;\n styleBuf[3] = top;\n styleBuf[5] = fontHeight;\n styleBuf[7] = style.fontFamily;\n textDivProperties.style = styleBuf.join('');\n textDiv.setAttribute('style', textDivProperties.style);\n textDiv.textContent = geom.str;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\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\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.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: m\n });\n }\n }\n\n function render(task) {\n if (task._canceled) {\n return;\n }\n\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\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 var expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n\n var divProperties = task._textDivProperties.get(div);\n\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\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\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.Util.applyTransform(p, m);\n\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 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 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 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\n var findPositiveMin = function findPositiveMin(ts, offset, count) {\n var result = 0;\n\n for (var i = 0; i < count; i++) {\n var t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n };\n\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\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 boxes.map(function (box, i) {\n var e = expanded[i],\n 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 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 bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\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 bounds.forEach(function (boundary) {\n var i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n var j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\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 affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n var changedHorizon = [],\n lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\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\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\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 for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n var used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n function TextLayerRenderTask(_ref) {\n var _this = this;\n\n var textContent = _ref.textContent,\n textContentStream = _ref.textContentStream,\n container = _ref.container,\n viewport = _ref.viewport,\n textDivs = _ref.textDivs,\n textContentItemsStr = _ref.textContentItemsStr,\n enhanceTextSelection = _ref.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 = !!(_global_scope[\"default\"].FontInspector && _global_scope[\"default\"].FontInspector.enabled);\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 = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise[\"finally\"](function () {\n if (_this._layoutTextCtx) {\n _this._layoutTextCtx.canvas.width = 0;\n _this._layoutTextCtx.canvas.height = 0;\n _this._layoutTextCtx = null;\n }\n });\n }\n\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException('TextLayer task cancelled.'));\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error('TextLayer task cancelled.'));\n },\n _processItems: function _processItems(items, styleCache) {\n for (var i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache);\n }\n },\n _layoutText: function _layoutText(textDiv) {\n var textLayerFrag = this._container;\n\n var textDivProperties = this._textDivProperties.get(textDiv);\n\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n var fontSize = textDiv.style.fontSize;\n var fontFamily = textDiv.style.fontFamily;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = fontSize + ' ' + fontFamily;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n var width = this._layoutTextCtx.measureText(textDiv.textContent).width;\n\n var transform = '';\n\n if (textDivProperties.canvasWidth !== 0 && width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = \"scaleX(\".concat(textDivProperties.scale, \")\");\n }\n\n if (textDivProperties.angle !== 0) {\n transform = \"rotate(\".concat(textDivProperties.angle, \"deg) \").concat(transform);\n }\n\n if (transform.length > 0) {\n textDivProperties.originalTransform = transform;\n textDiv.style.transform = transform;\n }\n\n this._textDivProperties.set(textDiv, textDivProperties);\n\n textLayerFrag.appendChild(textDiv);\n },\n _render: function TextLayer_render(timeout) {\n var _this2 = this;\n\n var capability = (0, _util.createPromiseCapability)();\n var styleCache = Object.create(null);\n var canvas = document.createElement('canvas');\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext('2d', {\n alpha: false\n });\n\n if (this._textContent) {\n var textItems = this._textContent.items;\n var textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n var pump = function pump() {\n _this2._reader.read().then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n _this2._processItems(value.items, styleCache);\n\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\"' + ' parameters specified.');\n }\n\n capability.promise.then(function () {\n styleCache = null;\n\n if (!timeout) {\n render(_this2);\n } else {\n _this2._renderTimer = setTimeout(function () {\n render(_this2);\n _this2._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n var div = this._textDivs[i];\n\n var divProperties = this._textDivProperties.get(div);\n\n if (divProperties.isWhitespace) {\n continue;\n }\n\n if (expandDivs) {\n var transform = '',\n padding = '';\n\n if (divProperties.scale !== 1) {\n transform = 'scaleX(' + divProperties.scale + ')';\n }\n\n if (divProperties.angle !== 0) {\n transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;\n }\n\n if (divProperties.paddingLeft !== 0) {\n padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;';\n transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)';\n }\n\n if (divProperties.paddingTop !== 0) {\n padding += ' padding-top: ' + divProperties.paddingTop + 'px;';\n transform += ' translateY(' + -divProperties.paddingTop + 'px)';\n }\n\n if (divProperties.paddingRight !== 0) {\n padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;';\n }\n\n if (divProperties.paddingBottom !== 0) {\n padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;';\n }\n\n if (padding !== '') {\n div.setAttribute('style', divProperties.style + padding);\n }\n\n if (transform !== '') {\n div.style.transform = transform;\n }\n } else {\n div.style.padding = 0;\n div.style.transform = divProperties.originalTransform || '';\n }\n }\n }\n };\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\n task._render(renderParameters.timeout);\n\n return task;\n }\n\n return renderTextLayer;\n}();\n\nexports.renderTextLayer = renderTextLayer;\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationLayer = void 0;\n\nvar _display_utils = __w_pdfjs_require__(151);\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar AnnotationElementFactory =\n/*#__PURE__*/\nfunction () {\n function AnnotationElementFactory() {\n _classCallCheck(this, AnnotationElementFactory);\n }\n\n _createClass(AnnotationElementFactory, null, [{\n key: \"create\",\n value: function create(parameters) {\n var subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n var fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotationElement(parameters);\n\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\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case 'Ch':\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n }]);\n\n return AnnotationElementFactory;\n}();\n\nvar AnnotationElement =\n/*#__PURE__*/\nfunction () {\n function AnnotationElement(parameters) {\n var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, AnnotationElement);\n\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 _createClass(AnnotationElement, [{\n key: \"_createContainer\",\n value: function _createContainer() {\n var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var data = this.data,\n page = this.page,\n viewport = this.viewport;\n var container = document.createElement('section');\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n container.setAttribute('data-annotation-id', data.id);\n\n var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\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\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n var horizontalRadius = data.borderStyle.horizontalCornerRadius;\n var verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n var radius = horizontalRadius + 'px / ' + verticalRadius + 'px';\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = 'solid';\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = 'dashed';\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)('Unimplemented border style: beveled');\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)('Unimplemented border style: inset');\n break;\n\n case _util.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.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\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 key: \"_createPopup\",\n value: function _createPopup(container, trigger, data) {\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 var popupElement = new PopupElement({\n container: container,\n trigger: trigger,\n color: data.color,\n title: data.title,\n modificationDate: data.modificationDate,\n contents: data.contents,\n hideWrapper: true\n });\n var popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n }, {\n key: \"render\",\n value: function render() {\n (0, _util.unreachable)('Abstract method `AnnotationElement.render` called');\n }\n }]);\n\n return AnnotationElement;\n}();\n\nvar LinkAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement) {\n _inherits(LinkAnnotationElement, _AnnotationElement);\n\n function LinkAnnotationElement(parameters) {\n _classCallCheck(this, LinkAnnotationElement);\n\n var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);\n return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable));\n }\n\n _createClass(LinkAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'linkAnnotation';\n var data = this.data,\n linkService = this.linkService;\n var link = document.createElement('a');\n (0, _display_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel\n });\n\n if (!data.url) {\n if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n }, {\n key: \"_bindLink\",\n value: function _bindLink(link, destination) {\n var _this = this;\n\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = function () {\n if (destination) {\n _this.linkService.navigateTo(destination);\n }\n\n return false;\n };\n\n if (destination) {\n link.className = 'internalLink';\n }\n }\n }, {\n key: \"_bindNamedAction\",\n value: function _bindNamedAction(link, action) {\n var _this2 = this;\n\n link.href = this.linkService.getAnchorUrl('');\n\n link.onclick = function () {\n _this2.linkService.executeNamedAction(action);\n\n return false;\n };\n\n link.className = 'internalLink';\n }\n }]);\n\n return LinkAnnotationElement;\n}(AnnotationElement);\n\nvar TextAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement2) {\n _inherits(TextAnnotationElement, _AnnotationElement2);\n\n function TextAnnotationElement(parameters) {\n _classCallCheck(this, TextAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable));\n }\n\n _createClass(TextAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'textAnnotation';\n var 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-' + this.data.name.toLowerCase() + '.svg';\n image.alt = '[{{type}} Annotation]';\n image.dataset.l10nId = 'text_annotation_type';\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\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\n return TextAnnotationElement;\n}(AnnotationElement);\n\nvar WidgetAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement3) {\n _inherits(WidgetAnnotationElement, _AnnotationElement3);\n\n function WidgetAnnotationElement() {\n _classCallCheck(this, WidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments));\n }\n\n _createClass(WidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n return this.container;\n }\n }]);\n\n return WidgetAnnotationElement;\n}(AnnotationElement);\n\nvar TextWidgetAnnotationElement =\n/*#__PURE__*/\nfunction (_WidgetAnnotationElem) {\n _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);\n\n function TextWidgetAnnotationElement(parameters) {\n _classCallCheck(this, TextWidgetAnnotationElement);\n\n var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable));\n }\n\n _createClass(TextWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var TEXT_ALIGNMENT = ['left', 'center', 'right'];\n this.container.className = 'textWidgetAnnotation';\n var element = null;\n\n if (this.renderInteractiveForms) {\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 var fieldWidth = this.data.rect[2] - this.data.rect[0];\n var combWidth = fieldWidth / this.data.maxLen;\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 var font = null;\n\n if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {\n font = this.page.commonObjs.get(this.data.fontRefName);\n }\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 key: \"_setTextStyle\",\n value: function _setTextStyle(element, font) {\n var 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 ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal';\n style.fontStyle = font.italic ? 'italic' : 'normal';\n var fontFamily = font.loadedName ? '\"' + font.loadedName + '\", ' : '';\n var fallbackName = font.fallbackName || 'Helvetica, sans-serif';\n style.fontFamily = fontFamily + fallbackName;\n }\n }]);\n\n return TextWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar CheckboxWidgetAnnotationElement =\n/*#__PURE__*/\nfunction (_WidgetAnnotationElem2) {\n _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);\n\n function CheckboxWidgetAnnotationElement(parameters) {\n _classCallCheck(this, CheckboxWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(CheckboxWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'buttonWidgetAnnotation checkBox';\n var element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'checkbox';\n\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\n return CheckboxWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar RadioButtonWidgetAnnotationElement =\n/*#__PURE__*/\nfunction (_WidgetAnnotationElem3) {\n _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);\n\n function RadioButtonWidgetAnnotationElement(parameters) {\n _classCallCheck(this, RadioButtonWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(RadioButtonWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'buttonWidgetAnnotation radioButton';\n var element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'radio';\n element.name = this.data.fieldName;\n\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\n return RadioButtonWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar PushButtonWidgetAnnotationElement =\n/*#__PURE__*/\nfunction (_LinkAnnotationElemen) {\n _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);\n\n function PushButtonWidgetAnnotationElement() {\n _classCallCheck(this, PushButtonWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments));\n }\n\n _createClass(PushButtonWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), \"render\", this).call(this);\n\n container.className = 'buttonWidgetAnnotation pushButton';\n return container;\n }\n }]);\n\n return PushButtonWidgetAnnotationElement;\n}(LinkAnnotationElement);\n\nvar ChoiceWidgetAnnotationElement =\n/*#__PURE__*/\nfunction (_WidgetAnnotationElem4) {\n _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);\n\n function ChoiceWidgetAnnotationElement(parameters) {\n _classCallCheck(this, ChoiceWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(ChoiceWidgetAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'choiceWidgetAnnotation';\n var selectElement = document.createElement('select');\n selectElement.disabled = this.data.readOnly;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n for (var i = 0, ii = this.data.options.length; i < ii; i++) {\n var option = this.data.options[i];\n var optionElement = document.createElement('option');\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.fieldValue.includes(option.displayValue)) {\n optionElement.setAttribute('selected', true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n }]);\n\n return ChoiceWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar PopupAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement4) {\n _inherits(PopupAnnotationElement, _AnnotationElement4);\n\n function PopupAnnotationElement(parameters) {\n _classCallCheck(this, PopupAnnotationElement);\n\n var isRenderable = !!(parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable));\n }\n\n _createClass(PopupAnnotationElement, [{\n key: \"render\",\n value: function render() {\n var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink'];\n this.container.className = 'popupAnnotation';\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n var selector = '[data-annotation-id=\"' + this.data.parentId + '\"]';\n var parentElement = this.layer.querySelector(selector);\n\n if (!parentElement) {\n return this.container;\n }\n\n var 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 var parentLeft = parseFloat(parentElement.style.left);\n var parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top;\n this.container.style.left = parentLeft + parentWidth + 'px';\n this.container.appendChild(popup.render());\n return this.container;\n }\n }]);\n\n return PopupAnnotationElement;\n}(AnnotationElement);\n\nvar PopupElement =\n/*#__PURE__*/\nfunction () {\n function PopupElement(parameters) {\n _classCallCheck(this, PopupElement);\n\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 this.pinned = false;\n }\n\n _createClass(PopupElement, [{\n key: \"render\",\n value: function render() {\n var BACKGROUND_ENLIGHT = 0.7;\n var wrapper = document.createElement('div');\n wrapper.className = 'popupWrapper';\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.setAttribute('hidden', true);\n var popup = document.createElement('div');\n popup.className = 'popup';\n var color = this.color;\n\n if (color) {\n var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);\n }\n\n var title = document.createElement('h1');\n title.textContent = this.title;\n popup.appendChild(title);\n\n var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n var 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 var contents = this._formatContents(this.contents);\n\n popup.appendChild(contents);\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 wrapper.appendChild(popup);\n return wrapper;\n }\n }, {\n key: \"_formatContents\",\n value: function _formatContents(contents) {\n var p = document.createElement('p');\n var lines = contents.split(/(?:\\r\\n?|\\n)/);\n\n for (var i = 0, ii = lines.length; i < ii; ++i) {\n var line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement('br'));\n }\n }\n\n return p;\n }\n }, {\n key: \"_toggle\",\n value: function _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n }, {\n key: \"_show\",\n value: function _show() {\n var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hasAttribute('hidden')) {\n this.hideElement.removeAttribute('hidden');\n this.container.style.zIndex += 1;\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide() {\n var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (unpin) {\n this.pinned = false;\n }\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\n return PopupElement;\n}();\n\nvar FreeTextAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement5) {\n _inherits(FreeTextAnnotationElement, _AnnotationElement5);\n\n function FreeTextAnnotationElement(parameters) {\n _classCallCheck(this, FreeTextAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(FreeTextAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'freeTextAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return FreeTextAnnotationElement;\n}(AnnotationElement);\n\nvar LineAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement6) {\n _inherits(LineAnnotationElement, _AnnotationElement6);\n\n function LineAnnotationElement(parameters) {\n _classCallCheck(this, LineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(LineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'lineAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var 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 svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n }]);\n\n return LineAnnotationElement;\n}(AnnotationElement);\n\nvar SquareAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement7) {\n _inherits(SquareAnnotationElement, _AnnotationElement7);\n\n function SquareAnnotationElement(parameters) {\n _classCallCheck(this, SquareAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(SquareAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'squareAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var 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 svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n }]);\n\n return SquareAnnotationElement;\n}(AnnotationElement);\n\nvar CircleAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement8) {\n _inherits(CircleAnnotationElement, _AnnotationElement8);\n\n function CircleAnnotationElement(parameters) {\n _classCallCheck(this, CircleAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(CircleAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'circleAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var 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 svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n }]);\n\n return CircleAnnotationElement;\n}(AnnotationElement);\n\nvar PolylineAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement9) {\n _inherits(PolylineAnnotationElement, _AnnotationElement9);\n\n function PolylineAnnotationElement(parameters) {\n var _this3;\n\n _classCallCheck(this, PolylineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true));\n _this3.containerClassName = 'polylineAnnotation';\n _this3.svgElementName = 'svg:polyline';\n return _this3;\n }\n\n _createClass(PolylineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var vertices = data.vertices;\n var points = [];\n\n for (var i = 0, ii = vertices.length; i < ii; i++) {\n var x = vertices[i].x - data.rect[0];\n var y = data.rect[3] - vertices[i].y;\n points.push(x + ',' + y);\n }\n\n points = points.join(' ');\n var borderWidth = data.borderStyle.width;\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', borderWidth);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n }]);\n\n return PolylineAnnotationElement;\n}(AnnotationElement);\n\nvar PolygonAnnotationElement =\n/*#__PURE__*/\nfunction (_PolylineAnnotationEl) {\n _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);\n\n function PolygonAnnotationElement(parameters) {\n var _this4;\n\n _classCallCheck(this, PolygonAnnotationElement);\n\n _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters));\n _this4.containerClassName = 'polygonAnnotation';\n _this4.svgElementName = 'svg:polygon';\n return _this4;\n }\n\n return PolygonAnnotationElement;\n}(PolylineAnnotationElement);\n\nvar CaretAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement10) {\n _inherits(CaretAnnotationElement, _AnnotationElement10);\n\n function CaretAnnotationElement(parameters) {\n _classCallCheck(this, CaretAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(CaretAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'caretAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return CaretAnnotationElement;\n}(AnnotationElement);\n\nvar InkAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement11) {\n _inherits(InkAnnotationElement, _AnnotationElement11);\n\n function InkAnnotationElement(parameters) {\n var _this5;\n\n _classCallCheck(this, InkAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true));\n _this5.containerClassName = 'inkAnnotation';\n _this5.svgElementName = 'svg:polyline';\n return _this5;\n }\n\n _createClass(InkAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var inkLists = data.inkLists;\n\n for (var i = 0, ii = inkLists.length; i < ii; i++) {\n var inkList = inkLists[i];\n var points = [];\n\n for (var j = 0, jj = inkList.length; j < jj; j++) {\n var x = inkList[j].x - data.rect[0];\n var y = data.rect[3] - inkList[j].y;\n points.push(x + ',' + y);\n }\n\n points = points.join(' ');\n var borderWidth = data.borderStyle.width;\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', borderWidth);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n\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\n return InkAnnotationElement;\n}(AnnotationElement);\n\nvar HighlightAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement12) {\n _inherits(HighlightAnnotationElement, _AnnotationElement12);\n\n function HighlightAnnotationElement(parameters) {\n _classCallCheck(this, HighlightAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(HighlightAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'highlightAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return HighlightAnnotationElement;\n}(AnnotationElement);\n\nvar UnderlineAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement13) {\n _inherits(UnderlineAnnotationElement, _AnnotationElement13);\n\n function UnderlineAnnotationElement(parameters) {\n _classCallCheck(this, UnderlineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(UnderlineAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'underlineAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return UnderlineAnnotationElement;\n}(AnnotationElement);\n\nvar SquigglyAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement14) {\n _inherits(SquigglyAnnotationElement, _AnnotationElement14);\n\n function SquigglyAnnotationElement(parameters) {\n _classCallCheck(this, SquigglyAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(SquigglyAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'squigglyAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return SquigglyAnnotationElement;\n}(AnnotationElement);\n\nvar StrikeOutAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement15) {\n _inherits(StrikeOutAnnotationElement, _AnnotationElement15);\n\n function StrikeOutAnnotationElement(parameters) {\n _classCallCheck(this, StrikeOutAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(StrikeOutAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'strikeoutAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return StrikeOutAnnotationElement;\n}(AnnotationElement);\n\nvar StampAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement16) {\n _inherits(StampAnnotationElement, _AnnotationElement16);\n\n function StampAnnotationElement(parameters) {\n _classCallCheck(this, StampAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true));\n }\n\n _createClass(StampAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'stampAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return StampAnnotationElement;\n}(AnnotationElement);\n\nvar FileAttachmentAnnotationElement =\n/*#__PURE__*/\nfunction (_AnnotationElement17) {\n _inherits(FileAttachmentAnnotationElement, _AnnotationElement17);\n\n function FileAttachmentAnnotationElement(parameters) {\n var _this6;\n\n _classCallCheck(this, FileAttachmentAnnotationElement);\n\n _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true));\n var _this6$data$file = _this6.data.file,\n filename = _this6$data$file.filename,\n content = _this6$data$file.content;\n _this6.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n _this6.content = content;\n\n if (_this6.linkService.eventBus) {\n _this6.linkService.eventBus.dispatch('fileattachmentannotation', {\n source: _assertThisInitialized(_this6),\n id: (0, _util.stringToPDFString)(filename),\n filename: filename,\n content: content\n });\n }\n\n return _this6;\n }\n\n _createClass(FileAttachmentAnnotationElement, [{\n key: \"render\",\n value: function render() {\n this.container.className = 'fileAttachmentAnnotation';\n var 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 key: \"_download\",\n value: function _download() {\n if (!this.downloadManager) {\n (0, _util.warn)('Download cannot be started due to unavailable download manager');\n return;\n }\n\n this.downloadManager.downloadData(this.content, this.filename, '');\n }\n }]);\n\n return FileAttachmentAnnotationElement;\n}(AnnotationElement);\n\nvar AnnotationLayer =\n/*#__PURE__*/\nfunction () {\n function AnnotationLayer() {\n _classCallCheck(this, AnnotationLayer);\n }\n\n _createClass(AnnotationLayer, null, [{\n key: \"render\",\n value: function render(parameters) {\n for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {\n var data = parameters.annotations[i];\n\n if (!data) {\n continue;\n }\n\n var element = AnnotationElementFactory.create({\n data: 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 _display_utils.DOMSVGFactory()\n });\n\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n }, {\n key: \"update\",\n value: function update(parameters) {\n for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {\n var data = parameters.annotations[i];\n var element = parameters.div.querySelector('[data-annotation-id=\"' + data.id + '\"]');\n\n if (element) {\n element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')';\n }\n }\n\n parameters.div.removeAttribute('hidden');\n }\n }]);\n\n return AnnotationLayer;\n}();\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SVGGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(151);\n\nvar _is_node = _interopRequireDefault(__w_pdfjs_require__(4));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar SVGGraphics = function SVGGraphics() {\n throw new Error('Not implemented: SVGGraphics');\n};\n\nexports.SVGGraphics = SVGGraphics;\n{\n var opListToTree = function opListToTree(opList) {\n var opTree = [];\n var tmp = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = opList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var opListElement = _step.value;\n\n if (opListElement.fn === 'save') {\n opTree.push({\n 'fnId': 92,\n 'fn': 'group',\n 'items': []\n });\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 } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return opTree;\n };\n\n var pf = function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n var s = value.toFixed(10);\n var i = s.length - 1;\n\n if (s[i] !== '0') {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === '0');\n\n return s.substring(0, s[i] === '.' ? i : i + 1);\n };\n\n var pm = function 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\n return \"scale(\".concat(pf(m[0]), \" \").concat(pf(m[3]), \")\");\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n var a = Math.acos(m[0]) * 180 / Math.PI;\n return \"rotate(\".concat(pf(a), \")\");\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return \"translate(\".concat(pf(m[4]), \" \").concat(pf(m[5]), \")\");\n }\n }\n\n return \"matrix(\".concat(pf(m[0]), \" \").concat(pf(m[1]), \" \").concat(pf(m[2]), \" \").concat(pf(m[3]), \" \").concat(pf(m[4]), \" \") + \"\".concat(pf(m[5]), \")\");\n };\n\n var SVG_DEFAULTS = {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fillColor: '#000000'\n };\n var XML_NS = 'http://www.w3.org/XML/1998/namespace';\n var XLINK_NS = 'http://www.w3.org/1999/xlink';\n var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n\n var convertImgDataToPng = function () {\n var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n var CHUNK_WRAPPER_SIZE = 12;\n var crcTable = new Int32Array(256);\n\n for (var i = 0; i < 256; i++) {\n var c = i;\n\n for (var 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\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n var crc = -1;\n\n for (var _i = start; _i < end; _i++) {\n var a = (crc ^ data[_i]) & 0xff;\n var b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n var p = offset;\n var len = body.length;\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 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 data.set(body, p);\n p += body.length;\n var 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 var a = 1;\n var b = 0;\n\n for (var _i2 = start; _i2 < end; ++_i2) {\n a = (a + (data[_i2] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!(0, _is_node[\"default\"])()) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n var input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = new Buffer(literals);\n }\n\n var output = require('zlib').deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n var len = literals.length;\n var maxBlockLength = 0xFFFF;\n var deflateBlocks = Math.ceil(len / maxBlockLength);\n var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n var pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n var pos = 0;\n\n while (len > maxBlockLength) {\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 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 var adler = adler32(literals, 0, literals.length);\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 var width = imgData.width;\n var height = imgData.height;\n var bitDepth, colorType, lineSize;\n var bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error('invalid format');\n }\n\n var literals = new Uint8Array((1 + lineSize) * height);\n var offsetLiterals = 0,\n offsetBytes = 0;\n\n for (var y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (var _y = 0; _y < height; _y++) {\n offsetLiterals++;\n\n for (var _i3 = 0; _i3 < lineSize; _i3++) {\n literals[offsetLiterals++] ^= 0xFF;\n }\n }\n }\n\n var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n var idat = deflateSync(literals);\n var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n var data = new Uint8Array(pngLength);\n var 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 return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n var SVGExtraState =\n /*#__PURE__*/\n function () {\n function SVGExtraState() {\n _classCallCheck(this, SVGExtraState);\n\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = '#000000';\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = '';\n this.lineCap = '';\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = '';\n }\n\n _createClass(SVGExtraState, [{\n key: \"clone\",\n value: function clone() {\n return Object.create(this);\n }\n }, {\n key: \"setCurrentPoint\",\n value: function setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n }]);\n\n return SVGExtraState;\n }();\n\n var clipCount = 0;\n var maskCount = 0;\n var shadingCount = 0;\n\n exports.SVGGraphics = SVGGraphics =\n /*#__PURE__*/\n function () {\n function SVGGraphics(commonObjs, objs, forceDataSchema) {\n _classCallCheck(this, SVGGraphics);\n\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (var op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n _createClass(SVGGraphics, [{\n key: \"save\",\n value: function save() {\n this.transformStack.push(this.transformMatrix);\n var old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n }, {\n key: \"restore\",\n value: function restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n }, {\n key: \"group\",\n value: function group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n }, {\n key: \"loadDependencies\",\n value: function loadDependencies(operatorList) {\n var _this = this;\n\n var fnArray = operatorList.fnArray;\n var argsArray = operatorList.argsArray;\n\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n var _loop = function _loop() {\n var obj = _step2.value;\n var objsPool = obj.startsWith('g_') ? _this.commonObjs : _this.objs;\n var promise = new Promise(function (resolve) {\n objsPool.get(obj, resolve);\n });\n\n _this.current.dependencies.push(promise);\n };\n\n for (var _iterator2 = argsArray[i][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n _loop();\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2[\"return\"] != null) {\n _iterator2[\"return\"]();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n }, {\n key: \"transform\",\n value: function transform(a, b, c, d, e, f) {\n var transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n }, {\n key: \"getSVG\",\n value: function getSVG(operatorList, viewport) {\n var _this2 = this;\n\n this.viewport = viewport;\n\n var svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(function () {\n _this2.transformMatrix = _util.IDENTITY_MATRIX;\n\n _this2.executeOpTree(_this2.convertOpList(operatorList));\n\n return svgElement;\n });\n }\n }, {\n key: \"convertOpList\",\n value: function convertOpList(operatorList) {\n var operatorIdMapping = this._operatorIdMapping;\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var opList = [];\n\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n var fnId = fnArray[i];\n opList.push({\n 'fnId': fnId,\n 'fn': operatorIdMapping[fnId],\n 'args': argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n }, {\n key: \"executeOpTree\",\n value: function executeOpTree(opTree) {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = opTree[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var opTreeElement = _step3.value;\n var fn = opTreeElement.fn;\n var fnId = opTreeElement.fnId;\n var args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip('nonzero');\n break;\n\n case _util.OPS.eoClip:\n this.clip('evenodd');\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintJpegXObject:\n this.paintJpegXObject(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(\"Unimplemented operator \".concat(fn));\n break;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3[\"return\"] != null) {\n _iterator3[\"return\"]();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n }, {\n key: \"setWordSpacing\",\n value: function setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n }, {\n key: \"setCharSpacing\",\n value: function setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n }, {\n key: \"nextLine\",\n value: function nextLine() {\n this.moveText(0, this.current.leading);\n }\n }, {\n key: \"setTextMatrix\",\n value: function setTextMatrix(a, b, c, d, e, f) {\n var current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.sqrt(a * a + b * b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\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', \"\".concat(pf(current.fontSize), \"px\"));\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.txtElement = this.svgFactory.createElement('svg:text');\n current.txtElement.appendChild(current.tspan);\n }\n }, {\n key: \"beginText\",\n value: function beginText() {\n var current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.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 key: \"moveText\",\n value: function moveText(x, y) {\n var current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\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', \"\".concat(pf(current.fontSize), \"px\"));\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n }\n }, {\n key: \"showText\",\n value: function showText(glyphs) {\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var vertical = font.vertical;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var x = 0;\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = glyphs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var glyph = _step4.value;\n\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += -glyph * fontSize * 0.001;\n continue;\n }\n\n var width = glyph.width;\n var character = glyph.fontChar;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n\n if (!glyph.isInFont && !font.missingFile) {\n x += charWidth;\n continue;\n }\n\n current.xcoords.push(current.x + x * textHScale);\n current.tspan.textContent += character;\n x += charWidth;\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4[\"return\"] != null) {\n _iterator4[\"return\"]();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, 'x', 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', \"\".concat(pf(current.fontSize), \"px\"));\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);\n }\n\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, 'fill', current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, 'fill', 'transparent');\n } else {\n current.tspan.setAttributeNS(null, 'fill', 'none');\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n var lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n var textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, 'transform', \"\".concat(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 key: \"setLeadingMoveText\",\n value: function setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n }, {\n key: \"addFontStyle\",\n value: function 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 var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += \"@font-face { font-family: \\\"\".concat(fontObj.loadedName, \"\\\";\") + \" src: url(\".concat(url, \"); }\\n\");\n }\n }, {\n key: \"setFont\",\n value: function setFont(details) {\n var current = this.current;\n var fontObj = this.commonObjs.get(details[0]);\n var size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal';\n var 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\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.xcoords = [];\n }\n }, {\n key: \"endText\",\n value: function endText() {\n var current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip('nonzero');\n this.endPath();\n }\n }\n }, {\n key: \"setLineWidth\",\n value: function setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n }, {\n key: \"setLineCap\",\n value: function setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n }, {\n key: \"setLineJoin\",\n value: function setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n }, {\n key: \"setMiterLimit\",\n value: function setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n }, {\n key: \"setStrokeAlpha\",\n value: function setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n }, {\n key: \"setStrokeRGBColor\",\n value: function setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeCssRgb(r, g, b);\n }\n }, {\n key: \"setFillAlpha\",\n value: function setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n }, {\n key: \"setFillRGBColor\",\n value: function setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeCssRgb(r, g, b);\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.xcoords = [];\n }\n }, {\n key: \"setStrokeColorN\",\n value: function setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n }, {\n key: \"setFillColorN\",\n value: function setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n }, {\n key: \"shadingFill\",\n value: function shadingFill(args) {\n var width = this.viewport.width;\n var height = this.viewport.height;\n\n var inv = _util.Util.inverseTransform(this.transformMatrix);\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.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 var 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\n this._ensureTransformGroup().appendChild(rect);\n }\n }, {\n key: \"_makeColorN_Pattern\",\n value: function _makeColorN_Pattern(args) {\n if (args[0] === 'TilingPattern') {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n }, {\n key: \"_makeTilingPattern\",\n value: function _makeTilingPattern(args) {\n var color = args[1];\n var operatorList = args[2];\n var matrix = args[3] || _util.IDENTITY_MATRIX;\n\n var _args$ = _slicedToArray(args[4], 4),\n x0 = _args$[0],\n y0 = _args$[1],\n x1 = _args$[2],\n y1 = _args$[3];\n\n var xstep = args[5];\n var ystep = args[6];\n var paintType = args[7];\n var tilingId = \"shading\".concat(shadingCount++);\n\n var _Util$applyTransform = _util.Util.applyTransform([x0, y0], matrix),\n _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2),\n tx0 = _Util$applyTransform2[0],\n ty0 = _Util$applyTransform2[1];\n\n var _Util$applyTransform3 = _util.Util.applyTransform([x1, y1], matrix),\n _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2),\n tx1 = _Util$applyTransform4[0],\n ty1 = _Util$applyTransform4[1];\n\n var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix),\n _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2),\n xscale = _Util$singularValueDe2[0],\n yscale = _Util$singularValueDe2[1];\n\n var txstep = xstep * xscale;\n var tystep = ystep * yscale;\n var 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', \"\".concat(tx0));\n tiling.setAttributeNS(null, 'y', \"\".concat(ty0));\n var svg = this.svg;\n var transformMatrix = this.transformMatrix;\n var fillColor = this.current.fillColor;\n var strokeColor = this.current.strokeColor;\n var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n var cssColor = _util.Util.makeCssRgb.apply(_util.Util, _toConsumableArray(color));\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return \"url(#\".concat(tilingId, \")\");\n }\n }, {\n key: \"_makeShadingPattern\",\n value: function _makeShadingPattern(args) {\n switch (args[0]) {\n case 'RadialAxial':\n var shadingId = \"shading\".concat(shadingCount++);\n var colorStops = args[2];\n var gradient;\n\n switch (args[1]) {\n case 'axial':\n var point0 = args[3];\n var 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\n case 'radial':\n var focalPoint = args[3];\n var circlePoint = args[4];\n var focalRadius = args[5];\n var 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\n default:\n throw new Error(\"Unknown RadialAxial type: \".concat(args[1]));\n }\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = colorStops[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var colorStop = _step5.value;\n var 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 } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5[\"return\"] != null) {\n _iterator5[\"return\"]();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n this.defs.appendChild(gradient);\n return \"url(#\".concat(shadingId, \")\");\n\n case 'Mesh':\n (0, _util.warn)('Unimplemented pattern Mesh');\n return null;\n\n case 'Dummy':\n return 'hotpink';\n\n default:\n throw new Error(\"Unknown IR type: \".concat(args[0]));\n }\n }\n }, {\n key: \"setDash\",\n value: function setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n }, {\n key: \"constructPath\",\n value: function constructPath(ops, args) {\n var current = this.current;\n var x = current.x,\n y = current.y;\n var d = [];\n var j = 0;\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = ops[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var op = _step6.value;\n\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n var xw = x + width;\n var yh = y + height;\n d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z');\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push('M', pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push('L', pf(x), pf(y));\n break;\n\n case _util.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]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.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]), pf(args[j + 2]), pf(args[j + 3]));\n j += 4;\n break;\n\n case _util.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), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push('Z');\n break;\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6[\"return\"] != null) {\n _iterator6[\"return\"]();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n d = d.join(' ');\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, 'd') + d;\n } else {\n current.path = this.svgFactory.createElement('svg:path');\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, 'd', d);\n current.path.setAttributeNS(null, 'fill', 'none');\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n }, {\n key: \"endPath\",\n value: function endPath() {\n var current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n var clipId = \"clippath\".concat(clipCount++);\n var clipPath = this.svgFactory.createElement('svg:clipPath');\n clipPath.setAttributeNS(null, 'id', clipId);\n clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n var clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === 'evenodd') {\n clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');\n } else {\n clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);\n }\n\n current.activeClipUrl = \"url(#\".concat(clipId, \")\");\n this.tgrp = null;\n }\n }, {\n key: \"clip\",\n value: function clip(type) {\n this.pendingClip = type;\n }\n }, {\n key: \"closePath\",\n value: function closePath() {\n var current = this.current;\n\n if (current.path) {\n var d = \"\".concat(current.path.getAttributeNS(null, 'd'), \"Z\");\n current.path.setAttributeNS(null, 'd', d);\n }\n }\n }, {\n key: \"setLeading\",\n value: function setLeading(leading) {\n this.current.leading = -leading;\n }\n }, {\n key: \"setTextRise\",\n value: function setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n }, {\n key: \"setTextRenderingMode\",\n value: function setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n }, {\n key: \"setHScale\",\n value: function setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n }, {\n key: \"setRenderingIntent\",\n value: function setRenderingIntent(intent) {}\n }, {\n key: \"setFlatness\",\n value: function setFlatness(flatness) {}\n }, {\n key: \"setGState\",\n value: function setGState(states) {\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = states[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var _step7$value = _slicedToArray(_step7.value, 2),\n key = _step7$value[0],\n value = _step7$value[1];\n\n switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n\n case 'LC':\n this.setLineCap(value);\n break;\n\n case 'LJ':\n this.setLineJoin(value);\n break;\n\n case 'ML':\n this.setMiterLimit(value);\n break;\n\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n\n case 'RI':\n this.setRenderingIntent(value);\n break;\n\n case 'FL':\n this.setFlatness(value);\n break;\n\n case 'Font':\n this.setFont(value);\n break;\n\n case 'CA':\n this.setStrokeAlpha(value);\n break;\n\n case 'ca':\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(\"Unimplemented graphic state operator \".concat(key));\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7[\"return\"] != null) {\n _iterator7[\"return\"]();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n }\n }, {\n key: \"fill\",\n value: function fill() {\n var current = this.current;\n\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 key: \"stroke\",\n value: function stroke() {\n var current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, 'fill', 'none');\n this.endPath();\n }\n }\n }, {\n key: \"_setStrokeAttributes\",\n value: function _setStrokeAttributes(element) {\n var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var current = this.current;\n var dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\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', pf(lineWidthScale * current.lineWidth) + 'px');\n element.setAttributeNS(null, 'stroke-dasharray', dashArray.map(pf).join(' '));\n element.setAttributeNS(null, 'stroke-dashoffset', pf(lineWidthScale * current.dashPhase) + 'px');\n }\n }, {\n key: \"eoFill\",\n value: function eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n\n this.fill();\n }\n }, {\n key: \"fillStroke\",\n value: function fillStroke() {\n this.stroke();\n this.fill();\n }\n }, {\n key: \"eoFillStroke\",\n value: function eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n\n this.fillStroke();\n }\n }, {\n key: \"closeStroke\",\n value: function closeStroke() {\n this.closePath();\n this.stroke();\n }\n }, {\n key: \"closeFillStroke\",\n value: function closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n }, {\n key: \"closeEOFillStroke\",\n value: function closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n }, {\n key: \"paintSolidColorImageMask\",\n value: function paintSolidColorImageMask() {\n var 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 key: \"paintJpegXObject\",\n value: function paintJpegXObject(objId, w, h) {\n var imgObj = this.objs.get(objId);\n var 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', \"scale(\".concat(pf(1 / w), \" \").concat(pf(-1 / h), \")\"));\n\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }, {\n key: \"paintImageXObject\",\n value: function paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image with object ID \".concat(objId, \" is not ready yet\"));\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n }, {\n key: \"paintInlineImageXObject\",\n value: function paintInlineImageXObject(imgData, mask) {\n var width = imgData.width;\n var height = imgData.height;\n var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n var 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 var 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', \"scale(\".concat(pf(1 / width), \" \").concat(pf(-1 / height), \")\"));\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n }, {\n key: \"paintImageMaskXObject\",\n value: function paintImageMaskXObject(imgData) {\n var current = this.current;\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = current.fillColor;\n current.maskId = \"mask\".concat(maskCount++);\n var mask = this.svgFactory.createElement('svg:mask');\n mask.setAttributeNS(null, 'id', current.maskId);\n var 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(#\".concat(current.maskId, \")\"));\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n }, {\n key: \"paintFormXObjectBegin\",\n value: function paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n var 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 key: \"paintFormXObjectEnd\",\n value: function paintFormXObjectEnd() {}\n }, {\n key: \"_initialize\",\n value: function _initialize(viewport) {\n var svg = this.svgFactory.create(viewport.width, viewport.height);\n var definitions = this.svgFactory.createElement('svg:defs');\n svg.appendChild(definitions);\n this.defs = definitions;\n var rootGroup = this.svgFactory.createElement('svg:g');\n rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n }, {\n key: \"_ensureClipGroup\",\n value: function _ensureClipGroup() {\n if (!this.current.clipGroup) {\n var 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\n return this.current.clipGroup;\n }\n }, {\n key: \"_ensureTransformGroup\",\n value: function _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement('svg:g');\n this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n }]);\n\n return SVGGraphics;\n }();\n}\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNodeStream = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(166);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar fs = require('fs');\n\nvar http = require('http');\n\nvar https = require('https');\n\nvar url = require('url');\n\nvar fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n var parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === 'file:' || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(\"file:///\".concat(sourceUrl));\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = 'file:';\n }\n\n return parsedUrl;\n}\n\nvar PDFNodeStream =\n/*#__PURE__*/\nfunction () {\n function PDFNodeStream(source) {\n _classCallCheck(this, PDFNodeStream);\n\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:';\n this.isFsUrl = this.url.protocol === 'file:';\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFNodeStream, [{\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }, {\n key: \"_progressiveDataLength\",\n get: function get() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n }]);\n\n return PDFNodeStream;\n}();\n\nexports.PDFNodeStream = PDFNodeStream;\n\nvar BaseFullReader =\n/*#__PURE__*/\nfunction () {\n function BaseFullReader(stream) {\n _classCallCheck(this, BaseFullReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n var source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(BaseFullReader, [{\n key: \"read\",\n value: function () {\n var _read = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee() {\n var chunk, buffer;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context.abrupt(\"return\", this.read());\n\n case 10:\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n buffer = new Uint8Array(chunk).buffer;\n return _context.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n }, {\n key: \"_error\",\n value: function _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n }, {\n key: \"_setReadableStream\",\n value: function _setReadableStream(readableStream) {\n var _this = this;\n\n this._readableStream = readableStream;\n readableStream.on('readable', function () {\n _this._readCapability.resolve();\n });\n readableStream.on('end', function () {\n readableStream.destroy();\n _this._done = true;\n\n _this._readCapability.resolve();\n });\n readableStream.on('error', function (reason) {\n _this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException('streaming is disabled'));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }, {\n key: \"headersReady\",\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return BaseFullReader;\n}();\n\nvar BaseRangeReader =\n/*#__PURE__*/\nfunction () {\n function BaseRangeReader(stream) {\n _classCallCheck(this, BaseRangeReader);\n\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 = (0, _util.createPromiseCapability)();\n var source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n _createClass(BaseRangeReader, [{\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2() {\n var chunk, buffer;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context2.next = 4;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context2.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context2.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context2.abrupt(\"return\", this.read());\n\n case 10:\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n buffer = new Uint8Array(chunk).buffer;\n return _context2.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n }, {\n key: \"_error\",\n value: function _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n }, {\n key: \"_setReadableStream\",\n value: function _setReadableStream(readableStream) {\n var _this2 = this;\n\n this._readableStream = readableStream;\n readableStream.on('readable', function () {\n _this2._readCapability.resolve();\n });\n readableStream.on('end', function () {\n readableStream.destroy();\n _this2._done = true;\n\n _this2._readCapability.resolve();\n });\n readableStream.on('error', function (reason) {\n _this2._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return BaseRangeReader;\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: headers\n };\n}\n\nvar PDFNodeStreamFullReader =\n/*#__PURE__*/\nfunction (_BaseFullReader) {\n _inherits(PDFNodeStreamFullReader, _BaseFullReader);\n\n function PDFNodeStreamFullReader(stream) {\n var _this3;\n\n _classCallCheck(this, PDFNodeStreamFullReader);\n\n _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream));\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(_this3._url, \"\\\".\"));\n _this3._storedError = error;\n\n _this3._headersCapability.reject(error);\n\n return;\n }\n\n _this3._headersCapability.resolve();\n\n _this3._setReadableStream(response);\n\n var getResponseHeader = function getResponseHeader(name) {\n return _this3._readableStream.headers[name.toLowerCase()];\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: _this3._rangeChunkSize,\n disableRange: _this3._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n _this3._isRangeSupported = allowRangeRequests;\n _this3._contentLength = suggestedLength || _this3._contentLength;\n _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n _this3._request = null;\n\n if (_this3._url.protocol === 'http:') {\n _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);\n } else {\n _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);\n }\n\n _this3._request.on('error', function (reason) {\n _this3._storedError = reason;\n\n _this3._headersCapability.reject(reason);\n });\n\n _this3._request.end();\n\n return _this3;\n }\n\n return PDFNodeStreamFullReader;\n}(BaseFullReader);\n\nvar PDFNodeStreamRangeReader =\n/*#__PURE__*/\nfunction (_BaseRangeReader) {\n _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);\n\n function PDFNodeStreamRangeReader(stream, start, end) {\n var _this4;\n\n _classCallCheck(this, PDFNodeStreamRangeReader);\n\n _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream));\n _this4._httpHeaders = {};\n\n for (var property in stream.httpHeaders) {\n var value = stream.httpHeaders[property];\n\n if (typeof value === 'undefined') {\n continue;\n }\n\n _this4._httpHeaders[property] = value;\n }\n\n _this4._httpHeaders['Range'] = \"bytes=\".concat(start, \"-\").concat(end - 1);\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(_this4._url, \"\\\".\"));\n _this4._storedError = error;\n return;\n }\n\n _this4._setReadableStream(response);\n };\n\n _this4._request = null;\n\n if (_this4._url.protocol === 'http:') {\n _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);\n } else {\n _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);\n }\n\n _this4._request.on('error', function (reason) {\n _this4._storedError = reason;\n });\n\n _this4._request.end();\n\n return _this4;\n }\n\n return PDFNodeStreamRangeReader;\n}(BaseRangeReader);\n\nvar PDFNodeStreamFsFullReader =\n/*#__PURE__*/\nfunction (_BaseFullReader2) {\n _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);\n\n function PDFNodeStreamFsFullReader(stream) {\n var _this5;\n\n _classCallCheck(this, PDFNodeStreamFsFullReader);\n\n _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream));\n var path = decodeURIComponent(_this5._url.path);\n\n if (fileUriRegex.test(_this5._url.href)) {\n path = path.replace(/^\\//, '');\n }\n\n fs.lstat(path, function (error, stat) {\n if (error) {\n if (error.code === 'ENOENT') {\n error = new _util.MissingPDFException(\"Missing PDF \\\"\".concat(path, \"\\\".\"));\n }\n\n _this5._storedError = error;\n\n _this5._headersCapability.reject(error);\n\n return;\n }\n\n _this5._contentLength = stat.size;\n\n _this5._setReadableStream(fs.createReadStream(path));\n\n _this5._headersCapability.resolve();\n });\n return _this5;\n }\n\n return PDFNodeStreamFsFullReader;\n}(BaseFullReader);\n\nvar PDFNodeStreamFsRangeReader =\n/*#__PURE__*/\nfunction (_BaseRangeReader2) {\n _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);\n\n function PDFNodeStreamFsRangeReader(stream, start, end) {\n var _this6;\n\n _classCallCheck(this, PDFNodeStreamFsRangeReader);\n\n _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream));\n var path = decodeURIComponent(_this6._url.path);\n\n if (fileUriRegex.test(_this6._url.href)) {\n path = path.replace(/^\\//, '');\n }\n\n _this6._setReadableStream(fs.createReadStream(path, {\n start: start,\n end: end - 1\n }));\n\n return _this6;\n }\n\n return PDFNodeStreamFsRangeReader;\n}(BaseRangeReader);\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _content_disposition = __w_pdfjs_require__(167);\n\nfunction validateRangeRequestCapabilities(_ref) {\n var getResponseHeader = _ref.getResponseHeader,\n isHttp = _ref.isHttp,\n rangeChunkSize = _ref.rangeChunkSize,\n disableRange = _ref.disableRange;\n (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero');\n var returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n var length = parseInt(getResponseHeader('Content-Length'), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader('Accept-Ranges') !== 'bytes') {\n return returnValues;\n }\n\n var contentEncoding = getResponseHeader('Content-Encoding') || 'identity';\n\n if (contentEncoding !== 'identity') {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n var contentDisposition = getResponseHeader('Content-Disposition');\n\n if (contentDisposition) {\n var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && /^file:/.test(url)) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n var needsEncodingFixup = true;\n var tmp = toParamRegExp('filename\\\\*', 'i').exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n var filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n var _filename = rfc2047decode(tmp);\n\n return fixupEncoding(_filename);\n }\n\n tmp = toParamRegExp('filename', 'i').exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n\n var _filename2 = rfc2616unquote(tmp);\n\n _filename2 = rfc2047decode(_filename2);\n return fixupEncoding(_filename2);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp('(?:^|;)\\\\s*' + attributePattern + '\\\\s*=\\\\s*' + '(' + '[^\";\\\\s][^;\\\\s]*' + '|' + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + ')', flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n var decoder = new TextDecoder(encoding, {\n fatal: true\n });\n var 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 if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode('utf-8', value);\n\n if (needsEncodingFixup) {\n value = textdecode('iso-8859-1', value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDisposition) {\n var matches = [],\n match;\n var iter = toParamRegExp('filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)', 'ig');\n\n while ((match = iter.exec(contentDisposition)) !== null) {\n var _match = match,\n _match2 = _slicedToArray(_match, 4),\n n = _match2[1],\n quot = _match2[2],\n part = _match2[3];\n\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n var parts = [];\n\n for (var n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n var _matches$n = _slicedToArray(matches[n], 2),\n quot = _matches$n[0],\n part = _matches$n[1];\n\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join('');\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n var parts = value.slice(1).split('\\\\\"');\n\n for (var i = 0; i < parts.length; ++i) {\n var quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, '$1');\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n var encodingend = extvalue.indexOf('\\'');\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n var encoding = extvalue.slice(0, encodingend);\n var langvalue = extvalue.slice(encodingend + 1);\n var value = langvalue.replace(/^[^']*'/, '');\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith('=?') || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (_, charset, encoding, text) {\n if (encoding === 'q' || encoding === 'Q') {\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 }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return '';\n}\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNetworkStream = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(166);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n;\nvar OK_RESPONSE = 200;\nvar PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n var data = xhr.response;\n\n if (typeof data !== 'string') {\n return data;\n }\n\n var array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nvar NetworkManager =\n/*#__PURE__*/\nfunction () {\n function NetworkManager(url, args) {\n _classCallCheck(this, NetworkManager);\n\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\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n _createClass(NetworkManager, [{\n key: \"requestRange\",\n value: function requestRange(begin, end, listeners) {\n var args = {\n begin: begin,\n end: end\n };\n\n for (var prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n }, {\n key: \"requestFull\",\n value: function requestFull(listeners) {\n return this.request(listeners);\n }\n }, {\n key: \"request\",\n value: function request(args) {\n var xhr = this.getXhr();\n var xhrId = this.currXhrId++;\n var pendingRequest = this.pendingRequests[xhrId] = {\n xhr: xhr\n };\n xhr.open('GET', this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (var property in this.httpHeaders) {\n var value = this.httpHeaders[property];\n\n if (typeof value === 'undefined') {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && 'begin' in args && 'end' in args) {\n xhr.setRequestHeader('Range', \"bytes=\".concat(args.begin, \"-\").concat(args.end - 1));\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = 'arraybuffer';\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n }, {\n key: \"onProgress\",\n value: function onProgress(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n if (pendingRequest.onProgress) {\n pendingRequest.onProgress(evt);\n }\n }\n }, {\n key: \"onStateChange\",\n value: function onStateChange(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n var xhr = pendingRequest.xhr;\n\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 return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n var xhrStatus = xhr.status || OK_RESPONSE;\n var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n var chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n var rangeHeader = xhr.getResponseHeader('Content-Range');\n var matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk: chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk: chunk\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n }\n }, {\n key: \"hasPendingRequests\",\n value: function hasPendingRequests() {\n for (var xhrId in this.pendingRequests) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"getRequestXhr\",\n value: function getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n }, {\n key: \"isPendingRequest\",\n value: function isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n }, {\n key: \"abortAllRequests\",\n value: function abortAllRequests() {\n for (var xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n }\n }, {\n key: \"abortRequest\",\n value: function abortRequest(xhrId) {\n var xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n }]);\n\n return NetworkManager;\n}();\n\nvar PDFNetworkStream =\n/*#__PURE__*/\nfunction () {\n function PDFNetworkStream(source) {\n _classCallCheck(this, PDFNetworkStream);\n\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 _createClass(PDFNetworkStream, [{\n key: \"_onRangeRequestReaderClosed\",\n value: function _onRangeRequestReaderClosed(reader) {\n var i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n }, {\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFNetworkStream;\n}();\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nvar PDFNetworkStreamFullRequestReader =\n/*#__PURE__*/\nfunction () {\n function PDFNetworkStreamFullRequestReader(manager, source) {\n _classCallCheck(this, PDFNetworkStreamFullRequestReader);\n\n this._manager = manager;\n var 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 = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _createClass(PDFNetworkStreamFullRequestReader, [{\n key: \"_onHeadersReceived\",\n value: function _onHeadersReceived() {\n var fullRequestXhrId = this._fullRequestId;\n\n var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n var getResponseHeader = function getResponseHeader(name) {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n }, {\n key: \"_onDone\",\n value: function _onDone(args) {\n if (args) {\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: args.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n }, {\n key: \"_onError\",\n value: function _onError(status) {\n var url = this._url;\n var exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n\n this._headersReceivedCapability.reject(exception);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n\n this._requests = [];\n this._cachedChunks = [];\n }\n }, {\n key: \"_onProgress\",\n value: function _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 key: \"read\",\n value: function () {\n var _read = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this._storedError) {\n _context.next = 2;\n break;\n }\n\n throw this._storedError;\n\n case 2:\n if (!(this._cachedChunks.length > 0)) {\n _context.next = 5;\n break;\n }\n\n chunk = this._cachedChunks.shift();\n return _context.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 5:\n if (!this._done) {\n _context.next = 7;\n break;\n }\n\n return _context.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 7:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context.abrupt(\"return\", requestCapability.promise);\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"headersReady\",\n get: function get() {\n return this._headersReceivedCapability.promise;\n }\n }]);\n\n return PDFNetworkStreamFullRequestReader;\n}();\n\nvar PDFNetworkStreamRangeRequestReader =\n/*#__PURE__*/\nfunction () {\n function PDFNetworkStreamRangeRequestReader(manager, begin, end) {\n _classCallCheck(this, PDFNetworkStreamRangeRequestReader);\n\n this._manager = manager;\n var 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 this.onProgress = null;\n this.onClosed = null;\n }\n\n _createClass(PDFNetworkStreamRangeRequestReader, [{\n key: \"_close\",\n value: function _close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n }\n }, {\n key: \"_onDone\",\n value: function _onDone(data) {\n var chunk = data.chunk;\n\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._close();\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded\n });\n }\n }\n }, {\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!(this._queuedChunk !== null)) {\n _context2.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n this._queuedChunk = null;\n return _context2.abrupt(\"return\", {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context2.abrupt(\"return\", requestCapability.promise);\n\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return false;\n }\n }]);\n\n return PDFNetworkStreamRangeRequestReader;\n}();\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFetchStream = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(148));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(166);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: 'GET',\n headers: headers,\n signal: abortController && abortController.signal,\n mode: 'cors',\n credentials: withCredentials ? 'include' : 'same-origin',\n redirect: 'follow'\n };\n}\n\nvar PDFFetchStream =\n/*#__PURE__*/\nfunction () {\n function PDFFetchStream(source) {\n _classCallCheck(this, PDFFetchStream);\n\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFFetchStream, [{\n key: \"getFullReader\",\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n }, {\n key: \"getRangeReader\",\n value: function getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n var reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n }, {\n key: \"cancelAllRequests\",\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }, {\n key: \"_progressiveDataLength\",\n get: function get() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n }]);\n\n return PDFFetchStream;\n}();\n\nexports.PDFFetchStream = PDFFetchStream;\n\nvar PDFFetchStreamReader =\n/*#__PURE__*/\nfunction () {\n function PDFFetchStreamReader(stream) {\n var _this = this;\n\n _classCallCheck(this, PDFFetchStreamReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n var source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = new Headers();\n\n for (var property in this._stream.httpHeaders) {\n var value = this._stream.httpHeaders[property];\n\n if (typeof value === 'undefined') {\n continue;\n }\n\n this._headers.append(property, value);\n }\n\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n _this._reader = response.body.getReader();\n\n _this._headersCapability.resolve();\n\n var getResponseHeader = function getResponseHeader(name) {\n return response.headers.get(name);\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: _this._stream.isHttp,\n rangeChunkSize: _this._rangeChunkSize,\n disableRange: _this._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n _this._isRangeSupported = allowRangeRequests;\n _this._contentLength = suggestedLength || _this._contentLength;\n _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!_this._isStreamingSupported && _this._isRangeSupported) {\n _this.cancel(new _util.AbortException('Streaming is disabled.'));\n }\n })[\"catch\"](this._headersCapability.reject);\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamReader, [{\n key: \"read\",\n value: function () {\n var _read = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee() {\n var _ref, value, done, buffer;\n\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._headersCapability.promise;\n\n case 2:\n _context.next = 4;\n return this._reader.read();\n\n case 4:\n _ref = _context.sent;\n value = _ref.value;\n done = _ref.done;\n\n if (!done) {\n _context.next = 9;\n break;\n }\n\n return _context.abrupt(\"return\", {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n buffer = new Uint8Array(value).buffer;\n return _context.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _read.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }, {\n key: \"headersReady\",\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: \"filename\",\n get: function get() {\n return this._filename;\n }\n }, {\n key: \"contentLength\",\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: \"isRangeSupported\",\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return PDFFetchStreamReader;\n}();\n\nvar PDFFetchStreamRangeReader =\n/*#__PURE__*/\nfunction () {\n function PDFFetchStreamRangeReader(stream, begin, end) {\n var _this2 = this;\n\n _classCallCheck(this, PDFFetchStreamRangeReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n var source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.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\n for (var property in this._stream.httpHeaders) {\n var value = this._stream.httpHeaders[property];\n\n if (typeof value === 'undefined') {\n continue;\n }\n\n this._headers.append(property, value);\n }\n\n this._headers.append('Range', \"bytes=\".concat(begin, \"-\").concat(end - 1));\n\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n _this2._readCapability.resolve();\n\n _this2._reader = response.body.getReader();\n });\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamRangeReader, [{\n key: \"read\",\n value: function () {\n var _read2 = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2() {\n var _ref2, value, done, buffer;\n\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._readCapability.promise;\n\n case 2:\n _context2.next = 4;\n return this._reader.read();\n\n case 4:\n _ref2 = _context2.sent;\n value = _ref2.value;\n done = _ref2.done;\n\n if (!done) {\n _context2.next = 9;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n buffer = new Uint8Array(value).buffer;\n return _context2.abrupt(\"return\", {\n value: buffer,\n done: false\n });\n\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _read2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: \"cancel\",\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }, {\n key: \"isStreamingSupported\",\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return PDFFetchStreamRangeReader;\n}();\n\n/***/ })\n/******/ ]);\n});\n","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(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/web/pdf_viewer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/web/pdf_viewer\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"AnnotationLayerBuilder\", {\n enumerable: true,\n get: function get() {\n return _annotation_layer_builder.AnnotationLayerBuilder;\n }\n});\nObject.defineProperty(exports, \"DefaultAnnotationLayerFactory\", {\n enumerable: true,\n get: function get() {\n return _annotation_layer_builder.DefaultAnnotationLayerFactory;\n }\n});\nObject.defineProperty(exports, \"DefaultTextLayerFactory\", {\n enumerable: true,\n get: function get() {\n return _text_layer_builder.DefaultTextLayerFactory;\n }\n});\nObject.defineProperty(exports, \"TextLayerBuilder\", {\n enumerable: true,\n get: function get() {\n return _text_layer_builder.TextLayerBuilder;\n }\n});\nObject.defineProperty(exports, \"EventBus\", {\n enumerable: true,\n get: function get() {\n return _ui_utils.EventBus;\n }\n});\nObject.defineProperty(exports, \"NullL10n\", {\n enumerable: true,\n get: function get() {\n return _ui_utils.NullL10n;\n }\n});\nObject.defineProperty(exports, \"ProgressBar\", {\n enumerable: true,\n get: function get() {\n return _ui_utils.ProgressBar;\n }\n});\nObject.defineProperty(exports, \"PDFLinkService\", {\n enumerable: true,\n get: function get() {\n return _pdf_link_service.PDFLinkService;\n }\n});\nObject.defineProperty(exports, \"SimpleLinkService\", {\n enumerable: true,\n get: function get() {\n return _pdf_link_service.SimpleLinkService;\n }\n});\nObject.defineProperty(exports, \"DownloadManager\", {\n enumerable: true,\n get: function get() {\n return _download_manager.DownloadManager;\n }\n});\nObject.defineProperty(exports, \"GenericL10n\", {\n enumerable: true,\n get: function get() {\n return _genericl10n.GenericL10n;\n }\n});\nObject.defineProperty(exports, \"PDFFindController\", {\n enumerable: true,\n get: function get() {\n return _pdf_find_controller.PDFFindController;\n }\n});\nObject.defineProperty(exports, \"PDFHistory\", {\n enumerable: true,\n get: function get() {\n return _pdf_history.PDFHistory;\n }\n});\nObject.defineProperty(exports, \"PDFPageView\", {\n enumerable: true,\n get: function get() {\n return _pdf_page_view.PDFPageView;\n }\n});\nObject.defineProperty(exports, \"PDFSinglePageViewer\", {\n enumerable: true,\n get: function get() {\n return _pdf_single_page_viewer.PDFSinglePageViewer;\n }\n});\nObject.defineProperty(exports, \"PDFViewer\", {\n enumerable: true,\n get: function get() {\n return _pdf_viewer.PDFViewer;\n }\n});\n\nvar _annotation_layer_builder = __w_pdfjs_require__(1);\n\nvar _text_layer_builder = __w_pdfjs_require__(8);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_link_service = __w_pdfjs_require__(7);\n\nvar _download_manager = __w_pdfjs_require__(9);\n\nvar _genericl10n = __w_pdfjs_require__(10);\n\nvar _pdf_find_controller = __w_pdfjs_require__(12);\n\nvar _pdf_history = __w_pdfjs_require__(14);\n\nvar _pdf_page_view = __w_pdfjs_require__(15);\n\nvar _pdf_single_page_viewer = __w_pdfjs_require__(18);\n\nvar _pdf_viewer = __w_pdfjs_require__(20);\n\nvar pdfjsVersion = '2.2.228';\nvar pdfjsBuild = 'd7afb74a';\n(0, _ui_utils.getGlobalEventBus)(true);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_link_service = __w_pdfjs_require__(7);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar AnnotationLayerBuilder =\n/*#__PURE__*/\nfunction () {\n function AnnotationLayerBuilder(_ref) {\n var pageDiv = _ref.pageDiv,\n pdfPage = _ref.pdfPage,\n linkService = _ref.linkService,\n downloadManager = _ref.downloadManager,\n _ref$imageResourcesPa = _ref.imageResourcesPath,\n imageResourcesPath = _ref$imageResourcesPa === void 0 ? '' : _ref$imageResourcesPa,\n _ref$renderInteractiv = _ref.renderInteractiveForms,\n renderInteractiveForms = _ref$renderInteractiv === void 0 ? false : _ref$renderInteractiv,\n _ref$l10n = _ref.l10n,\n l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n;\n\n _classCallCheck(this, AnnotationLayerBuilder);\n\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderInteractiveForms = renderInteractiveForms;\n this.l10n = l10n;\n this.div = null;\n this._cancelled = false;\n }\n\n _createClass(AnnotationLayerBuilder, [{\n key: \"render\",\n value: function render(viewport) {\n var _this = this;\n\n var intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'display';\n this.pdfPage.getAnnotations({\n intent: intent\n }).then(function (annotations) {\n if (_this._cancelled) {\n return;\n }\n\n var parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: _this.div,\n annotations: annotations,\n page: _this.pdfPage,\n imageResourcesPath: _this.imageResourcesPath,\n renderInteractiveForms: _this.renderInteractiveForms,\n linkService: _this.linkService,\n downloadManager: _this.downloadManager\n };\n\n if (_this.div) {\n _pdfjsLib.AnnotationLayer.update(parameters);\n } else {\n if (annotations.length === 0) {\n return;\n }\n\n _this.div = document.createElement('div');\n _this.div.className = 'annotationLayer';\n\n _this.pageDiv.appendChild(_this.div);\n\n parameters.div = _this.div;\n\n _pdfjsLib.AnnotationLayer.render(parameters);\n\n _this.l10n.translate(_this.div);\n }\n });\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n this._cancelled = true;\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (!this.div) {\n return;\n }\n\n this.div.setAttribute('hidden', 'true');\n }\n }]);\n\n return AnnotationLayerBuilder;\n}();\n\nexports.AnnotationLayerBuilder = AnnotationLayerBuilder;\n\nvar DefaultAnnotationLayerFactory =\n/*#__PURE__*/\nfunction () {\n function DefaultAnnotationLayerFactory() {\n _classCallCheck(this, DefaultAnnotationLayerFactory);\n }\n\n _createClass(DefaultAnnotationLayerFactory, [{\n key: \"createAnnotationLayerBuilder\",\n value: function createAnnotationLayerBuilder(pageDiv, pdfPage) {\n var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n;\n return new AnnotationLayerBuilder({\n pageDiv: pageDiv,\n pdfPage: pdfPage,\n imageResourcesPath: imageResourcesPath,\n renderInteractiveForms: renderInteractiveForms,\n linkService: new _pdf_link_service.SimpleLinkService(),\n l10n: l10n\n });\n }\n }]);\n\n return DefaultAnnotationLayerFactory;\n}();\n\nexports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pdfjsLib;\n\nif (typeof window !== 'undefined' && window['pdfjs-dist/build/pdf']) {\n pdfjsLib = window['pdfjs-dist/build/pdf'];\n} else {\n pdfjsLib = require('../build/pdf.js');\n}\n\nmodule.exports = pdfjsLib;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.getGlobalEventBus = getGlobalEventBus;\nexports.getPDFFileNameFromURL = getPDFFileNameFromURL;\nexports.noContextMenuHandler = noContextMenuHandler;\nexports.parseQueryString = parseQueryString;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.getVisibleElements = getVisibleElements;\nexports.roundToDivide = roundToDivide;\nexports.getPageSizeInches = getPageSizeInches;\nexports.approximateFraction = approximateFraction;\nexports.getOutputScale = getOutputScale;\nexports.scrollIntoView = scrollIntoView;\nexports.watchScroll = watchScroll;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nexports.moveToEndOfArray = moveToEndOfArray;\nexports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(4));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar CSS_UNITS = 96.0 / 72.0;\nexports.CSS_UNITS = CSS_UNITS;\nvar DEFAULT_SCALE_VALUE = 'auto';\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nvar DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nvar MIN_SCALE = 0.10;\nexports.MIN_SCALE = MIN_SCALE;\nvar MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nvar UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nvar MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nvar SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nvar VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nvar PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nvar RendererType = {\n CANVAS: 'canvas',\n SVG: 'svg'\n};\nexports.RendererType = RendererType;\nvar TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2\n};\nexports.TextLayerMode = TextLayerMode;\nvar ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2\n};\nexports.ScrollMode = ScrollMode;\nvar SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\n\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, function (all, name) {\n return name in args ? args[name] : '{{' + name + '}}';\n });\n}\n\nvar NullL10n = {\n getLanguage: function () {\n var _getLanguage = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee() {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", 'en-us');\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function getLanguage() {\n return _getLanguage.apply(this, arguments);\n }\n\n return getLanguage;\n }(),\n getDirection: function () {\n var _getDirection = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2() {\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", 'ltr');\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function getDirection() {\n return _getDirection.apply(this, arguments);\n }\n\n return getDirection;\n }(),\n get: function () {\n var _get = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee3(property, args, fallback) {\n return _regenerator[\"default\"].wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", formatL10nValue(fallback, args));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function get(_x, _x2, _x3) {\n return _get.apply(this, arguments);\n }\n\n return get;\n }(),\n translate: function () {\n var _translate = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee4(element) {\n return _regenerator[\"default\"].wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n function translate(_x4) {\n return _translate.apply(this, arguments);\n }\n\n return translate;\n }()\n};\nexports.NullL10n = NullL10n;\n\nfunction getOutputScale(ctx) {\n var devicePixelRatio = window.devicePixelRatio || 1;\n var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n var pixelRatio = devicePixelRatio / backingStoreRatio;\n return {\n sx: pixelRatio,\n sy: pixelRatio,\n scaled: pixelRatio !== 1\n };\n}\n\nfunction scrollIntoView(element, spot) {\n var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var parent = element.offsetParent;\n\n if (!parent) {\n console.error('offsetParent is not set -- cannot scroll');\n return;\n }\n\n var offsetY = element.offsetTop + element.clientTop;\n var offsetX = element.offsetLeft + element.clientLeft;\n\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === 'hidden') {\n if (parent.dataset._scaleY) {\n offsetY /= parent.dataset._scaleY;\n offsetX /= parent.dataset._scaleX;\n }\n\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n\n if (!parent) {\n return;\n }\n }\n\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n\n parent.scrollTop = offsetY;\n}\n\nfunction watchScroll(viewAreaElement, callback) {\n var debounceScroll = function debounceScroll(evt) {\n if (rAF) {\n return;\n }\n\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n var currentX = viewAreaElement.scrollLeft;\n var lastX = state.lastX;\n\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n\n state.lastX = currentX;\n var currentY = viewAreaElement.scrollTop;\n var lastY = state.lastY;\n\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n\n state.lastY = currentY;\n callback(state);\n });\n };\n\n var state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n var rAF = null;\n viewAreaElement.addEventListener('scroll', debounceScroll, true);\n return state;\n}\n\nfunction parseQueryString(query) {\n var parts = query.split('&');\n var params = Object.create(null);\n\n for (var i = 0, ii = parts.length; i < ii; ++i) {\n var param = parts[i].split('=');\n var key = param[0].toLowerCase();\n var value = param.length > 1 ? param[1] : null;\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n\n return params;\n}\n\nfunction binarySearchFirstItem(items, condition) {\n var minIndex = 0;\n var maxIndex = items.length - 1;\n\n if (items.length === 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n var currentIndex = minIndex + maxIndex >> 1;\n var currentItem = items[currentIndex];\n\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n\n return minIndex;\n}\n\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n\n var xinv = 1 / x;\n var limit = 8;\n\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n var x_ = x > 1 ? xinv : x;\n var a = 0,\n b = 1,\n c = 1,\n d = 1;\n\n while (true) {\n var p = a + c,\n q = b + d;\n\n if (q > limit) {\n break;\n }\n\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n\n var result;\n\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n\n return result;\n}\n\nfunction roundToDivide(x, div) {\n var r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\nfunction getPageSizeInches(_ref) {\n var view = _ref.view,\n userUnit = _ref.userUnit,\n rotate = _ref.rotate;\n\n var _view = _slicedToArray(view, 4),\n x1 = _view[0],\n y1 = _view[1],\n x2 = _view[2],\n y2 = _view[3];\n\n var changeOrientation = rotate % 180 !== 0;\n var width = (x2 - x1) / 72 * userUnit;\n var height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\n\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n\n var elt = views[index].div;\n var pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n for (var i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n\n index = i;\n }\n\n return index;\n}\n\nfunction getVisibleElements(scrollEl, views) {\n var sortByVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var horizontal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n var left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n function isElementBottomAfterViewTop(view) {\n var element = view.div;\n var elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n\n function isElementRightAfterViewLeft(view) {\n var element = view.div;\n var elementRight = element.offsetLeft + element.clientLeft + element.clientWidth;\n return elementRight > left;\n }\n\n var visible = [],\n numViews = views.length;\n var firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);\n\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n\n var lastEdge = horizontal ? right : -1;\n\n for (var i = firstVisibleElementInd; i < numViews; i++) {\n var view = views[i],\n element = view.div;\n var currentWidth = element.offsetLeft + element.clientLeft;\n var currentHeight = element.offsetTop + element.clientTop;\n var viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n var viewRight = currentWidth + viewWidth;\n var viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n\n var hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n var hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n var percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view: view,\n percent: percent\n });\n }\n\n var first = visible[0],\n last = visible[visible.length - 1];\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n var pc = a.percent - b.percent;\n\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n\n return a.id - b.id;\n });\n }\n\n return {\n first: first,\n last: last,\n views: visible\n };\n}\n\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction isDataSchema(url) {\n var i = 0,\n ii = url.length;\n\n while (i < ii && url[i].trim() === '') {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === 'data:';\n}\n\nfunction getPDFFileNameFromURL(url) {\n var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'document.pdf';\n\n if (typeof url !== 'string') {\n return defaultFilename;\n }\n\n if (isDataSchema(url)) {\n console.warn('getPDFFileNameFromURL: ' + 'ignoring \"data:\" URL for performance reasons.');\n return defaultFilename;\n }\n\n var reURI = /^(?:(?:[^:]+:)?\\/\\/[^\\/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n var reFilename = /[^\\/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n var splitURI = reURI.exec(url);\n var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes('%')) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n var delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);\n var angle = Math.atan2(evt.deltaY, evt.deltaX);\n\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n\n var MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n var MOUSE_DOM_DELTA_LINE_MODE = 1;\n var MOUSE_PIXELS_PER_LINE = 30;\n var MOUSE_LINES_PER_PAGE = 30;\n\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\n\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\nvar WaitOnType = {\n EVENT: 'event',\n TIMEOUT: 'timeout'\n};\nexports.WaitOnType = WaitOnType;\n\nfunction waitOnEventOrTimeout(_ref2) {\n var target = _ref2.target,\n name = _ref2.name,\n _ref2$delay = _ref2.delay,\n delay = _ref2$delay === void 0 ? 0 : _ref2$delay;\n return new Promise(function (resolve, reject) {\n if (_typeof(target) !== 'object' || !(name && typeof name === 'string') || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error('waitOnEventOrTimeout - invalid parameters.');\n }\n\n function handler(type) {\n if (target instanceof EventBus) {\n target.off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n resolve(type);\n }\n\n var eventHandler = handler.bind(null, WaitOnType.EVENT);\n\n if (target instanceof EventBus) {\n target.on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n\n var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n var timeout = setTimeout(timeoutHandler, delay);\n });\n}\n\nvar animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\n\nvar EventBus =\n/*#__PURE__*/\nfunction () {\n function EventBus() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$dispatchToDOM = _ref3.dispatchToDOM,\n dispatchToDOM = _ref3$dispatchToDOM === void 0 ? false : _ref3$dispatchToDOM;\n\n _classCallCheck(this, EventBus);\n\n this._listeners = Object.create(null);\n this._dispatchToDOM = dispatchToDOM === true;\n }\n\n _createClass(EventBus, [{\n key: \"on\",\n value: function on(eventName, listener) {\n var eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n eventListeners = [];\n this._listeners[eventName] = eventListeners;\n }\n\n eventListeners.push(listener);\n }\n }, {\n key: \"off\",\n value: function off(eventName, listener) {\n var eventListeners = this._listeners[eventName];\n var i;\n\n if (!eventListeners || (i = eventListeners.indexOf(listener)) < 0) {\n return;\n }\n\n eventListeners.splice(i, 1);\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(eventName) {\n var eventListeners = this._listeners[eventName];\n\n if (!eventListeners || eventListeners.length === 0) {\n if (this._dispatchToDOM) {\n var _args5 = Array.prototype.slice.call(arguments, 1);\n\n this._dispatchDOMEvent(eventName, _args5);\n }\n\n return;\n }\n\n var args = Array.prototype.slice.call(arguments, 1);\n eventListeners.slice(0).forEach(function (listener) {\n listener.apply(null, args);\n });\n\n if (this._dispatchToDOM) {\n this._dispatchDOMEvent(eventName, args);\n }\n }\n }, {\n key: \"_dispatchDOMEvent\",\n value: function _dispatchDOMEvent(eventName) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var details = Object.create(null);\n\n if (args && args.length > 0) {\n var obj = args[0];\n\n for (var key in obj) {\n var value = obj[key];\n\n if (key === 'source') {\n if (value === window || value === document) {\n return;\n }\n\n continue;\n }\n\n details[key] = value;\n }\n }\n\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, true, true, details);\n document.dispatchEvent(event);\n }\n }]);\n\n return EventBus;\n}();\n\nexports.EventBus = EventBus;\nvar globalEventBus = null;\n\nfunction getGlobalEventBus() {\n var dispatchToDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!globalEventBus) {\n globalEventBus = new EventBus({\n dispatchToDOM: dispatchToDOM\n });\n }\n\n return globalEventBus;\n}\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nvar ProgressBar =\n/*#__PURE__*/\nfunction () {\n function ProgressBar(id) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n height = _ref4.height,\n width = _ref4.width,\n units = _ref4.units;\n\n _classCallCheck(this, ProgressBar);\n\n this.visible = true;\n this.div = document.querySelector(id + ' .progress');\n this.bar = this.div.parentNode;\n this.height = height || 100;\n this.width = width || 100;\n this.units = units || '%';\n this.div.style.height = this.height + this.units;\n this.percent = 0;\n }\n\n _createClass(ProgressBar, [{\n key: \"_updateBar\",\n value: function _updateBar() {\n if (this._indeterminate) {\n this.div.classList.add('indeterminate');\n this.div.style.width = this.width + this.units;\n return;\n }\n\n this.div.classList.remove('indeterminate');\n var progressSize = this.width * this._percent / 100;\n this.div.style.width = progressSize + this.units;\n }\n }, {\n key: \"setWidth\",\n value: function setWidth(viewer) {\n if (!viewer) {\n return;\n }\n\n var container = viewer.parentNode;\n var scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n\n if (scrollbarWidth > 0) {\n this.bar.setAttribute('style', 'width: calc(100% - ' + scrollbarWidth + 'px);');\n }\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n this.bar.classList.add('hidden');\n document.body.classList.remove('loadingInProgress');\n }\n }, {\n key: \"show\",\n value: function show() {\n if (this.visible) {\n return;\n }\n\n this.visible = true;\n document.body.classList.add('loadingInProgress');\n this.bar.classList.remove('hidden');\n }\n }, {\n key: \"percent\",\n get: function get() {\n return this._percent;\n },\n set: function set(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n\n this._updateBar();\n }\n }]);\n\n return ProgressBar;\n}();\n\nexports.ProgressBar = ProgressBar;\n\nfunction moveToEndOfArray(arr, condition) {\n var moved = [],\n len = arr.length;\n var write = 0;\n\n for (var read = 0; read < len; ++read) {\n if (condition(arr[read])) {\n moved.push(arr[read]);\n } else {\n arr[write] = arr[read];\n ++write;\n }\n }\n\n for (var _read = 0; write < len; ++_read, ++write) {\n arr[write] = moved[_read];\n }\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(5);\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined;\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 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap;\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\";\n\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 ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && _typeof(value) === \"object\" && 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 result.value = unwrapped;\n resolve(result);\n }, function (error) {\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 = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator;\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter : 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 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 return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n context.sent = context._sent = context.arg;\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 } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator[\"return\"]) {\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"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 context[delegate.resultName] = info.value;\n context.next = delegate.nextLoc;\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n return info;\n }\n\n context.delegate = null;\n return ContinueSentinel;\n }\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\";\n\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 = {\n tryLoc: locs[0]\n };\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 this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse();\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\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,\n 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 return next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\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 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 } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\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 complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || 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 finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n return exports;\n}(( false ? undefined : _typeof(module)) === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(6)(module)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = [];\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleLinkService = exports.PDFLinkService = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PDFLinkService =\n/*#__PURE__*/\nfunction () {\n function PDFLinkService() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n eventBus = _ref.eventBus,\n _ref$externalLinkTarg = _ref.externalLinkTarget,\n externalLinkTarget = _ref$externalLinkTarg === void 0 ? null : _ref$externalLinkTarg,\n _ref$externalLinkRel = _ref.externalLinkRel,\n externalLinkRel = _ref$externalLinkRel === void 0 ? null : _ref$externalLinkRel;\n\n _classCallCheck(this, PDFLinkService);\n\n this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n this._pagesRefCache = null;\n }\n\n _createClass(PDFLinkService, [{\n key: \"setDocument\",\n value: function setDocument(pdfDocument) {\n var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this._pagesRefCache = Object.create(null);\n }\n }, {\n key: \"setViewer\",\n value: function setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n }, {\n key: \"setHistory\",\n value: function setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n }, {\n key: \"navigateTo\",\n value: function navigateTo(dest) {\n var _this = this;\n\n var goToDestination = function goToDestination(_ref2) {\n var namedDest = _ref2.namedDest,\n explicitDest = _ref2.explicitDest;\n var destRef = explicitDest[0],\n pageNumber;\n\n if (destRef instanceof Object) {\n pageNumber = _this._cachedPageNumber(destRef);\n\n if (pageNumber === null) {\n _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {\n _this.cachePageRef(pageIndex + 1, destRef);\n\n goToDestination({\n namedDest: namedDest,\n explicitDest: explicitDest\n });\n })[\"catch\"](function () {\n console.error(\"PDFLinkService.navigateTo: \\\"\".concat(destRef, \"\\\" is not \") + \"a valid page reference, for dest=\\\"\".concat(dest, \"\\\".\"));\n });\n\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(\"PDFLinkService.navigateTo: \\\"\".concat(destRef, \"\\\" is not \") + \"a valid destination reference, for dest=\\\"\".concat(dest, \"\\\".\"));\n return;\n }\n\n if (!pageNumber || pageNumber < 1 || pageNumber > _this.pagesCount) {\n console.error(\"PDFLinkService.navigateTo: \\\"\".concat(pageNumber, \"\\\" is not \") + \"a valid page number, for dest=\\\"\".concat(dest, \"\\\".\"));\n return;\n }\n\n if (_this.pdfHistory) {\n _this.pdfHistory.pushCurrentPosition();\n\n _this.pdfHistory.push({\n namedDest: namedDest,\n explicitDest: explicitDest,\n pageNumber: pageNumber\n });\n }\n\n _this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber,\n destArray: explicitDest\n });\n };\n\n new Promise(function (resolve, reject) {\n if (typeof dest === 'string') {\n _this.pdfDocument.getDestination(dest).then(function (destArray) {\n resolve({\n namedDest: dest,\n explicitDest: destArray\n });\n });\n\n return;\n }\n\n resolve({\n namedDest: '',\n explicitDest: dest\n });\n }).then(function (data) {\n if (!Array.isArray(data.explicitDest)) {\n console.error(\"PDFLinkService.navigateTo: \\\"\".concat(data.explicitDest, \"\\\" is\") + \" not a valid destination array, for dest=\\\"\".concat(dest, \"\\\".\"));\n return;\n }\n\n goToDestination(data);\n });\n }\n }, {\n key: \"getDestinationHash\",\n value: function getDestinationHash(dest) {\n if (typeof dest === 'string') {\n return this.getAnchorUrl('#' + escape(dest));\n }\n\n if (Array.isArray(dest)) {\n var str = JSON.stringify(dest);\n return this.getAnchorUrl('#' + escape(str));\n }\n\n return this.getAnchorUrl('');\n }\n }, {\n key: \"getAnchorUrl\",\n value: function getAnchorUrl(anchor) {\n return (this.baseUrl || '') + anchor;\n }\n }, {\n key: \"setHash\",\n value: function setHash(hash) {\n var pageNumber, dest;\n\n if (hash.includes('=')) {\n var params = (0, _ui_utils.parseQueryString)(hash);\n\n if ('search' in params) {\n this.eventBus.dispatch('findfromurlhash', {\n source: this,\n query: params['search'].replace(/\"/g, ''),\n phraseSearch: params['phrase'] === 'true'\n });\n }\n\n if ('nameddest' in params) {\n this.navigateTo(params.nameddest);\n return;\n }\n\n if ('page' in params) {\n pageNumber = params.page | 0 || 1;\n }\n\n if ('zoom' in params) {\n var zoomArgs = params.zoom.split(',');\n var zoomArg = zoomArgs[0];\n var zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes('Fit')) {\n dest = [null, {\n name: 'XYZ'\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else {\n if (zoomArg === 'Fit' || zoomArg === 'FitB') {\n dest = [null, {\n name: zoomArg\n }];\n } else if (zoomArg === 'FitH' || zoomArg === 'FitBH' || zoomArg === 'FitV' || zoomArg === 'FitBV') {\n dest = [null, {\n name: zoomArg\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === 'FitR') {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, {\n name: zoomArg\n }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error(\"PDFLinkService.setHash: \\\"\".concat(zoomArg, \"\\\" is not \") + 'a valid zoom value.');\n }\n }\n }\n\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n\n if ('pagemode' in params) {\n this.eventBus.dispatch('pagemode', {\n source: this,\n mode: params.pagemode\n });\n }\n } else {\n dest = unescape(hash);\n\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch (ex) {}\n\n if (typeof dest === 'string' || isValidExplicitDestination(dest)) {\n this.navigateTo(dest);\n return;\n }\n\n console.error(\"PDFLinkService.setHash: \\\"\".concat(unescape(hash), \"\\\" is not \") + 'a valid destination.');\n }\n }\n }, {\n key: \"executeNamedAction\",\n value: function executeNamedAction(action) {\n switch (action) {\n case 'GoBack':\n if (this.pdfHistory) {\n this.pdfHistory.back();\n }\n\n break;\n\n case 'GoForward':\n if (this.pdfHistory) {\n this.pdfHistory.forward();\n }\n\n break;\n\n case 'NextPage':\n if (this.page < this.pagesCount) {\n this.page++;\n }\n\n break;\n\n case 'PrevPage':\n if (this.page > 1) {\n this.page--;\n }\n\n break;\n\n case 'LastPage':\n this.page = this.pagesCount;\n break;\n\n case 'FirstPage':\n this.page = 1;\n break;\n\n default:\n break;\n }\n\n this.eventBus.dispatch('namedaction', {\n source: this,\n action: action\n });\n }\n }, {\n key: \"cachePageRef\",\n value: function cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n\n var refStr = pageRef.num + ' ' + pageRef.gen + ' R';\n this._pagesRefCache[refStr] = pageNum;\n }\n }, {\n key: \"_cachedPageNumber\",\n value: function _cachedPageNumber(pageRef) {\n var refStr = pageRef.num + ' ' + pageRef.gen + ' R';\n return this._pagesRefCache && this._pagesRefCache[refStr] || null;\n }\n }, {\n key: \"isPageVisible\",\n value: function isPageVisible(pageNumber) {\n return this.pdfViewer.isPageVisible(pageNumber);\n }\n }, {\n key: \"pagesCount\",\n get: function get() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n }, {\n key: \"page\",\n get: function get() {\n return this.pdfViewer.currentPageNumber;\n },\n set: function set(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n }, {\n key: \"rotation\",\n get: function get() {\n return this.pdfViewer.pagesRotation;\n },\n set: function set(value) {\n this.pdfViewer.pagesRotation = value;\n }\n }]);\n\n return PDFLinkService;\n}();\n\nexports.PDFLinkService = PDFLinkService;\n\nfunction isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n\n var destLength = dest.length,\n allowNull = true;\n\n if (destLength < 2) {\n return false;\n }\n\n var page = dest[0];\n\n if (!(_typeof(page) === 'object' && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n\n var zoom = dest[1];\n\n if (!(_typeof(zoom) === 'object' && typeof zoom.name === 'string')) {\n return false;\n }\n\n switch (zoom.name) {\n case 'XYZ':\n if (destLength !== 5) {\n return false;\n }\n\n break;\n\n case 'Fit':\n case 'FitB':\n return destLength === 2;\n\n case 'FitH':\n case 'FitBH':\n case 'FitV':\n case 'FitBV':\n if (destLength !== 3) {\n return false;\n }\n\n break;\n\n case 'FitR':\n if (destLength !== 6) {\n return false;\n }\n\n allowNull = false;\n break;\n\n default:\n return false;\n }\n\n for (var i = 2; i < destLength; i++) {\n var param = dest[i];\n\n if (!(typeof param === 'number' || allowNull && param === null)) {\n return false;\n }\n }\n\n return true;\n}\n\nvar SimpleLinkService =\n/*#__PURE__*/\nfunction () {\n function SimpleLinkService() {\n _classCallCheck(this, SimpleLinkService);\n\n this.externalLinkTarget = null;\n this.externalLinkRel = null;\n }\n\n _createClass(SimpleLinkService, [{\n key: \"navigateTo\",\n value: function navigateTo(dest) {}\n }, {\n key: \"getDestinationHash\",\n value: function getDestinationHash(dest) {\n return '#';\n }\n }, {\n key: \"getAnchorUrl\",\n value: function getAnchorUrl(hash) {\n return '#';\n }\n }, {\n key: \"setHash\",\n value: function setHash(hash) {}\n }, {\n key: \"executeNamedAction\",\n value: function executeNamedAction(action) {}\n }, {\n key: \"cachePageRef\",\n value: function cachePageRef(pageNum, pageRef) {}\n }, {\n key: \"isPageVisible\",\n value: function isPageVisible(pageNumber) {\n return true;\n }\n }, {\n key: \"pagesCount\",\n get: function get() {\n return 0;\n }\n }, {\n key: \"page\",\n get: function get() {\n return 0;\n },\n set: function set(value) {}\n }, {\n key: \"rotation\",\n get: function get() {\n return 0;\n },\n set: function set(value) {}\n }]);\n\n return SimpleLinkService;\n}();\n\nexports.SimpleLinkService = SimpleLinkService;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar EXPAND_DIVS_TIMEOUT = 300;\n\nvar TextLayerBuilder =\n/*#__PURE__*/\nfunction () {\n function TextLayerBuilder(_ref) {\n var textLayerDiv = _ref.textLayerDiv,\n eventBus = _ref.eventBus,\n pageIndex = _ref.pageIndex,\n viewport = _ref.viewport,\n _ref$findController = _ref.findController,\n findController = _ref$findController === void 0 ? null : _ref$findController,\n _ref$enhanceTextSelec = _ref.enhanceTextSelection,\n enhanceTextSelection = _ref$enhanceTextSelec === void 0 ? false : _ref$enhanceTextSelec;\n\n _classCallCheck(this, TextLayerBuilder);\n\n this.textLayerDiv = textLayerDiv;\n this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();\n this.textContent = null;\n this.textContentItemsStr = [];\n this.textContentStream = null;\n this.renderingDone = false;\n this.pageIdx = pageIndex;\n this.pageNumber = this.pageIdx + 1;\n this.matches = [];\n this.viewport = viewport;\n this.textDivs = [];\n this.findController = findController;\n this.textLayerRenderTask = null;\n this.enhanceTextSelection = enhanceTextSelection;\n this._onUpdateTextLayerMatches = null;\n\n this._bindMouse();\n }\n\n _createClass(TextLayerBuilder, [{\n key: \"_finishRendering\",\n value: function _finishRendering() {\n this.renderingDone = true;\n\n if (!this.enhanceTextSelection) {\n var endOfContent = document.createElement('div');\n endOfContent.className = 'endOfContent';\n this.textLayerDiv.appendChild(endOfContent);\n }\n\n this.eventBus.dispatch('textlayerrendered', {\n source: this,\n pageNumber: this.pageNumber,\n numTextDivs: this.textDivs.length\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (!(this.textContent || this.textContentStream) || this.renderingDone) {\n return;\n }\n\n this.cancel();\n this.textDivs = [];\n var textLayerFrag = document.createDocumentFragment();\n this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({\n textContent: this.textContent,\n textContentStream: this.textContentStream,\n container: textLayerFrag,\n viewport: this.viewport,\n textDivs: this.textDivs,\n textContentItemsStr: this.textContentItemsStr,\n timeout: timeout,\n enhanceTextSelection: this.enhanceTextSelection\n });\n this.textLayerRenderTask.promise.then(function () {\n _this.textLayerDiv.appendChild(textLayerFrag);\n\n _this._finishRendering();\n\n _this._updateMatches();\n }, function (reason) {});\n\n if (!this._onUpdateTextLayerMatches) {\n this._onUpdateTextLayerMatches = function (evt) {\n if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) {\n _this._updateMatches();\n }\n };\n\n this.eventBus.on('updatetextlayermatches', this._onUpdateTextLayerMatches);\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.cancel();\n this.textLayerRenderTask = null;\n }\n\n if (this._onUpdateTextLayerMatches) {\n this.eventBus.off('updatetextlayermatches', this._onUpdateTextLayerMatches);\n this._onUpdateTextLayerMatches = null;\n }\n }\n }, {\n key: \"setTextContentStream\",\n value: function setTextContentStream(readableStream) {\n this.cancel();\n this.textContentStream = readableStream;\n }\n }, {\n key: \"setTextContent\",\n value: function setTextContent(textContent) {\n this.cancel();\n this.textContent = textContent;\n }\n }, {\n key: \"_convertMatches\",\n value: function _convertMatches(matches, matchesLength) {\n if (!matches) {\n return [];\n }\n\n var findController = this.findController,\n textContentItemsStr = this.textContentItemsStr;\n var i = 0,\n iIndex = 0;\n var end = textContentItemsStr.length - 1;\n var queryLen = findController.state.query.length;\n var result = [];\n\n for (var m = 0, mm = matches.length; m < mm; m++) {\n var matchIdx = matches[m];\n\n while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n if (i === textContentItemsStr.length) {\n console.error('Could not find a matching mapping');\n }\n\n var match = {\n begin: {\n divIdx: i,\n offset: matchIdx - iIndex\n }\n };\n\n if (matchesLength) {\n matchIdx += matchesLength[m];\n } else {\n matchIdx += queryLen;\n }\n\n while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n match.end = {\n divIdx: i,\n offset: matchIdx - iIndex\n };\n result.push(match);\n }\n\n return result;\n }\n }, {\n key: \"_renderMatches\",\n value: function _renderMatches(matches) {\n if (matches.length === 0) {\n return;\n }\n\n var findController = this.findController,\n pageIdx = this.pageIdx,\n textContentItemsStr = this.textContentItemsStr,\n textDivs = this.textDivs;\n var isSelectedPage = pageIdx === findController.selected.pageIdx;\n var selectedMatchIdx = findController.selected.matchIdx;\n var highlightAll = findController.state.highlightAll;\n var prevEnd = null;\n var infinity = {\n divIdx: -1,\n offset: undefined\n };\n\n function beginText(begin, className) {\n var divIdx = begin.divIdx;\n textDivs[divIdx].textContent = '';\n appendTextToDiv(divIdx, 0, begin.offset, className);\n }\n\n function appendTextToDiv(divIdx, fromOffset, toOffset, className) {\n var div = textDivs[divIdx];\n var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);\n var node = document.createTextNode(content);\n\n if (className) {\n var span = document.createElement('span');\n span.className = className;\n span.appendChild(node);\n div.appendChild(span);\n return;\n }\n\n div.appendChild(node);\n }\n\n var i0 = selectedMatchIdx,\n i1 = i0 + 1;\n\n if (highlightAll) {\n i0 = 0;\n i1 = matches.length;\n } else if (!isSelectedPage) {\n return;\n }\n\n for (var i = i0; i < i1; i++) {\n var match = matches[i];\n var begin = match.begin;\n var end = match.end;\n var isSelected = isSelectedPage && i === selectedMatchIdx;\n var highlightSuffix = isSelected ? ' selected' : '';\n\n if (isSelected) {\n findController.scrollMatchIntoView({\n element: textDivs[begin.divIdx],\n pageIndex: pageIdx,\n matchIndex: selectedMatchIdx\n });\n }\n\n if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {\n if (prevEnd !== null) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n\n beginText(begin);\n } else {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);\n }\n\n if (begin.divIdx === end.divIdx) {\n appendTextToDiv(begin.divIdx, begin.offset, end.offset, 'highlight' + highlightSuffix);\n } else {\n appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, 'highlight begin' + highlightSuffix);\n\n for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {\n textDivs[n0].className = 'highlight middle' + highlightSuffix;\n }\n\n beginText(end, 'highlight end' + highlightSuffix);\n }\n\n prevEnd = end;\n }\n\n if (prevEnd) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n }\n }, {\n key: \"_updateMatches\",\n value: function _updateMatches() {\n if (!this.renderingDone) {\n return;\n }\n\n var findController = this.findController,\n matches = this.matches,\n pageIdx = this.pageIdx,\n textContentItemsStr = this.textContentItemsStr,\n textDivs = this.textDivs;\n var clearedUntilDivIdx = -1;\n\n for (var i = 0, ii = matches.length; i < ii; i++) {\n var match = matches[i];\n var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);\n\n for (var n = begin, end = match.end.divIdx; n <= end; n++) {\n var div = textDivs[n];\n div.textContent = textContentItemsStr[n];\n div.className = '';\n }\n\n clearedUntilDivIdx = match.end.divIdx + 1;\n }\n\n if (!findController || !findController.highlightMatches) {\n return;\n }\n\n var pageMatches = findController.pageMatches[pageIdx] || null;\n var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;\n this.matches = this._convertMatches(pageMatches, pageMatchesLength);\n\n this._renderMatches(this.matches);\n }\n }, {\n key: \"_bindMouse\",\n value: function _bindMouse() {\n var _this2 = this;\n\n var div = this.textLayerDiv;\n var expandDivsTimer = null;\n div.addEventListener('mousedown', function (evt) {\n if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {\n _this2.textLayerRenderTask.expandTextDivs(true);\n\n if (expandDivsTimer) {\n clearTimeout(expandDivsTimer);\n expandDivsTimer = null;\n }\n\n return;\n }\n\n var end = div.querySelector('.endOfContent');\n\n if (!end) {\n return;\n }\n\n var adjustTop = evt.target !== div;\n adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue('-moz-user-select') !== 'none';\n\n if (adjustTop) {\n var divBounds = div.getBoundingClientRect();\n var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);\n end.style.top = (r * 100).toFixed(2) + '%';\n }\n\n end.classList.add('active');\n });\n div.addEventListener('mouseup', function () {\n if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {\n expandDivsTimer = setTimeout(function () {\n if (_this2.textLayerRenderTask) {\n _this2.textLayerRenderTask.expandTextDivs(false);\n }\n\n expandDivsTimer = null;\n }, EXPAND_DIVS_TIMEOUT);\n return;\n }\n\n var end = div.querySelector('.endOfContent');\n\n if (!end) {\n return;\n }\n\n end.style.top = '';\n end.classList.remove('active');\n });\n }\n }]);\n\n return TextLayerBuilder;\n}();\n\nexports.TextLayerBuilder = TextLayerBuilder;\n\nvar DefaultTextLayerFactory =\n/*#__PURE__*/\nfunction () {\n function DefaultTextLayerFactory() {\n _classCallCheck(this, DefaultTextLayerFactory);\n }\n\n _createClass(DefaultTextLayerFactory, [{\n key: \"createTextLayerBuilder\",\n value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {\n var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return new TextLayerBuilder({\n textLayerDiv: textLayerDiv,\n pageIndex: pageIndex,\n viewport: viewport,\n enhanceTextSelection: enhanceTextSelection\n });\n }\n }]);\n\n return DefaultTextLayerFactory;\n}();\n\nexports.DefaultTextLayerFactory = DefaultTextLayerFactory;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DownloadManager = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n;\nvar DISABLE_CREATE_OBJECT_URL = _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL || false;\n\nfunction _download(blobUrl, filename) {\n var a = document.createElement('a');\n\n if (!a.click) {\n throw new Error('DownloadManager: \"a.click()\" is not supported.');\n }\n\n a.href = blobUrl;\n a.target = '_parent';\n\n if ('download' in a) {\n a.download = filename;\n }\n\n (document.body || document.documentElement).appendChild(a);\n a.click();\n a.remove();\n}\n\nvar DownloadManager =\n/*#__PURE__*/\nfunction () {\n function DownloadManager(_ref) {\n var _ref$disableCreateObj = _ref.disableCreateObjectURL,\n disableCreateObjectURL = _ref$disableCreateObj === void 0 ? DISABLE_CREATE_OBJECT_URL : _ref$disableCreateObj;\n\n _classCallCheck(this, DownloadManager);\n\n this.disableCreateObjectURL = disableCreateObjectURL;\n }\n\n _createClass(DownloadManager, [{\n key: \"downloadUrl\",\n value: function downloadUrl(url, filename) {\n if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, 'http://example.com')) {\n return;\n }\n\n _download(url + '#pdfjs.action=download', filename);\n }\n }, {\n key: \"downloadData\",\n value: function downloadData(data, filename, contentType) {\n if (navigator.msSaveBlob) {\n navigator.msSaveBlob(new Blob([data], {\n type: contentType\n }), filename);\n return;\n }\n\n var blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, this.disableCreateObjectURL);\n\n _download(blobUrl, filename);\n }\n }, {\n key: \"download\",\n value: function download(blob, url, filename) {\n if (navigator.msSaveBlob) {\n if (!navigator.msSaveBlob(blob, filename)) {\n this.downloadUrl(url, filename);\n }\n\n return;\n }\n\n if (this.disableCreateObjectURL) {\n this.downloadUrl(url, filename);\n return;\n }\n\n var blobUrl = _pdfjsLib.URL.createObjectURL(blob);\n\n _download(blobUrl, filename);\n }\n }]);\n\n return DownloadManager;\n}();\n\nexports.DownloadManager = DownloadManager;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GenericL10n = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(4));\n\n__w_pdfjs_require__(11);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar webL10n = document.webL10n;\n\nvar GenericL10n =\n/*#__PURE__*/\nfunction () {\n function GenericL10n(lang) {\n _classCallCheck(this, GenericL10n);\n\n this._lang = lang;\n this._ready = new Promise(function (resolve, reject) {\n webL10n.setLanguage(lang, function () {\n resolve(webL10n);\n });\n });\n }\n\n _createClass(GenericL10n, [{\n key: \"getLanguage\",\n value: function () {\n var _getLanguage = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee() {\n var l10n;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._ready;\n\n case 2:\n l10n = _context.sent;\n return _context.abrupt(\"return\", l10n.getLanguage());\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getLanguage() {\n return _getLanguage.apply(this, arguments);\n }\n\n return getLanguage;\n }()\n }, {\n key: \"getDirection\",\n value: function () {\n var _getDirection = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2() {\n var l10n;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._ready;\n\n case 2:\n l10n = _context2.sent;\n return _context2.abrupt(\"return\", l10n.getDirection());\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getDirection() {\n return _getDirection.apply(this, arguments);\n }\n\n return getDirection;\n }()\n }, {\n key: \"get\",\n value: function () {\n var _get = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee3(property, args, fallback) {\n var l10n;\n return _regenerator[\"default\"].wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this._ready;\n\n case 2:\n l10n = _context3.sent;\n return _context3.abrupt(\"return\", l10n.get(property, args, fallback));\n\n case 4:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function get(_x, _x2, _x3) {\n return _get.apply(this, arguments);\n }\n\n return get;\n }()\n }, {\n key: \"translate\",\n value: function () {\n var _translate = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee4(element) {\n var l10n;\n return _regenerator[\"default\"].wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this._ready;\n\n case 2:\n l10n = _context4.sent;\n return _context4.abrupt(\"return\", l10n.translate(element));\n\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function translate(_x4) {\n return _translate.apply(this, arguments);\n }\n\n return translate;\n }()\n }]);\n\n return GenericL10n;\n}();\n\nexports.GenericL10n = GenericL10n;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\ndocument.webL10n = function (window, document, undefined) {\n var gL10nData = {};\n var gTextData = '';\n var gTextProp = 'textContent';\n var gLanguage = '';\n var gMacros = {};\n var gReadyState = 'loading';\n var gAsyncResourceLoading = true;\n\n function getL10nResourceLinks() {\n return document.querySelectorAll('link[type=\"application/l10n\"]');\n }\n\n function getL10nDictionary() {\n var script = document.querySelector('script[type=\"application/l10n\"]');\n return script ? JSON.parse(script.innerHTML) : null;\n }\n\n function getTranslatableChildren(element) {\n return element ? element.querySelectorAll('*[data-l10n-id]') : [];\n }\n\n function getL10nAttributes(element) {\n if (!element) return {};\n var l10nId = element.getAttribute('data-l10n-id');\n var l10nArgs = element.getAttribute('data-l10n-args');\n var args = {};\n\n if (l10nArgs) {\n try {\n args = JSON.parse(l10nArgs);\n } catch (e) {\n console.warn('could not parse arguments for #' + l10nId);\n }\n }\n\n return {\n id: l10nId,\n args: args\n };\n }\n\n function fireL10nReadyEvent(lang) {\n var evtObject = document.createEvent('Event');\n evtObject.initEvent('localized', true, false);\n evtObject.language = lang;\n document.dispatchEvent(evtObject);\n }\n\n function xhrLoadText(url, onSuccess, onFailure) {\n onSuccess = onSuccess || function _onSuccess(data) {};\n\n onFailure = onFailure || function _onFailure() {};\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, gAsyncResourceLoading);\n\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType('text/plain; charset=utf-8');\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n if (xhr.status == 200 || xhr.status === 0) {\n onSuccess(xhr.responseText);\n } else {\n onFailure();\n }\n }\n };\n\n xhr.onerror = onFailure;\n xhr.ontimeout = onFailure;\n\n try {\n xhr.send(null);\n } catch (e) {\n onFailure();\n }\n }\n\n function parseResource(href, lang, successCallback, failureCallback) {\n var baseURL = href.replace(/[^\\/]*$/, '') || './';\n\n function evalString(text) {\n if (text.lastIndexOf('\\\\') < 0) return text;\n return text.replace(/\\\\\\\\/g, '\\\\').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\t/g, '\\t').replace(/\\\\b/g, '\\b').replace(/\\\\f/g, '\\f').replace(/\\\\{/g, '{').replace(/\\\\}/g, '}').replace(/\\\\\"/g, '\"').replace(/\\\\'/g, \"'\");\n }\n\n function parseProperties(text, parsedPropertiesCallback) {\n var dictionary = {};\n var reBlank = /^\\s*|\\s*$/;\n var reComment = /^\\s*#|^\\s*$/;\n var reSection = /^\\s*\\[(.*)\\]\\s*$/;\n var reImport = /^\\s*@import\\s+url\\((.*)\\)\\s*$/i;\n var reSplit = /^([^=\\s]*)\\s*=\\s*(.+)$/;\n\n function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {\n var entries = rawText.replace(reBlank, '').split(/[\\r\\n]+/);\n var currentLang = '*';\n var genericLang = lang.split('-', 1)[0];\n var skipLang = false;\n var match = '';\n\n function nextEntry() {\n while (true) {\n if (!entries.length) {\n parsedRawLinesCallback();\n return;\n }\n\n var line = entries.shift();\n if (reComment.test(line)) continue;\n\n if (extendedSyntax) {\n match = reSection.exec(line);\n\n if (match) {\n currentLang = match[1].toLowerCase();\n skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang;\n continue;\n } else if (skipLang) {\n continue;\n }\n\n match = reImport.exec(line);\n\n if (match) {\n loadImport(baseURL + match[1], nextEntry);\n return;\n }\n }\n\n var tmp = line.match(reSplit);\n\n if (tmp && tmp.length == 3) {\n dictionary[tmp[1]] = evalString(tmp[2]);\n }\n }\n }\n\n nextEntry();\n }\n\n function loadImport(url, callback) {\n xhrLoadText(url, function (content) {\n parseRawLines(content, false, callback);\n }, function () {\n console.warn(url + ' not found.');\n callback();\n });\n }\n\n parseRawLines(text, true, function () {\n parsedPropertiesCallback(dictionary);\n });\n }\n\n xhrLoadText(href, function (response) {\n gTextData += response;\n parseProperties(response, function (data) {\n for (var key in data) {\n var id,\n prop,\n index = key.lastIndexOf('.');\n\n if (index > 0) {\n id = key.substring(0, index);\n prop = key.substring(index + 1);\n } else {\n id = key;\n prop = gTextProp;\n }\n\n if (!gL10nData[id]) {\n gL10nData[id] = {};\n }\n\n gL10nData[id][prop] = data[key];\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n }, failureCallback);\n }\n\n function loadLocale(lang, callback) {\n if (lang) {\n lang = lang.toLowerCase();\n }\n\n callback = callback || function _callback() {};\n\n clear();\n gLanguage = lang;\n var langLinks = getL10nResourceLinks();\n var langCount = langLinks.length;\n\n if (langCount === 0) {\n var dict = getL10nDictionary();\n\n if (dict && dict.locales && dict.default_locale) {\n console.log('using the embedded JSON directory, early way out');\n gL10nData = dict.locales[lang];\n\n if (!gL10nData) {\n var defaultLocale = dict.default_locale.toLowerCase();\n\n for (var anyCaseLang in dict.locales) {\n anyCaseLang = anyCaseLang.toLowerCase();\n\n if (anyCaseLang === lang) {\n gL10nData = dict.locales[lang];\n break;\n } else if (anyCaseLang === defaultLocale) {\n gL10nData = dict.locales[defaultLocale];\n }\n }\n }\n\n callback();\n } else {\n console.log('no resource to load, early way out');\n }\n\n fireL10nReadyEvent(lang);\n gReadyState = 'complete';\n return;\n }\n\n var onResourceLoaded = null;\n var gResourceCount = 0;\n\n onResourceLoaded = function onResourceLoaded() {\n gResourceCount++;\n\n if (gResourceCount >= langCount) {\n callback();\n fireL10nReadyEvent(lang);\n gReadyState = 'complete';\n }\n };\n\n function L10nResourceLink(link) {\n var href = link.href;\n\n this.load = function (lang, callback) {\n parseResource(href, lang, callback, function () {\n console.warn(href + ' not found.');\n console.warn('\"' + lang + '\" resource not found');\n gLanguage = '';\n callback();\n });\n };\n }\n\n for (var i = 0; i < langCount; i++) {\n var resource = new L10nResourceLink(langLinks[i]);\n resource.load(lang, onResourceLoaded);\n }\n }\n\n function clear() {\n gL10nData = {};\n gTextData = '';\n gLanguage = '';\n }\n\n function getPluralRules(lang) {\n var locales2rules = {\n 'af': 3,\n 'ak': 4,\n 'am': 4,\n 'ar': 1,\n 'asa': 3,\n 'az': 0,\n 'be': 11,\n 'bem': 3,\n 'bez': 3,\n 'bg': 3,\n 'bh': 4,\n 'bm': 0,\n 'bn': 3,\n 'bo': 0,\n 'br': 20,\n 'brx': 3,\n 'bs': 11,\n 'ca': 3,\n 'cgg': 3,\n 'chr': 3,\n 'cs': 12,\n 'cy': 17,\n 'da': 3,\n 'de': 3,\n 'dv': 3,\n 'dz': 0,\n 'ee': 3,\n 'el': 3,\n 'en': 3,\n 'eo': 3,\n 'es': 3,\n 'et': 3,\n 'eu': 3,\n 'fa': 0,\n 'ff': 5,\n 'fi': 3,\n 'fil': 4,\n 'fo': 3,\n 'fr': 5,\n 'fur': 3,\n 'fy': 3,\n 'ga': 8,\n 'gd': 24,\n 'gl': 3,\n 'gsw': 3,\n 'gu': 3,\n 'guw': 4,\n 'gv': 23,\n 'ha': 3,\n 'haw': 3,\n 'he': 2,\n 'hi': 4,\n 'hr': 11,\n 'hu': 0,\n 'id': 0,\n 'ig': 0,\n 'ii': 0,\n 'is': 3,\n 'it': 3,\n 'iu': 7,\n 'ja': 0,\n 'jmc': 3,\n 'jv': 0,\n 'ka': 0,\n 'kab': 5,\n 'kaj': 3,\n 'kcg': 3,\n 'kde': 0,\n 'kea': 0,\n 'kk': 3,\n 'kl': 3,\n 'km': 0,\n 'kn': 0,\n 'ko': 0,\n 'ksb': 3,\n 'ksh': 21,\n 'ku': 3,\n 'kw': 7,\n 'lag': 18,\n 'lb': 3,\n 'lg': 3,\n 'ln': 4,\n 'lo': 0,\n 'lt': 10,\n 'lv': 6,\n 'mas': 3,\n 'mg': 4,\n 'mk': 16,\n 'ml': 3,\n 'mn': 3,\n 'mo': 9,\n 'mr': 3,\n 'ms': 0,\n 'mt': 15,\n 'my': 0,\n 'nah': 3,\n 'naq': 7,\n 'nb': 3,\n 'nd': 3,\n 'ne': 3,\n 'nl': 3,\n 'nn': 3,\n 'no': 3,\n 'nr': 3,\n 'nso': 4,\n 'ny': 3,\n 'nyn': 3,\n 'om': 3,\n 'or': 3,\n 'pa': 3,\n 'pap': 3,\n 'pl': 13,\n 'ps': 3,\n 'pt': 3,\n 'rm': 3,\n 'ro': 9,\n 'rof': 3,\n 'ru': 11,\n 'rwk': 3,\n 'sah': 0,\n 'saq': 3,\n 'se': 7,\n 'seh': 3,\n 'ses': 0,\n 'sg': 0,\n 'sh': 11,\n 'shi': 19,\n 'sk': 12,\n 'sl': 14,\n 'sma': 7,\n 'smi': 7,\n 'smj': 7,\n 'smn': 7,\n 'sms': 7,\n 'sn': 3,\n 'so': 3,\n 'sq': 3,\n 'sr': 11,\n 'ss': 3,\n 'ssy': 3,\n 'st': 3,\n 'sv': 3,\n 'sw': 3,\n 'syr': 3,\n 'ta': 3,\n 'te': 3,\n 'teo': 3,\n 'th': 0,\n 'ti': 4,\n 'tig': 3,\n 'tk': 3,\n 'tl': 4,\n 'tn': 3,\n 'to': 0,\n 'tr': 0,\n 'ts': 3,\n 'tzm': 22,\n 'uk': 11,\n 'ur': 3,\n 've': 3,\n 'vi': 0,\n 'vun': 3,\n 'wa': 4,\n 'wae': 3,\n 'wo': 0,\n 'xh': 3,\n 'xog': 3,\n 'yo': 0,\n 'zh': 0,\n 'zu': 3\n };\n\n function isIn(n, list) {\n return list.indexOf(n) !== -1;\n }\n\n function isBetween(n, start, end) {\n return start <= n && n <= end;\n }\n\n var pluralRules = {\n '0': function _(n) {\n return 'other';\n },\n '1': function _(n) {\n if (isBetween(n % 100, 3, 10)) return 'few';\n if (n === 0) return 'zero';\n if (isBetween(n % 100, 11, 99)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '2': function _(n) {\n if (n !== 0 && n % 10 === 0) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '3': function _(n) {\n if (n == 1) return 'one';\n return 'other';\n },\n '4': function _(n) {\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '5': function _(n) {\n if (isBetween(n, 0, 2) && n != 2) return 'one';\n return 'other';\n },\n '6': function _(n) {\n if (n === 0) return 'zero';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '7': function _(n) {\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '8': function _(n) {\n if (isBetween(n, 3, 6)) return 'few';\n if (isBetween(n, 7, 10)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '9': function _(n) {\n if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '10': function _(n) {\n if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few';\n if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one';\n return 'other';\n },\n '11': function _(n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '12': function _(n) {\n if (isBetween(n, 2, 4)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '13': function _(n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '14': function _(n) {\n if (isBetween(n % 100, 3, 4)) return 'few';\n if (n % 100 == 2) return 'two';\n if (n % 100 == 1) return 'one';\n return 'other';\n },\n '15': function _(n) {\n if (n === 0 || isBetween(n % 100, 2, 10)) return 'few';\n if (isBetween(n % 100, 11, 19)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '16': function _(n) {\n if (n % 10 == 1 && n != 11) return 'one';\n return 'other';\n },\n '17': function _(n) {\n if (n == 3) return 'few';\n if (n === 0) return 'zero';\n if (n == 6) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '18': function _(n) {\n if (n === 0) return 'zero';\n if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one';\n return 'other';\n },\n '19': function _(n) {\n if (isBetween(n, 2, 10)) return 'few';\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '20': function _(n) {\n if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few';\n if (n % 1000000 === 0 && n !== 0) return 'many';\n if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two';\n if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one';\n return 'other';\n },\n '21': function _(n) {\n if (n === 0) return 'zero';\n if (n == 1) return 'one';\n return 'other';\n },\n '22': function _(n) {\n if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one';\n return 'other';\n },\n '23': function _(n) {\n if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one';\n return 'other';\n },\n '24': function _(n) {\n if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few';\n if (isIn(n, [2, 12])) return 'two';\n if (isIn(n, [1, 11])) return 'one';\n return 'other';\n }\n };\n var index = locales2rules[lang.replace(/-.*$/, '')];\n\n if (!(index in pluralRules)) {\n console.warn('plural form unknown for [' + lang + ']');\n return function () {\n return 'other';\n };\n }\n\n return pluralRules[index];\n }\n\n gMacros.plural = function (str, param, key, prop) {\n var n = parseFloat(param);\n if (isNaN(n)) return str;\n if (prop != gTextProp) return str;\n\n if (!gMacros._pluralRules) {\n gMacros._pluralRules = getPluralRules(gLanguage);\n }\n\n var index = '[' + gMacros._pluralRules(n) + ']';\n\n if (n === 0 && key + '[zero]' in gL10nData) {\n str = gL10nData[key + '[zero]'][prop];\n } else if (n == 1 && key + '[one]' in gL10nData) {\n str = gL10nData[key + '[one]'][prop];\n } else if (n == 2 && key + '[two]' in gL10nData) {\n str = gL10nData[key + '[two]'][prop];\n } else if (key + index in gL10nData) {\n str = gL10nData[key + index][prop];\n } else if (key + '[other]' in gL10nData) {\n str = gL10nData[key + '[other]'][prop];\n }\n\n return str;\n };\n\n function getL10nData(key, args, fallback) {\n var data = gL10nData[key];\n\n if (!data) {\n console.warn('#' + key + ' is undefined.');\n\n if (!fallback) {\n return null;\n }\n\n data = fallback;\n }\n\n var rv = {};\n\n for (var prop in data) {\n var str = data[prop];\n str = substIndexes(str, args, key, prop);\n str = substArguments(str, args, key);\n rv[prop] = str;\n }\n\n return rv;\n }\n\n function substIndexes(str, args, key, prop) {\n var reIndex = /\\{\\[\\s*([a-zA-Z]+)\\(([a-zA-Z]+)\\)\\s*\\]\\}/;\n var reMatch = reIndex.exec(str);\n if (!reMatch || !reMatch.length) return str;\n var macroName = reMatch[1];\n var paramName = reMatch[2];\n var param;\n\n if (args && paramName in args) {\n param = args[paramName];\n } else if (paramName in gL10nData) {\n param = gL10nData[paramName];\n }\n\n if (macroName in gMacros) {\n var macro = gMacros[macroName];\n str = macro(str, param, key, prop);\n }\n\n return str;\n }\n\n function substArguments(str, args, key) {\n var reArgs = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return str.replace(reArgs, function (matched_text, arg) {\n if (args && arg in args) {\n return args[arg];\n }\n\n if (arg in gL10nData) {\n return gL10nData[arg];\n }\n\n console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');\n return matched_text;\n });\n }\n\n function translateElement(element) {\n var l10n = getL10nAttributes(element);\n if (!l10n.id) return;\n var data = getL10nData(l10n.id, l10n.args);\n\n if (!data) {\n console.warn('#' + l10n.id + ' is undefined.');\n return;\n }\n\n if (data[gTextProp]) {\n if (getChildElementCount(element) === 0) {\n element[gTextProp] = data[gTextProp];\n } else {\n var children = element.childNodes;\n var found = false;\n\n for (var i = 0, l = children.length; i < l; i++) {\n if (children[i].nodeType === 3 && /\\S/.test(children[i].nodeValue)) {\n if (found) {\n children[i].nodeValue = '';\n } else {\n children[i].nodeValue = data[gTextProp];\n found = true;\n }\n }\n }\n\n if (!found) {\n var textNode = document.createTextNode(data[gTextProp]);\n element.insertBefore(textNode, element.firstChild);\n }\n }\n\n delete data[gTextProp];\n }\n\n for (var k in data) {\n element[k] = data[k];\n }\n }\n\n function getChildElementCount(element) {\n if (element.children) {\n return element.children.length;\n }\n\n if (typeof element.childElementCount !== 'undefined') {\n return element.childElementCount;\n }\n\n var count = 0;\n\n for (var i = 0; i < element.childNodes.length; i++) {\n count += element.nodeType === 1 ? 1 : 0;\n }\n\n return count;\n }\n\n function translateFragment(element) {\n element = element || document.documentElement;\n var children = getTranslatableChildren(element);\n var elementCount = children.length;\n\n for (var i = 0; i < elementCount; i++) {\n translateElement(children[i]);\n }\n\n translateElement(element);\n }\n\n return {\n get: function get(key, args, fallbackString) {\n var index = key.lastIndexOf('.');\n var prop = gTextProp;\n\n if (index > 0) {\n prop = key.substring(index + 1);\n key = key.substring(0, index);\n }\n\n var fallback;\n\n if (fallbackString) {\n fallback = {};\n fallback[prop] = fallbackString;\n }\n\n var data = getL10nData(key, args, fallback);\n\n if (data && prop in data) {\n return data[prop];\n }\n\n return '{{' + key + '}}';\n },\n getData: function getData() {\n return gL10nData;\n },\n getText: function getText() {\n return gTextData;\n },\n getLanguage: function getLanguage() {\n return gLanguage;\n },\n setLanguage: function setLanguage(lang, callback) {\n loadLocale(lang, function () {\n if (callback) callback();\n });\n },\n getDirection: function getDirection() {\n var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];\n var shortCode = gLanguage.split('-', 1)[0];\n return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr';\n },\n translate: translateFragment,\n getReadyState: function getReadyState() {\n return gReadyState;\n },\n ready: function ready(callback) {\n if (!callback) {\n return;\n } else if (gReadyState == 'complete' || gReadyState == 'interactive') {\n window.setTimeout(function () {\n callback();\n });\n } else if (document.addEventListener) {\n document.addEventListener('localized', function once() {\n document.removeEventListener('localized', once);\n callback();\n });\n }\n }\n };\n}(window, document);\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFindController = exports.FindState = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_find_utils = __w_pdfjs_require__(13);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar FindState = {\n FOUND: 0,\n NOT_FOUND: 1,\n WRAPPED: 2,\n PENDING: 3\n};\nexports.FindState = FindState;\nvar FIND_TIMEOUT = 250;\nvar MATCH_SCROLL_OFFSET_TOP = -50;\nvar MATCH_SCROLL_OFFSET_LEFT = -400;\nvar CHARACTERS_TO_NORMALIZE = {\n \"\\u2018\": '\\'',\n \"\\u2019\": '\\'',\n \"\\u201A\": '\\'',\n \"\\u201B\": '\\'',\n \"\\u201C\": '\"',\n \"\\u201D\": '\"',\n \"\\u201E\": '\"',\n \"\\u201F\": '\"',\n \"\\xBC\": '1/4',\n \"\\xBD\": '1/2',\n \"\\xBE\": '3/4'\n};\nvar normalizationRegex = null;\n\nfunction normalize(text) {\n if (!normalizationRegex) {\n var replace = Object.keys(CHARACTERS_TO_NORMALIZE).join('');\n normalizationRegex = new RegExp(\"[\".concat(replace, \"]\"), 'g');\n }\n\n return text.replace(normalizationRegex, function (ch) {\n return CHARACTERS_TO_NORMALIZE[ch];\n });\n}\n\nvar PDFFindController =\n/*#__PURE__*/\nfunction () {\n function PDFFindController(_ref) {\n var linkService = _ref.linkService,\n _ref$eventBus = _ref.eventBus,\n eventBus = _ref$eventBus === void 0 ? (0, _ui_utils.getGlobalEventBus)() : _ref$eventBus;\n\n _classCallCheck(this, PDFFindController);\n\n this._linkService = linkService;\n this._eventBus = eventBus;\n\n this._reset();\n\n eventBus.on('findbarclose', this._onFindBarClose.bind(this));\n }\n\n _createClass(PDFFindController, [{\n key: \"setDocument\",\n value: function setDocument(pdfDocument) {\n if (this._pdfDocument) {\n this._reset();\n }\n\n if (!pdfDocument) {\n return;\n }\n\n this._pdfDocument = pdfDocument;\n\n this._firstPageCapability.resolve();\n }\n }, {\n key: \"executeCommand\",\n value: function executeCommand(cmd, state) {\n var _this = this;\n\n if (!state) {\n return;\n }\n\n var pdfDocument = this._pdfDocument;\n\n if (this._state === null || this._shouldDirtyMatch(cmd, state)) {\n this._dirtyMatch = true;\n }\n\n this._state = state;\n\n if (cmd !== 'findhighlightallchange') {\n this._updateUIState(FindState.PENDING);\n }\n\n this._firstPageCapability.promise.then(function () {\n if (!_this._pdfDocument || pdfDocument && _this._pdfDocument !== pdfDocument) {\n return;\n }\n\n _this._extractText();\n\n var findbarClosed = !_this._highlightMatches;\n var pendingTimeout = !!_this._findTimeout;\n\n if (_this._findTimeout) {\n clearTimeout(_this._findTimeout);\n _this._findTimeout = null;\n }\n\n if (cmd === 'find') {\n _this._findTimeout = setTimeout(function () {\n _this._nextMatch();\n\n _this._findTimeout = null;\n }, FIND_TIMEOUT);\n } else if (_this._dirtyMatch) {\n _this._nextMatch();\n } else if (cmd === 'findagain') {\n _this._nextMatch();\n\n if (findbarClosed && _this._state.highlightAll) {\n _this._updateAllPages();\n }\n } else if (cmd === 'findhighlightallchange') {\n if (pendingTimeout) {\n _this._nextMatch();\n } else {\n _this._highlightMatches = true;\n }\n\n _this._updateAllPages();\n } else {\n _this._nextMatch();\n }\n });\n }\n }, {\n key: \"scrollMatchIntoView\",\n value: function scrollMatchIntoView(_ref2) {\n var _ref2$element = _ref2.element,\n element = _ref2$element === void 0 ? null : _ref2$element,\n _ref2$pageIndex = _ref2.pageIndex,\n pageIndex = _ref2$pageIndex === void 0 ? -1 : _ref2$pageIndex,\n _ref2$matchIndex = _ref2.matchIndex,\n matchIndex = _ref2$matchIndex === void 0 ? -1 : _ref2$matchIndex;\n\n if (!this._scrollMatches || !element) {\n return;\n } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n return;\n } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n return;\n }\n\n this._scrollMatches = false;\n var spot = {\n top: MATCH_SCROLL_OFFSET_TOP,\n left: MATCH_SCROLL_OFFSET_LEFT\n };\n (0, _ui_utils.scrollIntoView)(element, spot, true);\n }\n }, {\n key: \"_reset\",\n value: function _reset() {\n this._highlightMatches = false;\n this._scrollMatches = false;\n this._pdfDocument = null;\n this._pageMatches = [];\n this._pageMatchesLength = [];\n this._state = null;\n this._selected = {\n pageIdx: -1,\n matchIdx: -1\n };\n this._offset = {\n pageIdx: null,\n matchIdx: null,\n wrapped: false\n };\n this._extractTextPromises = [];\n this._pageContents = [];\n this._matchesCountTotal = 0;\n this._pagesToSearch = null;\n this._pendingFindMatches = Object.create(null);\n this._resumePageIdx = null;\n this._dirtyMatch = false;\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n }\n }, {\n key: \"_shouldDirtyMatch\",\n value: function _shouldDirtyMatch(cmd, state) {\n if (state.query !== this._state.query) {\n return true;\n }\n\n switch (cmd) {\n case 'findagain':\n var pageNumber = this._selected.pageIdx + 1;\n var linkService = this._linkService;\n\n if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) {\n return true;\n }\n\n return false;\n\n case 'findhighlightallchange':\n return false;\n }\n\n return true;\n }\n }, {\n key: \"_prepareMatches\",\n value: function _prepareMatches(matchesWithLength, matches, matchesLength) {\n function isSubTerm(matchesWithLength, currentIndex) {\n var currentElem = matchesWithLength[currentIndex];\n var nextElem = matchesWithLength[currentIndex + 1];\n\n if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) {\n currentElem.skipped = true;\n return true;\n }\n\n for (var i = currentIndex - 1; i >= 0; i--) {\n var prevElem = matchesWithLength[i];\n\n if (prevElem.skipped) {\n continue;\n }\n\n if (prevElem.match + prevElem.matchLength < currentElem.match) {\n break;\n }\n\n if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) {\n currentElem.skipped = true;\n return true;\n }\n }\n\n return false;\n }\n\n matchesWithLength.sort(function (a, b) {\n return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match;\n });\n\n for (var i = 0, len = matchesWithLength.length; i < len; i++) {\n if (isSubTerm(matchesWithLength, i)) {\n continue;\n }\n\n matches.push(matchesWithLength[i].match);\n matchesLength.push(matchesWithLength[i].matchLength);\n }\n }\n }, {\n key: \"_isEntireWord\",\n value: function _isEntireWord(content, startIdx, length) {\n if (startIdx > 0) {\n var first = content.charCodeAt(startIdx);\n var limit = content.charCodeAt(startIdx - 1);\n\n if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n var endIdx = startIdx + length - 1;\n\n if (endIdx < content.length - 1) {\n var last = content.charCodeAt(endIdx);\n\n var _limit = content.charCodeAt(endIdx + 1);\n\n if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(_limit)) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"_calculatePhraseMatch\",\n value: function _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) {\n var matches = [];\n var queryLen = query.length;\n var matchIdx = -queryLen;\n\n while (true) {\n matchIdx = pageContent.indexOf(query, matchIdx + queryLen);\n\n if (matchIdx === -1) {\n break;\n }\n\n if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) {\n continue;\n }\n\n matches.push(matchIdx);\n }\n\n this._pageMatches[pageIndex] = matches;\n }\n }, {\n key: \"_calculateWordMatch\",\n value: function _calculateWordMatch(query, pageIndex, pageContent, entireWord) {\n var matchesWithLength = [];\n var queryArray = query.match(/\\S+/g);\n\n for (var i = 0, len = queryArray.length; i < len; i++) {\n var subquery = queryArray[i];\n var subqueryLen = subquery.length;\n var matchIdx = -subqueryLen;\n\n while (true) {\n matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen);\n\n if (matchIdx === -1) {\n break;\n }\n\n if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) {\n continue;\n }\n\n matchesWithLength.push({\n match: matchIdx,\n matchLength: subqueryLen,\n skipped: false\n });\n }\n }\n\n this._pageMatchesLength[pageIndex] = [];\n this._pageMatches[pageIndex] = [];\n\n this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]);\n }\n }, {\n key: \"_calculateMatch\",\n value: function _calculateMatch(pageIndex) {\n var pageContent = this._pageContents[pageIndex];\n var query = this._query;\n var _this$_state = this._state,\n caseSensitive = _this$_state.caseSensitive,\n entireWord = _this$_state.entireWord,\n phraseSearch = _this$_state.phraseSearch;\n\n if (query.length === 0) {\n return;\n }\n\n if (!caseSensitive) {\n pageContent = pageContent.toLowerCase();\n query = query.toLowerCase();\n }\n\n if (phraseSearch) {\n this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord);\n } else {\n this._calculateWordMatch(query, pageIndex, pageContent, entireWord);\n }\n\n if (this._state.highlightAll) {\n this._updatePage(pageIndex);\n }\n\n if (this._resumePageIdx === pageIndex) {\n this._resumePageIdx = null;\n\n this._nextPageMatch();\n }\n\n var pageMatchesCount = this._pageMatches[pageIndex].length;\n\n if (pageMatchesCount > 0) {\n this._matchesCountTotal += pageMatchesCount;\n\n this._updateUIResultsCount();\n }\n }\n }, {\n key: \"_extractText\",\n value: function _extractText() {\n var _this2 = this;\n\n if (this._extractTextPromises.length > 0) {\n return;\n }\n\n var promise = Promise.resolve();\n\n var _loop = function _loop(i, ii) {\n var extractTextCapability = (0, _pdfjsLib.createPromiseCapability)();\n _this2._extractTextPromises[i] = extractTextCapability.promise;\n promise = promise.then(function () {\n return _this2._pdfDocument.getPage(i + 1).then(function (pdfPage) {\n return pdfPage.getTextContent({\n normalizeWhitespace: true\n });\n }).then(function (textContent) {\n var textItems = textContent.items;\n var strBuf = [];\n\n for (var j = 0, jj = textItems.length; j < jj; j++) {\n strBuf.push(textItems[j].str);\n }\n\n _this2._pageContents[i] = normalize(strBuf.join(''));\n extractTextCapability.resolve(i);\n }, function (reason) {\n console.error(\"Unable to get text content for page \".concat(i + 1), reason);\n _this2._pageContents[i] = '';\n extractTextCapability.resolve(i);\n });\n });\n };\n\n for (var i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n _loop(i, ii);\n }\n }\n }, {\n key: \"_updatePage\",\n value: function _updatePage(index) {\n if (this._scrollMatches && this._selected.pageIdx === index) {\n this._linkService.page = index + 1;\n }\n\n this._eventBus.dispatch('updatetextlayermatches', {\n source: this,\n pageIndex: index\n });\n }\n }, {\n key: \"_updateAllPages\",\n value: function _updateAllPages() {\n this._eventBus.dispatch('updatetextlayermatches', {\n source: this,\n pageIndex: -1\n });\n }\n }, {\n key: \"_nextMatch\",\n value: function _nextMatch() {\n var _this3 = this;\n\n var previous = this._state.findPrevious;\n var currentPageIndex = this._linkService.page - 1;\n var numPages = this._linkService.pagesCount;\n this._highlightMatches = true;\n\n if (this._dirtyMatch) {\n this._dirtyMatch = false;\n this._selected.pageIdx = this._selected.matchIdx = -1;\n this._offset.pageIdx = currentPageIndex;\n this._offset.matchIdx = null;\n this._offset.wrapped = false;\n this._resumePageIdx = null;\n this._pageMatches.length = 0;\n this._pageMatchesLength.length = 0;\n this._matchesCountTotal = 0;\n\n this._updateAllPages();\n\n for (var i = 0; i < numPages; i++) {\n if (this._pendingFindMatches[i] === true) {\n continue;\n }\n\n this._pendingFindMatches[i] = true;\n\n this._extractTextPromises[i].then(function (pageIdx) {\n delete _this3._pendingFindMatches[pageIdx];\n\n _this3._calculateMatch(pageIdx);\n });\n }\n }\n\n if (this._query === '') {\n this._updateUIState(FindState.FOUND);\n\n return;\n }\n\n if (this._resumePageIdx) {\n return;\n }\n\n var offset = this._offset;\n this._pagesToSearch = numPages;\n\n if (offset.matchIdx !== null) {\n var numPageMatches = this._pageMatches[offset.pageIdx].length;\n\n if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {\n offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n\n this._updateMatch(true);\n\n return;\n }\n\n this._advanceOffsetPage(previous);\n }\n\n this._nextPageMatch();\n }\n }, {\n key: \"_matchesReady\",\n value: function _matchesReady(matches) {\n var offset = this._offset;\n var numMatches = matches.length;\n var previous = this._state.findPrevious;\n\n if (numMatches) {\n offset.matchIdx = previous ? numMatches - 1 : 0;\n\n this._updateMatch(true);\n\n return true;\n }\n\n this._advanceOffsetPage(previous);\n\n if (offset.wrapped) {\n offset.matchIdx = null;\n\n if (this._pagesToSearch < 0) {\n this._updateMatch(false);\n\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"_nextPageMatch\",\n value: function _nextPageMatch() {\n if (this._resumePageIdx !== null) {\n console.error('There can only be one pending page.');\n }\n\n var matches = null;\n\n do {\n var pageIdx = this._offset.pageIdx;\n matches = this._pageMatches[pageIdx];\n\n if (!matches) {\n this._resumePageIdx = pageIdx;\n break;\n }\n } while (!this._matchesReady(matches));\n }\n }, {\n key: \"_advanceOffsetPage\",\n value: function _advanceOffsetPage(previous) {\n var offset = this._offset;\n var numPages = this._linkService.pagesCount;\n offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n offset.matchIdx = null;\n this._pagesToSearch--;\n\n if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n offset.pageIdx = previous ? numPages - 1 : 0;\n offset.wrapped = true;\n }\n }\n }, {\n key: \"_updateMatch\",\n value: function _updateMatch() {\n var found = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var state = FindState.NOT_FOUND;\n var wrapped = this._offset.wrapped;\n this._offset.wrapped = false;\n\n if (found) {\n var previousPage = this._selected.pageIdx;\n this._selected.pageIdx = this._offset.pageIdx;\n this._selected.matchIdx = this._offset.matchIdx;\n state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n\n if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n this._updatePage(previousPage);\n }\n }\n\n this._updateUIState(state, this._state.findPrevious);\n\n if (this._selected.pageIdx !== -1) {\n this._scrollMatches = true;\n\n this._updatePage(this._selected.pageIdx);\n }\n }\n }, {\n key: \"_onFindBarClose\",\n value: function _onFindBarClose(evt) {\n var _this4 = this;\n\n var pdfDocument = this._pdfDocument;\n\n this._firstPageCapability.promise.then(function () {\n if (!_this4._pdfDocument || pdfDocument && _this4._pdfDocument !== pdfDocument) {\n return;\n }\n\n if (_this4._findTimeout) {\n clearTimeout(_this4._findTimeout);\n _this4._findTimeout = null;\n }\n\n if (_this4._resumePageIdx) {\n _this4._resumePageIdx = null;\n _this4._dirtyMatch = true;\n }\n\n _this4._updateUIState(FindState.FOUND);\n\n _this4._highlightMatches = false;\n\n _this4._updateAllPages();\n });\n }\n }, {\n key: \"_requestMatchesCount\",\n value: function _requestMatchesCount() {\n var _this$_selected = this._selected,\n pageIdx = _this$_selected.pageIdx,\n matchIdx = _this$_selected.matchIdx;\n var current = 0,\n total = this._matchesCountTotal;\n\n if (matchIdx !== -1) {\n for (var i = 0; i < pageIdx; i++) {\n current += this._pageMatches[i] && this._pageMatches[i].length || 0;\n }\n\n current += matchIdx + 1;\n }\n\n if (current < 1 || current > total) {\n current = total = 0;\n }\n\n return {\n current: current,\n total: total\n };\n }\n }, {\n key: \"_updateUIResultsCount\",\n value: function _updateUIResultsCount() {\n this._eventBus.dispatch('updatefindmatchescount', {\n source: this,\n matchesCount: this._requestMatchesCount()\n });\n }\n }, {\n key: \"_updateUIState\",\n value: function _updateUIState(state, previous) {\n this._eventBus.dispatch('updatefindcontrolstate', {\n source: this,\n state: state,\n previous: previous,\n matchesCount: this._requestMatchesCount()\n });\n }\n }, {\n key: \"highlightMatches\",\n get: function get() {\n return this._highlightMatches;\n }\n }, {\n key: \"pageMatches\",\n get: function get() {\n return this._pageMatches;\n }\n }, {\n key: \"pageMatchesLength\",\n get: function get() {\n return this._pageMatchesLength;\n }\n }, {\n key: \"selected\",\n get: function get() {\n return this._selected;\n }\n }, {\n key: \"state\",\n get: function get() {\n return this._state;\n }\n }, {\n key: \"_query\",\n get: function get() {\n if (this._state.query !== this._rawQuery) {\n this._rawQuery = this._state.query;\n this._normalizedQuery = normalize(this._state.query);\n }\n\n return this._normalizedQuery;\n }\n }]);\n\n return PDFFindController;\n}();\n\nexports.PDFFindController = PDFFindController;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCharacterType = getCharacterType;\nexports.CharacterType = void 0;\nvar CharacterType = {\n SPACE: 0,\n ALPHA_LETTER: 1,\n PUNCT: 2,\n HAN_LETTER: 3,\n KATAKANA_LETTER: 4,\n HIRAGANA_LETTER: 5,\n HALFWIDTH_KATAKANA_LETTER: 6,\n THAI_LETTER: 7\n};\nexports.CharacterType = CharacterType;\n\nfunction isAlphabeticalScript(charCode) {\n return charCode < 0x2E80;\n}\n\nfunction isAscii(charCode) {\n return (charCode & 0xFF80) === 0;\n}\n\nfunction isAsciiAlpha(charCode) {\n return charCode >= 0x61 && charCode <= 0x7A || charCode >= 0x41 && charCode <= 0x5A;\n}\n\nfunction isAsciiDigit(charCode) {\n return charCode >= 0x30 && charCode <= 0x39;\n}\n\nfunction isAsciiSpace(charCode) {\n return charCode === 0x20 || charCode === 0x09 || charCode === 0x0D || charCode === 0x0A;\n}\n\nfunction isHan(charCode) {\n return charCode >= 0x3400 && charCode <= 0x9FFF || charCode >= 0xF900 && charCode <= 0xFAFF;\n}\n\nfunction isKatakana(charCode) {\n return charCode >= 0x30A0 && charCode <= 0x30FF;\n}\n\nfunction isHiragana(charCode) {\n return charCode >= 0x3040 && charCode <= 0x309F;\n}\n\nfunction isHalfwidthKatakana(charCode) {\n return charCode >= 0xFF60 && charCode <= 0xFF9F;\n}\n\nfunction isThai(charCode) {\n return (charCode & 0xFF80) === 0x0E00;\n}\n\nfunction getCharacterType(charCode) {\n if (isAlphabeticalScript(charCode)) {\n if (isAscii(charCode)) {\n if (isAsciiSpace(charCode)) {\n return CharacterType.SPACE;\n } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5F) {\n return CharacterType.ALPHA_LETTER;\n }\n\n return CharacterType.PUNCT;\n } else if (isThai(charCode)) {\n return CharacterType.THAI_LETTER;\n } else if (charCode === 0xA0) {\n return CharacterType.SPACE;\n }\n\n return CharacterType.ALPHA_LETTER;\n }\n\n if (isHan(charCode)) {\n return CharacterType.HAN_LETTER;\n } else if (isKatakana(charCode)) {\n return CharacterType.KATAKANA_LETTER;\n } else if (isHiragana(charCode)) {\n return CharacterType.HIRAGANA_LETTER;\n } else if (isHalfwidthKatakana(charCode)) {\n return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n }\n\n return CharacterType.ALPHA_LETTER;\n}\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isDestHashesEqual = isDestHashesEqual;\nexports.isDestArraysEqual = isDestArraysEqual;\nexports.PDFHistory = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar HASH_CHANGE_TIMEOUT = 1000;\nvar POSITION_UPDATED_THRESHOLD = 50;\nvar UPDATE_VIEWAREA_TIMEOUT = 1000;\n\nfunction getCurrentHash() {\n return document.location.hash;\n}\n\nfunction parseCurrentHash(linkService) {\n var hash = unescape(getCurrentHash()).substring(1);\n var params = (0, _ui_utils.parseQueryString)(hash);\n var page = params.page | 0;\n\n if (!(Number.isInteger(page) && page > 0 && page <= linkService.pagesCount)) {\n page = null;\n }\n\n return {\n hash: hash,\n page: page,\n rotation: linkService.rotation\n };\n}\n\nvar PDFHistory =\n/*#__PURE__*/\nfunction () {\n function PDFHistory(_ref) {\n var _this = this;\n\n var linkService = _ref.linkService,\n eventBus = _ref.eventBus;\n\n _classCallCheck(this, PDFHistory);\n\n this.linkService = linkService;\n this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();\n this.initialized = false;\n this.initialBookmark = null;\n this.initialRotation = null;\n this._boundEvents = Object.create(null);\n this._isViewerInPresentationMode = false;\n this._isPagesLoaded = false;\n this.eventBus.on('presentationmodechanged', function (evt) {\n _this._isViewerInPresentationMode = evt.active || evt.switchInProgress;\n });\n this.eventBus.on('pagesloaded', function (evt) {\n _this._isPagesLoaded = !!evt.pagesCount;\n });\n }\n\n _createClass(PDFHistory, [{\n key: \"initialize\",\n value: function initialize(_ref2) {\n var fingerprint = _ref2.fingerprint,\n _ref2$resetHistory = _ref2.resetHistory,\n resetHistory = _ref2$resetHistory === void 0 ? false : _ref2$resetHistory,\n _ref2$updateUrl = _ref2.updateUrl,\n updateUrl = _ref2$updateUrl === void 0 ? false : _ref2$updateUrl;\n\n if (!fingerprint || typeof fingerprint !== 'string') {\n console.error('PDFHistory.initialize: The \"fingerprint\" must be a non-empty string.');\n return;\n }\n\n var reInitialized = this.initialized && this.fingerprint !== fingerprint;\n this.fingerprint = fingerprint;\n this._updateUrl = updateUrl === true;\n\n if (!this.initialized) {\n this._bindEvents();\n }\n\n var state = window.history.state;\n this.initialized = true;\n this.initialBookmark = null;\n this.initialRotation = null;\n this._popStateInProgress = false;\n this._blockHashChange = 0;\n this._currentHash = getCurrentHash();\n this._numPositionUpdates = 0;\n this._uid = this._maxUid = 0;\n this._destination = null;\n this._position = null;\n\n if (!this._isValidState(state, true) || resetHistory) {\n var _parseCurrentHash = parseCurrentHash(this.linkService),\n hash = _parseCurrentHash.hash,\n page = _parseCurrentHash.page,\n rotation = _parseCurrentHash.rotation;\n\n if (!hash || reInitialized || resetHistory) {\n this._pushOrReplaceState(null, true);\n\n return;\n }\n\n this._pushOrReplaceState({\n hash: hash,\n page: page,\n rotation: rotation\n }, true);\n\n return;\n }\n\n var destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (this._uid > this._maxUid) {\n this._maxUid = this._uid;\n }\n\n if (destination.rotation !== undefined) {\n this.initialRotation = destination.rotation;\n }\n\n if (destination.dest) {\n this.initialBookmark = JSON.stringify(destination.dest);\n this._destination.page = null;\n } else if (destination.hash) {\n this.initialBookmark = destination.hash;\n } else if (destination.page) {\n this.initialBookmark = \"page=\".concat(destination.page);\n }\n }\n }, {\n key: \"push\",\n value: function push(_ref3) {\n var _this2 = this;\n\n var _ref3$namedDest = _ref3.namedDest,\n namedDest = _ref3$namedDest === void 0 ? null : _ref3$namedDest,\n explicitDest = _ref3.explicitDest,\n pageNumber = _ref3.pageNumber;\n\n if (!this.initialized) {\n return;\n }\n\n if (namedDest && typeof namedDest !== 'string') {\n console.error('PDFHistory.push: ' + \"\\\"\".concat(namedDest, \"\\\" is not a valid namedDest parameter.\"));\n return;\n } else if (!Array.isArray(explicitDest)) {\n console.error('PDFHistory.push: ' + \"\\\"\".concat(explicitDest, \"\\\" is not a valid explicitDest parameter.\"));\n return;\n } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) {\n if (pageNumber !== null || this._destination) {\n console.error('PDFHistory.push: ' + \"\\\"\".concat(pageNumber, \"\\\" is not a valid pageNumber parameter.\"));\n return;\n }\n }\n\n var hash = namedDest || JSON.stringify(explicitDest);\n\n if (!hash) {\n return;\n }\n\n var forceReplace = false;\n\n if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {\n if (this._destination.page) {\n return;\n }\n\n forceReplace = true;\n }\n\n if (this._popStateInProgress && !forceReplace) {\n return;\n }\n\n this._pushOrReplaceState({\n dest: explicitDest,\n hash: hash,\n page: pageNumber,\n rotation: this.linkService.rotation\n }, forceReplace);\n\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(function () {\n _this2._popStateInProgress = false;\n });\n }\n }\n }, {\n key: \"pushCurrentPosition\",\n value: function pushCurrentPosition() {\n if (!this.initialized || this._popStateInProgress) {\n return;\n }\n\n this._tryPushCurrentPosition();\n }\n }, {\n key: \"back\",\n value: function back() {\n if (!this.initialized || this._popStateInProgress) {\n return;\n }\n\n var state = window.history.state;\n\n if (this._isValidState(state) && state.uid > 0) {\n window.history.back();\n }\n }\n }, {\n key: \"forward\",\n value: function forward() {\n if (!this.initialized || this._popStateInProgress) {\n return;\n }\n\n var state = window.history.state;\n\n if (this._isValidState(state) && state.uid < this._maxUid) {\n window.history.forward();\n }\n }\n }, {\n key: \"_pushOrReplaceState\",\n value: function _pushOrReplaceState(destination) {\n var forceReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var shouldReplace = forceReplace || !this._destination;\n var newState = {\n fingerprint: this.fingerprint,\n uid: shouldReplace ? this._uid : this._uid + 1,\n destination: destination\n };\n\n this._updateInternalState(destination, newState.uid);\n\n var newUrl;\n\n if (this._updateUrl && destination && destination.hash) {\n var baseUrl = document.location.href.split('#')[0];\n\n if (!baseUrl.startsWith('file://')) {\n newUrl = \"\".concat(baseUrl, \"#\").concat(destination.hash);\n }\n }\n\n if (shouldReplace) {\n if (newUrl) {\n window.history.replaceState(newState, '', newUrl);\n } else {\n window.history.replaceState(newState, '');\n }\n } else {\n this._maxUid = this._uid;\n\n if (newUrl) {\n window.history.pushState(newState, '', newUrl);\n } else {\n window.history.pushState(newState, '');\n }\n }\n }\n }, {\n key: \"_tryPushCurrentPosition\",\n value: function _tryPushCurrentPosition() {\n var temporary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this._position) {\n return;\n }\n\n var position = this._position;\n\n if (temporary) {\n position = Object.assign(Object.create(null), this._position);\n position.temporary = true;\n }\n\n if (!this._destination) {\n this._pushOrReplaceState(position);\n\n return;\n }\n\n if (this._destination.temporary) {\n this._pushOrReplaceState(position, true);\n\n return;\n }\n\n if (this._destination.hash === position.hash) {\n return;\n }\n\n if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {\n return;\n }\n\n var forceReplace = false;\n\n if (this._destination.page >= position.first && this._destination.page <= position.page) {\n if (this._destination.dest || !this._destination.first) {\n return;\n }\n\n forceReplace = true;\n }\n\n this._pushOrReplaceState(position, forceReplace);\n }\n }, {\n key: \"_isValidState\",\n value: function _isValidState(state) {\n var checkReload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!state) {\n return false;\n }\n\n if (state.fingerprint !== this.fingerprint) {\n if (checkReload) {\n if (typeof state.fingerprint !== 'string' || state.fingerprint.length !== this.fingerprint.length) {\n return false;\n }\n\n var _performance$getEntri = performance.getEntriesByType('navigation'),\n _performance$getEntri2 = _slicedToArray(_performance$getEntri, 1),\n perfEntry = _performance$getEntri2[0];\n\n if (!perfEntry || perfEntry.type !== 'reload') {\n return false;\n }\n } else {\n return false;\n }\n }\n\n if (!Number.isInteger(state.uid) || state.uid < 0) {\n return false;\n }\n\n if (state.destination === null || _typeof(state.destination) !== 'object') {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"_updateInternalState\",\n value: function _updateInternalState(destination, uid) {\n var removeTemporary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n if (removeTemporary && destination && destination.temporary) {\n delete destination.temporary;\n }\n\n this._destination = destination;\n this._uid = uid;\n this._numPositionUpdates = 0;\n }\n }, {\n key: \"_updateViewarea\",\n value: function _updateViewarea(_ref4) {\n var _this3 = this;\n\n var location = _ref4.location;\n\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._position = {\n hash: this._isViewerInPresentationMode ? \"page=\".concat(location.pageNumber) : location.pdfOpenParams.substring(1),\n page: this.linkService.page,\n first: location.pageNumber,\n rotation: location.rotation\n };\n\n if (this._popStateInProgress) {\n return;\n }\n\n if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {\n this._numPositionUpdates++;\n }\n\n if (UPDATE_VIEWAREA_TIMEOUT > 0) {\n this._updateViewareaTimeout = setTimeout(function () {\n if (!_this3._popStateInProgress) {\n _this3._tryPushCurrentPosition(true);\n }\n\n _this3._updateViewareaTimeout = null;\n }, UPDATE_VIEWAREA_TIMEOUT);\n }\n }\n }, {\n key: \"_popState\",\n value: function _popState(_ref5) {\n var _this4 = this;\n\n var state = _ref5.state;\n var newHash = getCurrentHash(),\n hashChanged = this._currentHash !== newHash;\n this._currentHash = newHash;\n\n if (!state || false) {\n this._uid++;\n\n var _parseCurrentHash2 = parseCurrentHash(this.linkService),\n hash = _parseCurrentHash2.hash,\n page = _parseCurrentHash2.page,\n rotation = _parseCurrentHash2.rotation;\n\n this._pushOrReplaceState({\n hash: hash,\n page: page,\n rotation: rotation\n }, true);\n\n return;\n }\n\n if (!this._isValidState(state)) {\n return;\n }\n\n this._popStateInProgress = true;\n\n if (hashChanged) {\n this._blockHashChange++;\n (0, _ui_utils.waitOnEventOrTimeout)({\n target: window,\n name: 'hashchange',\n delay: HASH_CHANGE_TIMEOUT\n }).then(function () {\n _this4._blockHashChange--;\n });\n }\n\n var destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (this._uid > this._maxUid) {\n this._maxUid = this._uid;\n }\n\n if ((0, _ui_utils.isValidRotation)(destination.rotation)) {\n this.linkService.rotation = destination.rotation;\n }\n\n if (destination.dest) {\n this.linkService.navigateTo(destination.dest);\n } else if (destination.hash) {\n this.linkService.setHash(destination.hash);\n } else if (destination.page) {\n this.linkService.page = destination.page;\n }\n\n Promise.resolve().then(function () {\n _this4._popStateInProgress = false;\n });\n }\n }, {\n key: \"_bindEvents\",\n value: function _bindEvents() {\n var _this5 = this;\n\n var _boundEvents = this._boundEvents,\n eventBus = this.eventBus;\n _boundEvents.updateViewarea = this._updateViewarea.bind(this);\n _boundEvents.popState = this._popState.bind(this);\n\n _boundEvents.pageHide = function (evt) {\n if (!_this5._destination || _this5._destination.temporary) {\n _this5._tryPushCurrentPosition();\n }\n };\n\n eventBus.on('updateviewarea', _boundEvents.updateViewarea);\n window.addEventListener('popstate', _boundEvents.popState);\n window.addEventListener('pagehide', _boundEvents.pageHide);\n }\n }, {\n key: \"popStateInProgress\",\n get: function get() {\n return this.initialized && (this._popStateInProgress || this._blockHashChange > 0);\n }\n }]);\n\n return PDFHistory;\n}();\n\nexports.PDFHistory = PDFHistory;\n\nfunction isDestHashesEqual(destHash, pushHash) {\n if (typeof destHash !== 'string' || typeof pushHash !== 'string') {\n return false;\n }\n\n if (destHash === pushHash) {\n return true;\n }\n\n var _parseQueryString = (0, _ui_utils.parseQueryString)(destHash),\n nameddest = _parseQueryString.nameddest;\n\n if (nameddest === pushHash) {\n return true;\n }\n\n return false;\n}\n\nfunction isDestArraysEqual(firstDest, secondDest) {\n function isEntryEqual(first, second) {\n if (_typeof(first) !== _typeof(second)) {\n return false;\n }\n\n if (Array.isArray(first) || Array.isArray(second)) {\n return false;\n }\n\n if (first !== null && _typeof(first) === 'object' && second !== null) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (var key in first) {\n if (!isEntryEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return first === second || Number.isNaN(first) && Number.isNaN(second);\n }\n\n if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {\n return false;\n }\n\n if (firstDest.length !== secondDest.length) {\n return false;\n }\n\n for (var i = 0, ii = firstDest.length; i < ii; i++) {\n if (!isEntryEqual(firstDest[i], secondDest[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFPageView = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(4));\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(16);\n\nvar _viewer_compatibility = __w_pdfjs_require__(17);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216;\n\nvar PDFPageView =\n/*#__PURE__*/\nfunction () {\n function PDFPageView(options) {\n _classCallCheck(this, PDFPageView);\n\n var container = options.container;\n var defaultViewport = options.defaultViewport;\n this.id = options.id;\n this.renderingId = 'page' + this.id;\n this.pdfPage = null;\n this.pageLabel = null;\n this.rotation = 0;\n this.scale = options.scale || _ui_utils.DEFAULT_SCALE;\n this.viewport = defaultViewport;\n this.pdfPageRotate = defaultViewport.rotation;\n this.hasRestrictedScaling = false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || '';\n this.renderInteractiveForms = options.renderInteractiveForms || false;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS;\n this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)();\n this.renderingQueue = options.renderingQueue;\n this.textLayerFactory = options.textLayerFactory;\n this.annotationLayerFactory = options.annotationLayerFactory;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.enableWebGL = options.enableWebGL || false;\n this.l10n = options.l10n || _ui_utils.NullL10n;\n this.paintTask = null;\n this.paintedViewportMap = new WeakMap();\n this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;\n this.resume = null;\n this.error = null;\n this.onBeforeDraw = null;\n this.onAfterDraw = null;\n this.annotationLayer = null;\n this.textLayer = null;\n this.zoomLayer = null;\n var div = document.createElement('div');\n div.className = 'page';\n div.style.width = Math.floor(this.viewport.width) + 'px';\n div.style.height = Math.floor(this.viewport.height) + 'px';\n div.setAttribute('data-page-number', this.id);\n this.div = div;\n container.appendChild(div);\n }\n\n _createClass(PDFPageView, [{\n key: \"setPdfPage\",\n value: function setPdfPage(pdfPage) {\n this.pdfPage = pdfPage;\n this.pdfPageRotate = pdfPage.rotate;\n var totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = pdfPage.getViewport({\n scale: this.scale * _ui_utils.CSS_UNITS,\n rotation: totalRotation\n });\n this.stats = pdfPage.stats;\n this.reset();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.reset();\n\n if (this.pdfPage) {\n this.pdfPage.cleanup();\n }\n }\n }, {\n key: \"_resetZoomLayer\",\n value: function _resetZoomLayer() {\n var removeFromDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.zoomLayer) {\n return;\n }\n\n var zoomLayerCanvas = this.zoomLayer.firstChild;\n this.paintedViewportMap[\"delete\"](zoomLayerCanvas);\n zoomLayerCanvas.width = 0;\n zoomLayerCanvas.height = 0;\n\n if (removeFromDOM) {\n this.zoomLayer.remove();\n }\n\n this.zoomLayer = null;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var keepZoomLayer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var keepAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.cancelRendering(keepAnnotations);\n this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;\n var div = this.div;\n div.style.width = Math.floor(this.viewport.width) + 'px';\n div.style.height = Math.floor(this.viewport.height) + 'px';\n var childNodes = div.childNodes;\n var currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null;\n var currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null;\n\n for (var i = childNodes.length - 1; i >= 0; i--) {\n var node = childNodes[i];\n\n if (currentZoomLayerNode === node || currentAnnotationNode === node) {\n continue;\n }\n\n div.removeChild(node);\n }\n\n div.removeAttribute('data-loaded');\n\n if (currentAnnotationNode) {\n this.annotationLayer.hide();\n } else if (this.annotationLayer) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n }\n\n if (!currentZoomLayerNode) {\n if (this.canvas) {\n this.paintedViewportMap[\"delete\"](this.canvas);\n this.canvas.width = 0;\n this.canvas.height = 0;\n delete this.canvas;\n }\n\n this._resetZoomLayer();\n }\n\n if (this.svg) {\n this.paintedViewportMap[\"delete\"](this.svg);\n delete this.svg;\n }\n\n this.loadingIconDiv = document.createElement('div');\n this.loadingIconDiv.className = 'loadingIcon';\n div.appendChild(this.loadingIconDiv);\n }\n }, {\n key: \"update\",\n value: function update(scale, rotation) {\n this.scale = scale || this.scale;\n\n if (typeof rotation !== 'undefined') {\n this.rotation = rotation;\n }\n\n var totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = this.viewport.clone({\n scale: this.scale * _ui_utils.CSS_UNITS,\n rotation: totalRotation\n });\n\n if (this.svg) {\n this.cssTransform(this.svg, true);\n this.eventBus.dispatch('pagerendered', {\n source: this,\n pageNumber: this.id,\n cssTransform: true\n });\n return;\n }\n\n var isScalingRestricted = false;\n\n if (this.canvas && this.maxCanvasPixels > 0) {\n var outputScale = this.outputScale;\n\n if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) {\n isScalingRestricted = true;\n }\n }\n\n if (this.canvas) {\n if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) {\n this.cssTransform(this.canvas, true);\n this.eventBus.dispatch('pagerendered', {\n source: this,\n pageNumber: this.id,\n cssTransform: true\n });\n return;\n }\n\n if (!this.zoomLayer && !this.canvas.hasAttribute('hidden')) {\n this.zoomLayer = this.canvas.parentNode;\n this.zoomLayer.style.position = 'absolute';\n }\n }\n\n if (this.zoomLayer) {\n this.cssTransform(this.zoomLayer.firstChild);\n }\n\n this.reset(true, true);\n }\n }, {\n key: \"cancelRendering\",\n value: function cancelRendering() {\n var keepAnnotations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (this.paintTask) {\n this.paintTask.cancel();\n this.paintTask = null;\n }\n\n this.resume = null;\n\n if (this.textLayer) {\n this.textLayer.cancel();\n this.textLayer = null;\n }\n\n if (!keepAnnotations && this.annotationLayer) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n }\n }\n }, {\n key: \"cssTransform\",\n value: function cssTransform(target) {\n var redrawAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var width = this.viewport.width;\n var height = this.viewport.height;\n var div = this.div;\n target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + 'px';\n target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + 'px';\n var relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation;\n var absRotation = Math.abs(relativeRotation);\n var scaleX = 1,\n scaleY = 1;\n\n if (absRotation === 90 || absRotation === 270) {\n scaleX = height / width;\n scaleY = width / height;\n }\n\n var cssTransform = 'rotate(' + relativeRotation + 'deg) ' + 'scale(' + scaleX + ',' + scaleY + ')';\n target.style.transform = cssTransform;\n\n if (this.textLayer) {\n var textLayerViewport = this.textLayer.viewport;\n var textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation;\n var textAbsRotation = Math.abs(textRelativeRotation);\n var scale = width / textLayerViewport.width;\n\n if (textAbsRotation === 90 || textAbsRotation === 270) {\n scale = width / textLayerViewport.height;\n }\n\n var textLayerDiv = this.textLayer.textLayerDiv;\n var transX, transY;\n\n switch (textAbsRotation) {\n case 0:\n transX = transY = 0;\n break;\n\n case 90:\n transX = 0;\n transY = '-' + textLayerDiv.style.height;\n break;\n\n case 180:\n transX = '-' + textLayerDiv.style.width;\n transY = '-' + textLayerDiv.style.height;\n break;\n\n case 270:\n transX = '-' + textLayerDiv.style.width;\n transY = 0;\n break;\n\n default:\n console.error('Bad rotation value.');\n break;\n }\n\n textLayerDiv.style.transform = 'rotate(' + textAbsRotation + 'deg) ' + 'scale(' + scale + ', ' + scale + ') ' + 'translate(' + transX + ', ' + transY + ')';\n textLayerDiv.style.transformOrigin = '0% 0%';\n }\n\n if (redrawAnnotations && this.annotationLayer) {\n this.annotationLayer.render(this.viewport, 'display');\n }\n }\n }, {\n key: \"getPagePoint\",\n value: function getPagePoint(x, y) {\n return this.viewport.convertToPdfPoint(x, y);\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var _this = this;\n\n if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {\n console.error('Must be in new state before drawing');\n this.reset();\n }\n\n if (!this.pdfPage) {\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n return Promise.reject(new Error('Page is not loaded'));\n }\n\n this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;\n var pdfPage = this.pdfPage;\n var div = this.div;\n var canvasWrapper = document.createElement('div');\n canvasWrapper.style.width = div.style.width;\n canvasWrapper.style.height = div.style.height;\n canvasWrapper.classList.add('canvasWrapper');\n\n if (this.annotationLayer && this.annotationLayer.div) {\n div.insertBefore(canvasWrapper, this.annotationLayer.div);\n } else {\n div.appendChild(canvasWrapper);\n }\n\n var textLayer = null;\n\n if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) {\n var textLayerDiv = document.createElement('div');\n textLayerDiv.className = 'textLayer';\n textLayerDiv.style.width = canvasWrapper.style.width;\n textLayerDiv.style.height = canvasWrapper.style.height;\n\n if (this.annotationLayer && this.annotationLayer.div) {\n div.insertBefore(textLayerDiv, this.annotationLayer.div);\n } else {\n div.appendChild(textLayerDiv);\n }\n\n textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE);\n }\n\n this.textLayer = textLayer;\n var renderContinueCallback = null;\n\n if (this.renderingQueue) {\n renderContinueCallback = function renderContinueCallback(cont) {\n if (!_this.renderingQueue.isHighestPriority(_this)) {\n _this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED;\n\n _this.resume = function () {\n _this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;\n cont();\n };\n\n return;\n }\n\n cont();\n };\n }\n\n var finishPaintTask =\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee(error) {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (paintTask === _this.paintTask) {\n _this.paintTask = null;\n }\n\n if (!(error instanceof _pdfjsLib.RenderingCancelledException)) {\n _context.next = 4;\n break;\n }\n\n _this.error = null;\n return _context.abrupt(\"return\");\n\n case 4:\n _this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n\n if (_this.loadingIconDiv) {\n div.removeChild(_this.loadingIconDiv);\n delete _this.loadingIconDiv;\n }\n\n _this._resetZoomLayer(true);\n\n _this.error = error;\n _this.stats = pdfPage.stats;\n\n if (_this.onAfterDraw) {\n _this.onAfterDraw();\n }\n\n _this.eventBus.dispatch('pagerendered', {\n source: _this,\n pageNumber: _this.id,\n cssTransform: false\n });\n\n if (!error) {\n _context.next = 13;\n break;\n }\n\n throw error;\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function finishPaintTask(_x) {\n return _ref.apply(this, arguments);\n };\n }();\n\n var paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper);\n paintTask.onRenderContinue = renderContinueCallback;\n this.paintTask = paintTask;\n var resultPromise = paintTask.promise.then(function () {\n return finishPaintTask(null).then(function () {\n if (textLayer) {\n var readableStream = pdfPage.streamTextContent({\n normalizeWhitespace: true\n });\n textLayer.setTextContentStream(readableStream);\n textLayer.render();\n }\n });\n }, function (reason) {\n return finishPaintTask(reason);\n });\n\n if (this.annotationLayerFactory) {\n if (!this.annotationLayer) {\n this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n);\n }\n\n this.annotationLayer.render(this.viewport, 'display');\n }\n\n div.setAttribute('data-loaded', true);\n\n if (this.onBeforeDraw) {\n this.onBeforeDraw();\n }\n\n return resultPromise;\n }\n }, {\n key: \"paintOnCanvas\",\n value: function paintOnCanvas(canvasWrapper) {\n var renderCapability = (0, _pdfjsLib.createPromiseCapability)();\n var result = {\n promise: renderCapability.promise,\n onRenderContinue: function onRenderContinue(cont) {\n cont();\n },\n cancel: function cancel() {\n renderTask.cancel();\n }\n };\n var viewport = this.viewport;\n var canvas = document.createElement('canvas');\n canvas.id = this.renderingId;\n canvas.setAttribute('hidden', 'hidden');\n var isCanvasHidden = true;\n\n var showCanvas = function showCanvas() {\n if (isCanvasHidden) {\n canvas.removeAttribute('hidden');\n isCanvasHidden = false;\n }\n };\n\n canvasWrapper.appendChild(canvas);\n this.canvas = canvas;\n canvas.mozOpaque = true;\n var ctx = canvas.getContext('2d', {\n alpha: false\n });\n var outputScale = (0, _ui_utils.getOutputScale)(ctx);\n this.outputScale = outputScale;\n\n if (this.useOnlyCssZoom) {\n var actualSizeViewport = viewport.clone({\n scale: _ui_utils.CSS_UNITS\n });\n outputScale.sx *= actualSizeViewport.width / viewport.width;\n outputScale.sy *= actualSizeViewport.height / viewport.height;\n outputScale.scaled = true;\n }\n\n if (this.maxCanvasPixels > 0) {\n var pixelsInViewport = viewport.width * viewport.height;\n var maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);\n\n if (outputScale.sx > maxScale || outputScale.sy > maxScale) {\n outputScale.sx = maxScale;\n outputScale.sy = maxScale;\n outputScale.scaled = true;\n this.hasRestrictedScaling = true;\n } else {\n this.hasRestrictedScaling = false;\n }\n }\n\n var sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);\n var sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);\n canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]);\n canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]);\n canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + 'px';\n canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + 'px';\n this.paintedViewportMap.set(canvas, viewport);\n var transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0];\n var renderContext = {\n canvasContext: ctx,\n transform: transform,\n viewport: this.viewport,\n enableWebGL: this.enableWebGL,\n renderInteractiveForms: this.renderInteractiveForms\n };\n var renderTask = this.pdfPage.render(renderContext);\n\n renderTask.onContinue = function (cont) {\n showCanvas();\n\n if (result.onRenderContinue) {\n result.onRenderContinue(cont);\n } else {\n cont();\n }\n };\n\n renderTask.promise.then(function () {\n showCanvas();\n renderCapability.resolve(undefined);\n }, function (error) {\n showCanvas();\n renderCapability.reject(error);\n });\n return result;\n }\n }, {\n key: \"paintOnSvg\",\n value: function paintOnSvg(wrapper) {\n var _this2 = this;\n\n var cancelled = false;\n\n var ensureNotCancelled = function ensureNotCancelled() {\n if (cancelled) {\n throw new _pdfjsLib.RenderingCancelledException('Rendering cancelled, page ' + _this2.id, 'svg');\n }\n };\n\n var pdfPage = this.pdfPage;\n var actualSizeViewport = this.viewport.clone({\n scale: _ui_utils.CSS_UNITS\n });\n var promise = pdfPage.getOperatorList().then(function (opList) {\n ensureNotCancelled();\n var svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs);\n return svgGfx.getSVG(opList, actualSizeViewport).then(function (svg) {\n ensureNotCancelled();\n _this2.svg = svg;\n\n _this2.paintedViewportMap.set(svg, actualSizeViewport);\n\n svg.style.width = wrapper.style.width;\n svg.style.height = wrapper.style.height;\n _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n wrapper.appendChild(svg);\n });\n });\n return {\n promise: promise,\n onRenderContinue: function onRenderContinue(cont) {\n cont();\n },\n cancel: function cancel() {\n cancelled = true;\n }\n };\n }\n }, {\n key: \"setPageLabel\",\n value: function setPageLabel(label) {\n this.pageLabel = typeof label === 'string' ? label : null;\n\n if (this.pageLabel !== null) {\n this.div.setAttribute('data-page-label', this.pageLabel);\n } else {\n this.div.removeAttribute('data-page-label');\n }\n }\n }, {\n key: \"width\",\n get: function get() {\n return this.viewport.width;\n }\n }, {\n key: \"height\",\n get: function get() {\n return this.viewport.height;\n }\n }]);\n\n return PDFPageView;\n}();\n\nexports.PDFPageView = PDFPageView;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFRenderingQueue = exports.RenderingStates = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar CLEANUP_TIMEOUT = 30000;\nvar RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3\n};\nexports.RenderingStates = RenderingStates;\n\nvar PDFRenderingQueue =\n/*#__PURE__*/\nfunction () {\n function PDFRenderingQueue() {\n _classCallCheck(this, PDFRenderingQueue);\n\n this.pdfViewer = null;\n this.pdfThumbnailViewer = null;\n this.onIdle = null;\n this.highestPriorityPage = null;\n this.idleTimeout = null;\n this.printing = false;\n this.isThumbnailViewEnabled = false;\n }\n\n _createClass(PDFRenderingQueue, [{\n key: \"setViewer\",\n value: function setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n }, {\n key: \"setThumbnailViewer\",\n value: function setThumbnailViewer(pdfThumbnailViewer) {\n this.pdfThumbnailViewer = pdfThumbnailViewer;\n }\n }, {\n key: \"isHighestPriority\",\n value: function isHighestPriority(view) {\n return this.highestPriorityPage === view.renderingId;\n }\n }, {\n key: \"renderHighestPriority\",\n value: function renderHighestPriority(currentlyVisiblePages) {\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n\n if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {\n return;\n }\n\n if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {\n if (this.pdfThumbnailViewer.forceRendering()) {\n return;\n }\n }\n\n if (this.printing) {\n return;\n }\n\n if (this.onIdle) {\n this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);\n }\n }\n }, {\n key: \"getHighestPriority\",\n value: function getHighestPriority(visible, views, scrolledDown) {\n var visibleViews = visible.views;\n var numVisible = visibleViews.length;\n\n if (numVisible === 0) {\n return null;\n }\n\n for (var i = 0; i < numVisible; ++i) {\n var view = visibleViews[i].view;\n\n if (!this.isViewFinished(view)) {\n return view;\n }\n }\n\n if (scrolledDown) {\n var nextPageIndex = visible.last.id;\n\n if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {\n return views[nextPageIndex];\n }\n } else {\n var previousPageIndex = visible.first.id - 2;\n\n if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {\n return views[previousPageIndex];\n }\n }\n\n return null;\n }\n }, {\n key: \"isViewFinished\",\n value: function isViewFinished(view) {\n return view.renderingState === RenderingStates.FINISHED;\n }\n }, {\n key: \"renderView\",\n value: function renderView(view) {\n var _this = this;\n\n switch (view.renderingState) {\n case RenderingStates.FINISHED:\n return false;\n\n case RenderingStates.PAUSED:\n this.highestPriorityPage = view.renderingId;\n view.resume();\n break;\n\n case RenderingStates.RUNNING:\n this.highestPriorityPage = view.renderingId;\n break;\n\n case RenderingStates.INITIAL:\n this.highestPriorityPage = view.renderingId;\n view.draw()[\"finally\"](function () {\n _this.renderHighestPriority();\n });\n break;\n }\n\n return true;\n }\n }]);\n\n return PDFRenderingQueue;\n}();\n\nexports.PDFRenderingQueue = PDFRenderingQueue;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar compatibilityParams = Object.create(null);\n{\n var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';\n var isAndroid = /Android/.test(userAgent);\n var isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent);\n\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n compatibilityParams.maxCanvasPixels = 5242880;\n }\n })();\n}\nexports.viewerCompatibilityParams = Object.freeze(compatibilityParams);\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFSinglePageViewer = void 0;\n\nvar _base_viewer = __w_pdfjs_require__(19);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar PDFSinglePageViewer =\n/*#__PURE__*/\nfunction (_BaseViewer) {\n _inherits(PDFSinglePageViewer, _BaseViewer);\n\n function PDFSinglePageViewer(options) {\n var _this;\n\n _classCallCheck(this, PDFSinglePageViewer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(PDFSinglePageViewer).call(this, options));\n\n _this.eventBus.on('pagesinit', function (evt) {\n _this._ensurePageViewVisible();\n });\n\n return _this;\n }\n\n _createClass(PDFSinglePageViewer, [{\n key: \"_resetView\",\n value: function _resetView() {\n _get(_getPrototypeOf(PDFSinglePageViewer.prototype), \"_resetView\", this).call(this);\n\n this._previousPageNumber = 1;\n this._shadowViewer = document.createDocumentFragment();\n this._updateScrollDown = null;\n }\n }, {\n key: \"_ensurePageViewVisible\",\n value: function _ensurePageViewVisible() {\n var pageView = this._pages[this._currentPageNumber - 1];\n var previousPageView = this._pages[this._previousPageNumber - 1];\n var viewerNodes = this.viewer.childNodes;\n\n switch (viewerNodes.length) {\n case 0:\n this.viewer.appendChild(pageView.div);\n break;\n\n case 1:\n if (viewerNodes[0] !== previousPageView.div) {\n throw new Error('_ensurePageViewVisible: Unexpected previously visible page.');\n }\n\n if (pageView === previousPageView) {\n break;\n }\n\n this._shadowViewer.appendChild(previousPageView.div);\n\n this.viewer.appendChild(pageView.div);\n this.container.scrollTop = 0;\n break;\n\n default:\n throw new Error('_ensurePageViewVisible: Only one page should be visible at a time.');\n }\n\n this._previousPageNumber = this._currentPageNumber;\n }\n }, {\n key: \"_scrollUpdate\",\n value: function _scrollUpdate() {\n if (this._updateScrollDown) {\n this._updateScrollDown();\n }\n\n _get(_getPrototypeOf(PDFSinglePageViewer.prototype), \"_scrollUpdate\", this).call(this);\n }\n }, {\n key: \"_scrollIntoView\",\n value: function _scrollIntoView(_ref) {\n var _this2 = this;\n\n var pageDiv = _ref.pageDiv,\n _ref$pageSpot = _ref.pageSpot,\n pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot,\n _ref$pageNumber = _ref.pageNumber,\n pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber;\n\n if (pageNumber) {\n this._setCurrentPageNumber(pageNumber);\n }\n\n var scrolledDown = this._currentPageNumber >= this._previousPageNumber;\n\n this._ensurePageViewVisible();\n\n this.update();\n\n _get(_getPrototypeOf(PDFSinglePageViewer.prototype), \"_scrollIntoView\", this).call(this, {\n pageDiv: pageDiv,\n pageSpot: pageSpot,\n pageNumber: pageNumber\n });\n\n this._updateScrollDown = function () {\n _this2.scroll.down = scrolledDown;\n _this2._updateScrollDown = null;\n };\n }\n }, {\n key: \"_getVisiblePages\",\n value: function _getVisiblePages() {\n return this._getCurrentVisiblePage();\n }\n }, {\n key: \"_updateHelper\",\n value: function _updateHelper(visiblePages) {}\n }, {\n key: \"_updateScrollMode\",\n value: function _updateScrollMode() {}\n }, {\n key: \"_updateSpreadMode\",\n value: function _updateSpreadMode() {}\n }, {\n key: \"_setDocumentViewerElement\",\n get: function get() {\n return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this._shadowViewer);\n }\n }, {\n key: \"_isScrollModeHorizontal\",\n get: function get() {\n return (0, _pdfjsLib.shadow)(this, '_isScrollModeHorizontal', false);\n }\n }]);\n\n return PDFSinglePageViewer;\n}(_base_viewer.BaseViewer);\n\nexports.PDFSinglePageViewer = PDFSinglePageViewer;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BaseViewer = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(16);\n\nvar _annotation_layer_builder = __w_pdfjs_require__(1);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_page_view = __w_pdfjs_require__(15);\n\nvar _pdf_link_service = __w_pdfjs_require__(7);\n\nvar _text_layer_builder = __w_pdfjs_require__(8);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DEFAULT_CACHE_SIZE = 10;\n\nfunction PDFPageViewBuffer(size) {\n var data = [];\n\n this.push = function (view) {\n var i = data.indexOf(view);\n\n if (i >= 0) {\n data.splice(i, 1);\n }\n\n data.push(view);\n\n if (data.length > size) {\n data.shift().destroy();\n }\n };\n\n this.resize = function (newSize, pagesToKeep) {\n size = newSize;\n\n if (pagesToKeep) {\n var pageIdsToKeep = new Set();\n\n for (var i = 0, iMax = pagesToKeep.length; i < iMax; ++i) {\n pageIdsToKeep.add(pagesToKeep[i].id);\n }\n\n (0, _ui_utils.moveToEndOfArray)(data, function (page) {\n return pageIdsToKeep.has(page.id);\n });\n }\n\n while (data.length > size) {\n data.shift().destroy();\n }\n };\n}\n\nfunction isSameScale(oldScale, newScale) {\n if (newScale === oldScale) {\n return true;\n }\n\n if (Math.abs(newScale - oldScale) < 1e-15) {\n return true;\n }\n\n return false;\n}\n\nvar BaseViewer =\n/*#__PURE__*/\nfunction () {\n function BaseViewer(options) {\n var _this = this;\n\n _classCallCheck(this, BaseViewer);\n\n if (this.constructor === BaseViewer) {\n throw new Error('Cannot initialize BaseViewer.');\n }\n\n this._name = this.constructor.name;\n this.container = options.container;\n this.viewer = options.viewer || options.container.firstElementChild;\n this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)();\n this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();\n this.downloadManager = options.downloadManager || null;\n this.findController = options.findController || null;\n this.removePageBorders = options.removePageBorders || false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || '';\n this.renderInteractiveForms = options.renderInteractiveForms || false;\n this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.enableWebGL = options.enableWebGL || false;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels;\n this.l10n = options.l10n || _ui_utils.NullL10n;\n this.defaultRenderingQueue = !options.renderingQueue;\n\n if (this.defaultRenderingQueue) {\n this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();\n this.renderingQueue.setViewer(this);\n } else {\n this.renderingQueue = options.renderingQueue;\n }\n\n this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));\n this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;\n\n this._resetView();\n\n if (this.removePageBorders) {\n this.viewer.classList.add('removePageBorders');\n }\n\n Promise.resolve().then(function () {\n _this.eventBus.dispatch('baseviewerinit', {\n source: _this\n });\n });\n }\n\n _createClass(BaseViewer, [{\n key: \"getPageView\",\n value: function getPageView(index) {\n return this._pages[index];\n }\n }, {\n key: \"_setCurrentPageNumber\",\n value: function _setCurrentPageNumber(val) {\n var resetCurrentPageView = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (this._currentPageNumber === val) {\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n\n return true;\n }\n\n if (!(0 < val && val <= this.pagesCount)) {\n return false;\n }\n\n this._currentPageNumber = val;\n this.eventBus.dispatch('pagechanging', {\n source: this,\n pageNumber: val,\n pageLabel: this._pageLabels && this._pageLabels[val - 1]\n });\n\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n\n return true;\n }\n }, {\n key: \"setDocument\",\n value: function setDocument(pdfDocument) {\n var _this2 = this;\n\n if (this.pdfDocument) {\n this._cancelRendering();\n\n this._resetView();\n\n if (this.findController) {\n this.findController.setDocument(null);\n }\n }\n\n this.pdfDocument = pdfDocument;\n\n if (!pdfDocument) {\n return;\n }\n\n var pagesCount = pdfDocument.numPages;\n var pagesCapability = (0, _pdfjsLib.createPromiseCapability)();\n this.pagesPromise = pagesCapability.promise;\n pagesCapability.promise.then(function () {\n _this2._pageViewsReady = true;\n\n _this2.eventBus.dispatch('pagesloaded', {\n source: _this2,\n pagesCount: pagesCount\n });\n });\n var onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)();\n this.onePageRendered = onePageRenderedCapability.promise;\n\n var bindOnAfterAndBeforeDraw = function bindOnAfterAndBeforeDraw(pageView) {\n pageView.onBeforeDraw = function () {\n _this2._buffer.push(pageView);\n };\n\n pageView.onAfterDraw = function () {\n if (!onePageRenderedCapability.settled) {\n onePageRenderedCapability.resolve();\n }\n };\n };\n\n var firstPagePromise = pdfDocument.getPage(1);\n this.firstPagePromise = firstPagePromise;\n firstPagePromise.then(function (pdfPage) {\n var scale = _this2.currentScale;\n var viewport = pdfPage.getViewport({\n scale: scale * _ui_utils.CSS_UNITS\n });\n\n for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n var textLayerFactory = null;\n\n if (_this2.textLayerMode !== _ui_utils.TextLayerMode.DISABLE) {\n textLayerFactory = _this2;\n }\n\n var pageView = new _pdf_page_view.PDFPageView({\n container: _this2._setDocumentViewerElement,\n eventBus: _this2.eventBus,\n id: pageNum,\n scale: scale,\n defaultViewport: viewport.clone(),\n renderingQueue: _this2.renderingQueue,\n textLayerFactory: textLayerFactory,\n textLayerMode: _this2.textLayerMode,\n annotationLayerFactory: _this2,\n imageResourcesPath: _this2.imageResourcesPath,\n renderInteractiveForms: _this2.renderInteractiveForms,\n renderer: _this2.renderer,\n enableWebGL: _this2.enableWebGL,\n useOnlyCssZoom: _this2.useOnlyCssZoom,\n maxCanvasPixels: _this2.maxCanvasPixels,\n l10n: _this2.l10n\n });\n bindOnAfterAndBeforeDraw(pageView);\n\n _this2._pages.push(pageView);\n }\n\n if (_this2._spreadMode !== _ui_utils.SpreadMode.NONE) {\n _this2._updateSpreadMode();\n }\n\n onePageRenderedCapability.promise.then(function () {\n if (_this2.findController) {\n _this2.findController.setDocument(pdfDocument);\n }\n\n if (pdfDocument.loadingParams['disableAutoFetch']) {\n pagesCapability.resolve();\n return;\n }\n\n var getPagesLeft = pagesCount;\n\n var _loop = function _loop(_pageNum) {\n pdfDocument.getPage(_pageNum).then(function (pdfPage) {\n var pageView = _this2._pages[_pageNum - 1];\n\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n _this2.linkService.cachePageRef(_pageNum, pdfPage.ref);\n\n if (--getPagesLeft === 0) {\n pagesCapability.resolve();\n }\n }, function (reason) {\n console.error(\"Unable to get page \".concat(_pageNum, \" to initialize viewer\"), reason);\n\n if (--getPagesLeft === 0) {\n pagesCapability.resolve();\n }\n });\n };\n\n for (var _pageNum = 1; _pageNum <= pagesCount; ++_pageNum) {\n _loop(_pageNum);\n }\n });\n\n _this2.eventBus.dispatch('pagesinit', {\n source: _this2\n });\n\n if (_this2.defaultRenderingQueue) {\n _this2.update();\n }\n })[\"catch\"](function (reason) {\n console.error('Unable to initialize viewer', reason);\n });\n }\n }, {\n key: \"setPageLabels\",\n value: function setPageLabels(labels) {\n if (!this.pdfDocument) {\n return;\n }\n\n if (!labels) {\n this._pageLabels = null;\n } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n this._pageLabels = null;\n console.error(\"\".concat(this._name, \".setPageLabels: Invalid page labels.\"));\n } else {\n this._pageLabels = labels;\n }\n\n for (var i = 0, ii = this._pages.length; i < ii; i++) {\n var pageView = this._pages[i];\n var label = this._pageLabels && this._pageLabels[i];\n pageView.setPageLabel(label);\n }\n }\n }, {\n key: \"_resetView\",\n value: function _resetView() {\n this._pages = [];\n this._currentPageNumber = 1;\n this._currentScale = _ui_utils.UNKNOWN_SCALE;\n this._currentScaleValue = null;\n this._pageLabels = null;\n this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);\n this._location = null;\n this._pagesRotation = 0;\n this._pagesRequests = [];\n this._pageViewsReady = false;\n this._scrollMode = _ui_utils.ScrollMode.VERTICAL;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n this.viewer.textContent = '';\n\n this._updateScrollMode();\n }\n }, {\n key: \"_scrollUpdate\",\n value: function _scrollUpdate() {\n if (this.pagesCount === 0) {\n return;\n }\n\n this.update();\n }\n }, {\n key: \"_scrollIntoView\",\n value: function _scrollIntoView(_ref) {\n var pageDiv = _ref.pageDiv,\n _ref$pageSpot = _ref.pageSpot,\n pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot,\n _ref$pageNumber = _ref.pageNumber,\n pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber;\n (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot);\n }\n }, {\n key: \"_setScaleUpdatePages\",\n value: function _setScaleUpdatePages(newScale, newValue) {\n var noScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var preset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n this._currentScaleValue = newValue.toString();\n\n if (isSameScale(this._currentScale, newScale)) {\n if (preset) {\n this.eventBus.dispatch('scalechanging', {\n source: this,\n scale: newScale,\n presetValue: newValue\n });\n }\n\n return;\n }\n\n for (var i = 0, ii = this._pages.length; i < ii; i++) {\n this._pages[i].update(newScale);\n }\n\n this._currentScale = newScale;\n\n if (!noScroll) {\n var page = this._currentPageNumber,\n dest;\n\n if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {\n page = this._location.pageNumber;\n dest = [null, {\n name: 'XYZ'\n }, this._location.left, this._location.top, null];\n }\n\n this.scrollPageIntoView({\n pageNumber: page,\n destArray: dest,\n allowNegativeOffset: true\n });\n }\n\n this.eventBus.dispatch('scalechanging', {\n source: this,\n scale: newScale,\n presetValue: preset ? newValue : undefined\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n }, {\n key: \"_setScale\",\n value: function _setScale(value) {\n var noScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var scale = parseFloat(value);\n\n if (scale > 0) {\n this._setScaleUpdatePages(scale, value, noScroll, false);\n } else {\n var currentPage = this._pages[this._currentPageNumber - 1];\n\n if (!currentPage) {\n return;\n }\n\n var noPadding = this.isInPresentationMode || this.removePageBorders;\n var hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING;\n var vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING;\n\n if (!noPadding && this._isScrollModeHorizontal) {\n var _ref2 = [vPadding, hPadding];\n hPadding = _ref2[0];\n vPadding = _ref2[1];\n }\n\n var pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale;\n var pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;\n\n switch (value) {\n case 'page-actual':\n scale = 1;\n break;\n\n case 'page-width':\n scale = pageWidthScale;\n break;\n\n case 'page-height':\n scale = pageHeightScale;\n break;\n\n case 'page-fit':\n scale = Math.min(pageWidthScale, pageHeightScale);\n break;\n\n case 'auto':\n var horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);\n scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);\n break;\n\n default:\n console.error(\"\".concat(this._name, \"._setScale: \\\"\").concat(value, \"\\\" is an unknown zoom value.\"));\n return;\n }\n\n this._setScaleUpdatePages(scale, value, noScroll, true);\n }\n }\n }, {\n key: \"_resetCurrentPageView\",\n value: function _resetCurrentPageView() {\n if (this.isInPresentationMode) {\n this._setScale(this._currentScaleValue, true);\n }\n\n var pageView = this._pages[this._currentPageNumber - 1];\n\n this._scrollIntoView({\n pageDiv: pageView.div\n });\n }\n }, {\n key: \"scrollPageIntoView\",\n value: function scrollPageIntoView(_ref3) {\n var pageNumber = _ref3.pageNumber,\n _ref3$destArray = _ref3.destArray,\n destArray = _ref3$destArray === void 0 ? null : _ref3$destArray,\n _ref3$allowNegativeOf = _ref3.allowNegativeOffset,\n allowNegativeOffset = _ref3$allowNegativeOf === void 0 ? false : _ref3$allowNegativeOf;\n\n if (!this.pdfDocument) {\n return;\n }\n\n var pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];\n\n if (!pageView) {\n console.error(\"\".concat(this._name, \".scrollPageIntoView: \") + \"\\\"\".concat(pageNumber, \"\\\" is not a valid pageNumber parameter.\"));\n return;\n }\n\n if (this.isInPresentationMode || !destArray) {\n this._setCurrentPageNumber(pageNumber, true);\n\n return;\n }\n\n var x = 0,\n y = 0;\n var width = 0,\n height = 0,\n widthScale,\n heightScale;\n var changeOrientation = pageView.rotation % 180 === 0 ? false : true;\n var pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS;\n var pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS;\n var scale = 0;\n\n switch (destArray[1].name) {\n case 'XYZ':\n x = destArray[2];\n y = destArray[3];\n scale = destArray[4];\n x = x !== null ? x : 0;\n y = y !== null ? y : pageHeight;\n break;\n\n case 'Fit':\n case 'FitB':\n scale = 'page-fit';\n break;\n\n case 'FitH':\n case 'FitBH':\n y = destArray[2];\n scale = 'page-width';\n\n if (y === null && this._location) {\n x = this._location.left;\n y = this._location.top;\n }\n\n break;\n\n case 'FitV':\n case 'FitBV':\n x = destArray[2];\n width = pageWidth;\n height = pageHeight;\n scale = 'page-height';\n break;\n\n case 'FitR':\n x = destArray[2];\n y = destArray[3];\n width = destArray[4] - x;\n height = destArray[5] - y;\n var hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING;\n var vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING;\n widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS;\n heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS;\n scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));\n break;\n\n default:\n console.error(\"\".concat(this._name, \".scrollPageIntoView: \") + \"\\\"\".concat(destArray[1].name, \"\\\" is not a valid destination type.\"));\n return;\n }\n\n if (scale && scale !== this._currentScale) {\n this.currentScaleValue = scale;\n } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {\n this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;\n }\n\n if (scale === 'page-fit' && !destArray[4]) {\n this._scrollIntoView({\n pageDiv: pageView.div,\n pageNumber: pageNumber\n });\n\n return;\n }\n\n var boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];\n var left = Math.min(boundingRect[0][0], boundingRect[1][0]);\n var top = Math.min(boundingRect[0][1], boundingRect[1][1]);\n\n if (!allowNegativeOffset) {\n left = Math.max(left, 0);\n top = Math.max(top, 0);\n }\n\n this._scrollIntoView({\n pageDiv: pageView.div,\n pageSpot: {\n left: left,\n top: top\n },\n pageNumber: pageNumber\n });\n }\n }, {\n key: \"_updateLocation\",\n value: function _updateLocation(firstPage) {\n var currentScale = this._currentScale;\n var currentScaleValue = this._currentScaleValue;\n var normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;\n var pageNumber = firstPage.id;\n var pdfOpenParams = '#page=' + pageNumber;\n pdfOpenParams += '&zoom=' + normalizedScaleValue;\n var currentPageView = this._pages[pageNumber - 1];\n var container = this.container;\n var topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);\n var intLeft = Math.round(topLeft[0]);\n var intTop = Math.round(topLeft[1]);\n pdfOpenParams += ',' + intLeft + ',' + intTop;\n this._location = {\n pageNumber: pageNumber,\n scale: normalizedScaleValue,\n top: intTop,\n left: intLeft,\n rotation: this._pagesRotation,\n pdfOpenParams: pdfOpenParams\n };\n }\n }, {\n key: \"_updateHelper\",\n value: function _updateHelper(visiblePages) {\n throw new Error('Not implemented: _updateHelper');\n }\n }, {\n key: \"update\",\n value: function update() {\n var visible = this._getVisiblePages();\n\n var visiblePages = visible.views,\n numVisiblePages = visiblePages.length;\n\n if (numVisiblePages === 0) {\n return;\n }\n\n var newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);\n\n this._buffer.resize(newCacheSize, visiblePages);\n\n this.renderingQueue.renderHighestPriority(visible);\n\n this._updateHelper(visiblePages);\n\n this._updateLocation(visible.first);\n\n this.eventBus.dispatch('updateviewarea', {\n source: this,\n location: this._location\n });\n }\n }, {\n key: \"containsElement\",\n value: function containsElement(element) {\n return this.container.contains(element);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.container.focus();\n }\n }, {\n key: \"_getCurrentVisiblePage\",\n value: function _getCurrentVisiblePage() {\n if (!this.pagesCount) {\n return {\n views: []\n };\n }\n\n var pageView = this._pages[this._currentPageNumber - 1];\n var element = pageView.div;\n var view = {\n id: pageView.id,\n x: element.offsetLeft + element.clientLeft,\n y: element.offsetTop + element.clientTop,\n view: pageView\n };\n return {\n first: view,\n last: view,\n views: [view]\n };\n }\n }, {\n key: \"_getVisiblePages\",\n value: function _getVisiblePages() {\n return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal);\n }\n }, {\n key: \"isPageVisible\",\n value: function isPageVisible(pageNumber) {\n if (!this.pdfDocument) {\n return false;\n }\n\n if (this.pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(\"\".concat(this._name, \".isPageVisible: \\\"\").concat(pageNumber, \"\\\" is out of bounds.\"));\n return false;\n }\n\n return this._getVisiblePages().views.some(function (view) {\n return view.id === pageNumber;\n });\n }\n }, {\n key: \"cleanup\",\n value: function cleanup() {\n for (var i = 0, ii = this._pages.length; i < ii; i++) {\n if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {\n this._pages[i].reset();\n }\n }\n }\n }, {\n key: \"_cancelRendering\",\n value: function _cancelRendering() {\n for (var i = 0, ii = this._pages.length; i < ii; i++) {\n if (this._pages[i]) {\n this._pages[i].cancelRendering();\n }\n }\n }\n }, {\n key: \"_ensurePdfPageLoaded\",\n value: function _ensurePdfPageLoaded(pageView) {\n var _this3 = this;\n\n if (pageView.pdfPage) {\n return Promise.resolve(pageView.pdfPage);\n }\n\n var pageNumber = pageView.id;\n\n if (this._pagesRequests[pageNumber]) {\n return this._pagesRequests[pageNumber];\n }\n\n var promise = this.pdfDocument.getPage(pageNumber).then(function (pdfPage) {\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n _this3._pagesRequests[pageNumber] = null;\n return pdfPage;\n })[\"catch\"](function (reason) {\n console.error('Unable to get page for page view', reason);\n _this3._pagesRequests[pageNumber] = null;\n });\n this._pagesRequests[pageNumber] = promise;\n return promise;\n }\n }, {\n key: \"forceRendering\",\n value: function forceRendering(currentlyVisiblePages) {\n var _this4 = this;\n\n var visiblePages = currentlyVisiblePages || this._getVisiblePages();\n\n var scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down;\n var pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead);\n\n if (pageView) {\n this._ensurePdfPageLoaded(pageView).then(function () {\n _this4.renderingQueue.renderView(pageView);\n });\n\n return true;\n }\n\n return false;\n }\n }, {\n key: \"createTextLayerBuilder\",\n value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {\n var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return new _text_layer_builder.TextLayerBuilder({\n textLayerDiv: textLayerDiv,\n eventBus: this.eventBus,\n pageIndex: pageIndex,\n viewport: viewport,\n findController: this.isInPresentationMode ? null : this.findController,\n enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection\n });\n }\n }, {\n key: \"createAnnotationLayerBuilder\",\n value: function createAnnotationLayerBuilder(pageDiv, pdfPage) {\n var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n;\n return new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv: pageDiv,\n pdfPage: pdfPage,\n imageResourcesPath: imageResourcesPath,\n renderInteractiveForms: renderInteractiveForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n l10n: l10n\n });\n }\n }, {\n key: \"getPagesOverview\",\n value: function getPagesOverview() {\n var pagesOverview = this._pages.map(function (pageView) {\n var viewport = pageView.pdfPage.getViewport({\n scale: 1\n });\n return {\n width: viewport.width,\n height: viewport.height,\n rotation: viewport.rotation\n };\n });\n\n if (!this.enablePrintAutoRotate) {\n return pagesOverview;\n }\n\n var isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]);\n return pagesOverview.map(function (size) {\n if (isFirstPagePortrait === (0, _ui_utils.isPortraitOrientation)(size)) {\n return size;\n }\n\n return {\n width: size.height,\n height: size.width,\n rotation: (size.rotation + 90) % 360\n };\n });\n }\n }, {\n key: \"_updateScrollMode\",\n value: function _updateScrollMode() {\n var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var scrollMode = this._scrollMode,\n viewer = this.viewer;\n viewer.classList.toggle('scrollHorizontal', scrollMode === _ui_utils.ScrollMode.HORIZONTAL);\n viewer.classList.toggle('scrollWrapped', scrollMode === _ui_utils.ScrollMode.WRAPPED);\n\n if (!this.pdfDocument || !pageNumber) {\n return;\n }\n\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n }, {\n key: \"_updateSpreadMode\",\n value: function _updateSpreadMode() {\n var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n if (!this.pdfDocument) {\n return;\n }\n\n var viewer = this.viewer,\n pages = this._pages;\n viewer.textContent = '';\n\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n for (var i = 0, iMax = pages.length; i < iMax; ++i) {\n viewer.appendChild(pages[i].div);\n }\n } else {\n var parity = this._spreadMode - 1;\n var spread = null;\n\n for (var _i = 0, _iMax = pages.length; _i < _iMax; ++_i) {\n if (spread === null) {\n spread = document.createElement('div');\n spread.className = 'spread';\n viewer.appendChild(spread);\n } else if (_i % 2 === parity) {\n spread = spread.cloneNode(false);\n viewer.appendChild(spread);\n }\n\n spread.appendChild(pages[_i].div);\n }\n }\n\n if (!pageNumber) {\n return;\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n }, {\n key: \"pagesCount\",\n get: function get() {\n return this._pages.length;\n }\n }, {\n key: \"pageViewsReady\",\n get: function get() {\n return this._pageViewsReady;\n }\n }, {\n key: \"currentPageNumber\",\n get: function get() {\n return this._currentPageNumber;\n },\n set: function set(val) {\n if (!Number.isInteger(val)) {\n throw new Error('Invalid page number.');\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (!this._setCurrentPageNumber(val, true)) {\n console.error(\"\".concat(this._name, \".currentPageNumber: \\\"\").concat(val, \"\\\" is not a valid page.\"));\n }\n }\n }, {\n key: \"currentPageLabel\",\n get: function get() {\n return this._pageLabels && this._pageLabels[this._currentPageNumber - 1];\n },\n set: function set(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n var page = val | 0;\n\n if (this._pageLabels) {\n var i = this._pageLabels.indexOf(val);\n\n if (i >= 0) {\n page = i + 1;\n }\n }\n\n if (!this._setCurrentPageNumber(page, true)) {\n console.error(\"\".concat(this._name, \".currentPageLabel: \\\"\").concat(val, \"\\\" is not a valid page.\"));\n }\n }\n }, {\n key: \"currentScale\",\n get: function get() {\n return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;\n },\n set: function set(val) {\n if (isNaN(val)) {\n throw new Error('Invalid numeric scale.');\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n }, {\n key: \"currentScaleValue\",\n get: function get() {\n return this._currentScaleValue;\n },\n set: function set(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n }, {\n key: \"pagesRotation\",\n get: function get() {\n return this._pagesRotation;\n },\n set: function set(rotation) {\n if (!(0, _ui_utils.isValidRotation)(rotation)) {\n throw new Error('Invalid pages rotation angle.');\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (this._pagesRotation === rotation) {\n return;\n }\n\n this._pagesRotation = rotation;\n var pageNumber = this._currentPageNumber;\n\n for (var i = 0, ii = this._pages.length; i < ii; i++) {\n var pageView = this._pages[i];\n pageView.update(pageView.scale, rotation);\n }\n\n if (this._currentScaleValue) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this.eventBus.dispatch('rotationchanging', {\n source: this,\n pagesRotation: rotation,\n pageNumber: pageNumber\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n }, {\n key: \"_setDocumentViewerElement\",\n get: function get() {\n throw new Error('Not implemented: _setDocumentViewerElement');\n }\n }, {\n key: \"_isScrollModeHorizontal\",\n get: function get() {\n return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL;\n }\n }, {\n key: \"isInPresentationMode\",\n get: function get() {\n return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;\n }\n }, {\n key: \"isChangingPresentationMode\",\n get: function get() {\n return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;\n }\n }, {\n key: \"isHorizontalScrollbarEnabled\",\n get: function get() {\n return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;\n }\n }, {\n key: \"isVerticalScrollbarEnabled\",\n get: function get() {\n return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;\n }\n }, {\n key: \"hasEqualPageSizes\",\n get: function get() {\n var firstPageView = this._pages[0];\n\n for (var i = 1, ii = this._pages.length; i < ii; ++i) {\n var pageView = this._pages[i];\n\n if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"scrollMode\",\n get: function get() {\n return this._scrollMode;\n },\n set: function set(mode) {\n if (this._scrollMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidScrollMode)(mode)) {\n throw new Error(\"Invalid scroll mode: \".concat(mode));\n }\n\n this._scrollMode = mode;\n this.eventBus.dispatch('scrollmodechanged', {\n source: this,\n mode: mode\n });\n\n this._updateScrollMode(this._currentPageNumber);\n }\n }, {\n key: \"spreadMode\",\n get: function get() {\n return this._spreadMode;\n },\n set: function set(mode) {\n if (this._spreadMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidSpreadMode)(mode)) {\n throw new Error(\"Invalid spread mode: \".concat(mode));\n }\n\n this._spreadMode = mode;\n this.eventBus.dispatch('spreadmodechanged', {\n source: this,\n mode: mode\n });\n\n this._updateSpreadMode(this._currentPageNumber);\n }\n }]);\n\n return BaseViewer;\n}();\n\nexports.BaseViewer = BaseViewer;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFViewer = void 0;\n\nvar _base_viewer = __w_pdfjs_require__(19);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar PDFViewer =\n/*#__PURE__*/\nfunction (_BaseViewer) {\n _inherits(PDFViewer, _BaseViewer);\n\n function PDFViewer() {\n _classCallCheck(this, PDFViewer);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PDFViewer).apply(this, arguments));\n }\n\n _createClass(PDFViewer, [{\n key: \"_scrollIntoView\",\n value: function _scrollIntoView(_ref) {\n var pageDiv = _ref.pageDiv,\n _ref$pageSpot = _ref.pageSpot,\n pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot,\n _ref$pageNumber = _ref.pageNumber,\n pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber;\n\n if (!pageSpot && !this.isInPresentationMode) {\n var left = pageDiv.offsetLeft + pageDiv.clientLeft;\n var right = left + pageDiv.clientWidth;\n var _this$container = this.container,\n scrollLeft = _this$container.scrollLeft,\n clientWidth = _this$container.clientWidth;\n\n if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) {\n pageSpot = {\n left: 0,\n top: 0\n };\n }\n }\n\n _get(_getPrototypeOf(PDFViewer.prototype), \"_scrollIntoView\", this).call(this, {\n pageDiv: pageDiv,\n pageSpot: pageSpot,\n pageNumber: pageNumber\n });\n }\n }, {\n key: \"_getVisiblePages\",\n value: function _getVisiblePages() {\n if (this.isInPresentationMode) {\n return this._getCurrentVisiblePage();\n }\n\n return _get(_getPrototypeOf(PDFViewer.prototype), \"_getVisiblePages\", this).call(this);\n }\n }, {\n key: \"_updateHelper\",\n value: function _updateHelper(visiblePages) {\n if (this.isInPresentationMode) {\n return;\n }\n\n var currentId = this._currentPageNumber;\n var stillFullyVisible = false;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = visiblePages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var page = _step.value;\n\n if (page.percent < 100) {\n break;\n }\n\n if (page.id === currentId) {\n stillFullyVisible = true;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n if (!stillFullyVisible) {\n currentId = visiblePages[0].id;\n }\n\n this._setCurrentPageNumber(currentId);\n }\n }, {\n key: \"_setDocumentViewerElement\",\n get: function get() {\n return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this.viewer);\n }\n }]);\n\n return PDFViewer;\n}(_base_viewer.BaseViewer);\n\nexports.PDFViewer = PDFViewer;\n\n/***/ })\n/******/ ]);\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export function identity(x) {\n return x;\n}\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n let item;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nexport class SimpleInnerSubscriber extends Subscriber {\n constructor(parent) {\n super();\n this.parent = parent;\n }\n _next(value) {\n this.parent.notifyNext(value);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete();\n this.unsubscribe();\n }\n}\nexport class ComplexInnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\nexport class SimpleOuterSubscriber extends Subscriber {\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyError(err) {\n this.destination.error(err);\n }\n notifyComplete() {\n this.destination.complete();\n }\n}\nexport class ComplexOuterSubscriber extends Subscriber {\n notifyNext(_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error) {\n this.destination.error(error);\n }\n notifyComplete(_innerSub) {\n this.destination.complete();\n }\n}\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n let subscription;\n try {\n subscription = subscribeTo(result)(innerSubscriber);\n }\n catch (error) {\n innerSubscriber.error(error);\n }\n return subscription;\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\nexport const flatMap = mergeMap;\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Number.POSITIVE_INFINITY) {\n return mergeMap(identity, concurrent);\n}\n","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge(...observables) {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler = null;\n let last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n","import { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\nexport const connectableObservableDescriptor = (() => {\n const connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _error(err) {\n this._unsubscribe();\n super._error(err);\n }\n _complete() {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return (source) => refCount()(multicast(shareSubjectFactory)(source));\n}\n","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n let subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n const connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexport class MulticastOperator {\n constructor(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n call(subscriber, source) {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","/**\n * @license Angular v12.2.13\n * (c) 2010-2021 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { Subject, Subscription, Observable, merge as merge$1 } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return (before == null || before === '') ?\n (after === null ? '' : after) :\n ((after == null || after === '') ? before : before + ' ' + after);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * @usageNotes\n * ### Example\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n * @publicApi\n */\nfunction forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see `forwardRef`\n * @publicApi\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/** Checks whether a function is wrapped by a `forwardRef`. */\nfunction isForwardRef(fn) {\n return typeof fn === 'function' && fn.hasOwnProperty(__forward_ref__) &&\n fn.__forward_ref__ === forwardRef;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Base URL for the error details page.\n *\n * Keep the files below in sync:\n * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts\n * - packages/core/src/render3/error_details_base_url.ts\n */\nconst ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.io/errors';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass RuntimeError extends Error {\n constructor(code, message) {\n super(formatRuntimeError(code, message));\n this.code = code;\n }\n}\n// Contains a set of error messages that have details guides at angular.io.\n// Full list of available error guides can be found at https://angular.io/errors\n/* tslint:disable:no-toplevel-property-access */\nconst RUNTIME_ERRORS_WITH_GUIDES = new Set([\n \"100\" /* EXPRESSION_CHANGED_AFTER_CHECKED */,\n \"200\" /* CYCLIC_DI_DEPENDENCY */,\n \"201\" /* PROVIDER_NOT_FOUND */,\n \"300\" /* MULTIPLE_COMPONENTS_MATCH */,\n \"301\" /* EXPORT_NOT_FOUND */,\n \"302\" /* PIPE_NOT_FOUND */,\n]);\n/* tslint:enable:no-toplevel-property-access */\n/** Called to format a runtime error */\nfunction formatRuntimeError(code, message) {\n const fullCode = code ? `NG0${code}: ` : '';\n let errorMessage = `${fullCode}${message}`;\n // Some runtime errors are still thrown without `ngDevMode` (for example\n // `throwProviderNotFoundError`), so we add `ngDevMode` check here to avoid pulling\n // `RUNTIME_ERRORS_WITH_GUIDES` symbol into prod bundles.\n // TODO: revisit all instances where `RuntimeError` is thrown and see if `ngDevMode` can be added\n // there instead to tree-shake more devmode-only code (and eventually remove `ngDevMode` check\n // from this code).\n if (ngDevMode && RUNTIME_ERRORS_WITH_GUIDES.has(code)) {\n errorMessage = `${errorMessage}. Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/NG0${code}`;\n }\n return errorMessage;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * Check `core/test/render3/perf/render_stringify` for benchmarks and alternate implementations.\n */\nfunction renderStringify(value) {\n if (typeof value === 'string')\n return value;\n if (value == null)\n return '';\n // Use `String` so that it invokes the `toString` method of the value. Note that this\n // appears to be faster than calling `value.toString` (see `render_stringify` benchmark).\n return String(value);\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function')\n return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\n\n/** Called when directives inject each other (creating a circular dependency) */\nfunction throwCyclicDependencyError(token, path) {\n const depPath = path ? `. Dependency path: ${path.join(' > ')} > ${token}` : '';\n throw new RuntimeError(\"200\" /* CYCLIC_DI_DEPENDENCY */, `Circular dependency in DI detected for ${token}${depPath}`);\n}\nfunction throwMixedMultiProviderError() {\n throw new Error(`Cannot mix multi providers and regular providers`);\n}\nfunction throwInvalidProviderError(ngModuleType, providers, provider) {\n let ngModuleDetail = '';\n if (ngModuleType && providers) {\n const providerDetail = providers.map(v => v == provider ? '?' + provider + '?' : '...');\n ngModuleDetail =\n ` - only instances of Provider and Type are allowed, got: [${providerDetail.join(', ')}]`;\n }\n throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}'` + ngModuleDetail);\n}\n/** Throws an error when a token is not found in DI. */\nfunction throwProviderNotFoundError(token, injectorName) {\n const injectorDetails = injectorName ? ` in ${injectorName}` : '';\n throw new RuntimeError(\"201\" /* PROVIDER_NOT_FOUND */, `No provider for ${stringifyForError(token)} found${injectorDetails}`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction assertNumber(actual, msg) {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\nfunction assertNumberInRange(actual, minInclusive, maxInclusive) {\n assertNumber(actual, 'Expected a number');\n assertLessThanOrEqual(actual, maxInclusive, 'Expected number to be less than or equal to');\n assertGreaterThanOrEqual(actual, minInclusive, 'Expected number to be greater than or equal to');\n}\nfunction assertString(actual, msg) {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\nfunction assertFunction(actual, msg) {\n if (!(typeof actual === 'function')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'function', '===');\n }\n}\nfunction assertEqual(actual, expected, msg) {\n if (!(actual == expected)) {\n throwError(msg, actual, expected, '==');\n }\n}\nfunction assertNotEqual(actual, expected, msg) {\n if (!(actual != expected)) {\n throwError(msg, actual, expected, '!=');\n }\n}\nfunction assertSame(actual, expected, msg) {\n if (!(actual === expected)) {\n throwError(msg, actual, expected, '===');\n }\n}\nfunction assertNotSame(actual, expected, msg) {\n if (!(actual !== expected)) {\n throwError(msg, actual, expected, '!==');\n }\n}\nfunction assertLessThan(actual, expected, msg) {\n if (!(actual < expected)) {\n throwError(msg, actual, expected, '<');\n }\n}\nfunction assertLessThanOrEqual(actual, expected, msg) {\n if (!(actual <= expected)) {\n throwError(msg, actual, expected, '<=');\n }\n}\nfunction assertGreaterThan(actual, expected, msg) {\n if (!(actual > expected)) {\n throwError(msg, actual, expected, '>');\n }\n}\nfunction assertGreaterThanOrEqual(actual, expected, msg) {\n if (!(actual >= expected)) {\n throwError(msg, actual, expected, '>=');\n }\n}\nfunction assertNotDefined(actual, msg) {\n if (actual != null) {\n throwError(msg, actual, null, '==');\n }\n}\nfunction assertDefined(actual, msg) {\n if (actual == null) {\n throwError(msg, actual, null, '!=');\n }\n}\nfunction throwError(msg, actual, expected, comparison) {\n throw new Error(`ASSERTION ERROR: ${msg}` +\n (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));\n}\nfunction assertDomNode(node) {\n // If we're in a worker, `Node` will not be defined.\n if (!(typeof Node !== 'undefined' && node instanceof Node) &&\n !(typeof node === 'object' && node != null &&\n node.constructor.name === 'WebWorkerRenderNode')) {\n throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);\n }\n}\nfunction assertIndexInRange(arr, index) {\n assertDefined(arr, 'Array must be defined.');\n const maxLen = arr.length;\n if (index < 0 || index >= maxLen) {\n throwError(`Index expected to be less than ${maxLen} but got ${index}`);\n }\n}\nfunction assertOneOf(value, ...validValues) {\n if (validValues.indexOf(value) !== -1)\n return true;\n throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Construct an injectable definition which defines how a token will be constructed by the DI\n * system, and in which injectors (if any) it will be available.\n *\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\n * `InjectableType`.\n *\n * Options:\n * * `providedIn` determines which injectors will include the injectable, by either associating it\n * with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\n * provided in the `'root'` injector, which will be the application-level injector in most apps.\n * * `factory` gives the zero argument function which will create an instance of the injectable.\n * The factory can call `inject` to access the `Injector` and request injection of dependencies.\n *\n * @codeGenApi\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\n */\nfunction ɵɵdefineInjectable(opts) {\n return {\n token: opts.token,\n providedIn: opts.providedIn || null,\n factory: opts.factory,\n value: undefined,\n };\n}\n/**\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\n * code should now use ɵɵdefineInjectable instead.\n * @publicApi\n */\nconst defineInjectable = ɵɵdefineInjectable;\n/**\n * Construct an `InjectorDef` which configures an injector.\n *\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\n * `InjectorType`.\n *\n * Options:\n *\n * * `providers`: an optional array of providers to add to the injector. Each provider must\n * either have a factory or point to a type which has a `ɵprov` static property (the\n * type must be an `InjectableType`).\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\n * whose providers will also be added to the injector. Locally provided types will override\n * providers from imports.\n *\n * @codeGenApi\n */\nfunction ɵɵdefineInjector(options) {\n return { providers: options.providers || [], imports: options.imports || [] };\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\n * inherited value.\n *\n * @param type A type which may have its own (non-inherited) `ɵprov`.\n */\nfunction getInjectableDef(type) {\n return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_DEF);\n}\n/**\n * Return definition only if it is defined directly on `type` and is not inherited from a base\n * class of `type`.\n */\nfunction getOwnDefinition(type, field) {\n return type.hasOwnProperty(field) ? type[field] : null;\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.\n *\n * @param type A type which may have `ɵprov`, via inheritance.\n *\n * @deprecated Will be removed in a future version of Angular, where an error will occur in the\n * scenario if we find the `ɵprov` on an ancestor only.\n */\nfunction getInheritedInjectableDef(type) {\n const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);\n if (def) {\n const typeName = getTypeName(type);\n // TODO(FW-1307): Re-add ngDevMode when closure can handle it\n // ngDevMode &&\n console.warn(`DEPRECATED: DI is instantiating a token \"${typeName}\" that inherits its @Injectable decorator but does not provide one itself.\\n` +\n `This will become an error in a future version of Angular. Please add @Injectable() to the \"${typeName}\" class.`);\n return def;\n }\n else {\n return null;\n }\n}\n/** Gets the name of a type, accounting for some cross-browser differences. */\nfunction getTypeName(type) {\n // `Function.prototype.name` behaves differently between IE and other browsers. In most browsers\n // it'll always return the name of the function itself, no matter how many other functions it\n // inherits from. On IE the function doesn't have its own `name` property, but it takes it from\n // the lowest level in the prototype chain. E.g. if we have `class Foo extends Parent` most\n // browsers will evaluate `Foo.name` to `Foo` while IE will return `Parent`. We work around\n // the issue by converting the function to a string and parsing its name out that way via a regex.\n if (type.hasOwnProperty('name')) {\n return type.name;\n }\n const match = ('' + type).match(/^function\\s*([^\\s(]+)/);\n return match === null ? '' : match[1];\n}\n/**\n * Read the injector def type in a way which is immune to accidentally reading inherited value.\n *\n * @param type type which may have an injector def (`ɵinj`)\n */\nfunction getInjectorDef(type) {\n return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF)) ?\n type[NG_INJ_DEF] :\n null;\n}\nconst NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });\nconst NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });\n// We need to keep these around so we can read off old defs if new defs are unavailable\nconst NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });\nconst NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection flags for DI.\n *\n * @publicApi\n */\nvar InjectFlags;\n(function (InjectFlags) {\n // TODO(alxhub): make this 'const' (and remove `InternalInjectFlags` enum) when ngc no longer\n // writes exports of it into ngfactory files.\n /** Check self and check parent injector if needed */\n InjectFlags[InjectFlags[\"Default\"] = 0] = \"Default\";\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n InjectFlags[InjectFlags[\"Host\"] = 1] = \"Host\";\n /** Don't ascend to ancestors of the node requesting injection. */\n InjectFlags[InjectFlags[\"Self\"] = 2] = \"Self\";\n /** Skip the node that is requesting injection. */\n InjectFlags[InjectFlags[\"SkipSelf\"] = 4] = \"SkipSelf\";\n /** Inject `defaultValue` instead if token not found. */\n InjectFlags[InjectFlags[\"Optional\"] = 8] = \"Optional\";\n})(InjectFlags || (InjectFlags = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Current implementation of inject.\n *\n * By default, it is `injectInjectorOnly`, which makes it `Injector`-only aware. It can be changed\n * to `directiveInject`, which brings in the `NodeInjector` system of ivy. It is designed this\n * way for two reasons:\n * 1. `Injector` should not depend on ivy logic.\n * 2. To maintain tree shake-ability we don't want to bring in unnecessary code.\n */\nlet _injectImplementation;\nfunction getInjectImplementation() {\n return _injectImplementation;\n}\n/**\n * Sets the current inject implementation.\n */\nfunction setInjectImplementation(impl) {\n const previous = _injectImplementation;\n _injectImplementation = impl;\n return previous;\n}\n/**\n * Injects `root` tokens in limp mode.\n *\n * If no injector exists, we can still inject tree-shakable providers which have `providedIn` set to\n * `\"root\"`. This is known as the limp mode injection. In such case the value is stored in the\n * injectable definition.\n */\nfunction injectRootLimpMode(token, notFoundValue, flags) {\n const injectableDef = getInjectableDef(token);\n if (injectableDef && injectableDef.providedIn == 'root') {\n return injectableDef.value === undefined ? injectableDef.value = injectableDef.factory() :\n injectableDef.value;\n }\n if (flags & InjectFlags.Optional)\n return null;\n if (notFoundValue !== undefined)\n return notFoundValue;\n throwProviderNotFoundError(stringify(token), 'Injector');\n}\n/**\n * Assert that `_injectImplementation` is not `fn`.\n *\n * This is useful, to prevent infinite recursion.\n *\n * @param fn Function which it should not equal to\n */\nfunction assertInjectImplementationNotEqual(fn) {\n ngDevMode &&\n assertNotEqual(_injectImplementation, fn, 'Calling ɵɵinject would cause infinite recursion');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Convince closure compiler that the wrapped function has no side-effects.\n *\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\n * It is important that the return value for the `noSideEffects` function be assigned\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\n * compiler.\n */\nfunction noSideEffects(fn) {\n return { toString: fn }.toString();\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The strategy that the default change detector uses to detect changes.\n * When set, takes effect the next time change detection is triggered.\n *\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\n *\n * @publicApi\n */\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n /**\n * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\n * until reactivated by setting the strategy to `Default` (`CheckAlways`).\n * Change detection can still be explicitly invoked.\n * This strategy applies to all child directives and cannot be overridden.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n /**\n * Use the default `CheckAlways` strategy, in which change detection is automatic until\n * explicitly deactivated.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n/**\n * Defines the possible states of the default change detector.\n * @see `ChangeDetectorRef`\n */\nvar ChangeDetectorStatus;\n(function (ChangeDetectorStatus) {\n /**\n * A state in which, after calling `detectChanges()`, the change detector\n * state becomes `Checked`, and must be explicitly invoked or reactivated.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"CheckOnce\"] = 0] = \"CheckOnce\";\n /**\n * A state in which change detection is skipped until the change detector mode\n * becomes `CheckOnce`.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Checked\"] = 1] = \"Checked\";\n /**\n * A state in which change detection continues automatically until explicitly\n * deactivated.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"CheckAlways\"] = 2] = \"CheckAlways\";\n /**\n * A state in which a change detector sub tree is not a part of the main tree and\n * should be skipped.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Detached\"] = 3] = \"Detached\";\n /**\n * Indicates that the change detector encountered an error checking a binding\n * or calling a directive lifecycle method and is now in an inconsistent state. Change\n * detectors in this state do not detect changes.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Errored\"] = 4] = \"Errored\";\n /**\n * Indicates that the change detector has been destroyed.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Destroyed\"] = 5] = \"Destroyed\";\n})(ChangeDetectorStatus || (ChangeDetectorStatus = {}));\n/**\n * Reports whether a given strategy is currently the default for change detection.\n * @param changeDetectionStrategy The strategy to check.\n * @returns True if the given strategy is the current default, false otherwise.\n * @see `ChangeDetectorStatus`\n * @see `ChangeDetectorRef`\n */\nfunction isDefaultChangeDetectionStrategy(changeDetectionStrategy) {\n return changeDetectionStrategy == null ||\n changeDetectionStrategy === ChangeDetectionStrategy.Default;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines template and style encapsulation options available for Component's {@link Component}.\n *\n * See {@link Component#encapsulation encapsulation}.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\n *\n * @publicApi\n */\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n /**\n * Emulate `Native` scoping of styles by adding an attribute containing surrogate id to the Host\n * Element and pre-processing the style rules provided via {@link Component#styles styles} or\n * {@link Component#styleUrls styleUrls}, and adding the new Host Element attribute to all\n * selectors.\n *\n * This is the default option.\n */\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n /**\n * Don't provide any template or style encapsulation.\n */\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n /**\n * Use Shadow DOM to encapsulate styles.\n *\n * For the DOM this means using modern [Shadow\n * DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM) and\n * creating a ShadowRoot for Component's Host Element.\n */\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __globalThis = typeof globalThis !== 'undefined' && globalThis;\nconst __window = typeof window !== 'undefined' && window;\nconst __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nconst __global = typeof global !== 'undefined' && global;\n// Always use __globalThis if available, which is the spec-defined global variable across all\n// environments, then fallback to __global first, because in Node tests both __global and\n// __window may be defined and _global should be __global in that case.\nconst _global = __globalThis || __global || __window || __self;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction ngDevModeResetPerfCounters() {\n const locationString = typeof location !== 'undefined' ? location.toString() : '';\n const newCounters = {\n namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,\n firstCreatePass: 0,\n tNode: 0,\n tView: 0,\n rendererCreateTextNode: 0,\n rendererSetText: 0,\n rendererCreateElement: 0,\n rendererAddEventListener: 0,\n rendererSetAttribute: 0,\n rendererRemoveAttribute: 0,\n rendererSetProperty: 0,\n rendererSetClassName: 0,\n rendererAddClass: 0,\n rendererRemoveClass: 0,\n rendererSetStyle: 0,\n rendererRemoveStyle: 0,\n rendererDestroy: 0,\n rendererDestroyNode: 0,\n rendererMoveNode: 0,\n rendererRemoveNode: 0,\n rendererAppendChild: 0,\n rendererInsertBefore: 0,\n rendererCreateComment: 0,\n };\n // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.\n const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;\n _global['ngDevMode'] = allowNgDevModeTrue && newCounters;\n return newCounters;\n}\n/**\n * This function checks to see if the `ngDevMode` has been set. If yes,\n * then we honor it, otherwise we default to dev mode with additional checks.\n *\n * The idea is that unless we are doing production build where we explicitly\n * set `ngDevMode == false` we should be helping the developer by providing\n * as much early warning and errors as possible.\n *\n * `ɵɵdefineComponent` is guaranteed to have been called before any component template functions\n * (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode\n * is defined for the entire instruction set.\n *\n * When checking `ngDevMode` on toplevel, always init it before referencing it\n * (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can\n * get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.\n *\n * Details on possible values for `ngDevMode` can be found on its docstring.\n *\n * NOTE:\n * - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nfunction initNgDevMode() {\n // The below checks are to ensure that calling `initNgDevMode` multiple times does not\n // reset the counters.\n // If the `ngDevMode` is not an object, then it means we have not created the perf counters\n // yet.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (typeof ngDevMode !== 'object') {\n ngDevModeResetPerfCounters();\n }\n return typeof ngDevMode !== 'undefined' && !!ngDevMode;\n }\n return false;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This file contains reuseable \"empty\" symbols that can be used as default return values\n * in different parts of the rendering code. Because the same symbols are returned, this\n * allows for identity checks against these values to be consistently used by the framework\n * code.\n */\nconst EMPTY_OBJ = {};\nconst EMPTY_ARRAY = [];\n// freezing the values prevents any code from accidentally inserting new values in\nif ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {\n // These property accesses can be ignored because ngDevMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_OBJ);\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_ARRAY);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });\nconst NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });\nconst NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });\nconst NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });\nconst NG_LOC_ID_DEF = getClosureSafeProperty({ ɵloc: getClosureSafeProperty });\nconst NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });\n/**\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\n * the key and the directive's unique ID as the value. This allows us to map directives to their\n * bloom filter bit for DI.\n */\n// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.\nconst NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _renderCompCount = 0;\n/**\n * Create a component definition object.\n *\n *\n * # Example\n * ```\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵcmp = defineComponent({\n * ...\n * });\n * }\n * ```\n * @codeGenApi\n */\nfunction ɵɵdefineComponent(componentDefinition) {\n return noSideEffects(() => {\n // Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n const type = componentDefinition.type;\n const declaredInputs = {};\n const def = {\n type: type,\n providersResolver: null,\n decls: componentDefinition.decls,\n vars: componentDefinition.vars,\n factory: null,\n template: componentDefinition.template || null,\n consts: componentDefinition.consts || null,\n ngContentSelectors: componentDefinition.ngContentSelectors,\n hostBindings: componentDefinition.hostBindings || null,\n hostVars: componentDefinition.hostVars || 0,\n hostAttrs: componentDefinition.hostAttrs || null,\n contentQueries: componentDefinition.contentQueries || null,\n declaredInputs: declaredInputs,\n inputs: null,\n outputs: null,\n exportAs: componentDefinition.exportAs || null,\n onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,\n directiveDefs: null,\n pipeDefs: null,\n selectors: componentDefinition.selectors || EMPTY_ARRAY,\n viewQuery: componentDefinition.viewQuery || null,\n features: componentDefinition.features || null,\n data: componentDefinition.data || {},\n // TODO(misko): convert ViewEncapsulation into const enum so that it can be used\n // directly in the next line. Also `None` should be 0 not 2.\n encapsulation: componentDefinition.encapsulation || ViewEncapsulation.Emulated,\n id: 'c',\n styles: componentDefinition.styles || EMPTY_ARRAY,\n _: null,\n setInput: null,\n schemas: componentDefinition.schemas || null,\n tView: null,\n };\n const directiveTypes = componentDefinition.directives;\n const feature = componentDefinition.features;\n const pipeTypes = componentDefinition.pipes;\n def.id += _renderCompCount++;\n def.inputs = invertObject(componentDefinition.inputs, declaredInputs),\n def.outputs = invertObject(componentDefinition.outputs),\n feature && feature.forEach((fn) => fn(def));\n def.directiveDefs = directiveTypes ?\n () => (typeof directiveTypes === 'function' ? directiveTypes() : directiveTypes)\n .map(extractDirectiveDef) :\n null;\n def.pipeDefs = pipeTypes ?\n () => (typeof pipeTypes === 'function' ? pipeTypes() : pipeTypes).map(extractPipeDef) :\n null;\n return def;\n });\n}\n/**\n * Generated next to NgModules to monkey-patch directive and pipe references onto a component's\n * definition, when generating a direct reference in the component file would otherwise create an\n * import cycle.\n *\n * See [this explanation](https://hackmd.io/Odw80D0pR6yfsOjg_7XCJg?view) for more details.\n *\n * @codeGenApi\n */\nfunction ɵɵsetComponentScope(type, directives, pipes) {\n const def = type.ɵcmp;\n def.directiveDefs = () => directives.map(extractDirectiveDef);\n def.pipeDefs = () => pipes.map(extractPipeDef);\n}\nfunction extractDirectiveDef(type) {\n const def = getComponentDef(type) || getDirectiveDef(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is neither 'ComponentType' or 'DirectiveType'.`);\n }\n return def;\n}\nfunction extractPipeDef(type) {\n const def = getPipeDef(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is not a 'PipeType'.`);\n }\n return def;\n}\nconst autoRegisterModuleById = {};\n/**\n * @codeGenApi\n */\nfunction ɵɵdefineNgModule(def) {\n return noSideEffects(() => {\n const res = {\n type: def.type,\n bootstrap: def.bootstrap || EMPTY_ARRAY,\n declarations: def.declarations || EMPTY_ARRAY,\n imports: def.imports || EMPTY_ARRAY,\n exports: def.exports || EMPTY_ARRAY,\n transitiveCompileScopes: null,\n schemas: def.schemas || null,\n id: def.id || null,\n };\n if (def.id != null) {\n autoRegisterModuleById[def.id] = def.type;\n }\n return res;\n });\n}\n/**\n * Adds the module metadata that is necessary to compute the module's transitive scope to an\n * existing module definition.\n *\n * Scope metadata of modules is not used in production builds, so calls to this function can be\n * marked pure to tree-shake it from the bundle, allowing for all referenced declarations\n * to become eligible for tree-shaking as well.\n *\n * @codeGenApi\n */\nfunction ɵɵsetNgModuleScope(type, scope) {\n return noSideEffects(() => {\n const ngModuleDef = getNgModuleDef(type, true);\n ngModuleDef.declarations = scope.declarations || EMPTY_ARRAY;\n ngModuleDef.imports = scope.imports || EMPTY_ARRAY;\n ngModuleDef.exports = scope.exports || EMPTY_ARRAY;\n });\n}\n/**\n * Inverts an inputs or outputs lookup such that the keys, which were the\n * minified keys, are part of the values, and the values are parsed so that\n * the publicName of the property is the new key\n *\n * e.g. for\n *\n * ```\n * class Comp {\n * @Input()\n * propName1: string;\n *\n * @Input('publicName2')\n * declaredPropName2: number;\n * }\n * ```\n *\n * will be serialized as\n *\n * ```\n * {\n * propName1: 'propName1',\n * declaredPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * which is than translated by the minifier as:\n *\n * ```\n * {\n * minifiedPropName1: 'propName1',\n * minifiedPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * becomes: (public name => minifiedName)\n *\n * ```\n * {\n * 'propName1': 'minifiedPropName1',\n * 'publicName2': 'minifiedPropName2',\n * }\n * ```\n *\n * Optionally the function can take `secondary` which will result in: (public name => declared name)\n *\n * ```\n * {\n * 'propName1': 'propName1',\n * 'publicName2': 'declaredPropName2',\n * }\n * ```\n *\n\n */\nfunction invertObject(obj, secondary) {\n if (obj == null)\n return EMPTY_OBJ;\n const newLookup = {};\n for (const minifiedKey in obj) {\n if (obj.hasOwnProperty(minifiedKey)) {\n let publicName = obj[minifiedKey];\n let declaredName = publicName;\n if (Array.isArray(publicName)) {\n declaredName = publicName[1];\n publicName = publicName[0];\n }\n newLookup[publicName] = minifiedKey;\n if (secondary) {\n (secondary[publicName] = declaredName);\n }\n }\n }\n return newLookup;\n}\n/**\n * Create a directive definition object.\n *\n * # Example\n * ```ts\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵdir = ɵɵdefineDirective({\n * ...\n * });\n * }\n * ```\n *\n * @codeGenApi\n */\nconst ɵɵdefineDirective = ɵɵdefineComponent;\n/**\n * Create a pipe definition object.\n *\n * # Example\n * ```\n * class MyPipe implements PipeTransform {\n * // Generated by Angular Template Compiler\n * static ɵpipe = definePipe({\n * ...\n * });\n * }\n * ```\n * @param pipeDef Pipe definition generated by the compiler\n *\n * @codeGenApi\n */\nfunction ɵɵdefinePipe(pipeDef) {\n return {\n type: pipeDef.type,\n name: pipeDef.name,\n factory: null,\n pure: pipeDef.pure !== false,\n onDestroy: pipeDef.type.prototype.ngOnDestroy || null\n };\n}\n/**\n * The following getter methods retrieve the definition from the type. Currently the retrieval\n * honors inheritance, but in the future we may change the rule to require that definitions are\n * explicit. This would require some sort of migration strategy.\n */\nfunction getComponentDef(type) {\n return type[NG_COMP_DEF] || null;\n}\nfunction getDirectiveDef(type) {\n return type[NG_DIR_DEF] || null;\n}\nfunction getPipeDef(type) {\n return type[NG_PIPE_DEF] || null;\n}\nfunction getNgModuleDef(type, throwNotFound) {\n const ngModuleDef = type[NG_MOD_DEF] || null;\n if (!ngModuleDef && throwNotFound === true) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);\n }\n return ngModuleDef;\n}\nfunction getNgLocaleIdDef(type) {\n return type[NG_LOC_ID_DEF] || null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Below are constants for LView indices to help us look up LView members\n// without having to remember the specific indices.\n// Uglify will inline these when minifying so there shouldn't be a cost.\nconst HOST = 0;\nconst TVIEW = 1;\nconst FLAGS = 2;\nconst PARENT = 3;\nconst NEXT = 4;\nconst TRANSPLANTED_VIEWS_TO_REFRESH = 5;\nconst T_HOST = 6;\nconst CLEANUP = 7;\nconst CONTEXT = 8;\nconst INJECTOR = 9;\nconst RENDERER_FACTORY = 10;\nconst RENDERER = 11;\nconst SANITIZER = 12;\nconst CHILD_HEAD = 13;\nconst CHILD_TAIL = 14;\n// FIXME(misko): Investigate if the three declarations aren't all same thing.\nconst DECLARATION_VIEW = 15;\nconst DECLARATION_COMPONENT_VIEW = 16;\nconst DECLARATION_LCONTAINER = 17;\nconst PREORDER_HOOK_FLAGS = 18;\nconst QUERIES = 19;\n/**\n * Size of LView's header. Necessary to adjust for it when setting slots.\n *\n * IMPORTANT: `HEADER_OFFSET` should only be referred to the in the `ɵɵ*` instructions to translate\n * instruction index into `LView` index. All other indexes should be in the `LView` index space and\n * there should be no need to refer to `HEADER_OFFSET` anywhere else.\n */\nconst HEADER_OFFSET = 20;\n/**\n * Converts `TViewType` into human readable text.\n * Make sure this matches with `TViewType`\n */\nconst TViewTypeAsString = [\n 'Root',\n 'Component',\n 'Embedded', // 2\n];\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Special location which allows easy identification of type. If we have an array which was\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\n * `LContainer`.\n */\nconst TYPE = 1;\n/**\n * Below are constants for LContainer indices to help us look up LContainer members\n * without having to remember the specific indices.\n * Uglify will inline these when minifying so there shouldn't be a cost.\n */\n/**\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\n *\n * This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip\n * a lot of work in `refreshEmbeddedViews`. But when set we still need to verify\n * that the `MOVED_VIEWS` are transplanted and on-push.\n */\nconst HAS_TRANSPLANTED_VIEWS = 2;\n// PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5\n// As we already have these constants in LView, we don't need to re-create them.\n// T_HOST is index 6\n// We already have this constants in LView, we don't need to re-create it.\nconst NATIVE = 7;\nconst VIEW_REFS = 8;\nconst MOVED_VIEWS = 9;\n/**\n * Size of LContainer's header. Represents the index after which all views in the\n * container will be inserted. We need to keep a record of current views so we know\n * which views are already in the DOM (and don't need to be re-added) and so we can\n * remove views from the DOM when they are no longer required.\n */\nconst CONTAINER_HEADER_OFFSET = 10;\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$1 = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * True if `value` is `LView`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLView(value) {\n return Array.isArray(value) && typeof value[TYPE] === 'object';\n}\n/**\n * True if `value` is `LContainer`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLContainer(value) {\n return Array.isArray(value) && value[TYPE] === true;\n}\nfunction isContentQueryHost(tNode) {\n return (tNode.flags & 8 /* hasContentQuery */) !== 0;\n}\nfunction isComponentHost(tNode) {\n return (tNode.flags & 2 /* isComponentHost */) === 2 /* isComponentHost */;\n}\nfunction isDirectiveHost(tNode) {\n return (tNode.flags & 1 /* isDirectiveHost */) === 1 /* isDirectiveHost */;\n}\nfunction isComponentDef(def) {\n return def.template !== null;\n}\nfunction isRootView(target) {\n return (target[FLAGS] & 512 /* IsRoot */) !== 0;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// [Assert functions do not constraint type when they are guarded by a truthy\n// expression.](https://github.com/microsoft/TypeScript/issues/37295)\nfunction assertTNodeForLView(tNode, lView) {\n assertTNodeForTView(tNode, lView[TVIEW]);\n}\nfunction assertTNodeForTView(tNode, tView) {\n assertTNode(tNode);\n tNode.hasOwnProperty('tView_') &&\n assertEqual(tNode.tView_, tView, 'This TNode does not belong to this TView.');\n}\nfunction assertTNode(tNode) {\n assertDefined(tNode, 'TNode must be defined');\n if (!(tNode && typeof tNode === 'object' && tNode.hasOwnProperty('directiveStylingLast'))) {\n throwError('Not of type TNode, got: ' + tNode);\n }\n}\nfunction assertTIcu(tIcu) {\n assertDefined(tIcu, 'Expected TIcu to be defined');\n if (!(typeof tIcu.currentCaseLViewIndex === 'number')) {\n throwError('Object is not of TIcu type.');\n }\n}\nfunction assertComponentType(actual, msg = 'Type passed in is not ComponentType, it does not have \\'ɵcmp\\' property.') {\n if (!getComponentDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertNgModuleType(actual, msg = 'Type passed in is not NgModuleType, it does not have \\'ɵmod\\' property.') {\n if (!getNgModuleDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertCurrentTNodeIsParent(isParent) {\n assertEqual(isParent, true, 'currentTNode should be a parent');\n}\nfunction assertHasParent(tNode) {\n assertDefined(tNode, 'currentTNode should exist!');\n assertDefined(tNode.parent, 'currentTNode should have a parent');\n}\nfunction assertDataNext(lView, index, arr) {\n if (arr == null)\n arr = lView;\n assertEqual(arr.length, index, `index ${index} expected to be at the end of arr (length ${arr.length})`);\n}\nfunction assertLContainer(value) {\n assertDefined(value, 'LContainer must be defined');\n assertEqual(isLContainer(value), true, 'Expecting LContainer');\n}\nfunction assertLViewOrUndefined(value) {\n value && assertEqual(isLView(value), true, 'Expecting LView or undefined or null');\n}\nfunction assertLView(value) {\n assertDefined(value, 'LView must be defined');\n assertEqual(isLView(value), true, 'Expecting LView');\n}\nfunction assertFirstCreatePass(tView, errMessage) {\n assertEqual(tView.firstCreatePass, true, errMessage || 'Should only be called in first create pass.');\n}\nfunction assertFirstUpdatePass(tView, errMessage) {\n assertEqual(tView.firstUpdatePass, true, errMessage || 'Should only be called in first update pass.');\n}\n/**\n * This is a basic sanity check that an object is probably a directive def. DirectiveDef is\n * an interface, so we can't do a direct instanceof check.\n */\nfunction assertDirectiveDef(obj) {\n if (obj.type === undefined || obj.selectors == undefined || obj.inputs === undefined) {\n throwError(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);\n }\n}\nfunction assertIndexInDeclRange(lView, index) {\n const tView = lView[1];\n assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);\n}\nfunction assertIndexInVarsRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.bindingStartIndex, tView.expandoStartIndex, index);\n}\nfunction assertIndexInExpandoRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.expandoStartIndex, lView.length, index);\n}\nfunction assertBetween(lower, upper, index) {\n if (!(lower <= index && index < upper)) {\n throwError(`Index out of range (expecting ${lower} <= ${index} < ${upper})`);\n }\n}\nfunction assertProjectionSlots(lView, errMessage) {\n assertDefined(lView[DECLARATION_COMPONENT_VIEW], 'Component views should exist.');\n assertDefined(lView[DECLARATION_COMPONENT_VIEW][T_HOST].projection, errMessage ||\n 'Components with projection nodes () must have projection slots defined.');\n}\nfunction assertParentView(lView, errMessage) {\n assertDefined(lView, errMessage || 'Component views should always have a parent view (component\\'s host view)');\n}\n/**\n * This is a basic sanity check that the `injectorIndex` seems to point to what looks like a\n * NodeInjector data structure.\n *\n * @param lView `LView` which should be checked.\n * @param injectorIndex index into the `LView` where the `NodeInjector` is expected.\n */\nfunction assertNodeInjector(lView, injectorIndex) {\n assertIndexInExpandoRange(lView, injectorIndex);\n assertIndexInExpandoRange(lView, injectorIndex + 8 /* PARENT */);\n assertNumber(lView[injectorIndex + 0], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 1], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 2], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 3], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 4], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 5], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 6], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 7], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 8 /* PARENT */], 'injectorIndex should point to parent injector');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getFactoryDef(type, throwNotFound) {\n const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);\n if (!hasFactoryDef && throwNotFound === true && ngDevMode) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);\n }\n return hasFactoryDef ? type[NG_FACTORY_DEF] : null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents a basic change from a previous to a new value for a single\n * property on a directive instance. Passed as a value in a\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\n *\n * @see `OnChanges`\n *\n * @publicApi\n */\nclass SimpleChange {\n constructor(previousValue, currentValue, firstChange) {\n this.previousValue = previousValue;\n this.currentValue = currentValue;\n this.firstChange = firstChange;\n }\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange() {\n return this.firstChange;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\n * lifecycle hook, so it should be included in any component that implements\n * that hook.\n *\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\n * inherited properties will not be propagated to the ngOnChanges lifecycle\n * hook.\n *\n * Example usage:\n *\n * ```\n * static ɵcmp = defineComponent({\n * ...\n * inputs: {name: 'publicName'},\n * features: [NgOnChangesFeature]\n * });\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵNgOnChangesFeature() {\n return NgOnChangesFeatureImpl;\n}\nfunction NgOnChangesFeatureImpl(definition) {\n if (definition.type.prototype.ngOnChanges) {\n definition.setInput = ngOnChangesSetInput;\n }\n return rememberChangeHistoryAndInvokeOnChangesHook;\n}\n// This option ensures that the ngOnChanges lifecycle hook will be inherited\n// from superclasses (in InheritDefinitionFeature).\n/** @nocollapse */\n// tslint:disable-next-line:no-toplevel-property-access\nɵɵNgOnChangesFeature.ngInherit = true;\n/**\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\n * `ngOnChanges`.\n *\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\n * found it invokes `ngOnChanges` on the component instance.\n *\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\n * it is guaranteed to be called with component instance.\n */\nfunction rememberChangeHistoryAndInvokeOnChangesHook() {\n const simpleChangesStore = getSimpleChangesStore(this);\n const current = simpleChangesStore === null || simpleChangesStore === void 0 ? void 0 : simpleChangesStore.current;\n if (current) {\n const previous = simpleChangesStore.previous;\n if (previous === EMPTY_OBJ) {\n simpleChangesStore.previous = current;\n }\n else {\n // New changes are copied to the previous store, so that we don't lose history for inputs\n // which were not changed this time\n for (let key in current) {\n previous[key] = current[key];\n }\n }\n simpleChangesStore.current = null;\n this.ngOnChanges(current);\n }\n}\nfunction ngOnChangesSetInput(instance, value, publicName, privateName) {\n const simpleChangesStore = getSimpleChangesStore(instance) ||\n setSimpleChangesStore(instance, { previous: EMPTY_OBJ, current: null });\n const current = simpleChangesStore.current || (simpleChangesStore.current = {});\n const previous = simpleChangesStore.previous;\n const declaredName = this.declaredInputs[publicName];\n const previousChange = previous[declaredName];\n current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ);\n instance[privateName] = value;\n}\nconst SIMPLE_CHANGES_STORE = '__ngSimpleChanges__';\nfunction getSimpleChangesStore(instance) {\n return instance[SIMPLE_CHANGES_STORE] || null;\n}\nfunction setSimpleChangesStore(instance, store) {\n return instance[SIMPLE_CHANGES_STORE] = store;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet profilerCallback = null;\n/**\n * Sets the callback function which will be invoked before and after performing certain actions at\n * runtime (for example, before and after running change detection).\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setProfiler = (profiler) => {\n profilerCallback = profiler;\n};\n/**\n * Profiler function which wraps user code executed by the runtime.\n *\n * @param event ProfilerEvent corresponding to the execution context\n * @param instance component instance\n * @param hookOrListener lifecycle hook function or output listener. The value depends on the\n * execution context\n * @returns\n */\nconst profiler = function (event, instance, hookOrListener) {\n if (profilerCallback != null /* both `null` and `undefined` */) {\n profilerCallback(event, instance, hookOrListener);\n }\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst MATH_ML_NAMESPACE = 'http://www.w3.org/1998/MathML/';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Most of the use of `document` in Angular is from within the DI system so it is possible to simply\n * inject the `DOCUMENT` token and are done.\n *\n * Ivy is special because it does not rely upon the DI and must get hold of the document some other\n * way.\n *\n * The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.\n * Wherever ivy needs the global document, it calls `getDocument()` instead.\n *\n * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to\n * tell ivy what the global `document` is.\n *\n * Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)\n * by calling `setDocument()` when providing the `DOCUMENT` token.\n */\nlet DOCUMENT = undefined;\n/**\n * Tell ivy what the `document` is for this platform.\n *\n * It is only necessary to call this if the current platform is not a browser.\n *\n * @param document The object representing the global `document` in this environment.\n */\nfunction setDocument(document) {\n DOCUMENT = document;\n}\n/**\n * Access the object that represents the `document` for this platform.\n *\n * Ivy calls this whenever it needs to access the `document` object.\n * For example to create the renderer or to do sanitization.\n */\nfunction getDocument() {\n if (DOCUMENT !== undefined) {\n return DOCUMENT;\n }\n else if (typeof document !== 'undefined') {\n return document;\n }\n // No \"document\" can be found. This should only happen if we are running ivy outside Angular and\n // the current platform is not a browser. Since this is not a supported scenario at the moment\n // this should not happen in Angular apps.\n // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a\n // public API. Meanwhile we just return `undefined` and let the application fail.\n return undefined;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO: cleanup once the code is merged in angular/angular\nvar RendererStyleFlags3;\n(function (RendererStyleFlags3) {\n RendererStyleFlags3[RendererStyleFlags3[\"Important\"] = 1] = \"Important\";\n RendererStyleFlags3[RendererStyleFlags3[\"DashCase\"] = 2] = \"DashCase\";\n})(RendererStyleFlags3 || (RendererStyleFlags3 = {}));\n/** Returns whether the `renderer` is a `ProceduralRenderer3` */\nfunction isProceduralRenderer(renderer) {\n return !!(renderer.listen);\n}\nconst ɵ0 = (hostElement, rendererType) => {\n return getDocument();\n};\nconst domRendererFactory3 = {\n createRenderer: ɵ0\n};\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$2 = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)\n * in same location in `LView`. This is because we don't want to pre-allocate space for it\n * because the storage is sparse. This file contains utilities for dealing with such data types.\n *\n * How do we know what is stored at a given location in `LView`.\n * - `Array.isArray(value) === false` => `RNode` (The normal storage value)\n * - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.\n * - `typeof value[TYPE] === 'object'` => `LView`\n * - This happens when we have a component at a given location\n * - `typeof value[TYPE] === true` => `LContainer`\n * - This happens when we have `LContainer` binding at a given location.\n *\n *\n * NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.\n */\n/**\n * Returns `RNode`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapRNode(value) {\n while (Array.isArray(value)) {\n value = value[HOST];\n }\n return value;\n}\n/**\n * Returns `LView` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLView(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLView()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (typeof value[TYPE] === 'object')\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Returns `LContainer` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLContainer(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLContainer()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (value[TYPE] === true)\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Retrieves an element value from the provided `viewData`, by unwrapping\n * from any containers, component views, or style contexts.\n */\nfunction getNativeByIndex(index, lView) {\n ngDevMode && assertIndexInRange(lView, index);\n ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Expected to be past HEADER_OFFSET');\n return unwrapRNode(lView[index]);\n}\n/**\n * Retrieve an `RNode` for a given `TNode` and `LView`.\n *\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNode(tNode, lView) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode && assertIndexInRange(lView, tNode.index);\n const node = unwrapRNode(lView[tNode.index]);\n ngDevMode && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n}\n/**\n * Retrieve an `RNode` or `null` for a given `TNode` and `LView`.\n *\n * Some `TNode`s don't have associated `RNode`s. For example `Projection`\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNodeOrNull(tNode, lView) {\n const index = tNode === null ? -1 : tNode.index;\n if (index !== -1) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n const node = unwrapRNode(lView[index]);\n ngDevMode && node !== null && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n }\n return null;\n}\n// fixme(misko): The return Type should be `TNode|null`\nfunction getTNode(tView, index) {\n ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');\n ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');\n const tNode = tView.data[index];\n ngDevMode && tNode !== null && assertTNode(tNode);\n return tNode;\n}\n/** Retrieves a value from any `LView` or `TData`. */\nfunction load(view, index) {\n ngDevMode && assertIndexInRange(view, index);\n return view[index];\n}\nfunction getComponentLViewByIndex(nodeIndex, hostView) {\n // Could be an LView or an LContainer. If LContainer, unwrap to find LView.\n ngDevMode && assertIndexInRange(hostView, nodeIndex);\n const slotValue = hostView[nodeIndex];\n const lView = isLView(slotValue) ? slotValue : slotValue[HOST];\n return lView;\n}\n/** Checks whether a given view is in creation mode */\nfunction isCreationMode(view) {\n return (view[FLAGS] & 4 /* CreationMode */) === 4 /* CreationMode */;\n}\n/**\n * Returns a boolean for whether the view is attached to the change detection tree.\n *\n * Note: This determines whether a view should be checked, not whether it's inserted\n * into a container. For that, you'll want `viewAttachedToContainer` below.\n */\nfunction viewAttachedToChangeDetector(view) {\n return (view[FLAGS] & 128 /* Attached */) === 128 /* Attached */;\n}\n/** Returns a boolean for whether the view is attached to a container. */\nfunction viewAttachedToContainer(view) {\n return isLContainer(view[PARENT]);\n}\nfunction getConstant(consts, index) {\n if (index === null || index === undefined)\n return null;\n ngDevMode && assertIndexInRange(consts, index);\n return consts[index];\n}\n/**\n * Resets the pre-order hook flags of the view.\n * @param lView the LView on which the flags are reset\n */\nfunction resetPreOrderHookFlags(lView) {\n lView[PREORDER_HOOK_FLAGS] = 0;\n}\n/**\n * Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents\n * whose\n * 1. counter goes from 0 to 1, indicating that there is a new child that has a view to refresh\n * or\n * 2. counter goes from 1 to 0, indicating there are no more descendant views to refresh\n */\nfunction updateTransplantedViewCount(lContainer, amount) {\n lContainer[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n let viewOrContainer = lContainer;\n let parent = lContainer[PARENT];\n while (parent !== null &&\n ((amount === 1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 1) ||\n (amount === -1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 0))) {\n parent[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n viewOrContainer = parent;\n parent = parent[PARENT];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst instructionState = {\n lFrame: createLFrame(null),\n bindingsEnabled: true,\n isInCheckNoChangesMode: false,\n};\n/**\n * Returns true if the instruction state stack is empty.\n *\n * Intended to be called from tests only (tree shaken otherwise).\n */\nfunction specOnlyIsInstructionStateEmpty() {\n return instructionState.lFrame.parent === null;\n}\nfunction getElementDepthCount() {\n return instructionState.lFrame.elementDepthCount;\n}\nfunction increaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount++;\n}\nfunction decreaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount--;\n}\nfunction getBindingsEnabled() {\n return instructionState.bindingsEnabled;\n}\n/**\n * Enables directive matching on elements.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵenableBindings() {\n instructionState.bindingsEnabled = true;\n}\n/**\n * Disables directive matching on element.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdisableBindings() {\n instructionState.bindingsEnabled = false;\n}\n/**\n * Return the current `LView`.\n */\nfunction getLView() {\n return instructionState.lFrame.lView;\n}\n/**\n * Return the current `TView`.\n */\nfunction getTView() {\n return instructionState.lFrame.tView;\n}\n/**\n * Restores `contextViewData` to the given OpaqueViewState instance.\n *\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * @param viewToRestore The OpaqueViewState instance to restore.\n * @returns Context of the restored OpaqueViewState instance.\n *\n * @codeGenApi\n */\nfunction ɵɵrestoreView(viewToRestore) {\n instructionState.lFrame.contextLView = viewToRestore;\n return viewToRestore[CONTEXT];\n}\nfunction getCurrentTNode() {\n let currentTNode = getCurrentTNodePlaceholderOk();\n while (currentTNode !== null && currentTNode.type === 64 /* Placeholder */) {\n currentTNode = currentTNode.parent;\n }\n return currentTNode;\n}\nfunction getCurrentTNodePlaceholderOk() {\n return instructionState.lFrame.currentTNode;\n}\nfunction getCurrentParentTNode() {\n const lFrame = instructionState.lFrame;\n const currentTNode = lFrame.currentTNode;\n return lFrame.isParent ? currentTNode : currentTNode.parent;\n}\nfunction setCurrentTNode(tNode, isParent) {\n ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView);\n const lFrame = instructionState.lFrame;\n lFrame.currentTNode = tNode;\n lFrame.isParent = isParent;\n}\nfunction isCurrentTNodeParent() {\n return instructionState.lFrame.isParent;\n}\nfunction setCurrentTNodeAsNotParent() {\n instructionState.lFrame.isParent = false;\n}\nfunction setCurrentTNodeAsParent() {\n instructionState.lFrame.isParent = true;\n}\nfunction getContextLView() {\n return instructionState.lFrame.contextLView;\n}\nfunction isInCheckNoChangesMode() {\n // TODO(misko): remove this from the LView since it is ngDevMode=true mode only.\n return instructionState.isInCheckNoChangesMode;\n}\nfunction setIsInCheckNoChangesMode(mode) {\n instructionState.isInCheckNoChangesMode = mode;\n}\n// top level variables should not be exported for performance reasons (PERF_NOTES.md)\nfunction getBindingRoot() {\n const lFrame = instructionState.lFrame;\n let index = lFrame.bindingRootIndex;\n if (index === -1) {\n index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;\n }\n return index;\n}\nfunction getBindingIndex() {\n return instructionState.lFrame.bindingIndex;\n}\nfunction setBindingIndex(value) {\n return instructionState.lFrame.bindingIndex = value;\n}\nfunction nextBindingIndex() {\n return instructionState.lFrame.bindingIndex++;\n}\nfunction incrementBindingIndex(count) {\n const lFrame = instructionState.lFrame;\n const index = lFrame.bindingIndex;\n lFrame.bindingIndex = lFrame.bindingIndex + count;\n return index;\n}\nfunction isInI18nBlock() {\n return instructionState.lFrame.inI18n;\n}\nfunction setInI18nBlock(isInI18nBlock) {\n instructionState.lFrame.inI18n = isInI18nBlock;\n}\n/**\n * Set a new binding root index so that host template functions can execute.\n *\n * Bindings inside the host template are 0 index. But because we don't know ahead of time\n * how many host bindings we have we can't pre-compute them. For this reason they are all\n * 0 index and we just shift the root so that they match next available location in the LView.\n *\n * @param bindingRootIndex Root index for `hostBindings`\n * @param currentDirectiveIndex `TData[currentDirectiveIndex]` will point to the current directive\n * whose `hostBindings` are being processed.\n */\nfunction setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {\n const lFrame = instructionState.lFrame;\n lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;\n setCurrentDirectiveIndex(currentDirectiveIndex);\n}\n/**\n * When host binding is executing this points to the directive index.\n * `TView.data[getCurrentDirectiveIndex()]` is `DirectiveDef`\n * `LView[getCurrentDirectiveIndex()]` is directive instance.\n */\nfunction getCurrentDirectiveIndex() {\n return instructionState.lFrame.currentDirectiveIndex;\n}\n/**\n * Sets an index of a directive whose `hostBindings` are being processed.\n *\n * @param currentDirectiveIndex `TData` index where current directive instance can be found.\n */\nfunction setCurrentDirectiveIndex(currentDirectiveIndex) {\n instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;\n}\n/**\n * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being\n * executed.\n *\n * @param tData Current `TData` where the `DirectiveDef` will be looked up at.\n */\nfunction getCurrentDirectiveDef(tData) {\n const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;\n return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex];\n}\nfunction getCurrentQueryIndex() {\n return instructionState.lFrame.currentQueryIndex;\n}\nfunction setCurrentQueryIndex(value) {\n instructionState.lFrame.currentQueryIndex = value;\n}\n/**\n * Returns a `TNode` of the location where the current `LView` is declared at.\n *\n * @param lView an `LView` that we want to find parent `TNode` for.\n */\nfunction getDeclarationTNode(lView) {\n const tView = lView[TVIEW];\n // Return the declaration parent for embedded views\n if (tView.type === 2 /* Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n // Falling back to `T_HOST` in case we cross component boundary.\n if (tView.type === 1 /* Component */) {\n return lView[T_HOST];\n }\n // Remaining TNode type is `TViewType.Root` which doesn't have a parent TNode.\n return null;\n}\n/**\n * This is a light weight version of the `enterView` which is needed by the DI system.\n *\n * @param lView `LView` location of the DI context.\n * @param tNode `TNode` for DI context\n * @param flags DI context flags. if `SkipSelf` flag is set than we walk up the declaration\n * tree from `tNode` until we find parent declared `TElementNode`.\n * @returns `true` if we have successfully entered DI associated with `tNode` (or with declared\n * `TNode` if `flags` has `SkipSelf`). Failing to enter DI implies that no associated\n * `NodeInjector` can be found and we should instead use `ModuleInjector`.\n * - If `true` than this call must be fallowed by `leaveDI`\n * - If `false` than this call failed and we should NOT call `leaveDI`\n */\nfunction enterDI(lView, tNode, flags) {\n ngDevMode && assertLViewOrUndefined(lView);\n if (flags & InjectFlags.SkipSelf) {\n ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]);\n let parentTNode = tNode;\n let parentLView = lView;\n while (true) {\n ngDevMode && assertDefined(parentTNode, 'Parent TNode should be defined');\n parentTNode = parentTNode.parent;\n if (parentTNode === null && !(flags & InjectFlags.Host)) {\n parentTNode = getDeclarationTNode(parentLView);\n if (parentTNode === null)\n break;\n // In this case, a parent exists and is definitely an element. So it will definitely\n // have an existing lView as the declaration view, which is why we can assume it's defined.\n ngDevMode && assertDefined(parentLView, 'Parent LView should be defined');\n parentLView = parentLView[DECLARATION_VIEW];\n // In Ivy there are Comment nodes that correspond to ngIf and NgFor embedded directives\n // We want to skip those and look only at Elements and ElementContainers to ensure\n // we're looking at true parent nodes, and not content or other types.\n if (parentTNode.type & (2 /* Element */ | 8 /* ElementContainer */)) {\n break;\n }\n }\n else {\n break;\n }\n }\n if (parentTNode === null) {\n // If we failed to find a parent TNode this means that we should use module injector.\n return false;\n }\n else {\n tNode = parentTNode;\n lView = parentLView;\n }\n }\n ngDevMode && assertTNodeForLView(tNode, lView);\n const lFrame = instructionState.lFrame = allocLFrame();\n lFrame.currentTNode = tNode;\n lFrame.lView = lView;\n return true;\n}\n/**\n * Swap the current lView with a new lView.\n *\n * For performance reasons we store the lView in the top level of the module.\n * This way we minimize the number of properties to read. Whenever a new view\n * is entered we have to store the lView for later, and when the view is\n * exited the state has to be restored\n *\n * @param newView New lView to become active\n * @returns the previously active lView;\n */\nfunction enterView(newView) {\n ngDevMode && assertNotEqual(newView[0], newView[1], '????');\n ngDevMode && assertLViewOrUndefined(newView);\n const newLFrame = allocLFrame();\n if (ngDevMode) {\n assertEqual(newLFrame.isParent, true, 'Expected clean LFrame');\n assertEqual(newLFrame.lView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.tView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.selectedIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.elementDepthCount, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.currentDirectiveIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentNamespace, null, 'Expected clean LFrame');\n assertEqual(newLFrame.bindingRootIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentQueryIndex, 0, 'Expected clean LFrame');\n }\n const tView = newView[TVIEW];\n instructionState.lFrame = newLFrame;\n ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView);\n newLFrame.currentTNode = tView.firstChild;\n newLFrame.lView = newView;\n newLFrame.tView = tView;\n newLFrame.contextLView = newView;\n newLFrame.bindingIndex = tView.bindingStartIndex;\n newLFrame.inI18n = false;\n}\n/**\n * Allocates next free LFrame. This function tries to reuse the `LFrame`s to lower memory pressure.\n */\nfunction allocLFrame() {\n const currentLFrame = instructionState.lFrame;\n const childLFrame = currentLFrame === null ? null : currentLFrame.child;\n const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;\n return newLFrame;\n}\nfunction createLFrame(parent) {\n const lFrame = {\n currentTNode: null,\n isParent: true,\n lView: null,\n tView: null,\n selectedIndex: -1,\n contextLView: null,\n elementDepthCount: 0,\n currentNamespace: null,\n currentDirectiveIndex: -1,\n bindingRootIndex: -1,\n bindingIndex: -1,\n currentQueryIndex: 0,\n parent: parent,\n child: null,\n inI18n: false,\n };\n parent !== null && (parent.child = lFrame); // link the new LFrame for reuse.\n return lFrame;\n}\n/**\n * A lightweight version of leave which is used with DI.\n *\n * This function only resets `currentTNode` and `LView` as those are the only properties\n * used with DI (`enterDI()`).\n *\n * NOTE: This function is reexported as `leaveDI`. However `leaveDI` has return type of `void` where\n * as `leaveViewLight` has `LFrame`. This is so that `leaveViewLight` can be used in `leaveView`.\n */\nfunction leaveViewLight() {\n const oldLFrame = instructionState.lFrame;\n instructionState.lFrame = oldLFrame.parent;\n oldLFrame.currentTNode = null;\n oldLFrame.lView = null;\n return oldLFrame;\n}\n/**\n * This is a lightweight version of the `leaveView` which is needed by the DI system.\n *\n * NOTE: this function is an alias so that we can change the type of the function to have `void`\n * return type.\n */\nconst leaveDI = leaveViewLight;\n/**\n * Leave the current `LView`\n *\n * This pops the `LFrame` with the associated `LView` from the stack.\n *\n * IMPORTANT: We must zero out the `LFrame` values here otherwise they will be retained. This is\n * because for performance reasons we don't release `LFrame` but rather keep it for next use.\n */\nfunction leaveView() {\n const oldLFrame = leaveViewLight();\n oldLFrame.isParent = true;\n oldLFrame.tView = null;\n oldLFrame.selectedIndex = -1;\n oldLFrame.contextLView = null;\n oldLFrame.elementDepthCount = 0;\n oldLFrame.currentDirectiveIndex = -1;\n oldLFrame.currentNamespace = null;\n oldLFrame.bindingRootIndex = -1;\n oldLFrame.bindingIndex = -1;\n oldLFrame.currentQueryIndex = 0;\n}\nfunction nextContextImpl(level) {\n const contextLView = instructionState.lFrame.contextLView =\n walkUpViews(level, instructionState.lFrame.contextLView);\n return contextLView[CONTEXT];\n}\nfunction walkUpViews(nestingLevel, currentView) {\n while (nestingLevel > 0) {\n ngDevMode &&\n assertDefined(currentView[DECLARATION_VIEW], 'Declaration view should be defined if nesting level is greater than 0.');\n currentView = currentView[DECLARATION_VIEW];\n nestingLevel--;\n }\n return currentView;\n}\n/**\n * Gets the currently selected element index.\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n */\nfunction getSelectedIndex() {\n return instructionState.lFrame.selectedIndex;\n}\n/**\n * Sets the most recent index passed to {@link select}\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n *\n * (Note that if an \"exit function\" was set earlier (via `setElementExitFn()`) then that will be\n * run if and when the provided `index` value is different from the current selected index value.)\n */\nfunction setSelectedIndex(index) {\n ngDevMode && index !== -1 &&\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Index must be past HEADER_OFFSET (or -1).');\n ngDevMode &&\n assertLessThan(index, instructionState.lFrame.lView.length, 'Can\\'t set index passed end of LView');\n instructionState.lFrame.selectedIndex = index;\n}\n/**\n * Gets the `tNode` that represents currently selected element.\n */\nfunction getSelectedTNode() {\n const lFrame = instructionState.lFrame;\n return getTNode(lFrame.tView, lFrame.selectedIndex);\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceSVG() {\n instructionState.lFrame.currentNamespace = SVG_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceMathML() {\n instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceHTML() {\n namespaceHTMLInternal();\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n */\nfunction namespaceHTMLInternal() {\n instructionState.lFrame.currentNamespace = null;\n}\nfunction getNamespace() {\n return instructionState.lFrame.currentNamespace;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Adds all directive lifecycle hooks from the given `DirectiveDef` to the given `TView`.\n *\n * Must be run *only* on the first template pass.\n *\n * Sets up the pre-order hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * @param directiveIndex The index of the directive in LView\n * @param directiveDef The definition containing the hooks to setup in tView\n * @param tView The current TView\n */\nfunction registerPreOrderHooks(directiveIndex, directiveDef, tView) {\n ngDevMode && assertFirstCreatePass(tView);\n const { ngOnChanges, ngOnInit, ngDoCheck } = directiveDef.type.prototype;\n if (ngOnChanges) {\n const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef);\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, wrappedOnChanges);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = []))\n .push(directiveIndex, wrappedOnChanges);\n }\n if (ngOnInit) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(0 - directiveIndex, ngOnInit);\n }\n if (ngDoCheck) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, ngDoCheck);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = [])).push(directiveIndex, ngDoCheck);\n }\n}\n/**\n *\n * Loops through the directives on the provided `tNode` and queues hooks to be\n * run that are not initialization hooks.\n *\n * Should be executed during `elementEnd()` and similar to\n * preserve hook execution order. Content, view, and destroy hooks for projected\n * components and directives must be called *before* their hosts.\n *\n * Sets up the content, view, and destroy hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * NOTE: This does not set up `onChanges`, `onInit` or `doCheck`, those are set up\n * separately at `elementStart`.\n *\n * @param tView The current TView\n * @param tNode The TNode whose directives are to be searched for hooks to queue\n */\nfunction registerPostOrderHooks(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n // It's necessary to loop through the directives at elementEnd() (rather than processing in\n // directiveCreate) so we can preserve the current hook order. Content, view, and destroy\n // hooks for projected components and directives must be called *before* their hosts.\n for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {\n const directiveDef = tView.data[i];\n ngDevMode && assertDefined(directiveDef, 'Expecting DirectiveDef');\n const lifecycleHooks = directiveDef.type.prototype;\n const { ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy } = lifecycleHooks;\n if (ngAfterContentInit) {\n (tView.contentHooks || (tView.contentHooks = [])).push(-i, ngAfterContentInit);\n }\n if (ngAfterContentChecked) {\n (tView.contentHooks || (tView.contentHooks = [])).push(i, ngAfterContentChecked);\n (tView.contentCheckHooks || (tView.contentCheckHooks = [])).push(i, ngAfterContentChecked);\n }\n if (ngAfterViewInit) {\n (tView.viewHooks || (tView.viewHooks = [])).push(-i, ngAfterViewInit);\n }\n if (ngAfterViewChecked) {\n (tView.viewHooks || (tView.viewHooks = [])).push(i, ngAfterViewChecked);\n (tView.viewCheckHooks || (tView.viewCheckHooks = [])).push(i, ngAfterViewChecked);\n }\n if (ngOnDestroy != null) {\n (tView.destroyHooks || (tView.destroyHooks = [])).push(i, ngOnDestroy);\n }\n }\n}\n/**\n * Executing hooks requires complex logic as we need to deal with 2 constraints.\n *\n * 1. Init hooks (ngOnInit, ngAfterContentInit, ngAfterViewInit) must all be executed once and only\n * once, across many change detection cycles. This must be true even if some hooks throw, or if\n * some recursively trigger a change detection cycle.\n * To solve that, it is required to track the state of the execution of these init hooks.\n * This is done by storing and maintaining flags in the view: the {@link InitPhaseState},\n * and the index within that phase. They can be seen as a cursor in the following structure:\n * [[onInit1, onInit2], [afterContentInit1], [afterViewInit1, afterViewInit2, afterViewInit3]]\n * They are are stored as flags in LView[FLAGS].\n *\n * 2. Pre-order hooks can be executed in batches, because of the select instruction.\n * To be able to pause and resume their execution, we also need some state about the hook's array\n * that is being processed:\n * - the index of the next hook to be executed\n * - the number of init hooks already found in the processed part of the array\n * They are are stored as flags in LView[PREORDER_HOOK_FLAGS].\n */\n/**\n * Executes pre-order check hooks ( OnChanges, DoChanges) given a view where all the init hooks were\n * executed once. This is a light version of executeInitAndCheckPreOrderHooks where we can skip read\n * / write of the init-hooks related flags.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeCheckHooks(lView, hooks, nodeIndex) {\n callHooks(lView, hooks, 3 /* InitPhaseCompleted */, nodeIndex);\n}\n/**\n * Executes post-order init and check hooks (one of AfterContentInit, AfterContentChecked,\n * AfterViewInit, AfterViewChecked) given a view where there are pending init hooks to be executed.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param initPhase A phase for which hooks should be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init pre-order hooks should not be called more than once');\n if ((lView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n callHooks(lView, hooks, initPhase, nodeIndex);\n }\n}\nfunction incrementInitPhaseFlags(lView, initPhase) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');\n let flags = lView[FLAGS];\n if ((flags & 3 /* InitPhaseStateMask */) === initPhase) {\n flags &= 2047 /* IndexWithinInitPhaseReset */;\n flags += 1 /* InitPhaseStateIncrementer */;\n lView[FLAGS] = flags;\n }\n}\n/**\n * Calls lifecycle hooks with their contexts, skipping init hooks if it's not\n * the first LView pass\n *\n * @param currentView The current view\n * @param arr The array in which the hooks are found\n * @param initPhaseState the current state of the init phase\n * @param currentNodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction callHooks(currentView, arr, initPhase, currentNodeIndex) {\n ngDevMode &&\n assertEqual(isInCheckNoChangesMode(), false, 'Hooks should never be run when in check no changes mode.');\n const startIndex = currentNodeIndex !== undefined ?\n (currentView[PREORDER_HOOK_FLAGS] & 65535 /* IndexOfTheNextPreOrderHookMaskMask */) :\n 0;\n const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;\n const max = arr.length - 1; // Stop the loop at length - 1, because we look for the hook at i + 1\n let lastNodeIndexFound = 0;\n for (let i = startIndex; i < max; i++) {\n const hook = arr[i + 1];\n if (typeof hook === 'number') {\n lastNodeIndexFound = arr[i];\n if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {\n break;\n }\n }\n else {\n const isInitHook = arr[i] < 0;\n if (isInitHook)\n currentView[PREORDER_HOOK_FLAGS] += 65536 /* NumberOfInitHooksCalledIncrementer */;\n if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {\n callHook(currentView, initPhase, arr, i);\n currentView[PREORDER_HOOK_FLAGS] =\n (currentView[PREORDER_HOOK_FLAGS] & 4294901760 /* NumberOfInitHooksCalledMask */) + i +\n 2;\n }\n i++;\n }\n }\n}\n/**\n * Execute one hook against the current `LView`.\n *\n * @param currentView The current view\n * @param initPhaseState the current state of the init phase\n * @param arr The array in which the hooks are found\n * @param i The current index within the hook data array\n */\nfunction callHook(currentView, initPhase, arr, i) {\n const isInitHook = arr[i] < 0;\n const hook = arr[i + 1];\n const directiveIndex = isInitHook ? -arr[i] : arr[i];\n const directive = currentView[directiveIndex];\n if (isInitHook) {\n const indexWithintInitPhase = currentView[FLAGS] >> 11 /* IndexWithinInitPhaseShift */;\n // The init phase state must be always checked here as it may have been recursively updated.\n if (indexWithintInitPhase <\n (currentView[PREORDER_HOOK_FLAGS] >> 16 /* NumberOfInitHooksCalledShift */) &&\n (currentView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n currentView[FLAGS] += 2048 /* IndexWithinInitPhaseIncrementer */;\n profiler(4 /* LifecycleHookStart */, directive, hook);\n try {\n hook.call(directive);\n }\n finally {\n profiler(5 /* LifecycleHookEnd */, directive, hook);\n }\n }\n }\n else {\n profiler(4 /* LifecycleHookStart */, directive, hook);\n try {\n hook.call(directive);\n }\n finally {\n profiler(5 /* LifecycleHookEnd */, directive, hook);\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NO_PARENT_INJECTOR = -1;\n/**\n * Each injector is saved in 9 contiguous slots in `LView` and 9 contiguous slots in\n * `TView.data`. This allows us to store information about the current node's tokens (which\n * can be shared in `TView`) as well as the tokens of its ancestor nodes (which cannot be\n * shared, so they live in `LView`).\n *\n * Each of these slots (aside from the last slot) contains a bloom filter. This bloom filter\n * determines whether a directive is available on the associated node or not. This prevents us\n * from searching the directives array at this level unless it's probable the directive is in it.\n *\n * See: https://en.wikipedia.org/wiki/Bloom_filter for more about bloom filters.\n *\n * Because all injectors have been flattened into `LView` and `TViewData`, they cannot typed\n * using interfaces as they were previously. The start index of each `LInjector` and `TInjector`\n * will differ based on where it is flattened into the main array, so it's not possible to know\n * the indices ahead of time and save their types here. The interfaces are still included here\n * for documentation purposes.\n *\n * export interface LInjector extends Array {\n *\n * // Cumulative bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Cumulative bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Cumulative bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Cumulative bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Cumulative bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Cumulative bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Cumulative bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Cumulative bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // We need to store a reference to the injector's parent so DI can keep looking up\n * // the injector tree until it finds the dependency it's looking for.\n * [PARENT_INJECTOR]: number;\n * }\n *\n * export interface TInjector extends Array {\n *\n * // Shared node bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Shared node bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Shared node bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Shared node bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Shared node bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Shared node bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Shared node bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Shared node bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // Necessary to find directive indices for a particular node.\n * [TNODE]: TElementNode|TElementContainerNode|TContainerNode;\n * }\n */\n/**\n * Factory for creating instances of injectors in the NodeInjector.\n *\n * This factory is complicated by the fact that it can resolve `multi` factories as well.\n *\n * NOTE: Some of the fields are optional which means that this class has two hidden classes.\n * - One without `multi` support (most common)\n * - One with `multi` values, (rare).\n *\n * Since VMs can cache up to 4 inline hidden classes this is OK.\n *\n * - Single factory: Only `resolving` and `factory` is defined.\n * - `providers` factory: `componentProviders` is a number and `index = -1`.\n * - `viewProviders` factory: `componentProviders` is a number and `index` points to `providers`.\n */\nclass NodeInjectorFactory {\n constructor(\n /**\n * Factory to invoke in order to create a new instance.\n */\n factory, \n /**\n * Set to `true` if the token is declared in `viewProviders` (or if it is component).\n */\n isViewProvider, injectImplementation) {\n this.factory = factory;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n */\n this.resolving = false;\n ngDevMode && assertDefined(factory, 'Factory not specified');\n ngDevMode && assertEqual(typeof factory, 'function', 'Expected factory function.');\n this.canSeeViewProviders = isViewProvider;\n this.injectImpl = injectImplementation;\n }\n}\nfunction isFactory(obj) {\n return obj instanceof NodeInjectorFactory;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$3 = 1;\n\n/**\n * Converts `TNodeType` into human readable text.\n * Make sure this matches with `TNodeType`\n */\nfunction toTNodeTypeAsString(tNodeType) {\n let text = '';\n (tNodeType & 1 /* Text */) && (text += '|Text');\n (tNodeType & 2 /* Element */) && (text += '|Element');\n (tNodeType & 4 /* Container */) && (text += '|Container');\n (tNodeType & 8 /* ElementContainer */) && (text += '|ElementContainer');\n (tNodeType & 16 /* Projection */) && (text += '|Projection');\n (tNodeType & 32 /* Icu */) && (text += '|IcuContainer');\n (tNodeType & 64 /* Placeholder */) && (text += '|Placeholder');\n return text.length > 0 ? text.substring(1) : text;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$4 = 1;\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasClassInput(tNode) {\n return (tNode.flags & 16 /* hasClassInput */) !== 0;\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `style` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasStyleInput(tNode) {\n return (tNode.flags & 32 /* hasStyleInput */) !== 0;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction assertTNodeType(tNode, expectedTypes, message) {\n assertDefined(tNode, 'should be called with a TNode');\n if ((tNode.type & expectedTypes) === 0) {\n throwError(message ||\n `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`);\n }\n}\nfunction assertPureTNodeType(type) {\n if (!(type === 2 /* Element */ || //\n type === 1 /* Text */ || //\n type === 4 /* Container */ || //\n type === 8 /* ElementContainer */ || //\n type === 32 /* Icu */ || //\n type === 16 /* Projection */ || //\n type === 64 /* Placeholder */)) {\n throwError(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);\n }\n}\n\n/**\n * Assigns all attribute values to the provided element via the inferred renderer.\n *\n * This function accepts two forms of attribute entries:\n *\n * default: (key, value):\n * attrs = [key1, value1, key2, value2]\n *\n * namespaced: (NAMESPACE_MARKER, uri, name, value)\n * attrs = [NAMESPACE_MARKER, uri, name, value, NAMESPACE_MARKER, uri, name, value]\n *\n * The `attrs` array can contain a mix of both the default and namespaced entries.\n * The \"default\" values are set without a marker, but if the function comes across\n * a marker value then it will attempt to set a namespaced value. If the marker is\n * not of a namespaced value then the function will quit and return the index value\n * where it stopped during the iteration of the attrs array.\n *\n * See [AttributeMarker] to understand what the namespace marker value is.\n *\n * Note that this instruction does not support assigning style and class values to\n * an element. See `elementStart` and `elementHostAttrs` to learn how styling values\n * are applied to an element.\n * @param renderer The renderer to be used\n * @param native The element that the attributes will be assigned to\n * @param attrs The attribute array of values that will be assigned to the element\n * @returns the index value that was last accessed in the attributes array\n */\nfunction setUpAttributes(renderer, native, attrs) {\n const isProc = isProceduralRenderer(renderer);\n let i = 0;\n while (i < attrs.length) {\n const value = attrs[i];\n if (typeof value === 'number') {\n // only namespaces are supported. Other value types (such as style/class\n // entries) are not supported in this function.\n if (value !== 0 /* NamespaceURI */) {\n break;\n }\n // we just landed on the marker value ... therefore\n // we should skip to the next entry\n i++;\n const namespaceURI = attrs[i++];\n const attrName = attrs[i++];\n const attrVal = attrs[i++];\n ngDevMode && ngDevMode.rendererSetAttribute++;\n isProc ?\n renderer.setAttribute(native, attrName, attrVal, namespaceURI) :\n native.setAttributeNS(namespaceURI, attrName, attrVal);\n }\n else {\n // attrName is string;\n const attrName = value;\n const attrVal = attrs[++i];\n // Standard attributes\n ngDevMode && ngDevMode.rendererSetAttribute++;\n if (isAnimationProp(attrName)) {\n if (isProc) {\n renderer.setProperty(native, attrName, attrVal);\n }\n }\n else {\n isProc ?\n renderer.setAttribute(native, attrName, attrVal) :\n native.setAttribute(attrName, attrVal);\n }\n i++;\n }\n }\n // another piece of code may iterate over the same attributes array. Therefore\n // it may be helpful to return the exact spot where the attributes array exited\n // whether by running into an unsupported marker or if all the static values were\n // iterated over.\n return i;\n}\n/**\n * Test whether the given value is a marker that indicates that the following\n * attribute values in a `TAttributes` array are only the names of attributes,\n * and not name-value pairs.\n * @param marker The attribute marker to test.\n * @returns true if the marker is a \"name-only\" marker (e.g. `Bindings`, `Template` or `I18n`).\n */\nfunction isNameOnlyAttributeMarker(marker) {\n return marker === 3 /* Bindings */ || marker === 4 /* Template */ ||\n marker === 6 /* I18n */;\n}\nfunction isAnimationProp(name) {\n // Perf note: accessing charCodeAt to check for the first character of a string is faster as\n // compared to accessing a character at index 0 (ex. name[0]). The main reason for this is that\n // charCodeAt doesn't allocate memory to return a substring.\n return name.charCodeAt(0) === 64 /* AT_SIGN */;\n}\n/**\n * Merges `src` `TAttributes` into `dst` `TAttributes` removing any duplicates in the process.\n *\n * This merge function keeps the order of attrs same.\n *\n * @param dst Location of where the merged `TAttributes` should end up.\n * @param src `TAttributes` which should be appended to `dst`\n */\nfunction mergeHostAttrs(dst, src) {\n if (src === null || src.length === 0) {\n // do nothing\n }\n else if (dst === null || dst.length === 0) {\n // We have source, but dst is empty, just make a copy.\n dst = src.slice();\n }\n else {\n let srcMarker = -1 /* ImplicitAttributes */;\n for (let i = 0; i < src.length; i++) {\n const item = src[i];\n if (typeof item === 'number') {\n srcMarker = item;\n }\n else {\n if (srcMarker === 0 /* NamespaceURI */) {\n // Case where we need to consume `key1`, `key2`, `value` items.\n }\n else if (srcMarker === -1 /* ImplicitAttributes */ ||\n srcMarker === 2 /* Styles */) {\n // Case where we have to consume `key1` and `value` only.\n mergeHostAttribute(dst, srcMarker, item, null, src[++i]);\n }\n else {\n // Case where we have to consume `key1` only.\n mergeHostAttribute(dst, srcMarker, item, null, null);\n }\n }\n }\n }\n return dst;\n}\n/**\n * Append `key`/`value` to existing `TAttributes` taking region marker and duplicates into account.\n *\n * @param dst `TAttributes` to append to.\n * @param marker Region where the `key`/`value` should be added.\n * @param key1 Key to add to `TAttributes`\n * @param key2 Key to add to `TAttributes` (in case of `AttributeMarker.NamespaceURI`)\n * @param value Value to add or to overwrite to `TAttributes` Only used if `marker` is not Class.\n */\nfunction mergeHostAttribute(dst, marker, key1, key2, value) {\n let i = 0;\n // Assume that new markers will be inserted at the end.\n let markerInsertPosition = dst.length;\n // scan until correct type.\n if (marker === -1 /* ImplicitAttributes */) {\n markerInsertPosition = -1;\n }\n else {\n while (i < dst.length) {\n const dstValue = dst[i++];\n if (typeof dstValue === 'number') {\n if (dstValue === marker) {\n markerInsertPosition = -1;\n break;\n }\n else if (dstValue > marker) {\n // We need to save this as we want the markers to be inserted in specific order.\n markerInsertPosition = i - 1;\n break;\n }\n }\n }\n }\n // search until you find place of insertion\n while (i < dst.length) {\n const item = dst[i];\n if (typeof item === 'number') {\n // since `i` started as the index after the marker, we did not find it if we are at the next\n // marker\n break;\n }\n else if (item === key1) {\n // We already have same token\n if (key2 === null) {\n if (value !== null) {\n dst[i + 1] = value;\n }\n return;\n }\n else if (key2 === dst[i + 1]) {\n dst[i + 2] = value;\n return;\n }\n }\n // Increment counter.\n i++;\n if (key2 !== null)\n i++;\n if (value !== null)\n i++;\n }\n // insert at location.\n if (markerInsertPosition !== -1) {\n dst.splice(markerInsertPosition, 0, marker);\n i = markerInsertPosition + 1;\n }\n dst.splice(i++, 0, key1);\n if (key2 !== null) {\n dst.splice(i++, 0, key2);\n }\n if (value !== null) {\n dst.splice(i++, 0, value);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// Parent Injector Utils ///////////////////////////////////////////////////////////////\nfunction hasParentInjector(parentLocation) {\n return parentLocation !== NO_PARENT_INJECTOR;\n}\nfunction getParentInjectorIndex(parentLocation) {\n ngDevMode && assertNumber(parentLocation, 'Number expected');\n ngDevMode && assertNotEqual(parentLocation, -1, 'Not a valid state.');\n const parentInjectorIndex = parentLocation & 32767 /* InjectorIndexMask */;\n ngDevMode &&\n assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');\n return parentLocation & 32767 /* InjectorIndexMask */;\n}\nfunction getParentInjectorViewOffset(parentLocation) {\n return parentLocation >> 16 /* ViewOffsetShift */;\n}\n/**\n * Unwraps a parent injector location number to find the view offset from the current injector,\n * then walks up the declaration view tree until the view is found that contains the parent\n * injector.\n *\n * @param location The location of the parent injector, which contains the view offset\n * @param startView The LView instance from which to start walking up the view tree\n * @returns The LView instance that contains the parent injector\n */\nfunction getParentInjectorView(location, startView) {\n let viewOffset = getParentInjectorViewOffset(location);\n let parentView = startView;\n // For most cases, the parent injector can be found on the host node (e.g. for component\n // or container), but we must keep the loop here to support the rarer case of deeply nested\n // tags or inline views, where the parent injector might live many views\n // above the child injector.\n while (viewOffset > 0) {\n parentView = parentView[DECLARATION_VIEW];\n viewOffset--;\n }\n return parentView;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines if the call to `inject` should include `viewProviders` in its resolution.\n *\n * This is set to true when we try to instantiate a component. This value is reset in\n * `getNodeInjectable` to a value which matches the declaration location of the token about to be\n * instantiated. This is done so that if we are injecting a token which was declared outside of\n * `viewProviders` we don't accidentally pull `viewProviders` in.\n *\n * Example:\n *\n * ```\n * @Injectable()\n * class MyService {\n * constructor(public value: String) {}\n * }\n *\n * @Component({\n * providers: [\n * MyService,\n * {provide: String, value: 'providers' }\n * ]\n * viewProviders: [\n * {provide: String, value: 'viewProviders'}\n * ]\n * })\n * class MyComponent {\n * constructor(myService: MyService, value: String) {\n * // We expect that Component can see into `viewProviders`.\n * expect(value).toEqual('viewProviders');\n * // `MyService` was not declared in `viewProviders` hence it can't see it.\n * expect(myService.value).toEqual('providers');\n * }\n * }\n *\n * ```\n */\nlet includeViewProviders = true;\nfunction setIncludeViewProviders(v) {\n const oldValue = includeViewProviders;\n includeViewProviders = v;\n return oldValue;\n}\n/**\n * The number of slots in each bloom filter (used by DI). The larger this number, the fewer\n * directives that will share slots, and thus, the fewer false positives when checking for\n * the existence of a directive.\n */\nconst BLOOM_SIZE = 256;\nconst BLOOM_MASK = BLOOM_SIZE - 1;\n/**\n * The number of bits that is represented by a single bloom bucket. JS bit operations are 32 bits,\n * so each bucket represents 32 distinct tokens which accounts for log2(32) = 5 bits of a bloom hash\n * number.\n */\nconst BLOOM_BUCKET_BITS = 5;\n/** Counter used to generate unique IDs for directives. */\nlet nextNgElementId = 0;\n/**\n * Registers this directive as present in its node's injector by flipping the directive's\n * corresponding bit in the injector's bloom filter.\n *\n * @param injectorIndex The index of the node injector where this token should be registered\n * @param tView The TView for the injector's bloom filters\n * @param type The directive token to register\n */\nfunction bloomAdd(injectorIndex, tView, type) {\n ngDevMode && assertEqual(tView.firstCreatePass, true, 'expected firstCreatePass to be true');\n let id;\n if (typeof type === 'string') {\n id = type.charCodeAt(0) || 0;\n }\n else if (type.hasOwnProperty(NG_ELEMENT_ID)) {\n id = type[NG_ELEMENT_ID];\n }\n // Set a unique ID on the directive type, so if something tries to inject the directive,\n // we can easily retrieve the ID and hash it into the bloom bit that should be checked.\n if (id == null) {\n id = type[NG_ELEMENT_ID] = nextNgElementId++;\n }\n // We only have BLOOM_SIZE (256) slots in our bloom filter (8 buckets * 32 bits each),\n // so all unique IDs must be modulo-ed into a number from 0 - 255 to fit into the filter.\n const bloomHash = id & BLOOM_MASK;\n // Create a mask that targets the specific bit associated with the directive.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `tData` represents `BLOOM_BUCKET_BITS` number of bits of `bloomHash`.\n // Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset that the mask\n // should be written to.\n tView.data[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)] |= mask;\n}\n/**\n * Creates (or gets an existing) injector for a given element or container.\n *\n * @param tNode for which an injector should be retrieved / created.\n * @param lView View where the node is stored\n * @returns Node injector\n */\nfunction getOrCreateNodeInjectorForNode(tNode, lView) {\n const existingInjectorIndex = getInjectorIndex(tNode, lView);\n if (existingInjectorIndex !== -1) {\n return existingInjectorIndex;\n }\n const tView = lView[TVIEW];\n if (tView.firstCreatePass) {\n tNode.injectorIndex = lView.length;\n insertBloom(tView.data, tNode); // foundation for node bloom\n insertBloom(lView, null); // foundation for cumulative bloom\n insertBloom(tView.blueprint, null);\n }\n const parentLoc = getParentInjectorLocation(tNode, lView);\n const injectorIndex = tNode.injectorIndex;\n // If a parent injector can't be found, its location is set to -1.\n // In that case, we don't need to set up a cumulative bloom\n if (hasParentInjector(parentLoc)) {\n const parentIndex = getParentInjectorIndex(parentLoc);\n const parentLView = getParentInjectorView(parentLoc, lView);\n const parentData = parentLView[TVIEW].data;\n // Creates a cumulative bloom filter that merges the parent's bloom filter\n // and its own cumulative bloom (which contains tokens for all ancestors)\n for (let i = 0; i < 8 /* BLOOM_SIZE */; i++) {\n lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];\n }\n }\n lView[injectorIndex + 8 /* PARENT */] = parentLoc;\n return injectorIndex;\n}\nfunction insertBloom(arr, footer) {\n arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);\n}\nfunction getInjectorIndex(tNode, lView) {\n if (tNode.injectorIndex === -1 ||\n // If the injector index is the same as its parent's injector index, then the index has been\n // copied down from the parent node. No injector has been created yet on this node.\n (tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex) ||\n // After the first template pass, the injector index might exist but the parent values\n // might not have been calculated yet for this instance\n lView[tNode.injectorIndex + 8 /* PARENT */] === null) {\n return -1;\n }\n else {\n ngDevMode && assertIndexInRange(lView, tNode.injectorIndex);\n return tNode.injectorIndex;\n }\n}\n/**\n * Finds the index of the parent injector, with a view offset if applicable. Used to set the\n * parent injector initially.\n *\n * @returns Returns a number that is the combination of the number of LViews that we have to go up\n * to find the LView containing the parent inject AND the index of the injector within that LView.\n */\nfunction getParentInjectorLocation(tNode, lView) {\n if (tNode.parent && tNode.parent.injectorIndex !== -1) {\n // If we have a parent `TNode` and there is an injector associated with it we are done, because\n // the parent injector is within the current `LView`.\n return tNode.parent.injectorIndex; // ViewOffset is 0\n }\n // When parent injector location is computed it may be outside of the current view. (ie it could\n // be pointing to a declared parent location). This variable stores number of declaration parents\n // we need to walk up in order to find the parent injector location.\n let declarationViewOffset = 0;\n let parentTNode = null;\n let lViewCursor = lView;\n // The parent injector is not in the current `LView`. We will have to walk the declared parent\n // `LView` hierarchy and look for it. If we walk of the top, that means that there is no parent\n // `NodeInjector`.\n while (lViewCursor !== null) {\n // First determine the `parentTNode` location. The parent pointer differs based on `TView.type`.\n const tView = lViewCursor[TVIEW];\n const tViewType = tView.type;\n if (tViewType === 2 /* Embedded */) {\n ngDevMode &&\n assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n parentTNode = tView.declTNode;\n }\n else if (tViewType === 1 /* Component */) {\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n parentTNode = lViewCursor[T_HOST];\n }\n else {\n ngDevMode && assertEqual(tView.type, 0 /* Root */, 'Root type expected');\n parentTNode = null;\n }\n if (parentTNode === null) {\n // If we have no parent, than we are done.\n return NO_PARENT_INJECTOR;\n }\n ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]);\n // Every iteration of the loop requires that we go to the declared parent.\n declarationViewOffset++;\n lViewCursor = lViewCursor[DECLARATION_VIEW];\n if (parentTNode.injectorIndex !== -1) {\n // We found a NodeInjector which points to something.\n return (parentTNode.injectorIndex |\n (declarationViewOffset << 16 /* ViewOffsetShift */));\n }\n }\n return NO_PARENT_INJECTOR;\n}\n/**\n * Makes a type or an injection token public to the DI system by adding it to an\n * injector's bloom filter.\n *\n * @param di The node injector in which a directive will be added\n * @param token The type or the injection token to be made public\n */\nfunction diPublicInInjector(injectorIndex, tView, token) {\n bloomAdd(injectorIndex, tView, token);\n}\n/**\n * Inject static attribute value into directive constructor.\n *\n * This method is used with `factory` functions which are generated as part of\n * `defineDirective` or `defineComponent`. The method retrieves the static value\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\n * at the time of injection and can change over time.)\n *\n * # Example\n * Given:\n * ```\n * @Component(...)\n * class MyComponent {\n * constructor(@Attribute('title') title: string) { ... }\n * }\n * ```\n * When instantiated with\n * ```\n * \n * ```\n *\n * Then factory method generated is:\n * ```\n * MyComponent.ɵcmp = defineComponent({\n * factory: () => new MyComponent(injectAttribute('title'))\n * ...\n * })\n * ```\n *\n * @publicApi\n */\nfunction injectAttributeImpl(tNode, attrNameToInject) {\n ngDevMode && assertTNodeType(tNode, 12 /* AnyContainer */ | 3 /* AnyRNode */);\n ngDevMode && assertDefined(tNode, 'expecting tNode');\n if (attrNameToInject === 'class') {\n return tNode.classes;\n }\n if (attrNameToInject === 'style') {\n return tNode.styles;\n }\n const attrs = tNode.attrs;\n if (attrs) {\n const attrsLength = attrs.length;\n let i = 0;\n while (i < attrsLength) {\n const value = attrs[i];\n // If we hit a `Bindings` or `Template` marker then we are done.\n if (isNameOnlyAttributeMarker(value))\n break;\n // Skip namespaced attributes\n if (value === 0 /* NamespaceURI */) {\n // we skip the next two values\n // as namespaced attributes looks like\n // [..., AttributeMarker.NamespaceURI, 'http://someuri.com/test', 'test:exist',\n // 'existValue', ...]\n i = i + 2;\n }\n else if (typeof value === 'number') {\n // Skip to the first value of the marked attribute.\n i++;\n while (i < attrsLength && typeof attrs[i] === 'string') {\n i++;\n }\n }\n else if (value === attrNameToInject) {\n return attrs[i + 1];\n }\n else {\n i = i + 2;\n }\n }\n }\n return null;\n}\nfunction notFoundValueOrThrow(notFoundValue, token, flags) {\n if (flags & InjectFlags.Optional) {\n return notFoundValue;\n }\n else {\n throwProviderNotFoundError(token, 'NodeInjector');\n }\n}\n/**\n * Returns the value associated to the given token from the ModuleInjector or throws exception\n *\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector or throws an exception\n */\nfunction lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {\n if (flags & InjectFlags.Optional && notFoundValue === undefined) {\n // This must be set or the NullInjector will throw for optional deps\n notFoundValue = null;\n }\n if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {\n const moduleInjector = lView[INJECTOR];\n // switch to `injectInjectorOnly` implementation for module injector, since module injector\n // should not have access to Component/Directive DI scope (that may happen through\n // `directiveInject` implementation)\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n if (moduleInjector) {\n return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);\n }\n else {\n return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);\n }\n }\n finally {\n setInjectImplementation(previousInjectImplementation);\n }\n }\n return notFoundValueOrThrow(notFoundValue, token, flags);\n}\n/**\n * Returns the value associated to the given token from the NodeInjectors => ModuleInjector.\n *\n * Look for the injector providing the token by walking up the node injector tree and then\n * the module injector tree.\n *\n * This function patches `token` with `__NG_ELEMENT_ID__` which contains the id for the bloom\n * filter. `-1` is reserved for injecting `Injector` (implemented by `NodeInjector`)\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {\n if (tNode !== null) {\n const bloomHash = bloomHashBitOrFactory(token);\n // If the ID stored here is a function, this is a special object like ElementRef or TemplateRef\n // so just call the factory function to create it.\n if (typeof bloomHash === 'function') {\n if (!enterDI(lView, tNode, flags)) {\n // Failed to enter DI, try module injector instead. If a token is injected with the @Host\n // flag, the module injector is not searched for that token in Ivy.\n return (flags & InjectFlags.Host) ?\n notFoundValueOrThrow(notFoundValue, token, flags) :\n lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n }\n try {\n const value = bloomHash(flags);\n if (value == null && !(flags & InjectFlags.Optional)) {\n throwProviderNotFoundError(token);\n }\n else {\n return value;\n }\n }\n finally {\n leaveDI();\n }\n }\n else if (typeof bloomHash === 'number') {\n // A reference to the previous injector TView that was found while climbing the element\n // injector tree. This is used to know if viewProviders can be accessed on the current\n // injector.\n let previousTView = null;\n let injectorIndex = getInjectorIndex(tNode, lView);\n let parentLocation = NO_PARENT_INJECTOR;\n let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;\n // If we should skip this injector, or if there is no injector on this node, start by\n // searching the parent injector.\n if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {\n parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) :\n lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {\n injectorIndex = -1;\n }\n else {\n previousTView = lView[TVIEW];\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n // Traverse up the injector tree until we find a potential match or until we know there\n // *isn't* a match.\n while (injectorIndex !== -1) {\n ngDevMode && assertNodeInjector(lView, injectorIndex);\n // Check the current injector. If it matches, see if it contains token.\n const tView = lView[TVIEW];\n ngDevMode &&\n assertTNodeForLView(tView.data[injectorIndex + 8 /* TNODE */], lView);\n if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {\n // At this point, we have an injector which *may* contain the token, so we step through\n // the providers and directives associated with the injector's corresponding node to get\n // the instance.\n const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);\n if (instance !== NOT_FOUND) {\n return instance;\n }\n }\n parentLocation = lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation !== NO_PARENT_INJECTOR &&\n shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8 /* TNODE */] === hostTElementNode) &&\n bloomHasToken(bloomHash, injectorIndex, lView)) {\n // The def wasn't found anywhere on this node, so it was a false positive.\n // Traverse up the tree and continue searching.\n previousTView = tView;\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // If we should not search parent OR If the ancestor bloom filter value does not have the\n // bit corresponding to the directive we can give up on traversing up to find the specific\n // injector.\n injectorIndex = -1;\n }\n }\n }\n }\n return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n}\nconst NOT_FOUND = {};\nfunction createNodeInjector() {\n return new NodeInjector(getCurrentTNode(), getLView());\n}\nfunction searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {\n const currentTView = lView[TVIEW];\n const tNode = currentTView.data[injectorIndex + 8 /* TNODE */];\n // First, we need to determine if view providers can be accessed by the starting element.\n // There are two possibilities\n const canAccessViewProviders = previousTView == null ?\n // 1) This is the first invocation `previousTView == null` which means that we are at the\n // `TNode` of where injector is starting to look. In such a case the only time we are allowed\n // to look into the ViewProviders is if:\n // - we are on a component\n // - AND the injector set `includeViewProviders` to true (implying that the token can see\n // ViewProviders because it is the Component or a Service which itself was declared in\n // ViewProviders)\n (isComponentHost(tNode) && includeViewProviders) :\n // 2) `previousTView != null` which means that we are now walking across the parent nodes.\n // In such a case we are only allowed to look into the ViewProviders if:\n // - We just crossed from child View to Parent View `previousTView != currentTView`\n // - AND the parent TNode is an Element.\n // This means that we just came from the Component's View and therefore are allowed to see\n // into the ViewProviders.\n (previousTView != currentTView && ((tNode.type & 3 /* AnyRNode */) !== 0));\n // This special case happens when there is a @host on the inject and when we are searching\n // on the host element node.\n const isHostSpecialCase = (flags & InjectFlags.Host) && hostTElementNode === tNode;\n const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);\n if (injectableIdx !== null) {\n return getNodeInjectable(lView, currentTView, injectableIdx, tNode);\n }\n else {\n return NOT_FOUND;\n }\n}\n/**\n * Searches for the given token among the node's directives and providers.\n *\n * @param tNode TNode on which directives are present.\n * @param tView The tView we are currently processing\n * @param token Provider token or type of a directive to look for.\n * @param canAccessViewProviders Whether view providers should be considered.\n * @param isHostSpecialCase Whether the host special case applies.\n * @returns Index of a found directive or provider, or null when none found.\n */\nfunction locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {\n const nodeProviderIndexes = tNode.providerIndexes;\n const tInjectables = tView.data;\n const injectablesStart = nodeProviderIndexes & 1048575 /* ProvidersStartIndexMask */;\n const directivesStart = tNode.directiveStart;\n const directiveEnd = tNode.directiveEnd;\n const cptViewProvidersCount = nodeProviderIndexes >> 20 /* CptViewProvidersCountShift */;\n const startingIndex = canAccessViewProviders ? injectablesStart : injectablesStart + cptViewProvidersCount;\n // When the host special case applies, only the viewProviders and the component are visible\n const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;\n for (let i = startingIndex; i < endIndex; i++) {\n const providerTokenOrDef = tInjectables[i];\n if (i < directivesStart && token === providerTokenOrDef ||\n i >= directivesStart && providerTokenOrDef.type === token) {\n return i;\n }\n }\n if (isHostSpecialCase) {\n const dirDef = tInjectables[directivesStart];\n if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {\n return directivesStart;\n }\n }\n return null;\n}\n/**\n * Retrieve or instantiate the injectable from the `LView` at particular `index`.\n *\n * This function checks to see if the value has already been instantiated and if so returns the\n * cached `injectable`. Otherwise if it detects that the value is still a factory it\n * instantiates the `injectable` and caches the value.\n */\nfunction getNodeInjectable(lView, tView, index, tNode) {\n let value = lView[index];\n const tData = tView.data;\n if (isFactory(value)) {\n const factory = value;\n if (factory.resolving) {\n throwCyclicDependencyError(stringifyForError(tData[index]));\n }\n const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);\n factory.resolving = true;\n const previousInjectImplementation = factory.injectImpl ? setInjectImplementation(factory.injectImpl) : null;\n const success = enterDI(lView, tNode, InjectFlags.Default);\n ngDevMode &&\n assertEqual(success, true, 'Because flags do not contain \\`SkipSelf\\' we expect this to always succeed.');\n try {\n value = lView[index] = factory.factory(undefined, tData, lView, tNode);\n // This code path is hit for both directives and providers.\n // For perf reasons, we want to avoid searching for hooks on providers.\n // It does no harm to try (the hooks just won't exist), but the extra\n // checks are unnecessary and this is a hot path. So we check to see\n // if the index of the dependency is in the directive range for this\n // tNode. If it's not, we know it's a provider and skip hook registration.\n if (tView.firstCreatePass && index >= tNode.directiveStart) {\n ngDevMode && assertDirectiveDef(tData[index]);\n registerPreOrderHooks(index, tData[index], tView);\n }\n }\n finally {\n previousInjectImplementation !== null &&\n setInjectImplementation(previousInjectImplementation);\n setIncludeViewProviders(previousIncludeViewProviders);\n factory.resolving = false;\n leaveDI();\n }\n }\n return value;\n}\n/**\n * Returns the bit in an injector's bloom filter that should be used to determine whether or not\n * the directive might be provided by the injector.\n *\n * When a directive is public, it is added to the bloom filter and given a unique ID that can be\n * retrieved on the Type. When the directive isn't public or the token is not a directive `null`\n * is returned as the node injector can not possibly provide that token.\n *\n * @param token the injection token\n * @returns the matching bit to check in the bloom filter or `null` if the token is not known.\n * When the returned value is negative then it represents special values such as `Injector`.\n */\nfunction bloomHashBitOrFactory(token) {\n ngDevMode && assertDefined(token, 'token must be defined');\n if (typeof token === 'string') {\n return token.charCodeAt(0) || 0;\n }\n const tokenId = \n // First check with `hasOwnProperty` so we don't get an inherited ID.\n token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : undefined;\n // Negative token IDs are used for special objects such as `Injector`\n if (typeof tokenId === 'number') {\n if (tokenId >= 0) {\n return tokenId & BLOOM_MASK;\n }\n else {\n ngDevMode &&\n assertEqual(tokenId, -1 /* Injector */, 'Expecting to get Special Injector Id');\n return createNodeInjector;\n }\n }\n else {\n return tokenId;\n }\n}\nfunction bloomHasToken(bloomHash, injectorIndex, injectorView) {\n // Create a mask that targets the specific bit associated with the directive we're looking for.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `injectorView` represents `BLOOM_BUCKET_BITS` number of bits of\n // `bloomHash`. Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset\n // that should be used.\n const value = injectorView[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)];\n // If the bloom filter value has the bit corresponding to the directive's bloomBit flipped on,\n // this injector is a potential match.\n return !!(value & mask);\n}\n/** Returns true if flags prevent parent injector from being searched for tokens */\nfunction shouldSearchParent(flags, isFirstHostTNode) {\n return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);\n}\nclass NodeInjector {\n constructor(_tNode, _lView) {\n this._tNode = _tNode;\n this._lView = _lView;\n }\n get(token, notFoundValue, flags) {\n return getOrCreateInjectable(this._tNode, this._lView, token, flags, notFoundValue);\n }\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵgetInheritedFactory(type) {\n return noSideEffects(() => {\n const ownConstructor = type.prototype.constructor;\n const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor);\n const objectPrototype = Object.prototype;\n let parent = Object.getPrototypeOf(type.prototype).constructor;\n // Go up the prototype until we hit `Object`.\n while (parent && parent !== objectPrototype) {\n const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent);\n // If we hit something that has a factory and the factory isn't the same as the type,\n // we've found the inherited factory. Note the check that the factory isn't the type's\n // own factory is redundant in most cases, but if the user has custom decorators on the\n // class, this lookup will start one level down in the prototype chain, causing us to\n // find the own factory first and potentially triggering an infinite loop downstream.\n if (factory && factory !== ownFactory) {\n return factory;\n }\n parent = Object.getPrototypeOf(parent);\n }\n // There is no factory defined. Either this was improper usage of inheritance\n // (no Angular decorator on the superclass) or there is no constructor at all\n // in the inheritance chain. Since the two cases cannot be distinguished, the\n // latter has to be assumed.\n return t => new t();\n });\n}\nfunction getFactoryOf(type) {\n if (isForwardRef(type)) {\n return () => {\n const factory = getFactoryOf(resolveForwardRef(type));\n return factory && factory();\n };\n }\n return getFactoryDef(type);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Facade for the attribute injection from DI.\n *\n * @codeGenApi\n */\nfunction ɵɵinjectAttribute(attrNameToInject) {\n return injectAttributeImpl(getCurrentTNode(), attrNameToInject);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ANNOTATIONS = '__annotations__';\nconst PARAMETERS = '__parameters__';\nconst PROP_METADATA = '__prop__metadata__';\n/**\n * @suppress {globalThis}\n */\nfunction makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function DecoratorFactory(...args) {\n if (this instanceof DecoratorFactory) {\n metaCtor.call(this, ...args);\n return this;\n }\n const annotationInstance = new DecoratorFactory(...args);\n return function TypeDecorator(cls) {\n if (typeFn)\n typeFn(cls, ...args);\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const annotations = cls.hasOwnProperty(ANNOTATIONS) ?\n cls[ANNOTATIONS] :\n Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n annotations.push(annotationInstance);\n if (additionalProcessing)\n additionalProcessing(cls);\n return cls;\n };\n }\n if (parentClass) {\n DecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n DecoratorFactory.prototype.ngMetadataName = name;\n DecoratorFactory.annotationCls = DecoratorFactory;\n return DecoratorFactory;\n });\n}\nfunction makeMetadataCtor(props) {\n return function ctor(...args) {\n if (props) {\n const values = props(...args);\n for (const propName in values) {\n this[propName] = values[propName];\n }\n }\n };\n}\nfunction makeParamDecorator(name, props, parentClass) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function ParamDecoratorFactory(...args) {\n if (this instanceof ParamDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const annotationInstance = new ParamDecoratorFactory(...args);\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n function ParamDecorator(cls, unusedKey, index) {\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const parameters = cls.hasOwnProperty(PARAMETERS) ?\n cls[PARAMETERS] :\n Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n (parameters[index] = parameters[index] || []).push(annotationInstance);\n return cls;\n }\n }\n if (parentClass) {\n ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n ParamDecoratorFactory.prototype.ngMetadataName = name;\n ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;\n return ParamDecoratorFactory;\n });\n}\nfunction makePropDecorator(name, props, parentClass, additionalProcessing) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function PropDecoratorFactory(...args) {\n if (this instanceof PropDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const decoratorInstance = new PropDecoratorFactory(...args);\n function PropDecorator(target, name) {\n const constructor = target.constructor;\n // Use of Object.defineProperty is important because it creates a non-enumerable property\n // which prevents the property from being copied during subclassing.\n const meta = constructor.hasOwnProperty(PROP_METADATA) ?\n constructor[PROP_METADATA] :\n Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];\n meta[name] = meta.hasOwnProperty(name) && meta[name] || [];\n meta[name].unshift(decoratorInstance);\n if (additionalProcessing)\n additionalProcessing(target, name, ...args);\n }\n return PropDecorator;\n }\n if (parentClass) {\n PropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n PropDecoratorFactory.prototype.ngMetadataName = name;\n PropDecoratorFactory.annotationCls = PropDecoratorFactory;\n return PropDecoratorFactory;\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction CREATE_ATTRIBUTE_DECORATOR__PRE_R3__() {\n return makeParamDecorator('Attribute', (attributeName) => ({ attributeName }));\n}\nfunction CREATE_ATTRIBUTE_DECORATOR__POST_R3__() {\n return makeParamDecorator('Attribute', (attributeName) => ({ attributeName, __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName) }));\n}\nconst CREATE_ATTRIBUTE_DECORATOR_IMPL = CREATE_ATTRIBUTE_DECORATOR__POST_R3__;\n/**\n * Attribute decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Attribute = CREATE_ATTRIBUTE_DECORATOR_IMPL();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Creates a token that can be used in a DI Provider.\n *\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\n * runtime representation) such as when injecting an interface, callable type, array or\n * parameterized type.\n *\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\n * the `Injector`. This provides an additional level of type safety.\n *\n * ```\n * interface MyInterface {...}\n * const myInterface = injector.get(new InjectionToken('SomeToken'));\n * // myInterface is inferred to be MyInterface.\n * ```\n *\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\n * dependencies, it can do so using the `inject` function.\n * As you can see in the Tree-shakable InjectionToken example below.\n *\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule`. As\n * mentioned above, `'root'` is the default value for `providedIn`.\n *\n * @usageNotes\n * ### Basic Examples\n *\n * ### Plain InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\n *\n * ### Tree-shakable InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n *\n * @publicApi\n */\nclass InjectionToken {\n /**\n * @param _desc Description for the token,\n * used only for debugging purposes,\n * it should but does not need to be unique\n * @param options Options for the token's usage, as described above\n */\n constructor(_desc, options) {\n this._desc = _desc;\n /** @internal */\n this.ngMetadataName = 'InjectionToken';\n this.ɵprov = undefined;\n if (typeof options == 'number') {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n assertLessThan(options, 0, 'Only negative numbers are supported here');\n // This is a special hack to assign __NG_ELEMENT_ID__ to this instance.\n // See `InjectorMarkers`\n this.__NG_ELEMENT_ID__ = options;\n }\n else if (options !== undefined) {\n this.ɵprov = ɵɵdefineInjectable({\n token: this,\n providedIn: options.providedIn || 'root',\n factory: options.factory,\n });\n }\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A DI token that you can use to create a virtual [provider](guide/glossary#provider)\n * that will populate the `entryComponents` field of components and NgModules\n * based on its `useValue` property value.\n * All components that are referenced in the `useValue` value (either directly\n * or in a nested array or map) are added to the `entryComponents` property.\n *\n * @usageNotes\n *\n * The following example shows how the router can populate the `entryComponents`\n * field of an NgModule based on a router configuration that refers\n * to components.\n *\n * ```typescript\n * // helper function inside the router\n * function provideRoutes(routes) {\n * return [\n * {provide: ROUTES, useValue: routes},\n * {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: routes, multi: true}\n * ];\n * }\n *\n * // user code\n * let routes = [\n * {path: '/root', component: RootComp},\n * {path: '/teams', component: TeamsComp}\n * ];\n *\n * @NgModule({\n * providers: [provideRoutes(routes)]\n * })\n * class ModuleWithRoutes {}\n * ```\n *\n * @publicApi\n * @deprecated Since 9.0.0. With Ivy, this property is no longer necessary.\n */\nconst ANALYZE_FOR_ENTRY_COMPONENTS = new InjectionToken('AnalyzeForEntryComponents');\n// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not\n// explicitly set.\nconst emitDistinctChangesOnlyDefaultValue = true;\n/**\n * Base class for query metadata.\n *\n * @see `ContentChildren`.\n * @see `ContentChild`.\n * @see `ViewChildren`.\n * @see `ViewChild`.\n *\n * @publicApi\n */\nclass Query {\n}\nconst ɵ0$1 = (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: false, descendants: false, emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue }, data));\n/**\n * ContentChildren decorator and metadata.\n *\n *\n * @Annotation\n * @publicApi\n */\nconst ContentChildren = makePropDecorator('ContentChildren', ɵ0$1, Query);\nconst ɵ1 = (selector, data = {}) => (Object.assign({ selector, first: true, isViewQuery: false, descendants: true }, data));\n/**\n * ContentChild decorator and metadata.\n *\n *\n * @Annotation\n *\n * @publicApi\n */\nconst ContentChild = makePropDecorator('ContentChild', ɵ1, Query);\nconst ɵ2 = (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: true, descendants: true, emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue }, data));\n/**\n * ViewChildren decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst ViewChildren = makePropDecorator('ViewChildren', ɵ2, Query);\nconst ɵ3 = (selector, data) => (Object.assign({ selector, first: true, isViewQuery: true, descendants: true }, data));\n/**\n * ViewChild decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst ViewChild = makePropDecorator('ViewChild', ɵ3, Query);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar FactoryTarget;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget || (FactoryTarget = {}));\nvar ViewEncapsulation$1;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getCompilerFacade(request) {\n const globalNg = _global['ng'];\n if (globalNg && globalNg.ɵcompilerFacade) {\n return globalNg.ɵcompilerFacade;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Log the type as an error so that a developer can easily navigate to the type from the\n // console.\n console.error(`JIT compilation failed for ${request.kind}`, request.type);\n let message = `The ${request.kind} '${request\n .type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.\\n\\n`;\n if (request.usage === 1 /* PartialDeclaration */) {\n message += `The ${request.kind} is part of a library that has been partially compiled.\\n`;\n message +=\n `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.\\n`;\n message += '\\n';\n message +=\n `Ideally, the library is processed using the Angular Linker to become fully AOT compiled.\\n`;\n }\n else {\n message +=\n `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.\\n`;\n }\n message +=\n `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',\\n`;\n message +=\n `or manually provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.`;\n throw new Error(message);\n }\n else {\n throw new Error('JIT compiler unavailable');\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n *\n * Represents a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\n * the `MyCustomComponent` constructor function.\n *\n * @publicApi\n */\nconst Type = Function;\nfunction isType(v) {\n return typeof v === 'function';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Equivalent to ES6 spread, add each item to an array.\n *\n * @param items The items to add\n * @param arr The array to which you want to add the items\n */\nfunction addAllToArray(items, arr) {\n for (let i = 0; i < items.length; i++) {\n arr.push(items[i]);\n }\n}\n/**\n * Determines if the contents of two arrays is identical\n *\n * @param a first array\n * @param b second array\n * @param identityAccessor Optional function for extracting stable object identity from a value in\n * the array.\n */\nfunction arrayEquals(a, b, identityAccessor) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let valueA = a[i];\n let valueB = b[i];\n if (identityAccessor) {\n valueA = identityAccessor(valueA);\n valueB = identityAccessor(valueB);\n }\n if (valueB !== valueA) {\n return false;\n }\n }\n return true;\n}\n/**\n * Flattens an array.\n */\nfunction flatten(list, dst) {\n if (dst === undefined)\n dst = list;\n for (let i = 0; i < list.length; i++) {\n let item = list[i];\n if (Array.isArray(item)) {\n // we need to inline it.\n if (dst === list) {\n // Our assumption that the list was already flat was wrong and\n // we need to clone flat since we need to write to it.\n dst = list.slice(0, i);\n }\n flatten(item, dst);\n }\n else if (dst !== list) {\n dst.push(item);\n }\n }\n return dst;\n}\nfunction deepForEach(input, fn) {\n input.forEach(value => Array.isArray(value) ? deepForEach(value, fn) : fn(value));\n}\nfunction addToArray(arr, index, value) {\n // perf: array.push is faster than array.splice!\n if (index >= arr.length) {\n arr.push(value);\n }\n else {\n arr.splice(index, 0, value);\n }\n}\nfunction removeFromArray(arr, index) {\n // perf: array.pop is faster than array.splice!\n if (index >= arr.length - 1) {\n return arr.pop();\n }\n else {\n return arr.splice(index, 1)[0];\n }\n}\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Remove item from array (Same as `Array.splice()` but faster.)\n *\n * `Array.splice()` is not as fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * https://jsperf.com/fast-array-splice (About 20x faster)\n *\n * @param array Array to splice\n * @param index Index of element in array to remove.\n * @param count Number of items to remove.\n */\nfunction arraySplice(array, index, count) {\n const length = array.length - count;\n while (index < length) {\n array[index] = array[index + count];\n index++;\n }\n while (count--) {\n array.pop(); // shrink the array\n }\n}\n/**\n * Same as `Array.splice(index, 0, value)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value Value to add to array.\n */\nfunction arrayInsert(array, index, value) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n while (end > index) {\n const previousEnd = end - 1;\n array[end] = array[previousEnd];\n end = previousEnd;\n }\n array[index] = value;\n}\n/**\n * Same as `Array.splice2(index, 0, value1, value2)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value1 Value to add to array.\n * @param value2 Value to add to array.\n */\nfunction arrayInsert2(array, index, value1, value2) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n if (end == index) {\n // inserting at the end.\n array.push(value1, value2);\n }\n else if (end === 1) {\n // corner case when we have less items in array than we have items to insert.\n array.push(value2, array[0]);\n array[0] = value1;\n }\n else {\n end--;\n array.push(array[end - 1], array[end]);\n while (end > index) {\n const previousEnd = end - 2;\n array[end] = array[previousEnd];\n end--;\n }\n array[index] = value1;\n array[index + 1] = value2;\n }\n}\n/**\n * Insert a `value` into an `array` so that the array remains sorted.\n *\n * NOTE:\n * - Duplicates are not allowed, and are ignored.\n * - This uses binary search algorithm for fast inserts.\n *\n * @param array A sorted array to insert into.\n * @param value The value to insert.\n * @returns index of the inserted value.\n */\nfunction arrayInsertSorted(array, value) {\n let index = arrayIndexOfSorted(array, value);\n if (index < 0) {\n // if we did not find it insert it.\n index = ~index;\n arrayInsert(array, index, value);\n }\n return index;\n}\n/**\n * Remove `value` from a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to remove from.\n * @param value The value to remove.\n * @returns index of the removed value.\n * - positive index if value found and removed.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction arrayRemoveSorted(array, value) {\n const index = arrayIndexOfSorted(array, value);\n if (index >= 0) {\n arraySplice(array, index, 1);\n }\n return index;\n}\n/**\n * Get an index of an `value` in a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * located)\n */\nfunction arrayIndexOfSorted(array, value) {\n return _arrayIndexOfSorted(array, value, 0);\n}\n/**\n * Set a `value` for a `key`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or create.\n * @param value The value to set for a `key`.\n * @returns index (always even) of where the value vas set.\n */\nfunction keyValueArraySet(keyValueArray, key, value) {\n let index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it set it.\n keyValueArray[index | 1] = value;\n }\n else {\n index = ~index;\n arrayInsert2(keyValueArray, index, key, value);\n }\n return index;\n}\n/**\n * Retrieve a `value` for a `key` (on `undefined` if not found.)\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @return The `value` stored at the `key` location or `undefined if not found.\n */\nfunction keyValueArrayGet(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it retrieve it.\n return keyValueArray[index | 1];\n }\n return undefined;\n}\n/**\n * Retrieve a `key` index value in the array or `-1` if not found.\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @returns index of where the key is (or should have been.)\n * - positive (even) index if key found.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been inserted.)\n */\nfunction keyValueArrayIndexOf(keyValueArray, key) {\n return _arrayIndexOfSorted(keyValueArray, key, 1);\n}\n/**\n * Delete a `key` (and `value`) from the `KeyValueArray`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or delete (if exist).\n * @returns index of where the key was (or should have been.)\n * - positive (even) index if key found and deleted.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been.)\n */\nfunction keyValueArrayDelete(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it remove it.\n arraySplice(keyValueArray, index, 2);\n }\n return index;\n}\n/**\n * INTERNAL: Get an index of an `value` in a sorted `array` by grouping search by `shift`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @param shift grouping shift.\n * - `0` means look at every location\n * - `1` means only look at every other (even) location (the odd locations are to be ignored as\n * they are values.)\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction _arrayIndexOfSorted(array, value, shift) {\n ngDevMode && assertEqual(Array.isArray(array), true, 'Expecting an array');\n let start = 0;\n let end = array.length >> shift;\n while (end !== start) {\n const middle = start + ((end - start) >> 1); // find the middle.\n const current = array[middle << shift];\n if (value === current) {\n return (middle << shift);\n }\n else if (current > value) {\n end = middle;\n }\n else {\n start = middle + 1; // We already searched middle so make it non-inclusive by adding 1\n }\n }\n return ~(end << shift);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * #########################\n * Attention: These Regular expressions have to hold even if the code is minified!\n * ##########################\n */\n/**\n * Regular expression that detects pass-through constructors for ES5 output. This Regex\n * intends to capture the common delegation pattern emitted by TypeScript and Babel. Also\n * it intends to capture the pattern where existing constructors have been downleveled from\n * ES2015 to ES5 using TypeScript w/ downlevel iteration. e.g.\n *\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, arguments) || this;\n * ```\n *\n * downleveled to ES5 with `downlevelIteration` for TypeScript < 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spread(arguments)) || this;\n * ```\n *\n * or downleveled to ES5 with `downlevelIteration` for TypeScript >= 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;\n * ```\n *\n * More details can be found in: https://github.com/angular/angular/issues/38453.\n */\nconst ES5_DELEGATE_CTOR = /^function\\s+\\S+\\(\\)\\s*{[\\s\\S]+\\.apply\\(this,\\s*(arguments|(?:[^()]+\\(\\[\\],)?[^()]+\\(arguments\\))\\)/;\n/** Regular expression that detects ES2015 classes which extend from other classes. */\nconst ES2015_INHERITED_CLASS = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes and\n * have an explicit constructor defined.\n */\nconst ES2015_INHERITED_CLASS_WITH_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes\n * and inherit a constructor.\n */\nconst ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(\\)\\s*{\\s*super\\(\\.\\.\\.arguments\\)/;\n/**\n * Determine whether a stringified type is a class which delegates its constructor\n * to its parent.\n *\n * This is not trivial since compiled code can actually contain a constructor function\n * even if the original source code did not. For instance, when the child class contains\n * an initialized instance property.\n */\nfunction isDelegateCtor(typeStr) {\n return ES5_DELEGATE_CTOR.test(typeStr) ||\n ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) ||\n (ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr));\n}\nclass ReflectionCapabilities {\n constructor(reflect) {\n this._reflect = reflect || _global['Reflect'];\n }\n isReflectionEnabled() {\n return true;\n }\n factory(t) {\n return (...args) => new t(...args);\n }\n /** @internal */\n _zipTypesAndAnnotations(paramTypes, paramAnnotations) {\n let result;\n if (typeof paramTypes === 'undefined') {\n result = newArray(paramAnnotations.length);\n }\n else {\n result = newArray(paramTypes.length);\n }\n for (let i = 0; i < result.length; i++) {\n // TS outputs Object for parameters without types, while Traceur omits\n // the annotations. For now we preserve the Traceur behavior to aid\n // migration, but this can be revisited.\n if (typeof paramTypes === 'undefined') {\n result[i] = [];\n }\n else if (paramTypes[i] && paramTypes[i] != Object) {\n result[i] = [paramTypes[i]];\n }\n else {\n result[i] = [];\n }\n if (paramAnnotations && paramAnnotations[i] != null) {\n result[i] = result[i].concat(paramAnnotations[i]);\n }\n }\n return result;\n }\n _ownParameters(type, parentCtor) {\n const typeStr = type.toString();\n // If we have no decorators, we only have function.length as metadata.\n // In that case, to detect whether a child class declared an own constructor or not,\n // we need to look inside of that constructor to check whether it is\n // just calling the parent.\n // This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439\n // that sets 'design:paramtypes' to []\n // if a class inherits from another class but has no ctor declared itself.\n if (isDelegateCtor(typeStr)) {\n return null;\n }\n // Prefer the direct API.\n if (type.parameters && type.parameters !== parentCtor.parameters) {\n return type.parameters;\n }\n // API of tsickle for lowering decorators to properties on the class.\n const tsickleCtorParams = type.ctorParameters;\n if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) {\n // Newer tsickle uses a function closure\n // Retain the non-function case for compatibility with older tsickle\n const ctorParameters = typeof tsickleCtorParams === 'function' ? tsickleCtorParams() : tsickleCtorParams;\n const paramTypes = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type);\n const paramAnnotations = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // API for metadata created by invoking the decorators.\n const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS];\n const paramTypes = this._reflect && this._reflect.getOwnMetadata &&\n this._reflect.getOwnMetadata('design:paramtypes', type);\n if (paramTypes || paramAnnotations) {\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // If a class has no decorators, at least create metadata\n // based on function.length.\n // Note: We know that this is a real constructor as we checked\n // the content of the constructor above.\n return newArray(type.length);\n }\n parameters(type) {\n // Note: only report metadata if we have at least one class decorator\n // to stay in sync with the static reflector.\n if (!isType(type)) {\n return [];\n }\n const parentCtor = getParentCtor(type);\n let parameters = this._ownParameters(type, parentCtor);\n if (!parameters && parentCtor !== Object) {\n parameters = this.parameters(parentCtor);\n }\n return parameters || [];\n }\n _ownAnnotations(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) {\n let annotations = typeOrFunc.annotations;\n if (typeof annotations === 'function' && annotations.annotations) {\n annotations = annotations.annotations;\n }\n return annotations;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) {\n return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n return typeOrFunc[ANNOTATIONS];\n }\n return null;\n }\n annotations(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return [];\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : [];\n return parentAnnotations.concat(ownAnnotations);\n }\n _ownPropMetadata(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.propMetadata &&\n typeOrFunc.propMetadata !== parentCtor.propMetadata) {\n let propMetadata = typeOrFunc.propMetadata;\n if (typeof propMetadata === 'function' && propMetadata.propMetadata) {\n propMetadata = propMetadata.propMetadata;\n }\n return propMetadata;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.propDecorators &&\n typeOrFunc.propDecorators !== parentCtor.propDecorators) {\n const propDecorators = typeOrFunc.propDecorators;\n const propMetadata = {};\n Object.keys(propDecorators).forEach(prop => {\n propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);\n });\n return propMetadata;\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n return typeOrFunc[PROP_METADATA];\n }\n return null;\n }\n propMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const propMetadata = {};\n if (parentCtor !== Object) {\n const parentPropMetadata = this.propMetadata(parentCtor);\n Object.keys(parentPropMetadata).forEach((propName) => {\n propMetadata[propName] = parentPropMetadata[propName];\n });\n }\n const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n if (ownPropMetadata) {\n Object.keys(ownPropMetadata).forEach((propName) => {\n const decorators = [];\n if (propMetadata.hasOwnProperty(propName)) {\n decorators.push(...propMetadata[propName]);\n }\n decorators.push(...ownPropMetadata[propName]);\n propMetadata[propName] = decorators;\n });\n }\n return propMetadata;\n }\n ownPropMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {};\n }\n hasLifecycleHook(type, lcProperty) {\n return type instanceof Type && lcProperty in type.prototype;\n }\n guards(type) {\n return {};\n }\n getter(name) {\n return new Function('o', 'return o.' + name + ';');\n }\n setter(name) {\n return new Function('o', 'v', 'return o.' + name + ' = v;');\n }\n method(name) {\n const functionBody = `if (!o.${name}) throw new Error('\"${name}\" is undefined');\n return o.${name}.apply(o, args);`;\n return new Function('o', 'args', functionBody);\n }\n // There is not a concept of import uri in Js, but this is useful in developing Dart applications.\n importUri(type) {\n // StaticSymbol\n if (typeof type === 'object' && type['filePath']) {\n return type['filePath'];\n }\n // Runtime type\n return `./${stringify(type)}`;\n }\n resourceUri(type) {\n return `./${stringify(type)}`;\n }\n resolveIdentifier(name, moduleUrl, members, runtime) {\n return runtime;\n }\n resolveEnum(enumIdentifier, name) {\n return enumIdentifier[name];\n }\n}\nfunction convertTsickleDecoratorIntoMetadata(decoratorInvocations) {\n if (!decoratorInvocations) {\n return [];\n }\n return decoratorInvocations.map(decoratorInvocation => {\n const decoratorType = decoratorInvocation.type;\n const annotationCls = decoratorType.annotationCls;\n const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];\n return new annotationCls(...annotationArgs);\n });\n}\nfunction getParentCtor(ctor) {\n const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;\n const parentCtor = parentProto ? parentProto.constructor : null;\n // Note: We always use `Object` as the null value\n // to simplify checking later on.\n return parentCtor || Object;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _THROW_IF_NOT_FOUND = {};\nconst THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\n/*\n * Name of a property (that we patch onto DI decorator), which is used as an annotation of which\n * InjectFlag this decorator represents. This allows to avoid direct references to the DI decorators\n * in the code, thus making them tree-shakable.\n */\nconst DI_DECORATOR_FLAG = '__NG_DI_FLAG__';\nconst NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';\nconst NG_TOKEN_PATH = 'ngTokenPath';\nconst NEW_LINE = /\\n/gm;\nconst NO_NEW_LINE = 'ɵ';\nconst SOURCE = '__source';\nconst ɵ0$2 = getClosureSafeProperty;\nconst USE_VALUE = getClosureSafeProperty({ provide: String, useValue: ɵ0$2 });\n/**\n * Current injector value used by `inject`.\n * - `undefined`: it is an error to call `inject`\n * - `null`: `inject` can be called but there is no injector (limp-mode).\n * - Injector instance: Use the injector for resolution.\n */\nlet _currentInjector = undefined;\nfunction setCurrentInjector(injector) {\n const former = _currentInjector;\n _currentInjector = injector;\n return former;\n}\nfunction injectInjectorOnly(token, flags = InjectFlags.Default) {\n if (_currentInjector === undefined) {\n throw new Error(`inject() must be called from an injection context`);\n }\n else if (_currentInjector === null) {\n return injectRootLimpMode(token, undefined, flags);\n }\n else {\n return _currentInjector.get(token, flags & InjectFlags.Optional ? null : undefined, flags);\n }\n}\nfunction ɵɵinject(token, flags = InjectFlags.Default) {\n return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\n * off, saving bytes of generated code while still providing a good experience in dev mode.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * @codeGenApi\n */\nfunction ɵɵinvalidFactoryDep(index) {\n const msg = ngDevMode ?\n `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.` :\n 'invalid';\n throw new Error(msg);\n}\n/**\n * Injects a token from the currently active injector.\n *\n * Must be used in the context of a factory function such as one defined for an\n * `InjectionToken`. Throws an error if not called from such a context.\n *\n * Within such a factory function, using this function to request injection of a dependency\n * is faster and more type-safe than providing an additional array of dependencies\n * (as has been common with `useFactory` providers).\n *\n * @param token The injection token for the dependency to be injected.\n * @param flags Optional flags that control how injection is executed.\n * The flags correspond to injection strategies that can be specified with\n * parameter decorators `@Host`, `@Self`, `@SkipSef`, and `@Optional`.\n * @returns the injected value if injection is successful, `null` otherwise.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n * @publicApi\n */\nconst inject = ɵɵinject;\nfunction injectArgs(types) {\n const args = [];\n for (let i = 0; i < types.length; i++) {\n const arg = resolveForwardRef(types[i]);\n if (Array.isArray(arg)) {\n if (arg.length === 0) {\n throw new Error('Arguments array must have arguments.');\n }\n let type = undefined;\n let flags = InjectFlags.Default;\n for (let j = 0; j < arg.length; j++) {\n const meta = arg[j];\n const flag = getInjectFlag(meta);\n if (typeof flag === 'number') {\n // Special case when we handle @Inject decorator.\n if (flag === -1 /* Inject */) {\n type = meta.token;\n }\n else {\n flags |= flag;\n }\n }\n else {\n type = meta;\n }\n }\n args.push(ɵɵinject(type, flags));\n }\n else {\n args.push(ɵɵinject(arg));\n }\n }\n return args;\n}\n/**\n * Attaches a given InjectFlag to a given decorator using monkey-patching.\n * Since DI decorators can be used in providers `deps` array (when provider is configured using\n * `useFactory`) without initialization (e.g. `Host`) and as an instance (e.g. `new Host()`), we\n * attach the flag to make it available both as a static property and as a field on decorator\n * instance.\n *\n * @param decorator Provided DI decorator.\n * @param flag InjectFlag that should be applied.\n */\nfunction attachInjectFlag(decorator, flag) {\n decorator[DI_DECORATOR_FLAG] = flag;\n decorator.prototype[DI_DECORATOR_FLAG] = flag;\n return decorator;\n}\n/**\n * Reads monkey-patched property that contains InjectFlag attached to a decorator.\n *\n * @param token Token that may contain monkey-patched DI flags property.\n */\nfunction getInjectFlag(token) {\n return token[DI_DECORATOR_FLAG];\n}\nfunction catchInjectorError(e, token, injectorErrorName, source) {\n const tokenPath = e[NG_TEMP_TOKEN_PATH];\n if (token[SOURCE]) {\n tokenPath.unshift(token[SOURCE]);\n }\n e.message = formatError('\\n' + e.message, tokenPath, injectorErrorName, source);\n e[NG_TOKEN_PATH] = tokenPath;\n e[NG_TEMP_TOKEN_PATH] = null;\n throw e;\n}\nfunction formatError(text, obj, injectorErrorName, source = null) {\n text = text && text.charAt(0) === '\\n' && text.charAt(1) == NO_NEW_LINE ? text.substr(2) : text;\n let context = stringify(obj);\n if (Array.isArray(obj)) {\n context = obj.map(stringify).join(' -> ');\n }\n else if (typeof obj === 'object') {\n let parts = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n let value = obj[key];\n parts.push(key + ':' + (typeof value === 'string' ? JSON.stringify(value) : stringify(value)));\n }\n }\n context = `{${parts.join(', ')}}`;\n }\n return `${injectorErrorName}${source ? '(' + source + ')' : ''}[${context}]: ${text.replace(NEW_LINE, '\\n ')}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ɵ0$3 = (token) => ({ token });\n/**\n * Inject decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Inject = attachInjectFlag(\n// Disable tslint because `DecoratorFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nmakeParamDecorator('Inject', ɵ0$3), -1 /* Inject */);\n/**\n * Optional decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Optional = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Optional'), 8 /* Optional */);\n/**\n * Self decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Self = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Self'), 2 /* Self */);\n/**\n * `SkipSelf` decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst SkipSelf = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('SkipSelf'), 4 /* SkipSelf */);\n/**\n * Host decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Host = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Host'), 1 /* Host */);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _reflect = null;\nfunction getReflect() {\n return (_reflect = _reflect || new ReflectionCapabilities());\n}\nfunction reflectDependencies(type) {\n return convertDependencies(getReflect().parameters(type));\n}\nfunction convertDependencies(deps) {\n return deps.map(dep => reflectDependency(dep));\n}\nfunction reflectDependency(dep) {\n const meta = {\n token: null,\n attribute: null,\n host: false,\n optional: false,\n self: false,\n skipSelf: false,\n };\n if (Array.isArray(dep) && dep.length > 0) {\n for (let j = 0; j < dep.length; j++) {\n const param = dep[j];\n if (param === undefined) {\n // param may be undefined if type of dep is not set by ngtsc\n continue;\n }\n const proto = Object.getPrototypeOf(param);\n if (param instanceof Optional || proto.ngMetadataName === 'Optional') {\n meta.optional = true;\n }\n else if (param instanceof SkipSelf || proto.ngMetadataName === 'SkipSelf') {\n meta.skipSelf = true;\n }\n else if (param instanceof Self || proto.ngMetadataName === 'Self') {\n meta.self = true;\n }\n else if (param instanceof Host || proto.ngMetadataName === 'Host') {\n meta.host = true;\n }\n else if (param instanceof Inject) {\n meta.token = param.token;\n }\n else if (param instanceof Attribute) {\n if (param.attributeName === undefined) {\n throw new Error(`Attribute name must be defined.`);\n }\n meta.attribute = param.attributeName;\n }\n else {\n meta.token = param;\n }\n }\n }\n else if (dep === undefined || (Array.isArray(dep) && dep.length === 0)) {\n meta.token = null;\n }\n else {\n meta.token = dep;\n }\n return meta;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Used to resolve resource URLs on `@Component` when used with JIT compilation.\n *\n * Example:\n * ```\n * @Component({\n * selector: 'my-comp',\n * templateUrl: 'my-comp.html', // This requires asynchronous resolution\n * })\n * class MyComponent{\n * }\n *\n * // Calling `renderComponent` will fail because `renderComponent` is a synchronous process\n * // and `MyComponent`'s `@Component.templateUrl` needs to be resolved asynchronously.\n *\n * // Calling `resolveComponentResources()` will resolve `@Component.templateUrl` into\n * // `@Component.template`, which allows `renderComponent` to proceed in a synchronous manner.\n *\n * // Use browser's `fetch()` function as the default resource resolution strategy.\n * resolveComponentResources(fetch).then(() => {\n * // After resolution all URLs have been converted into `template` strings.\n * renderComponent(MyComponent);\n * });\n *\n * ```\n *\n * NOTE: In AOT the resolution happens during compilation, and so there should be no need\n * to call this method outside JIT mode.\n *\n * @param resourceResolver a function which is responsible for returning a `Promise` to the\n * contents of the resolved URL. Browser's `fetch()` method is a good default implementation.\n */\nfunction resolveComponentResources(resourceResolver) {\n // Store all promises which are fetching the resources.\n const componentResolved = [];\n // Cache so that we don't fetch the same resource more than once.\n const urlMap = new Map();\n function cachedResourceResolve(url) {\n let promise = urlMap.get(url);\n if (!promise) {\n const resp = resourceResolver(url);\n urlMap.set(url, promise = resp.then(unwrapResponse));\n }\n return promise;\n }\n componentResourceResolutionQueue.forEach((component, type) => {\n const promises = [];\n if (component.templateUrl) {\n promises.push(cachedResourceResolve(component.templateUrl).then((template) => {\n component.template = template;\n }));\n }\n const styleUrls = component.styleUrls;\n const styles = component.styles || (component.styles = []);\n const styleOffset = component.styles.length;\n styleUrls && styleUrls.forEach((styleUrl, index) => {\n styles.push(''); // pre-allocate array.\n promises.push(cachedResourceResolve(styleUrl).then((style) => {\n styles[styleOffset + index] = style;\n styleUrls.splice(styleUrls.indexOf(styleUrl), 1);\n if (styleUrls.length == 0) {\n component.styleUrls = undefined;\n }\n }));\n });\n const fullyResolved = Promise.all(promises).then(() => componentDefResolved(type));\n componentResolved.push(fullyResolved);\n });\n clearResolutionOfComponentResourcesQueue();\n return Promise.all(componentResolved).then(() => undefined);\n}\nlet componentResourceResolutionQueue = new Map();\n// Track when existing ɵcmp for a Type is waiting on resources.\nconst componentDefPendingResolution = new Set();\nfunction maybeQueueResolutionOfComponentResources(type, metadata) {\n if (componentNeedsResolution(metadata)) {\n componentResourceResolutionQueue.set(type, metadata);\n componentDefPendingResolution.add(type);\n }\n}\nfunction isComponentDefPendingResolution(type) {\n return componentDefPendingResolution.has(type);\n}\nfunction componentNeedsResolution(component) {\n return !!((component.templateUrl && !component.hasOwnProperty('template')) ||\n component.styleUrls && component.styleUrls.length);\n}\nfunction clearResolutionOfComponentResourcesQueue() {\n const old = componentResourceResolutionQueue;\n componentResourceResolutionQueue = new Map();\n return old;\n}\nfunction restoreComponentResolutionQueue(queue) {\n componentDefPendingResolution.clear();\n queue.forEach((_, type) => componentDefPendingResolution.add(type));\n componentResourceResolutionQueue = queue;\n}\nfunction isComponentResourceResolutionQueueEmpty() {\n return componentResourceResolutionQueue.size === 0;\n}\nfunction unwrapResponse(response) {\n return typeof response == 'string' ? response : response.text();\n}\nfunction componentDefResolved(type) {\n componentDefPendingResolution.delete(type);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (_global.trustedTypes) {\n try {\n policy = _global.trustedTypes.createPolicy('angular', {\n createHTML: (s) => s,\n createScript: (s) => s,\n createScriptURL: (s) => s,\n });\n }\n catch (_a) {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will be interpreted as HTML by a browser, e.g. when assigning to\n * element.innerHTML.\n */\nfunction trustedHTMLFromString(html) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createHTML(html)) || html;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security In particular, it must be assured that the provided string will\n * never cause an XSS vulnerability if used in a context that will be\n * interpreted and executed as a script by a browser, e.g. when calling eval.\n */\nfunction trustedScriptFromString(script) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScript(script)) || script;\n}\n/**\n * Unsafely promote a string to a TrustedScriptURL, falling back to strings\n * when Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will cause a browser to load and execute a resource, e.g. when\n * assigning to script.src.\n */\nfunction trustedScriptURLFromString(url) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScriptURL(url)) || url;\n}\n/**\n * Unsafely call the Function constructor with the given string arguments. It\n * is only available in development mode, and should be stripped out of\n * production code.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only called from development code, as use in production code can lead to\n * XSS vulnerabilities.\n */\nfunction newTrustedFunctionForDev(...args) {\n if (typeof ngDevMode === 'undefined') {\n throw new Error('newTrustedFunctionForDev should never be called in production');\n }\n if (!_global.trustedTypes) {\n // In environments that don't support Trusted Types, fall back to the most\n // straightforward implementation:\n return new Function(...args);\n }\n // Chrome currently does not support passing TrustedScript to the Function\n // constructor. The following implements the workaround proposed on the page\n // below, where the Chromium bug is also referenced:\n // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor\n const fnArgs = args.slice(0, -1).join(',');\n const fnBody = args[args.length - 1];\n const body = `(function anonymous(${fnArgs}\n) { ${fnBody}\n})`;\n // Using eval directly confuses the compiler and prevents this module from\n // being stripped out of JS binaries even if not used. The global['eval']\n // indirection fixes that.\n const fn = _global['eval'](trustedScriptFromString(body));\n if (fn.bind === undefined) {\n // Workaround for a browser bug that only exists in Chrome 83, where passing\n // a TrustedScript to eval just returns the TrustedScript back without\n // evaluating it. In that case, fall back to the most straightforward\n // implementation:\n return new Function(...args);\n }\n // To completely mimic the behavior of calling \"new Function\", two more\n // things need to happen:\n // 1. Stringifying the resulting function should return its source code\n fn.toString = () => body;\n // 2. When calling the resulting function, `this` should refer to `global`\n return fn.bind(_global);\n // When Trusted Types support in Function constructors is widely available,\n // the implementation of this function can be simplified to:\n // return new Function(...args.map(a => trustedScriptFromString(a)));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy$1;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy$1() {\n if (policy$1 === undefined) {\n policy$1 = null;\n if (_global.trustedTypes) {\n try {\n policy$1 = _global.trustedTypes\n .createPolicy('angular#unsafe-bypass', {\n createHTML: (s) => s,\n createScript: (s) => s,\n createScriptURL: (s) => s,\n });\n }\n catch (_a) {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy$1;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedHTMLFromStringBypass(html) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createHTML(html)) || html;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedScriptFromStringBypass(script) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createScript(script)) || script;\n}\n/**\n * Unsafely promote a string to a TrustedScriptURL, falling back to strings\n * when Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedScriptURLFromStringBypass(url) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createScriptURL(url)) || url;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SafeValueImpl {\n constructor(changingThisBreaksApplicationSecurity) {\n this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity;\n }\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see https://g.co/ng/security#xss)`;\n }\n}\nclass SafeHtmlImpl extends SafeValueImpl {\n getTypeName() {\n return \"HTML\" /* Html */;\n }\n}\nclass SafeStyleImpl extends SafeValueImpl {\n getTypeName() {\n return \"Style\" /* Style */;\n }\n}\nclass SafeScriptImpl extends SafeValueImpl {\n getTypeName() {\n return \"Script\" /* Script */;\n }\n}\nclass SafeUrlImpl extends SafeValueImpl {\n getTypeName() {\n return \"URL\" /* Url */;\n }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl {\n getTypeName() {\n return \"ResourceURL\" /* ResourceUrl */;\n }\n}\nfunction unwrapSafeValue(value) {\n return value instanceof SafeValueImpl ? value.changingThisBreaksApplicationSecurity :\n value;\n}\nfunction allowSanitizationBypassAndThrow(value, type) {\n const actualType = getSanitizationBypassType(value);\n if (actualType != null && actualType !== type) {\n // Allow ResourceURLs in URL contexts, they are strictly more trusted.\n if (actualType === \"ResourceURL\" /* ResourceUrl */ && type === \"URL\" /* Url */)\n return true;\n throw new Error(`Required a safe ${type}, got a ${actualType} (see https://g.co/ng/security#xss)`);\n }\n return actualType === type;\n}\nfunction getSanitizationBypassType(value) {\n return value instanceof SafeValueImpl && value.getTypeName() || null;\n}\n/**\n * Mark `html` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link htmlSanitizer} to be trusted implicitly.\n *\n * @param trustedHtml `html` string which needs to be implicitly trusted.\n * @returns a `html` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustHtml(trustedHtml) {\n return new SafeHtmlImpl(trustedHtml);\n}\n/**\n * Mark `style` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link styleSanitizer} to be trusted implicitly.\n *\n * @param trustedStyle `style` string which needs to be implicitly trusted.\n * @returns a `style` hich has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustStyle(trustedStyle) {\n return new SafeStyleImpl(trustedStyle);\n}\n/**\n * Mark `script` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link scriptSanitizer} to be trusted implicitly.\n *\n * @param trustedScript `script` string which needs to be implicitly trusted.\n * @returns a `script` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustScript(trustedScript) {\n return new SafeScriptImpl(trustedScript);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link urlSanitizer} to be trusted implicitly.\n *\n * @param trustedUrl `url` string which needs to be implicitly trusted.\n * @returns a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustUrl(trustedUrl) {\n return new SafeUrlImpl(trustedUrl);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link resourceUrlSanitizer} to be trusted implicitly.\n *\n * @param trustedResourceUrl `url` string which needs to be implicitly trusted.\n * @returns a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustResourceUrl(trustedResourceUrl) {\n return new SafeResourceUrlImpl(trustedResourceUrl);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This helper is used to get hold of an inert tree of DOM elements containing dirty HTML\n * that needs sanitizing.\n * Depending upon browser support we use one of two strategies for doing this.\n * Default: DOMParser strategy\n * Fallback: InertDocument strategy\n */\nfunction getInertBodyHelper(defaultDoc) {\n const inertDocumentHelper = new InertDocumentHelper(defaultDoc);\n return isDOMParserAvailable() ? new DOMParserHelper(inertDocumentHelper) : inertDocumentHelper;\n}\n/**\n * Uses DOMParser to create and fill an inert body element.\n * This is the default strategy used in browsers that support it.\n */\nclass DOMParserHelper {\n constructor(inertDocumentHelper) {\n this.inertDocumentHelper = inertDocumentHelper;\n }\n getInertBodyElement(html) {\n // We add these extra elements to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the\n // `` tag. Note that the `` tag is closed implicitly to prevent unclosed tags\n // in `html` from consuming the otherwise explicit `` tag.\n html = '' + html;\n try {\n const body = new window.DOMParser()\n .parseFromString(trustedHTMLFromString(html), 'text/html')\n .body;\n if (body === null) {\n // In some browsers (e.g. Mozilla/5.0 iPad AppleWebKit Mobile) the `body` property only\n // becomes available in the following tick of the JS engine. In that case we fall back to\n // the `inertDocumentHelper` instead.\n return this.inertDocumentHelper.getInertBodyElement(html);\n }\n body.removeChild(body.firstChild);\n return body;\n }\n catch (_a) {\n return null;\n }\n }\n}\n/**\n * Use an HTML5 `template` element, if supported, or an inert body element created via\n * `createHtmlDocument` to create and fill an inert DOM element.\n * This is the fallback strategy if the browser does not support DOMParser.\n */\nclass InertDocumentHelper {\n constructor(defaultDoc) {\n this.defaultDoc = defaultDoc;\n this.inertDocument = this.defaultDoc.implementation.createHTMLDocument('sanitization-inert');\n if (this.inertDocument.body == null) {\n // usually there should be only one body element in the document, but IE doesn't have any, so\n // we need to create one.\n const inertHtml = this.inertDocument.createElement('html');\n this.inertDocument.appendChild(inertHtml);\n const inertBodyElement = this.inertDocument.createElement('body');\n inertHtml.appendChild(inertBodyElement);\n }\n }\n getInertBodyElement(html) {\n // Prefer using