{"version":3,"sources":["webpack:///./node_modules/url/url.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/pdfjs-dist/build/pdf.worker.js?68c4","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/pdfjs-dist/build/pdf.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/pdfjs-dist/webpack.js"],"names":["punycode","util","Url","this","protocol","slashes","auth","host","port","hostname","hash","search","query","pathname","path","href","exports","parse","urlParse","resolve","urlResolve","resolveObject","urlResolveObject","format","urlFormat","protocolPattern","portPattern","simplePathPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","url","parseQueryString","slashesDenoteHost","isObject","u","obj","isString","prototype","call","source","relative","TypeError","queryIndex","indexOf","splitter","uSplit","split","slashRegex","replace","join","rest","trim","length","simplePath","exec","substr","proto","lowerProto","toLowerCase","match","atSign","hostEnd","i","hec","lastIndexOf","slice","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","part","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","toASCII","p","h","ae","esc","encodeURIComponent","escape","qm","s","Object","keys","stringify","charAt","rel","result","tkeys","tk","tkey","rkeys","rk","rkey","v","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","splice","isAbsolute","root","nodeType","module","freeGlobal","global","window","self","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","mapDomain","string","parts","labels","encoded","ucs2decode","value","extra","output","counter","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","decode","input","out","basic","index","oldi","w","t","baseMinusT","inputLength","n","bias","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","test","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","len","getLens","b64","Error","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","extraBytes","maxChunkLength","len2","arg","Worker","read","buffer","offset","isLE","mLen","nBytes","e","eLen","eMax","eBias","nBits","d","NaN","Infinity","pow","write","c","rt","abs","isNaN","log","LN2","hasOwnProperty","prop","qs","sep","eq","options","regexp","maxKeys","kstr","vstr","x","idx","isArray","xs","toString","factory","modules","installedModules","__w_pdfjs_require__","moduleId","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","mode","__esModule","ns","create","key","bind","object","property","pdfjsSharedUtil","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDOMUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","setPDFNetworkStreamFactory","params","Response","ReadableStream","PDFFetchStream","PDFNetworkStream","build","version","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","renderTextLayer","AnnotationLayer","createPromiseCapability","PasswordResponses","InvalidPDFException","MissingPDFException","SVGGraphics","NativeImageDecoding","CMapCompressionType","PermissionFlag","UnexpectedResponseException","OPS","VerbosityLevel","UNSUPPORTED_FEATURES","createValidAbsoluteUrl","createObjectURL","removeNullCharacters","shadow","Util","URL","RenderingCancelledException","getFilenameFromUrl","LinkTarget","addLinkAttributes","loadScript","GlobalWorkerOptions","apiCompatibilityParams","unreachable","warn","utf8StringToString","stringToUTF8String","stringToPDFString","stringToBytes","string32","setVerbosityLevel","readUint32","readUint16","readInt8","log2","isEvalSupported","isLittleEndian","isSameOrigin","isSpace","isNum","isEmptyObj","isBool","isArrayBuffer","info","getVerbosityLevel","getLookupTableFactory","getInheritableProperty","deprecated","bytesToString","assert","arraysToBytes","arrayByteLength","FormatError","XRefParseException","toRomanNumerals","UnknownErrorException","TextRenderingMode","StreamType","PasswordException","MissingDataException","AbortException","ImageKind","FontType","AnnotationType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","undefined","_typeof","iterator","constructor","_streams_polyfill","_url_polyfill","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","INFOS","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","verbosity","level","Number","isInteger","msg","console","details","cond","baseUrl","otherUrl","origin","other","_isValidProtocol","absoluteUrl","ex","configurable","writable","initializer","message","status","begin","NullCharactersRegExp","str","bytes","MAX_ARGUMENT_COUNT","apply","strBuf","chunkEnd","min","chunk","subarray","item","itemLength","resultLength","ii","pos","data","set","ceil","buffer8","view32","Uint32Array","Function","_ref","dict","_ref$getArray","getArray","_ref$stopWhenFound","stopWhenFound","LOOP_LIMIT","loopCount","values","rgbBuf","makeCssRgb","g","b","m1","m2","applyTransform","xt","yt","applyInverseTransform","getAxialAlignedBoundingBox","p1","p2","p3","p4","max","inverseTransform","apply3dTransform","singularValueDecompose2dScale","transpose","a","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","compare","orderedX","sort","orderedY","ROMAN_NUMBER_MAP","number","lowerCase","arguments","romanBuf","romanStr","PDFStringTranslateTable","unescape","ch","capability","promise","Promise","reject","digits","contentType","forceDataSchema","blob","Blob","b1","b2","b3","d1","d2","d3","d4","globalScope","_pdfjsCompatibilityChecked","hasDOM","document","btoa","chars","Buffer","from","atob","scripts","getElementsByTagName","Element","remove","parentNode","removeChild","div","createElement","classList","toggle","originalDOMTokenListToggle","DOMTokenList","token","force","includes","assign","WeakMap","codePointAt","fromCodePoint","process","$export","context","INCLUDES","P","F","searchString","core","hide","redefine","ctx","PROTOTYPE","own","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","target","expProto","U","W","R","__g","__e","dP","createDesc","f","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","it","is","val","valueOf","bitmap","has","SRC","TO_STRING","$toString","TPL","inspectSource","safe","isFunction","id","px","random","aFunction","that","isRegExp","defined","NAME","cof","MATCH","store","uid","_Symbol","USE_SYMBOL","$exports","SHARED","copyright","KEY","re","$includes","el","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","IObject","propertyIsEnumerable","toInteger","UNSCOPABLES","ArrayProto","getKeys","gOPS","pIE","toObject","$assign","A","K","forEach","T","aLen","getSymbols","isEnum","$keys","enumBugKeys","arrayIndexOf","IE_PROTO","names","shared","getOwnPropertySymbols","isFinite","classof","TAG","ARG","tryGet","callee","$at","iterated","_t","_i","point","done","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","descriptor","dPs","Empty","_createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","close","Properties","defineProperties","documentElement","def","tag","stat","ObjectProto","$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","step","_k","Arguments","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","speciesConstructor","task","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","then","isThenable","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","exited","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","executor","err","onFulfilled","onRejected","C","$$reject","iter","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","isArrayIter","getIterFn","BREAK","RETURN","_exports","iterFn","ret","getIteratorMethod","SPECIES","D","defer","channel","invoke","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","listener","event","args","nextTick","now","port2","port1","onmessage","postMessage","addEventListener","importScripts","setTimeout","clear","un","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","flush","parent","navigator","standalone","node","createTextNode","observe","characterData","PromiseCapability","$$resolve","promiseCapability","DESCRIPTORS","SAFE_CLOSING","riter","skipClosing","onFinally","callbackfn","InternalMap","each","meta","weak","fails","validate","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","ufstore","$WeakMap","freeze","getConstructor","NEED","method","_f","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","res","original","META","setDesc","FREEZE","preventExtensions","setMeta","fastKey","onFreeze","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","_l","UncaughtFrozenStore","findUncaughtFrozen","entry","ADDER","$iterDetect","inheritIfRequired","common","IS_WEAK","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","setPrototypeOf","check","buggy","__proto__","gOPD","getOwnPropertyDescriptor","COLLECTION","of","mapping","cb","mapFn","nextItem","$fromCodePoint","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","gOPN","$Symbol","$JSON","JSON","_stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","getOwnPropertyNames","replacer","$replacer","symbols","windowNames","getWindowNames","hiddenKeys","$values","isEntries","isReadableStreamSupported","controller","_typeof2","_require","IsPropertyKey","argument","Call","V","typeIsObject","createDataProperty","createArrayFromList","elements","ArrayBufferCopy","dest","destOffset","srcOffset","CreateIterResultObject","IsFiniteNonNegativeNumber","InvokeOrNoop","PromiseInvokeOrNoop","returnValueE","PromiseInvokeOrPerformFallback","argsF","methodE","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","ValidateAndNormalizeQueuingStrategy","size","rethrowAssertionErrorRejection","AssertionError","stack","_createClass","props","protoProps","staticProps","_classCallCheck","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref$highWaterMark","_state","_storedError","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","WritableStreamDefaultController","__startSteps","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","AcquireWritableStreamDefaultWriter","stream","WritableStreamDefaultWriter","state","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","__errorSteps","storedError","abortRequest","WritableStreamRejectCloseAndClosedPromiseIfNeeded","__abortSteps","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamCloseQueuedOrInFlight","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","_closedPromise","catch","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","_readyPromise","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterGetDesiredSize","closeRequest","WritableStreamDefaultControllerClose","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","_controlledWritableStream","_underlyingSink","_queue","_queueTotalSize","normalizedStrategy","_strategySize","_strategyHWM","WritableStreamDefaultControllerGetBackpressure","IsWritableStreamDefaultController","_this","startResult","WritableStreamDefaultControllerAdvanceQueueIfNeeded","strategySize","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","desiredSize","_closedPromise_resolve","_closedPromise_reject","_readyPromise_resolve","_readyPromise_reject","container","pair","_require4","_require5","underlyingSource","_reader","_disturbed","_readableStreamController","typeString","ReadableByteStreamController","ReadableStreamDefaultController","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","_ref2","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","_ref3","readable","pipeTo","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","_ref4","preventClose","preventAbort","preventCancel","Boolean","reader","shuttingDown","currentWrite","pipeLoop","ReadableStreamDefaultReaderRead","_ref5","isOrBecomesErrored","shutdownWithAction","shutdown","isOrBecomesClosed","destClosed","waitForWritesToFinish","oldCurrentWrite","action","originalIsError","originalError","doTheRest","finalize","newError","isError","ReadableStreamReaderGenericRelease","branches","ReadableStreamTee","ReadableStreamBYOBReader","ReadableStreamDefaultReader","IsReadableStreamDisturbed","cloneForBranch2","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","create_ReadableStreamTeePullFunction","_teeState","_cloneForBranch2","cancel1","create_ReadableStreamTeeBranch1CancelFunction","_stream","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","_branch1","_branch2","ReadableStreamDefaultControllerError","branch1","branch2","ReadableStreamDefaultControllerClose","value1","value2","ReadableStreamDefaultControllerEnqueue","compositeReason","cancelResult","ReadableStreamAddReadIntoRequest","IsReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","ReadableStreamAddReadRequest","IsReadableStreamDefaultReader","readRequest","_readRequests","ReadableStreamClose","sourceCancelPromise","__cancelSteps","defaultReaderClosedPromiseResolve","ReadableStreamError","defaultReaderClosedPromiseReject","ReadableStreamFulfillReadIntoRequest","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadIntoRequests","ReadableStreamGetNumReadRequests","ReadableStreamHasBYOBReader","ReadableStreamHasDefaultReader","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","_ownerReadableStream","readerLockException","ReadableStreamReaderGenericCancel","IsReadableByteStreamController","byobReaderBrandCheckException","view","ArrayBuffer","isView","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","ReadableByteStreamControllerPullInto","__pullSteps","_controlledReadableStream","_underlyingSource","_closeRequested","_pullAgain","_pulling","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","shouldPull","ReadableStreamDefaultControllerShouldCallPull","pullPromise","ReadableStreamBYOBRequest","_associatedReadableByteStreamController","_view","bytesWritten","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespond","ReadableByteStreamControllerRespondWithNewView","underlyingByteSource","_underlyingByteSource","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","_autoAllocateChunkSize","_pendingPullIntos","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerError","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","firstDescriptor","bytesFilled","ReadableByteStreamControllerHandleQueueDrain","byteOffset","viewE","bufferE","pullIntoDescriptor","elementSize","ctor","readerType","_byobRequest","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","DataView","BYTES_PER_ELEMENT","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","firstPendingPullInto","transferredBuffer","transferredView","transformStream","readableStream","writableStream","TransformStream","TransformStreamCloseReadable","_errored","_readableClosed","TransformStreamCloseReadableInternal","TransformStreamEnqueueToReadable","_readableController","TransformStreamErrorIfNeeded","maybeBackpressure","TransformStreamSetBackpressure","TransformStreamError","TransformStreamErrorInternal","_writableDone","_writableController","TransformStreamReadableReadyPromise","_backpressureChangePromise","_backpressureChangePromise_resolve","resolution","TransformStreamDefaultTransform","transformStreamController","_controlledTransformStream","TransformStreamTransform","_transforming","transformer","_transformer","_transformStreamController","transformPromise","IsTransformStreamDefaultController","IsTransformStream","TransformStreamSink","startPromise","_transformStream","_startPromise","flushPromise","TransformStreamSource","TransformStreamDefaultController","readableController","readableStrategy","writableStrategy","startPromise_resolve","_readable","sink","_writable","isURLSupported","PolyfillURL","OriginalURL","revokeObjectURL","relativePathDotMapping","isRelativeScheme","scheme","invalid","_isInvalid","IDNAToASCII","percentEscape","unicode","percentEscapeQuery","EOF","ALPHA","ALPHANUMERIC","stateOverride","cursor","seenAt","seenBracket","loop","_scheme","_isRelative","_query","_fragment","_schemeData","_host","_port","_path","_username","_password","nextC","nextNextC","cp","tempC","temp","parseInt","JURL","_url","authority","_","PDFPageProxy","PDFDocumentProxy","_slicedToArray","sliceIterator","_arr","_e","_util","_dom_utils","_font_loader","_api_compatibility","_canvas","_global_scope","_global_scope2","_interopRequireDefault","_worker_options","_message_handler","_metadata","_transport_stream","_webgl","default","_toConsumableArray","arr2","DEFAULT_RANGE_CHUNK_SIZE","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerFilesLoader","useRequireEnsure","requirejs","toUrl","createPDFNetworkStream","dynamicLoaderSupported","load","worker","WorkerMessageHandler","pdfjsFilePath","currentScript","pdfNetworkStreamFactory","PDFDocumentLoadingTask","range","rangeTransport","pdfBytes","location","rangeChunkSize","CMapReaderFactory","DOMCMapReaderFactory","ignoreErrors","stopAtErrors","pdfBug","NativeImageDecoderValues","nativeImageDecoderSupport","maxImageSize","disableFontFace","disableRange","disableStream","disableAutoFetch","disableCreateObjectURL","workerParams","postMessageTransfers","workerPort","fromPort","_worker","docId","destroyed","_fetchDocument","workerId","networkStream","PDFDataTransportStream","initialData","httpHeaders","withCredentials","messageHandler","MessageHandler","transport","WorkerTransport","_transport","send","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","docBaseUrl","nextDocumentId","onPassword","onProgress","onUnsupportedFeature","destroy","transportDestroyed","_rangeListeners","_progressListeners","_progressiveReadListeners","_readyCapability","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","loaded","_this2","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_this3","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","pdfInfo","loadingTask","_pdfInfo","pageNumber","getPage","ref","getPageIndex","getDestinations","getDestination","getPageLabels","getPageMode","getAttachments","getJavaScript","getOutline","getPermissions","getMetadata","getData","downloadInfoCapability","getStats","startCleanup","numPages","fingerprint","loadingParams","pageIndex","pageInfo","_pageInfo","_stats","StatTimer","DummyStatTimer","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","intentStates","rotate","userUnit","getViewport","scale","dontFlip","PageViewport","viewBox","rotation","getAnnotations","intent","annotationsPromise","annotationsIntent","render","_this4","stats","time","renderingIntent","canvasFactory","DOMCanvasFactory","webGLContext","WebGLContext","enable","enableWebGL","intentState","displayReadyCapability","receivingOperatorList","operatorList","fnArray","argsArray","lastChunk","renderInteractiveForms","complete","renderTasks","internalRenderTask","_tryCleanup","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","transparency","initializeGraphics","operatorListChanged","getOperatorList","opListReadCapability","opListTask","streamTextContent","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","normalizeWhitespace","combineTextItems","disableCombineTextItems","textContent","items","getTextContent","pump","_textContent$items","styles","getReader","_destroy","pageCache","waitOn","renderCompleted","cancel","cleanup","resetStats","some","_startRenderPage","_renderPageChunk","operatorListChunk","_listeners","_defer","_deferred","transfers","_this5","cloneValue","cloned","transferable","desc","nextFakeWorkerId","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","pdfjsWorker","fakeWorkerFilesLoadedCapability","setupFakeWorkerGlobal","mainWorkerMessageHandler","loader","createCDNWrapper","pdfWorkerPorts","_ref2$name","_ref2$port","_ref2$postMessageTran","_ref2$verbosity","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","_this6","terminateEarly","removeEventListener","onWorkerError","terminate","_setupFakeWorker","supportTypedArray","supportTransfers","sendTest","testObj","_this7","workerHandler","setup","delete","fontLoader","FontLoader","_params","cMapUrl","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_this8","page","terminated","cancelAllRequests","_this9","getFullReader","evt","total","onPull","enqueue","onCancel","_this10","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","pdfDocument","exception","_this11","updatePassword","_this12","_data","exportedData","hasData","exportedError","fontRegistry","FontInspector","enabled","registerFont","fontAdded","FontFaceObject","_onUnsupportedFeature","fontReady","fontObjs","_data2","imageData","pageProxy","img","Image","onload","onerror","MAX_IMAGE_SIZE_TO_STORE","pageNum","_data3","imageUrl","components","width","height","rgbaLength","buf","Uint8ClampedArray","tmpCanvas","tmpCtx","getContext","drawImage","getImageData","_j","fetch","_ref6","featureId","_this13","_this14","results","metadata","Metadata","contentDispositionFilename","filename","_this15","ensureObj","objId","resolved","callback","isResolved","RenderTask","_internalRenderTask","onContinue","canvasInRendering","operatorListIdx","running","graphicsReadyCallback","graphicsReady","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","canvasContext","canvas","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","imageLayer","beginDrawing","viewport","background","updateOperatorList","_this16","requestAnimationFrame","_this17","executeOperatorList","endDrawing","DOMSVGFactory","DEFAULT_LINK_REL","SVG_NS","canvasAndContext","_ref$baseUrl","_ref$isCompressed","request","XMLHttpRequest","responseType","onreadystatechange","readyState","DONE","response","responseText","cMapData","compressionType","svg","createElementNS","setAttribute","_ref3$offsetX","offsetX","_ref3$offsetY","offsetY","_ref3$dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","_ref4$scale","_ref4$rotation","_ref4$dontFlip","y","tl","br","SELF","BLANK","PARENT","TOP","LinkTargetStringMap","link","title","LinkTargetValues","targetIndex","anchor","substring","started","times","Date","longest","_ii","span","duration","padEnd","script","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","BaseFontLoader","nativeFontFaces","styleElement","loadingContext","requests","nextRequestId","nativeFontFace","fonts","add","rule","styleSheet","sheet","insertRule","cssRules","rules","fontsToLoad","fontLoadPromises","getNativeFontPromise","family","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","createFontFaceRule","_queueLoadingCallback","isSyncFontLoadingSupported","_prepareFontLoadEvent","completeRequest","otherRequest","_BaseFontLoader","GenericFontLoader","loadTestFontId","int32","spliceString","insert","chunk1","chunk2","called","isFontReady","fillText","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","loadedName","fontFamily","body","supported","getLoadTestFont","IsEvalSupportedCached","translatedData","_ref$isEvalSupported","_ref$disableFontFace","_ref$ignoreErrors","_ref$onUnsupportedFea","_ref$fontRegistry","compiledGlyphs","FontFace","mimetype","character","cmds","current","js","cmd","compatibilityParams","isIE","isIOSChrome","_pattern_helper","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","ad_bc","bc_ad","old","prev","angle","cosValue","cos","sinValue","sin","CachedCanvases","cache","getCanvas","trackTransform","canvasEntry","reset","compileType3Glyph","imgData","j0","POINT_TO_PROCESS_LIMIT","width1","points","POINT_TYPES","lineSize","data0","mask","elem","count","sum","steps","Int32Array","outlines","pp","coords","p0","drawOutline","beginPath","jj","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","EXECUTION_TIME","EXECUTION_STEPS","canvasCtx","stateStack","pendingClip","pendingEOFill","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","composeFn","hasBackdrop","PIXELS_TO_PROCESS","row","chunkHeight","composeSMask","scaleX","scaleY","isEnabled","composed","layer","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","op","_ref$background","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","breakIt","deps","nn","depObjId","objsPool","endSMaskGroup","endLayout","limit","dashArray","dashPhase","flatness","states","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","bezierCurveTo","consumePath","getPattern","isPatternFill","needRestore","paths","pendingTextPaths","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","scaledAccentX","scaledAccentY","vmetric","vx","vy","restoreNeeded","fontChar","accent","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","charWidth","spacingLength","isTextInvisible","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","patternIR","inv","bl","ul","ur","x0","y0","x1","y1","matrix","bbox","group","isolated","knockout","bounds","canvasBounds","imageSmoothingEnabled","mozImageSmoothingEnabled","domImage","position","getCanvasPosition","appendImage","left","top","compiled","maskCanvas","positions","images","image","imgToPaint","widthScale","heightScale","HTMLElement","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","inverse","ShadingIRs","fromIR","raw","colorStops","r1","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","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","round","maxY","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","combinesScale","figures","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","drawFigures","shadingIR","Mesh","owner","matrixScale","temporaryPatternCanvas","createPattern","Dummy","PaintType","COLORED","UNCOLORED","xstep","ystep","paintType","tilingType","createPatternCanvas","topLeft","botRight","curMatrixScale","combinedScale","graphics","setFillAndStrokeStyleToContext","setScale","transformToScale","tmpTranslate","clipBbox","tmpScale","scaleToContext","bboxWidth","bboxHeight","cssColor","_regenerator","_regenerator2","resolveCall","_asyncToGenerator","mark","_callee","thisArg","_context","abrupt","stop","_x2","_x3","gen","wrapReason","makeReasonSerializable","resolveOrReject","success","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbacksCapabilities","ah","actionHandler","_onComObjOnMessage","_processStreamMessage","isReply","_sourceName","_targetName","_createStreamSink","actionName","scope","queueingStrategy","startCapability","startCall","isClosed","pullCapability","pullCall","cancelCapability","cancelCall","sendStreamRequest","streamSink","isCancelled","lastDesiredSize","sinkCapability","sendStreamResponse","deleteStreamController","hadRuntime","regeneratorRuntime","oldRuntime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","reverse","Context","skipTempReset","sent","_sent","delegate","tryEntries","resetTryEntry","rootEntry","rootRecord","completion","rval","dispatchException","handle","loc","caught","record","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","finallyEntry","afterLoc","finish","thrown","delegateYield","resultName","nextLoc","protoGenerator","generator","_invoke","makeInvokeMethod","tryCatch","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","pushTryEntry","locs","iteratorMethod","webpackPolyfill","deprecate","children","_xml_parser","_repair","parser","SimpleXMLParser","xmlDocument","parseFromString","_parse","codes","rdf","nodeName","firstChild","nextSibling","hasChildNodes","childNodes","_get","receiver","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","isWhitespaceString","XMLParserBase","entity","onResolveEntity","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","ch2","onError","onEndElement","pi","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","content","_parseContent","onBeginElement","text","onText","isEmpty","SimpleDOMNode","nodeValue","child","_XMLParserBase","_currentFragment","_stack","_errorCode","parseXml","lastElement","_queuedChunks","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","transportReady","PDFDataTransportStreamReader","queuedChunks","_done","_filename","_requests","_headersReady","PDFDataTransportStreamRangeReader","_begin","_end","_queuedChunk","_enqueue","found","firstReader","_removeRangeReader","requestDataRange","readers","abort","requestCapability","requestsCapability","_callee2","_context2","_ref$enable","_enabled","WebGLUtils","tryInitGL","loadShader","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","createVertexShader","VERTEX_SHADER","createFragmentShader","FRAGMENT_SHADER","createProgram","shaders","program","attachShader","linkProgram","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture","textureId","activeTexture","texture","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","generateGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","initSmaskGL","vertexShader","fragmentShader","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","deleteTexture","deleteBuffer","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","scaleLocation","offsetLocation","colorLocation","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","styleBuf","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_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","expand","expanded","expandBounds","divProperties","ts","Float64Array","findPositiveMin","boxScale","boxes","box","x1New","x2New","expandBoundsLTR","fakeBoundary","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","renderParameters","_render","timeout","clearTimeout","_processItems","styleCache","textLayerFrag","mozOpaque","textItems","textStyles","expandTextDivs","expandDivs","padding","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","linkService","downloadManager","imageResourcesPath","svgFactory","_createContainer","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","trigger","popupElement","PopupElement","contents","hideWrapper","popup","_AnnotationElement","className","newWindow","externalLinkTarget","externalLinkRel","_bindNamedAction","_bindLink","destination","getDestinationHash","onclick","navigateTo","getAnchorUrl","executeNamedAction","_AnnotationElement2","hasPopup","alt","l10nId","l10nArgs","_createPopup","_AnnotationElement3","_WidgetAnnotationElem","hasAppearance","fieldValue","TEXT_ALIGNMENT","element","multiLine","disabled","readOnly","maxLen","maxLength","comb","fieldWidth","combWidth","letterSpacing","verticalAlign","_setTextStyle","textAlignment","textAlign","direction","fontWeight","fontStyle","_WidgetAnnotationElem2","_WidgetAnnotationElem3","fieldName","buttonValue","_LinkAnnotationElemen","_WidgetAnnotationElem4","selectElement","combo","multiSelect","multiple","option","optionElement","displayValue","exportValue","_AnnotationElement4","IGNORE_TYPES","parentType","selector","parentId","parentElement","querySelector","parentLeft","parseFloat","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","_formatContents","_toggle","_show","_hide","lines","line","pin","hasAttribute","removeAttribute","zIndex","unpin","_AnnotationElement5","lineCoordinates","append","_AnnotationElement6","square","_AnnotationElement7","circle","_AnnotationElement8","containerClassName","svgElementName","vertices","polyline","_PolylineAnnotationEl","_AnnotationElement9","inkLists","inkList","_AnnotationElement10","_AnnotationElement11","_AnnotationElement12","_AnnotationElement13","_AnnotationElement14","_AnnotationElement15","_this23","_this23$data$file","file","eventBus","dispatch","_download","downloadData","annotations","_is_node","_is_node2","SVG_DEFAULTS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","maxBlockLength","deflateBlocks","idat","adler","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","opListToTree","opList","opTree","opListLen","pf","toFixed","pm","acos","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","XML_NS","XLINK_NS","clipCount","maskCount","tgrp","executeOpTree","loadDependencies","fnArrayLen","getSVG","svgElement","convertOpList","REVOPS","opTreeLen","lineMatrix","xcoords","tspan","setAttributeNS","txtElement","txtgrp","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","setStrokeAlpha","setFillAlpha","opLength","clipId","clipPath","clipElement","cloneNode","getAttributeNS","imgObj","imgEl","imgSrc","cliprect","definitions","rootGroup","_ensureClipGroup","_network_utils","fs","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","isHttp","isFsUrl","_fullRequest","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_loaded","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","_BaseFullReader","handleResponse","statusCode","_setReadableStream","getResponseHeader","_validateRangeRequest","validateRangeRequestCapabilities","allowRangeRequests","suggestedLength","extractFilenameFromHeader","_request","_BaseRangeReader","_httpHeaders","_BaseFullReader2","lstat","createReadStream","_BaseRangeReader2","validateResponseStatus","createResponseStatusError","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","_filename2","attributePattern","flags","RegExp","textdecode","encoding","decoder","TextDecoder","fatal","matches","_match","_match2","quot","_matches$_n","_quot","_part","quotindex","extvalue","encodingend","langvalue","charset","hex","createFetchOptions","abortController","signal","credentials","redirect","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","Headers","rangeStr","NetworkManager","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getXhr","currXhrId","pendingRequests","loadedRequests","getArrayBuffer","xhr","supportsMozChunked","_source","_manager","PDFNetworkStreamFullRequestReader","manager","onHeadersReceived","_onHeadersReceived","onProgressiveData","_onProgressiveData","onDone","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","PDFNetworkStreamRangeRequestReader","_requestId","requestRange","onClosed","listeners","xhrId","pendingRequest","setRequestHeader","expectedStatus","useMozChunkedLoading","mozChunked","onStateChange","onprogress","xhrStatus","ok_response_on_range_request","rangeHeader","hasPendingRequests","getRequestXhr","isStreamingRequest","isPendingRequest","isLoadedRequest","abortAllRequests","_onRangeRequestReaderClosed","fullRequestXhrId","fullRequestXhr","networkManager","lengthComputable","_close","base64","ieee754","typedArraySupport","foo","kMaxLength","TYPED_ARRAY_SUPPORT","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromString","fromObject","assertSize","alloc","checked","isEncoding","actual","fromArrayLike","isBuffer","copy","isnan","SlowBuffer","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","list","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","stringifyPrimitive","objectKeys","ks","pdfjs","PdfjsWorker"],"mappings":"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","file":"js/pdfjs-dist.3c27c314.js","sourcesContent":["// 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","/*! https://mths.be/punycode v1.4.1 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 new 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 * https://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.4.1',\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) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// 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 {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\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","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"2e5e4957c24fe72946c2.worker.js\");\n};","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\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 (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @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/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = 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\nvar pdfjsVersion = '2.0.943';\nvar pdfjsBuild = 'dc98bf76';\nvar pdfjsSharedUtil = __w_pdfjs_require__(1);\nvar pdfjsDisplayAPI = __w_pdfjs_require__(129);\nvar pdfjsDisplayTextLayer = __w_pdfjs_require__(145);\nvar pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(146);\nvar pdfjsDisplayDOMUtils = __w_pdfjs_require__(130);\nvar pdfjsDisplaySVG = __w_pdfjs_require__(147);\nvar pdfjsDisplayWorkerOptions = __w_pdfjs_require__(135);\nvar pdfjsDisplayAPICompatibility = __w_pdfjs_require__(132);\n{\n var isNodeJS = __w_pdfjs_require__(4);\n if (isNodeJS()) {\n var PDFNodeStream = __w_pdfjs_require__(148).PDFNodeStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFNodeStream(params);\n });\n } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') {\n var PDFFetchStream = __w_pdfjs_require__(151).PDFFetchStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFFetchStream(params);\n });\n } else {\n var PDFNetworkStream = __w_pdfjs_require__(152).PDFNetworkStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFNetworkStream(params);\n });\n }\n}\nexports.build = pdfjsDisplayAPI.build;\nexports.version = pdfjsDisplayAPI.version;\nexports.getDocument = pdfjsDisplayAPI.getDocument;\nexports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\nexports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\nexports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\nexports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\nexports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\nexports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\nexports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\nexports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\nexports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\nexports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\nexports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\nexports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\nexports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\nexports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;\nexports.OPS = pdfjsSharedUtil.OPS;\nexports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\nexports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\nexports.createObjectURL = pdfjsSharedUtil.createObjectURL;\nexports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\nexports.shadow = pdfjsSharedUtil.shadow;\nexports.Util = pdfjsSharedUtil.Util;\nexports.ReadableStream = pdfjsSharedUtil.ReadableStream;\nexports.URL = pdfjsSharedUtil.URL;\nexports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException;\nexports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl;\nexports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget;\nexports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes;\nexports.loadScript = pdfjsDisplayDOMUtils.loadScript;\nexports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\nexports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;\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.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.URL = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isSpace = exports.isString = exports.isNum = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.getInheritableProperty = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.toRomanNumerals = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n__w_pdfjs_require__(2);\n\nvar _streams_polyfill = __w_pdfjs_require__(125);\n\nvar _url_polyfill = __w_pdfjs_require__(127);\n\nvar IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nvar FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nvar NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display'\n};\nvar PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nvar TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nvar ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nvar AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nvar AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nvar AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nvar AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nvar StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9\n};\nvar FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10\n};\nvar VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nvar CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nvar OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nvar UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font'\n};\nvar PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nvar verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log('Warning: ' + msg);\n }\n}\nfunction deprecated(details) {\n console.log('Deprecated API usage: ' + details);\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new _url_polyfill.URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false;\n }\n } catch (e) {\n return false;\n }\n var other = new _url_polyfill.URL(otherUrl, base);\n return base.origin === other.origin;\n}\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n return null;\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}\nfunction getLookupTableFactory(initializer) {\n var lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\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 PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n return 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 UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n return UnknownErrorException;\n}();\nvar InvalidPDFException = function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n return InvalidPDFException;\n}();\nvar MissingPDFException = function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n return 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 UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n return UnexpectedResponseException;\n}();\nvar MissingDataException = function MissingDataExceptionClosure() {\n function MissingDataException(begin, end) {\n this.begin = begin;\n this.end = end;\n this.message = 'Missing data [' + begin + ', ' + end + ')';\n }\n MissingDataException.prototype = new Error();\n MissingDataException.prototype.name = 'MissingDataException';\n MissingDataException.constructor = MissingDataException;\n return MissingDataException;\n}();\nvar XRefParseException = function XRefParseExceptionClosure() {\n function XRefParseException(msg) {\n this.message = msg;\n }\n XRefParseException.prototype = new Error();\n XRefParseException.prototype.name = 'XRefParseException';\n XRefParseException.constructor = XRefParseException;\n return XRefParseException;\n}();\nvar FormatError = function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n return FormatError;\n}();\nvar AbortException = function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n return AbortException;\n}();\nvar NullCharactersRegExp = /\\x00/g;\nfunction removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n}\nfunction bytesToString(bytes) {\n assert(bytes !== null && (typeof bytes === 'undefined' ? 'undefined' : _typeof(bytes)) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n var strBuf = [];\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 return strBuf.join('');\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 for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n return bytes;\n}\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\nfunction arraysToBytes(arr) {\n if (arr.length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n var resultLength = 0;\n var i,\n ii = arr.length;\n var item, itemLength;\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n var pos = 0;\n var data = new Uint8Array(resultLength);\n for (i = 0; i < ii; i++) {\n item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\nfunction readInt8(data, start) {\n return data[start] << 24 >> 24;\n}\nfunction readUint16(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n}\nfunction readUint32(data, offset) {\n return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\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}\nfunction isEvalSupported() {\n try {\n new Function('');\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction getInheritableProperty(_ref) {\n var dict = _ref.dict,\n key = _ref.key,\n _ref$getArray = _ref.getArray,\n getArray = _ref$getArray === undefined ? false : _ref$getArray,\n _ref$stopWhenFound = _ref.stopWhenFound,\n stopWhenFound = _ref$stopWhenFound === undefined ? true : _ref$stopWhenFound;\n\n var LOOP_LIMIT = 100;\n var loopCount = 0;\n var values = void 0;\n while (dict) {\n var value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n if (!values) {\n values = [];\n }\n values.push(value);\n }\n if (++loopCount > LOOP_LIMIT) {\n warn('getInheritableProperty: maximum loop count exceeded for \"' + key + '\"');\n break;\n }\n dict = dict.get('Parent');\n }\n return values;\n}\nvar Util = function UtilClosure() {\n function Util() {}\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\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 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 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 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 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 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 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 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 Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\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 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 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 return result;\n };\n return Util;\n}();\nvar ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];\nfunction toRomanNumerals(number) {\n var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');\n var pos = void 0,\n romanBuf = [];\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push('M');\n }\n pos = number / 100 | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n pos = number / 10 | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n var romanStr = romanBuf.join('');\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\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];\nfunction stringToPDFString(str) {\n var i,\n n = str.length,\n strBuf = [];\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 return strBuf.join('');\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n return true;\n}\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\nfunction isNum(v) {\n return typeof v === 'number';\n}\nfunction isString(v) {\n return typeof v === 'string';\n}\nfunction isArrayBuffer(v) {\n return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.byteLength !== undefined;\n}\nfunction isSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n}\nfunction createPromiseCapability() {\n var capability = {};\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = resolve;\n capability.reject = reject;\n });\n return capability;\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], { type: contentType });\n return _url_polyfill.URL.createObjectURL(blob);\n }\n var buffer = 'data:' + contentType + ';base64,';\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 return buffer;\n };\n}();\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nexports.OPS = OPS;\nexports.VerbosityLevel = VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nexports.AnnotationFlag = AnnotationFlag;\nexports.AnnotationType = AnnotationType;\nexports.FontType = FontType;\nexports.ImageKind = ImageKind;\nexports.CMapCompressionType = CMapCompressionType;\nexports.AbortException = AbortException;\nexports.InvalidPDFException = InvalidPDFException;\nexports.MissingDataException = MissingDataException;\nexports.MissingPDFException = MissingPDFException;\nexports.NativeImageDecoding = NativeImageDecoding;\nexports.PasswordException = PasswordException;\nexports.PasswordResponses = PasswordResponses;\nexports.PermissionFlag = PermissionFlag;\nexports.StreamType = StreamType;\nexports.TextRenderingMode = TextRenderingMode;\nexports.UnexpectedResponseException = UnexpectedResponseException;\nexports.UnknownErrorException = UnknownErrorException;\nexports.Util = Util;\nexports.toRomanNumerals = toRomanNumerals;\nexports.XRefParseException = XRefParseException;\nexports.FormatError = FormatError;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createObjectURL = createObjectURL;\nexports.deprecated = deprecated;\nexports.getInheritableProperty = getInheritableProperty;\nexports.getLookupTableFactory = getLookupTableFactory;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isBool = isBool;\nexports.isEmptyObj = isEmptyObj;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSpace = isSpace;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.isLittleEndian = isLittleEndian;\nexports.isEvalSupported = isEvalSupported;\nexports.log2 = log2;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.removeNullCharacters = removeNullCharacters;\nexports.ReadableStream = _streams_polyfill.ReadableStream;\nexports.URL = _url_polyfill.URL;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar globalScope = __w_pdfjs_require__(3);\nif (!globalScope._pdfjsCompatibilityChecked) {\n globalScope._pdfjsCompatibilityChecked = true;\n var isNodeJS = __w_pdfjs_require__(4);\n var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object';\n (function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n globalScope.btoa = function (chars) {\n return Buffer.from(chars, 'binary').toString('base64');\n };\n })();\n (function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n globalScope.atob = function (input) {\n return Buffer.from(input, 'base64').toString('binary');\n };\n })();\n (function checkCurrentScript() {\n if (!hasDOM) {\n return;\n }\n if ('currentScript' in document) {\n return;\n }\n Object.defineProperty(document, 'currentScript', {\n get: function get() {\n var scripts = document.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n },\n\n enumerable: true,\n configurable: true\n });\n })();\n (function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n })();\n (function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n var div = document.createElement('div');\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n var originalDOMTokenListToggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token) {\n if (arguments.length > 1) {\n var force = !!arguments[1];\n return this[force ? 'add' : 'remove'](token), force;\n }\n return originalDOMTokenListToggle(token);\n };\n })();\n (function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n __w_pdfjs_require__(5);\n })();\n (function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n __w_pdfjs_require__(33);\n })();\n (function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n __w_pdfjs_require__(42);\n })();\n (function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = __w_pdfjs_require__(52);\n })();\n (function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = __w_pdfjs_require__(54);\n })();\n (function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = __w_pdfjs_require__(56);\n })();\n (function checkPromise() {\n if (globalScope.Promise) {\n return;\n }\n globalScope.Promise = __w_pdfjs_require__(59);\n })();\n (function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n globalScope.WeakMap = __w_pdfjs_require__(94);\n })();\n (function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n String.codePointAt = __w_pdfjs_require__(111);\n })();\n (function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = __w_pdfjs_require__(113);\n })();\n (function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n __w_pdfjs_require__(115);\n })();\n (function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = __w_pdfjs_require__(122);\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\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function isNodeJS() {\n return (typeof process === 'undefined' ? 'undefined' : _typeof(process)) === 'object' && process + '' === '[object process]';\n};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(6);\nmodule.exports = __w_pdfjs_require__(9).String.includes;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar context = __w_pdfjs_require__(25);\nvar INCLUDES = 'includes';\n$export($export.P + $export.F * __w_pdfjs_require__(32)(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/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar core = __w_pdfjs_require__(9);\nvar hide = __w_pdfjs_require__(10);\nvar redefine = __w_pdfjs_require__(20);\nvar ctx = __w_pdfjs_require__(23);\nvar PROTOTYPE = 'prototype';\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 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};\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 = { version: '2.5.7' };\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);\nvar createDesc = __w_pdfjs_require__(19);\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);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(14);\nvar toPrimitive = __w_pdfjs_require__(18);\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);\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\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function (it) {\n return (typeof it === 'undefined' ? 'undefined' : _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);\nvar document = __w_pdfjs_require__(8).document;\nvar is = isObject(document) && isObject(document.createElement);\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);\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);\nvar hide = __w_pdfjs_require__(10);\nvar has = __w_pdfjs_require__(21);\nvar SRC = __w_pdfjs_require__(22)('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n__w_pdfjs_require__(9).inspectSource = function (it) {\n return $toString.call(it);\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 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;\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();\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\nvar aFunction = __w_pdfjs_require__(24);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function () {\n return fn.apply(that, arguments);\n };\n};\n\n/***/ }),\n/* 24 */\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/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isRegExp = __w_pdfjs_require__(26);\nvar defined = __w_pdfjs_require__(31);\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/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar cof = __w_pdfjs_require__(27);\nvar MATCH = __w_pdfjs_require__(28)('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toString = {}.toString;\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar store = __w_pdfjs_require__(29)('wks');\nvar uid = __w_pdfjs_require__(22);\nvar _Symbol = __w_pdfjs_require__(8).Symbol;\nvar USE_SYMBOL = typeof _Symbol == 'function';\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n};\n$exports.store = store;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = __w_pdfjs_require__(9);\nvar global = __w_pdfjs_require__(8);\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__(30) ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = false;\n\n/***/ }),\n/* 31 */\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/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar MATCH = __w_pdfjs_require__(28)('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) {}\n }\n return true;\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(34);\nmodule.exports = __w_pdfjs_require__(9).Array.includes;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar $includes = __w_pdfjs_require__(35)(true);\n$export($export.P, 'Array', {\n includes: function includes(el) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n__w_pdfjs_require__(41)('includes');\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toIObject = __w_pdfjs_require__(36);\nvar toLength = __w_pdfjs_require__(38);\nvar toAbsoluteIndex = __w_pdfjs_require__(40);\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 }return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar IObject = __w_pdfjs_require__(37);\nvar defined = __w_pdfjs_require__(31);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(27);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(39);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(39);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar UNSCOPABLES = __w_pdfjs_require__(28)('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(43);\nmodule.exports = __w_pdfjs_require__(9).Object.assign;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n$export($export.S + $export.F, 'Object', { assign: __w_pdfjs_require__(44) });\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(45);\nvar gOPS = __w_pdfjs_require__(49);\nvar pIE = __w_pdfjs_require__(50);\nvar toObject = __w_pdfjs_require__(51);\nvar IObject = __w_pdfjs_require__(37);\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 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 while (length > j) {\n if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n }\n }\n return T;\n} : $assign;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(46);\nvar enumBugKeys = __w_pdfjs_require__(48);\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(21);\nvar toIObject = __w_pdfjs_require__(36);\nvar arrayIndexOf = __w_pdfjs_require__(35)(false);\nvar IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO');\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) {\n if (key != IE_PROTO) has(O, key) && result.push(key);\n }while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n }return result;\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar shared = __w_pdfjs_require__(29)('keys');\nvar uid = __w_pdfjs_require__(22);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n/***/ }),\n/* 48 */\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/* 49 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = {}.propertyIsEnumerable;\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar defined = __w_pdfjs_require__(31);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(53);\nmodule.exports = __w_pdfjs_require__(9).Math.log2;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(55);\nmodule.exports = __w_pdfjs_require__(9).Number.isNaN;\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n return number != number;\n }\n});\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(57);\nmodule.exports = __w_pdfjs_require__(9).Number.isInteger;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n$export($export.S, 'Number', { isInteger: __w_pdfjs_require__(58) });\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(60);\n__w_pdfjs_require__(62);\n__w_pdfjs_require__(72);\n__w_pdfjs_require__(75);\n__w_pdfjs_require__(92);\n__w_pdfjs_require__(93);\nmodule.exports = __w_pdfjs_require__(9).Promise;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(61);\nvar test = {};\ntest[__w_pdfjs_require__(28)('toStringTag')] = 'z';\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/* 61 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(27);\nvar TAG = __w_pdfjs_require__(28)('toStringTag');\nvar ARG = cof(function () {\n return arguments;\n}()) == 'Arguments';\nvar tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (e) {}\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/* 62 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $at = __w_pdfjs_require__(63)(true);\n__w_pdfjs_require__(64)(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/* 63 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(39);\nvar defined = __w_pdfjs_require__(31);\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/* 64 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(30);\nvar $export = __w_pdfjs_require__(7);\nvar redefine = __w_pdfjs_require__(20);\nvar hide = __w_pdfjs_require__(10);\nvar Iterators = __w_pdfjs_require__(65);\nvar $iterCreate = __w_pdfjs_require__(66);\nvar setToStringTag = __w_pdfjs_require__(70);\nvar getPrototypeOf = __w_pdfjs_require__(71);\nvar ITERATOR = __w_pdfjs_require__(28)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys());\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar returnThis = function returnThis() {\n return this;\n};\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function getMethod(kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS:\n return function keys() {\n return new Constructor(this, kind);\n };\n case VALUES:\n return function values() {\n return new Constructor(this, kind);\n };\n }\n return function entries() {\n return new Constructor(this, kind);\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 if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\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 if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() {\n return $native.call(this);\n };\n }\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\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 return methods;\n};\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar create = __w_pdfjs_require__(67);\nvar descriptor = __w_pdfjs_require__(19);\nvar setToStringTag = __w_pdfjs_require__(70);\nvar IteratorPrototype = {};\n__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(28)('iterator'), function () {\n return this;\n});\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\nvar dPs = __w_pdfjs_require__(68);\nvar enumBugKeys = __w_pdfjs_require__(48);\nvar IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO');\nvar Empty = function Empty() {};\nvar PROTOTYPE = 'prototype';\nvar _createDict = function createDict() {\n var iframe = __w_pdfjs_require__(17)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __w_pdfjs_require__(69).appendChild(iframe);\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 while (i--) {\n delete _createDict[PROTOTYPE][enumBugKeys[i]];\n }return _createDict();\n};\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else result = _createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(11);\nvar anObject = __w_pdfjs_require__(12);\nvar getKeys = __w_pdfjs_require__(45);\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 while (length > i) {\n dP.f(O, P = keys[i++], Properties[P]);\n }return O;\n};\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar document = __w_pdfjs_require__(8).document;\nmodule.exports = document && document.documentElement;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar def = __w_pdfjs_require__(11).f;\nvar has = __w_pdfjs_require__(21);\nvar TAG = __w_pdfjs_require__(28)('toStringTag');\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/* 71 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(21);\nvar toObject = __w_pdfjs_require__(51);\nvar IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO');\nvar ObjectProto = Object.prototype;\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $iterators = __w_pdfjs_require__(73);\nvar getKeys = __w_pdfjs_require__(45);\nvar redefine = __w_pdfjs_require__(20);\nvar global = __w_pdfjs_require__(8);\nvar hide = __w_pdfjs_require__(10);\nvar Iterators = __w_pdfjs_require__(65);\nvar wks = __w_pdfjs_require__(28);\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};\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 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/* 73 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar addToUnscopables = __w_pdfjs_require__(41);\nvar step = __w_pdfjs_require__(74);\nvar Iterators = __w_pdfjs_require__(65);\nvar toIObject = __w_pdfjs_require__(36);\nmodule.exports = __w_pdfjs_require__(64)(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 if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\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/* 74 */\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/* 75 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(30);\nvar global = __w_pdfjs_require__(8);\nvar ctx = __w_pdfjs_require__(23);\nvar classof = __w_pdfjs_require__(61);\nvar $export = __w_pdfjs_require__(7);\nvar isObject = __w_pdfjs_require__(13);\nvar aFunction = __w_pdfjs_require__(24);\nvar anInstance = __w_pdfjs_require__(76);\nvar forOf = __w_pdfjs_require__(77);\nvar speciesConstructor = __w_pdfjs_require__(81);\nvar task = __w_pdfjs_require__(82).set;\nvar microtask = __w_pdfjs_require__(84)();\nvar newPromiseCapabilityModule = __w_pdfjs_require__(85);\nvar perform = __w_pdfjs_require__(86);\nvar userAgent = __w_pdfjs_require__(87);\nvar promiseResolve = __w_pdfjs_require__(88);\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';\nvar empty = function empty() {};\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\nvar USE_NATIVE = !!function () {\n try {\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(28)('species')] = function (exec) {\n exec(empty, empty);\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}();\nvar isThenable = function isThenable(it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\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 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 try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;else {\n if (domain) domain.enter();\n result = handler(value);\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) {\n run(chain[i++]);\n }promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\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 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 promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function isUnhandled(promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function onHandleUnhandled(promise) {\n task.call(global, function () {\n var handler;\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};\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};\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 try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = {\n _w: promise,\n _d: false\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};\nif (!USE_NATIVE) {\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\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 Internal.prototype = __w_pdfjs_require__(89)($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 this._c.push(reaction);\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 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 newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {\n return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n };\n}\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\n__w_pdfjs_require__(70)($Promise, PROMISE);\n__w_pdfjs_require__(90)(PROMISE);\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__(91)(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/* 76 */\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 return it;\n};\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(23);\nvar call = __w_pdfjs_require__(78);\nvar isArrayIter = __w_pdfjs_require__(79);\nvar anObject = __w_pdfjs_require__(12);\nvar toLength = __w_pdfjs_require__(38);\nvar getIterFn = __w_pdfjs_require__(80);\nvar BREAK = {};\nvar RETURN = {};\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_exports.BREAK = BREAK;\n_exports.RETURN = RETURN;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\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/* 79 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar Iterators = __w_pdfjs_require__(65);\nvar ITERATOR = __w_pdfjs_require__(28)('iterator');\nvar ArrayProto = Array.prototype;\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(61);\nvar ITERATOR = __w_pdfjs_require__(28)('iterator');\nvar Iterators = __w_pdfjs_require__(65);\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/* 81 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\nvar aFunction = __w_pdfjs_require__(24);\nvar SPECIES = __w_pdfjs_require__(28)('species');\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/* 82 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(23);\nvar invoke = __w_pdfjs_require__(83);\nvar html = __w_pdfjs_require__(69);\nvar cel = __w_pdfjs_require__(17);\nvar global = __w_pdfjs_require__(8);\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;\nvar run = function run() {\n var id = +this;\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function listener(event) {\n run.call(event.data);\n};\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }queue[++counter] = function () {\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n if (__w_pdfjs_require__(27)(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 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}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n/***/ }),\n/* 83 */\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 switch (args.length) {\n case 0:\n return un ? fn() : fn.call(that);\n case 1:\n return un ? fn(args[0]) : fn.call(that, args[0]);\n case 2:\n return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);\n case 3:\n return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);\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 return fn.apply(that, args);\n};\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar macrotask = __w_pdfjs_require__(82).set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __w_pdfjs_require__(27)(process) == 'process';\nmodule.exports = function () {\n var head, last, notify;\n var flush = function flush() {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();else last = undefined;\n throw e;\n }\n }\n last = undefined;\n if (parent) parent.enter();\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, { characterData: true });\n notify = function notify() {\n node.data = toggle = !toggle;\n };\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve(undefined);\n notify = function notify() {\n promise.then(flush);\n };\n } else {\n notify = function notify() {\n macrotask.call(global, flush);\n };\n }\n return function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n }\n last = task;\n };\n};\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(24);\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}\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n/***/ }),\n/* 86 */\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/* 87 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar navigator = global.navigator;\nmodule.exports = navigator && navigator.userAgent || '';\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\nvar isObject = __w_pdfjs_require__(13);\nvar newPromiseCapability = __w_pdfjs_require__(85);\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/* 89 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefine = __w_pdfjs_require__(20);\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n redefine(target, key, src[key], safe);\n }return target;\n};\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar dP = __w_pdfjs_require__(11);\nvar DESCRIPTORS = __w_pdfjs_require__(15);\nvar SPECIES = __w_pdfjs_require__(28)('species');\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/* 91 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ITERATOR = __w_pdfjs_require__(28)('iterator');\nvar SAFE_CLOSING = false;\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () {\n SAFE_CLOSING = true;\n };\n Array.from(riter, function () {\n throw 2;\n });\n} catch (e) {}\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () {\n return { done: safe = true };\n };\n arr[ITERATOR] = function () {\n return iter;\n };\n exec(arr);\n } catch (e) {}\n return safe;\n};\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar core = __w_pdfjs_require__(9);\nvar global = __w_pdfjs_require__(8);\nvar speciesConstructor = __w_pdfjs_require__(81);\nvar promiseResolve = __w_pdfjs_require__(88);\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/* 93 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar newPromiseCapability = __w_pdfjs_require__(85);\nvar perform = __w_pdfjs_require__(86);\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/* 94 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(60);\n__w_pdfjs_require__(72);\n__w_pdfjs_require__(95);\n__w_pdfjs_require__(107);\n__w_pdfjs_require__(109);\nmodule.exports = __w_pdfjs_require__(9).WeakMap;\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar each = __w_pdfjs_require__(96)(0);\nvar redefine = __w_pdfjs_require__(20);\nvar meta = __w_pdfjs_require__(100);\nvar assign = __w_pdfjs_require__(44);\nvar weak = __w_pdfjs_require__(101);\nvar isObject = __w_pdfjs_require__(13);\nvar fails = __w_pdfjs_require__(16);\nvar validate = __w_pdfjs_require__(102);\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\nvar wrapper = function wrapper(get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\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};\nvar $WeakMap = module.exports = __w_pdfjs_require__(103)(WEAK_MAP, wrapper, methods, weak, true, true);\nif (fails(function () {\n return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7;\n})) {\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 var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n }\n return method.call(this, a, b);\n });\n });\n}\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(23);\nvar IObject = __w_pdfjs_require__(37);\nvar toObject = __w_pdfjs_require__(51);\nvar toLength = __w_pdfjs_require__(38);\nvar asc = __w_pdfjs_require__(97);\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 for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {\n case 3:\n return true;\n case 5:\n return val;\n case 6:\n return index;\n case 2:\n result.push(val);\n } else if (IS_EVERY) return false;\n }\n }\n }return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar speciesConstructor = __w_pdfjs_require__(98);\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar isArray = __w_pdfjs_require__(99);\nvar SPECIES = __w_pdfjs_require__(28)('species');\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n return C === undefined ? Array : C;\n};\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(27);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar META = __w_pdfjs_require__(22)('meta');\nvar isObject = __w_pdfjs_require__(13);\nvar has = __w_pdfjs_require__(21);\nvar setDesc = __w_pdfjs_require__(11).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__w_pdfjs_require__(16)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function setMeta(it) {\n setDesc(it, META, {\n value: {\n i: 'O' + ++id,\n w: {}\n }\n });\n};\nvar fastKey = function fastKey(it, create) {\n if (!isObject(it)) return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n if (!isExtensible(it)) return 'F';\n if (!create) return 'E';\n setMeta(it);\n }\n return it[META].i;\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 return it[META].w;\n};\nvar onFreeze = function onFreeze(it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefineAll = __w_pdfjs_require__(89);\nvar getWeak = __w_pdfjs_require__(100).getWeak;\nvar anObject = __w_pdfjs_require__(12);\nvar isObject = __w_pdfjs_require__(13);\nvar anInstance = __w_pdfjs_require__(76);\nvar forOf = __w_pdfjs_require__(77);\nvar createArrayMethod = __w_pdfjs_require__(96);\nvar $has = __w_pdfjs_require__(21);\nvar validate = __w_pdfjs_require__(102);\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\nvar uncaughtFrozenStore = function uncaughtFrozenStore(that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function UncaughtFrozenStore() {\n this.a = [];\n};\nvar findUncaughtFrozen = function findUncaughtFrozen(store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\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/* 102 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\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/* 103 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar $export = __w_pdfjs_require__(7);\nvar redefine = __w_pdfjs_require__(20);\nvar redefineAll = __w_pdfjs_require__(89);\nvar meta = __w_pdfjs_require__(100);\nvar forOf = __w_pdfjs_require__(77);\nvar anInstance = __w_pdfjs_require__(76);\nvar isObject = __w_pdfjs_require__(13);\nvar fails = __w_pdfjs_require__(16);\nvar $iterDetect = __w_pdfjs_require__(91);\nvar setToStringTag = __w_pdfjs_require__(70);\nvar inheritIfRequired = __w_pdfjs_require__(104);\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 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 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 while (index--) {\n $instance[ADDER](index, index);\n }return !$instance.has(-0);\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 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n if (IS_WEAK && proto.clear) delete proto.clear;\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/* 104 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar setPrototypeOf = __w_pdfjs_require__(105).set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n }\n return that;\n};\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar anObject = __w_pdfjs_require__(12);\nvar check = function check(O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {\n try {\n set = __w_pdfjs_require__(23)(Function.call, __w_pdfjs_require__(106).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) {\n buggy = true;\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/* 106 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pIE = __w_pdfjs_require__(50);\nvar createDesc = __w_pdfjs_require__(19);\nvar toIObject = __w_pdfjs_require__(36);\nvar toPrimitive = __w_pdfjs_require__(18);\nvar has = __w_pdfjs_require__(21);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(14);\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/* 107 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(108)('WeakMap');\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\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 while (length--) {\n A[length] = arguments[length];\n }return new this(A);\n }\n });\n};\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(110)('WeakMap');\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar aFunction = __w_pdfjs_require__(24);\nvar ctx = __w_pdfjs_require__(23);\nvar forOf = __w_pdfjs_require__(77);\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 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 return new this(A);\n }\n });\n};\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(112);\nmodule.exports = __w_pdfjs_require__(9).String.codePointAt;\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar $at = __w_pdfjs_require__(63)(false);\n$export($export.P, 'String', {\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(114);\nmodule.exports = __w_pdfjs_require__(9).String.fromCodePoint;\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar toAbsoluteIndex = __w_pdfjs_require__(40);\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 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 return res.join('');\n }\n});\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(116);\n__w_pdfjs_require__(60);\nmodule.exports = __w_pdfjs_require__(9).Symbol;\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar global = __w_pdfjs_require__(8);\nvar has = __w_pdfjs_require__(21);\nvar DESCRIPTORS = __w_pdfjs_require__(15);\nvar $export = __w_pdfjs_require__(7);\nvar redefine = __w_pdfjs_require__(20);\nvar META = __w_pdfjs_require__(100).KEY;\nvar $fails = __w_pdfjs_require__(16);\nvar shared = __w_pdfjs_require__(29);\nvar setToStringTag = __w_pdfjs_require__(70);\nvar uid = __w_pdfjs_require__(22);\nvar wks = __w_pdfjs_require__(28);\nvar wksExt = __w_pdfjs_require__(117);\nvar wksDefine = __w_pdfjs_require__(118);\nvar enumKeys = __w_pdfjs_require__(119);\nvar isArray = __w_pdfjs_require__(99);\nvar anObject = __w_pdfjs_require__(12);\nvar isObject = __w_pdfjs_require__(13);\nvar toIObject = __w_pdfjs_require__(36);\nvar toPrimitive = __w_pdfjs_require__(18);\nvar createDesc = __w_pdfjs_require__(19);\nvar _create = __w_pdfjs_require__(67);\nvar gOPNExt = __w_pdfjs_require__(120);\nvar $GOPD = __w_pdfjs_require__(106);\nvar $DP = __w_pdfjs_require__(11);\nvar $keys = __w_pdfjs_require__(45);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\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';\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', { value: 7 }).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;\nvar wrap = function wrap(tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\nvar isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {\n return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\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 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, { enumerable: createDesc(0, false) });\n }\n return setSymbolDesc(it, key, D);\n }\n return dP(it, key, D);\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 while (l > i) {\n $defineProperty(it, key = keys[i++], P[key]);\n }return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\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};\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};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n }\n return result;\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 while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n }\n return result;\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 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 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: $set\n });\n return wrap(tag);\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__(121).f = gOPNExt.f = $getOwnPropertyNames;\n __w_pdfjs_require__(50).f = $propertyIsEnumerable;\n __w_pdfjs_require__(49).f = $getOwnPropertySymbols;\n if (DESCRIPTORS && !__w_pdfjs_require__(30)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\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}for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {\n wksDefine(wellKnownSymbols[k++]);\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 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});\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) {\n args.push(arguments[i++]);\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/* 117 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = __w_pdfjs_require__(28);\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar core = __w_pdfjs_require__(9);\nvar LIBRARY = __w_pdfjs_require__(30);\nvar wksExt = __w_pdfjs_require__(117);\nvar defineProperty = __w_pdfjs_require__(11).f;\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, { value: wksExt.f(name) });\n};\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(45);\nvar gOPS = __w_pdfjs_require__(49);\nvar pIE = __w_pdfjs_require__(50);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) {\n if (isEnum.call(it, key = symbols[i++])) result.push(key);\n }\n }\n return result;\n};\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar toIObject = __w_pdfjs_require__(36);\nvar gOPN = __w_pdfjs_require__(121).f;\nvar toString = {}.toString;\nvar windowNames = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\nvar getWindowNames = function getWindowNames(it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\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/* 121 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(46);\nvar hiddenKeys = __w_pdfjs_require__(48).concat('length', 'prototype');\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(123);\nmodule.exports = __w_pdfjs_require__(9).Object.values;\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar $values = __w_pdfjs_require__(124)(false);\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(45);\nvar toIObject = __w_pdfjs_require__(36);\nvar isEnum = __w_pdfjs_require__(50).f;\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 while (length > i) {\n if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }return result;\n };\n};\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isReadableStreamSupported = false;\nif (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}\nif (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n} else {\n exports.ReadableStream = __w_pdfjs_require__(126).ReadableStream;\n}\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof 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 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 __w_pdfjs_require__.m = modules;\n __w_pdfjs_require__.c = installedModules;\n __w_pdfjs_require__.i = function (value) {\n return value;\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 __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 __w_pdfjs_require__.d(getter, 'a', getter);\n return getter;\n };\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\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 typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n };\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n function IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n }\n exports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\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 exports.createArrayFromList = function (elements) {\n return elements.slice();\n };\n exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\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 exports.IsFiniteNonNegativeNumber = function (v) {\n if (Number.isNaN(v)) {\n return false;\n }\n if (v === Infinity) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n };\n function Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\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 if (method === undefined) {\n return undefined;\n }\n return Call(method, O, args);\n };\n exports.PromiseInvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n try {\n return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n } catch (returnValueE) {\n return Promise.reject(returnValueE);\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 try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n exports.TransferArrayBuffer = function (O) {\n return O.slice();\n };\n exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n highWaterMark = Number(highWaterMark);\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 return highWaterMark;\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 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 function AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n }\n AssertionError.prototype = Object.create(Error.prototype);\n AssertionError.prototype.constructor = AssertionError;\n function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\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 return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\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 var _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n var _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n var WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\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 _classCallCheck(this, WritableStream);\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 if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n this._writableStreamController.__startSteps();\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 if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\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 return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n return IsWritableStreamLocked(this);\n }\n }]);\n return WritableStream;\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 function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return true;\n }\n function IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var state = stream._state;\n if (state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n var error = new TypeError('Requested to abort');\n if (stream._pendingAbortRequest !== undefined) {\n return Promise.reject(error);\n }\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n reason = undefined;\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 if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n return promise;\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 stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\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 if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\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 stream._writableStreamController.__errorSteps();\n var storedError = stream._storedError;\n for (var i = 0; i < stream._writeRequests.length; i++) {\n var writeRequest = stream._writeRequests[i];\n writeRequest._reject(storedError);\n }\n stream._writeRequests = [];\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n promise.then(function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n if (state === 'erroring') {\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\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 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 function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n writer._closedPromise.catch(function () {});\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var writer = stream._writer;\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 stream._backpressure = backpressure;\n }\n var WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n }\n if (IsWritableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n this._readyPromise.catch(function () {});\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 this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n this._closedPromise.catch(function () {});\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 if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\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 var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\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 var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\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 if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\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 return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\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 return this._readyPromise;\n }\n }]);\n return WritableStreamDefaultWriter;\n }();\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return true;\n }\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\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 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 if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n assert(state === 'writable' || state === 'erroring');\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n writer._closedPromise.catch(function () {});\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n writer._readyPromise.catch(function () {});\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\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 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 if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n var state = stream._state;\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\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 if (state === 'erroring') {\n return Promise.reject(stream._storedError);\n }\n assert(state === 'writable');\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n var WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\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 _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 var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n return;\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 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 return WritableStreamDefaultController;\n }();\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n if (strategySize === undefined) {\n return 1;\n }\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = { chunk: chunk };\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n var stream = controller._controlledWritableStream;\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n return true;\n }\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n if (controller._started === false) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return;\n }\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n var writeRecord = PeekQueueValue(controller);\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\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 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 if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n assert(stream._state === 'writable');\n WritableStreamStartErroring(stream, error);\n }\n function streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n }\n function defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\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 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 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 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 writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\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 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 writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\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 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 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 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 writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\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 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 function defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n writer._readyPromise_resolve(undefined);\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 var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\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 var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\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 if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({\n value: value,\n size: size\n });\n container._queueTotalSize += size;\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 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 return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\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 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 var _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n var _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n var _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\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 var ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n _classCallCheck(this, ReadableStream);\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 if (typeString === 'bytes') {\n if (highWaterMark === undefined) {\n highWaterMark = 0;\n }\n this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n } else if (type === undefined) {\n if (highWaterMark === undefined) {\n highWaterMark = 1;\n }\n this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n } else {\n throw new RangeError('Invalid type is specified');\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 if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\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 if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n mode = String(mode);\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\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 var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('pipeTo'));\n }\n if (IsWritableStream(dest) === false) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n }\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(dest) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\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 if (shuttingDown === true) {\n return Promise.resolve();\n }\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n if (done === true) {\n return;\n }\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n });\n }).then(pipeLoop);\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 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 if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n pipeLoop().catch(function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n function waitForWritesToFinish() {\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\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 function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action).catch(rethrowAssertionErrorRejection);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\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 function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\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 function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\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 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 return IsReadableStreamLocked(this);\n }\n }]);\n return ReadableStream;\n }();\n module.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n };\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return true;\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 function IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n if (stream._reader === undefined) {\n return false;\n }\n return true;\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 reader._closedPromise.catch(function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n return [branch1Stream, branch2Stream];\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 if (done === true && teeState.closedOrErrored === false) {\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerClose(branch1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerClose(branch2);\n }\n teeState.closedOrErrored = true;\n }\n if (teeState.closedOrErrored === true) {\n return;\n }\n var value1 = value;\n var value2 = value;\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n return f;\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 if (teeState.canceled2 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\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 if (teeState.canceled1 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\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 stream._reader._readIntoRequests.push(readIntoRequest);\n });\n return promise;\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 stream._reader._readRequests.push(readRequest);\n });\n return promise;\n }\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n ReadableStreamClose(stream);\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n }\n function ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n stream._state = 'closed';\n var reader = stream._reader;\n if (reader === undefined) {\n return undefined;\n }\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n _resolve(CreateIterResultObject(undefined, true));\n }\n reader._readRequests = [];\n }\n defaultReaderClosedPromiseResolve(reader);\n return undefined;\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 if (reader === undefined) {\n return undefined;\n }\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var readRequest = reader._readRequests[i];\n readRequest._reject(e);\n }\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n readIntoRequest._reject(e);\n }\n reader._readIntoRequests = [];\n }\n defaultReaderClosedPromiseReject(reader, e);\n reader._closedPromise.catch(function () {});\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readIntoRequests.length > 0);\n var readIntoRequest = reader._readIntoRequests.shift();\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readRequests.length > 0);\n var readRequest = reader._readRequests.shift();\n readRequest._resolve(CreateIterResultObject(chunk, done));\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n return true;\n }\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n return true;\n }\n var ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n }\n if (IsReadableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = [];\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 if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\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 if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\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 if (this._ownerReadableStream === undefined) {\n return;\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 ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }]);\n return ReadableStreamDefaultReader;\n }();\n var ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n if (!IsReadableStream(stream)) {\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\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 if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = [];\n }\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\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 if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\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 if (this._ownerReadableStream === undefined) {\n return;\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 ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }]);\n return ReadableStreamBYOBReader;\n }();\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return true;\n }\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\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 reader._closedPromise.catch(function () {});\n }\n }\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\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 reader._closedPromise.catch(function () {});\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n function ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n }\n function ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n assert(stream._state === 'readable');\n return stream._readableStreamController.__pullSteps();\n }\n var ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\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 _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableStream._state;\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 ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableStream._state;\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 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 var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\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 if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n return Promise.resolve(CreateIterResultObject(chunk, false));\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 return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n return ReadableStreamDefaultController;\n }();\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\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 if (controller._pullAgain === true) {\n controller._pullAgain = false;\n return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n return undefined;\n }, function (e) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n if (controller._closeRequested === true) {\n return false;\n }\n if (controller._started === false) {\n return false;\n }\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\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 if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n if (controller._strategySize !== undefined) {\n var strategySize = controller._strategySize;\n try {\n chunkSize = strategySize(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n throw chunkSizeE;\n }\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n return undefined;\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 function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n var ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\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 if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n return ReadableStreamBYOBRequest;\n }();\n var ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\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 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 if (autoAllocateChunkSize !== undefined) {\n if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\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 _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableStream._state;\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 ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableStream._state;\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 if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\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 var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\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 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 if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = void 0;\n try {\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n } catch (viewE) {\n return Promise.reject(viewE);\n }\n return Promise.resolve(CreateIterResultObject(view, false));\n }\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n return Promise.reject(bufferE);\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 this._pendingPullIntos.push(pullIntoDescriptor);\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 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 return this._byobRequest;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n return ReadableByteStreamController;\n }();\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return true;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\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 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 function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n var done = false;\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\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 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 function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength\n });\n controller._queueTotalSize += byteLength;\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 if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n var queue = controller._queue;\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 if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\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 return ready;\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 function ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\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 if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n return ReadableStreamAddReadIntoRequest(stream);\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 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 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 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n var promise = ReadableStreamAddReadIntoRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n return promise;\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 if (ReadableStreamHasBYOBReader(stream) === true) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\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 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\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 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n var stream = controller._controlledReadableStream;\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 ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested === true) {\n return false;\n }\n if (controller._started === false) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos[0];\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 ReadableStreamClose(stream);\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 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 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 function ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n assert(controller._pendingPullIntos.length > 0);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n var firstDescriptor = controller._pendingPullIntos[0];\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n firstDescriptor.buffer = view.buffer;\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n }\n function streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n }\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n function defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\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 function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\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 function defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n }\n function defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n }\n function byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n }\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\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 var readableStream = __w_pdfjs_require__(4);\n var writableStream = __w_pdfjs_require__(2);\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 return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\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 var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n var _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\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 var _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n function TransformStreamCloseReadable(transformStream) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n TransformStreamCloseReadableInternal(transformStream);\n }\n function TransformStreamEnqueueToReadable(transformStream, chunk) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n var controller = transformStream._readableController;\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n throw transformStream._storedError;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n TransformStreamSetBackpressure(transformStream, true);\n }\n }\n function TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n TransformStreamErrorInternal(transformStream, e);\n }\n function TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n transformStream._readableClosed = true;\n }\n function TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n }\n function TransformStreamErrorInternal(transformStream, e) {\n assert(transformStream._errored === false);\n transformStream._errored = true;\n transformStream._storedError = e;\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n }\n function TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n }\n function TransformStreamSetBackpressure(transformStream, backpressure) {\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n if (transformStream._backpressureChangePromise !== undefined) {\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n transformStream._backpressure = backpressure;\n }\n function TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\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 function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return true;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return true;\n }\n var TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n this._transformStream = transformStream;\n this._startPromise = startPromise;\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 if (transformStream._readableClosed === false) {\n TransformStreamCloseReadableInternal(transformStream);\n }\n return Promise.resolve();\n }).catch(function (r) {\n TransformStreamErrorIfNeeded(transformStream, r);\n return Promise.reject(transformStream._storedError);\n });\n }\n }]);\n return TransformStreamSink;\n }();\n var TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n this._transformStream = transformStream;\n this._startPromise = startPromise;\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 if (transformStream._backpressure === true) {\n return Promise.resolve();\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 return TransformStreamSource;\n }();\n var TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n this._controlledTransformStream = transformStream;\n }\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\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 TransformStreamCloseReadable(this._controlledTransformStream);\n }\n }, {\n key: 'error',\n value: function error(reason) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\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 var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n return TransformStreamDefaultController;\n }();\n var TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, TransformStream);\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 _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\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 return this._writable;\n }\n }]);\n return TransformStream;\n }();\n module.exports = { TransformStream: TransformStream };\n function defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\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/* 127 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n{\n var isURLSupported = false;\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 if (isURLSupported) {\n exports.URL = URL;\n } else {\n var PolyfillURL = __w_pdfjs_require__(128).URL;\n var OriginalURL = __w_pdfjs_require__(3).URL;\n if (OriginalURL) {\n PolyfillURL.createObjectURL = function (blob) {\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n PolyfillURL.revokeObjectURL = function (url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n exports.URL = PolyfillURL;\n }\n}\n\n/***/ }),\n/* 128 */\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 function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n return h.toLowerCase();\n }\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n return encodeURIComponent(c);\n }\n function percentEscapeQuery(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n return encodeURIComponent(c);\n }\n var EOF,\n ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {\n var c = input[cursor];\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 break;\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase();\n } else if (c === ':') {\n this._scheme = buffer;\n buffer = '';\n if (stateOverride) {\n break loop;\n }\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\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 break;\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 break;\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 break;\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 break;\n case 'relative':\n this._isRelative = true;\n if (this._scheme !== 'file') {\n this._scheme = base._scheme;\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 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 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 this._path.pop();\n }\n state = 'relative path';\n continue;\n }\n break;\n case 'relative slash':\n if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\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 state = 'relative path';\n continue;\n }\n break;\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 break;\n case 'authority second slash':\n state = 'authority ignore slashes';\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n break;\n case 'authority ignore slashes':\n if (c !== '/' && c !== '\\\\') {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n break;\n case 'authority':\n if (c === '@') {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n seenAt = true;\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n err('Invalid whitespace in authority.');\n continue;\n }\n if (cp === ':' && this._password === null) {\n this._password = '';\n continue;\n }\n var tempC = percentEscape(cp);\n if (this._password !== null) {\n this._password += tempC;\n } else {\n this._username += tempC;\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 break;\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 continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n break;\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\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 if (stateOverride) {\n break loop;\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 buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n break;\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 if (temp !== relative[this._scheme]) {\n this._port = temp + '';\n }\n buffer = '';\n }\n if (stateOverride) {\n break loop;\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 break;\n case 'relative path start':\n if (c === '\\\\') {\n err('\\'\\\\\\' not allowed in path.');\n }\n state = 'relative path';\n if (c !== '/' && c !== '\\\\') {\n continue;\n }\n break;\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 var tmp;\n if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n buffer = tmp;\n }\n if (buffer === '..') {\n this._path.pop();\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 this._path.push(buffer);\n }\n buffer = '';\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 break;\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 break;\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n break;\n }\n cursor++;\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 function JURL(url, base) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\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 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 var authority = '';\n if (this._username !== '' || this._password !== null) {\n authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';\n }\n return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n },\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\n get protocol() {\n return this._scheme + ':';\n },\n set protocol(value) {\n if (this._isInvalid) {\n return;\n }\n parse.call(this, value + ':', 'scheme start');\n },\n get host() {\n return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n },\n set host(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'host');\n },\n get hostname() {\n return this._host;\n },\n set hostname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'hostname');\n },\n get port() {\n return this._port;\n },\n set port(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'port');\n },\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n },\n set pathname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._path = [];\n parse.call(this, value, 'relative path start');\n },\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;\n },\n set search(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._query = '?';\n if (value[0] === '?') {\n value = value.slice(1);\n }\n parse.call(this, value, 'query');\n },\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;\n },\n set hash(value) {\n if (this._isInvalid) {\n return;\n }\n this._fragment = '#';\n if (value[0] === '#') {\n value = value.slice(1);\n }\n parse.call(this, value, 'fragment');\n },\n get origin() {\n var host;\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n case 'blob':\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {}\n return 'null';\n }\n host = this.host;\n if (!host) {\n return '';\n }\n return this._scheme + '://' + host;\n }\n };\n exports.URL = JURL;\n})();\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.build = exports.version = exports.setPDFNetworkStreamFactory = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.getDocument = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _dom_utils = __w_pdfjs_require__(130);\n\nvar _font_loader = __w_pdfjs_require__(131);\n\nvar _api_compatibility = __w_pdfjs_require__(132);\n\nvar _canvas = __w_pdfjs_require__(133);\n\nvar _global_scope = __w_pdfjs_require__(3);\n\nvar _global_scope2 = _interopRequireDefault(_global_scope);\n\nvar _worker_options = __w_pdfjs_require__(135);\n\nvar _message_handler = __w_pdfjs_require__(136);\n\nvar _metadata = __w_pdfjs_require__(141);\n\nvar _transport_stream = __w_pdfjs_require__(143);\n\nvar _webgl = __w_pdfjs_require__(144);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_RANGE_CHUNK_SIZE = 65536;\nvar isWorkerDisabled = false;\nvar fallbackWorkerSrc = void 0;\nvar fakeWorkerFilesLoader = null;\n{\n var useRequireEnsure = false;\n if (typeof window === 'undefined') {\n isWorkerDisabled = true;\n if (typeof require.ensure === 'undefined') {\n require.ensure = require('node-ensure');\n }\n useRequireEnsure = true;\n } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {\n useRequireEnsure = true;\n }\n if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n }\n 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 = void 0;\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 if (!fallbackWorkerSrc && typeof document !== 'undefined') {\n var pdfjsFilePath = document.currentScript && document.currentScript.src;\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n }\n}\nvar createPDFNetworkStream;\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\nfunction getDocument(src) {\n var task = new PDFDocumentLoadingTask();\n var source;\n if (typeof src === 'string') {\n source = { url: src };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = { data: src };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src };\n } else {\n if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error('Invalid parameter object: need either .data, .range or .url');\n }\n source = src;\n }\n var params = Object.create(null);\n var rangeTransport = null;\n var worker = null;\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 if (typeof pdfBytes === 'string') {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if ((typeof pdfBytes === 'undefined' ? 'undefined' : _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 continue;\n }\n params[key] = source[key];\n }\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || _dom_utils.DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);\n if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;\n }\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.isEvalSupported !== 'boolean') {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== 'boolean') {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n if (typeof params.disableRange !== 'boolean') {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== 'boolean') {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== 'boolean') {\n params.disableAutoFetch = false;\n }\n if (typeof params.disableCreateObjectURL !== 'boolean') {\n params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;\n }\n (0, _util.setVerbosityLevel)(params.verbosity);\n if (!worker) {\n var workerParams = {\n postMessageTransfers: params.postMessageTransfers,\n verbosity: params.verbosity\n };\n var workerPort = _worker_options.GlobalWorkerOptions.workerPort;\n if (workerPort) {\n workerParams.port = workerPort;\n worker = PDFWorker.fromPort(workerParams);\n } else {\n worker = new PDFWorker(workerParams);\n }\n task._worker = worker;\n }\n var docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n var networkStream = void 0;\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\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 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}\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n }\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId: docId,\n apiVersion: '2.0.943',\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 return workerId;\n });\n}\nvar PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n var nextDocumentId = 0;\n function PDFDocumentLoadingTask() {\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 PDFDocumentLoadingTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n destroy: 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 if (_this._worker) {\n _this._worker.destroy();\n _this._worker = null;\n }\n });\n },\n\n then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) {\n return this.promise.then.apply(this.promise, arguments);\n }\n };\n return PDFDocumentLoadingTask;\n}();\n\nvar PDFDataRangeTransport = function () {\n function PDFDataRangeTransport(length, initialData) {\n _classCallCheck(this, PDFDataRangeTransport);\n\n this.length = length;\n this.initialData = initialData;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\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: '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\n listener(begin, chunk);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\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) {\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\n listener(loaded);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\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\n listener(chunk);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\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\nvar PDFDocumentProxy = function () {\n function PDFDocumentProxy(pdfInfo, transport, loadingTask) {\n _classCallCheck(this, PDFDocumentProxy);\n\n this.loadingTask = loadingTask;\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: 'getPageMode',\n value: function getPageMode() {\n return this._transport.getPageMode();\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\n return PDFDocumentProxy;\n}();\n\nvar PDFPageProxy = function PDFPageProxyClosure() {\n function PDFPageProxy(pageIndex, pageInfo, transport) {\n var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n this.pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this.transport = transport;\n this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_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 PDFPageProxy.prototype = {\n get pageNumber() {\n return this.pageIndex + 1;\n },\n get rotate() {\n return this._pageInfo.rotate;\n },\n get ref() {\n return this._pageInfo.ref;\n },\n get userUnit() {\n return this._pageInfo.userUnit;\n },\n get view() {\n return this._pageInfo.view;\n },\n getViewport: function getViewport(scale) {\n var rotate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rotate;\n var dontFlip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n return new _dom_utils.PageViewport({\n viewBox: this.view,\n scale: scale,\n rotation: rotate,\n dontFlip: dontFlip\n });\n },\n\n getAnnotations: function PDFPageProxy_getAnnotations(params) {\n var intent = params && params.intent || null;\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this.transport.getAnnotations(this.pageIndex, intent);\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\n },\n render: function PDFPageProxy_render(params) {\n var _this4 = this;\n\n var stats = this._stats;\n stats.time('Overall');\n this.pendingCleanup = false;\n var renderingIntent = params.intent === 'print' ? 'print' : 'display';\n var canvasFactory = params.canvasFactory || new _dom_utils.DOMCanvasFactory();\n var webGLContext = new _webgl.WebGLContext({ enable: params.enableWebGL });\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n var intentState = this.intentStates[renderingIntent];\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 this.transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: params.renderInteractiveForms === true\n });\n }\n var complete = function complete(error) {\n var i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n if (_this4.cleanupAfterRender) {\n _this4.pendingCleanup = true;\n }\n _this4._tryCleanup();\n if (error) {\n internalRenderTask.capability.reject(error);\n } else {\n internalRenderTask.capability.resolve();\n }\n stats.timeEnd('Rendering');\n stats.timeEnd('Overall');\n };\n var internalRenderTask = new InternalRenderTask(complete, params, this.objs, this.commonObjs, intentState.operatorList, this.pageNumber, canvasFactory, webGLContext, this._pdfBug);\n internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print';\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(internalRenderTask);\n var renderTask = internalRenderTask.task;\n intentState.displayReadyCapability.promise.then(function (transparency) {\n if (_this4.pendingCleanup) {\n complete();\n return;\n }\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n },\n getOperatorList: function PDFPageProxy_getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n var i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n var renderingIntent = 'oplist';\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n var intentState = this.intentStates[renderingIntent];\n var opListTask;\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 this._stats.time('Page Request');\n this.transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageIndex,\n intent: renderingIntent\n });\n }\n return intentState.opListReadCapability.promise;\n },\n streamTextContent: function streamTextContent() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var TEXT_CONTENT_CHUNK_SIZE = 100;\n return this.transport.messageHandler.sendWithStream('GetTextContent', {\n pageIndex: this.pageNumber - 1,\n normalizeWhitespace: params.normalizeWhitespace === true,\n combineTextItems: params.disableCombineTextItems !== true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size: function size(textContent) {\n return textContent.items.length;\n }\n });\n },\n\n getTextContent: function PDFPageProxy_getTextContent(params) {\n params = params || {};\n var readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function (_ref) {\n var _textContent$items;\n\n var value = _ref.value,\n done = _ref.done;\n\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));\n pump();\n }, reject);\n }\n var reader = readableStream.getReader();\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n },\n _destroy: function PDFPageProxy_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 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 cleanup: function cleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.pendingCleanup = true;\n this._tryCleanup(resetStats);\n },\n _tryCleanup: 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 Object.keys(this.intentStates).forEach(function (intent) {\n delete this.intentStates[intent];\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n if (resetStats && this._stats instanceof _dom_utils.StatTimer) {\n this._stats = new _dom_utils.StatTimer();\n }\n this.pendingCleanup = false;\n },\n\n _startRenderPage: function PDFPageProxy_startRenderPage(transparency, intent) {\n var intentState = this.intentStates[intent];\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n },\n _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, intent) {\n var intentState = this.intentStates[intent];\n var i, ii;\n for (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 intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n for (i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n intentState.receivingOperatorList = false;\n this._tryCleanup();\n }\n },\n get stats() {\n return this._stats instanceof _dom_utils.StatTimer ? this._stats : null;\n }\n };\n return PDFPageProxy;\n}();\n\nvar LoopbackPort = function () {\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 _this5 = this;\n\n function cloneValue(value) {\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) {\n return value;\n }\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n var result;\n var buffer;\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n var transferable = transfers && transfers.includes(buffer);\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 cloned.set(value, result);\n return result;\n }\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n for (var i in value) {\n var desc,\n p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === 'undefined' || typeof desc.value === 'function') {\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n if (!this._defer) {\n this._listeners.forEach(function (listener) {\n listener.call(this, { data: obj });\n }, this);\n return;\n }\n var cloned = new WeakMap();\n var e = { data: cloneValue(obj) };\n this._deferred.then(function () {\n _this5._listeners.forEach(function (listener) {\n listener.call(this, e);\n }, _this5);\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 this._listeners.splice(i, 1);\n }\n }, {\n key: 'terminate',\n value: function terminate() {\n this._listeners = [];\n }\n }]);\n\n return LoopbackPort;\n}();\n\nvar PDFWorker = function PDFWorkerClosure() {\n var nextFakeWorkerId = 0;\n function getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n if (typeof fallbackWorkerSrc !== 'undefined') {\n return fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n function getMainThreadWorkerMessageHandler() {\n try {\n if (typeof window !== 'undefined') {\n return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler;\n }\n } catch (ex) {}\n return null;\n }\n var fakeWorkerFilesLoadedCapability = void 0;\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();\n var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n if (mainWorkerMessageHandler) {\n fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n var loader = fakeWorkerFilesLoader || function () {\n return (0, _dom_utils.loadScript)(getWorkerSrc()).then(function () {\n return window.pdfjsWorker.WorkerMessageHandler;\n });\n };\n loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n function createCDNWrapper(url) {\n var wrapper = 'importScripts(\\'' + url + '\\');';\n return _util.URL.createObjectURL(new Blob([wrapper]));\n }\n var pdfWorkerPorts = new WeakMap();\n function PDFWorker() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$name = _ref2.name,\n name = _ref2$name === undefined ? null : _ref2$name,\n _ref2$port = _ref2.port,\n port = _ref2$port === undefined ? null : _ref2$port,\n _ref2$postMessageTran = _ref2.postMessageTransfers,\n postMessageTransfers = _ref2$postMessageTran === undefined ? true : _ref2$postMessageTran,\n _ref2$verbosity = _ref2.verbosity,\n verbosity = _ref2$verbosity === undefined ? (0, _util.getVerbosityLevel)() : _ref2$verbosity;\n\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error('Cannot use more than one PDFWorker per port');\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 if (port) {\n pdfWorkerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n PDFWorker.prototype = {\n get promise() {\n return this._readyCapability.promise;\n },\n get port() {\n return this._port;\n },\n get messageHandler() {\n return this._messageHandler;\n },\n _initializeFromPort: function PDFWorker_initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);\n this._messageHandler.on('ready', function () {});\n this._readyCapability.resolve();\n },\n _initialize: function PDFWorker_initialize() {\n var _this6 = this;\n\n if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n var workerSrc = getWorkerSrc();\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href);\n }\n var worker = new Worker(workerSrc);\n var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);\n var terminateEarly = function terminateEarly() {\n worker.removeEventListener('error', onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (_this6.destroyed) {\n _this6._readyCapability.reject(new Error('Worker was destroyed'));\n } else {\n _this6._setupFakeWorker();\n }\n };\n var onWorkerError = function onWorkerError() {\n if (!_this6._webWorker) {\n terminateEarly();\n }\n };\n worker.addEventListener('error', onWorkerError);\n messageHandler.on('test', function (data) {\n worker.removeEventListener('error', onWorkerError);\n if (_this6.destroyed) {\n terminateEarly();\n return;\n }\n if (data && data.supportTypedArray) {\n _this6._messageHandler = messageHandler;\n _this6._port = worker;\n _this6._webWorker = worker;\n if (!data.supportTransfers) {\n _this6.postMessageTransfers = false;\n }\n _this6._readyCapability.resolve();\n messageHandler.send('configure', { verbosity: _this6.verbosity });\n } else {\n _this6._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on('ready', function (data) {\n worker.removeEventListener('error', onWorkerError);\n if (_this6.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch (e) {\n _this6._setupFakeWorker();\n }\n });\n var sendTest = function sendTest() {\n var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]);\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 sendTest();\n return;\n } catch (e) {\n (0, _util.info)('The worker has been disabled.');\n }\n }\n this._setupFakeWorker();\n },\n _setupFakeWorker: function PDFWorker_setupFakeWorker() {\n var _this7 = this;\n\n if (!isWorkerDisabled) {\n (0, _util.warn)('Setting up fake worker.');\n isWorkerDisabled = true;\n }\n setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {\n if (_this7.destroyed) {\n _this7._readyCapability.reject(new Error('Worker was destroyed'));\n return;\n }\n var port = new LoopbackPort();\n _this7._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 _this7._messageHandler = messageHandler;\n _this7._readyCapability.resolve();\n }).catch(function (reason) {\n _this7._readyCapability.reject(new Error('Setting up fake worker failed: \"' + reason.message + '\".'));\n });\n },\n destroy: function PDFWorker_destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n };\n PDFWorker.fromPort = function (params) {\n if (!params || !params.port) {\n throw new Error('PDFWorker.fromPort - invalid method signature.');\n }\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n return new PDFWorker(params);\n };\n PDFWorker.getWorkerSrc = function () {\n return getWorkerSrc();\n };\n return PDFWorker;\n}();\n\nvar WorkerTransport = function () {\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(loadingTask.docId);\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 _this8 = this;\n\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));\n }\n var waitOn = [];\n this.pageCache.forEach(function (page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache = [];\n this.pagePromises = [];\n var terminated = this.messageHandler.sendWithPromise('Terminate', null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(function () {\n _this8.fontLoader.clear();\n if (_this8._networkStream) {\n _this8._networkStream.cancelAllRequests();\n }\n if (_this8.messageHandler) {\n _this8.messageHandler.destroy();\n _this8.messageHandler = null;\n }\n _this8.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\n messageHandler.on('GetReader', function (data, sink) {\n var _this9 = this;\n\n (0, _util.assert)(this._networkStream);\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = function (evt) {\n _this9._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = function () {\n _this9._fullReader.read().then(function (_ref3) {\n var value = _ref3.value,\n done = _ref3.done;\n\n if (done) {\n sink.close();\n return;\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 sink.onCancel = function (reason) {\n _this9._fullReader.cancel(reason);\n };\n }, this);\n messageHandler.on('ReaderHeadersReady', function (data) {\n var _this10 = 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 (_this10._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(_this10._lastProgress);\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 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 var rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n sink.onPull = function () {\n rangeReader.read().then(function (_ref4) {\n var value = _ref4.value,\n done = _ref4.done;\n\n if (done) {\n sink.close();\n return;\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 sink.onCancel = function (reason) {\n rangeReader.cancel(reason);\n };\n }, this);\n messageHandler.on('GetDoc', function (_ref5) {\n var pdfInfo = _ref5.pdfInfo;\n\n this.numPages = pdfInfo.numPages;\n this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask);\n loadingTask._capability.resolve(this.pdfDocument);\n }, this);\n messageHandler.on('PasswordRequest', function (exception) {\n var _this11 = this;\n\n this._passwordCapability = (0, _util.createPromiseCapability)();\n if (loadingTask.onPassword) {\n var updatePassword = function updatePassword(password) {\n _this11._passwordCapability.resolve({ password: password });\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 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 this.downloadInfoCapability.resolve(data);\n }, this);\n messageHandler.on('StartRenderPage', function (data) {\n if (this.destroyed) {\n return;\n }\n var page = this.pageCache[data.pageIndex];\n page._stats.timeEnd('Page Request');\n page._startRenderPage(data.transparency, data.intent);\n }, this);\n messageHandler.on('RenderPageChunk', function (data) {\n if (this.destroyed) {\n return;\n }\n var page = this.pageCache[data.pageIndex];\n page._renderPageChunk(data.operatorList, data.intent);\n }, this);\n messageHandler.on('commonobj', function (data) {\n var _this12 = 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.hasData(id)) {\n return;\n }\n switch (type) {\n case 'Font':\n var params = this._params;\n if ('error' in exportedData) {\n var exportedError = exportedData.error;\n (0, _util.warn)('Error during font loading: ' + exportedError);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n var fontRegistry = null;\n if (params.pdfBug && _global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled) {\n fontRegistry = {\n registerFont: function registerFont(font, url) {\n _global_scope2.default['FontInspector'].fontAdded(font, url);\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 var fontReady = function fontReady(fontObjs) {\n _this12.commonObjs.resolve(id, font);\n };\n this.fontLoader.bind([font], fontReady);\n break;\n case 'FontPath':\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error('Got unknown common object type ' + type);\n }\n }, this);\n messageHandler.on('obj', function (data) {\n if (this.destroyed) {\n return;\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 if (pageProxy.objs.hasData(id)) {\n return;\n }\n switch (type) {\n case 'JpegStream':\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () {\n resolve(img);\n };\n img.onerror = function () {\n reject(new Error('Error during JPEG image loading'));\n };\n img.src = imageData;\n }).then(function (img) {\n pageProxy.objs.resolve(id, img);\n });\n case 'Image':\n pageProxy.objs.resolve(id, imageData);\n var MAX_IMAGE_SIZE_TO_STORE = 8000000;\n if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n break;\n default:\n throw new Error('Got unknown object type ' + type);\n }\n }, this);\n messageHandler.on('DocProgress', function (data) {\n if (this.destroyed) {\n return;\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 var page = this.pageCache[data.pageNum - 1];\n var intentState = page.intentStates[data.intent];\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(data.error);\n } else {\n throw new Error(data.error);\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\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 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 return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () {\n var width = img.width;\n var 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 if (components === 3) {\n for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n buf[j] = data[i];\n buf[j + 1] = data[i + 1];\n buf[j + 2] = data[i + 2];\n }\n } else if (components === 1) {\n for (var _i = 0, _j = 0; _i < rgbaLength; _i += 4, _j++) {\n buf[_j] = data[_i];\n }\n }\n resolve({\n data: buf,\n width: width,\n height: height\n });\n };\n img.onerror = function () {\n reject(new Error('JpegDecode failed to load image'));\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 return this.CMapReaderFactory.fetch({ name: data.name });\n }, this);\n }\n }, {\n key: '_onUnsupportedFeature',\n value: function _onUnsupportedFeature(_ref6) {\n var featureId = _ref6.featureId;\n\n if (this.destroyed) {\n return;\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 _this13 = this;\n\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) {\n return Promise.reject(new Error('Invalid page request'));\n }\n var pageIndex = pageNumber - 1;\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n var promise = this.messageHandler.sendWithPromise('GetPage', { pageIndex: pageIndex }).then(function (pageInfo) {\n if (_this13.destroyed) {\n throw new Error('Transport destroyed');\n }\n var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug);\n _this13.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', { ref: ref }).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 return this.messageHandler.sendWithPromise('GetDestination', { id: id });\n }\n }, {\n key: 'getPageLabels',\n value: function getPageLabels() {\n return this.messageHandler.sendWithPromise('GetPageLabels', null);\n }\n }, {\n key: 'getPageMode',\n value: function getPageMode() {\n return this.messageHandler.sendWithPromise('GetPageMode', 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 _this14 = 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: _this14._fullReader ? _this14._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 _this15 = this;\n\n this.messageHandler.sendWithPromise('Cleanup', null).then(function () {\n for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) {\n var page = _this15.pageCache[i];\n if (page) {\n page.cleanup();\n }\n }\n _this15.commonObjs.clear();\n _this15.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 = function PDFObjectsClosure() {\n function PDFObjects() {\n this.objs = Object.create(null);\n }\n PDFObjects.prototype = {\n ensureObj: function PDFObjects_ensureObj(objId) {\n if (this.objs[objId]) {\n return this.objs[objId];\n }\n var obj = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n this.objs[objId] = obj;\n return obj;\n },\n get: function PDFObjects_get(objId, callback) {\n if (callback) {\n this.ensureObj(objId).capability.promise.then(callback);\n return null;\n }\n var obj = this.objs[objId];\n if (!obj || !obj.resolved) {\n throw new Error('Requesting object that isn\\'t resolved yet ' + objId);\n }\n return obj.data;\n },\n resolve: function PDFObjects_resolve(objId, data) {\n var obj = this.ensureObj(objId);\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n },\n isResolved: function PDFObjects_isResolved(objId) {\n var objs = this.objs;\n if (!objs[objId]) {\n return false;\n }\n return objs[objId].resolved;\n },\n hasData: function PDFObjects_hasData(objId) {\n return this.isResolved(objId);\n },\n getData: function PDFObjects_getData(objId) {\n var objs = this.objs;\n if (!objs[objId] || !objs[objId].resolved) {\n return null;\n }\n return objs[objId].data;\n },\n clear: function PDFObjects_clear() {\n this.objs = Object.create(null);\n }\n };\n return PDFObjects;\n}();\nvar RenderTask = function RenderTaskClosure() {\n function RenderTask(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n RenderTask.prototype = {\n get promise() {\n return this._internalRenderTask.capability.promise;\n },\n cancel: function RenderTask_cancel() {\n this._internalRenderTask.cancel();\n },\n then: function RenderTask_then(onFulfilled, onRejected) {\n return this.promise.then.apply(this.promise, arguments);\n }\n };\n return RenderTask;\n}();\nvar InternalRenderTask = function InternalRenderTaskClosure() {\n var canvasInRendering = new WeakMap();\n function InternalRenderTask(callback, params, objs, commonObjs, operatorList, pageNumber, canvasFactory, webGLContext) {\n var pdfBug = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\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 = false;\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 InternalRenderTask.prototype = {\n initializeGraphics: function initializeGraphics(transparency) {\n if (this.cancelled) {\n return;\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 canvasInRendering.set(this._canvas, this);\n }\n if (this._pdfBug && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) {\n this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n var params = this.params;\n this.gfx = new _canvas.CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, params.imageLayer);\n this.gfx.beginDrawing({\n transform: params.transform,\n viewport: params.viewport,\n transparency: transparency,\n background: params.background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n },\n\n cancel: function InternalRenderTask_cancel() {\n this.running = false;\n this.cancelled = true;\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n this.callback(new _dom_utils.RenderingCancelledException('Rendering cancelled, page ' + this.pageNumber, 'canvas'));\n },\n operatorListChanged: function InternalRenderTask_operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n return;\n }\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n if (this.running) {\n return;\n }\n this._continue();\n },\n _continue: function InternalRenderTask__continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n },\n _scheduleNext: function InternalRenderTask__scheduleNext() {\n var _this16 = this;\n\n if (this.useRequestAnimationFrame && typeof window !== 'undefined') {\n window.requestAnimationFrame(function () {\n _this16._nextBound().catch(_this16.callback);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.callback);\n }\n },\n _next: function InternalRenderTask__next() {\n var _this17 = this;\n\n return new Promise(function () {\n if (_this17.cancelled) {\n return;\n }\n _this17.operatorListIdx = _this17.gfx.executeOperatorList(_this17.operatorList, _this17.operatorListIdx, _this17._continueBound, _this17.stepper);\n if (_this17.operatorListIdx === _this17.operatorList.argsArray.length) {\n _this17.running = false;\n if (_this17.operatorList.lastChunk) {\n _this17.gfx.endDrawing();\n if (_this17._canvas) {\n canvasInRendering.delete(_this17._canvas);\n }\n _this17.callback();\n }\n }\n });\n }\n };\n return InternalRenderTask;\n}();\nvar version, build;\n{\n exports.version = version = '2.0.943';\n exports.build = build = 'dc98bf76';\n}\nexports.getDocument = getDocument;\nexports.LoopbackPort = LoopbackPort;\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\nexports.PDFWorker = PDFWorker;\nexports.PDFDocumentProxy = PDFDocumentProxy;\nexports.PDFPageProxy = PDFPageProxy;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = version;\nexports.build = build;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.loadScript = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.getFilenameFromUrl = exports.addLinkAttributes = exports.RenderingCancelledException = exports.PageViewport = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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\nvar DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nvar SVG_NS = 'http://www.w3.org/2000/svg';\n\nvar DOMCanvasFactory = function () {\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 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 if (width <= 0 || height <= 0) {\n throw new Error('invalid canvas size');\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n }, {\n key: 'destroy',\n value: function destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error('canvas is not specified');\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\nvar DOMCMapReaderFactory = function () {\n function DOMCMapReaderFactory(_ref) {\n var _ref$baseUrl = _ref.baseUrl,\n baseUrl = _ref$baseUrl === undefined ? null : _ref$baseUrl,\n _ref$isCompressed = _ref.isCompressed,\n isCompressed = _ref$isCompressed === undefined ? 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(_ref2) {\n var _this = this;\n\n var name = _ref2.name;\n\n if (!this.baseUrl) {\n return Promise.reject(new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'));\n }\n if (!name) {\n return Promise.reject(new Error('CMap name must be specified.'));\n }\n return new Promise(function (resolve, reject) {\n var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : '');\n var request = new XMLHttpRequest();\n request.open('GET', url, true);\n if (_this.isCompressed) {\n request.responseType = 'arraybuffer';\n }\n request.onreadystatechange = function () {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n var data = void 0;\n if (_this.isCompressed && request.response) {\n data = new Uint8Array(request.response);\n } else if (!_this.isCompressed && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n if (data) {\n resolve({\n cMapData: data,\n compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE\n });\n return;\n }\n }\n reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url));\n };\n request.send(null);\n });\n }\n }]);\n\n return DOMCMapReaderFactory;\n}();\n\nvar DOMSVGFactory = function () {\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\nvar PageViewport = function () {\n function PageViewport(_ref3) {\n var viewBox = _ref3.viewBox,\n scale = _ref3.scale,\n rotation = _ref3.rotation,\n _ref3$offsetX = _ref3.offsetX,\n offsetX = _ref3$offsetX === undefined ? 0 : _ref3$offsetX,\n _ref3$offsetY = _ref3.offsetY,\n offsetY = _ref3$offsetY === undefined ? 0 : _ref3$offsetY,\n _ref3$dontFlip = _ref3.dontFlip,\n dontFlip = _ref3$dontFlip === undefined ? false : _ref3$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 = void 0,\n rotateB = void 0,\n rotateC = void 0,\n rotateD = void 0;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n default:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n var offsetCanvasX = void 0,\n offsetCanvasY = void 0;\n var width = void 0,\n height = void 0;\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 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 _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$scale = _ref4.scale,\n scale = _ref4$scale === undefined ? this.scale : _ref4$scale,\n _ref4$rotation = _ref4.rotation,\n rotation = _ref4$rotation === undefined ? this.rotation : _ref4$rotation,\n _ref4$dontFlip = _ref4.dontFlip,\n dontFlip = _ref4$dontFlip === undefined ? false : _ref4$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 tl = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n var br = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n return [tl[0], tl[1], br[0], br[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\nvar RenderingCancelledException = function RenderingCancelledException() {\n function RenderingCancelledException(msg, type) {\n this.message = msg;\n this.type = type;\n }\n RenderingCancelledException.prototype = new Error();\n RenderingCancelledException.prototype.name = 'RenderingCancelledException';\n RenderingCancelledException.constructor = RenderingCancelledException;\n return RenderingCancelledException;\n}();\nvar LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nvar LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top'];\nfunction addLinkAttributes(link) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n url = _ref5.url,\n target = _ref5.target,\n rel = _ref5.rel;\n\n link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : '';\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}\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 = function () {\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 if (name in this.started) {\n (0, _util.warn)('Timer is already running for ' + name);\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 if (!(name in this.started)) {\n (0, _util.warn)('Timer has not been started for ' + name);\n }\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now()\n });\n delete this.started[name];\n }\n }, {\n key: 'toString',\n value: function toString() {\n var times = this.times;\n var out = '',\n longest = 0;\n for (var i = 0, ii = times.length; i < ii; ++i) {\n var name = times[i]['name'];\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (var _i = 0, _ii = times.length; _i < _ii; ++_i) {\n var span = times[_i];\n var duration = span.end - span.start;\n out += span['name'].padEnd(longest) + ' ' + duration + 'ms\\n';\n }\n return out;\n }\n }]);\n\n return StatTimer;\n}();\n\nvar DummyStatTimer = function () {\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\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 script.onerror = function () {\n reject(new Error('Cannot load script at: ' + script.src));\n };\n (document.head || document.documentElement).appendChild(script);\n });\n}\nexports.PageViewport = PageViewport;\nexports.RenderingCancelledException = RenderingCancelledException;\nexports.addLinkAttributes = addLinkAttributes;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.LinkTarget = LinkTarget;\nexports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\nexports.DOMCanvasFactory = DOMCanvasFactory;\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\nexports.DOMSVGFactory = DOMSVGFactory;\nexports.StatTimer = StatTimer;\nexports.DummyStatTimer = DummyStatTimer;\nexports.loadScript = loadScript;\n\n/***/ }),\n/* 131 */\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 = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BaseFontLoader = function () {\n function BaseFontLoader(docId) {\n _classCallCheck(this, BaseFontLoader);\n\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)('Cannot initialize BaseFontLoader.');\n }\n this.docId = docId;\n this.nativeFontFaces = [];\n this.styleElement = null;\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\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 if (!styleElement) {\n styleElement = this.styleElement = document.createElement('style');\n styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId;\n document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);\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 if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n }, {\n key: 'bind',\n value: function bind(fonts, callback) {\n var rules = [];\n var fontsToLoad = [];\n var fontLoadPromises = [];\n var getNativeFontPromise = function getNativeFontPromise(nativeFontFace) {\n return nativeFontFace.loaded.catch(function (reason) {\n (0, _util.warn)('Failed to load font \"' + nativeFontFace.family + '\": ' + reason);\n });\n };\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var font = _step.value;\n\n if (font.attached || font.missingFile) {\n continue;\n }\n font.attached = true;\n if (this.isFontLoadingAPISupported) {\n var nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n fontLoadPromises.push(getNativeFontPromise(nativeFontFace));\n }\n } else {\n var rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n rules.push(rule);\n fontsToLoad.push(font);\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var request = this._queueLoadingCallback(callback);\n if (this.isFontLoadingAPISupported) {\n Promise.all(fontLoadPromises).then(request.complete);\n } else if (rules.length > 0 && !this.isSyncFontLoadingSupported) {\n this._prepareFontLoadEvent(rules, fontsToLoad, request);\n } else {\n request.complete();\n }\n }\n }, {\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 while (context.requests.length > 0 && context.requests[0].done) {\n var otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n var context = this.loadingContext;\n var request = {\n id: 'pdfjs-font-loading-' + 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, 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 = void 0;\n{\n exports.FontLoader = FontLoader = function (_BaseFontLoader) {\n _inherits(GenericFontLoader, _BaseFontLoader);\n\n function GenericFontLoader(docId) {\n _classCallCheck(this, GenericFontLoader);\n\n var _this = _possibleConstructorReturn(this, (GenericFontLoader.__proto__ || Object.getPrototypeOf(GenericFontLoader)).call(this, docId));\n\n _this.loadTestFontId = 0;\n return _this;\n }\n\n _createClass(GenericFontLoader, [{\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 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 var i = void 0,\n ii = void 0;\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 function isFontReady(name, callback) {\n called++;\n if (called > 30) {\n (0, _util.warn)('Load test font never loaded.');\n callback();\n return;\n }\n ctx.font = '30px ' + name;\n ctx.fillText('.', 0, 20);\n var imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n var loadTestFontId = 'lt' + Date.now() + 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 for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n var url = 'url(data:font/opentype;base64,' + btoa(data) + ');';\n var rule = '@font-face {font-family:\"' + loadTestFontId + '\";src:' + url + '}';\n this.insertRule(rule);\n var names = [];\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n names.push(loadTestFontId);\n var div = document.createElement('div');\n div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');\n for (i = 0, ii = names.length; i < ii; ++i) {\n var span = document.createElement('span');\n span.textContent = 'Hi';\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n document.body.appendChild(div);\n 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 if (supported && typeof navigator !== 'undefined') {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n if (m && m[1] < 63) {\n supported = false;\n }\n }\n return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);\n }\n }, {\n key: 'isSyncFontLoadingSupported',\n get: function get() {\n var supported = false;\n if (typeof navigator === 'undefined') {\n supported = true;\n } else {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n if (m && m[1] >= 14) {\n supported = true;\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 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\nvar FontFaceObject = function () {\n function FontFaceObject(translatedData, _ref) {\n var _ref$isEvalSupported = _ref.isEvalSupported,\n isEvalSupported = _ref$isEvalSupported === undefined ? true : _ref$isEvalSupported,\n _ref$disableFontFace = _ref.disableFontFace,\n disableFontFace = _ref$disableFontFace === undefined ? false : _ref$disableFontFace,\n _ref$ignoreErrors = _ref.ignoreErrors,\n ignoreErrors = _ref$ignoreErrors === undefined ? false : _ref$ignoreErrors,\n _ref$onUnsupportedFea = _ref.onUnsupportedFeature,\n onUnsupportedFeature = _ref$onUnsupportedFea === undefined ? null : _ref$onUnsupportedFea,\n _ref$fontRegistry = _ref.fontRegistry,\n fontRegistry = _ref$fontRegistry === undefined ? null : _ref$fontRegistry;\n\n _classCallCheck(this, FontFaceObject);\n\n this.compiledGlyphs = Object.create(null);\n for (var i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n _createClass(FontFaceObject, [{\n key: 'createNativeFontFace',\n value: function createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n var nativeFontFace = new FontFace(this.loadedName, this.data, {});\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n return nativeFontFace;\n }\n }, {\n key: 'createFontFaceRule',\n value: function createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n var data = (0, _util.bytesToString)(new Uint8Array(this.data));\n var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');';\n var rule = '@font-face {font-family:\"' + this.loadedName + '\";src:' + url + '}';\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\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 var cmds = void 0,\n current = void 0;\n try {\n cmds = objs.get(this.loadedName + '_path_' + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({ featureId: _util.UNSUPPORTED_FEATURES.font });\n }\n (0, _util.warn)('getPathGenerator - ignoring character: \"' + ex + '\".');\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n if (this.isEvalSupported && IsEvalSupportedCached.value) {\n var args = void 0,\n js = '';\n for (var i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n if (current.args !== undefined) {\n args = current.args.join(',');\n } else {\n args = '';\n }\n js += 'c.' + current.cmd + '(' + args + ');\\n';\n }\n return this.compiledGlyphs[character] = new Function('c', 'size', js);\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 if (current.cmd === 'scale') {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n }]);\n\n return FontFaceObject;\n}();\n\nexports.FontFaceObject = FontFaceObject;\nexports.FontLoader = FontLoader;\n\n/***/ }),\n/* 132 */\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 var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';\n var isIE = /Trident/.test(userAgent);\n var isIOSChrome = /CriOS/.test(userAgent);\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\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/* 133 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CanvasGraphics = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _pattern_helper = __w_pdfjs_require__(134);\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};\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 ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n this._transformStack.push(old);\n this._transformMatrix = old.slice(0, 6);\n this._originalSave();\n };\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n if (prev) {\n this._transformMatrix = prev;\n this._originalRestore();\n }\n };\n 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 this._originalTranslate(x, y);\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 this._originalScale(x, y);\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 ctx._originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n ctx._originalSetTransform(a, b, c, d, e, f);\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 this._originalRotate(angle);\n };\n }\n}\nvar CachedCanvases = function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\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 if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\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}();\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 for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n var count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n do {\n var step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n pp = points[p];\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 coords.push(p % width1);\n coords.push(p / width1 | 0);\n --count;\n } while (p0 !== p);\n outlines.push(coords);\n --i;\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 for (var i = 0, ii = outlines.length; i < ii; i++) {\n var o = outlines[i];\n c.moveTo(o[0], o[1]);\n for (var j = 2, jj = o.length; j < jj; j += 2) {\n c.lineTo(o[j], o[j + 1]);\n }\n }\n c.fill();\n c.beginPath();\n c.restore();\n };\n return drawOutline;\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 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}();\nvar CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\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 if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n this._cachedGetSinglePixelWidth = null;\n }\n function putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\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 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 for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n var k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\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 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 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 for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error('bad image kind: ' + imgData.kind);\n }\n }\n 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 for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n function copyCtxState(sourceCtx, destCtx) {\n var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font'];\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = '#000000';\n ctx.fillStyle = '#000000';\n ctx.fillRule = 'nonzero';\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = 'source-over';\n ctx.font = '10px sans-serif';\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n var alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n }\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n }\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + 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 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 if (subtype === 'Luminosity') {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\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 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 genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\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 transparency = _ref.transparency,\n _ref$background = _ref.background,\n background = _ref$background === undefined ? null : _ref$background;\n\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 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 this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\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 if (argsArrayLen === i) {\n return i;\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 while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n var deps = argsArray[i];\n for (var n = 0, nn = deps.length; n < nn; n++) {\n var depObjId = deps[n];\n var common = depObjId[0] === 'g' && depObjId[1] === '_';\n var objsPool = common ? commonObjs : objs;\n if (!objsPool.isResolved(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n },\n endDrawing: function CanvasGraphics_endDrawing() {\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\n }\n this.ctx.restore();\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 this.cachedCanvases.clear();\n this.webGLContext.clear();\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 if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {},\n setFlatness: function CanvasGraphics_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 switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n case 'LC':\n this.setLineCap(value);\n break;\n case 'LJ':\n this.setLineJoin(value);\n break;\n case 'ML':\n this.setMiterLimit(value);\n break;\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n case 'RI':\n this.setRenderingIntent(value);\n break;\n case 'FL':\n this.setFlatness(value);\n break;\n case 'Font':\n this.setFont(value[0], value[1]);\n break;\n case 'CA':\n this.current.strokeAlpha = state[1];\n break;\n case 'ca':\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n case 'BM':\n this.ctx.globalCompositeOperation = value;\n break;\n case 'SMask':\n if (this.current.activeSMask) {\n if (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 this.current.activeSMask = value ? this.tempSMask : null;\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n 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 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\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 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\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 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 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 if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\n var xw = x + width;\n var yh = y + height;\n this.ctx.moveTo(x, y);\n this.ctx.lineTo(xw, y);\n this.ctx.lineTo(xw, yh);\n this.ctx.lineTo(x, yh);\n this.ctx.lineTo(x, y);\n this.ctx.closePath();\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\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 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 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 case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_stroke(consumePath) {\n consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.globalAlpha = this.current.strokeAlpha;\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 if (consumePath) {\n this.consumePath();\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 if (isPatternFill) {\n ctx.save();\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n if (this.pendingEOFill) {\n ctx.fill('evenodd');\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n 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 if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n },\n setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n if (!fontObj) {\n throw new Error('Can\\'t find font for ' + fontRefName);\n }\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)('Invalid font matrix for font ' + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n var name = fontObj.loadedName || 'sans-serif';\n var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal';\n var italic = fontObj.italic ? 'italic' : 'normal';\n var typeface = '\"' + name + '\", ' + fontObj.fallbackName;\n var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;\n this.current.fontSizeScale = size / browserFontSize;\n var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface;\n this.ctx.font = rule;\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 if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\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 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\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 ctx = this.canvasFactory.create(10, 10).context;\n ctx.scale(1.5, 1);\n ctx.fillText('I', 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled);\n },\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n var fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\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 = void 0;\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 ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\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 if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n var x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n vy = vmetric[2] * widthAdvanceScale;\n 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 if (font.remeasure && width > 0) {\n var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\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 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 var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n },\n 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 if (isTextInvisible || fontSize === 0) {\n return;\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 for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\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 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n (0, _util.warn)('Type3 character \"' + glyph.operatorListId + '\" is not available.');\n continue;\n }\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\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 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 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 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 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 if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n var bl = _util.Util.applyTransform([0, 0], inv);\n var br = _util.Util.applyTransform([0, height], inv);\n var ul = _util.Util.applyTransform([width, 0], inv);\n var ur = _util.Util.applyTransform([width, height], inv);\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 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 if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n this.baseTransform = this.ctx.mozCurrentTransform;\n if (Array.isArray(bbox) && bbox.length === 4) {\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 if (!group.isolated) {\n (0, _util.info)('TODO: Support non-isolated groups.');\n }\n if (group.knockout) {\n (0, _util.warn)('Knockout groups not supported.');\n }\n var currentTransform = currentCtx.mozCurrentTransform;\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n if (!group.bbox) {\n throw new Error('Bounding box is required.');\n }\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\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 if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n var cacheId = 'groupAt' + this.groupLevel;\n if (group.smask) {\n cacheId += '_smask_' + this.smaskCounter++ % 2;\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 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 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 if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\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 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 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.objs.get(objId);\n if (!domImage) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\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 if (this.imageLayer) {\n var currentTransform = ctx.mozCurrentTransformInverse;\n var position = this.getCanvasPosition(0, 0);\n this.imageLayer.appendImage({\n objId: objId,\n left: position[0],\n top: position[1],\n width: w / currentTransform[0],\n height: h / currentTransform[3]\n });\n }\n this.restore();\n },\n 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 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 if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\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 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 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.objs.get(objId);\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n var imgData = this.objs.get(objId);\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\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 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 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 var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = 'prescale1';\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, 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 ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n this.restore();\n },\n 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 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 if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n ctx.restore();\n }\n },\n 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 if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip('evenodd');\n } else {\n ctx.clip();\n }\n this.pendingClip = null;\n }\n ctx.beginPath();\n },\n getSinglePixelWidth: 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 return this._cachedGetSinglePixelWidth;\n },\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 for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n return CanvasGraphics;\n}();\nexports.CanvasGraphics = CanvasGraphics;\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TilingPattern = exports.getShadingPatternFromIR = undefined;\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 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 for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n return grad;\n }\n };\n }\n};\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 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 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 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 var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n var c1r = colors[c1],\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 for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n k = k < 0 ? 0 : k > 1 ? 1 : k;\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n }\n function drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n switch (figure.type) {\n case 'lattice':\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, 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 break;\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 break;\n default:\n throw new Error('illegal figure');\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 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 if (backgroundColor) {\n var bytes = data.data;\n for (i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n 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 return createMeshCanvas;\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 if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\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};\nfunction getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n if (!shadingIR) {\n throw new Error('Unknown IR type: ' + raw[0]);\n }\n return shadingIR.fromIR(raw);\n}\nvar TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\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 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 var topLeft = [x0, y0];\n var botRight = [x0 + xstep, y0 + ystep];\n var width = botRight[0] - topLeft[0];\n var height = botRight[1] - topLeft[1];\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE);\n height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE);\n var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n this.setScale(width, height, xstep, ystep);\n this.transformToScale(graphics);\n var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];\n graphics.transform.apply(graphics, tmpTranslate);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n return tmpCanvas.canvas;\n },\n setScale: function TilingPattern_setScale(width, height, xstep, ystep) {\n this.scale = [width / xstep, height / ystep];\n },\n transformToScale: function TilingPattern_transformToScale(graphics) {\n var scale = this.scale;\n var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];\n graphics.transform.apply(graphics, tmpScale);\n },\n scaleToContext: function TilingPattern_scaleToContext() {\n var scale = this.scale;\n this.ctx.scale(1 / scale[0], 1 / scale[1]);\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 switch (paintType) {\n case PaintType.COLORED:\n var ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new _util.FormatError('Unsupported paint type: ' + paintType);\n }\n },\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n this.scaleToContext();\n return ctx.createPattern(temporaryPatternCanvas, 'repeat');\n }\n };\n return TilingPattern;\n}();\nexports.getShadingPatternFromIR = getShadingPatternFromIR;\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar GlobalWorkerOptions = Object.create(null);\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc;\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar resolveCall = function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(fn, args) {\n var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (fn) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt('return');\n\n case 2:\n return _context.abrupt('return', fn.apply(thisArg, args));\n\n case 3:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function resolveCall(_x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction wrapReason(reason) {\n if ((typeof reason === 'undefined' ? 'undefined' : _typeof(reason)) !== 'object') {\n return reason;\n }\n switch (reason.name) {\n case 'AbortException':\n return new _util.AbortException(reason.message);\n case 'MissingPDFException':\n return new _util.MissingPDFException(reason.message);\n case 'UnexpectedResponseException':\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n default:\n return new _util.UnknownErrorException(reason.message, reason.details);\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 return new _util.UnknownErrorException(reason.message, reason.toString());\n}\nfunction resolveOrReject(capability, success, reason) {\n if (success) {\n capability.resolve();\n } else {\n capability.reject(reason);\n }\n}\nfunction finalize(promise) {\n return Promise.resolve(promise).catch(function () {});\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 this._onComObjOnMessage = function (event) {\n var data = event.data;\n if (data.targetName !== _this.sourceName) {\n return;\n }\n if (data.stream) {\n _this._processStreamMessage(data);\n } else if (data.isReply) {\n var callbackId = data.callbackId;\n if (data.callbackId in callbacksCapabilities) {\n var callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\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 ' + callbackId);\n }\n } else if (data.action in ah) {\n var action = ah[data.action];\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: ' + data.action);\n }\n };\n comObj.addEventListener('message', this._onComObjOnMessage);\n}\nMessageHandler.prototype = {\n on: function on(actionName, handler, scope) {\n var ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error('There is already an actionName called \"' + actionName + '\"');\n }\n ah[actionName] = [handler, 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 try {\n this.postMessage(message, transfers);\n } catch (e) {\n capability.reject(e);\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 _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n action: actionName,\n streamId: streamId,\n data: data,\n desiredSize: controller.desiredSize\n });\n return startCapability.promise;\n },\n pull: function pull(controller) {\n var pullCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].pullCall = pullCapability;\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'pull',\n streamId: streamId,\n desiredSize: controller.desiredSize\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 _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'cancel',\n reason: reason,\n streamId: streamId\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 var sendStreamRequest = function sendStreamRequest(_ref2) {\n var stream = _ref2.stream,\n chunk = _ref2.chunk,\n transfers = _ref2.transfers,\n success = _ref2.success,\n reason = _ref2.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 var streamSink = {\n enqueue: function enqueue(chunk) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var transfers = arguments[2];\n\n if (this.isCancelled) {\n return;\n }\n var lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\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 this.isCancelled = true;\n sendStreamRequest({ stream: 'close' });\n delete self.streamSinks[streamId];\n },\n error: function error(reason) {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'error',\n reason: reason\n });\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 var sendStreamResponse = function sendStreamResponse(_ref3) {\n var stream = _ref3.stream,\n success = _ref3.success,\n reason = _ref3.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 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 switch (data.stream) {\n case 'start_complete':\n resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));\n break;\n case 'pull_complete':\n resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));\n break;\n case 'pull':\n if (!this.streamSinks[data.streamId]) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n break;\n }\n if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[data.streamId].sinkCapability.resolve();\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 case 'enqueue':\n (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');\n if (!this.streamControllers[data.streamId].isClosed) {\n this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n }\n break;\n case 'close':\n (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');\n if (this.streamControllers[data.streamId].isClosed) {\n break;\n }\n this.streamControllers[data.streamId].isClosed = true;\n this.streamControllers[data.streamId].controller.close();\n deleteStreamController();\n break;\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 case 'cancel_complete':\n resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel':\n if (!this.streamSinks[data.streamId]) {\n break;\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 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};\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(138);\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar g = function () {\n return this;\n}() || Function(\"return this\")();\nvar hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\ng.regeneratorRuntime = undefined;\nmodule.exports = __w_pdfjs_require__(139);\nif (hadRuntime) {\n g.regeneratorRuntime = oldRuntime;\n} else {\n try {\n delete g.regeneratorRuntime;\n } catch (e) {\n g.regeneratorRuntime = undefined;\n }\n}\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (global) {\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 var inModule = ( false ? undefined : _typeof(module)) === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n module.exports = runtime;\n }\n return;\n }\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\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 runtime.wrap = wrap;\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 var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n IteratorPrototype = NativeIteratorPrototype;\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 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 runtime.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n runtime.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n runtime.awrap = function (arg) {\n return { __await: arg };\n };\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value && (typeof value === \"undefined\" ? \"undefined\" : _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 return Promise.resolve(value).then(function (unwrapped) {\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n var previousPromise;\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n this._invoke = enqueue;\n }\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n runtime.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\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 if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n return doneResult();\n }\n context.method = method;\n context.arg = arg;\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n 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 context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n if (record.arg === ContinueSentinel) {\n continue;\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 function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n context.delegate = null;\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n if (context.method === \"throw\") {\n return ContinueSentinel;\n }\n }\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n var info = record.arg;\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 if (info.done) {\n context[delegate.resultName] = info.value;\n context.next = delegate.nextLoc;\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n return info;\n }\n context.delegate = null;\n return ContinueSentinel;\n }\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\";\n Gp[iteratorSymbol] = function () {\n return this;\n };\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n runtime.keys = function (object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n next.done = true;\n return next;\n };\n };\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n if (typeof iterable.next === \"function\") {\n return iterable;\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 next.value = undefined;\n next.done = true;\n return next;\n };\n return next.next = next;\n }\n }\n return { next: doneResult };\n }\n runtime.values = values;\n function doneResult() {\n return {\n value: undefined,\n done: true\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 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 if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n if (caught) {\n context.method = \"next\";\n context.arg = undefined;\n }\n return !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n if (entry.tryLoc === \"root\") {\n return handle(\"end\");\n }\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\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 if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n finallyEntry = null;\n }\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\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 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 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 if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n 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 if (this.method === \"next\") {\n this.arg = undefined;\n }\n return ContinueSentinel;\n }\n };\n}(function () {\n return this;\n}() || Function(\"return this\")());\n/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(140)(module)))\n\n/***/ }),\n/* 140 */\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 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 return module;\n};\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Metadata = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _xml_parser = __w_pdfjs_require__(142);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Metadata = function () {\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 if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _createClass(Metadata, [{\n key: '_repair',\n value: function _repair(data) {\n return data.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 case 'apos':\n return '\\'';\n case 'gt':\n return '>';\n case 'lt':\n return '<';\n case 'quot':\n return '\\\"';\n }\n throw new Error('_repair: ' + name + ' isn\\'t defined.');\n });\n var chars = '';\n for (var i = 0, ii = bytes.length; i < ii; i += 2) {\n var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\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 return '>' + chars;\n });\n }\n }, {\n key: '_parse',\n value: function _parse(xmlDocument) {\n var rdf = xmlDocument.documentElement;\n if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.nextSibling;\n }\n }\n var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {\n return;\n }\n var children = rdf.childNodes;\n for (var i = 0, ii = children.length; i < ii; i++) {\n var desc = children[i];\n if (desc.nodeName.toLowerCase() !== 'rdf:description') {\n continue;\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 return this._metadata[name] || 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/* 142 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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};\nfunction isWhitespace(s, index) {\n var ch = s[index];\n return ch === ' ' || ch === '\\n' || ch === '\\r' || ch === '\\t';\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 return true;\n}\n\nvar XMLParserBase = function () {\n function XMLParserBase() {\n _classCallCheck(this, XMLParserBase);\n }\n\n _createClass(XMLParserBase, [{\n key: '_resolveEntities',\n value: function _resolveEntities(s) {\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 switch (entity) {\n case 'lt':\n return '<';\n case 'gt':\n return '>';\n case 'amp':\n return '&';\n case 'quot':\n return '\\\"';\n }\n return this.onResolveEntity(entity);\n });\n }\n }, {\n key: '_parseContent',\n value: function _parseContent(s, start) {\n var pos = start,\n name = void 0,\n attributes = [];\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n name = s.substring(start, pos);\n skipWs();\n while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') {\n skipWs();\n var attrName = '',\n attrValue = '';\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== '=') {\n return null;\n }\n ++pos;\n skipWs();\n var attrEndChar = s[pos];\n if (attrEndChar !== '\\\"' && attrEndChar !== '\\'') {\n return null;\n }\n var attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue)\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name: 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 = void 0,\n value = void 0;\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n name = s.substring(start, pos);\n skipWs();\n var attrStart = pos;\n while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {\n ++pos;\n }\n value = s.substring(attrStart, pos);\n return {\n name: name,\n value: value,\n parsed: pos - start\n };\n }\n }, {\n key: 'parseXml',\n value: function parseXml(s) {\n var i = 0;\n while (i < s.length) {\n var ch = s[i];\n var j = i;\n if (ch === '<') {\n ++j;\n var ch2 = s[j];\n var q = void 0;\n switch (ch2) {\n case '/':\n ++j;\n q = s.indexOf('>', j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case '?':\n ++j;\n var pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case '!':\n if (s.substring(j + 1, j + 3) === '--') {\n q = s.indexOf('-->', j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === '[CDATA[') {\n q = s.indexOf(']]>', j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {\n var q2 = s.indexOf('[', j + 8);\n var complexDoctype = false;\n q = s.indexOf('>', j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(']>', j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n complexDoctype = true;\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 break;\n default:\n var content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n var isClosed = false;\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 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 var text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n }, {\n key: 'onResolveEntity',\n value: function onResolveEntity(name) {\n return '&' + 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 = function () {\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[0];\n }\n }, {\n key: 'nextSibling',\n get: function get() {\n var index = this.parentNode.childNodes.indexOf(this);\n return this.parentNode.childNodes[index + 1];\n }\n }, {\n key: 'textContent',\n get: function get() {\n if (!this.childNodes) {\n return this.nodeValue || '';\n }\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join('');\n }\n }]);\n\n return SimpleDOMNode;\n}();\n\nvar SimpleXMLParser = function (_XMLParserBase) {\n _inherits(SimpleXMLParser, _XMLParserBase);\n\n function SimpleXMLParser() {\n _classCallCheck(this, SimpleXMLParser);\n\n var _this = _possibleConstructorReturn(this, (SimpleXMLParser.__proto__ || Object.getPrototypeOf(SimpleXMLParser)).call(this));\n\n _this._currentFragment = null;\n _this._stack = null;\n _this._errorCode = XMLParserErrorCode.NoError;\n return _this;\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 if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n var _currentFragment = _slicedToArray(this._currentFragment, 1),\n documentElement = _currentFragment[0];\n\n if (!documentElement) {\n return undefined;\n }\n return { documentElement: documentElement };\n }\n }, {\n key: 'onResolveEntity',\n value: function onResolveEntity(name) {\n switch (name) {\n case 'apos':\n return '\\'';\n }\n return _get(SimpleXMLParser.prototype.__proto__ || Object.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 var node = new SimpleDOMNode('#text', text);\n this._currentFragment.push(node);\n }\n }, {\n key: 'onCdata',\n value: function onCdata(text) {\n var node = new SimpleDOMNode('#text', text);\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 this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\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 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/* 143 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDataTransportStream = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar PDFDataTransportStream = function PDFDataTransportStreamClosure() {\n function PDFDataTransportStream(params, pdfDataRangeTransport) {\n var _this = this;\n\n (0, _util.assert)(pdfDataRangeTransport);\n this._queuedChunks = [];\n var initialData = params.initialData;\n if (initialData && initialData.length > 0) {\n var buffer = new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\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 this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {\n _this._onReceiveData({\n begin: begin,\n chunk: chunk\n });\n });\n this._pdfDataRangeTransport.addProgressListener(function (loaded) {\n _this._onProgress({ loaded: loaded });\n });\n this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {\n _this._onReceiveData({ chunk: chunk });\n });\n this._pdfDataRangeTransport.transportReady();\n }\n PDFDataTransportStream.prototype = {\n _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {\n var buffer = new Uint8Array(args.chunk).buffer;\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n var found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n (0, _util.assert)(found);\n }\n },\n _onProgress: function PDFDataTransportStream_onDataProgress(evt) {\n if (this._rangeReaders.length > 0) {\n var firstReader = this._rangeReaders[0];\n if (firstReader.onProgress) {\n firstReader.onProgress({ loaded: evt.loaded });\n }\n }\n },\n _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) {\n var i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n },\n getFullReader: function PDFDataTransportStream_getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n var queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks);\n },\n getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {\n var reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n },\n cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeReaders.slice(0);\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n this._pdfDataRangeTransport.abort();\n }\n };\n function PDFDataTransportStreamReader(stream, queuedChunks) {\n this._stream = stream;\n this._done = false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n PDFDataTransportStreamReader.prototype = {\n _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n return;\n }\n this._queuedChunks.push(chunk);\n },\n get headersReady() {\n return this._headersReady;\n },\n get filename() {\n return this._filename;\n },\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n },\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n },\n get contentLength() {\n return this._stream._contentLength;\n },\n read: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator2.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 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 _ref.apply(this, arguments);\n }\n\n return read;\n }(),\n\n cancel: function PDFDataTransportStreamReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n }\n };\n function PDFDataTransportStreamRangeReader(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n PDFDataTransportStreamRangeReader.prototype = {\n _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n var requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n },\n get isStreamingSupported() {\n return false;\n },\n read: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator2.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\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 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 _ref2.apply(this, arguments);\n }\n\n return read;\n }(),\n\n cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n this._stream._removeRangeReader(this);\n }\n };\n return PDFDataTransportStream;\n}();\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLContext = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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\nvar WebGLContext = function () {\n function WebGLContext(_ref) {\n var _ref$enable = _ref.enable,\n enable = _ref$enable === undefined ? 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\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\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 if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n return (0, _util.shadow)(this, 'isEnabled', enabled);\n }\n }]);\n\n return WebGLContext;\n}();\n\nvar WebGLUtils = function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error('Error during shader compilation: ' + errorMsg);\n }\n return shader;\n }\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error('Error during program linking: ' + errorMsg);\n }\n return program;\n }\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n 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 var currentGL, currentCanvas;\n function generateGL() {\n if (currentGL) {\n return;\n }\n currentCanvas = document.createElement('canvas');\n currentGL = currentCanvas.getContext('webgl', { premultipliedalpha: false });\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 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 function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n if (!smaskCache) {\n initSmaskGL();\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 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 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 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 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 function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\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 for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case 'lattice':\n rows = figures[i].coords.length / figures[i].verticesPerRow | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n case 'triangles':\n count += figures[i].coords.length;\n break;\n }\n }\n 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 for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n switch (figure.type) {\n case 'lattice':\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n for (var col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n break;\n case 'triangles':\n for (var j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n break;\n }\n }\n 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 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 return {\n tryInitGL: function tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n return false;\n },\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 if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n smaskCache = null;\n figuresCache = null;\n }\n };\n}();\nexports.WebGLContext = WebGLContext;\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.renderTextLayer = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _global_scope = __w_pdfjs_require__(3);\n\nvar _global_scope2 = _interopRequireDefault(_global_scope);\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 function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';'];\n function appendText(task, geom, styles) {\n var textDiv = document.createElement('div');\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 task._textDivs.push(textDiv);\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n task._textDivProperties.set(textDiv, textDivProperties);\n return;\n }\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n var left;\n var top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n 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 if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\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 task._textDivProperties.set(textDiv, textDivProperties);\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\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 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 function render(task) {\n if (task._canceled) {\n return;\n }\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n if (!task._textContentStream) {\n for (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n task._renderingDone = true;\n capability.resolve();\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 for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n var divProperties = task._textDivProperties.get(div);\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n task._textDivProperties.set(div, divProperties);\n continue;\n }\n 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 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 var findPositiveMin = function findPositiveMin(ts, offset, count) {\n var result = 0;\n for (var i = 0; i < count; i++) {\n var t = ts[offset++];\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n return result;\n };\n var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n task._textDivProperties.set(div, divProperties);\n }\n }\n 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 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 while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n var j = horizon.length - 1;\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n if (affectedBoundary.x2 > boundary.x1) {\n 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 if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n boundary.x1New = maxXNew;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\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 var changedHorizon = [],\n lastBoundary = null;\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 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 if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n var used = false;\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n function TextLayerRenderTask(_ref) {\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\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_scope2.default.FontInspector && _global_scope2.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 TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n cancel: function TextLayer_cancel() {\n if (this._reader) {\n this._reader.cancel(new _util.AbortException('text layer task cancelled'));\n this._reader = null;\n }\n this._canceled = true;\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n this._capability.reject('canceled');\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 appendText(this, items[i], styleCache);\n }\n },\n _layoutText: function _layoutText(textDiv) {\n var textLayerFrag = this._container;\n var textDivProperties = this._textDivProperties.get(textDiv);\n if (textDivProperties.isWhitespace) {\n return;\n }\n var fontSize = textDiv.style.fontSize;\n var fontFamily = textDiv.style.fontFamily;\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = fontSize + ' ' + fontFamily;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n var width = this._layoutTextCtx.measureText(textDiv.textContent).width;\n var transform = '';\n if (textDivProperties.canvasWidth !== 0 && width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = 'scaleX(' + textDivProperties.scale + ')';\n }\n if (textDivProperties.angle !== 0) {\n transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform;\n }\n if (transform !== '') {\n textDivProperties.originalTransform = transform;\n textDiv.style.transform = transform;\n }\n this._textDivProperties.set(textDiv, textDivProperties);\n textLayerFrag.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\n var _this = 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', { alpha: false });\n if (this._textContent) {\n var textItems = this._textContent.items;\n var textStyles = this._textContent.styles;\n this._processItems(textItems, textStyles);\n capability.resolve();\n } else if (this._textContentStream) {\n var pump = function pump() {\n _this._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 Object.assign(styleCache, value.styles);\n _this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + ' parameters specified.');\n }\n capability.promise.then(function () {\n styleCache = null;\n if (!timeout) {\n render(_this);\n } else {\n _this._renderTimer = setTimeout(function () {\n render(_this);\n _this._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 if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n var div = this._textDivs[i];\n var divProperties = this._textDivProperties.get(div);\n if (divProperties.isWhitespace) {\n continue;\n }\n if (expandDivs) {\n var transform = '',\n padding = '';\n if (divProperties.scale !== 1) {\n transform = 'scaleX(' + divProperties.scale + ')';\n }\n if (divProperties.angle !== 0) {\n transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;\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 if (divProperties.paddingTop !== 0) {\n padding += ' padding-top: ' + divProperties.paddingTop + 'px;';\n transform += ' translateY(' + -divProperties.paddingTop + 'px)';\n }\n if (divProperties.paddingRight !== 0) {\n padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;';\n }\n if (divProperties.paddingBottom !== 0) {\n padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;';\n }\n if (padding !== '') {\n div.setAttribute('style', divProperties.style + padding);\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 function renderTextLayer(renderParameters) {\n var task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n task._render(renderParameters.timeout);\n return task;\n }\n return renderTextLayer;\n}();\nexports.renderTextLayer = renderTextLayer;\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationLayer = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dom_utils = __w_pdfjs_require__(130);\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AnnotationElementFactory = function () {\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 switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case _util.AnnotationType.WIDGET:\n var fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotationElement(parameters);\n case 'Btn':\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case 'Ch':\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n }]);\n\n return AnnotationElementFactory;\n}();\n\nvar AnnotationElement = function () {\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 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\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 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 container.style.transform = 'matrix(' + viewport.transform.join(',') + ')';\n container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px';\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = data.borderStyle.width + 'px';\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n var horizontalRadius = data.borderStyle.horizontalCornerRadius;\n var verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n var radius = horizontalRadius + 'px / ' + verticalRadius + 'px';\n container.style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = 'solid';\n break;\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = 'dashed';\n break;\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)('Unimplemented border style: beveled');\n break;\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)('Unimplemented border style: inset');\n break;\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = 'solid';\n break;\n default:\n break;\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 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 var popupElement = new PopupElement({\n container: container,\n trigger: trigger,\n color: data.color,\n title: data.title,\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 = function (_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, (LinkAnnotationElement.__proto__ || Object.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\n var link = document.createElement('a');\n (0, _dom_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel\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 this.container.appendChild(link);\n return this.container;\n }\n }, {\n key: '_bindLink',\n value: function _bindLink(link, destination) {\n var _this2 = this;\n\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = function () {\n if (destination) {\n _this2.linkService.navigateTo(destination);\n }\n return false;\n };\n if (destination) {\n link.className = 'internalLink';\n }\n }\n }, {\n key: '_bindNamedAction',\n value: function _bindNamedAction(link, action) {\n var _this3 = this;\n\n link.href = this.linkService.getAnchorUrl('');\n link.onclick = function () {\n _this3.linkService.executeNamedAction(action);\n return false;\n };\n link.className = 'internalLink';\n }\n }]);\n\n return LinkAnnotationElement;\n}(AnnotationElement);\n\nvar TextAnnotationElement = function (_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, (TextAnnotationElement.__proto__ || Object.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({ type: this.data.name });\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n this.container.appendChild(image);\n return this.container;\n }\n }]);\n\n return TextAnnotationElement;\n}(AnnotationElement);\n\nvar WidgetAnnotationElement = function (_AnnotationElement3) {\n _inherits(WidgetAnnotationElement, _AnnotationElement3);\n\n function WidgetAnnotationElement() {\n _classCallCheck(this, WidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (WidgetAnnotationElement.__proto__ || Object.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 = function (_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, (TextWidgetAnnotationElement.__proto__ || Object.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 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 element.disabled = this.data.readOnly;\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\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 if (this.data.fontRefName) {\n font = this.page.commonObjs.getData(this.data.fontRefName);\n }\n this._setTextStyle(element, font);\n }\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\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 if (!font) {\n return;\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 = function (_WidgetAnnotationElem2) {\n _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);\n\n function CheckboxWidgetAnnotationElement(parameters) {\n _classCallCheck(this, CheckboxWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (CheckboxWidgetAnnotationElement.__proto__ || Object.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 if (this.data.fieldValue && this.data.fieldValue !== 'Off') {\n element.setAttribute('checked', true);\n }\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return CheckboxWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar RadioButtonWidgetAnnotationElement = function (_WidgetAnnotationElem3) {\n _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);\n\n function RadioButtonWidgetAnnotationElement(parameters) {\n _classCallCheck(this, RadioButtonWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (RadioButtonWidgetAnnotationElement.__proto__ || Object.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 if (this.data.fieldValue === this.data.buttonValue) {\n element.setAttribute('checked', true);\n }\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return RadioButtonWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar PushButtonWidgetAnnotationElement = function (_LinkAnnotationElemen) {\n _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);\n\n function PushButtonWidgetAnnotationElement() {\n _classCallCheck(this, PushButtonWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (PushButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement)).apply(this, arguments));\n }\n\n _createClass(PushButtonWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n var container = _get(PushButtonWidgetAnnotationElement.prototype.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), 'render', this).call(this);\n container.className = 'buttonWidgetAnnotation pushButton';\n return container;\n }\n }]);\n\n return PushButtonWidgetAnnotationElement;\n}(LinkAnnotationElement);\n\nvar ChoiceWidgetAnnotationElement = function (_WidgetAnnotationElem4) {\n _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);\n\n function ChoiceWidgetAnnotationElement(parameters) {\n _classCallCheck(this, ChoiceWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (ChoiceWidgetAnnotationElement.__proto__ || Object.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 if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\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 if (this.data.fieldValue.includes(option.displayValue)) {\n optionElement.setAttribute('selected', true);\n }\n selectElement.appendChild(optionElement);\n }\n this.container.appendChild(selectElement);\n return this.container;\n }\n }]);\n\n return ChoiceWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar PopupAnnotationElement = function (_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, (PopupAnnotationElement.__proto__ || Object.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 if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n var selector = '[data-annotation-id=\"' + this.data.parentId + '\"]';\n var parentElement = this.layer.querySelector(selector);\n if (!parentElement) {\n return this.container;\n }\n var popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\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 = function () {\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.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 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 var contents = this._formatContents(this.contents);\n var title = document.createElement('h1');\n title.textContent = this.title;\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 popup.appendChild(title);\n popup.appendChild(contents);\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 for (var i = 0, ii = lines.length; i < ii; ++i) {\n var line = lines[i];\n p.appendChild(document.createTextNode(line));\n if (i < ii - 1) {\n p.appendChild(document.createElement('br'));\n }\n }\n return p;\n }\n }, {\n 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 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 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 LineAnnotationElement = function (_AnnotationElement5) {\n _inherits(LineAnnotationElement, _AnnotationElement5);\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, (LineAnnotationElement.__proto__ || Object.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 this._createPopup(this.container, line, data);\n return this.container;\n }\n }]);\n\n return LineAnnotationElement;\n}(AnnotationElement);\n\nvar SquareAnnotationElement = function (_AnnotationElement6) {\n _inherits(SquareAnnotationElement, _AnnotationElement6);\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, (SquareAnnotationElement.__proto__ || Object.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 this._createPopup(this.container, square, data);\n return this.container;\n }\n }]);\n\n return SquareAnnotationElement;\n}(AnnotationElement);\n\nvar CircleAnnotationElement = function (_AnnotationElement7) {\n _inherits(CircleAnnotationElement, _AnnotationElement7);\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, (CircleAnnotationElement.__proto__ || Object.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 this._createPopup(this.container, circle, data);\n return this.container;\n }\n }]);\n\n return CircleAnnotationElement;\n}(AnnotationElement);\n\nvar PolylineAnnotationElement = function (_AnnotationElement8) {\n _inherits(PolylineAnnotationElement, _AnnotationElement8);\n\n function PolylineAnnotationElement(parameters) {\n _classCallCheck(this, PolylineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n\n var _this15 = _possibleConstructorReturn(this, (PolylineAnnotationElement.__proto__ || Object.getPrototypeOf(PolylineAnnotationElement)).call(this, parameters, isRenderable, true));\n\n _this15.containerClassName = 'polylineAnnotation';\n _this15.svgElementName = 'svg:polyline';\n return _this15;\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 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 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 this._createPopup(this.container, polyline, data);\n return this.container;\n }\n }]);\n\n return PolylineAnnotationElement;\n}(AnnotationElement);\n\nvar PolygonAnnotationElement = function (_PolylineAnnotationEl) {\n _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);\n\n function PolygonAnnotationElement(parameters) {\n _classCallCheck(this, PolygonAnnotationElement);\n\n var _this16 = _possibleConstructorReturn(this, (PolygonAnnotationElement.__proto__ || Object.getPrototypeOf(PolygonAnnotationElement)).call(this, parameters));\n\n _this16.containerClassName = 'polygonAnnotation';\n _this16.svgElementName = 'svg:polygon';\n return _this16;\n }\n\n return PolygonAnnotationElement;\n}(PolylineAnnotationElement);\n\nvar InkAnnotationElement = function (_AnnotationElement9) {\n _inherits(InkAnnotationElement, _AnnotationElement9);\n\n function InkAnnotationElement(parameters) {\n _classCallCheck(this, InkAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n\n var _this17 = _possibleConstructorReturn(this, (InkAnnotationElement.__proto__ || Object.getPrototypeOf(InkAnnotationElement)).call(this, parameters, isRenderable, true));\n\n _this17.containerClassName = 'inkAnnotation';\n _this17.svgElementName = 'svg:polyline';\n return _this17;\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 for (var i = 0, ii = inkLists.length; i < ii; i++) {\n var inkList = inkLists[i];\n var points = [];\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 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 this._createPopup(this.container, polyline, data);\n svg.appendChild(polyline);\n }\n this.container.append(svg);\n return this.container;\n }\n }]);\n\n return InkAnnotationElement;\n}(AnnotationElement);\n\nvar HighlightAnnotationElement = function (_AnnotationElement10) {\n _inherits(HighlightAnnotationElement, _AnnotationElement10);\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, (HighlightAnnotationElement.__proto__ || Object.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 if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return HighlightAnnotationElement;\n}(AnnotationElement);\n\nvar UnderlineAnnotationElement = function (_AnnotationElement11) {\n _inherits(UnderlineAnnotationElement, _AnnotationElement11);\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, (UnderlineAnnotationElement.__proto__ || Object.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 if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return UnderlineAnnotationElement;\n}(AnnotationElement);\n\nvar SquigglyAnnotationElement = function (_AnnotationElement12) {\n _inherits(SquigglyAnnotationElement, _AnnotationElement12);\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, (SquigglyAnnotationElement.__proto__ || Object.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 if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return SquigglyAnnotationElement;\n}(AnnotationElement);\n\nvar StrikeOutAnnotationElement = function (_AnnotationElement13) {\n _inherits(StrikeOutAnnotationElement, _AnnotationElement13);\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, (StrikeOutAnnotationElement.__proto__ || Object.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 if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return StrikeOutAnnotationElement;\n}(AnnotationElement);\n\nvar StampAnnotationElement = function (_AnnotationElement14) {\n _inherits(StampAnnotationElement, _AnnotationElement14);\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, (StampAnnotationElement.__proto__ || Object.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 if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return StampAnnotationElement;\n}(AnnotationElement);\n\nvar FileAttachmentAnnotationElement = function (_AnnotationElement15) {\n _inherits(FileAttachmentAnnotationElement, _AnnotationElement15);\n\n function FileAttachmentAnnotationElement(parameters) {\n _classCallCheck(this, FileAttachmentAnnotationElement);\n\n var _this23 = _possibleConstructorReturn(this, (FileAttachmentAnnotationElement.__proto__ || Object.getPrototypeOf(FileAttachmentAnnotationElement)).call(this, parameters, true));\n\n var _this23$data$file = _this23.data.file,\n filename = _this23$data$file.filename,\n content = _this23$data$file.content;\n\n _this23.filename = (0, _dom_utils.getFilenameFromUrl)(filename);\n _this23.content = content;\n if (_this23.linkService.eventBus) {\n _this23.linkService.eventBus.dispatch('fileattachmentannotation', {\n source: _this23,\n id: (0, _util.stringToPDFString)(filename),\n filename: filename,\n content: content\n });\n }\n return _this23;\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 if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(this.container, trigger, this.data);\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 this.downloadManager.downloadData(this.content, this.filename, '');\n }\n }]);\n\n return FileAttachmentAnnotationElement;\n}(AnnotationElement);\n\nvar AnnotationLayer = function () {\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 if (!data) {\n continue;\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 _dom_utils.DOMSVGFactory()\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 if (element) {\n element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')';\n }\n }\n parameters.div.removeAttribute('hidden');\n }\n }]);\n\n return AnnotationLayer;\n}();\n\nexports.AnnotationLayer = AnnotationLayer;\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.SVGGraphics = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _dom_utils = __w_pdfjs_require__(130);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _is_node2 = _interopRequireDefault(_is_node);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SVGGraphics = function SVGGraphics() {\n throw new Error('Not implemented: SVGGraphics');\n};\n{\n var SVG_DEFAULTS = {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fillColor: '#000000'\n };\n var convertImgDataToPng = function convertImgDataToPngClosure() {\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 for (var i = 0; i < 256; i++) {\n var c = i;\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 crcTable[i] = c;\n }\n function crc32(data, start, end) {\n var crc = -1;\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 return crc ^ -1;\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 function adler32(data, start, end) {\n var a = 1;\n var b = 0;\n for (var i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return b << 16 | a;\n }\n function deflateSync(literals) {\n if (!(0, _is_node2.default)()) {\n return deflateSyncUncompressed(literals);\n }\n try {\n var input;\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = new Buffer(literals);\n }\n var output = require('zlib').deflateSync(input, { level: 9 });\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 return deflateSyncUncompressed(literals);\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 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 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 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 switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error('invalid format');\n }\n var literals = new Uint8Array((1 + lineSize) * height);\n var offsetLiterals = 0,\n offsetBytes = 0;\n var y, i;\n for (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 if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n for (y = 0; y < height; y++) {\n offsetLiterals++;\n for (i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xFF;\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 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 var SVGExtraState = function SVGExtraStateClosure() {\n function SVGExtraState() {\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.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 SVGExtraState.prototype = {\n clone: function SVGExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return SVGExtraState;\n }();\n exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() {\n function opListToTree(opList) {\n var opTree = [];\n var tmp = [];\n var opListLen = opList.length;\n for (var x = 0; x < opListLen; x++) {\n if (opList[x].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 if (opList[x].fn === 'restore') {\n opTree = tmp.pop();\n } else {\n opTree.push(opList[x]);\n }\n }\n return opTree;\n }\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n var s = value.toFixed(10);\n var i = s.length - 1;\n if (s[i] !== '0') {\n return s;\n }\n do {\n i--;\n } while (s[i] === '0');\n return s.substring(0, s[i] === '.' ? i : i + 1);\n }\n 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 return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')';\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n var a = Math.acos(m[0]) * 180 / Math.PI;\n return 'rotate(' + pf(a) + ')';\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n }\n }\n return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n }\n function SVGGraphics(commonObjs, objs, forceDataSchema) {\n this.svgFactory = new _dom_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 }\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 var clipCount = 0;\n var maskCount = 0;\n SVGGraphics.prototype = {\n save: function SVGGraphics_save() {\n this.transformStack.push(this.transformMatrix);\n var old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n },\n restore: function SVGGraphics_restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n },\n group: function SVGGraphics_group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n },\n loadDependencies: function SVGGraphics_loadDependencies(operatorList) {\n var _this = this;\n\n var fnArray = operatorList.fnArray;\n var fnArrayLen = fnArray.length;\n var argsArray = operatorList.argsArray;\n for (var i = 0; i < fnArrayLen; i++) {\n if (_util.OPS.dependency === fnArray[i]) {\n var deps = argsArray[i];\n for (var n = 0, nn = deps.length; n < nn; n++) {\n var obj = deps[n];\n var common = obj.substring(0, 2) === 'g_';\n var promise;\n if (common) {\n promise = new Promise(function (resolve) {\n _this.commonObjs.get(obj, resolve);\n });\n } else {\n promise = new Promise(function (resolve) {\n _this.objs.get(obj, resolve);\n });\n }\n this.current.dependencies.push(promise);\n }\n }\n }\n return Promise.all(this.current.dependencies);\n },\n transform: function SVGGraphics_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 getSVG: function SVGGraphics_getSVG(operatorList, viewport) {\n var _this2 = this;\n\n this.viewport = viewport;\n var svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(function () {\n _this2.transformMatrix = _util.IDENTITY_MATRIX;\n var opTree = _this2.convertOpList(operatorList);\n _this2.executeOpTree(opTree);\n return svgElement;\n });\n },\n convertOpList: function SVGGraphics_convertOpList(operatorList) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var fnArrayLen = fnArray.length;\n var REVOPS = [];\n var opList = [];\n for (var op in _util.OPS) {\n REVOPS[_util.OPS[op]] = op;\n }\n for (var x = 0; x < fnArrayLen; x++) {\n var fnId = fnArray[x];\n opList.push({\n 'fnId': fnId,\n 'fn': REVOPS[fnId],\n 'args': argsArray[x]\n });\n }\n return opListToTree(opList);\n },\n executeOpTree: function SVGGraphics_executeOpTree(opTree) {\n var opTreeLen = opTree.length;\n for (var x = 0; x < opTreeLen; x++) {\n var fn = opTree[x].fn;\n var fnId = opTree[x].fnId;\n var args = opTree[x].args;\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n case _util.OPS.dependency:\n break;\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case _util.OPS.endText:\n this.endText();\n break;\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n case _util.OPS.fill:\n this.fill();\n break;\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n case _util.OPS.stroke:\n this.stroke();\n break;\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case _util.OPS.clip:\n this.clip('nonzero');\n break;\n case _util.OPS.eoClip:\n this.clip('evenodd');\n break;\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case _util.OPS.paintJpegXObject:\n this.paintJpegXObject(args[0], args[1], args[2]);\n break;\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case _util.OPS.closePath:\n this.closePath();\n break;\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case _util.OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTree[x].items);\n break;\n default:\n (0, _util.warn)('Unimplemented operator ' + fn);\n break;\n }\n }\n },\n setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n },\n setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n },\n nextLine: function SVGGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) {\n var current = this.current;\n this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f];\n this.current.x = this.current.lineX = 0;\n this.current.y = this.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', 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 beginText: function SVGGraphics_beginText() {\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.lineMatrix = _util.IDENTITY_MATRIX;\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.txtElement = this.svgFactory.createElement('svg:text');\n this.current.txtgrp = this.svgFactory.createElement('svg:g');\n this.current.xcoords = [];\n },\n moveText: function SVGGraphics_moveText(x, y) {\n var current = this.current;\n this.current.x = this.current.lineX += x;\n this.current.y = this.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', pf(current.fontSize) + 'px');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n },\n showText: function SVGGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\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 widthAdvanceScale = fontSize * current.fontMatrix[0];\n var x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\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 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 if (!glyph.isInFont && !font.missingFile) {\n x += charWidth;\n continue;\n }\n current.xcoords.push(current.x + x * textHScale);\n current.tspan.textContent += character;\n x += charWidth;\n }\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n 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', pf(current.fontSize) + 'px');\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);\n }\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\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 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 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._setStrokeAttributes(current.tspan);\n }\n var textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n current.txtElement.setAttributeNS(null, 'transform', 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 this._ensureTransformGroup().appendChild(current.txtElement);\n },\n setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n addFontStyle: function SVGGraphics_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 var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += '@font-face { font-family: \"' + fontObj.loadedName + '\";' + ' src: url(' + url + '); }\\n';\n },\n setFont: function SVGGraphics_setFont(details) {\n var current = this.current;\n var fontObj = this.commonObjs.get(details[0]);\n var size = details[1];\n this.current.font = fontObj;\n if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\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 if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.xcoords = [];\n },\n endText: function endText() {\n var current = this.current;\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 setLineWidth: function SVGGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n },\n setLineCap: function SVGGraphics_setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function SVGGraphics_setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function SVGGraphics_setMiterLimit(limit) {\n this.current.miterLimit = limit;\n },\n setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n },\n setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n this.current.strokeColor = color;\n },\n setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n },\n setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n this.current.fillColor = color;\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.xcoords = [];\n },\n setDash: function SVGGraphics_setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n },\n constructPath: function SVGGraphics_constructPath(ops, args) {\n var current = this.current;\n var x = current.x,\n y = current.y;\n current.path = this.svgFactory.createElement('svg:path');\n var d = [];\n var opLength = ops.length;\n for (var i = 0, j = 0; i < opLength; 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 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 case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push('M', pf(x), pf(y));\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push('L', pf(x), pf(y));\n break;\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 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 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 case _util.OPS.closePath:\n d.push('Z');\n break;\n }\n }\n current.path.setAttributeNS(null, 'd', d.join(' '));\n current.path.setAttributeNS(null, 'fill', 'none');\n this._ensureTransformGroup().appendChild(current.path);\n current.element = current.path;\n current.setCurrentPoint(x, y);\n },\n endPath: function SVGGraphics_endPath() {\n if (!this.pendingClip) {\n return;\n }\n var current = this.current;\n var clipId = 'clippath' + clipCount;\n 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 if (this.pendingClip === 'evenodd') {\n clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');\n } else {\n clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');\n }\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n 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 current.activeClipUrl = 'url(#' + clipId + ')';\n this.tgrp = null;\n },\n clip: function SVGGraphics_clip(type) {\n this.pendingClip = type;\n },\n closePath: function SVGGraphics_closePath() {\n var current = this.current;\n if (current.path) {\n var d = current.path.getAttributeNS(null, 'd');\n d += 'Z';\n current.path.setAttributeNS(null, 'd', d);\n }\n },\n setLeading: function SVGGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setTextRise: function SVGGraphics_setTextRise(textRise) {\n this.current.textRise = textRise;\n },\n setTextRenderingMode: function setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n },\n\n setHScale: function SVGGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setGState: function SVGGraphics_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 switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n case 'LC':\n this.setLineCap(value);\n break;\n case 'LJ':\n this.setLineJoin(value);\n break;\n case 'ML':\n this.setMiterLimit(value);\n break;\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n case 'Font':\n this.setFont(value);\n break;\n case 'CA':\n this.setStrokeAlpha(value);\n break;\n case 'ca':\n this.setFillAlpha(value);\n break;\n default:\n (0, _util.warn)('Unimplemented graphic state ' + key);\n break;\n }\n }\n },\n fill: function SVGGraphics_fill() {\n var current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, 'fill', current.fillColor);\n current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n this.endPath();\n }\n },\n stroke: function SVGGraphics_stroke() {\n var current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, 'fill', 'none');\n this.endPath();\n }\n },\n _setStrokeAttributes: function _setStrokeAttributes(element) {\n var current = this.current;\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(current.lineWidth) + 'px');\n element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' '));\n element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px');\n },\n\n eoFill: function SVGGraphics_eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n this.fill();\n },\n fillStroke: function SVGGraphics_fillStroke() {\n this.stroke();\n this.fill();\n },\n eoFillStroke: function SVGGraphics_eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n this.fillStroke();\n },\n closeStroke: function SVGGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n closeFillStroke: function SVGGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n },\n\n paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() {\n var current = this.current;\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', current.fillColor);\n this._ensureTransformGroup().appendChild(rect);\n },\n paintJpegXObject: function SVGGraphics_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(' + pf(1 / w) + ' ' + pf(-1 / h) + ')');\n this._ensureTransformGroup().appendChild(imgEl);\n },\n paintImageXObject: function SVGGraphics_paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n this.paintInlineImageXObject(imgData);\n },\n paintInlineImageXObject: function SVGGraphics_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(' + pf(1 / width) + ' ' + pf(-1 / height) + ')');\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n },\n paintImageMaskXObject: function SVGGraphics_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' + 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(#' + current.maskId + ')');\n this.defs.appendChild(mask);\n this._ensureTransformGroup().appendChild(rect);\n this.paintInlineImageXObject(imgData, mask);\n },\n paintFormXObjectBegin: function SVGGraphics_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 if (Array.isArray(bbox) && bbox.length === 4) {\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 paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {},\n _initialize: 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 _ensureClipGroup: function SVGGraphics_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 return this.current.clipGroup;\n },\n _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement('svg:g');\n this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n return this.tgrp;\n }\n };\n return SVGGraphics;\n }();\n}\nexports.SVGGraphics = SVGGraphics;\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNodeStream = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(149);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar fs = require('fs');\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\n\nvar fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\nfunction parseUrl(sourceUrl) {\n var parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === 'file:' || parsedUrl.host) {\n return parsedUrl;\n }\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse('file:///' + sourceUrl);\n }\n if (!parsedUrl.host) {\n parsedUrl.protocol = 'file:';\n }\n return parsedUrl;\n}\n\nvar PDFNodeStream = function () {\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._fullRequest = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFNodeStream, [{\n key: 'getFullReader',\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequest);\n this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequest;\n }\n }, {\n key: 'getRangeReader',\n value: function getRangeReader(start, end) {\n var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n }, {\n key: 'cancelAllRequests',\n value: function cancelAllRequests(reason) {\n if (this._fullRequest) {\n this._fullRequest.cancel(reason);\n }\n var readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFNodeStream;\n}();\n\nvar BaseFullReader = function () {\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 if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\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 _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, buffer;\n return _regenerator2.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 if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\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 _ref.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 return;\n }\n this._readableStream.destroy(reason);\n }\n }, {\n key: '_error',\n value: function _error(reason) {\n this._storedError = reason;\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 _this._readCapability.resolve();\n });\n readableStream.on('error', function (reason) {\n _this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException('streaming is disabled'));\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 = function () {\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 _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, buffer;\n return _regenerator2.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 if (this.onProgress) {\n this.onProgress({ loaded: this._loaded });\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 _ref2.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 return;\n }\n this._readableStream.destroy(reason);\n }\n }, {\n key: '_error',\n value: function _error(reason) {\n this._storedError = reason;\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 _this2._readCapability.resolve();\n });\n readableStream.on('error', function (reason) {\n _this2._error(reason);\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 = function (_BaseFullReader) {\n _inherits(PDFNodeStreamFullReader, _BaseFullReader);\n\n function PDFNodeStreamFullReader(stream) {\n _classCallCheck(this, PDFNodeStreamFullReader);\n\n var _this3 = _possibleConstructorReturn(this, (PDFNodeStreamFullReader.__proto__ || Object.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 \"' + _this3._url + '\".');\n _this3._storedError = error;\n _this3._headersCapability.reject(error);\n return;\n }\n _this3._headersCapability.resolve();\n _this3._setReadableStream(response);\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 _this3._request = null;\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 _this3._request.on('error', function (reason) {\n _this3._storedError = reason;\n _this3._headersCapability.reject(reason);\n });\n _this3._request.end();\n return _this3;\n }\n\n return PDFNodeStreamFullReader;\n}(BaseFullReader);\n\nvar PDFNodeStreamRangeReader = function (_BaseRangeReader) {\n _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);\n\n function PDFNodeStreamRangeReader(stream, start, end) {\n _classCallCheck(this, PDFNodeStreamRangeReader);\n\n var _this4 = _possibleConstructorReturn(this, (PDFNodeStreamRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamRangeReader)).call(this, stream));\n\n _this4._httpHeaders = {};\n for (var property in stream.httpHeaders) {\n var value = stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n _this4._httpHeaders[property] = value;\n }\n _this4._httpHeaders['Range'] = 'bytes=' + start + '-' + (end - 1);\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException('Missing PDF \"' + _this4._url + '\".');\n _this4._storedError = error;\n return;\n }\n _this4._setReadableStream(response);\n };\n _this4._request = null;\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 _this4._request.on('error', function (reason) {\n _this4._storedError = reason;\n });\n _this4._request.end();\n return _this4;\n }\n\n return PDFNodeStreamRangeReader;\n}(BaseRangeReader);\n\nvar PDFNodeStreamFsFullReader = function (_BaseFullReader2) {\n _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);\n\n function PDFNodeStreamFsFullReader(stream) {\n _classCallCheck(this, PDFNodeStreamFsFullReader);\n\n var _this5 = _possibleConstructorReturn(this, (PDFNodeStreamFsFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsFullReader)).call(this, stream));\n\n var path = decodeURIComponent(_this5._url.path);\n if (fileUriRegex.test(_this5._url.href)) {\n path = path.replace(/^\\//, '');\n }\n fs.lstat(path, function (error, stat) {\n if (error) {\n if (error.code === 'ENOENT') {\n error = new _util.MissingPDFException('Missing PDF \"' + path + '\".');\n }\n _this5._storedError = error;\n _this5._headersCapability.reject(error);\n return;\n }\n _this5._contentLength = stat.size;\n _this5._setReadableStream(fs.createReadStream(path));\n _this5._headersCapability.resolve();\n });\n return _this5;\n }\n\n return PDFNodeStreamFsFullReader;\n}(BaseFullReader);\n\nvar PDFNodeStreamFsRangeReader = function (_BaseRangeReader2) {\n _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);\n\n function PDFNodeStreamFsRangeReader(stream, start, end) {\n _classCallCheck(this, PDFNodeStreamFsRangeReader);\n\n var _this6 = _possibleConstructorReturn(this, (PDFNodeStreamFsRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsRangeReader)).call(this, stream));\n\n var path = decodeURIComponent(_this6._url.path);\n if (fileUriRegex.test(_this6._url.href)) {\n path = path.replace(/^\\//, '');\n }\n _this6._setReadableStream(fs.createReadStream(path, {\n start: start,\n end: end - 1\n }));\n return _this6;\n }\n\n return PDFNodeStreamFsRangeReader;\n}(BaseRangeReader);\n\nexports.PDFNodeStream = PDFNodeStream;\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.validateResponseStatus = exports.validateRangeRequestCapabilities = exports.extractFilenameFromHeader = exports.createResponseStatusError = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _content_disposition = __w_pdfjs_require__(150);\n\nfunction validateRangeRequestCapabilities(_ref) {\n var getResponseHeader = _ref.getResponseHeader,\n isHttp = _ref.isHttp,\n rangeChunkSize = _ref.rangeChunkSize,\n disableRange = _ref.disableRange;\n\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 if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader('Accept-Ranges') !== 'bytes') {\n return returnValues;\n }\n var contentEncoding = getResponseHeader('Content-Encoding') || 'identity';\n if (contentEncoding !== 'identity') {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(getResponseHeader) {\n var contentDisposition = getResponseHeader('Content-Disposition');\n if (contentDisposition) {\n var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && /^file:/.test(url)) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF \"' + url + '\".', status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n var needsEncodingFixup = true;\n var tmp = toParamRegExp('filename\\\\*', 'i').exec(contentDisposition);\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 tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n var _filename = rfc2047decode(tmp);\n return fixupEncoding(_filename);\n }\n tmp = toParamRegExp('filename', 'i').exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n var _filename2 = rfc2616unquote(tmp);\n _filename2 = rfc2047decode(_filename2);\n return fixupEncoding(_filename2);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp('(?:^|;)\\\\s*' + attributePattern + '\\\\s*=\\\\s*' + '(' + '[^\";\\\\s][^;\\\\s]*' + '|' + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + ')', flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n var decoder = new TextDecoder(encoding, { fatal: true });\n var bytes = new Array(value.length);\n for (var i = 0; i < value.length; ++i) {\n bytes[i] = value.charCodeAt(i);\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 return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode('utf-8', value);\n if (needsEncodingFixup) {\n value = textdecode('iso-8859-1', value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDisposition) {\n var matches = [],\n match = void 0;\n var iter = toParamRegExp('filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)', 'ig');\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 if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n var parts = [];\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 if (_quot) {\n _part = unescape(_part);\n if (_n === 0) {\n _part = rfc5987decode(_part);\n }\n }\n parts.push(_part);\n }\n return parts.join('');\n }\n function rfc2616unquote(value) {\n if (value.charAt(0) === '\"') {\n var parts = value.slice(1).split('\\\\\"');\n for (var i = 0; i < parts.length; ++i) {\n var quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replace(/\\\\(.)/g, '$1');\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n var encodingend = extvalue.indexOf('\\'');\n if (encodingend === -1) {\n return extvalue;\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 function rfc2047decode(value) {\n if (value.slice(0, 2) !== '=?' || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\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 try {\n text = atob(text);\n } catch (e) {}\n return textdecode(charset, text);\n });\n }\n return '';\n}\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\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.PDFFetchStream = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(149);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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 = function () {\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 var reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n }, {\n key: 'cancelAllRequests',\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFFetchStream;\n}();\n\nvar PDFFetchStreamReader = function () {\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;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = new Headers();\n for (var property in this._stream.httpHeaders) {\n var value = this._stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._headers.append(property, value);\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 _this._reader = response.body.getReader();\n _this._headersCapability.resolve();\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 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 _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var _ref2, value, done, buffer;\n\n return _regenerator2.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 _ref2 = _context.sent;\n value = _ref2.value;\n done = _ref2.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 if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\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 _ref.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 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 = function () {\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;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n this._headers = new Headers();\n for (var property in this._stream.httpHeaders) {\n var value = this._stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._headers.append(property, value);\n }\n var rangeStr = begin + '-' + (end - 1);\n this._headers.append('Range', 'bytes=' + rangeStr);\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 _this2._readCapability.resolve();\n _this2._reader = response.body.getReader();\n });\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamRangeReader, [{\n key: 'read',\n value: function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var _ref4, value, done, buffer;\n\n return _regenerator2.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 _ref4 = _context2.sent;\n value = _ref4.value;\n done = _ref4.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 if (this.onProgress) {\n this.onProgress({ loaded: this._loaded });\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 _ref3.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 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\nexports.PDFFetchStream = PDFFetchStream;\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.NetworkManager = exports.PDFNetworkStream = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(149);\n\nvar _global_scope = __w_pdfjs_require__(3);\n\nvar _global_scope2 = _interopRequireDefault(_global_scope);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\n;\nvar OK_RESPONSE = 200;\nvar PARTIAL_CONTENT_RESPONSE = 206;\nfunction NetworkManager(url, args) {\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || {};\n this.withCredentials = args.withCredentials || false;\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n this.loadedRequests = Object.create(null);\n}\nfunction getArrayBuffer(xhr) {\n var data = xhr.response;\n if (typeof data !== 'string') {\n return data;\n }\n var array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\nvar supportsMozChunked = function supportsMozChunkedClosure() {\n try {\n var x = new XMLHttpRequest();\n x.open('GET', _global_scope2.default.location.href);\n x.responseType = 'moz-chunked-arraybuffer';\n return x.responseType === 'moz-chunked-arraybuffer';\n } catch (e) {\n return false;\n }\n}();\nNetworkManager.prototype = {\n requestRange: function NetworkManager_requestRange(begin, end, listeners) {\n var args = {\n begin: begin,\n end: end\n };\n for (var prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n },\n requestFull: function NetworkManager_requestFull(listeners) {\n return this.request(listeners);\n },\n request: function NetworkManager_request(args) {\n var xhr = this.getXhr();\n var xhrId = this.currXhrId++;\n var pendingRequest = this.pendingRequests[xhrId] = { xhr: xhr };\n xhr.open('GET', this.url);\n xhr.withCredentials = this.withCredentials;\n for (var property in this.httpHeaders) {\n var value = this.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && 'begin' in args && 'end' in args) {\n var rangeStr = args.begin + '-' + (args.end - 1);\n xhr.setRequestHeader('Range', 'bytes=' + rangeStr);\n pendingRequest.expectedStatus = 206;\n } else {\n pendingRequest.expectedStatus = 200;\n }\n var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData;\n if (useMozChunkedLoading) {\n xhr.responseType = 'moz-chunked-arraybuffer';\n pendingRequest.onProgressiveData = args.onProgressiveData;\n pendingRequest.mozChunked = true;\n } else {\n xhr.responseType = 'arraybuffer';\n }\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n 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 onProgress: function NetworkManager_onProgress(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n if (pendingRequest.mozChunked) {\n var chunk = getArrayBuffer(pendingRequest.xhr);\n pendingRequest.onProgressiveData(chunk);\n }\n var onProgress = pendingRequest.onProgress;\n if (onProgress) {\n onProgress(evt);\n }\n },\n onStateChange: function NetworkManager_onStateChange(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n var xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n return;\n }\n var xhrStatus = xhr.status || OK_RESPONSE;\n var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n return;\n }\n this.loadedRequests[xhrId] = true;\n var chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n var rangeHeader = xhr.getResponseHeader('Content-Range');\n var matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n var begin = parseInt(matches[1], 10);\n pendingRequest.onDone({\n begin: begin,\n chunk: chunk\n });\n } else if (pendingRequest.onProgressiveData) {\n pendingRequest.onDone(null);\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 hasPendingRequests: function NetworkManager_hasPendingRequests() {\n for (var xhrId in this.pendingRequests) {\n return true;\n }\n return false;\n },\n getRequestXhr: function NetworkManager_getXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n },\n isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) {\n return !!this.pendingRequests[xhrId].onProgressiveData;\n },\n isPendingRequest: function NetworkManager_isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n },\n isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) {\n return xhrId in this.loadedRequests;\n },\n abortAllRequests: function NetworkManager_abortAllRequests() {\n for (var xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n },\n abortRequest: function NetworkManager_abortRequest(xhrId) {\n var xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n};\nfunction PDFNetworkStream(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n}\nPDFNetworkStream.prototype = {\n _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) {\n var i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n },\n getFullReader: function PDFNetworkStream_getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n },\n getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) {\n var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n },\n cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n};\nfunction PDFNetworkStreamFullRequestReader(manager, source) {\n this._manager = manager;\n var args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onProgressiveData: source.disableStream ? null : this._onProgressiveData.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 if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\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}\nPDFNetworkStreamFullRequestReader.prototype = {\n _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() {\n var fullRequestXhrId = this._fullRequestId;\n var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\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 this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n var networkManager = this._manager;\n if (networkManager.isStreamingRequest(fullRequestXhrId)) {\n this._isStreamingSupported = true;\n } else if (this._isRangeSupported) {\n networkManager.abortRequest(fullRequestXhrId);\n }\n this._headersReceivedCapability.resolve();\n },\n _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) {\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(chunk);\n }\n },\n _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) {\n if (args) {\n this._onProgressiveData(args.chunk);\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n },\n _onError: function PDFNetworkStreamFullRequestReader_onError(status) {\n var url = this._url;\n var exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n this._headersReceivedCapability.reject(exception);\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n this._requests = [];\n this._cachedChunks = [];\n },\n _onProgress: function PDFNetworkStreamFullRequestReader_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 get filename() {\n return this._filename;\n },\n get isRangeSupported() {\n return this._isRangeSupported;\n },\n get isStreamingSupported() {\n return this._isStreamingSupported;\n },\n get contentLength() {\n return this._contentLength;\n },\n get headersReady() {\n return this._headersReceivedCapability.promise;\n },\n read: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator2.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 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 _ref.apply(this, arguments);\n }\n\n return read;\n }(),\n\n cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n};\nfunction PDFNetworkStreamRangeRequestReader(manager, begin, end) {\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}\nPDFNetworkStreamRangeRequestReader.prototype = {\n _close: function PDFNetworkStreamRangeRequestReader_close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n },\n _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) {\n var chunk = data.chunk;\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n this._close();\n },\n _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({ loaded: evt.loaded });\n }\n },\n get isStreamingSupported() {\n return false;\n },\n read: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator2.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\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 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 _ref2.apply(this, arguments);\n }\n\n return read;\n }(),\n\n cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n};\nexports.PDFNetworkStream = PDFNetworkStream;\nexports.NetworkManager = NetworkManager;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.js.map","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\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 map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], 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\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar pdfjs = require('./build/pdf.js');\nvar PdfjsWorker = require('worker-loader!./build/pdf.worker.js');\n\nif (typeof window !== 'undefined' && 'Worker' in window) {\n pdfjs.GlobalWorkerOptions.workerPort = new PdfjsWorker();\n}\n\nmodule.exports = pdfjs;\n"],"sourceRoot":""}